Timeline
Feb 7, 2016:
- 7:22 PM Changeset in webkit [196248] by
-
- 2 edits in trunk/Source/WebCore
Remove unused enum ScrollbarOverlayState.
Rubber-stamped by Dan Bernstein.
- platform/ScrollTypes.h:
- 7:20 PM Changeset in webkit [196247] by
-
- 3 edits in trunk/Source/WebCore
Remove unnecessary respondsToSelector checks for methods that exist on all supported platforms
https://bugs.webkit.org/show_bug.cgi?id=153970
Reviewed by Dan Bernstein.
-[NSScrollerImp mouseEnteredScroller], -[NSScrollerImp expansionTransitionProgress],
-[NSScrollerImpPair contentAreaScrolledInDirection:], and -[NSScrollerImp setExpanded:]
are now available on all supported OS's. No need to check for them.
- platform/mac/ScrollAnimatorMac.mm:
(macScrollbarTheme):
(-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
(WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
(WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolled):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
(supportsUIStateTransitionProgress): Deleted.
(supportsExpansionTransitionProgress): Deleted.
(supportsContentAreaScrolledInDirection): Deleted.
- platform/mac/ScrollbarThemeMac.mm:
(+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
(+[WebScrollbarPrefsObserver behaviorPrefsChanged:]):
(WebCore::ScrollbarThemeMac::scrollbarThickness):
- 7:01 PM Changeset in webkit [196246] by
-
- 8 edits1 add in trunk/Source/WebCore
Use modern SPI header idiom for NSScrollerImp and NSScrollerImpPair
https://bugs.webkit.org/show_bug.cgi?id=153969
Reviewed by Dan Bernstein.
- WebCore.xcodeproj/project.pbxproj:
Add new file NSScrollerImpSPI.h
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
Use new include of NSScrollerImpSPI.h.
- platform/ScrollbarThemeComposite.h:
Define ScrollbarPainter more precisely as NSScrollerImp * now that the type is available to us.
- platform/mac/NSScrollerImpDetails.h:
Remove NSObject category based SPI usage with the modern one NSScrollerImpSPI.h
- platform/mac/NSScrollerImpDetails.mm:
(WebCore::recommendedScrollerStyle):
Simplify recommendedScrollerStyle() now that all OS's we ship on have +[NSScroller preferredScrollerStyle].
- platform/mac/ScrollAnimatorMac.mm:
(supportsUIStateTransitionProgress):
(supportsExpansionTransitionProgress):
(supportsContentAreaScrolledInDirection):
Stop using NSClassFromString now that we can reference the classes explicitly.
(-[WebScrollbarPainterControllerDelegate invalidate]):
(-[WebScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]):
(-[WebScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]):
(-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]):
(-[WebScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
(-[WebScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
(-[WebScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
(-[WebScrollbarPainterDelegate layer]):
(-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
(-[WebScrollbarPainterDelegate convertRectToLayer:]):
(-[WebScrollbarPainterDelegate shouldUseLayerPerPartForScrollerImp:]):
(-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
(-[WebScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]):
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::lockOverlayScrollbarStateToHidden):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::updateScrollerStyle):
Add proper conforming to protocols and replace ids with proper types.
- platform/mac/ScrollbarThemeMac.mm:
(WebCore::supportsExpandedScrollbars):
(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::scrollbarThickness):
(WebCore::ScrollbarThemeMac::setUpContentShadowLayer):
Stop using NSClassFromString now that we can reference the classes explicitly.
- platform/spi/mac/NSScrollerImpSPI.h: Added.
- 5:34 PM Changeset in webkit [196245] by
-
- 6 edits in trunk
[GTK][EFL] Enable SamplingProfiler
https://bugs.webkit.org/show_bug.cgi?id=153638
Reviewed by Michael Catanzaro.
.:
Enable SamplingProfiler in GTK and EFL.
And added option to CMake to switch this from the build command.
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/WTF:
- wtf/Platform.h:
- 4:33 PM Changeset in webkit [196244] by
-
- 145 edits2 adds in trunk
Outline does not clip when ancestor has overflow: hidden and requires layer.
https://bugs.webkit.org/show_bug.cgi?id=153901
Now that outline is part of visual overflow, we no longer need the special outline cliprect.
PaintPhaseChildOutlines drawing will switch to foreground cliprect. It ensures proper overflow clipping
at parent level. PaintPhaseSelfOutline drawing will start using the visual overflow inflated background cliprect.
With this change, outline will be using the same cliprects as the other visual overflow properties (box-shadow etc).
Reviewed by David Hyatt.
Source/WebCore:
Test: fast/repaint/outline-with-overflow-hidden-ancestor.html
- rendering/LayerFragment.h:
(WebCore::LayerFragment::setRects):
(WebCore::LayerFragment::moveBy): Deleted.
(WebCore::LayerFragment::intersect): Deleted.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::collectFragments):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::paintForegroundForFragments): Deleted.
- rendering/RenderLayer.h:
- rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::writeLayers):
LayoutTests:
- compositing/geometry/limit-layer-bounds-overflow-repaint-expected.txt:
- compositing/masks/mask-of-clipped-layer-expected.txt:
- css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt:
- css2.1/20110323/abspos-replaced-width-margin-000-expected.txt:
- css3/blending/blend-mode-isolation-turn-off-self-painting-layer2-expected.txt:
- css3/blending/blend-mode-isolation-turn-on-self-painting-layer-expected.txt:
- fast/block/positioning/negative-rel-position-expected.txt:
- fast/dynamic/staticY-expected.txt:
- fast/inline/absolute-positioned-block-in-centred-block-expected.txt:
- fast/multicol/flipped-blocks-border-after-expected.txt:
- fast/multicol/pagination-h-horizontal-bt-expected.txt:
- fast/multicol/pagination-h-horizontal-tb-expected.txt:
- fast/multicol/pagination-h-vertical-rl-expected.txt:
- fast/multicol/pagination-v-horizontal-bt-expected.txt:
- fast/multicol/pagination-v-vertical-lr-expected.txt:
- fast/multicol/pagination-v-vertical-rl-expected.txt:
- fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt:
- fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt:
- fast/multicol/progression-reverse-expected.txt:
- fast/multicol/vertical-rl/rules-with-border-before-expected.txt:
- fast/overflow/overflow-update-transform-expected.txt:
- fast/overflow/position-relative-expected.txt:
- fast/repaint/focus-ring-expected.txt:
- fast/repaint/focus-ring-repaint.html:
- fast/repaint/outline-with-overflow-hidden-ancestor-expected.html: Added.
- fast/repaint/outline-with-overflow-hidden-ancestor.html: Added.
- fast/table/overflow-table-collapsed-borders-cell-painting-expected.txt:
- fast/table/overflow-table-collapsed-borders-cell-painting-table-self-painting-layer-expected.txt:
- fast/table/overflow-table-collapsed-borders-section-layer-painting-expected.txt:
- fast/table/overflow-table-collapsed-borders-section-layer-table-self-painting-layer-expected.txt:
- fast/table/overflow-table-collapsed-borders-section-self-painting-layer-painting-expected.txt:
- fast/table/overflow-table-collapsed-borders-section-self-painting-layer-table-self-painting-layer-expected.txt:
- platform/mac/compositing/geometry/clipping-foreground-expected.txt:
- platform/mac/compositing/geometry/root-layer-update-expected.txt:
- platform/mac/compositing/overflow/ancestor-overflow-expected.txt:
- platform/mac/compositing/overflow/nested-scrolling-expected.txt:
- platform/mac/compositing/overflow/overflow-scroll-expected.txt:
- platform/mac/compositing/overflow/parent-overflow-expected.txt:
- platform/mac/compositing/overflow/scrollbar-painting-expected.txt:
- platform/mac/compositing/reflections/nested-reflection-on-overflow-expected.txt:
- platform/mac/compositing/sibling-positioning-expected.txt:
- platform/mac/css3/blending/blend-mode-overflow-expected.txt:
- platform/mac/css3/unicode-bidi-isolate-basic-expected.txt:
- platform/mac/fast/block/float/overhanging-tall-block-expected.txt:
- platform/mac/fast/block/positioning/auto/vertical-rl/007-expected.txt:
- platform/mac/fast/block/positioning/vertical-rl/fixed-positioning-expected.txt:
- platform/mac/fast/borders/border-antialiasing-expected.txt:
- platform/mac/fast/clip/001-expected.txt:
- platform/mac/fast/clip/013-expected.txt:
- platform/mac/fast/clip/014-expected.txt:
- platform/mac/fast/clip/016-expected.txt:
- platform/mac/fast/clip/outline-overflowClip-expected.txt:
- platform/mac/fast/css/clip-zooming-expected.txt:
- platform/mac/fast/forms/validation-message-appearance-expected.txt:
- platform/mac/fast/inline/left-right-center-inline-alignment-in-ltr-and-rtl-blocks-expected.txt:
- platform/mac/fast/line-grid/line-grid-inside-columns-expected.txt:
- platform/mac/fast/line-grid/line-grid-into-columns-expected.txt:
- platform/mac/fast/lists/scrolled-marker-paint-expected.txt:
- platform/mac/fast/multicol/client-rects-expected.txt:
- platform/mac/fast/multicol/column-break-with-balancing-expected.txt:
- platform/mac/fast/multicol/column-rules-expected.txt:
- platform/mac/fast/multicol/column-rules-stacking-expected.txt:
- platform/mac/fast/multicol/columns-shorthand-parsing-expected.txt:
- platform/mac/fast/multicol/float-paginate-complex-expected.txt:
- platform/mac/fast/multicol/float-paginate-empty-lines-expected.txt:
- platform/mac/fast/multicol/float-paginate-expected.txt:
- platform/mac/fast/multicol/layers-in-multicol-expected.txt:
- platform/mac/fast/multicol/layers-split-across-columns-expected.txt:
- platform/mac/fast/multicol/max-height-columns-block-expected.txt:
- platform/mac/fast/multicol/nested-columns-expected.txt:
- platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
- platform/mac/fast/multicol/overflow-across-columns-expected.txt:
- platform/mac/fast/multicol/overflow-across-columns-percent-height-expected.txt:
- platform/mac/fast/multicol/overflow-unsplittable-expected.txt:
- platform/mac/fast/multicol/paginate-block-replaced-expected.txt:
- platform/mac/fast/multicol/pagination/BottomToTop-bt-expected.txt:
- platform/mac/fast/multicol/pagination/BottomToTop-lr-expected.txt:
- platform/mac/fast/multicol/pagination/BottomToTop-rl-expected.txt:
- platform/mac/fast/multicol/pagination/BottomToTop-tb-expected.txt:
- platform/mac/fast/multicol/pagination/LeftToRight-bt-expected.txt:
- platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.txt:
- platform/mac/fast/multicol/pagination/LeftToRight-tb-expected.txt:
- platform/mac/fast/multicol/pagination/RightToLeft-bt-expected.txt:
- platform/mac/fast/multicol/pagination/RightToLeft-lr-expected.txt:
- platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt:
- platform/mac/fast/multicol/pagination/RightToLeft-rl-expected.txt:
- platform/mac/fast/multicol/pagination/RightToLeft-tb-expected.txt:
- platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.txt:
- platform/mac/fast/multicol/pagination/TopToBottom-lr-expected.txt:
- platform/mac/fast/multicol/pagination/TopToBottom-rl-expected.txt:
- platform/mac/fast/multicol/positive-leading-expected.txt:
- platform/mac/fast/multicol/scrolling-column-rules-expected.txt:
- platform/mac/fast/multicol/scrolling-overflow-expected.txt:
- platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.txt:
- platform/mac/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
- platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
- platform/mac/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
- platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
- platform/mac/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
- platform/mac/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
- platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
- platform/mac/fast/multicol/span/span-as-nested-columns-child-expected.txt:
- platform/mac/fast/multicol/span/span-margin-collapsing-expected.txt:
- platform/mac/fast/multicol/table-vertical-align-expected.txt:
- platform/mac/fast/multicol/tall-image-behavior-expected.txt:
- platform/mac/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
- platform/mac/fast/multicol/vertical-lr/column-rules-expected.txt:
- platform/mac/fast/multicol/vertical-lr/float-multicol-expected.txt:
- platform/mac/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
- platform/mac/fast/multicol/vertical-lr/float-paginate-expected.txt:
- platform/mac/fast/multicol/vertical-lr/nested-columns-expected.txt:
- platform/mac/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
- platform/mac/fast/multicol/vertical-rl/column-rules-expected.txt:
- platform/mac/fast/multicol/vertical-rl/float-multicol-expected.txt:
- platform/mac/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
- platform/mac/fast/multicol/vertical-rl/float-paginate-expected.txt:
- platform/mac/fast/multicol/vertical-rl/nested-columns-expected.txt:
- platform/mac/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
- platform/mac/fast/overflow/float-in-relpositioned-expected.txt:
- platform/mac/fast/overflow/overflow-auto-position-absolute-expected.txt:
- platform/mac/fast/overflow/overflow-rtl-expected.txt:
- platform/mac/fast/overflow/paged-x-div-expected.txt:
- platform/mac/fast/overflow/paged-x-div-with-column-gap-expected.txt:
- platform/mac/fast/overflow/paged-x-on-root-expected.txt:
- platform/mac/fast/overflow/paged-x-with-column-gap-expected.txt:
- platform/mac/fast/overflow/paged-y-div-expected.txt:
- platform/mac/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
- platform/mac/fast/regions/repaint/region-painting-via-layout-expected.txt:
- platform/mac/fast/repaint/box-shadow-h-expected.txt:
- platform/mac/fast/repaint/box-shadow-v-expected.txt:
- platform/mac/fast/repaint/layer-outline-expected.txt:
- platform/mac/fast/repaint/layer-outline-horizontal-expected.txt:
- platform/mac/fast/table/edge-offsets-expected.txt:
- platform/mac/fast/transforms/overflow-with-transform-expected.txt:
- platform/mac/fast/transforms/rotated-transform-affects-scrolling-1-expected.txt:
- platform/mac/fast/transforms/rotated-transform-affects-scrolling-2-expected.txt:
- platform/mac/fast/writing-mode/Kusa-Makura-background-canvas-expected.txt:
- platform/mac/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
- platform/mac/scrollbars/scrollbars-on-positioned-content-expected.txt:
- platform/mac/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.txt:
- platform/mac/svg/custom/image-rescale-clip-expected.txt:
- svg/overflow/overflow-on-foreignObject-expected.txt:
- 3:16 PM Changeset in webkit [196243] by
-
- 3 edits3 adds in trunk
Source/JavaScriptCore:
Follow up patch to: [ES6] bound functions .name property should be "bound " + the target function's name
https://bugs.webkit.org/show_bug.cgi?id=153796
Reviewed by Darin Adler.
This follow-up patch addresses some comments/suggestions by
Ryosuke, Darin, and Joe. It simplifies JSBoundFunction::toStringName
and adds some tests for bound names.
- runtime/JSBoundFunction.cpp:
(JSC::hasInstanceBoundFunction):
(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::toStringName):
LayoutTests:
[ES6] bound functions .name property should be "bound " + the target function's name
https://bugs.webkit.org/show_bug.cgi?id=153796
Reviewed by Darin Adler.
- js/bound-function-name-expected.txt: Added.
- js/bound-function-name.html: Added.
- js/script-tests/bound-function-name.js: Added.
(assert):
(assert.foo):
(bar):
- 2:26 PM Changeset in webkit [196242] by
-
- 26 edits6 adds in trunk
CSP: Allow Web Workers initiated from an isolated world to bypass the main world Content Security Policy
https://bugs.webkit.org/show_bug.cgi?id=153622
<rdar://problem/24400023>
Source/WebCore:
Reviewed by Gavin Barraclough.
Fixes an issue where Web Workers initiated from an isolated world (say, a Safari Content Script Extension)
would be subject to the Content Security Policy of the page.
Currently code in an isolated world that does not execute in a Web Worker is exempt from the CSP of
the page. However, code that runs inside a Web Worker that was initiated from an isolated world is
subject to the CSP of the page. Instead, such Web Worker code should also be exempt from the CSP of
the page.
Tests: http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-eval.html
http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-xhr.html
http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect): Modified to ask the script execution context whether to bypass the
main world Content Security Policy now that script execution context knows this information.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy): Deleted; moved logic from here...
- bindings/js/ScriptController.h:
- dom/Document.cpp:
(WebCore::Document::shouldBypassMainWorldContentSecurityPolicy): ...to here.
- dom/Document.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::shouldBypassMainWorldContentSecurityPolicy): Added; defaults to false -
do not bypass the main world Content Security Policy.
- page/EventSource.cpp:
(WebCore::EventSource::create): Modified to ask the script execution context whether to bypass the
main world Content Security Policy now that script execution context knows this information.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::shouldBypassMainWorldContentSecurityPolicy): Deleted.
- page/csp/ContentSecurityPolicy.h:
- workers/AbstractWorker.cpp:
(WebCore::AbstractWorker::resolveURL): Bypass the main world Content Security Policy if applicable.
Added FIXME comment to enforce the child-src directive of the document's CSP (as opposed to the script-src
directive) on the worker's script URL. Also, scriptExecutionContext()->contentSecurityPolicy() should
always be non-null just as we expect scriptExecutionContext()->securityOrigin() to be non-null. Assert
this invariant to catch cases where a ScriptExecutionContext is not properly initialized.
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create): Modified to take boolean argument shouldBypassMainWorldContentSecurityPolicy
as to whether to bypass the main world Content Security Policy and only apply the Content Security
Policy headers when shouldBypassMainWorldContentSecurityPolicy is false.
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope): Pass through a boolean argument shouldBypassMainWorldContentSecurityPolicy
as to whether to bypass the main world Content Security Policy.
- workers/DedicatedWorkerGlobalScope.h:
- workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread): Ditto.
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope): Ditto.
- workers/DedicatedWorkerThread.h:
- workers/Worker.cpp:
(WebCore::Worker::create): Store whether we should bypass the main world Content Security Policy so
that we can pass it to WorkerMessagingProxy::startWorkerGlobalScope() in Worker::notifyFinished().
We need to store this decision here as opposed to determining it at any later time (say, in Worker::notifyFinished())
because it is dependent on the current JavaScript program stack at the time this function is invoked.
(WebCore::Worker::notifyFinished): Pass whether to bypass the main world Content Security Policy.
- workers/Worker.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope): Modified to take a boolean as to whether to bypass the
main world Content Security Policy and store it in a member field. Also, always instantiate a Content
Security Policy object as our current code assumes that one is always created.
- workers/WorkerGlobalScope.h:
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope): Pass through a boolean argument shouldBypassMainWorldContentSecurityPolicy
as to whether to bypass the main world Content Security Policy.
- workers/WorkerMessagingProxy.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData): Modified to take a boolean argument as to
whether to bypass the main world Content Security Policy and store it in a member field.
(WebCore::WorkerThread::WorkerThread): Pass through a boolean argument shouldBypassMainWorldContentSecurityPolicy
as to whether to bypass the main world Content Security Policy.
(WebCore::WorkerThread::workerThread): Ditto.
- workers/WorkerThread.h:
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open): Modified to ask the script execution context whether to bypass the
main world Content Security Policy now that script execution context knows this information.
LayoutTests:
Reviewed by Gavin Barraclough and Andy Estes.
Add tests to ensure that a Web Worker initiated from an isolated world can bypass the main world
Content Security Policy.
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-eval-expected.txt: Added.
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-eval.html: Added.
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-xhr-expected.txt: Added.
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-xhr.html: Added.
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-expected.txt: Added.
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html: Added.
- 11:25 AM Changeset in webkit [196241] by
-
- 4 edits in trunk
[cmake] Move LLVM detection for LLVMDisassembler to OptionsCommon.cmake
https://bugs.webkit.org/show_bug.cgi?id=153961
Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-02-07
Reviewed by Michael Catanzaro.
- Source/cmake/OptionsCommon.cmake:
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
- 11:03 AM Changeset in webkit [196240] by
-
- 4 edits in trunk/Source/JavaScriptCore
String.match should defend against matches that would crash the VM
https://bugs.webkit.org/show_bug.cgi?id=153964
rdar://problem/24301119
Reviewed by Saam Barati.
This fixes a crash in an internal test case.
- runtime/ArgList.cpp:
(JSC::MarkedArgumentBuffer::slowAppend): Use best practices to ensure that the size we
compute makes sense. Crash if it stops making sense, since most users of this API assume
that they are creating something small enough to fit on the stack.
- runtime/ArgList.h:
(JSC::MarkedArgumentBuffer::~MarkedArgumentBuffer):
(JSC::MarkedArgumentBuffer::size):
(JSC::MarkedArgumentBuffer::operator new): Deleted. These were ineffective. According to the
debugger, we were still calling system malloc. So, I changed the code to use fastMalloc()
directly.
(JSC::MarkedArgumentBuffer::operator delete): Deleted.
- runtime/StringPrototype.cpp:
(JSC::stringProtoFuncMatch): Explicitly defend against absurd sizes. Of course, it's still
possible to crash the VM on OOME. That's sort of always been the philosophy of JSC - we
don't guarantee that you'll get a nice-looking error whenever you run out of memory,
since in a GC'd environment you can't really guarantee those things. But, if you have a
match that obvious won't fit in memory, then reporting an error is useful in case this is
a developer experimenting with a buggy regexp.
- 10:44 AM Changeset in webkit [196239] by
-
- 21 edits in trunk/Source
[Cocoa] Replace has_include guards around inclusion of Apple-internal-SDK headers with USE(APPLE_INTERNAL_SDK)
https://bugs.webkit.org/show_bug.cgi?id=153963
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- inspector/remote/RemoteInspectorXPCConnection.mm:
Source/WebCore:
- accessibility/mac/AXObjectCacheMac.mm:
- crypto/CommonCryptoUtilities.cpp:
- crypto/CommonCryptoUtilities.h:
- editing/mac/TextUndoInsertionMarkupMac.h:
- editing/mac/TextUndoInsertionMarkupMac.mm:
- platform/cocoa/TelephoneNumberDetectorCocoa.cpp:
- platform/graphics/cg/ImageSourceCG.cpp:
- platform/graphics/mac/PDFDocumentImageMac.mm:
- platform/network/ios/NetworkStateNotifierIOS.mm:
- platform/network/mac/BlobDataFileReferenceMac.mm:
- platform/network/mac/ResourceHandleMac.mm:
- rendering/RenderThemeMac.mm:
Source/WebKit/mac:
- WebView/WebPDFView.mm:
Source/WTF:
- wtf/SystemTracing.h:
- wtf/WTFThreadData.h:
- wtf/spi/darwin/CommonCryptoSPI.h:
- 2:09 AM Changeset in webkit [196238] by
-
- 4 edits in trunk
REGRESSION(r195661): [GTK] Scrollbar tests crashing after overlay scrollbar groundwork
https://bugs.webkit.org/show_bug.cgi?id=153695
Reviewed by Michael Catanzaro.
Source/WebCore:
The problem is that ScrollAnimation objects are not destroyed by
the ScrollAnimator destructor, because I forgot to add a virtual
destructor for ScrollAnimation in r195661.
- platform/ScrollAnimation.h:
(WebCore::ScrollAnimation::~ScrollAnimation):
LayoutTests:
- platform/gtk/TestExpectations:
Feb 6, 2016:
- 10:34 PM Changeset in webkit [196237] by
-
- 9 edits in trunk/LayoutTests
Unreviewed, update several layout tests for WK1 after r196227.
- http/tests/security/cross-frame-access-enumeration-expected.txt:
- http/tests/security/cross-frame-access-enumeration.html:
- http/tests/security/cross-frame-access-get-expected.txt:
- http/tests/security/cross-frame-access-get.html:
- http/tests/security/cross-frame-access-history-get-expected.txt:
- http/tests/security/cross-frame-access-history-get-override-expected.txt:
- http/tests/security/cross-frame-access-history-get-override.html:
- http/tests/security/cross-frame-access-history-get.html:
- 9:55 PM Changeset in webkit [196236] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r195432): Web Inspector: bottom right section of the styles sidebar is 1px taller than the console prompt
https://bugs.webkit.org/show_bug.cgi?id=153959
<rdar://problem/24541053>
Reviewed by Timothy Hatcher.
- UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content ~ .options-container):
(.sidebar > .panel.details.css-style > .content ~ .class-list-container)::
Revert the height to what it used to be prior r195432.
- 6:21 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 6:17 PM Changeset in webkit [196235] by
-
- 5 edits in trunk/LayoutTests
[GTK] Rebaseline some tests and update expectations after r196222
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- platform/gtk/fast/clip/outline-overflowClip-expected.txt:
- platform/gtk/fast/repaint/layer-outline-expected.txt:
- platform/gtk/fast/repaint/layer-outline-horizontal-expected.txt:
- 6:03 PM Changeset in webkit [196234] by
-
- 2 edits in trunk/Source/WebKit2
Call CFRelease() on SecRequirementRef when no longer needed
https://bugs.webkit.org/show_bug.cgi?id=153954
<rdar://problem/24540259>
Reviewed by Dan Bernstein.
- Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox):
- 5:52 PM Changeset in webkit [196233] by
-
- 2 edits in trunk/LayoutTests
[GTK] imported/blink/compositing/squashing/abspos-under-abspos-overflow-scroll.html is flaky
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 5:51 PM Changeset in webkit [196232] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
FTL must store the call site index before runtime calls, even if it's the tail call slow path
https://bugs.webkit.org/show_bug.cgi?id=153955
rdar://problem/24290970
Reviewed by Saam Barati.
This is necessary because you could throw an exception in a host call on the tail call's slow
path. That'll route us to lookupExceptionHandler(), which unwinds starting with the call site
index of our frame. Bad things happen if it's not set. Prior to this patch it was possible
for the call site index field to be uninitialized, which meant that the throwing machinery
was making a wild guess about where we are.
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall):
- tests/stress/tail-call-host-call-throw.js: Added.
- 4:45 PM Changeset in webkit [196231] by
-
- 2 edits in trunk/PerformanceTests
Code clean up: Move Rotater function closer to Stage static methods.
The Rotater is used together with those methods; keep them close.
- Animometer/tests/resources/main.js:
- 4:39 PM Changeset in webkit [196230] by
-
- 3 edits in trunk/PerformanceTests
Update the JS includes due to ResultsTable move.
- Animometer/developer.html:
- Animometer/index.html:
- 4:34 PM Changeset in webkit [196229] by
-
- 7 edits in trunk/PerformanceTests
Move createElement and createSVGElement to Utilities.
- Animometer/resources/extensions.js:
(Utilities.createElement): Added.
(Utilities.createSVGElement): Added.
(DocumentExtension.createElement): Deleted.
(DocumentExtension.createSvgElement): Deleted.
- Animometer/resources/debug-runner/animometer.js:
- Animometer/resources/runner/animometer.js:
- Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
- Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
- Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
- 4:27 PM Changeset in webkit [196228] by
-
- 10 edits in trunk/PerformanceTests
Add a convenience function for creating a class.
The pattern for creating a class is common enough to add as a Utilities
helper function. It also makes it easy to collapse class definitions when
editing.
- Animometer/resources/debug-runner/animometer.js: Move ProgressBar definition,
since it is only used here.
- Animometer/resources/runner/animometer.js: Move ResultsDashboard and
ResultsTable definition, since it is only used here.
- Animometer/resources/extensions.js: Move Utilities definition to the top. Convert
Point, Insets, SimplePromise.
(ProgressBar): Moved to animometer.js.
(ResultsDashboard): Moved to animometer.js.
(ResultsTable): Moved to animometer.js.
- Animometer/resources/runner/benchmark-runner.js: Convert BenchmarkRunnerState,
BenchmarkRunner.
- Animometer/tests/resources/main.js: Convert Rotater, Stage, Animator, Benchmark.
- Animometer/tests/resources/sampler.js: Convert Experiment, Sampler.
Convert test primitives.
- Animometer/tests/master/resources/canvas-tests.js: Convert CanvasLineSegment,
CanvasArc, CanvasLinePoint.
- Animometer/tests/simple/resources/simple-canvas-paths.js: Convert CanvasLineSegment,
CanvasLinePoint, CanvasQuadraticSegment, CanvasQuadraticPoint, CanvasBezierSegment,
CanvasBezierPoint, CanvasArcToSegment, CanvasArcToSegmentFill, CanvasArcSegment,
CanvasArcSegmentFill, CanvasRect, CanvasRectFill.
- Animometer/tests/simple/resources/tiled-canvas-image.js: Convert CanvasImageTile.
- 4:18 PM Changeset in webkit [196227] by
-
- 18 edits2 deletes in trunk
Prevent cross-origin access to window.history
https://bugs.webkit.org/show_bug.cgi?id=153931
Reviewed by Darin Adler.
Source/WebCore:
Prevent cross-origin access to window.history to match the specification [1]
and the behavior of other browsers (tested Firefox and Chrome).
[1] https://html.spec.whatwg.org/multipage/browsers.html#security-window
No new tests, already covered by existing tests that
were updated in this patch.
- bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
(WebCore::JSHistory::state): Deleted.
- page/DOMWindow.idl:
- page/History.idl:
LayoutTests:
Update / rebaseline several layout tests now that cross-origin access to
window.history is prevented.
- fast/frames/sandboxed-iframe-history-denied-expected.txt:
- http/tests/history/cross-origin-replace-history-object-child-expected.txt:
- http/tests/security/cross-frame-access-call-expected.txt:
- http/tests/security/cross-frame-access-call.html:
- http/tests/security/cross-frame-access-delete-expected.txt:
- http/tests/security/cross-frame-access-delete.html:
- http/tests/security/cross-frame-access-history-prototype-expected.txt:
- http/tests/security/cross-frame-access-history-put.html: Removed.
- http/tests/security/cross-frame-access-object-getPrototypeOf-expected.txt:
- http/tests/security/cross-frame-access-object-getPrototypeOf.html:
- http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt:
- http/tests/security/cross-frame-access-object-setPrototypeOf.html:
- http/tests/security/resources/cross-frame-iframe-for-history-put-test.html: Removed.
- 3:41 PM Changeset in webkit [196226] by
-
- 3 edits in trunk/Source/WebCore
ScrollbarPainters needs to be deallocated on the main thread
https://bugs.webkit.org/show_bug.cgi?id=153932
-and corresponding-
rdar://problem/24015483
Reviewed by Dan Bernstein.
Darin pointed out that this was still race-y. There was still a race
condition between the destruction of the two local variables and the
destruction of the lambda on the main thread. This should fix that.
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::~ScrollingTreeFrameScrollingNodeMac):
(WebCore::ScrollingTreeFrameScrollingNodeMac::releaseReferencesToScrollbarPaintersOnTheMainThread):
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
- 3:36 PM Changeset in webkit [196225] by
-
- 5 edits in trunk/PerformanceTests
Minor improvements to debug harness.
- Animometer/developer.html:
- Animometer/resources/debug-runner/animometer.css:
(#suites): Put the complexity text boxes closer to the test names.
(#options):
(#rawFPS circle): Make the interval FPS appear as a separate data series, with a line.
(#intervalFPS path):
(#intervalFPS circle):
- Animometer/resources/debug-runner/animometer.js:
(window.optionsManager.updateLocalStorageFromUI): Convert number inputs from text.
(window.suitesManager._onChangeTestCheckbox): Refactor to take a checkbox.
(window.suitesManager._createTestElement): Enhance such that typing into the complexity
input will automatically select that test for running.
(window.suitesManager.updateLocalStorageFromJSON): Make the harness work for private
browsing.
- Animometer/resources/debug-runner/graph.js: Separate the intervalFPS data, and show
more accuracy in timestamps.
- 3:31 PM Changeset in webkit [196224] by
-
- 12 edits in trunk/PerformanceTests
Refactor helper methods for getting random values for a stage.
Instead of requiring a Stage instance, just attach it to the Stage object.
- Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
- Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
- Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
- Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
- Animometer/tests/master/resources/canvas-tests.js:
- Animometer/tests/master/resources/particles.js:
- Animometer/tests/misc/resources/canvas-electrons.js:
- Animometer/tests/misc/resources/canvas-stars.js:
- Animometer/tests/misc/resources/compositing-transforms.js:
- Animometer/tests/resources/main.js:
- Animometer/tests/simple/resources/simple-canvas-paths.js:
- 3:18 PM Changeset in webkit [196223] by
-
- 57 edits in trunk/Source
Finish auditing call sites of upper() and lower(), eliminate many, and rename the functions
https://bugs.webkit.org/show_bug.cgi?id=153905
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- runtime/IntlObject.cpp:
(JSC::canonicalLangTag): Use converToASCIIUppercase on the language tag.
- runtime/StringPrototype.cpp:
(JSC::stringProtoFuncToLowerCase): Tweak style and update for name change.
(JSC::stringProtoFuncToUpperCase): Ditto.
Source/WebCore:
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::isTypeSupported): Use convertToASCIILowercase on MIME type.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText): Use new names for lower and upper. Also
tweaked style a tiny bit and used u_toupper rather than converting an entire
string to uppercase.
- dom/Document.cpp:
(WebCore::Document::addImageElementByCaseFoldedUsemap): Renamed to reflect the use
of case folding rather than lowercasing.
(WebCore::Document::removeImageElementByCaseFoldedUsemap): Ditto.
(WebCore::Document::imageElementByCaseFoldedUsemap): Ditto.
- dom/Document.h: Ditto.
- dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::getElementByCaseFoldedMapName): Ditto.
(WebCore::DocumentOrderedMap::getElementByCaseFoldedUsemap): Ditto.
- dom/DocumentOrderedMap.h: Ditto.
- dom/TreeScope.cpp:
(WebCore::TreeScope::getImageMap): Removed unneeded special case for null string.
Simplified logic for cases where the URL does not have a "#" character in it.
Use case folding instead of lowercase.
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_processText): Removed unneded special case for the empty string.
Use makCapitalized instead of Cocoa function for "capitalize". Use upper and lower
functions by their new names.
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute): Use case folding instead of
lowerasing for the usemap attribute.
(WebCore::HTMLImageElement::insertedInto): Ditto.
(WebCore::HTMLImageElement::removedFrom): Ditto.
(WebCore::HTMLImageElement::matchesCaseFoldedUsemap): Ditto.
- html/HTMLImageElement.h: Rename since usemap is case folded now, not lowercased.
- html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::imageElement): Use case folding instead of lowercasing
for usemap.
(WebCore::HTMLMapElement::parseAttribute): Ditto.
- platform/Language.cpp:
(WebCore::canonicalLanguageIdentifier): Use convertToASCIILowercase for language code.
(WebCore::indexOfBestMatchingLanguageInList): Ditto.
- platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Use new name for the upper function.
- platform/network/HTTPParsers.cpp:
(WebCore::parseContentTypeOptionsHeader): Use equalLettersIgnoringASCIICase instead
of lowercasing to check for a specific header value.
- platform/network/MIMEHeader.cpp:
(WebCore::retrieveKeyValuePairs): Use convertToASCIILowercase for MIME header name.
(WebCore::MIMEHeader::parseContentTransferEncoding): Use equalLettersIgnoringASCIICase
instead of lowercasing.
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::allowsAnyHTTPSCertificateHosts): Make this hash ASCII case-insensitive.
(WebCore::clientCertificates): Ditto.
(WebCore::ResourceHandle::createCFURLConnection): Remove call to lower since the
set is now ASCII case-insensitive.
(WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate): Ditto.
(WebCore::ResourceHandle::setClientCertificate): Ditto.
- platform/network/curl/CookieJarCurl.cpp:
(WebCore::getNetscapeCookieFormat): Use equalLettersIgnoringASCIICase instead of
lowercasing.
- platform/network/curl/MultipartHandle.cpp:
(WebCore::MultipartHandle::didReceiveResponse): Use convertToASCIILowercase to
make a MIME type lowercase.
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate): Removed unneeded
conversion to lowercase now that the set is ASCII case-insensitive.
(WebCore::ResourceHandle::setClientCertificate): Removed code that populates a map
that is then never used for anything.
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::headerCallback): Use convertToASCIILowercase for MIME type.
- platform/network/curl/SSLHandle.cpp: Made hash maps keyed by host names
ASCII case-insensitive.
(WebCore::addAllowedClientCertificate): Removed lowercasing since the map itself
is now ASCII case insensitve.
(WebCore::setSSLClientCertificate): Ditto. Also use auto for iterator type so we
don't have to write out the map type.
(WebCore::sslIgnoreHTTPSCertificate): Ditto.
(WebCore::certVerifyCallback): Ditto.
- platform/network/soup/ResourceHandleSoup.cpp: Made hash maps keyed by host names
ASCII case-insensitive.
(WebCore::allowsAnyHTTPSCertificateHosts): Ditto.
(WebCore::handleUnignoredTLSErrors): Ditto.
(WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate): Ditto.
(WebCore::ResourceHandle::setClientCertificate): Ditto.
- platform/text/LocaleToScriptMappingDefault.cpp: Made hash maps keyed by script
names ASCII case-insensitive. USE WTF_ARRAY_LENGTH as appropriate.
(WebCore::scriptNameToCode): Use modern style to initialize the map. Removed
unnecessary lowercasing of the script name before looking at the map.
(WebCore::localeToScriptCodeForFontSelection): Ditto.
- platform/text/win/LocaleWin.cpp:
(WebCore::convertLocaleNameToLCID): Made map ASCII case-insensitive and removed
unneeded lowercasing.
- platform/win/PasteboardWin.cpp:
(WebCore::clipboardTypeFromMIMEType): Use equalLettersIgnoringASCIICase instead
of lowercasing.
- rendering/RenderText.cpp:
(WebCore::applyTextTransform): Use new names for the upper and lower functions.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseIsXML): Remove unneeded lowercasing, since
DOMImplementation now has ASCII case-insensitive handling of MIME types.
Source/WebKit/mac:
- Plugins/WebBasePluginPackage.mm:
(-[WebBasePluginPackage getPluginInfoFromPLists]): Use modern for loops.
(-[WebBasePluginPackage supportsExtension:]): Use convertToASCIILowercase for extension assert.
Also use modern for loop.
(-[WebBasePluginPackage supportsMIMEType:]): Ditto.
(-[WebBasePluginPackage MIMETypeForExtension:]): Ditto.
Source/WebKit/win:
- Plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::pluginForMIMEType): Use ASCII case-insensitive map rather
than lowercasing the MIME type.
(WebCore::PluginDatabase::setPreferredPluginForMIMEType): Ditto.
- Plugins/PluginDatabase.h: Make m_preferredPlugins use an ASCII case-insensitive hash.
- Plugins/PluginPackage.h: Use ASCII case-insensitive hash for maps keyed by MIME type.
- Plugins/PluginPackageWin.cpp:
(WebCore::PluginPackage::fetchInfo): Use convertToASCIILowercase to lowercase a MIME type.
Source/WebKit2:
- NetworkProcess/CustomProtocols/CustomProtocolManager.h: Use ASCII case-insensitive hash
for set of registered schemes.
- Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::getPluginInfoFromPropertyLists): Use convertToASCIILowercase for MIME type and
for file extensions.
- Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
(WebKit::NetscapePluginModule::parseMIMEDescription): Use convertToASCIILowercase for
MIME description.
- UIProcess/API/efl/ewk_context.cpp:
(ewk_context_preferred_languages_set): Use convertToASCIILowercase for language.
- UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_preferred_languages): Use convertToASCIILowercase for language.
- UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::findPluginForExtension): Use Vector::contains instead of
writing it out using std::find.
(WebKit::pathExtension): Lowercase the result with convertToASCIILowercase instead of
leaving that to the caller.
(WebKit::PluginInfoStore::findPlugin): Removed call to lower since pathExtension
handles that now.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findPlugin): Use convertToASCIILowercase for MIME type.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::globalURLSchemesWithCustomProtocolHandlers): Use
an ASCII case-insensitive hash.
(WebKit::WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers):
Remove lowercasing, since the hash is now ASCII case-insensitive.
(WebKit::WebProcessPool::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers):
Ditto.
- UIProcess/WebProcessPool.h: Use an ASCII case-insensitive hash.
- WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::initialize): Use convertToASCIILowercase on parameter names
and values.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::pluginSupportsExtension): Use convertToASCIILowercase for extension assertion.
Also use a modern for loop.
(WebKit::WebFrameLoaderClient::objectContentType): Make the checks for empty MIME types
a little less redundant. Reordered logic to avoid checking the list of supported MIME
types extra times, and to eliminate the need for a boolean. Use convertToASCIILowercase
on the extension.
Source/WTF:
- wtf/text/AtomicString.cpp:
(WTF::AtomicString::lower): Deleted.
- wtf/text/AtomicString.h: Deleted the lower function.
- wtf/text/StringImpl.cpp:
(WTF::StringImpl::convertToLowercaseWithoutLocale): Renamed from lower.
(WTF::StringImpl::convertToUppercaseWithoutLocale): Renamed from upper.
(WTF::StringImpl::convertToLowercaseWithLocale): Renamed from lower.
(WTF::StringImpl::convertToUppercaseWithLocale): Renamed from upper.
(WTF::StringImpl::foldCase): Added fast cases for ASCII since this is
now used in some more-performance-critical code.
- wtf/text/StringImpl.h: Renamed lower and upper.
- wtf/text/WTFString.cpp:
(WTF::String::convertToLowercaseWithoutLocale): Renamed from lower.
(WTF::String::convertToUppercaseWithoutLocale): Renamed from upper.
(WTF::String::convertToLowercaseWithLocale): Renamed from lower.
(WTF::String::convertToUppercaseWithLocale): Renamed from upper.
- wtf/text/WTFString.h: Renamed lower and upper. Removed unneeded comment.
- 3:07 PM Changeset in webkit [196222] by
-
- 46 edits4 adds in trunk
Outline should contribute to visual overflow.
https://bugs.webkit.org/show_bug.cgi?id=153299
This patch eliminates the special outline handling (RenderView::setMaximalOutlineSize).
Now that outline is part of visual overflow, we don't have to inflate the layers to accomodate
outline borders.
This patch fixes several focusring related repaint issues. However when both the outline: auto
and the descendant renderer are composited, we still don't paint properly in certain cases. -not a regression.
(Also when parent renderer has overflow: hidden repaint does not take outline into account. -regression.)
It changes column behavior (see TestExpectations) since outline behaves now like any other visual overflow properties.
Reviewed by David Hyatt.
Source/WebCore:
Test: fast/repaint/focus-ring-repaint.html
fast/repaint/focus-ring-repaint-with-negative-offset.html
- css/html.css: resetting to old behavior.
(:focus):
(input:focus, textarea:focus, isindex:focus, keygen:focus, select:focus):
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::addToLine):
(WebCore::InlineFlowBox::addOutlineVisualOverflow):
(WebCore::InlineFlowBox::computeOverflow):
(WebCore::InlineFlowBox::paint): Deleted.
- rendering/InlineFlowBox.h:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::outlineStyleForRepaint):
(WebCore::RenderBlock::paint): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock): Deleted.
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren): Deleted.
- rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::addVisualEffectOverflow):
(WebCore::RenderBox::applyVisualEffectOverflow):
(WebCore::RenderBox::clippedOverflowRectForRepaint): Deleted.
- rendering/RenderBoxModelObject.h:
- rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::paint): Deleted.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
(WebCore::RenderElement::issueRepaintForOutlineAuto):
(WebCore::RenderElement::updateOutlineAutoAncestor):
(WebCore::RenderElement::computeMaxOutlineSize): Deleted.
(WebCore::RenderElement::styleWillChange): Deleted.
- rendering/RenderElement.h:
(WebCore::RenderElement::hasContinuation):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutlineForLine): Deleted.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
- rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::anyLineIntersectsRect):
(WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
(WebCore::RenderLineBoxList::paint):
(WebCore::isOutlinePhase): Deleted.
- rendering/RenderLineBoxList.h:
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::computePreferredLogicalWidths):
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint): Deleted.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::propagateRepaintToParentWithOutlineAutoIfNeeded): The renderer with outline: auto is responsible for
painting focusring around the descendants. If we issued repaint only on the descendant when it changes,
the focusring would not refresh properly. We have to find the ancestor with outline: auto, inflate the repaint rect and
issue the repaint on the ancestor if we crossed repaint container.
(WebCore::RenderObject::repaintUsingContainer):
(WebCore::RenderObject::adjustRectForOutlineAndShadow):
(WebCore::RenderObject::setHasOutlineAutoAncestor):
(WebCore::RenderObject::adjustRectWithMaximumOutline): Deleted.
- rendering/RenderObject.h: We mark the descendants of outline: auto so that
when a child renderer changes we can propagate the repaint to the ancestor with outline.
(WebCore::RenderObject::hasOutlineAutoAncestor):
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):
- rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint): Deleted.
(WebCore::RenderReplaced::clippedOverflowRectForRepaint): Deleted.
- rendering/RenderTable.cpp:
(WebCore::RenderTable::paint): Deleted.
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::clippedOverflowRectForRepaint): Deleted.
(WebCore::RenderTableCell::paintCollapsedBorders): Deleted.
- rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
(WebCore::RenderTableRow::clippedOverflowRectForRepaint): Deleted.
- rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::computeOverflowFromCells): Deleted.
(WebCore::RenderTableSection::paintObject): Deleted.
- rendering/RenderTheme.h:
(WebCore::RenderTheme::platformFocusRingWidth):
- rendering/RenderView.cpp:
(WebCore::RenderView::setMaximalOutlineSize): Deleted.
- rendering/RenderView.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeAffectsVisualOverflow):
(WebCore::RenderStyle::outlineWidth):
- rendering/style/RenderStyle.h:
LayoutTests:
- fast/repaint/focus-ring-repaint-expected.txt: Added.
- fast/repaint/focus-ring-repaint.html: Added.
- fast/repaint/focus-ring-repaint-expected-with-negative-offset.txt: Added.
- fast/repaint/focus-ring-repaint-with-negative-offset.html: Added.
- TestExpectations:
- platform/mac/TestExpectations:
- platform/mac/compositing/geometry/ancestor-overflow-change-expected.txt:
- platform/mac/compositing/geometry/composited-in-columns-expected.txt:
- platform/mac/compositing/layer-creation/overlap-animation-container-expected.txt:
- platform/mac/compositing/layer-creation/stacking-context-overlap-nested-expected.txt:
- platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt:
- platform/mac/fast/clip/outline-overflowClip-expected.txt:
- platform/mac/fast/inline/continuation-outlines-with-layers-expected.txt:
- platform/mac/fast/repaint/4776765-expected.txt: Added.
- platform/mac/fast/repaint/focus-ring-expected.txt: Added.
- platform/mac/fast/repaint/layer-outline-expected.txt:
- platform/mac/fast/repaint/layer-outline-horizontal-expected.txt:
- platform/mac/svg/custom/focus-ring-expected.txt:
- 10:14 AM Changeset in webkit [196221] by
-
- 2 edits in trunk/LayoutTests
[GTK] Various tests are flaky
More unreviewed test gardening.
- platform/gtk/TestExpectations:
- 10:13 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 10:12 AM Changeset in webkit [196220] by
-
- 7 edits2 adds in trunk
Object.getOwnPropertyDescriptor() does not work on sub-frame's window
https://bugs.webkit.org/show_bug.cgi?id=153925
Reviewed by Darin Adler.
Source/JavaScriptCore:
Calling Object.getOwnPropertyDescriptor() on a sub-frame's window was
returning undefined for that window's own properties. The reason was
that the check getOwnPropertySlot() is using to make sure the
PropertySlot is not for a property coming from the prototype was wrong.
The check was checking that 'this != slotBase' which works fine unless
this is a JSProxy (e.g. JSDOMWindowShell). To handle proxies, the code
was also checking that 'slotBase.toThis() != this', attempting to
get the slotBase/Window's proxy. However, due to the implementation of
toThis(), we were getting the lexical global object's proxy instead of
slotBase's proxy. To avoid this issue, the new code explicitly checks
if 'this' is a JSProxy and makes sure 'JSProxy::target() != slotBase',
instead of using toThis().
- runtime/JSObject.cpp:
(JSC::JSObject::getOwnPropertyDescriptor):
LayoutTests:
- fast/dom/Window/getOwnPropertyDescriptor-other-window-expected.txt: Added.
- fast/dom/Window/getOwnPropertyDescriptor-other-window.html: Added.
Add test case to test calling Object.getOwnPropertyDescriptor() on a
sub-frame's window.
- http/tests/security/cross-origin-window-property-access-expected.txt:
- http/tests/security/cross-origin-window-property-access.html:
- Update test use use an iframe instead of opening a Window for convenience.
- Use an actual cross-origin URL. The previous URL was same-origin and therefore the test would have failed if window.location was a proper getter/setter instead of a 'value' descriptor.
- Add more tests to cover other Window properties (such as 'name') which are actual getter / setters to make sure using the current window's getter on a cross origin window does not bypass the security origin checks.
- http/tests/security/cross-frame-access-getOwnPropertyDescriptor-expected.txt:
- http/tests/security/cross-frame-access-getOwnPropertyDescriptor.html:
- Drop checks for properties for which cross-origin access via
getOwnPropertyDescriptor() now works. They used to not work because of the bug
this patch fixes, and not due to security checks.
- Most of these properties are part of the properties that the specification
states can be accessed cross-origin:
https://html.spec.whatwg.org/multipage/browsers.html#security-window
- ALL of these properties could already be accessed cross origin via regular
property getters (e.g. crossOriginWindow.blur) in Safari 9 so there should not
be any reason for getOwnPropertyDescriptor() not to work.
- I have also verified that Firefox allows cross-origin access for all these properties (via regular getters or getOwnPropertyDescriptor), except for the 'history' property. We may want to align our behavior here and prevent cross-origin access to 'window.history' but this is not a regression in this patch. You could already access crossOriginWindow.history in Safari 9.
- 9:33 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 9:26 AM Changeset in webkit [196219] by
-
- 2 edits in trunk/LayoutTests
[GTK] Various tests are flaky
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 9:26 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 9:01 AM Changeset in webkit [196218] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening for unexpected passes
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 9:00 AM Changeset in webkit [196217] by
-
- 7 edits in trunk/Source
[iOS] Throw away linked code when navigating to a new page.
<https://webkit.org/b/153851>
Reviewed by Gavin Barraclough.
Source/JavaScriptCore:
Add a VM API for throwing away linked code only.
- runtime/VM.cpp:
(JSC::VM::deleteAllLinkedCode):
- runtime/VM.h:
Source/WebCore:
When navigating to a new page, tell JSC to throw out any linked code it has lying around.
Linked code is tied to a specific global object, and as we're creating a new one for the
new page, none of it is useful to us here.
In the event that the user navigates back, the cost of relinking some code will be far
lower than the memory cost of keeping all of it around.
This landed previously but was rolled out due to a Speedometer regression. I've made one
minor but important change here: only throw away code if we're navigating away from an
existing history item. Or in other words, don't throw away code for "force peeks" or any
other navigations that are not traditional top-level main frame navigations.
- bindings/js/GCController.cpp:
(WebCore::GCController::deleteAllLinkedCode):
- bindings/js/GCController.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
- 7:55 AM WebKitGTK/Gardening/Calendar edited by
- Move myself to Saturday because Friday gardening sucks (diff)
- 5:44 AM Changeset in webkit [196216] by
-
- 2 edits in trunk/Source/WebCore
Added implementations of AXObjectCache methods for !HAVE(ACCESSIBILITY).
https://bugs.webkit.org/show_bug.cgi?id=153924
Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-02-06
Reviewed by Andreas Kling.
No new tests needed.
- accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::ariaModalNode): Added stub implementation.
(WebCore::AXObjectCache::postLiveRegionChangeNotification): Ditto.
(WebCore::AXObjectCache::rangeForNodeContents): Ditto.
(WebCore::AXObjectCache::setIsSynchronizingSelection): Ditto.
(WebCore::AXObjectCache::setTextSelectionIntent): Ditto.
(WebCore::AXAttributeCacheEnabler::AXAttributeCacheEnabler): Ditto.
(WebCore::AXAttributeCacheEnabler::~AXAttributeCacheEnabler): Ditto.
- 4:51 AM Changeset in webkit [196215] by
-
- 3 edits in trunk/Source/WebCore
Use scope stack instead of nested TreeResolvers for shadow trees
https://bugs.webkit.org/show_bug.cgi?id=153893
Reviewed by Andreas Kling.
Make TreeResolver per-document. This is a step towards iterative style resolve.
This is done replacing use of nested TreeResolvers with a scope stack that maintains
the style resolver and the selector filter for the current tree scope.
- style/StyleTreeResolver.cpp:
(WebCore::Style::ensurePlaceholderStyle):
(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::TreeResolver):
(WebCore::Style::shouldCreateRenderer):
(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::TreeResolver::createRenderTreeForShadowRoot):
(WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees):
(WebCore::Style::TreeResolver::createRenderTreeRecursively):
(WebCore::Style::TreeResolver::resolveLocally):
(WebCore::Style::TreeResolver::resolveShadowTree):
(WebCore::Style::TreeResolver::resolveBeforeOrAfterPseudoElement):
(WebCore::Style::TreeResolver::resolveChildren):
(WebCore::Style::TreeResolver::resolveSlotAssignees):
(WebCore::Style::TreeResolver::resolveRecursively):
(WebCore::Style::TreeResolver::resolve):
(WebCore::Style::detachRenderTree):
- style/StyleTreeResolver.h:
(WebCore::Style::TreeResolver::scope):
(WebCore::Style::TreeResolver::pushScope):
(WebCore::Style::TreeResolver::pushEnclosingScope):
(WebCore::Style::TreeResolver::popScope):
- 3:29 AM Changeset in webkit [196214] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Fix more incorrect ASSERT introduced in r196053.
- WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePluginX11::handleMouseEvent):
(WebKit::NetscapePluginX11::handleWheelEvent):
(WebKit::NetscapePluginX11::setFocus):
(WebKit::NetscapePluginX11::handleMouseEnterEvent):
(WebKit::NetscapePluginX11::handleMouseLeaveEvent):
(WebKit::NetscapePluginX11::handleKeyboardEvent):
- 2:12 AM Changeset in webkit [196213] by
-
- 7 edits in trunk/Source
Unreviewed, rolling out r196104.
https://bugs.webkit.org/show_bug.cgi?id=153940
Regressed Speedometer on iOS (Requested by kling on #webkit).
Reverted changeset:
"[iOS] Throw away linked code when navigating to a new page."
https://bugs.webkit.org/show_bug.cgi?id=153851
http://trac.webkit.org/changeset/196104