Timeline



May 13, 2016:

11:31 PM Changeset in webkit [200917] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix the iOS build after the protector variables renaming.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):

10:51 PM Changeset in webkit [200916] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

jsc: samplingProfilerStackTraces() without starting sampling should not cause jsc to crash
https://bugs.webkit.org/show_bug.cgi?id=157704

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-13
Reviewed by Saam Barati.

  • jsc.cpp:

(functionStartSamplingProfiler):
(functionSamplingProfilerStackTraces):
Throw an exception instead of crashing if we haven't started sampling.

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::startTracking):

  • runtime/VM.h:
  • runtime/VM.cpp:

(JSC::VM::ensureSamplingProfiler):
Switch ensure to returning a reference, like most other ensures.

10:14 PM Changeset in webkit [200915] by Alan Bujtas
  • 17 edits in trunk

All scrolling height/width values should be integral rounded.
https://bugs.webkit.org/show_bug.cgi?id=157687

Reviewed by Simon Fraser.

Both clientHeight(Width) and scrollHeight(width) need to be explicitly integral
rounded in order to ensure that scrollable content is computed properly.
This will evolve into subpixel snapping once we apply subpixel arithmetics on scrolling.

Source/WebCore:

Not testable.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::scrollWidth):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::horizontalScrollbarStart):
(WebCore::RenderLayer::scrollWidth):
(WebCore::RenderLayer::scrollHeight):
(WebCore::RenderLayer::computeScrollDimensions):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):

  • rendering/RenderLayer.h:

LayoutTests:

  • platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
9:58 PM Changeset in webkit [200914] by Dewei Zhu
  • 3 edits in trunk/Tools

Fix JSBench which causes math domain error in run-benchmark script.
https://bugs.webkit.org/show_bug.cgi?id=157697
<rdar://problem/26279292>

Reviewed by Ryosuke Niwa.

Some tests of JSBench give time usage to be 0 ms which will causes error while calculating geometric mean.
Also fix a round-off error while calculating stdev.

  • Scripts/webkitpy/benchmark_runner/benchmark_results.py:

(BenchmarkResults._format_values):

  • Scripts/webkitpy/benchmark_runner/data/patches/JSBench.patch:
9:45 PM Changeset in webkit [200913] by beidson@apple.com
  • 5 edits in trunk

Extend protector naming code style guideline to cover operator= assignment.
https://bugs.webkit.org/show_bug.cgi?id=157693

Reviewed by Darin Adler.

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_identifier_name_in_declaration):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_names):

Websites/webkit.org:

  • code-style.md:
7:40 PM Changeset in webkit [200912] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix iOS Build.

  • Shared/AssistedNodeInformation.h:

(WebKit::OptionItem::OptionItem):

7:29 PM Changeset in webkit [200911] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r200463): Autofill Credit Card expected but got Autofill Contact
<rdar://problem/26251538>
https://bugs.webkit.org/show_bug.cgi?id=157701

Reviewed by Dan Bernstein.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame _certificateChain]):
We need to do a retain-autorelease here now because the CertificateInfo's that contain the
cached certificate chain, are being destroyed, and therefore destroying the chain, before this
function returns. This used to work when the chain wasn't just a cache, because there was still
a strong reference to it being held by the ResourceResponse's CertificateInfo copy, but now
there is none.

7:27 PM Changeset in webkit [200910] by dino@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] <select> elements popover should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157699
<rdar://problem/26282319>

Reviewed by Simon Fraser.

Some follow-up changes as suggested by Darin in review.

  • Shared/AssistedNodeInformation.h: Use initializers so we can

remove the constructors.
(WebKit::OptionItem::OptionItem): Deleted.
(WebKit::AssistedNodeInformation::AssistedNodeInformation): Deleted.

  • UIProcess/ios/forms/WKFormSelectPopover.mm: Add a comment to explain

why we are explicitly setting the language.
(-[WKSelectTableViewController initWithView:hasGroups:]):

7:26 PM Changeset in webkit [200909] by Chris Dumez
  • 8 edits in trunk/Source

[NetworkCache] Avoid having to re-parse URLs after deserializing them
https://bugs.webkit.org/show_bug.cgi?id=157660

Reviewed by Darin Adler.

Source/WebCore:

Avoid having to re-parse URLs after deserializing them in the WebKit2
network cache storage implementation.

We previously serialized URLs as Strings, which meant that we had the
re-parse them upon deserialization. We now serialize all of the URL
data members to avoid having to parse the String again.

  • platform/URL.h:

(WebCore::URL::encode):
(WebCore::URL::decode):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::encodeWithoutPlatformData):
(WebCore::ResourceRequestBase::decodeWithoutPlatformData):

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Deleted.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Deleted.

  • NetworkProcess/cache/NetworkCacheCoders.h:

Drop template specializations used by our network cache for encoding
/ decoding URLs as Strings. This causes us to now rely on
URL::encode() / URL::decode() instead.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<BlobPart>::decode):
Fix bug in BlobPart encoding / decoding. It was encoding the url member
as a URL but decoding it as a String.

7:17 PM Changeset in webkit [200908] by weinig@apple.com
  • 8 edits
    2 adds in trunk

ScriptController::processingUserGesture should propagate across postMessage boundaries
<rdar://problem/26273173>
https://bugs.webkit.org/show_bug.cgi?id=157686

Reviewed by Anders Carlsson.

Source/WebCore:

Test: fast/dom/Window/post-message-user-action.html

  • dom/UserGestureIndicator.h:

Export processingUserGesture() for testing.

  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::PostMessageTimer):
(WebCore::PostMessageTimer::event):
Maintain the processingUserGesture bit through postMessage.

  • testing/Internals.cpp:

(WebCore::Internals::setResourceTimingSupport):
(WebCore::Internals::isProcessingUserGesture):

  • testing/Internals.h:
  • testing/Internals.idl:

Add new internals function to get the current state of the UseGestureIndicator for testing.

LayoutTests:

  • fast/dom/Window/post-message-user-action-expected.txt: Added.
  • fast/dom/Window/post-message-user-action.html: Added.
7:10 PM Changeset in webkit [200907] by Chris Dumez
  • 13 edits in trunk

Align window.scroll() / scrollTo() / scrollBy() with the CSSOM specification
https://bugs.webkit.org/show_bug.cgi?id=157666

Reviewed by Darin Adler.

Source/WebCore:

Align window.scroll() / scrollTo() / scrollBy() with Firefox and the CSSOM
specification:
https://drafts.csswg.org/cssom-view/#extensions-to-the-window-interface

In particular, the following changes were made:

  1. Make parameters to scroll() / scrollTo() / scrollBy() mandatory.
  2. Add overloads for scroll() / scrollTo() / scrollBy() that take an optional ScrollToOptions dictionary.
  3. Update API to use "unrestricted double" typing for x/y instead of "long". This matches the specification but it does not really change our behavior at this point because the values are still casted to int in our implementation.

Web-Exposed behavior changes:

  1. JS can now pass a dictionary to scroll() / scrollTo() / scrollBy(). This a new feature that Firefox already supports (Chrome does not).
  2. Passing only 1 parameter to scroll() / scrollTo() / scrollBy() that is not a dictionary will now throw a TypeError. The compatibility risky should be low because Firefox and Chrome already throw in this case (Chrome has been throwing for 2 years and a half).
  3. Calling scrollTo() / scroll() without any parameter no longer scrolls to 0. Instead we use the current viewport's x/y which means we don't scroll at all. The new behavior matches Firefox, Chrome and IE 11. This fixes scrolling on the following Website: https://members.chosun.com/cms_subscribe/application/index.jsp

No new tests, extended existing testing.

  • bindings/js/JSDOMConvert.h:

(WebCore::convert):
(WebCore::convertOptional):

  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldAllowNonFiniteForFloatingPointType):
(GenerateConversionRuleWithLeadingComma):
(GenerateDictionaryImplementationContent):
(JSValueToNative):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convert<TestObj::Dictionary>):

  • bindings/scripts/test/TestObj.idl:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::scrollBy):
(WebCore::DOMWindow::scrollTo):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:

LayoutTests:

Update / improve testing coverage for the API.

  • fast/dom/Window/window-scroll-arguments-expected.txt:
  • fast/dom/Window/window-scroll-arguments.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
7:03 PM Changeset in webkit [200906] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG/FTL have a few bugs in their reasoning about the scope
https://bugs.webkit.org/show_bug.cgi?id=157696

Reviewed by Benjamin Poulain.

  1. When the debugger is enabled, it is easier for the DFG to reason

about the scope register by simply claiming all nodes read the scope
register. This prevents us from ever entering the runtime where we
may take a stack trace but there isn't a scope on the stack.

  1. This patch fixes a bug where the FTL compilation wasn't properly

setting the CodeBlock register. It was only doing this when there
was inline data, but when the debugger is enabled, we never inline.
So this code just needed to be removed from that loop. It was never
right for it to be inside the loop.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

5:20 PM Changeset in webkit [200905] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

5:19 PM Changeset in webkit [200904] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:17 PM Changeset in webkit [200903] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602.1.32-branch/Source

Versioning.

5:12 PM Changeset in webkit [200902] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-602.1.32.2.1/Source

Versioning.

5:03 PM Changeset in webkit [200901] by Ryan Haddad
  • 5 edits in trunk/Source

Unreviewed, rolling out r200894.
https://bugs.webkit.org/show_bug.cgi?id=157695

This change broke the iOS build (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"Remove unused initializer for WebEvent on iOS."
https://bugs.webkit.org/show_bug.cgi?id=157689
http://trac.webkit.org/changeset/200894

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-13

5:01 PM Changeset in webkit [200900] by rniwa@webkit.org
  • 3 edits
    1 add in trunk/Websites/perf.webkit.org

v3 UI shows full git hash instead of the first 8 characters for a blame range
https://bugs.webkit.org/show_bug.cgi?id=157691

Reviewed by Stephanie Lewis.

Fixed the bug that v3 UI shows the full 40 character git hash instead of the first 8 character as done in v2 UI.

  • public/v3/models/commit-log.js:

(CommitLog.prototype.diff): Fixed the bug.

  • tools/run-tests.py:

(main): Add the support for running a subset of tests as mocha does.

  • unit-tests/commit-log-tests.js: Added.
4:53 PM Changeset in webkit [200899] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-602.1.32.2.1/Source/JavaScriptCore

Merge r200666.

4:45 PM Changeset in webkit [200898] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] SetLocal without exit do not need phantoms
https://bugs.webkit.org/show_bug.cgi?id=157653

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-13
Reviewed by Filip Pizlo.

I made a mistake in r200498.

If a SetLocal cannot possibly exit, we were not clearing
the source of the operand. As a result, we sometime kept
a value alive up to the end of the block.

That's uncommon because SetLocal typically appear
toward the end of blocks. That's probably why there was
no perf impact with that fix.

  • dfg/DFGPhantomInsertionPhase.cpp:
4:45 PM Changeset in webkit [200897] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Move the CheckTierUp function calls out of the main path
https://bugs.webkit.org/show_bug.cgi?id=157668

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-13
Reviewed by Mark Lam.

If you have a tiny tiny loop (for example, Sunspider's bits-in-byte),
the size of CheckTierUp is a problem.

On multi-issue CPUs, the node is so big that we do not
get to run anything from the loop in the instruction fetch.

On x86, having a bigger loop also pushes us out of the LSD.

This is a 6% improvement on bits-in-byte. Other Sunspider tests
only improves marginally.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::addSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::silentSpill):
(JSC::DFG::SpeculativeJIT::silentFill):

  • dfg/DFGSpeculativeJIT64.cpp:

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

4:44 PM Changeset in webkit [200896] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Emit the loads of emitLoadWithStructureCheck() in the order they are used
https://bugs.webkit.org/show_bug.cgi?id=157671

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-13
Reviewed by Mark Lam.

This improves the chances of having a value
when issuing the TEST.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitLoadWithStructureCheck):

4:42 PM Changeset in webkit [200895] by beidson@apple.com
  • 92 edits in trunk/Source/WebCore

Rename all protector variables that should be called protectedThis
https://bugs.webkit.org/show_bug.cgi?id=157610

Reviewed by Alex Christensen.

No new tests (Renaming, no behavior change).

WebCore has so many instances of these protectors as well as so much variance in naming them,
that I think it deserved a new style pass.

  • Modules/fetch/FetchResponse.cpp:
  • Modules/geolocation/GeoNotifier.cpp:
  • Modules/geolocation/Geolocation.cpp:
  • Modules/indexeddb/IDBTransaction.cpp:
  • Modules/indexeddb/client/TransactionOperation.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:
  • Modules/mediastream/UserMediaRequest.cpp:
  • Modules/notifications/NotificationCenter.cpp:
  • Modules/webaudio/AudioContext.cpp:
  • Modules/webdatabase/Database.cpp:
  • Modules/websockets/WebSocket.cpp:
  • Modules/websockets/WebSocketChannel.cpp:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
  • accessibility/AccessibilityObject.cpp:
  • accessibility/AccessibilityRenderObject.cpp:
  • bindings/gobject/GObjectEventListener.cpp:
  • bindings/js/JSCustomElementInterface.cpp:
  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSDOMGlobalObjectTask.cpp:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSErrorHandler.cpp:
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSMutationCallback.cpp:
  • bindings/js/JSNodeFilterCustom.cpp:
  • bindings/js/SerializedScriptValue.cpp:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bindings/scripts/test/JS/JSTestCallback.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
  • bridge/runtime_root.cpp:
  • css/CSSFontSelector.cpp:
  • css/StyleSheetContents.cpp:
  • dom/CharacterData.cpp:
  • dom/ContainerNode.cpp:
  • dom/Document.cpp:
  • dom/EventTarget.cpp:
  • dom/Node.cpp:
  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptedAnimationController.cpp:
  • dom/StringCallback.cpp:
  • html/HTMLEmbedElement.cpp:
  • html/HTMLFormControlElement.cpp:
  • html/HTMLFormElement.cpp:
  • html/HTMLInputElement.cpp:
  • html/HTMLLinkElement.cpp:
  • html/HTMLMediaElement.cpp:
  • html/HTMLObjectElement.cpp:
  • html/HTMLOptionElement.cpp:
  • html/HTMLScriptElement.cpp:
  • html/HTMLTableElement.cpp:
  • html/HTMLTextAreaElement.cpp:
  • html/HTMLTitleElement.cpp:
  • html/parser/HTMLDocumentParser.cpp:
  • html/shadow/SliderThumbElement.cpp:
  • html/shadow/SpinButtonElement.cpp:
  • inspector/InspectorFrontendClientLocal.cpp:
  • loader/DocumentLoader.cpp:
  • loader/DocumentThreadableLoader.cpp:
  • loader/MediaResourceLoader.cpp:
  • loader/NetscapePlugInStreamLoader.cpp:
  • loader/ResourceLoader.cpp:
  • loader/SubresourceLoader.cpp:
  • loader/cache/CachedRawResource.cpp:
  • loader/cf/SubresourceLoaderCF.cpp:
  • loader/mac/ResourceLoaderMac.mm:
  • page/DOMWindow.cpp:
  • page/DOMWindowExtension.cpp:
  • page/FrameView.cpp:
  • page/animation/AnimationBase.cpp:
  • page/scrolling/ThreadedScrollingTree.cpp:
  • platform/ScrollView.cpp:
  • platform/graphics/DisplayRefreshMonitor.cpp:
  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
  • platform/mac/WidgetMac.mm:
  • platform/network/BlobResourceHandle.cpp:
  • platform/network/cf/ResourceHandleCFNet.cpp:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
  • platform/network/curl/CurlDownload.cpp:
  • platform/network/mac/ResourceHandleMac.mm:
  • platform/network/soup/SocketStreamHandleSoup.cpp:
  • platform/win/PopupMenuWin.cpp:
  • workers/WorkerScriptLoader.cpp:
  • xml/XMLHttpRequest.cpp:
  • xml/parser/XMLDocumentParser.cpp:
  • xml/parser/XMLDocumentParserLibxml2.cpp:
4:39 PM Changeset in webkit [200894] by enrica@apple.com
  • 5 edits in trunk/Source

Remove unused initializer for WebEvent on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157689

Reviewed by Anders Carlsson.

Source/WebCore:

This is no longer used and can be removed.
The logic tied to isPopupVariant has been incorporated
in keyboard flags. The characterSet property is no longer needed too.

  • platform/ios/WebEvent.h:
  • platform/ios/WebEvent.mm:

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]):
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:isPopupVariant:keyCode:isTabKey:characterSet:]): Deleted.
(-[WebEvent _characterSetDescription]): Deleted.
(-[WebEvent isPopupVariant]): Deleted.
(-[WebEvent characterSet]): Deleted.

Source/WebKit/mac:

Removing use of characterSet property.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _handleEditingKeyEvent:]):

4:29 PM Changeset in webkit [200893] by Joseph Pecoraro
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Inform augmenting client when inspector controller is destroyed
https://bugs.webkit.org/show_bug.cgi?id=157688
<rdar://problem/25832724>

Reviewed by Timothy Hatcher.

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::~JSGlobalObjectInspectorController):

  • inspector/augmentable/AugmentableInspectorControllerClient.h:

There is a weak relationship between the InspectorController and the
AugmentingClient. Let the augmenting client know when the controller
is destroyed so it doesn't try to use us anymore.

4:28 PM Changeset in webkit [200892] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.1.32.2.1

New Tag.

4:26 PM Changeset in webkit [200891] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix some non-iOS builds.

  • mac/postprocess-framework-headers.sh:
4:15 PM Changeset in webkit [200890] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Unreviewed. Added the missing executable bits.

  • tools/bundle-v3-scripts.py: Added property svn:executable.
  • tools/detect-changes.js: Added property svn:executable.
  • tools/process-maintenance-backlog.py: Added property svn:executable.
3:40 PM Changeset in webkit [200889] by Simon Fraser
  • 4 edits
    2 adds
    3 deletes in trunk

cross-fade() rendering doesn't match expectation
https://bugs.webkit.org/show_bug.cgi?id=157665
rdar://problem/17917708

Reviewed by Dean Jackson.

Source/WebCore:

Cross-fading two opaque images would result in a non-opaque result in between the endpoints,
probably because r157045 caused both images to be drawn with srcOver, since drawImage()
clobbers the composite operation in the context.

Fix by passing the composite operation to the drawImage() calls for the non-transparency layer
code path.

Converted css3/images/cross-fade-blending.html into a ref test to test this.

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::drawCrossfadeSubimage):

LayoutTests:

Make css3/images/cross-fade-blending.html a ref test.

  • css3/images/cross-fade-blending-expected.html: Added.
  • css3/images/cross-fade-blending-expected.png: Removed.
  • css3/images/cross-fade-blending-expected.txt: Removed.
  • css3/images/cross-fade-blending.html:
  • platform/mac/css3/images/cross-fade-blending-expected.png: Removed.
3:40 PM Changeset in webkit [200888] by Simon Fraser
  • 18 edits in trunk

Unprefix -webkit-cross-fade()
https://bugs.webkit.org/show_bug.cgi?id=157632

Reviewed by Darin Adler.
Source/WebCore:

Support unprefixed cross-fade() in addition to the prefixed value when parsing,
and have computed style round-trip the correct one.

If computed style is queried during an image transition, return an unprefixed
cross-fade(). If blending cross-fade values, only return the prefixed function if
both inputs are prefixed.

Tested by modified and existing tests.

  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::customCSSText):
(WebCore::CSSCrossfadeValue::blend):

  • css/CSSCrossfadeValue.h:

(WebCore::CSSCrossfadeValue::create):
(WebCore::CSSCrossfadeValue::isPrefixed):
(WebCore::CSSCrossfadeValue::CSSCrossfadeValue):

  • css/CSSParser.cpp:

(WebCore::CSSParser::isGeneratedImageValue):
(WebCore::CSSParser::parseGeneratedImage):
(WebCore::CSSParser::parseCrossfade):

  • css/CSSParser.h:

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

  • animations/cross-fade-background-image-expected.html:
  • animations/cross-fade-background-image.html:
  • animations/cross-fade-border-image-source.html:
  • animations/cross-fade-list-style-image.html:
  • animations/cross-fade-webkit-mask-box-image.html:
  • animations/cross-fade-webkit-mask-image.html:
  • animations/resources/animation-test-helpers.js:

(parseCSSImage):
(parseCrossFade):
(compareCSSImages):

  • fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
  • fast/css/getComputedStyle/computed-style-cross-fade.html:
  • transitions/resources/transition-test-helpers.js:

(parseCrossFade):

3:34 PM Changeset in webkit [200887] by yoav@yoav.ws
  • 8 edits
    4 adds in trunk

ResourceTiming entries for cached resources and XHR
https://bugs.webkit.org/show_bug.cgi?id=157669

Reviewed by Alex Christensen.

Source/WebCore:

  • Moves the ResourceTiming storage and addition logic into its own class, so that it can be accessed by both CachedResourceLoader and DocumentThreadableLoader.
  • Using the above, adds ResourceTiming collection into DocumentThreadableLoader, in order to support ResourceTiming entries for XHR based requests.
  • Adds ResourceTiming entries for resources that are reused from the memory cache.

Test: http/tests/performance/performance-resource-timing-cached-entries.html

  • CMakeLists.txt: Add ResourceTimingInformation.
  • WebCore.xcodeproj/project.pbxproj: Add ResourceTimingInformation.
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didFinishLoading): Add a call to addResourceTiming.
(WebCore::DocumentThreadableLoader::loadRequest): Store the initiator information.

  • loader/DocumentThreadableLoader.h:
  • loader/ResourceTimingInformation.cpp: Added.

(WebCore::ResourceTimingInformation::addResourceTiming): Moved addResourceTiming logic from CachedResourceLoader.
(WebCore::ResourceTimingInformation::storeResourceTimingInitiatorInformation): Moved addResourceTiming logic from
CachedResourceLoader. Removed reliance on the committingFirstRealLoad bool when storing initiator info, as I don't
see why it is required, and it made no sense in the context of DocumentThreadableLoader.

  • loader/ResourceTimingInformation.h: Added.
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource): Add a ResourceTiming entry when a resource is reused from MemoryCache.
(WebCore::CachedResourceLoader::revalidateResource): Use ResourceTimingInformation::storeResourceTimingInitiatorInformation.
(WebCore::CachedResourceLoader::loadResource): Use ResourceTimingInformation::storeResourceTimingInitiatorInformation.
(WebCore::CachedResourceLoader::loadDone): Use ResourceTimingInformation::addResourceTiming.
(WebCore::CachedResourceLoader::storeResourceTimingInitiatorInformation): Deleted.

  • loader/cache/CachedResourceLoader.h:

LayoutTests:

These tests make sure that cacheable resources as well as XHR based resources
have ResourceTiming entries.

  • http/tests/performance/performance-resource-timing-cached-entries-expected.txt: Added.
  • http/tests/performance/performance-resource-timing-cached-entries.html: Added.
3:22 PM Changeset in webkit [200886] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Typing "layout" in filter for Layout and Rendering Timeline matches everything
https://bugs.webkit.org/show_bug.cgi?id=157684
<rdar://problem/26276588>

Reviewed by Joseph Pecoraro.

Hidden columns should not participate in built-in grid filtering
using DataGrid.filterText. Hidden columns can still be custom filtered,
which is how TimelineDataGrid filters scopebar columns.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode.prototype.get filterableData):
Skip hidden columns.

2:40 PM Changeset in webkit [200885] by Ryan Haddad
  • 2 edits in branches/safari-601-branch/LayoutTests

Merge r194403. rdar://problem/26274768

2:24 PM Changeset in webkit [200884] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Runaway malloc memory usage in this simple JSC program
https://bugs.webkit.org/show_bug.cgi?id=157682

Reviewed by Mark Lam.

  • heap/WeakSet.cpp:

(JSC::WeakSet::sweep): Whenever we might add a block to
m_logicallyEmptyWeakBlocks, be sure also to sweep a block in
m_logicallyEmptyWeakBlocks. Otherwise, additions might outpace removals
even when all memory is freed.

We do this whenever we *might* add a block and not just whenever we *do*
add a block because we'd like to sweep the entries in
m_logicallyEmptyWeakBlocks promptly even when it's not growing, and this
is a reasonably rate-limited opportunity to do so.

2:22 PM Changeset in webkit [200883] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.7.2

New Tag.

2:21 PM Changeset in webkit [200882] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.141

New Tag.

1:47 PM Changeset in webkit [200881] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.1.32.2

New Tag.

1:35 PM Changeset in webkit [200880] by aakash_jain@apple.com
  • 9 edits in trunk/Tools

Dashboard code restructuring
https://bugs.webkit.org/show_bug.cgi?id=157680
<rdar://problem/14736888>

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueView.js:

(BubbleQueueView.prototype.addLinkToRow): Moved to base class.
(BubbleQueueView.prototype.addTextToRow): Moved to base class.
(BubbleQueueView.prototype._addDividerToPopover): Moved to base class.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotBuilderQueueView.js:

(BuildbotBuilderQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:

(BuildbotCombinedQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._appendPendingRevisionCount): Moved to base class and modified to take
additional argument.
(BuildbotQueueView.prototype._popoverLinesForCommitRange): Moved to base class.
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Moved to base class.
(BuildbotQueueView.prototype._addDividerToPopover): Moved to base class.
(BuildbotQueueView.prototype._formatRevisionForDisplay): Moved to base class.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(documentReady): Display any customView if available.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/QueueView.js:

(QueueView.prototype.addLinkToRow): Moved from child class, no changes.
(QueueView.prototype.addTextToRow): Moved from child class, no changes.
(QueueView.prototype._addDividerToPopover): Moved from child class, no changes.
(QueueView.prototype._appendPendingRevisionCount): Moved from child class, made it more generic
by taking latestIterationGetter method as an argument.
(QueueView.prototype._popoverLinesForCommitRange): Moved from child class, no changes.
(QueueView.prototype._presentPopoverForPendingCommits): Moved from child class, no changes.
(QueueView.prototype._formatRevisionForDisplay): Moved from child class, no changes.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(a:hover:link): Underline only when there is a link.

1:16 PM Changeset in webkit [200879] by mark.lam@apple.com
  • 29 edits in trunk

We should have one calleeSaveRegistersBuffer per VMEntryFrame, not one per VM.
https://bugs.webkit.org/show_bug.cgi?id=157537
<rdar://problem/24794845>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

The pre-existing code behaves this way:

  1. When JS code throws an exception, it saves callee save registers in the VM calleeSaveRegistersBuffer. These values are meant to be restored to the callee save registers later either at the catch handler or at the uncaught exception handler.
  1. If the Inspector is enable, the VM will invoke inspector C++ code to inspect the exception. That C++ code can change the values of the callee save registers.

The inspector code in turn re-enters the VM to execute JS inspector code.

The JS inspector code can run hot enough that we do an enterOptimizationCheck
on it. The enterOptimizationCheck first saves all callee save registers
into the VM calleeSaveRegistersBuffer.

This effectively overwrites the values in the VM calleeSaveRegistersBuffer
from (1).

  1. Eventually, execution returns to the catch handler or the uncaught exception handler which restores the overwritten values in the VM calleeSaveRegistersBuffer to the callee save registers.

When execution returns to the C++ code that entered the VM before (1), the
values in the callee registers are not what that code expects, and badness
and/or crashes ensues.

This patch applies the following fix:

  1. Allocate space in the VMEntryFrame for the calleeSaveRegistersBuffer. This ensures that each VM entry session has its own buffer to use, and will not corrupt the one from the previous VM entry session.

Delete the VM calleeSaveRegistersBuffer.

  1. Change all locations that uses the VM calleeSaveRegistersBuffer to use the calleeSaveRegistersBuffer in the current VMEntryFrame.
  1. Renamed all uses of the term "VMCalleeSavesBuffer" to "VMEntryFrameCalleeSavesBuffer".

This fix has been tested on the following configurations:

  1. JSC and layout tests on a debug ASan build for 64-bit x86_64.
  2. JSC tests on a release ASan build for 32-bit x86.
  3. JSC tests on a release normal (non-ASan) build for ARM64.
  4. JSC tests on a release normal (non-ASan) build for ARMv7 and ARMv7s.
  5. JSC tests on a release ASan CLOOP build for x86_64.

These test runs did not produce any new crashes. The ASan CLOOP has some
pre-existing crashes which are not due to this patch.

This bug can be tested by running the inspector/debugger/regress-133182.html test
on an ASan build.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::emitExplicitExceptionHandler):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileExceptionHandlers):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator()):
(JSC::UnwindFunctor::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
(JSC::UnwindFunctor::copyCalleeSavesToVMCalleeSavesBuffer): Deleted.

  • interpreter/Interpreter.h:

(JSC::NativeCallFrameTracer::NativeCallFrameTracer):

  • interpreter/VMEntryRecord.h:

(JSC::VMEntryRecord::calleeSaveRegistersBufferOffset):
(JSC::VMEntryRecord::prevTopCallFrame):
(JSC::VMEntryRecord::unsafePrevTopCallFrame):
(JSC::VMEntryFrame::vmEntryRecordOffset):
(JSC::VMEntryFrame::calleeSaveRegistersBufferOffset):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMCalleeSavesBuffer): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitRestoreSavedTagRegisters):
(JSC::AssemblyHelpers::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesToVMCalleeSavesBuffer): Deleted.
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMCalleeSavesBuffer): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::emitEnterOptimizationCheck):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emitSlow_op_loop_hint):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::nativeForGenerator):

  • llint/LLIntThunks.cpp:

(JSC::vmEntryRecord):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/VM.h:

(JSC::VM::getCTIStub):
(JSC::VM::calleeSaveRegistersBufferOffset): Deleted.

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::endFunction):

LayoutTests:

  • inspector/debugger/regress-133182-expected.txt:
  • Rebased test results to update line numbers.
  • platform/mac/TestExpectations:
  • Unskip the test.
12:42 PM Changeset in webkit [200878] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Summary page doesn't report some missing platforms
https://bugs.webkit.org/show_bug.cgi?id=157670

Reviewed by Darin Adler.

This patch improves the warning text for missing platforms and fixes the bug that platforms that don't have
any data reported for a given test would not be reported as missing.

  • public/v3/pages/summary-page.js:

(SummaryPage.prototype.render): Added instrumentations.
(SummaryPage.prototype._constructRatioGraph): Always create both the ratio bar graph and the spinner icon.
(SummaryPage.prototype._renderCell): Extracted from _constructRatioGraph. Toggle the displayed-ness of the
spinner and the ratio bar graph in the cell by CSS for better performance.
(SummaryPage.prototype._warningTextForGroup): Extracted from _constructRatioGraph. Rephrased warning text
for clarity and adopted new API of SummaryPageConfigurationGroup.
(SummaryPage.prototype._warningTextForGroup.mapAndSortByName): Added.
(SummaryPage.prototype._warningTextForGroup.pluralizeIfNeeded): Added.
(SummaryPage.cssTemplate): Added rules to toggle the visibility of spinner icons and bar graphs.
(SummaryPageConfigurationGroup): Replaced this._warnings by more explicitly named this._missingPlatforms
and this._platformsWithoutBaseline. Also add a platform to this._missingPlatforms if it didn't appear in
any metrics. Note that adding a platform whenever it doesn't in any one metric would be incorrect since
some tests uses a different test name on different platforms: e.g. PLT-Mac and PLT-iPhone.
(SummaryPageConfigurationGroup.prototype.missingPlatforms): Added.
(SummaryPageConfigurationGroup.prototype.platformsWithoutBaseline): Added.
(SummaryPageConfigurationGroup.prototype._fetchAndComputeRatio):

12:42 PM Changeset in webkit [200877] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit2

Attempt to fix the iOS build after r200874

Unreviewed build fix.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
12:34 PM Changeset in webkit [200876] by d_russell@apple.com
  • 13 edits in trunk

AX: Regressions in undo/redo accessibility from Bug 153361
https://bugs.webkit.org/show_bug.cgi?id=157652

Reviewed by Darin Adler.

Use indexForVisiblePosition & visiblePositionForIndex to store selection data
so that AccessibilityUndoReplacedText can build valid selection ranges and
retrieve strings for AT notifications.

Source/WebCore:

Tests: accessibility/mac/value-change/value-change-user-info-contenteditable-expected.txt:

accessibility/mac/value-change/value-change-user-info-contenteditable.html:
accessibility/mac/value-change/value-change-user-info-textarea-expected.txt:
accessibility/mac/value-change/value-change-user-info-textarea.html:
accessibility/mac/value-change/value-change-user-info-textfield-expected.txt:
accessibility/mac/value-change/value-change-user-info-textfield.html:

  • accessibility/AXObjectCache.cpp:

(WebCore::AccessibilityReplacedText::AccessibilityReplacedText):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):

  • editing/CompositeEditCommand.cpp:

(WebCore::AccessibilityUndoReplacedText::configureRangeDeletedByReapplyWithEndingSelection):
(WebCore::AccessibilityUndoReplacedText::configureRangeDeletedByReapplyWithStartingSelection):
(WebCore::AccessibilityUndoReplacedText::setRangeDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::captureTextForUnapply):
(WebCore::AccessibilityUndoReplacedText::captureTextForReapply):
(WebCore::AccessibilityUndoReplacedText::textDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::textDeletedByReapply):
(WebCore::AccessibilityUndoReplacedText::postTextStateChangeNotificationForUnapply):
(WebCore::AccessibilityUndoReplacedText::postTextStateChangeNotificationForReapply):
(WebCore::EditCommandComposition::EditCommandComposition):
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::EditCommandComposition::setStartingSelection):
(WebCore::EditCommandComposition::setEndingSelection):
(WebCore::EditCommandComposition::setRangeDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::confgureTextToBeDeletedByUnapplyIndexesWithEditCommandEndingSelection): Deleted.
(WebCore::AccessibilityUndoReplacedText::confgureTextToBeDeletedByUnapplyStartIndexWithEditCommandStartingSelection): Deleted.
(WebCore::AccessibilityUndoReplacedText::setTextInsertedByUnapplyRange): Deleted.
(WebCore::AccessibilityUndoReplacedText::captureTextToBeDeletedByUnapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::captureTextToBeDeletedByReapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::textInsertedByUnapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::textInsertedByReapply): Deleted.
(WebCore::EditCommandComposition::setTextInsertedByUnapplyRange): Deleted.

  • editing/CompositeEditCommand.h:
  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithFragment):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::postTextStateChangeNotificationForDeletion):
(WebCore::TypingCommand::insertTextAndNotifyAccessibility):
(WebCore::TypingCommand::insertLineBreakAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContentAndNotifyAccessibility):

LayoutTests:

  • accessibility/mac/value-change/value-change-user-info-contenteditable-expected.txt:
  • accessibility/mac/value-change/value-change-user-info-contenteditable.html:
  • accessibility/mac/value-change/value-change-user-info-textarea-expected.txt:
  • accessibility/mac/value-change/value-change-user-info-textarea.html:
  • accessibility/mac/value-change/value-change-user-info-textfield-expected.txt:
  • accessibility/mac/value-change/value-change-user-info-textfield.html:
12:19 PM Changeset in webkit [200875] by Chris Dumez
  • 22 edits in trunk/Source

Unreviewed, rolling out r200837.

Seems to have regressed Speedometer and JetStream on iOS

Reverted changeset:

"DOMPromise should only restrict the resolution type"
https://bugs.webkit.org/show_bug.cgi?id=157307
http://trac.webkit.org/changeset/200837

12:14 PM Changeset in webkit [200874] by weinig@apple.com
  • 9 edits in trunk/Source

Rename WKDataDetectorTypeSpotlightSuggestion to WKDataDetectorTypeLookupSuggestion
<rdar://problem/26269611>

Reviewed by Dan Bernstein and Enrica Casucci.

Source/WebCore:

  • editing/cocoa/DataDetection.h:
  • editing/cocoa/DataDetection.mm:

(WebCore::constructURLStringForResult):
(WebCore::DataDetection::detectContentInRange):

Source/WebKit2:

  • Shared/API/Cocoa/WKFoundation.h:
  • Shared/API/c/WKDeclarationSpecifiers.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(fromWKDataDetectorTypes):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • mac/postprocess-framework-headers.sh:
12:01 PM Changeset in webkit [200873] by Matt Baker
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Script ProfileViews should be searchable
https://bugs.webkit.org/show_bug.cgi?id=157581
<rdar://problem/26228530>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.get filterText):
Make filterText readable.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode.prototype.get callingContextTreeNode):
(WebInspector.ProfileDataGridNode.prototype.filterableDataForColumn):
Add filterable data for the "function" column.
(WebInspector.ProfileDataGridNode.prototype._updateChildrenForModifiers):
(WebInspector.ProfileDataGridNode.prototype.get node): Deleted.
Renamed callingContextTreeNode to be less ambiguous.

  • UserInterface/Views/ProfileDataGridTree.js:

(WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):

  • UserInterface/Views/ProfileView.js:

(WebInspector.ProfileView.prototype.get dataGrid):
Expose data grid for use in parent view.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.selectRecord):
Drive-by fix: forward property to current child TimelineView.

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView):
(WebInspector.ScriptProfileTimelineView.prototype._scopeBarSelectionDidChange):
(WebInspector.ScriptProfileTimelineView.prototype._showProfileViewForOrientation):
Helper function to switch profile views. Persist filter text when
switching to the new profile view.

(WebInspector.ScriptProfileTimelineView.prototype.get showsFilterBar): Deleted.
Remove FIXME and show filter bar.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.setupDataGrid):
Support switching to a new data grid.
(WebInspector.TimelineView.prototype.dataGridMatchNodeAgainstCustomFilters):
Hooking up filtering causes data grid nodes to be filtered based on the
ruler selection. Although ScriptProfileTimelineView performs its own
time-based filtering, this is necessary to prevent an assert.

(WebInspector.TimelineView.prototype._timelineDataGridSelectedNodeChanged):
(WebInspector.TimelineView.prototype._timelineDataGridNodeWasFiltered):
Converted arrow functions to member functions to allow unregistering
event listeners on outgoing data grid when swapping grids.

11:57 AM Changeset in webkit [200872] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Wrong CharacterOffset from an upstream VisiblePosition
https://bugs.webkit.org/show_bug.cgi?id=157644

Reviewed by Chris Fleizach.

Source/WebCore:

We should adjust the text marker's CharacterOffset if its corresponding
VisiblePosition has upstream affinity.

Test: accessibility/mac/character-offset-from-upstream-position.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::characterOffsetForTextMarkerData):
(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::localCaretRectForCharacterOffset):

LayoutTests:

  • accessibility/mac/character-offset-from-upstream-position-expected.txt: Added.
  • accessibility/mac/character-offset-from-upstream-position.html: Added.
11:56 AM Changeset in webkit [200871] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r196490. rdar://problem/26270871

11:56 AM Changeset in webkit [200870] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r196240. rdar://problem/26271188

11:45 AM Changeset in webkit [200869] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-601-branch/Source/JavaScriptCore

Merge r196490. rdar://problem/26270811

11:45 AM Changeset in webkit [200868] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r196240. rdar://problem/26271108

11:45 AM Changeset in webkit [200867] by Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

Build fix.

  • WebView/WebView.mm:
11:29 AM Changeset in webkit [200866] by Beth Dakin
  • 15 edits
    1 add
    1 delete in trunk/Source

Source/JavaScriptCore:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

Import #import <wtf/spi/darwin/dyldSPI.h> which now declares all of the
needed dyld code.

  • API/JSWrapperMap.mm:

Source/WebCore:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLObjectElement.cpp:
  • platform/graphics/ios/FontServicesIOS.mm:
  • platform/spi/cocoa/DynamicLinkerSPI.h: Removed.

Source/WebKit/ios:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

  • Misc/WebUIKitSupport.mm:

Source/WebKit/mac:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

  • WebView/WebView.mm:

Source/WebKit2:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401

Reviewed by Darin Adler.

Set _allowsLinkPreview to YES for programs linked on or after
firstSDKVersionWithLinkPreviewEnabledByDefault.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

Source/WTF:
Add dyldSPI.h
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

New header for dyld spi.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/darwin/dyldSPI.h: Added.
11:11 AM Changeset in webkit [200865] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

11:11 AM Changeset in webkit [200864] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

11:06 AM Changeset in webkit [200863] by yoav@yoav.ws
  • 6 edits in trunk

Turn on WEB_TIMING for all ports
https://bugs.webkit.org/show_bug.cgi?id=157673

Reviewed by Alex Christensen.

.:

Turn on WEB_TIMING by default on the cmake Mac port, to match it with all other ports,
and make sure that the flag will be on by default for all ports.

  • Source/cmake/OptionsGTK.cmake: Remove the specific private flag for WEB_TIMING.
  • Source/cmake/OptionsMac.cmake: Remove the specific private flag for WEB_TIMING.
  • Source/cmake/WebKitFeatures.cmake: Turn on WEB_TIMING for all ports by default.

Tools:

  • Scripts/webkitperl/FeatureList.pm: Make sure that WEB_TIMING is on by default.
10:42 AM Changeset in webkit [200862] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Fullscreen view attempts to resize when in 2-up mode
https://bugs.webkit.org/show_bug.cgi?id=157558

Reviewed by Darin Adler.

No need to react to NSApplicationDidChangeScreenParametersNotification to resize the
fullscreen window when the screen parameters change; the NSWindow fullscreen machinery
will do that on our behalf.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController windowDidLoad]): Deleted.
(-[WKFullScreenWindowController applicationDidChangeScreenParameters:]): Deleted.

10:37 AM Changeset in webkit [200861] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Give CrossThreadCopier a default specialization for Vectors of objects.
https://bugs.webkit.org/show_bug.cgi?id=157675

Reviewed by Darin Adler.

No new tests (Refactor, no change in behavior).

  • platform/CrossThreadCopier.cpp:

(WebCore::Vector<String>>::copy): Deleted.

  • platform/CrossThreadCopier.h: Add a default specialization for Vector<T> where T is a type that is CrossThreadCopyable itself.
10:29 AM Changeset in webkit [200860] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/text-autosizing/ios/text-autosizing-after-back.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=157589

Unreviewed test gardening.

9:16 AM Changeset in webkit [200859] by beidson@apple.com
  • 5 edits in trunk

Protector Ref/RefPtrs should have a specified naming style.
https://bugs.webkit.org/show_bug.cgi?id=157591

Reviewed by Darin Adler.

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_identifier_name_in_declaration):
(CppChecker):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_names):

Websites/webkit.org:

  • code-style.md:
9:06 AM Changeset in webkit [200858] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[iOS] <select> elements popover should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157672
<rdar://problem/26193442>

Patch by Antoine Quint <Antoine Quint> on 2016-05-13
Reviewed by Darin Adler.

Add a new isRTL field to the AssistedNodeInformation as specified by the assisted
node's render style and account for it when displaying the table view shown in the
popover attached to the assisted node using the UIView semanticContentAttribute
property.

  • Shared/AssistedNodeInformation.cpp:

(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):

  • Shared/AssistedNodeInformation.h:

(WebKit::AssistedNodeInformation::AssistedNodeInformation):

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectTableViewController initWithView:hasGroups:]):
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

7:58 AM Changeset in webkit [200857] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Have the WorkerGlobalScope API return more references
https://bugs.webkit.org/show_bug.cgi?id=157663

Reviewed by Alexey Proskuryakov.

Have the WorkerGlobalScope API return more references instead of
pointers.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::location):
(WebCore::WorkerGlobalScope::navigator):

  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::self):

7:28 AM Changeset in webkit [200856] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Assertion failure for direct eval in non-class method
https://bugs.webkit.org/show_bug.cgi?id=157138

Reviewed by Saam Barati.

This assertion was incorrect. In method definitions in object literals,
it can be sloppy mode, but its DerivedContextType may not be DerivedContextType::None.

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::CacheKey::CacheKey):
(JSC::EvalCodeCache::CacheKey::operator==):
(JSC::EvalCodeCache::CacheKey::Hash::equal):
(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • tests/stress/direct-eval-in-object-literal-methods.js: Added.

(shouldBe):
(throw.new.Error):
(shouldBe.Parent.prototype.l):
(shouldBe.Parent):
(shouldBe.Derived.prototype.m):
(shouldBe.Derived):

6:41 AM WebKitGTK/2.12.x edited by Carlos Garcia Campos
(diff)
6:41 AM Changeset in webkit [200855] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.12

Merge r200542 - REGRESSION(r196222): [AX][GTK] accessibility/gtk/caret-offsets.html failing
https://bugs.webkit.org/show_bug.cgi?id=153956

Reviewed by Chris Fleizach.

Source/WebCore:

The reason the test began failing is that it was checking the new caret offset
synchronously. For most of the test cases, this was not a problem. But when the
caret was moved out of a focused link, the focus change (and associated repainting)
delayed the caret-moved event long enough to cause the associated test case to fail.
The test now uses shouldBecomeEqualToString() instead of shouldBeEqualToString().

The test also had a supposedly-correct expectation which was wrong: When moving the
caret to a valid accessible offset, the caret-moved event should be for that offset.
This was not the case for the list item test case because emitTextSelectionChange()
was not adjusting the offset for the RenderListMarker, the text of which is exposed
as part of the ATK_ROLE_LIST_ITEM object. This bug was also fixed and the test case
updated accordingly.

No new tests are needed. The previously-failing test is now passing.

  • editing/atk/FrameSelectionAtk.cpp:

(WebCore::emitTextSelectionChange):

LayoutTests:

Change the test to run asynchronously and update the expectations.

  • accessibility/gtk/caret-offsets-expected.txt: Updated.
  • accessibility/gtk/caret-offsets.html: Updated.
  • platform/gtk/TestExpectations: Unskipped the previously-failing test.
6:35 AM Changeset in webkit [200854] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200486 - Do not attempt to compute min/max width.
https://bugs.webkit.org/show_bug.cgi?id=157320

Reviewed by David Hyatt.

Replaced elements with no intrinsic size (only with ratio) should not call the containing
block to compute the min/max width when the containing block's min/max width
depends on the children's intrinsic size. It could lead to infinite recursion.

Source/WebCore:

Test: fast/replaced/before-content-intrinsic-crash.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth): Unrelated code change.

  • rendering/RenderImage.cpp: Unrelated code change.

(WebCore::RenderImage::RenderImage): Deleted.

  • rendering/RenderImage.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalWidth):

LayoutTests:

  • fast/replaced/before-content-intrinsic-crash-expected.txt: Added.
  • fast/replaced/before-content-intrinsic-crash.html: Added.
6:31 AM Changeset in webkit [200853] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200455 - [GStreamer] Adaptive streaming issues
https://bugs.webkit.org/show_bug.cgi?id=144040

Reviewed by Philippe Normand.

In the case of adaptive streaming, the GST URI downloader object is creating the source object, in our case
WebKitWebSrc, without taking its ownership. This is breaking the lifetime of the WebKitWebSrc element. We are
using GRefPtr in WebKitWebSrc to ref/unref the object when sending notifications to the main thread, ensuring
that the object is not destroyed before the main thread dispatches the message. But our smart pointers are so
smart that in case of receiving a floating reference, it's converted to a full reference, so that the first time
we try to take a ref of a WebKitWebSrc having a floating reference we are actually taking the ownership
instead. When we try to release the reference, we are actuallty destroying the object, something that the actual
owner is not expecting and causing runtime critical warnings and very often web process crashes.

(WebKitWebProcess:6863): GStreamer-CRITICAL :
Trying to dispose element appsrc1, but it is in READY instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.

(WebKitWebProcess:6863): GStreamer-CRITICAL : gst_uri_handler_get_uri: assertion 'GST_IS_URI_HANDLER(handler)' failed

(WebKitWebProcess:6863): GStreamer-CRITICAL : gst_uri_get_protocol: assertion 'uri != NULL' failed

This should be fixed in GST, but we can workaround it in WebKit while it's fixed in GST or to prevent this from
happening if other users make the same mistake. The idea is to add a ensureGRef() only available for GRefPtr
when using WebKitWebSrc objects that consumes the floating reference if needed before taking the actual reference.

  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::ensureGRef): Consume the floating ref if needed.

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcChangeState): Use ensureGRef().

6:29 AM Changeset in webkit [200852] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Merge r200445 - CSP: Perform case sensitive match against path portion of source expression URL that ends in '/'
https://bugs.webkit.org/show_bug.cgi?id=157275

Reviewed by Darin Adler.

Source/WebCore:

Merged from Blink:
<https://chromium.googlesource.com/chromium/src/+/7bd0a75e3f71a10e71ded31ea5905d5ee3d992eb>

Perform a case-sensitive prefix match of the path portion a source expression that ends in '/'
against the path portion of a request URL as per step 8.5.4 of section Does url match expression
in origin with redirect count of the Content Security Policy Level 3 spec., <https://w3c.github.io/webappsec-csp>
(Editor's Draft, 27 April 2016).

  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::pathMatches):

LayoutTests:

Add test to ensure that the path portion of a request URL is case-sensitively
matched against the path portion of a source expression that ends in '/'.

  • http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01.html:
6:26 AM Changeset in webkit [200851] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200414 - Clicks inside button elements are sometimes discarded when the mouse moves
https://bugs.webkit.org/show_bug.cgi?id=39620

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/events/click-over-descendant-elements.html

  • dom/Node.cpp:

(WebCore::ancestor):
(WebCore::commonAncestor): Method inspired from
http://src.chromium.org/viewvc/blink?view=revision&revision=162081.
(WebCore::commonAncestorCrossingShadowBoundary): Helper routine
that handles the case of nodes into a shadow node.

  • dom/Node.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMouseReleaseEvent): Selecting click event
target node according commonAncestorOverShadowBoundary method.
(WebCore::EventHandler::targetNodeForClickEvent): Deleted.

LayoutTests:

Test coming from http://src.chromium.org/viewvc/blink?view=revision&revision=162081.
Modified to ensure click events do not end up being considered as double click events.

  • fast/events/click-over-descendant-elements-expected.txt: Added.
  • fast/events/click-over-descendant-elements.html: Added.
  • platform/ios-simulator/TestExpectations: Marked new test as failing.
6:07 AM Changeset in webkit [200850] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200410 - CrashTracer: [USER] com.apple.WebKit.WebContent at …ple.WebCore: WebCore::EditCommandComposition::unapply + 105
https://bugs.webkit.org/show_bug.cgi?id=157282
<rdar://problem/25391441>

Reviewed by Darin Adler.

A frame could be destroyed in the middle of executing undo/redo command.
Therefore, add an early return.

  • editing/CompositeEditCommand.cpp:

(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):

5:59 AM Changeset in webkit [200849] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200326 - Do not reuse cache entries with conditional headers
https://bugs.webkit.org/show_bug.cgi?id=157205
rdar://problem/25856933

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/xmlhttprequest/if-modified-since-0.html

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::canReuse):
CachedResourceLoader::determineRevalidationPolicy asserts that the request is not conditional,
which means that it does not have any headers like If-Modified-Since. They are usually different,
because we put the timestamp in the If-Modified-Since header, so it fails the canReuse test because
time has passed since the last If-Modified-Since header was sent. When a user sets the If-Modified-Since
manually to something that is constant, we reuse cache entries when we should not.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
Set the source so we can use it in Internals.

LayoutTests:

  • http/tests/xmlhttprequest/if-modified-since-0-expected.txt: Added.
  • http/tests/xmlhttprequest/if-modified-since-0.html: Added.
5:33 AM Changeset in webkit [200848] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200301 - Some content causes deep recursion.
https://bugs.webkit.org/show_bug.cgi?id=157230
<rdar://problem/7694756>

Reviewed by Antti Koivisto.

This patch sets a limit(512) on content nesting for the render tree. Elements injected over the limit
are still accessible through DOM APIs but

  1. we stop generating renderers for them -they behave like display: none.
  2. their layout related computed style values are set to default (e.g. window.computedStyle(document.elementById("over512").width -> auto)

Source/WebCore:

Test: fast/block/nested-renderers.html

  • page/Settings.h:
  • style/StyleTreeResolver.cpp: Skip renderer constructing and continue with the sibling node.

(WebCore::Style::TreeResolver::resolveComposedTree):

LayoutTests:

  • fast/block/nested-renderers-expected.html: Added.
  • fast/block/nested-renderers.html: Added.
5:26 AM Changeset in webkit [200847] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200282 - REGRESSION(194502): overflow: scroll; direction: rtl; divs jump horizontally when scrolled vertically
https://bugs.webkit.org/show_bug.cgi?id=157201

Reviewed by Simon Fraser.

Source/WebCore:

ScrollableArea::scrollToOffsetWithoutAnimation() was mistakenly conflating scroll offsets with
scroll positions.

Test: fast/scrolling/rtl-drag-vertical-scroller.html

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):

LayoutTests:

  • fast/scrolling/rtl-drag-vertical-scroller-expected.txt: Added.
  • fast/scrolling/rtl-drag-vertical-scroller.html: Added.
5:18 AM Changeset in webkit [200846] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200247 - Wheel Event Not Fired For body,html { height:100% }
https://bugs.webkit.org/show_bug.cgi?id=148450

Reviewed by Brent Fulgham.

Source/WebCore:

EventHandler::handleWheelEvent() didn't pass the Active flag in the HitTestRequest,
which causes code in RenderLayer::hitTest() to fail to fall back to returning the
root layer if no other element is hit. "Active" is in the default flags,
so just create the HitTestRequest with the default flags.

Test: fast/events/wheel-event-outside-body.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent):

LayoutTests:

Testcase, skipped on iOS which doesn't support wheel events.

  • fast/events/wheel-event-outside-body-expected.txt: Added.
  • fast/events/wheel-event-outside-body.html: Added.
  • platform/ios-simulator/TestExpectations:
5:14 AM Changeset in webkit [200845] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200220 - Content disappears on mouse over.
https://bugs.webkit.org/show_bug.cgi?id=157073
<rdar://problem/24389168>

Reviewed by Simon Fraser.

When a redundant inlinebox is found after constructing the line, we remove it from the tree.
The remove operation marks the ancestor tree dirty (and this newly constructed line is supposed to be clean).
This patch resets this dirty flag on the boxes all the way up to the rootlinebox.
Previously we only cleared the rootinlinebox and we ended up with dirty inlineflowboxes.

Source/WebCore:

Test: fast/text/text-node-remains-dirty-after-calling-surroundContents.html

  • rendering/BidiRun.h:

(WebCore::BidiRun::setBox):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::constructLine):
(WebCore::RenderBlockFlow::removeLineBoxIfNeeded):
(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::positionLineBox): Deleted.

  • rendering/RenderText.cpp:

(WebCore::RenderText::setText):
(WebCore::RenderText::positionLineBox): Deleted.

LayoutTests:

  • fast/text/text-node-remains-dirty-after-calling-surroundContents-expected.html: Added.
  • fast/text/text-node-remains-dirty-after-calling-surroundContents.html: Added.
4:52 AM WebKitGTK/2.12.x edited by Carlos Garcia Campos
(diff)
4:51 AM Changeset in webkit [200844] by Carlos Garcia Campos
  • 8 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r200188 - AX: [ATK] We need to be smarter about flattening and the accessible text implementation
https://bugs.webkit.org/show_bug.cgi?id=144639

Reviewed by Chris Fleizach.

Source/WebCore:

Defer to WebCore Accessibility more regarding when to include anonymous blocks in the
accessibility tree. Explicitly flatten menu items, headings, list items, and paragraphs
in order to preserve the expected platform behavior for backwards compatibility. Also
map anonymous table parts to DivRole rather than GroupRole for GTK and EFL because ATK
has separate roles for generic text block elements and other generic containers.

Tests: accessibility/gtk/nested-block-element-children.html

accessibility/gtk/spans-paragraphs-and-divs-tree.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

Added two new tests and updated three existing tests to reflect the new behavior
regarding inclusion of elements in the accessibility tree and the text value of
included elements.

  • accessibility/gtk/nested-block-element-children-expected.txt: Added.
  • accessibility/gtk/nested-block-element-children.html: Added.
  • accessibility/gtk/spans-paragraphs-and-divs-expected.txt: Updated for new behavior.
  • accessibility/gtk/spans-paragraphs-and-divs-tree-expected.txt: Added.
  • accessibility/gtk/spans-paragraphs-and-divs-tree.html: Added.
  • accessibility/gtk/spans-paragraphs-and-divs.html: Updated for new behavior.
  • platform/gtk/accessibility/generated-content-with-display-table-crash-expected.txt: Updated for new behavior.
  • platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt: Updated for new behavior.
4:49 AM Changeset in webkit [200843] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200184 - REGRESSION(r199659): Web Process crash when RenderTheme::adjustMenuListStyle is called with a null element
https://bugs.webkit.org/show_bug.cgi?id=157127

Reviewed by Sergio Villar Senin.

This happens for example with tests fast/css/appearance-with-pseudo-elements-in-quirks-mode.html and
fast/css/appearance-with-pseudo-elements.html.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::adjustMenuListStyle): Do not change the style color if the given element is nullptr.

4:45 AM Changeset in webkit [200842] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r200152 - Remove download message receiver when NetworkProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=157102
<rdar://problem/25550106>

Reviewed by Anders Carlsson.

  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::processDidClose):
When the NetworkProcess crashes during a download, we want to remove the message receiver from the map
so we don't get an assertion in ~MessageReceiver in the UIProcess so we do not have a freed
message receiver in the map.

4:43 AM Changeset in webkit [200841] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Merge r200126 - [EFL][GTK] Volume slider only changes volume when thumb is released, not while dragging
https://bugs.webkit.org/show_bug.cgi?id=156970

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Volume slider have to change the volume while dragging the thumb.

Test: media/video-volume-slider-drag.html

  • Modules/mediacontrols/mediaControlsBase.js:

(Controller.prototype.createControls): Use the 'input' event instead of the 'change' to
check the changed value correctly.
(Controller.prototype.handleMaxButtonClicked):
(Controller.prototype.handleVolumeSliderInput): Renamed from handleVolumeSliderChange.
(Controller.prototype.handleVolumeSliderChange): Deleted.

LayoutTests:

Removed the passed test.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
4:38 AM Changeset in webkit [200840] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200091 - GuardMalloc crash in WebCore::HTMLFrameElementBase::marginHeight()
https://bugs.webkit.org/show_bug.cgi?id=157020
<rdar://problem/25148315>

Reviewed by Darin Adler.

Calls to setIntegralAttribute triggers event handling code, which can cause
the underlying m_frameOwnerElement member to be deleted. We could clone this
object, but since we only want the width and height we should just read them
while we know the object is in a good state, then execute the potentially
mutating methods.

Tested by imported/blink/fast/dom/HTMLBodyElement/body-inserting-iframe-crash.html.

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::insertedInto): Read margin width and height before
calling setIntegralAttribute.

4:36 AM Changeset in webkit [200839] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source

Merge r200068 - Heap corruption is detected when destructing JSGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=156831

Patch by Fujii Hironori <Fujii Hironori> on 2016-04-25
Reviewed by Mark Lam.

WebKit uses CRT static library on Windows. Each copy of the CRT
library has its own heap manager, allocating memory in one CRT
library and passing the pointer across a DLL boundary to be freed
by a different copy of the CRT library is a potential cause for
heap corruption.

Potential Errors Passing CRT Objects Across DLL Boundaries
<https://msdn.microsoft.com/en-us/library/ms235460(v=vs.140).aspx>

JSGlobalObject::createRareDataIfNeeded is inlined but
JSGlobalObject::~JSGlobalObject is not. Then, the heap of
allocating JSGlobalObjectRareData is WebKit.dll, but deallocating
JavaScriptCore.dll. Adding WTF_MAKE_FAST_ALLOCATED to
JSGlobalObjectRareData ensures heap consistency of it. WTF::Lock
also needs WTF_MAKE_FAST_ALLOCATED because it is allocated from
the inlined constructor of JSGlobalObjectRareData.

Source/JavaScriptCore:

Test: fast/dom/insertedIntoDocument-iframe.html

  • runtime/JSGlobalObject.h:

Add WTF_MAKE_FAST_ALLOCATED to JSGlobalObjectRareData.

Source/WTF:

  • wtf/Lock.h: Add WTF_MAKE_FAST_ALLOCATED.
4:03 AM Changeset in webkit [200838] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.12

Merge r200056 - Add port 4190 (managesieve) to port blacklist
https://bugs.webkit.org/show_bug.cgi?id=156986
<rdar://problem/9119470>

Reviewed by Daniel Bates.

Source/WebCore:

Tested by security/block-test.html.

  • platform/URL.cpp:

(WebCore::portAllowed): Add 4190 to the port blacklist.

LayoutTests:

  • platform/mac/security/block-test-expected.txt
  • security/block-test-expected.txt:
  • security/block-test.html:
4:03 AM Changeset in webkit [200837] by youenn.fablet@crf.canon.fr
  • 22 edits in trunk/Source

DOMPromise should only restrict the resolution type
https://bugs.webkit.org/show_bug.cgi?id=157307

Reviewed by Darin Adler.

Source/WebCore:

Removing from DOMPromise the rejection template parameter.
Supported rejection types are integers (Exception codes) and DOM objects (DOMError typically).

Updated toJS and DeferredWrapper to accept Ref<>&& and RefPtr<>&&.
Previously Ref<>&& were not accepted and only "const RefPtr<>&" was accepted.
This in turn created an unecessary churn count when calling toJS.

Changes also allow in most cases to remove the need for explictly declaring the
rejection/resolution type.

Minor refactoring of FontFaceSet promise handling to use DOMPromise in lieu of DeferredWrapper.

Covered by existing tests.
Changes should not be visible from user scripts.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeText):
(WebCore::blobFromArrayBuffer):
(WebCore::FetchBody::loadingFailed):

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::formData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveResponse):

  • Modules/fetch/FetchResponse.h:
  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::didCreateStream):

  • Modules/streams/ReadableStreamSource.h:
  • Modules/webaudio/AudioContext.h:
  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):
(WebCore::jsPair):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::fulfillPromiseWithJSON):

  • bindings/js/JSDOMPromise.h:

(WebCore::TypeInspector::decltype):
(WebCore::TypeInspector::testIsVector):
(WebCore::TypeInspector::testIsRefOrRefPtr):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue):
(WebCore::DeferredWrapper::rejectWithValue):
(WebCore::callPromiseFunction):

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::unwrapKey):

  • css/FontFace.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::registerReady):

  • css/FontFaceSet.h:
  • html/HTMLMediaElement.h:

Source/WTF:

  • wtf/Ref.h: Adding static constexpr to ease detection of Ref for templates.
  • wtf/RefPtr.h: Ditto.
4:02 AM Changeset in webkit [200836] by Carlos Garcia Campos
  • 9 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r200047 - Toggling animation-play-state can re-start a finished animation
https://bugs.webkit.org/show_bug.cgi?id=156731

Reviewed by Dean Jackson.

Source/WebCore:

After an animation completed, CompositeAnimation::updateKeyframeAnimations() cleared
all state that the animation had run on the element, so changing the value of some
animation property triggered the animation to run again. This is wrong, since animation-name
still applied to the element.

Fix by keeping state for keyframe animations in the Done state in the m_keyframeAnimations
map. This allows for the removal of the index property on KeyframeAnimation.

Tests: animations/change-completed-animation-transform.html

animations/change-completed-animation.html

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::timeToNextService):

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::isAnimatingProperty):

  • page/animation/CompositeAnimation.cpp: Add animations that should stick around to AnimationNameMap,

and swap with m_keyframeAnimations at the end.
(WebCore::CompositeAnimation::updateKeyframeAnimations):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::getAnimatedStyle):

  • page/animation/KeyframeAnimation.h:

LayoutTests:

  • animations/animation-direction-reverse-expected.txt:
  • animations/animation-direction-reverse.html: This is a progression. The test was detecting a

restarted animation.

  • animations/change-completed-animation-expected.txt: Added.
  • animations/change-completed-animation-transform-expected.html: Added.
  • animations/change-completed-animation-transform.html: Added. Ref test that ensures that the final

state for normal and accelerated animations is correct.

  • animations/change-completed-animation.html: Added. Tests that changing a property doesn't trigger

another animation, by detecting a second animationstart event.

4:01 AM Changeset in webkit [200835] by Carlos Garcia Campos
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200043 - play-state not parsed as part of animation shorthand
https://bugs.webkit.org/show_bug.cgi?id=156959

Reviewed by Darin Adler.

Source/WebCore:

We failed to parse animation-play-state as part of the animation shorthand, contrary
to the spec and other browsers.

Fix for both the prefixed and unprefixed properties. There is some compat risk here,
but only changing unprefixed behavior will probably lead to more author confusion.

Test: animations/play-state-in-shorthand.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseAnimationShorthand):

  • css/CSSPropertyNames.in:
  • css/StylePropertyShorthand.cpp:

(WebCore::animationShorthandForParsing): Remove the long comment which is no longer relevant
now that the behavior has been written into the spec.

LayoutTests:

  • animations/animation-shorthand-expected.txt:
  • animations/animation-shorthand.html:
  • animations/play-state-in-shorthand-expected.txt: Added.
  • animations/play-state-in-shorthand.html: Added.
  • animations/resources/animation-test-helpers.js:

(getPropertyValue):
(comparePropertyValue):

3:41 AM Changeset in webkit [200834] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200042 - Negative animation-delay is treated as 0s
https://bugs.webkit.org/show_bug.cgi?id=141008

Reviewed by Daniel Bates.

Source/WebCore:

Fix keyframe animations which start in the paused state.

Explicitly move such animations from the new to the paused state, and
set m_pauseTime to 0, rather than leaving it at -1. Fix getElapsedTime()
to compute a correct time elapsed time for such animations, which takes
negative delay into account correctly.

Fix assertions which need to account for the new transition of New -> PlayStatePaused.

Test: animations/play-state-start-paused.html

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::getElapsedTime):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::animate):

LayoutTests:

Ref test that has an initially-paused animation on 'left' and with a
3d transform.

  • animations/play-state-start-paused-expected.html: Added.
  • animations/play-state-start-paused.html: Added.
3:39 AM Changeset in webkit [200833] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200039 - Stop listening for "media can start" notifications when media player is cleared
https://bugs.webkit.org/show_bug.cgi?id=156985
<rdar://problem/23158505>

Reviewed by Jer Noble.

No new tests, I have not been able to create a test that reliably reproduces this.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadInternal): Add logging.
(WebCore::HTMLMediaElement::selectMediaResource): Assert and return early if there is

no media player.

(WebCore::HTMLMediaElement::clearMediaPlayer): Stop listening for can start notifications.
(WebCore::HTMLMediaElement::visibilityStateChanged): Add logging.
(WebCore::HTMLMediaElement::mediaCanStart): Ditto.

3:37 AM Changeset in webkit [200832] by Carlos Garcia Campos
  • 4 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r200030 - REGRESSION (r196012): Subresource may be blocked by Content Security Policy if it only matches 'self'
https://bugs.webkit.org/show_bug.cgi?id=156935
<rdar://problem/25351286>

Reviewed by Darin Adler.

Source/WebCore:

Fixes an issue where subresource load may be blocked by the Content Security Policy (CSP) if its URL only
matched 'self'. In particular, the load would be blocked if initiated from a document that inherited the
origin of its owner document (e.g. the document contained in <iframe src="about:blank"></iframe>).

Following r196012 we compute and cache 'self' and its protocol on instantiation of a ContentSecurityPolicy
object for use when matching a URL against it. These cached values become out-of-date if the document
subsequently inherits the origin of its owner document. Therefore matches against 'self' will fail and
CSP will block a load if its not otherwise allowed by the policy. Previously we would compute 'self' when
parsing the definition of a source list and compute the protocol for 'self' each time we tried to match a
URL against 'self'. So, 'self' would always be up-to-date with respect to the origin of the document.

Tests: http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script.html

http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script.html

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::ContentSecurityPolicy): Extract out logic for computing and caching
'self' and its protocol into ContentSecurityPolicy::updateSourceSelf() and make use of this function.
(WebCore::ContentSecurityPolicy::updateSourceSelf): Computes and caches 'self' and its protocol with
respect to the specified SecurityOrigin.
(WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext): Call ContentSecurityPolicy::updateSourceSelf()
to ensure that we have an up-to-date representation for 'self' and the protocol of 'self' which can
become out-of-date if the document inherited the origin of its owner document.

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

Add tests to ensure that we match 'self' correctly in an iframe with an about:blank document.

  • http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script.html: Added.
3:32 AM Changeset in webkit [200831] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199948 - Updated Hungarian translation
https://bugs.webkit.org/show_bug.cgi?id=156952

Patch by Gabor Kelemen <kelemeng@ubuntu.com> on 2016-04-23
Rubber-stamped by Michael Catanzaro.

  • hu.po:
3:25 AM Changeset in webkit [200830] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199895 - REGRESSION (r189567): The top of Facebook's messenger.com looks visually broken
https://bugs.webkit.org/show_bug.cgi?id=156869
<rdar://problem/23204668>

Reviewed by Zalan Bujtas.

Source/WebCore:

Added fast/block/min-content-with-box-sizing.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):

LayoutTests:

  • fast/block/min-content-box-sizing-expected.html: Added.
  • fast/block/min-content-box-sizing.html: Added.
3:22 AM Changeset in webkit [200829] by Carlos Garcia Campos
  • 10 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r199881 - REGRESSION (r194898): Multi download of external SVG defs file by <use> xlinks:href (caching)
https://bugs.webkit.org/show_bug.cgi?id=156368
<rdar://problem/25611746>

Reviewed by Simon Fraser.

Source/WebCore:

We would load svg resources with fragment identifier again because the encoding never matched.

Test: http/tests/svg/svg-use-external.html

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::setEncoding):
(WebCore::TextResourceDecoder::hasEqualEncodingForCharset):

Encoding can depend on mime type. Add a comparison function that takes this into account.

(WebCore::findXMLEncoding):

  • loader/TextResourceDecoder.h:

(WebCore::TextResourceDecoder::encoding):

  • loader/cache/CachedCSSStyleSheet.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::textResourceDecoder):

Add a way to get the TextResourceDecoder from a cached resource.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::determineRevalidationPolicy):

Use the new comparison function.

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedScript.h:
  • loader/cache/CachedXSLStyleSheet.h:

LayoutTests:

  • http/tests/svg/resources/symbol-defs.svg: Added.
  • http/tests/svg/svg-use-external-expected.txt: Added.
  • http/tests/svg/svg-use-external.html: Added.
3:02 AM Changeset in webkit [200828] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r199875 - NetworkCacheIOChannelSoup: detach the newly-created IOChannel::readSync thread
https://bugs.webkit.org/show_bug.cgi?id=156907

Reviewed by Carlos Garcia Campos.

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::readSyncInThread): Detach the new thread,
ensuring the resources are released after the thread exits. Next step is
to set up a thread pool and use that, avoiding thread re-creation.

3:01 AM Changeset in webkit [200827] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199856 - RenderVideo should always update the intrinsic size before layout.
https://bugs.webkit.org/show_bug.cgi?id=156878

Reviewed by Simon Fraser.

In order to layout video element properly we need to know the correct intrinsic size.
This patch also asserts if we end up updating the intrinsic size right after finishing video renderer layout.

This issues was discovered as part of webkit.org/b/156245. (hence covered by existing tests)

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::updateIntrinsicSize):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updatePlayer):

  • rendering/RenderVideo.h:
2:57 AM Changeset in webkit [200826] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199851 - Fix crashes when loading SVG images.

  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):
Give the SVG page its own application cache storage.

2:54 AM Changeset in webkit [200825] by Carlos Garcia Campos
  • 8 edits
    3 deletes in releases/WebKitGTK/webkit-2.12

Revert "Merge r197520 - DFG should be able to compile StringReplace"

This reverts commit 0c91f9b2c73ecc89dac9ece8b7fa6fd06330e451.

1:22 AM Changeset in webkit [200824] by gskachkov@gmail.com
  • 12 edits in trunk

Assertion failure for super() call in arrow function default parameters
https://bugs.webkit.org/show_bug.cgi?id=157079

Reviewed by Saam Barati.

Source/JavaScriptCore:

Root of the issue that in arrow function we load bounded variables this/super/new.target just after
input parameters were initialized, and did not covered case of default values for function parameters.
Current patch tried to fix issue and allow to load bounded variables earlier, before the input
parameters are assigned by default values.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • tests/stress/arrowfunction-lexical-bind-this-2.js:

LayoutTests:

  • js/arrowfunction-lexical-bind-arguments-non-strict-expected.txt:
  • js/arrowfunction-lexical-bind-this-expected.txt:
  • js/arrowfunction-supercall-expected.txt:
  • js/arrowfunction-superproperty-expected.txt:
  • js/script-tests/arrowfunction-lexical-bind-arguments-non-strict.js:
  • js/script-tests/arrowfunction-lexical-bind-this.js:
  • js/script-tests/arrowfunction-supercall.js:
  • js/script-tests/arrowfunction-superproperty.js:
1:11 AM Changeset in webkit [200823] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.32.1.1/Source

Versioning.

12:50 AM Changeset in webkit [200822] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.32.1.1

New tag.

12:41 AM Changeset in webkit [200821] by svillar@igalia.com
  • 4 edits in trunk

[css-grid] Show auto-repeat line names in ComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=157622

Reviewed by Darin Adler.

Source/WebCore:

Add the necessary machinery to show the named lines from auto-repeat tracks in
getComputedStyle(). A new class OrderedNamedLinesCollector was added to abstract the
retrieval of line names no matter where they come from (explicit or auto-repeat tracks).

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollector::OrderedNamedLinesCollector):
(WebCore::OrderedNamedLinesCollector::isEmpty): TRUE if we don't have named lines neither on
explicit nor auto-repeat tracks.
(WebCore::OrderedNamedLinesCollector::appendLines): Add the named lines found for a given
index to the CSSGridLineNamesValue.
(WebCore::OrderedNamedLinesCollector::collectLineNamesForIndex): Collects named lines found
for a given index.
(WebCore::addValuesForNamedGridLinesAtIndex): Use the collector to gather named lines.
(WebCore::valueForGridTrackList): Ditto.

LayoutTests:

  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
12:33 AM Changeset in webkit [200820] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Always use v3 UI for dashboards and analysis task pages
https://bugs.webkit.org/show_bug.cgi?id=157647

Reviewed by Darin Adler.

Redirect dashboard pages from v1 and v2 to v3's summary page. Also redirect v1 UI's charts page and v2 UI's
analysis task pages to the corresponding v3 pages.

Keep v2's charts page accessible since some features such as segmentation is still only available on v2 UI.

  • public/index.html:

(init.showCharts): Redirect to v3 UI once the chart list has been parsed.
(init.redirectChartsToV3): Added.

  • public/v2/index.html:
12:31 AM Changeset in webkit [200819] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Revert r199691.
https://bugs.webkit.org/show_bug.cgi?id=157645
<rdar://problem/26235373>

Patch by Tina Liu <iting_liu@apple.com> on 2016-05-13
Reviewed by Darin Adler.

Source/WebCore:

  • plugins/PluginStrategy.h:

Source/WebKit/mac:

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.

Source/WebKit2:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextSetPrivateBrowsingPluginLoadClientPolicy): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setPluginLoadClientPolicy):
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost):
(WebKit::WebPlatformStrategies::populatePluginCache):
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForPrivateBrowsing): Deleted.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicies): Deleted.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
12:31 AM Changeset in webkit [200818] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Show a spinner while fetching data on summary page
https://bugs.webkit.org/show_bug.cgi?id=157658

Reviewed by Darin Adler.

Show a spinner while fetching JSON files on the summary page.

  • public/v3/components/base.js:

(ComponentBase.prototype.renderReplace): Added a new implementation that simply calls the static version.
(ComponentBase.renderReplace): Made this static.

  • public/v3/pages/summary-page.js:

(SummaryPage.prototype._constructRatioGraph): Show a spinner icon when SummaryPageConfigurationGroup's
isFetching returns true.
(SummaryPage.cssTemplate): Force the height of each cell to be 2.5rem so that the height of cell doesn't
change when a spinner is replaced by a ratio bar graph.

(SummaryPageConfigurationGroup): Added this._isFetching as an instance variable.
(SummaryPageConfigurationGroup.prototype.isFetching): Added.
(SummaryPageConfigurationGroup.prototype.fetchAndComputeSummary): Set this._isFetching while waiting for
the promises to resolve after 50ms. We don't immediately set this._isFetching to avoid FOC when all JSON
files have been cached.

May 12, 2016:

11:38 PM Changeset in webkit [200817] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit/mac

Merged r200664. rdar://problem/26262632

11:37 PM Changeset in webkit [200816] by bshafiei@apple.com
  • 19 edits in branches/safari-602.1.32-branch/Source

Roll out r200463. rdar://problem/26260800

11:34 PM Changeset in webkit [200815] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebCore

Roll out r200469. rdar://problem/26260800

11:28 PM Changeset in webkit [200814] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Drop WorkerGlobalScope's custom GetOwnPropertySlot() implementation
https://bugs.webkit.org/show_bug.cgi?id=157662

Reviewed by Darin Adler.

Drop WorkerGlobalScope's custom GetOwnPropertySlot() implementation as
it is no longer needed after <http://trac.webkit.org/changeset/196678>.

JSC::getStaticPropertySlot() now properly checks for overrides *before*
checking the static table.

No new tests, no web-exposed behavior change.

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::getOwnPropertySlotDelegate): Deleted.

  • workers/WorkerGlobalScope.idl:
10:52 PM Changeset in webkit [200813] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

CoordinatedGraphicsLayer::syncLayerState() should set the m_layerState.contentsOpaque flag
https://bugs.webkit.org/show_bug.cgi?id=157575

Reviewed by Darin Adler.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::syncLayerState): The contentsOpaque flag in the
layer's CoordinatedGraphicsLayerState object should also be set to the current value
of the layer. This is the only flag in the union of 9 members that's not being updated
in this method.

10:48 PM Changeset in webkit [200812] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[TexMap] Handle TextureMapperShaderProgram objects through references
https://bugs.webkit.org/show_bug.cgi?id=157619

Reviewed by Antonio Gomes.

TextureMapper code always expects valid TextureMapperShaderProgram
objects to be created, so it doesn't make sense to access these
objects through raw pointers or RefPtr<>s.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawBorder):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::drawEdgeTriangles):
(WebCore::TextureMapperGL::drawUnitRect):
(WebCore::TextureMapperGL::draw):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::TextureMapperGL::beginClip):

  • platform/graphics/texmap/TextureMapperGL.h:
10:46 PM Changeset in webkit [200811] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

VideoSinkGStreamer: plug a GstBuffer leak in webkitVideoSinkRequestRender()
https://bugs.webkit.org/show_bug.cgi?id=157617

Reviewed by Darin Adler.

Unref the newly-created GstBuffer object after creating the new GstSample
that's based on it. gst_sample_new() doesn't take the ownership of it.

Also, don't unref the GstBuffer object that's passed in to the
webkitVideoSinkRequestRender() function in case the allocation of the
replacement buffer fails. We don't have any ownership over that buffer
and it's not unreffed anywhere else in this function.

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkitVideoSinkRequestRender):

9:20 PM Changeset in webkit [200810] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove "Extra Scripts" folder from Resources sidebar if all children removed
https://bugs.webkit.org/show_bug.cgi?id=157656

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._scriptWasRemoved):
Remove parent folder after last script tree element removed.

9:19 PM Changeset in webkit [200809] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't filter Rendering Frames by duration
https://bugs.webkit.org/show_bug.cgi?id=157654

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype._scopeBarSelectionDidChange):
Call filterDidChange on the grid, not the base class.
TimelineView.filterDidChange exists to let TimelineViews perform
additional work when the grid filter changes (see LayoutTimelineView).
(WebInspector.RenderingFrameTimelineView):

9:15 PM Changeset in webkit [200808] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Deleting nodes in DOM Tree sometimes changes selection to parent instead of sibling
https://bugs.webkit.org/show_bug.cgi?id=157649

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._updateChildren): Deleted.
When pressing delete, we remove the node via DOM.removeNode()
and remove the DOMTreeElement when we receive a successful response.
However, the backend could send a DOM.childNodeRemoved event before
the response from DOM.removeNode, and the frontend would have a race
between DOMTreeUpdater's timeout and the removeNode callback.

In DOMTreeUpdater's path, DOMTreeElement updateChildren would notice
a removed node and set the selection to the parent node.

In the DOM.removeNode path, TreeOutline would update the selection
based on availability of a previousSibling/nextSibling/parent.

Remove the custom code in DOMTreeElement updateChildren, so that it
can just do the normal TreeOutline behavior via removeChildAtIndex.

6:55 PM Changeset in webkit [200807] by mmaxfield@apple.com
  • 3 edits
    3 adds in trunk

Source/WebCore:
[Cocoa] Text shadow sometimes clipped unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=108929

Reviewed by Dean Jackson.

CoreGraphics can only draw one text shadow at a time. We work around that by drawing
the text multiple times, one for each shadow. However, we want to make sure that the
original text isn't also drawn multiple times, so we bump up the shadow offsets so
the text and the shadow don't intersect, and then we clip out the original text (so
only the shadow remains).

Unfortunately, this clipping requires knowing where the visual extent of the text is,
which WebKit currently has trouble with. In particular, we often use layout extents
in lieu of visual extents, which is a problem when the glyphs draw outside of their
layout boxes. In this case, it causes us to think the text shadow is much smaller
than it really is, so our clipping operation clips to an area which is too small.

A quick solution to this is to inflate the clip rect by an amount proportional to the
font size, and offset the text shadow accordingly. If this amount is large enough,
this bug will occur on few enough sites that it is reasonable to consider this bug
fixed without the real solution of educating WebKit properly about the difference
between text layout rects and text visual extent rects.

Test: fast/text/multiple-text-shadow-overflow-layout-rect.html

  • rendering/TextPainter.cpp:

(WebCore::ShadowApplier::ShadowApplier):

LayoutTests:
Text shadow sometimes clipped unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=108929

Reviewed by Dean Jackson.

Add a font which draws dramatically far outside of its layout rect.

  • fast/text/multiple-text-shadow-overflow-layout-rect-expected.html: Added.
  • fast/text/multiple-text-shadow-overflow-layout-rect.html: Added.
  • fast/text/resources/font-overflow-layout-rect.svg: Added.
6:24 PM Changeset in webkit [200806] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: Fails to load sourceMappingURL with relative URL
https://bugs.webkit.org/show_bug.cgi?id=157650
<rdar://problem/26133763>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/SourceMapManager.js:

Wrong order of arguments. The intent was to pass the incoming
baseURL as the partialURL, because if it was not absolute by
that point we could make it relative to the main resource.
However we accidentally put the main resource as the partial
portion, which would just always return the main resource url.
Swap the order, so that if the incoming base is absolute
(such as a resource.url) that will be used, but if the
incoming base is relative (e.g. an incomplete sourceURL) we
can make it absolute with the main resource.

5:55 PM Changeset in webkit [200805] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception when removing selected Timeline instrument
https://bugs.webkit.org/show_bug.cgi?id=157639
<rdar://problem/26252938>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype._instrumentRemoved):
Remove timeline tree element before modifying state. Removing the tree
element triggers a SelectionDidChange event, which can have side effects.

5:48 PM Changeset in webkit [200804] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking inspector/debugger/command-line-api-exception-nested-catch.html as a flaky timeout on mac
https://bugs.webkit.org/show_bug.cgi?id=152487

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
5:24 PM Changeset in webkit [200803] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r200601): Crash when using local() and unicode-range in @font-face blocks
https://bugs.webkit.org/show_bug.cgi?id=157646

Reviewed by Geoffrey Garen.

Source/WebCore:

I simply forgot a null check.

Test: fast/text/isLoading-crash-failed-font.html

  • css/CSSSegmentedFontFace.cpp:

LayoutTests:

  • fast/text/isLoading-crash-failed-font-expected.txt: Added.
  • fast/text/isLoading-crash-failed-font.html: Added.
5:09 PM Changeset in webkit [200802] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.7.1

New Tag.

4:47 PM Changeset in webkit [200801] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.140

New Tag.

4:40 PM Changeset in webkit [200800] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Unreviewed build fix for r200799.

  • WebView/WebView.mm:
4:22 PM Changeset in webkit [200799] by jiewen_tan@apple.com
  • 12 edits in trunk

REGRESSION (r199313): ICBC app: text field In the webview is not tappable
https://bugs.webkit.org/show_bug.cgi?id=157396
<rdar://problem/25931513>

Reviewed by David Kilzer.

Source/WebCore:

Add a quirk for WebKit1 apps.

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::requestFrame):
Even though the HTML spec suggests that we should navigate to about:blank
for subframes/iframes, of which the src cannot be resolved to an valid URL,
many existing WebKit1 apps are relying on invalid URLs to bridge their WebView
codes and their native Objective-C codes. Therefore, a quirk is added to
escape the URL validation for existing WebKit1 apps.
(WebCore::SubframeLoader::shouldConvertInvalidURLsToBlank):

  • loader/SubframeLoader.h:
  • page/Settings.in:

Source/WebKit/mac:

Add a quirk for WebKit1 apps.

  • WebView/WebView.mm:

(shouldConvertInvalidURLsToBlank):
(-[WebView _preferencesChanged:]):

LayoutTests:

The previous test is actually bogus, and therefore modify it to do the
real task.

  • fast/loader/iframe-src-invalid-url-expected.txt:
  • fast/loader/iframe-src-invalid-url.html:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
4:11 PM Changeset in webkit [200798] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.32-branch/Source

Versioning.

4:09 PM Changeset in webkit [200797] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.32.1

New tag.

3:55 PM Changeset in webkit [200796] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Baseline and DFG's JSC_report...CompileTimes needs CodeBlock hashes.
https://bugs.webkit.org/show_bug.cgi?id=157643

Reviewed by Keith Miller.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

3:51 PM Changeset in webkit [200795] by Matt Baker
  • 1 edit in trunk/Source/WebInspectorUI/ChangeLog

Unreviewed, fix ChangeLog title for r199634

3:13 PM Changeset in webkit [200794] by adachan@apple.com
  • 2 edits in trunk/Source/WebCore

Prevent clicks in the placeholder from playing or pausing the video in a MediaDocument.
https://bugs.webkit.org/show_bug.cgi?id=157625

Reviewed by Jer Noble.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createControls):
(Controller.prototype.handlePlaceholderClick):

3:09 PM Changeset in webkit [200793] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline Reset button only resets the one active Script TimelineView
https://bugs.webkit.org/show_bug.cgi?id=157638

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.reset):
Reset should reset all the views.

(WebInspector.ScriptClusterTimelineView.prototype.get navigationSidebarTreeOutline): Deleted.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView.prototype.get navigationSidebarTreeOutline): Deleted.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineScopeBar): Deleted.
Remove dead code. Nobody calls these getters.

3:08 PM Changeset in webkit [200792] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Layout timeline popovers are inconsistently shown
https://bugs.webkit.org/show_bug.cgi?id=157640
<rdar://problem/26253394>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype._showPopoverForSelectedNodeSoon):
Fix the bug by clearing _showPopoverTimeout when we show the popover.

(WebInspector.TimelineDataGrid.prototype._hidePopover):
Modernize the code to use arrow functions and avoid binds.

(WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
Updating with presentNewContentWithFrame animates the popover to the correct
position instead of jumping and ending up at the wrong location.

3:06 PM Changeset in webkit [200791] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove forced layouts caused by DOMTreeElement during Timeline recording
https://bugs.webkit.org/show_bug.cgi?id=157641

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.updateSelection): Deleted.
This triggers forced layout and I could never actually get it to trigger anyways.
Its history is from the original import, so I don't know why it was added to begin with.
Just remove it.

2:52 PM Changeset in webkit [200790] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Unreviewed, rolling out r200718.
https://bugs.webkit.org/show_bug.cgi?id=157637

Data grid column dividers are misaligned (Requested by NVI on
#webkit).

Reverted changeset:

"Web Inspector: Contents of Duration column are covered by
always on (legacy) scroll bars"
https://bugs.webkit.org/show_bug.cgi?id=157590
http://trac.webkit.org/changeset/200718

2:13 PM Changeset in webkit [200789] by Chris Dumez
  • 30 edits in trunk/Source/WebCore

Drop toJS() overload taking a PassRefPtr<> parameter
https://bugs.webkit.org/show_bug.cgi?id=157627

Reviewed by Alex Christensen.

Update our implementation stop stop returning PassRefPtrs to the
JS bindings and drop the toJS() overload taking a PassRefPtr<>
parameter

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::buffered):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::getChannelData):

  • Modules/webaudio/AudioBuffer.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::create):

  • animation/DocumentTimeline.h:
  • bindings/js/JSDOMBinding.h:

(WebCore::toJS): Deleted.
(WebCore::toJSNewlyCreated): Deleted.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::getRGBColorValue):

  • css/CSSPrimitiveValue.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::error):

  • html/HTMLMediaElement.h:
  • html/LabelableElement.cpp:

(WebCore::LabelableElement::labels):

  • html/LabelableElement.h:
  • html/canvas/WebGLGetInfo.cpp:

(WebCore::WebGLGetInfo::getWebGLBuffer):
(WebCore::WebGLGetInfo::getWebGLFloatArray):
(WebCore::WebGLGetInfo::getWebGLFramebuffer):
(WebCore::WebGLGetInfo::getWebGLIntArray):
(WebCore::WebGLGetInfo::getWebGLProgram):
(WebCore::WebGLGetInfo::getWebGLRenderbuffer):
(WebCore::WebGLGetInfo::getWebGLTexture):
(WebCore::WebGLGetInfo::getWebGLUnsignedByteArray):
(WebCore::WebGLGetInfo::getWebGLUnsignedIntArray):
(WebCore::WebGLGetInfo::getWebGLVertexArrayObjectOES):
(WebCore::WebGLGetInfo::getWebGLVertexArrayObject):

  • html/canvas/WebGLGetInfo.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::paintRenderingResultsToImageData):
(WebCore::WebGLRenderingContextBase::createBuffer):
(WebCore::WebGLRenderingContextBase::createFramebuffer):
(WebCore::WebGLRenderingContextBase::createTexture):
(WebCore::WebGLRenderingContextBase::createProgram):
(WebCore::WebGLRenderingContextBase::createRenderbuffer):
(WebCore::WebGLRenderingContextBase::createShader):
(WebCore::WebGLRenderingContextBase::getActiveAttrib):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getShaderPrecisionFormat):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
(WebCore::WebGLRenderingContextBase::videoFrameToImage):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::create):

  • html/track/TextTrackCue.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::create):

  • html/track/VTTCue.h:
  • page/DOMSelection.cpp:

(WebCore::DOMSelection::getRangeAt):

  • page/DOMSelection.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::matchMedia):
(WebCore::DOMWindow::styleMedia):
(WebCore::DOMWindow::getComputedStyle):
(WebCore::DOMWindow::getMatchedCSSRules):
(WebCore::DOMWindow::webkitConvertPointFromNodeToPage):
(WebCore::DOMWindow::webkitConvertPointFromPageToNode):
(WebCore::DOMWindow::open):

  • page/DOMWindow.h:
  • page/Location.cpp:

(WebCore::Location::ancestorOrigins):

  • page/Location.h:
12:54 PM Changeset in webkit [200788] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Touch.prototype is undefined on iOS
https://bugs.webkit.org/show_bug.cgi?id=157560
<rdar://problem/26143008>

Reviewed by Chris Dumez.

Remove Touch and TouchList attributes from DOMWindow.
These attributes should be exposed via generated binding code (JSDOMWindow.cpp).

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::touch): Deleted.
(WebCore::JSDOMWindow::touchList): Deleted.

  • bindings/js/ios/TouchConstructors.cpp:
  • page/DOMWindow.idl:
12:51 PM Changeset in webkit [200787] by rniwa@webkit.org
  • 7 edits in trunk

indexForVisiblePosition should use the root editable element as the scope
https://bugs.webkit.org/show_bug.cgi?id=157611

Reviewed by Darin Adler.

Source/WebCore:

Use the highest editing host instead of the document node as the scope in indexForVisiblePosition
when it's called inside an editable region. This refactoring is necessary to unblock the work to support
undo/redo in VoiceOver after r199030.

We have to workaround a bug in indexForVisiblePosition that it could return a slightly higher index than
the expected value because TextIterator emits an extra new line after a block element with a large margin
at the bottom. Unfortunately, fixing this requires a lot of code changes since the rest of the editing
code assumes this behavior and/or happens to cancel it out with some other quirks.

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::doApply):

  • editing/htmlediting.cpp:

(WebCore::indexForVisiblePosition):

LayoutTests:

Rebaselined tests with progressions.

  • editing/execCommand/crash-indenting-list-item-expected.txt: Now preseves the selection at the beginning of

the editable region instead of moving it to the end.

  • editing/execCommand/format-block-multiple-paragraphs-in-pre-expected.txt: Now preserves selection in more test

cases. This test is the one that required the workaround in ApplyBlockElementCommand::doApply. One of the test
cases would regress and clear the selection without it.

  • editing/execCommand/indent-pre-list-expected.txt: Now preserves the selection instead of clearing it.
12:29 PM Changeset in webkit [200786] by Beth Dakin
  • 3 edits in trunk/Source/WebKit/mac

WebKitAdditions needs to be notified before the WebView is dealloc'd
https://bugs.webkit.org/show_bug.cgi?id=157633
-and corresponding-
rdar://problem/26134539

Reviewed by Anders Carlsson.

  • WebView/WebView.mm:

(-[WebView dealloc]):

  • WebView/WebViewInternal.h:
12:14 PM Changeset in webkit [200785] by dbates@webkit.org
  • 7 edits in trunk/Source

Use SecTask SPI to retrieve code signing identifier for user directory suffix
https://bugs.webkit.org/show_bug.cgi?id=157570
Source/WebKit2:

<rdar://problem/25706517>

Reviewed by Darin Adler.

It is sufficient to make use of the SecTask SPI to retrieve the code signing
identifier of the embedding client for use in the user directory suffix. This
avoids the need to allow Code Signing Services to have access to the bundle
of the embedding client.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::ChildProcess::initializeSandbox): Use the code signing identifier of the
embedding client as part of the user directory suffix if available.

  • Shared/mac/CodeSigning.h: Update comment and include header wtf/spi/darwin/XPCSPI.h

for the definition of xpc_connection_t. Renamed codeSigningIdentifier() to codeSigningIdentifierForCurrentProcess()
to convey that it returns the code signing identifier for the current process. Repurposed
the name codeSigningIdentifier for the variant of this function that takes a xpc_connection_t.

  • Shared/mac/CodeSigning.mm:

(WebKit::codeSigningIdentifier): Added. Uses the audit token associated with the specified
XPC connection to get the code signing identifier for the embedding client.
(WebKit::codeSigningIdentifierForCurrentProcess): Renamed; formerly named codeSigningIdentifier.
Implemented in terms of the SecTask API.
(WebKit::secCodeForCurrentProcess): Deleted.
(WebKit::secCodeForProcess): Deleted.
(WebKit::secCodeSigningInformation): Deleted.
(WebKit::appleSignedOrMacAppStoreSignedOrAppleDeveloperSignedRequirement): Deleted.
(WebKit::secCodeSigningIdentifier): Deleted.
(WebKit::codeSigningIdentifierForProcess): Deleted.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService): Update code due to renaming.

Source/WTF:

Reviewed by Darin Adler.
<rdar://problem/25706517>

Forward declare SPI SecTaskCopySigningIdentifier().

  • wtf/spi/cocoa/SecuritySPI.h:
12:13 PM Changeset in webkit [200784] by bshafiei@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Build fix after r195004/r200780.

11:57 AM Changeset in webkit [200783] by bshafiei@apple.com
  • 2 edits
    1 copy in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge patch for r200387. rdar://problem/26131112

11:53 AM Changeset in webkit [200782] by bshafiei@apple.com
  • 2 edits
    1 add in branches/safari-601-branch/Source/JavaScriptCore

Merge patch for r200387. rdar://problem/26131068

11:44 AM Changeset in webkit [200781] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Cleanup RenderObject::containingBlock.
https://bugs.webkit.org/show_bug.cgi?id=157628

Reviewed by Chris Dumez.

No change in functionality.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlock):

11:09 AM Changeset in webkit [200780] by bshafiei@apple.com
  • 8 edits in branches/safari-601-branch/Source/WebCore

Merged r195004. rdar://problem/26228562

10:57 AM Changeset in webkit [200779] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: 11% of time in TimelineRecording spent updating DataGrid that is not visible
https://bugs.webkit.org/show_bug.cgi?id=157612
<rdar://problem/26239051>

Reviewed by Timothy Hatcher.

During recording, a timeline view is constantly having its cached time
values updated. These updates should only trigger forced layouts if the
view supports live data.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.set zeroTime):
Drive-by fix, add call to _filterTimesDidChange.
(WebInspector.TimelineView.prototype.set startTime):
(WebInspector.TimelineView.prototype.set endTime):
(WebInspector.TimelineView.prototype.set currentTime):
Don't update layout directly.
(WebInspector.TimelineView.prototype._timesDidChange):
Force a layout if the view supports live data. When not recording,
a layout is always performed.
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype._filterTimesDidChange.delayedWork): Deleted.
Changed to an arrow function.
(WebInspector.TimelineView.prototype._filterTimesDidChange): Deleted.
Renamed _timesDidChange, since the method now does more than throttle
a filterDidChange call.

10:53 AM Changeset in webkit [200778] by eric.carlson@apple.com
  • 5 edits
    2 adds in trunk

Adjust "main content" video heuristic
https://bugs.webkit.org/show_bug.cgi?id=157532
Source/WebCore:

<rdar://problem/25840861>

Reviewed by Darin Adler.

Test: media/video-main-content-autoplay.html, plus existing tests updated.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager): Use isElementLargeEnoughForMainContent.
(WebCore::isMainContent): Ditto.
(WebCore::isElementLargeEnoughForMainContent): Check video area and aspect ratio.
(WebCore::MediaElementSession::mainContentCheckTimerFired): Call result.setToNonUserAgentShadowAncestor

so it doesn't hit test the video controls in the shadow DOM.

LayoutTests:

Reviewed by Darin Adler.

  • media/video-main-content-allow.html:
  • media/video-main-content-autoplay-expected.txt: Added.
  • media/video-main-content-autoplay.html: Added.
  • media/video-main-content-deny-too-small.html:
10:01 AM Changeset in webkit [200777] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

9:21 AM Changeset in webkit [200776] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore
[curl] ASSERTION FAILED: isLocalFile()
url == m_string in fast/dom/34176.html

https://bugs.webkit.org/show_bug.cgi?id=157059

Patch by Fujii Hironori <Fujii Hironori> on 2016-05-12
Reviewed by Darin Adler.

Fix incorrect usage of URL constructor. CURLINFO_EFFECTIVE_URL
does not conform to URL's ParsedURLString. Created a new utility
function to convert CURLINFO_EFFECTIVE_URL to a URL, and replaced
all codes converting CURLINFO_EFFECTIVE_URL with it.

Test: fast/dom/34176.html

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::didReceiveHeader): Use getCurlEffectiveURL

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::getCurlEffectiveURL): Added.
(WebCore::handleLocalReceiveResponse): Use getCurlEffectiveURL
(WebCore::getProtectionSpace): Ditto.
(WebCore::headerCallback): Ditto.
(WebCore::ResourceHandleManager::downloadTimerCallback): Ditto.

  • platform/network/curl/ResourceHandleManager.h: Add a declaration

of getCurlEffectiveURL.

9:07 AM Changeset in webkit [200775] by Chris Dumez
  • 104 edits in trunk/Source/WebCore

Avoid unnecessary null checks in toJS() when the implementation returns a reference or Ref<>
https://bugs.webkit.org/show_bug.cgi?id=157604

Reviewed by Darin Adler.

Avoid unnecessary null checks in toJS() when the implementation returns
a C++ reference or Ref<>. To achieve this, the following changes were
made:

  1. Have toJS() overload that takes a raw pointer call the one that takes in a C++ reference, instead of the other way around. This way, we only do the null check when passing a raw pointer in.
  2. Stop calling WTF::getPtr() on the value returned by the implementation because this causes us to call toJS() with a raw pointer every time.
  3. Add an toJS() overload in JSDOMBinding.h that takes a Ref<T> in and that calls toJS() with a C++ reference internally. This way, we bypass the null check if the implementation returns a Ref<T>.

Further refactoring could be done but I try to keep the size of this
patch as small as possible. toJS() should probably take the ExecState
and the globalObject by reference, for e.g.

  • bindings/js/JSAnimationTimelineCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::toJS):
(WebCore::constructJSBlob): Deleted.

  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):

  • bindings/js/JSCSSValueCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSCanvasRenderingContextCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::attributeChanged):

  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/js/JSDOMFormDataCustom.cpp:

(WebCore::constructJSDOMFormData):

  • bindings/js/JSDOMMimeTypeArrayCustom.cpp:

(WebCore::JSDOMMimeTypeArray::nameGetter):

  • bindings/js/JSDOMNamedFlowCollectionCustom.cpp:

(WebCore::JSDOMNamedFlowCollection::nameGetter):

  • bindings/js/JSDOMPluginArrayCustom.cpp:

(WebCore::JSDOMPluginArray::nameGetter):

  • bindings/js/JSDOMPluginCustom.cpp:

(WebCore::JSDOMPlugin::nameGetter):

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::toJS):

  • bindings/js/JSDOMWindowBase.h:

(WebCore::toJS):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotNamedItemGetter):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):
(WebCore::JSDocument::createTouchList):
(WebCore::JSDocument::prepend): Deleted.

  • bindings/js/JSDocumentFragmentCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSEventCustom.cpp:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSFileReaderCustom.cpp:

(WebCore::JSFileReader::result):

  • bindings/js/JSHTMLAllCollectionCustom.cpp:

(WebCore::namedItems):
(WebCore::callHTMLAllCollection):

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::getContext):

  • bindings/js/JSHTMLCollectionCustom.cpp:

(WebCore::JSHTMLCollection::nameGetter):
(WebCore::toJS):

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::JSHTMLDocument::nameGetter):

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):
(WebCore::JSHTMLElement::pushEventHandlerScope):

  • bindings/js/JSHTMLFormControlsCollectionCustom.cpp:

(WebCore::namedItems):

  • bindings/js/JSHTMLFormElementCustom.cpp:

(WebCore::JSHTMLFormElement::nameGetter):

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::nameGetter):

  • bindings/js/JSIDBCursorCustom.cpp:

(WebCore::JSIDBCursor::source):
(WebCore::toJS):

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::createObjectStore):
(WebCore::JSIDBDatabase::transaction):

  • bindings/js/JSIDBRequestCustom.cpp:

(WebCore::JSIDBRequest::result):
(WebCore::JSIDBRequest::source):

  • bindings/js/JSImageConstructor.cpp:

(WebCore::JSImageConstructor::construct):

  • bindings/js/JSImageDataCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::JSLazyEventListener::initializeJSFunction):

  • bindings/js/JSMediaSessionCustom.cpp:

(WebCore::constructJSMediaSession):

  • bindings/js/JSMediaStreamCapabilitiesCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSNamedNodeMapCustom.cpp:

(WebCore::JSNamedNodeMap::nameGetter):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::createWrapperInline):
(WebCore::toJSNewlyCreated):
(WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase):
(WebCore::getOutOfLineCachedWrapper): Deleted.

  • bindings/js/JSNodeCustom.h:

(WebCore::toJS):

  • bindings/js/JSNodeListCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSNodeListCustom.h:

(WebCore::toJS):

  • bindings/js/JSPerformanceEntryCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSPopStateEventCustom.cpp:

(WebCore::JSPopStateEvent::state):

  • bindings/js/JSRTCStatsResponseCustom.cpp:

(WebCore::JSRTCStatsResponse::nameGetter):

  • bindings/js/JSSVGPathSegCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSStyleSheetCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSTrackCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSTrackCustom.h:
  • bindings/js/JSTrackEventCustom.cpp:

(WebCore::JSTrackEvent::track):

  • bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:

(WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):

  • bindings/js/JSWorkerCustom.cpp:

(WebCore::constructJSWorker):

  • bindings/js/ReadableStreamController.cpp:

(WebCore::createReadableStream):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
(NativeToJSValue):
(GenerateConstructorDefinition):
(ceilingToPowerOf2): Deleted.
(ConstructorHasProperties): Deleted.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestActiveDOMObject::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallback::callbackWithArrayParam):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackRequiresThisToPass):
(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestCallback.h:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:

(WebCore::JSTestCallbackFunction::callbackWithArrayParam):
(WebCore::JSTestCallbackFunction::callbackWithStringList):
(WebCore::JSTestCallbackFunction::callbackRequiresThisToPass):
(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestCallbackFunction.h:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestClassWithJSBuiltinConstructor::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestCustomNamedGetter::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructorConstructor::construct):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestEventConstructor::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestEventConstructor.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestEventTarget::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestEventTarget.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestException::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestException.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestGenerateIsReachable::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestGlobalObject::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestGlobalObject.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestInterface::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestInterface.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestMediaQueryListListener::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestNamedConstructor::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestNamedConstructor.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodeConstructor::construct):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestNondeterministic::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestNondeterministic.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::construct):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjTestNullableObjAttr):
(WebCore::jsTestObjLenientTestObjAttr):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjStrictTypeCheckingAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjPutForwardsAttribute):
(WebCore::jsTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionGetElementById):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestObj::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestObj.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
(WebCore::constructJSTestOverloadedConstructors5):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestOverloadedConstructors::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestOverrideBuiltins::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestSerializedScriptValueInterface::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestTypedefs::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSTestTypedefs.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSattribute::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSattribute.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSreadonly::toWrapped): Deleted.

  • bindings/scripts/test/JS/JSreadonly.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • html/HTMLMediaElement.cpp:

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):

8:47 AM Changeset in webkit [200774] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Windows Perl fails to run copy-user-interface-resources.pl
https://bugs.webkit.org/show_bug.cgi?id=157620
<rdar://problem/26241548>

Patch by Fujii Hironori <Fujii Hironori> on 2016-05-12
Reviewed by Timothy Hatcher.

There are two problems on Windows platform. 'cat' command is
missing and can not execute shebang.

  • Scripts/copy-user-interface-resources.pl: Invoke Perl scripts

with explicitly specifying Perl command instead of relying on
shebang. Add a new subroutine 'appendFile' to concatenate files
instread of 'cat' command.

8:43 AM Changeset in webkit [200773] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: 3.8% of timeline recording spent in NavigationSidebarPanel _updateContentOverflowShadowVisibility for background tab
https://bugs.webkit.org/show_bug.cgi?id=157616

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Don't update or schedule and update if we aren't visible.
When we are shown we will force an update.

8:42 AM Changeset in webkit [200772] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Reduce rAF churn in DefaultDashboardView on pages with lots of resources
https://bugs.webkit.org/show_bug.cgi?id=157618

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DefaultDashboardView.js:

(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplaySoon):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):
Previously we were scheduling multiple rAFs that would all fire with
the same data, each time a resource was added. Coalesce into one.

8:25 AM Changeset in webkit [200771] by bshafiei@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r200466. rdar://problem/26228860

7:48 AM Changeset in webkit [200770] by Konstantin Tokarev
  • 14 edits in trunk/Source

Use reference instead of pointer in FrameLoaderClient::saveViewStateToItem.
https://bugs.webkit.org/show_bug.cgi?id=157624

Reviewed by Darin Adler.

Source/WebCore:

No new tests needed.

  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::saveViewStateToItem):

  • WebView/WebFrame.mm:

(-[WebFrame _saveViewState]):

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::saveViewStateToItem):

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::saveViewStateToItem):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
5:47 AM Changeset in webkit [200769] by commit-queue@webkit.org
  • 12 edits
    4 adds in trunk

Correctly handle prefixed and unprefixed variants in CSSStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=157569
<rdar://problem/26223115>

Patch by Antoine Quint <Antoine Quint> on 2016-05-12
Reviewed by Dean Jackson.

Source/WebCore:

Tests: fast/css/prefixed-unprefixed-variant-style-declaration.html

fast/css/shorthand-omitted-initial-value-overrides-shorthand.html

We essentially revert the code added with https://bugs.webkit.org/show_bug.cgi?id=110011
which duplicated properties that had a prefixed or unprefixed variant. What we do now is
to return the value of the prefixed or unprefixed variant through a CSSStyleDeclaration,
but only return the properties specified by the author when reading from the cssText property.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTransitionShorthand):
(WebCore::CSSParser::addPropertyWithPrefixingVariant): Deleted.

  • css/CSSParser.h:

Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

  • css/CSSPropertyNames.in:

Treat transition properties as we do animation properties.

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
Make these two methods call into the matching getXXXInternal() variant instead
of going through the property set directly so that they would correctly pick up
on the prefixed or unprefixed variant should there be one when the specified property
is not specified directly.

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
We used to simply return the value for the given property from the property set, which
we still do but now also check if there is prefixed or unprefixed variant for the provided
property in case it was absent.

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::removeShorthandProperty):
Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

(WebCore::StyleProperties::asText):
Drive-by fix to also handle the animation-play-state and -webkit-animation-play-state properties
when serializing to the shorthand.

(WebCore::MutableStyleProperties::removeProperty): Deleted.
(WebCore::MutableStyleProperties::removePrefixedOrUnprefixedProperty): Deleted.
(WebCore::MutableStyleProperties::setProperty): Deleted.
(WebCore::getIndexInShorthandVectorForPrefixingVariant): Deleted.
(WebCore::MutableStyleProperties::appendPrefixingVariantProperty): Deleted.
(WebCore::MutableStyleProperties::setPrefixingVariantProperty): Deleted.

  • css/StyleProperties.h:

Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

LayoutTests:

  • animations/fill-mode-forwards-zero-duration.html:
  • animations/play-state-start-paused.html:

These two tests incorrectly expected a shorthand property not to reset
longhand properties that it covers to their initial values even if left
out of the shorthand.

  • animations/unprefixed-properties-expected.txt:
  • animations/unprefixed-properties.html:

This test incorrectly expected that setting an unprefixed property only would
lead to reading the prefixed property through the CSSOM return the empty string,
rather than the value set on the unprefixed property.

  • fast/css/prefixed-unprefixed-variant-style-declaration-expected.txt: Added.
  • fast/css/prefixed-unprefixed-variant-style-declaration.html: Added.

New test checking that setting one of two of a property's unprefixed and prefixed
variants correctly allows to read the style through the CSS OM for both variants,
while only serializing the property that was set through cssText.

  • fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt: Added.
  • fast/css/shorthand-omitted-initial-value-overrides-shorthand.html: Added.

New test checking that setting a longhand property and then the shorthand for that
longhand correctly resets the initial values, even if they were omitted in the shorthand.

5:26 AM Changeset in webkit [200768] by commit-queue@webkit.org
  • 19 edits in trunk/Source/WebCore

Unreviewed, rolling out r200766.
https://bugs.webkit.org/show_bug.cgi?id=157623

it is breaking yosemite builds (Requested by youenn on
#webkit).

Reverted changeset:

"DOMPromise should only restrict the resolution type"
https://bugs.webkit.org/show_bug.cgi?id=157307
http://trac.webkit.org/changeset/200766

3:34 AM Changeset in webkit [200767] by Matt Baker
  • 7 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Improve snapshot selection in heap allocations overview graph
https://bugs.webkit.org/show_bug.cgi?id=157588
<rdar://problem/26231245>

Reviewed by Joseph Pecoraro.

Heap snapshot icon selection now uses the built-in record selection
behavior provided by TimelineOverview/TimelineOverviewGraph. The marker
representing the selected heap snapshot now has a "selected" style, and
clicking an icon when the HeapAllocationsTimeline is not selected causes
the timeline to become selected.

  • UserInterface/Images/HeapSnapshotSelected.svg: Added.

New art for selected snapshot icon.

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:

(.timeline-overview-graph.heap-allocations > img.snapshot.selected):
(.timeline-overview-graph.heap-allocations:not(.selected) > img.snapshot.selected):
Selected icon styles for selected/unselected overview graph.

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:

(WebInspector.HeapAllocationsTimelineOverviewGraph):
Track selected image element.

(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):
Associate image elements with their snapshot record, and reuse image
elements between layouts. Image element click handler can just set the
selectedRecord in the TimelineOverviewGraph base class.

(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.updateSelectedRecord):
(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._updateSnapshotMarkers):
Refresh snapshot icon styles when selected record changes.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView.prototype.selectRecord):
Show snapshot list if no record selected.
(WebInspector.HeapAllocationsTimelineView.prototype.userSelectedRecordFromOverview): Deleted.
No longer needed.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateFrameMarker):
No need to call dispatchSelectedRecordChangedEvent manually anymore,
method has been removed from base class.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.dispatchSelectedRecordChangedEvent): Deleted.
No longer needed. Event dispatched automatically by the rAF callback.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
Allow switching to another timeline, if the selected record does not
belong to the current timeline.

2:36 AM Changeset in webkit [200766] by youenn.fablet@crf.canon.fr
  • 19 edits in trunk/Source/WebCore

DOMPromise should only restrict the resolution type
https://bugs.webkit.org/show_bug.cgi?id=157307

Reviewed by Darin Adler.

Removing from DOMPromise the rejection template parameter.
Supported rejection types are integers (Exception codes) and DOM objects (DOMError typically).

Updated toJS and DeferredWrapper to accept Ref<>&& and RefPtr<>&&.
Previously Ref<>&& were not accepted and only "const RefPtr<>&" was accepted.
This in turn created an unecessary churn count when calling toJS.

Changes also allow in most cases to remove the need for explictly declaring the
rejection/resolution type.

Minor refactoring of FontFaceSet promise handling to use DOMPromise in lieu of DeferredWrapper.

Covered by existing tests.
Changes should not be visible from user scripts.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeText):
(WebCore::blobFromArrayBuffer):
(WebCore::FetchBody::loadingFailed):

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::formData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveResponse):

  • Modules/fetch/FetchResponse.h:
  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::didCreateStream):

  • Modules/streams/ReadableStreamSource.h:
  • Modules/webaudio/AudioContext.h:
  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):
(WebCore::jsPair):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::fulfillPromiseWithJSON):

  • bindings/js/JSDOMPromise.h:

(WebCore::TypeInspector::decltype):
(WebCore::TypeInspector::testIsVector):
(WebCore::TypeInspector::testIsRefOrRefPtr):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue):
(WebCore::DeferredWrapper::rejectWithValue):
(WebCore::callPromiseFunction):

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::unwrapKey):

  • css/FontFace.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::registerReady):

  • css/FontFaceSet.h:
  • html/HTMLMediaElement.h:
2:28 AM Changeset in webkit [200765] by matthew_hanson@apple.com
  • 10 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r199351. rdar://problem/26228860

2:12 AM Changeset in webkit [200764] by matthew_hanson@apple.com
  • 1 edit
    3 deletes in branches/safari-601.1.46-branch/LayoutTests

Merge r200378. rdar://problem/26064990

2:12 AM Changeset in webkit [200763] by matthew_hanson@apple.com
  • 3 edits
    9 adds in branches/safari-601.1.46-branch

Merge r200375. rdar://problem/26064990

2:12 AM Changeset in webkit [200762] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r200091. rdar://problem/26228870

2:12 AM Changeset in webkit [200761] by matthew_hanson@apple.com
  • 2 edits
    1 add in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r199277. rdar://problem/26228815

2:12 AM Changeset in webkit [200760] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r199243. rdar://problem/26228921

2:12 AM Changeset in webkit [200759] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-601.1.46-branch

Merge r199101. rdar://problem/26228884

2:12 AM Changeset in webkit [200758] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch

Merge r198780. rdar://problem/26228892

2:12 AM Changeset in webkit [200757] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r198701. rdar://problem/26228887

2:12 AM Changeset in webkit [200756] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Merge r198143. rdar://problem/26228904

2:12 AM Changeset in webkit [200755] by Manuel Rego Casasnovas
  • 12 edits in trunk

[css-grid] Incorrect parsing when using just 'span" as grid-line value
https://bugs.webkit.org/show_bug.cgi?id=157615

Reviewed by Sergio Villar Senin.

Source/WebCore:

The spec is pretty clear about this:
https://drafts.csswg.org/css-grid/#typedef-grid-row-start-grid-line

The possible options when using "span" to reference a grid line are:

[ span && [ <integer>
<custom-ident> ] ]

Thus, "span" keyword alone produces an invalid declaration.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridPosition):

LayoutTests:

Add new test case in grid-item-column-row-get-set.html.

Updated other tests that were using "span" alone, with 2 approaches:

  • In some of them changing "span" by "span 1" making it valid.
  • In other changing the expected result to "auto", as it's invalid now.
  • fast/css-grid-layout/grid-item-area-get-set.html:
  • fast/css-grid-layout/grid-item-bad-named-area-auto-placement.html:
  • fast/css-grid-layout/grid-item-column-row-get-set-expected.txt:
  • fast/css-grid-layout/grid-item-column-row-get-set.html:
  • fast/css-grid-layout/grid-item-end-after-get-set-expected.txt:
  • fast/css-grid-layout/grid-item-end-after-get-set.html:
  • fast/css-grid-layout/grid-item-negative-position-resolution.html:
  • fast/css-grid-layout/grid-item-start-before-get-set-expected.txt:
  • fast/css-grid-layout/grid-item-start-before-get-set.html:
2:12 AM Changeset in webkit [200754] by matthew_hanson@apple.com
  • 3 edits
    3 adds in branches/safari-601.1.46-branch

Merge r198050. rdar://problem/26228899

2:12 AM Changeset in webkit [200753] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r196524. rdar://problem/26228854

2:12 AM Changeset in webkit [200752] by matthew_hanson@apple.com
  • 3 edits
    4 adds in branches/safari-601.1.46-branch

Merge r195724. rdar://problem/26228915

2:12 AM Changeset in webkit [200751] by matthew_hanson@apple.com
  • 8 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r195004. rdar://problem/26228875

2:11 AM Changeset in webkit [200750] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1.46-branch

Merge r194399. rdar://problem/26228911

2:11 AM Changeset in webkit [200749] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r194290. rdar://problem/26228866

2:11 AM Changeset in webkit [200748] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1.46-branch

Merge r190820. rdar://problem/26228881

2:03 AM Changeset in webkit [200747] by Csaba Osztrogonác
  • 16 edits in trunk

Remove ENABLE(ES6_ARROWFUNCTION_SYNTAX) guards
https://bugs.webkit.org/show_bug.cgi?id=157564

Reviewed by Darin Adler.

.:

  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:
  • parser/Parser.cpp:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
12:28 AM Changeset in webkit [200746] by commit-queue@webkit.org
  • 5 edits in trunk

Web Inspector: CRASH getting internal properties of function with no bound arguments causes
https://bugs.webkit.org/show_bug.cgi?id=157613
<rdar://problem/26238754>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::getInternalProperties):
Gracefully handle a JSBoundFunction with no bound arguments.
In this case boundArgs is JSValue() which we don't want to
expose as the value of the internal property.

LayoutTests:

  • inspector/runtime/getProperties-expected.txt:
  • inspector/runtime/getProperties.html:

Include coverage for a bound function with no bound arguments.

12:23 AM Changeset in webkit [200745] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: 3.5% of time in toFixed in TimelineRecordBar updating element positions
https://bugs.webkit.org/show_bug.cgi?id=157608

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-12
Reviewed by Timothy Hatcher.

Avoid using toFixed to do an approximation comparison of two floating point numbers.
Instead keep in Numbers by just doing the approximation with Math.round(num * 100).
Since toFixed was doing stringification it was very expensive.

  • UserInterface/Views/TimelineRecordBar.js:

(WebInspector.TimelineRecordBar.prototype._updateElementPosition):
(WebInspector.TimelineRecordBar):

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame.prototype._updateElementPosition):
(WebInspector.TimelineRecordFrame):

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype._updatePositionOfElement):

May 11, 2016:

11:47 PM Changeset in webkit [200744] by rniwa@webkit.org
  • 4 edits
    1 delete in trunk/Source/WebCore

TextIteratorStopsOnFormControls is never used
https://bugs.webkit.org/show_bug.cgi?id=157609

Reviewed by Alex Christensen.

Removed SurroundingText.cpp and TextIteratorStopsOnFormControls from TextIterator as they're no longer used.

  • editing/SurroundingText.cpp: Removed.
  • editing/TextIterator.cpp:

(WebCore::TextIterator::advance):
(WebCore::TextIterator::exitNode):
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
(WebCore::SimplifiedBackwardsTextIterator::advance):
(WebCore::characterSubrange):
(WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator):

  • editing/TextIterator.h:

(WebCore::SimplifiedBackwardsTextIterator::atEnd):

  • editing/TextIteratorBehavior.h:
11:34 PM Changeset in webkit [200743] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Make sure StringRange is passed to Vector by register
https://bugs.webkit.org/show_bug.cgi?id=157603

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-11
Reviewed by Darin Adler.

This is bizarre, but on my SDK, Vector::append(StringRange)
is passing the values on the stack.
The two integers are written to the stack, the address given
to append(), then append() reads it back and store it.

This patch changes the code to use constructAndAppend(), ensuring
the values are used directly.

On my machine, this helps Sunspider and Octane.
This might be something wrong with my SDK but the fix is so easy
that we might as well do this.

  • runtime/StringPrototype.cpp:

(JSC::removeUsingRegExpSearch):
(JSC::replaceUsingRegExpSearch):

11:23 PM Changeset in webkit [200742] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

ARMv7Assembler: suppress a -Wnarrowing warning when compiling with GCC
https://bugs.webkit.org/show_bug.cgi?id=157576

Patch by Zan Dobersek <zdobersek@igalia.com> on 2016-05-11
Reviewed by Csaba Osztrogonác.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::revertJumpTo_movT3movtcmpT2): Explicitly cast the
OP_CMP_reg_T2 | left value to uint16_t, avoiding a narrowing conversion
warning that's being reported when compiling with GCC. The warning is sprung
due to RegisterID (which is the type of left) being an enum based on int,
even when the enum itself only declares 23 values.

9:35 PM Changeset in webkit [200741] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Kill Node::ancestorElement()
https://bugs.webkit.org/show_bug.cgi?id=157599

Reviewed by Darin Adler.

Kill Node::ancestorElement() and use Node::parentElement() instead. If
our parent is not an Element then none of our ancestors will be.

  • dom/Node.cpp:

(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupPrefix):
(WebCore::Node::lookupNamespaceURI):
(WebCore::Node::lookupNamespacePrefix):
(WebCore::Node::convertToPage):
(WebCore::Node::convertFromPage):
(WebCore::Node::ancestorElement): Deleted.

  • dom/Node.h:
9:32 PM Changeset in webkit [200740] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: 4% of time in TimelineOverviewGraph adding/removing classList styles on TimelineRecordBar
https://bugs.webkit.org/show_bug.cgi?id=157607

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Brian Burg.

This gets us down to about 0.5% of time.

  • UserInterface/Views/TimelineRecordBar.js:

(WebInspector.TimelineRecordBar.prototype.set records):
Only modify the classLists when the record changes.

(WebInspector.TimelineRecordBar.prototype.refresh):
Set unfinished once for either the uses active or not uses active cases.

8:17 PM Changeset in webkit [200739] by matthew_hanson@apple.com
  • 1 edit
    1 delete in branches/safari-601-branch/LayoutTests

Roll out r200376 via r200721.

7:56 PM Changeset in webkit [200738] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebCore

Merge r198701. rdar://problem/26228577

7:13 PM Changeset in webkit [200737] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: this in Scope Chain Sidebar does not have preview, looks poor
https://bugs.webkit.org/show_bug.cgi?id=157602

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Timothy Hatcher.

  • inspector/InjectedScriptSource.js:

(InjectedScript.CallFrameProxy):
Include a preview when creating the RemoteObject for this.

7:09 PM Changeset in webkit [200736] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Absolute positioned element is not placed properly when parent becomes the containing block.
https://bugs.webkit.org/show_bug.cgi?id=157455
<rdar://problem/26212568>

Reviewed by Simon Fraser.

When a container becomes a containing block, we need to check if there are any positioned boxes in its subtree
in order to "re-parent" them. It basically means that we remove them from RenderBlock::positionedDescendants map
and they'll get re-inserted during the next layout correctly.
This patch fixes the case when a container becomes the containing block by setting the transform property and its positioned
child gets misplaced.

Source/WebCore:

Test: fast/block/containing-block-changes.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::styleWillChange):

  • rendering/RenderBlock.h:

LayoutTests:

  • fast/block/containing-block-changes-expected.html: Added.
  • fast/block/containing-block-changes.html: Added.
6:32 PM Changeset in webkit [200735] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601-branch/Source

Merge r198143. rdar://problem/26228593

6:32 PM Changeset in webkit [200734] by matthew_hanson@apple.com
  • 2 edits
    1 add in branches/safari-601-branch/Source/JavaScriptCore

Merge r199277. rdar://problem/26228546

6:32 PM Changeset in webkit [200733] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r199243. rdar://problem/26228520

6:31 PM Changeset in webkit [200732] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-601-branch

Merge r199101. rdar://problem/26228570

6:31 PM Changeset in webkit [200731] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601-branch

Merge r198780. rdar://problem/26228583

6:31 PM Changeset in webkit [200730] by matthew_hanson@apple.com
  • 3 edits
    3 adds in branches/safari-601-branch

Merge r198050. rdar://problem/26228588

6:31 PM Changeset in webkit [200729] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r196524. rdar://problem/26228552

6:31 PM Changeset in webkit [200728] by matthew_hanson@apple.com
  • 3 edits
    4 adds in branches/safari-601-branch

Merge r195724. rdar://problem/26228611

6:31 PM Changeset in webkit [200727] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601-branch

Merge r194399. rdar://problem/26228601

6:31 PM Changeset in webkit [200726] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601-branch

Merge r190820. rdar://problem/26228566

6:31 PM Changeset in webkit [200725] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r200091. rdar://problem/26228555

6:31 PM Changeset in webkit [200724] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebCore

Merge r194290. rdar://problem/26053735

6:31 PM Changeset in webkit [200723] by matthew_hanson@apple.com
  • 1 edit
    3 deletes in branches/safari-601-branch/LayoutTests

Merge r200378. rdar://problem/26066673

6:31 PM Changeset in webkit [200722] by matthew_hanson@apple.com
  • 3 edits
    9 adds in branches/safari-601-branch

Merge r200375. rdar://problem/26066673

6:31 PM Changeset in webkit [200721] by matthew_hanson@apple.com
  • 1 edit
    1 add in branches/safari-601-branch/LayoutTests

Merge r200376. rdar://problem/25991928

6:04 PM Changeset in webkit [200720] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Unexpected unread notification icon next to Log after clearing via clear()
https://bugs.webkit.org/show_bug.cgi?id=157598

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Timothy Hatcher.

We always show ConsoleCommand and ConsoleCommandResult messages no matter
what the filter is. So it doesn't make sense to mark the "log" filter
as having an unread notification for a ConsoleCommandResult when we can
see the result.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype._markScopeBarItemUnread):

5:49 PM Changeset in webkit [200719] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Console unread indicators should be cleared however the console clears
https://bugs.webkit.org/show_bug.cgi?id=157594

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._clearLog):
Move code that clears unread indicators from clearLog to logCleared
to handle all possible clear cases.

5:47 PM Changeset in webkit [200718] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Contents of Duration column are covered by always on (legacy) scroll bars
https://bugs.webkit.org/show_bug.cgi?id=157590

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DataGrid.css:

(.data-grid .data-container):
Always show vertical scrollbars.

(.data-grid > .header-wrapper):
(.data-grid > .header-wrapper::-webkit-scrollbar):
Show invisible scrollbar for DataGrid's header to align the header table with the content.

(.data-grid.no-header > .header-wrapper > table.header):
(.data-grid.no-header > table.header): Deleted.
(.data-grid th): Deleted.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
overflow-y: scroll doesn't work on a table element. Wrap table in a div.

5:31 PM Changeset in webkit [200717] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Unreviewed, rolling out r200700, r200703, and r200713.
https://bugs.webkit.org/show_bug.cgi?id=157601

Broke iOS builds (Requested by rniwa on #webkit).

Reverted changesets:

"Touch.prototype is undefined on iOS"
https://bugs.webkit.org/show_bug.cgi?id=157560
http://trac.webkit.org/changeset/200700

"iOS build fix attempt after r200700."
http://trac.webkit.org/changeset/200703

"iOS clean build fix after r200700."
http://trac.webkit.org/changeset/200713

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-11

5:01 PM Changeset in webkit [200716] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make it possible to do special styling on selected TimelineOverviewGraphs
https://bugs.webkit.org/show_bug.cgi?id=157593
<rdar://problem/26232886>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype._timelinesTreeSelectionDidChange.updateGraphSelectedState):
(WebInspector.TimelineOverview.prototype._timelinesTreeSelectionDidChange):
Select the new overview graph and deselect the old one.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get selected):
(WebInspector.TimelineOverviewGraph.prototype.set selected):
New property, toggles "selected" class on the graph element.

4:36 PM Changeset in webkit [200715] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Add a failing expectation on iOS for the test added in r200712
since there is no support for eventSender on iOS.

  • platform/ios-simulator/TestExpectations:
4:25 PM Changeset in webkit [200714] by keith_miller@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/ChangeLog

Unreviewed, correct the title of the ChangeLog for r200667.

4:03 PM Changeset in webkit [200713] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

iOS clean build fix after r200700.

  • bindings/js/JSDOMWindowCustom.cpp:
3:42 PM Changeset in webkit [200712] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

Moving focus by tab could erroneously focus a non-focusable shadow host
https://bugs.webkit.org/show_bug.cgi?id=157585

Reviewed by Antti Koivisto.

Source/WebCore:

The bug was caused by findFocusableElementDescendingDownIntoFrameDocument erroneously returning a shadow host
that contains a focusable element instead of traversing it through to find a focusable element within. Fixed
the bug calling findFocusableElementWithinScope which traverses shadow trees to find a focusable element unlike
findFocusableElementOrScopeOwner which returns a focusable element or a shadow host.

Also done some refactoring for clarity.

Test: fast/shadow-dom/focus-on-iframe.html

  • page/FocusController.cpp:

(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument): See above.

(WebCore::FocusController::findFocusableElementAcrossFocusScope): Declare outerScope as late as possible.
(WebCore::nextElementWithGreaterTabIndex): Merged if conditions for clarity.
(WebCore::previousElementWithLowerTabIndex): Removed the check for isNonFocusableShadowHost since
isFocusableOrHasShadowTreeWithoutCustomFocusLogic returns true whenever isNonFocusableShadowHost returns true.

LayoutTests:

Added a regression test for moving focus across iframes.

Also expanded negative-tabindex-on-shadow-host.html to cover reverse traversal.

  • fast/shadow-dom/focus-on-iframe-expected.txt: Added.
  • fast/shadow-dom/focus-on-iframe.html: Added.
  • fast/shadow-dom/negative-tabindex-on-shadow-host-expected.txt:
  • fast/shadow-dom/negative-tabindex-on-shadow-host.html:
3:20 PM Changeset in webkit [200711] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Updating bindings tests results after r200699

Unreviewed test gardening.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):

3:11 PM Changeset in webkit [200710] by Joseph Pecoraro
  • 2 edits in trunk/Source/JavaScriptCore

JSC test stress/reflect-set.js failing after 200694
https://bugs.webkit.org/show_bug.cgi?id=157586

Unreviewed test rebaseline.

  • tests/stress/reflect-set.js:

Update the expected error message. We are in strict mode, so the
improved error message makes sense.

2:55 PM Changeset in webkit [200709] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: "Selected Element" is hard to read when searching for "Element"
https://bugs.webkit.org/show_bug.cgi?id=157542
<rdar://problem/26207464>

Reviewed by Timothy Hatcher.

Change the style of highlighted text to match Xcode.

  • UserInterface/Views/LogContentView.css:

(.search-in-progress .console-item:not(.filtered-out-by-search).special-user-log .console-message-text .highlighted):

  • UserInterface/Views/OpenResourceDialog.css:

(.open-resource-dialog > .tree-outline .item.selected .highlighted):

  • UserInterface/Views/Variables.css:

(:root):

2:53 PM Changeset in webkit [200708] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Hide filter bar in TimelineViews where it is not needed or not yet working
https://bugs.webkit.org/show_bug.cgi?id=157583

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Timothy Hatcher.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView.prototype.get showsFilterBar):
(WebInspector.HeapAllocationsTimelineView.prototype.layout):
(WebInspector.HeapAllocationsTimelineView.prototype.updateFilter):
Filter bar not yet hooked up for HeapSnapshot views.
Make filtering work for the main timeline grid.
It doesn't use the normal TimelineView filter based on selected range.
This is intentional because it may be the case that a snapshot happens
outside the selected time range (via the navigation bar button) and
we want to show it. Otherwise a user might be confused why it is not
showing up in the list.

  • UserInterface/Views/MemoryTimelineView.js:

(WebInspector.MemoryTimelineView.prototype.get showsFilterBar):
Filter bar not needed in the Memory timeline view.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.get showsFilterBar):
Filter bar works for the Events timeline view.

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView.prototype.get showsFilterBar):
Filter bar not yet hooked up for Profile views.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateFilterBar):
Update the filter bar when the selection path components change, since
that triggers when arbitrarily deep sub-content-views change.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.get showsFilterBar):
Default is yes.

2:51 PM Changeset in webkit [200707] by andersca@apple.com
  • 1 edit in trunk/Source/WebKit2/ChangeLog

Fix the ChangeLog.

2:49 PM Changeset in webkit [200706] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

We have two different types of contextual menus in iBooks
https://bugs.webkit.org/show_bug.cgi?id=157587
rdar://problem/25904169

Reviewed by Darin Adler.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::showContextMenu):

2:41 PM Changeset in webkit [200705] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Beef up JSC profiler event log
https://bugs.webkit.org/show_bug.cgi?id=157584

Reviewed by Saam Barati.

Also log more about compilation.

  • bytecode/ExecutionCounter.cpp: Changed the meaning of codeBlock to be the codeBlock that is doing the profiling. This will now get the baseline version if it needs it. This is needed for logging the threshold checking event.

(JSC::applyMemoryUsageHeuristics):
(JSC::ExecutionCounter<countingVariant>::hasCrossedThreshold):

  • dfg/DFGJITCode.cpp: Pass the right codeBlock.

(JSC::DFG::JITCode::checkIfOptimizationThresholdReached):
(JSC::DFG::JITCode::optimizeNextInvocation):
(JSC::DFG::JITCode::dontOptimizeAnytimeSoon):
(JSC::DFG::JITCode::optimizeSoon):
(JSC::DFG::JITCode::forceOptimizationSlowPathConcurrently):

  • dfg/DFGPlan.cpp: Log things about compile times and whether the compiler succeeded or failed.

(JSC::DFG::Plan::computeCompileTimes):
(JSC::DFG::Plan::reportCompileTimes):
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):

  • jit/ExecutableAllocatorFixedVMPool.cpp: Make it possible to look at memory usage, though separately from the log, for now.

(JSC::ExecutableAllocator::allocate):

  • runtime/Options.h:
2:15 PM Changeset in webkit [200704] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix the Windows build after r200699.

  • bindings/js/JSIDBObjectStoreCustom.cpp:
2:07 PM Changeset in webkit [200703] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

iOS build fix attempt after r200700.

  • bindings/js/ios/TouchConstructors.cpp:
1:57 PM Changeset in webkit [200702] by BJ Burg
  • 9 edits in trunk/Source/WebKit2

Web Automation: add command to asynchronously load the Web Inspector frontend in the background
https://bugs.webkit.org/show_bug.cgi?id=157509

Reviewed by Timothy Hatcher and Joseph Pecoraro.

In order to make it easier to debug code that executes as a result of an automation
command, this patch adds a new Automation command to asynchronously load the debugger
and Inspector frontend. It is designed for use by automation clients to implement an
auto-inspection feature to aid in debugging automation scripts.

  • UIProcess/Automation/Automation.json: Add new command.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::inspectBrowsingContext): Added.
(WebKit::WebAutomationSession::inspectorFrontendLoaded): Added.
This message is forwarded by WebInspectorProxy to the inspected page's session.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
Force the active automation window to become key and bring to front prior to
sending each NSEvent. This way, if the Inspector pauses while a command executes,
the automation window will get back focus when the Inspector unpauses just before
the next synthesized mouse or keyboard NSEvent is sent to its NSWindow.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::frontendLoaded):
Forward to the inspected page's session.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.messages.in: Add notification of the frontend's load.
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::frontendLoaded):
Kick off notifying the automation session in UIProcess that the inspector loaded.

(WebKit::WebInspectorUI::closeWindow):
In some circumstances, the Web Inspector can be loaded without showing
the window. If this hidden page closes, make sure the frontend host gets
a chance to disconnect its InspectorFrontendClient. Normally this happens
when the window closes, but unshown Inspectors do not get window instances.

1:54 PM Changeset in webkit [200701] by sbarati@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Air may decide to put the result register of an arithmetic snippet in the tag register
https://bugs.webkit.org/show_bug.cgi?id=157548

Reviewed by Filip Pizlo.

This patch adds a new ValueRep to B3 called LateRegister. The semantics
are similar to Register in that it can be used to pin an argument to
a particular register. It differs from ValueRep::Register in that the semantics of
LateRegister are that it is used after the result of the node its an argument to
is computed. This means that a LateRegister argument will interfere with the result
of a node. LateRegister is not a valid result ValueRep.

This was needed because there was a bug where B3/Air would assign the
result of a patchpoint to the TagTypeNumber register. This broke our
code when we would box a double into a JSValue in a snippet when the
result is the same as the TagTypeNumber register. To fix the issue,
we pass TagMaskRegister and TagTypeNumberRegister as ValueRep::LateRegister
arguments to various patchpoints.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::fillStackmap):

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::admitsStack):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):
(JSC::B3::StackmapSpecial::isArgValidForRep):

  • b3/B3Validate.cpp:
  • b3/B3ValueRep.cpp:

(JSC::B3::ValueRep::addUsedRegistersTo):
(JSC::B3::ValueRep::dump):
(JSC::B3::ValueRep::emitRestore):
(JSC::B3::ValueRep::recoveryForJSValue):
(WTF::printInternal):

  • b3/B3ValueRep.h:

(JSC::B3::ValueRep::reg):
(JSC::B3::ValueRep::lateReg):
(JSC::B3::ValueRep::stack):
(JSC::B3::ValueRep::operator==):
(JSC::B3::ValueRep::isSomeRegister):
(JSC::B3::ValueRep::isReg):

  • b3/testb3.cpp:

(JSC::B3::testSpillUseLargerThanDef):
(JSC::B3::testLateRegister):
(JSC::B3::zero):
(JSC::B3::run):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):

1:09 PM Changeset in webkit [200700] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Touch.prototype is undefined on iOS
https://bugs.webkit.org/show_bug.cgi?id=157560
<rdar://problem/26143008>

Reviewed by Chris Dumez.

Remove Touch and TouchList attributes from DOMWindow.
These attributes should be exposed via generated binding code (JSDOMWindow.cpp).

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::touch): Deleted.
(WebCore::JSDOMWindow::touchList): Deleted.

  • page/DOMWindow.idl:
1:04 PM Changeset in webkit [200699] by Darin Adler
  • 24 edits in trunk

Change IDBObjectStore.createIndex to take an IDL dictionary
https://bugs.webkit.org/show_bug.cgi?id=157520

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::createObjectStore): Use IDBKeyPath::Type instead of
IndexedDB::KeyPathType.

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::IDBKeyPath::IDBKeyPath): Ditto.
(WebCore::IDBKeyPath::isValid): Ditto.
(WebCore::IDBKeyPath::operator==): Ditto.
(WebCore::IDBKeyPath::encode): Ditto.
(WebCore::IDBKeyPath::decode): Ditto.

  • Modules/indexeddb/IDBKeyPath.h: Use pragma once. Make constructors non-explicit so

we can just pass a string or vector and have it turn into an IDBKeyPath. Added an enum
class named Type here and use it instead of IndexedDB::KeyPathType.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::openCursor): Remove unneeded local variable.
(WebCore::IDBObjectStore::get): Ditto.
(WebCore::IDBObjectStore::doDelete): Ditto.
(WebCore::IDBObjectStore::createIndex): Changed argument type to take IndexParameters
instead of two seaparate booleans. Also updated to use IDBKeyPath::Type.

  • Modules/indexeddb/IDBObjectStore.h: Removed include of IndexedDB, using a forward

decalration instead. Marked the class final. Added an IndexParameters struct and used
it for the argument to createIndex.

  • Modules/indexeddb/IDBObjectStore.idl: Stopped using Custom for put, add, and

createIndex functions. Stopped using Dictionary for createIndex, using IDBIndexParameters
instead as in the specification. Added IDBIndexParameters dictionary definition.

  • Modules/indexeddb/IndexedDB.h: Use pragma once. Removed KeyPathType.
  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::injectIDBKeyIntoScriptValue): Use IDBKeyPath::Type instead of
IndexedDB::KeyPathType.
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath): Ditto.
(WebCore::canInjectIDBKeyIntoScriptValue): Ditto.
(WebCore::createKeyPathArray): Ditto.
(WebCore::toJS): Ditto.

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::putOrAdd): Deleted.
(WebCore::JSIDBObjectStore::putFunction): Deleted.
(WebCore::JSIDBObjectStore::add): Deleted.
(WebCore::JSIDBObjectStore::createIndex): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheckExpression): Fixed code that generates a type check for
wrappers to only check types is knows how to check: wrappers and arrays, including
typed arrays. This prevents it from trying to check dictionaries.

  • inspector/InspectorIndexedDBAgent.cpp: Use IDBKeyPath::Type instead of

IndexedDB::KeyPathType.

LayoutTests:

  • storage/indexeddb/deleteIndex-bug110792-expected.txt: Updated result.

Test is still marked as flaky, but this is the proper expectation now.
Discovered this when I accidentally reset results for the whole directory.

  • storage/indexeddb/deleteIndex-bug110792-private-expected.txt: Ditto.
  • storage/indexeddb/index-basics-expected.txt: Updated to expect the simpler

type error that is generated by the bindings code as opposed to the hand written
binding. If we want to make this fancier like this for all bindings we can do
that the future in the bindings script.

  • storage/indexeddb/index-basics-private-expected.txt: Ditto.
  • storage/indexeddb/index-basics-workers-expected.txt: Ditto.
  • storage/indexeddb/keypath-basics-expected.txt: Updated for the change that

expects null and undefined the be legal key paths. See below.

  • storage/indexeddb/keypath-basics-private-expected.txt: Ditto.
  • storage/indexeddb/modern/create-index-failures-expected.txt: Removed

expected results that require that we forbid null for the name and key path.
See below.

  • storage/indexeddb/modern/create-index-failures-private-expected.txt: Ditto.
  • storage/indexeddb/modern/resources/create-index-failures.js: Removed the test

that expects failure when null is passed for the name and key path. In both
cases, the Web IDL and IDB specifications call for the null value to be converted
to the string "null", not an exception.

  • storage/indexeddb/resources/keypath-basics.js:

(prepareDatabase): Added tests for both undefined and null. Both are legal values for
the key path argument to createIndex. The Web IDL and IDB specifications call for
them to be converted to the strings "undefined" and "null", not to trigger exceptions.
(testInvalidKeyPaths): Removed tests that expect exceptions when calling createIndex
with undefined and null.

12:59 PM Changeset in webkit [200698] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline inspector/dom/getAccessibilityPropertiesForNode.html after r200677

Unreviewed test gardening.

  • inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
12:58 PM Changeset in webkit [200697] by beidson@apple.com
  • 5 edits in trunk

Modern IDB: WebWorker support.
https://bugs.webkit.org/show_bug.cgi?id=149953

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • IndexedDB-private-browsing/idb_webworkers-expected.txt:
  • web-platform-tests/IndexedDB/idb_webworkers-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

12:02 PM Changeset in webkit [200696] by Chris Dumez
  • 85 edits in trunk

Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=157556

Reviewed by Darin Adler.

Source/WebCore:

Update Node::appendChild() / replaceChild() / removeChild() / insertBefore()
to take references instead of pointers. Do the parameter null checks in the
bindings instead of doing it in the implementation on Node.

Also update the ContainerNode::appendChild() / replaceChild() /
insertBefore() to take C++ references instead of Ref<>&& to avoid
unnecessarily causing ref counting churns at some call sites (including
in the bindings since they are a raw pointer to the nodes). The
implementation on ContainerNode was not actually using WTFMove() on the
Ref<>&& anyway.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::installReplacement):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::removeChild):
(WebCore::JSNode::appendChild):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::cloneChildNodes):
(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):

  • dom/ContainerNode.h:
  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):

  • dom/Document.cpp:

(WebCore::Document::setBodyOrFrameset):

  • dom/Element.cpp:

(WebCore::Element::setOuterHTML):

  • dom/Node.cpp:

(WebCore::Node::insertBefore):
(WebCore::Node::replaceChild):
(WebCore::Node::removeChild):
(WebCore::Node::appendChild):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):
(WebCore::nodeSetPreTransformedFromNodeOrStringVector): Deleted.
(WebCore::Node::normalize): Deleted.

  • dom/Node.h:
  • dom/Node.idl:
  • dom/NodeOrString.cpp:

(WebCore::convertNodesOrStringsIntoNode):

  • dom/Range.cpp:

(WebCore::Range::processContents):
(WebCore::Range::processContentsBetweenOffsets):
(WebCore::Range::processNodes):
(WebCore::Range::processAncestorsAndTheirSiblings):
(WebCore::Range::insertNode):
(WebCore::Range::surroundContents):

  • dom/Range.h:
  • dom/Text.cpp:

(WebCore::Text::splitText):

  • editing/AppendNodeCommand.cpp:

(WebCore::AppendNodeCommand::doApply):

  • editing/Editor.cpp:

(WebCore::Editor::setTextAsChildOfElement):

  • editing/EditorCommand.cpp:

(WebCore::executeInsertNode):

  • editing/MergeIdenticalElementsCommand.cpp:

(WebCore::MergeIdenticalElementsCommand::doApply):
(WebCore::MergeIdenticalElementsCommand::doUnapply):

  • editing/RemoveNodeCommand.cpp:

(WebCore::RemoveNodeCommand::doUnapply):

  • editing/ReplaceNodeWithSpanCommand.cpp:

(WebCore::swapInNodePreservingAttributesAndChildren):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::insertFragmentForTestRendering):

  • editing/SplitElementCommand.cpp:

(WebCore::SplitElementCommand::executeApply):
(WebCore::SplitElementCommand::doUnapply):

  • editing/WrapContentsInDummySpanCommand.cpp:

(WebCore::WrapContentsInDummySpanCommand::executeApply):
(WebCore::WrapContentsInDummySpanCommand::doUnapply):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::styleForSelectionStart):

  • editing/htmlediting.cpp:

(WebCore::createTabSpanElement):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::WebContentReader::readURL):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::WebContentReader::readFilenames):
(WebCore::Editor::WebContentReader::readURL):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):

  • editing/markup.cpp:

(WebCore::fillContainerFromString):
(WebCore::createFragmentFromText):
(WebCore::replaceChildrenWithFragment):
(WebCore::replaceChildrenWithText):

  • html/BaseChooserOnlyDateAndTimeInputType.cpp:

(WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtree):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setOuterText):
(WebCore::HTMLElement::insertAdjacent):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::tryCreateImageControls):

  • html/HTMLKeygenElement.cpp:

(WebCore::HTMLKeygenElement::HTMLKeygenElement):

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::createForJSConstructor):

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::createTBody):
(WebCore::HTMLTableElement::insertRow):

  • html/HTMLTableRowElement.cpp:

(WebCore::HTMLTableRowElement::insertCell):

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::createDocumentStructure):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):

  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtree):

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::createShadowSubtree):

  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::buildBubbleTree):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):

  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::createTextTrackDisplay):

  • html/shadow/MediaControlsApple.cpp:

(WebCore::MediaControlsApple::tryCreateControls):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::tryCreate):

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::updateDisplayTree):

  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTTreeBuilder::constructTreeFromToken):

  • inspector/DOMEditor.cpp:

(WebCore::DOMEditor::RemoveChildAction::RemoveChildAction):
(WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction):
(WebCore::DOMEditor::ReplaceChildNodeAction::ReplaceChildNodeAction):
(WebCore::DOMEditor::insertBefore):
(WebCore::DOMEditor::removeChild):
(WebCore::DOMEditor::replaceChild):

  • inspector/DOMEditor.h:
  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::patchNode):
(WebCore::DOMPatchSupport::innerPatchNode):
(WebCore::DOMPatchSupport::innerPatchChildren):
(WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed):
(WebCore::DOMPatchSupport::removeChildAndMoveToNew):

  • inspector/DOMPatchSupport.h:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::removeNode):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::moveTo):

  • page/DragController.cpp:

(WebCore::documentFragmentFromDragData):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::initWithSimpleHTMLDocument):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::cloneTarget):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree):

  • xml/XMLErrors.cpp:

(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLErrors::insertErrorMessageBlock):

  • xml/XMLTreeViewer.cpp:

(WebCore::XMLTreeViewer::transformDocumentToTreeView):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::processingInstruction):
(WebCore::XMLDocumentParser::cdataBlock):
(WebCore::XMLDocumentParser::comment):

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMNode::insertBefore):
(DOMNode::removeChild):

Source/WebKit2:

  • WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:

(-[WKDOMNode insertNode:before:]):
(-[WKDOMNode appendChild:]):
(-[WKDOMNode removeChild:]):

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:

(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):

LayoutTests:

Rebaseline several tests now that the Node API provides more useful
exception messages.

  • fast/dom/Document/replaceChild-null-oldChild-expected.txt:
  • fast/dom/Document/script-tests/replaceChild-null-oldChild.js:
  • fast/dom/incompatible-operations-expected.txt:
  • fast/dom/incompatible-operations.html:
  • fast/dom/processing-instruction-appendChild-exceptions-expected.txt:
  • fast/dom/processing-instruction-appendChild-exceptions.xhtml:
  • fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt:
  • js/dom/dot-node-base-exception-expected.txt:
  • js/dom/script-tests/dot-node-base-exception.js:
11:42 AM Changeset in webkit [200695] by beidson@apple.com
  • 31 edits in trunk

Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact.
https://bugs.webkit.org/show_bug.cgi?id=157448

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Previously skipped tests cover new behavior, and are now unskipped).

There's two main parts to this patch:

1 - When an IDBOpenDBRequest is stop()'ed due to page navigation or worker termination,

we now notify the IDBServer of that.

2 - Lot's of little tweaks to UniqueIDBDatabase to handle shutting down version change

transactions and/or connections related to the cancelled openDB request.

Fortunately the changes to UniqueIDBDatabase were all well covered by existing tests.

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::cancelForStop):
(WebCore::IDBOpenDBRequest::dispatchEvent):

  • Modules/indexeddb/IDBOpenDBRequest.h:
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::cancelForStop):

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::openDBRequestCancelled):
(WebCore::IDBClient::IDBConnectionProxy::didFinishHandlingVersionChangeTransaction):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBClient::IDBConnectionToServer::openDBRequestCancelled):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBServer::IDBServer::databaseConnectionClosed):
(WebCore::IDBServer::IDBServer::openDBRequestCancelled):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation):
(WebCore::IDBServer::UniqueIDBDatabase::openDBRequestCancelled):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::forgetErrorCallback):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didFinishHandlingVersionChange): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::InProcessIDBServer::openDBRequestCancelled):

  • Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit2:

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToClient::openDBRequestCancelled):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::openDBRequestCancelled):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

LayoutTests:

  • TestExpectations:
  • storage/indexeddb/pending-version-change-stuck-private-expected.txt:
  • storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt:
  • storage/indexeddb/pending-version-change-stuck-works-with-terminate-private-expected.txt:
11:33 AM Changeset in webkit [200694] by commit-queue@webkit.org
  • 11 edits in trunk

Improve error messages for accessing arguments.callee and similar getters in strict mode
https://bugs.webkit.org/show_bug.cgi?id=157545

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::getOwnPropertySlot):
(JSC::ClonedArguments::materializeSpecials):
Provide better error GetterSetter in strict mode.

  • runtime/JSFunction.cpp:

(JSC::getThrowTypeErrorGetterSetter):
(JSC::JSFunction::defineOwnProperty):
Provide better error GetterSetter in strict mode.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::throwTypeErrorGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorCalleeAndCallerGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInStrictModeGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInClassContextGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerGetterSetter): Deleted.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncThrowTypeErrorCalleeAndCaller):
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInStrictMode):
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInClassContext):
(JSC::globalFuncThrowTypeErrorArgumentsAndCaller): Deleted.

  • runtime/JSGlobalObjectFunctions.h:

Rename and expose new handles for new error getter setter native functions.

LayoutTests:

  • js/basic-strict-mode-expected.txt:
  • js/caller-property-expected.txt:
  • js/script-tests/caller-property.js:
11:13 AM Changeset in webkit [200693] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r200481.
https://bugs.webkit.org/show_bug.cgi?id=157573

it's bad news for asm.js (Requested by pizlo on #webkit).

Reverted changeset:

"Reduce maximum JIT pool size on X86_64."
http://trac.webkit.org/changeset/200481

11:06 AM Changeset in webkit [200692] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix a typo in r200330

Unreviewed.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
10:28 AM Changeset in webkit [200691] by Chris Dumez
  • 6 edits
    9 deletes in trunk

Unreviewed, rolling out r200686.

Caused a lot of layout test failures

Reverted changeset:

"Sites served over insecure connections should not be allowed
to use geolocation."
https://bugs.webkit.org/show_bug.cgi?id=157423
http://trac.webkit.org/changeset/200686

10:11 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:25 AM Changeset in webkit [200690] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Optimize DataDetection's searchForLinkRemovingExistingDDLinks()
https://bugs.webkit.org/show_bug.cgi?id=157561

Reviewed by Ryosuke Niwa.

Optimize DataDetection's searchForLinkRemovingExistingDDLinks():

  1. The first loop was using Node::childNodes() to iterate over the child elements. Because of the recursive call, we may end up prepending children as we iterate over them. This is an issue because the childCount was cached before the loop and vector it would blow away the cache inside the NodeList. Switch to using ElementTraversal which should be both safer and more efficient. I don't believe we can use our nice ElementChildIterator here unfortunately as we would hit assertions due the the DOM mutations while iterating.
  2. The second loop was using again Node::childNodes() and kept calling item(0) to get the first child and move it to make it the previous sibling of its old parent. Again, using childNodes() here is super inefficient because we keep modifying the children and childNodes() returns a live NodeList. The call to NodeList::length() would cache all the children in a Vector, only to blow that cache away after removing the first child. Switch to using ContainerNode::firstChild().
  3. Drop the parentElement parameter as we can just get it from the child.
  4. Use tighter typing so we don't end up calling the implementations of insertBefore() / removeChild() that are on Node, thus unnecessarily doing a is<ContainerNode>() check every time.
  5. Pass element by reference instead of pointer as it cannot be null.
  • editing/cocoa/DataDetection.mm:

(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):

9:24 AM Changeset in webkit [200689] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

preprocess-idls.pl not ignoring comments during processing
https://bugs.webkit.org/show_bug.cgi?id=157559

Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-05-11
Reviewed by Darin Adler.

Remove comments from IDL file before processing.

  • bindings/scripts/preprocess-idls.pl:

(getInterfaceExtendedAttributesFromIDL):

9:20 AM Changeset in webkit [200688] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Videos allowed to play through the Main Content restriction should not pause when scrolled off-screen.
https://bugs.webkit.org/show_bug.cgi?id=157555

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-main-content-allow-then-scroll.html

  • html/MediaElementSession.cpp:

(WebCore::isMainContent):

LayoutTests:

  • media/video-main-content-allow-then-scroll-expected.txt: Added.
  • media/video-main-content-allow-then-scroll.html: Added.
9:18 AM Changeset in webkit [200687] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[curl] curl_easy_setopt(CURLOPT_CONNECT_ONLY) should take a long parameter
https://bugs.webkit.org/show_bug.cgi?id=157562

Patch by Fujii Hironori <Fujii Hironori> on 2016-05-11
Reviewed by Darin Adler.

The third argument of a calling curl_easy_setopt is missing.

  • platform/network/curl/SocketStreamHandleCurl.cpp:

(WebCore::SocketStreamHandle::startThread): Give the third
argument of curl_easy_setopt.

8:52 AM Changeset in webkit [200686] by Brent Fulgham
  • 6 edits
    9 adds in trunk

Sites served over insecure connections should not be allowed to use geolocation.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-05-11
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/security/insecure-geolocation.html

http/tests/security/mixedcontent-geolocation-block-insecure-content.html
http/tests/security/mixedcontent-geolocation.html

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::logError):
(WebCore::Geolocation::startRequest):
Access to Geolocation will be blocked if site is not secure. An error will be logged when access to Geolocation is blocked.
(WebCore::Geolocation::shouldBlockGeolocationRequests)
Returns true if the access to the geolocation should be blocked.

  • Modules/geolocation/Geolocation.h:
  • dom/SecurityContext.h:

(WebCore::SecurityContext::foundMixedContent):
Returns true if insecure content was accessed over secure connection.
(WebCore::SecurityContext::setFoundMixedContent):
Sets m_foundMixedContent to true if insecure content is accessed over secure connection.
(WebCore::SecurityContext::geolocationAccessed):
Returns true if geolocation was accessed
(WebCore::SecurityContext::setGeolocationAccessed):
Sets m_geolocationAccessed to true if geolocation was accessed.

  • loader/MixedContentChecker.cpp:

(WebCore::MixedContentChecker::canDisplayInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.
(WebCore::MixedContentChecker::canRunInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.

LayoutTests:

  • http/tests/security/geolocation-over-insecure-content.html: Added.
  • http/tests/security/geolocation-over-mixed-content-block.html: Added.
  • http/tests/security/geolocation-over-mixed-content.html: Added.
  • http/tests/security/insecure-geolocation-expected.txt: Added.
  • http/tests/security/insecure-geolocation.html: Added.
  • http/tests/security/mixedcontent-geolocation-block-insecure-content-expected.txt: Added.
  • http/tests/security/mixedcontent-geolocation-block-insecure-content.html: Added.
  • http/tests/security/mixedcontent-geolocation-expected.txt: Added.
  • http/tests/security/mixedcontent-geolocation.html: Added.
2:11 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:05 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:20 AM Changeset in webkit [200685] by bshafiei@apple.com
  • 6 edits
    1 copy in branches/safari-602.1.32-branch

Merged r200659. rdar://problem/26125909

1:19 AM Changeset in webkit [200684] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merged r200649. rdar://problem/26207064

1:18 AM Changeset in webkit [200683] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merged r200644. rdar://problem/26204033

1:17 AM Changeset in webkit [200682] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merged r200643. rdar://problem/26178404

1:16 AM Changeset in webkit [200681] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merged r200608. rdar://problem/26177346

1:16 AM Changeset in webkit [200680] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merged r200600. rdar://problem/26176524

1:15 AM Changeset in webkit [200679] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merged r200594. rdar://problem/26178439

12:50 AM Changeset in webkit [200678] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk

Ensure DOM iterators remain done
https://bugs.webkit.org/show_bug.cgi?id=157453

Reviewed by Darin Adler.

Source/WebCore:

Covered by updated test.

Making DOMWrapped::Iterator an Optional.
Setting it to Nullopt on the first time Iterator is returning null.

For set iterators, incrementing a counter which value is used in forEach callbacks and entries iterators.

  • bindings/js/JSDOMIterator.h:

(WebCore::JSDOMIterator<JSWrapper>::asJS):
(WebCore::appendForEachArguments):
(WebCore::iteratorForEach):
(WebCore::JSDOMIterator<JSWrapper>::next):

LayoutTests:

  • fast/dom/nodeListIterator-expected.txt:
  • fast/text/font-face-set-javascript-expected.txt:
12:14 AM Changeset in webkit [200677] by jdiggs@igalia.com
  • 20 edits
    1 copy
    2 moves in trunk

[GTK] accessibility/aria-readonly.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98357

Reviewed by Chris Fleizach.

Source/WebCore:

Add support for ATK_STATE_READ_ONLY and expose the value of aria-readonly
as an AtkObject attribute. In order to eliminate duplicate checks, remove
isReadOnly() and just use canSetAttributeValue(), moving all the logic into
AccessibilityNodeObject. Add AccessibilityObject::supportsARIAReadOnly() so
that we can explicitly expose the implicit value for aria-readonly on roles
which support this property. Also add support for ATK_STATE_CHECKABLE, both
because this state was missing and because it serves a similar function to
ATK_STATE_EDITABLE for the purpose of verifying exposure of toggle-able
elements that are not read-only.

Test: accessibility/form-control-value-settable.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canSetValueAttribute):
(WebCore::AccessibilityNodeObject::isRequired): Deleted.
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute): Deleted.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsARIAReadOnly):
(WebCore::AccessibilityObject::ariaReadOnlyValue):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isUnvisited): Deleted.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::clickPoint):
(WebCore::AccessibilityRenderObject::isOffScreen): Deleted.
(WebCore::AccessibilityRenderObject::anchorElement): Deleted.
(WebCore::AccessibilityRenderObject::internalLinkElement): Deleted.
(WebCore::AccessibilityRenderObject::textChanged): Deleted.
(WebCore::AccessibilityRenderObject::clearChildren): Deleted.
(WebCore::AccessibilityRenderObject::addImageMapChildren): Deleted.

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetAttributes):
(setAtkStateSetFromCoreObject):
(getInterfaceMaskFromObject):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

Source/WebKit/win:

Call AccessibilityNode::canSetValueAttribute() to determine if STATE_SYSTEM_READONLY
should be added and if editable text should be supported.

  • AccessibleBase.cpp:

(AccessibleBase::state):

  • AccessibleTextImpl.cpp:

(AccessibleText::deleteText):
(AccessibleText::insertText):
(AccessibleText::cutText):
(AccessibleText::pasteText):
(AccessibleText::replaceText):

Tools:

Add checks to isAttributeSettable() for ATK_STATE_READ_ONLY and the 'readonly'
AtkObject attribute along with ATK_STATE_CHECKABLE for toggle-able elements,
ATK_STATE_SELECTABLE for select elements, and ATK_STATE_FOCUSABLE combined
with range verification for inputs which implement AtkValue. The latter two
additions are admittedly a heuristic workaround for platform accessibility
API differences. But they should be sufficient to facilitate cross-platform
testing of isAttributeSettable() for form elements which lack ARIA attributes.

Bump the minimum version of at-spi2-core and at-spi2-atk
to 2.15.4 (earliest version that supports STATE_READ_ONLY).

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::isAttributeSettable):

  • gtk/jhbuild.modules:

LayoutTests:

As part of this change, a new AtkObject attribute and state are being exposed.
Update two tests accordingly. Also unskip the previously-failing test. Lastly,
move the Mac form-control-value-settable.html test to the shared test set,
with a minor tweak to check the platform for several elements' expectations.

  • accessibility/form-control-value-settable.html: Moved to shared tests.
  • accessibility/gtk/xml-roles-exposed-expected.txt: Updated.
  • platform/gtk/TestExpectations: Unskipped previously-failing test.
  • platform/gtk/accessibility/form-control-value-settable-expected.txt: Added.
  • platform/gtk/accessibility/table-detection-expected.txt: Updated.
  • platform/mac/accessibility/form-control-value-settable-expected.txt: Moved.

May 10, 2016:

11:03 PM Changeset in webkit [200676] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.32-branch/Source

Versioning.

10:40 PM Changeset in webkit [200675] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't update media duration at playback end while seeking.
https://bugs.webkit.org/show_bug.cgi?id=157557

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-05-10
Reviewed by Jer Noble.

If JavaScript initiates a media element seek just as the media playback ends, don't update duration
to the current time as the current time is now the new seek time, not the time when playback ended.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::didEnd):

10:10 PM Changeset in webkit [200674] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test gardening after r200646

Unreviewed.

10:03 PM Changeset in webkit [200673] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Fix typo CaptionUserPreferences::updateCaptionStyleSheetOveride
https://bugs.webkit.org/show_bug.cgi?id=157544

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Darin Adler.

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): Deleted.

  • page/CaptionUserPreferences.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::updateTimerFired):
(WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged):

9:52 PM Changeset in webkit [200672] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/mac

[OS X] Compatible with gnu sed grammar due to compile error with gnu sed
https://bugs.webkit.org/show_bug.cgi?id=157526

Patch by Shaw rich <richshaw@126.com> on 2016-05-10
Reviewed by Darin Adler.

  • MigrateHeaders.make:
9:48 PM Changeset in webkit [200671] by Simon Fraser
  • 16 edits in trunk/Source/WebCore

Remove scrolledContentOffset() from rendering code
https://bugs.webkit.org/show_bug.cgi?id=157552

Reviewed by Zalan Bujtas.

scrolledContentOffset() is misleading because it returns a scrollPosition().
Just use the name scrollPosition(), returning a ScrollPosition (IntPoint),
and fix callers that need to convert to layout size.

  • editing/VisibleUnits.cpp:

(WebCore::absoluteLineDirectionPointToLocalPointInBlock):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::selectionGapRectsForRepaint):
(WebCore::RenderBlock::paintSelection):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::offsetForContents):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::scrollPosition):
(WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
(WebCore::isCandidateForOpaquenessTest):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
(WebCore::RenderBox::scrolledContentOffset): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::offsetFromContainer):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::offsetFromContainer):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::mapLocalToContainer):
(WebCore::RenderObject::pushMappingToContainer):
(WebCore::RenderObject::mapAbsoluteToLocalPoint):
(WebCore::RenderObject::offsetFromContainer):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::hitInnerTextElement):

9:26 PM Changeset in webkit [200670] by Ryan Haddad
  • 2 edits in trunk/Tools

Another attempt to fix the build after r200668.

Unreviewed build fix.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm:

(TEST):

8:57 PM Changeset in webkit [200669] by mitz@apple.com
  • 2 edits in trunk/Tools

Tried to fix the Mac build after r200668.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

8:37 PM Changeset in webkit [200668] by weinig@apple.com
  • 4 edits in trunk/Source/WebKit2

Only expose WKDataDetectorTypes and -[WKWebViewConfiguration dataDetectorTypes] on iOS
for now, since we don't have it fully implemented on Mac.

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(fromWKDataDetectorTypes):
(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):

7:04 PM Changeset in webkit [200667] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

TypedArray.prototype.slice should use the byteLength of passed array for memmove
https://bugs.webkit.org/show_bug.cgi?id=157551
<rdar://problem/26179914>

Reviewed by Michael Saboff.

The TypedArray.prototype.slice function would use the byteLength of the passed array
to determine the amount of data to copy. It should have been using the passed length
times the size of each element. This fixes a crash on JavaPoly.com

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):

  • tests/stress/typedarray-slice.js:
6:56 PM Changeset in webkit [200666] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r200447): Unable to build C_LOOP with clang version 800.0.12 or higher
https://bugs.webkit.org/show_bug.cgi?id=157549

Reviewed by Keith Miller.

Disable debug annotations for C_LOOP builds. They are inline assembly directives,
unnecessary and they cause syntax errors.

  • offlineasm/asm.rb:
6:55 PM Changeset in webkit [200665] by Simon Fraser
  • 3 edits
    5 adds in trunk

Horizontally-scrollable items with a 3d transform are rendered incorrectly in RTL when container has -webkit-overflow-scroll: touch
https://bugs.webkit.org/show_bug.cgi?id=157482
rdar://problem/26204794

Reviewed by Zalan Bujtas.
Source/WebCore:

The compositing code was confused about scroll offsets vs. scroll positions, because
of the badly named scrolledContentOffset(); we used that in one place, and scrollOffset()
lower down. Change both to use scrollOffset().

Test: compositing/rtl/rtl-with-transformed-descendants.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

LayoutTests:

This can't be a ref test because on iOS ref test snapshots are doing by drawing, not by snapshotting layers.

  • compositing/rtl/rtl-with-transformed-descendants-expected.txt: Added.
  • compositing/rtl/rtl-with-transformed-descendants.html: Added.
6:55 PM Changeset in webkit [200664] by Simon Fraser
  • 2 edits in trunk/Source/WebKit/mac

[iOS WK1] text autosizing was on for all layout tests
https://bugs.webkit.org/show_bug.cgi?id=157541

Reviewed by Tim Horton.

Make sure that we transfer the WK1 text autosizing preference to Settings.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

6:49 PM Changeset in webkit [200663] by Hunseop Jeong
  • 2 edits
    5 adds in trunk/LayoutTests

Unreviewed EFL Gardening on 10th May.

Rebaseline missing results.

  • platform/efl/TestExpectations: Removed non existing tests.
  • platform/efl/accessibility/content-editable-as-textarea-expected.txt: Added.
  • platform/efl/accessibility/generated-content-with-display-table-crash-expected.txt: Added.
  • platform/efl/accessibility/w3c-svg-content-language-attribute-expected.txt: Added.
  • platform/efl/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
  • platform/efl/mathml/presentation/menclose-notation-values-expected.txt: Added.
6:11 PM Changeset in webkit [200662] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Add SPI for Data Detectors to get ranges of text around an existing range.
<rdar://problem/26009749>

Reviewed by Enrica Casucci.

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):

5:56 PM Changeset in webkit [200661] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Avoid unnecessary timeout identifier churn in TimelineManager
https://bugs.webkit.org/show_bug.cgi?id=157535

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
Don't re-tickle if we tickled in the last 10ms.

5:20 PM Changeset in webkit [200660] by enrica@apple.com
  • 9 edits in trunk/Source

Numerous block selection issues on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157490
rdar://problem/25717977
rdar://problem/23042215

Reviewed by Tim Horton.

Source/WebCore:

  • rendering/style/RenderStyle.h:

Exporting method.

Source/WebKit2:

This patch fixes a number of issues with block selection on iOS.
We no longer eagerly choose block selection vs text selection and we
make sure we are capable of switching back to text selection from block
under every circumstance. The patch also fixes the logic used to decide
when to switch to block selection. It now computes the rectangle for the
paragraph containing the initial text selection to decide when we are
actually dragging outside the boundaries of the paragraph block.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(selectionChangedWithGesture):
(selectionChangedWithTouch):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::gestureCallback):
(WebKit::WebPageProxy::touchesCallback):
(WebKit::WebPageProxy::autocorrectionDataCallback):
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::updateSelectionWithTouches):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::selectionBoxForRange):
(WebKit::canShrinkToTextSelection):
(WebKit::hasCustomLineHeight):
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::updateBlockSelectionWithTouch):
(WebKit::WebPage::clearSelection):
(WebKit::WebPage::switchToBlockSelectionAtPoint):
(WebKit::WebPage::shouldSwitchToBlockModeForHandle):
(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::selectWithTwoTouches):

5:16 PM Changeset in webkit [200659] by weinig@apple.com
  • 6 edits
    1 add in trunk

Tweak underline style for data detected links
https://bugs.webkit.org/show_bug.cgi?id=157546

Reviewed by Tim Horton.

Source/WebCore:

Added API Tests in Color.cpp.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):
Tweak the underline's opacity based on the text color. White-ish text gets
46% opacity, everything else gets 26% opacity.

  • platform/graphics/Color.cpp:

(WebCore::Color::getHSV):

  • platform/graphics/Color.h:

Add support for getting the HSV (also know as HSB) computation of the color
to help determine the "whiteness" of a color.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/Color.cpp: Added.

(TestWebKitAPI::TEST):
Add tests for the new Color::getHSV() function.

5:08 PM Changeset in webkit [200658] by fpizlo@apple.com
  • 27 edits
    4 adds in trunk

Internal JSC profiler should have a timestamped log of events for each code block
https://bugs.webkit.org/show_bug.cgi?id=157538

Reviewed by Benjamin Poulain.
Source/JavaScriptCore:


For example, in 3d-cube, I can query the events for MMulti and I get:

1462917476.17083 MMulti#DTZ7qc installCode
1462917476.179663 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.179664 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline osrEntry at bc#49
1462917476.185651 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1011.214233/1717.000000, -707
1462917476.187913 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG installCode
1462917476.187917 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG osrEntry at bc#49
1462917476.205365 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG jettison due to OSRExit, counting = true, detail = (null)
1462917476.205368 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#65: BadCache/FromDFG
1462917476.205369 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.205482 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1013.000000/3434.000000, -1000
1462917476.211547 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 2013.000000/3434.000000, -1000
1462917476.213721 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG installCode
1462917476.213726 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG osrEntry at bc#49
1462917476.223976 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG jettison due to OSRExit, counting = true, detail = (null)
1462917476.223981 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#77: BadCache/FromDFG
1462917476.223982 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#94: BadCache/FromDFG
1462917476.223982 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.224064 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1013.000000/6868.000000, -1000
1462917476.224151 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 2013.000000/6868.000000, -1000
1462917476.224258 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 3013.000000/6868.000000, -1000
1462917476.224337 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 4023.000000/6868.000000, -1000
1462917476.224425 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 5023.000000/6868.000000, -1000
1462917476.224785 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 6023.396484/6868.000000, -862
1462917476.227669 MMulti#DTZ7qc MMulti#DTZ7qc-4-DFG installCode
1462917476.227675 MMulti#DTZ7qc MMulti#DTZ7qc-4-DFG osrEntry at bc#0

The output is ugly but useful. We can make it less ugly later.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison):

  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::forEachCodeBlock):

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::ExitProfile::add):

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalizeCommon):

  • dfg/DFGOperations.cpp:
  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):

  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::entryOSR):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • profiler/ProfilerCompilation.cpp:

(JSC::Profiler::Compilation::Compilation):
(JSC::Profiler::Compilation::setJettisonReason):
(JSC::Profiler::Compilation::dump):
(JSC::Profiler::Compilation::toJS):

  • profiler/ProfilerCompilation.h:

(JSC::Profiler::Compilation::uid):

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::notifyDestruction):
(JSC::Profiler::Database::addCompilation):
(JSC::Profiler::Database::toJS):
(JSC::Profiler::Database::registerToSaveAtExit):
(JSC::Profiler::Database::logEvent):
(JSC::Profiler::Database::addDatabaseToAtExit):

  • profiler/ProfilerDatabase.h:
  • profiler/ProfilerEvent.cpp: Added.

(JSC::Profiler::Event::dump):
(JSC::Profiler::Event::toJS):

  • profiler/ProfilerEvent.h: Added.

(JSC::Profiler::Event::Event):
(JSC::Profiler::Event::operator bool):
(JSC::Profiler::Event::time):
(JSC::Profiler::Event::bytecodes):
(JSC::Profiler::Event::compilation):
(JSC::Profiler::Event::summary):
(JSC::Profiler::Event::detail):

  • profiler/ProfilerUID.cpp: Added.

(JSC::Profiler::UID::create):
(JSC::Profiler::UID::dump):
(JSC::Profiler::UID::toJS):

  • profiler/ProfilerUID.h: Added.

(JSC::Profiler::UID::UID):
(JSC::Profiler::UID::fromInt):
(JSC::Profiler::UID::toInt):
(JSC::Profiler::UID::operator==):
(JSC::Profiler::UID::operator!=):
(JSC::Profiler::UID::operator bool):
(JSC::Profiler::UID::isHashTableDeletedValue):
(JSC::Profiler::UID::hash):
(JSC::Profiler::UIDHash::hash):
(JSC::Profiler::UIDHash::equal):

  • runtime/CommonIdentifiers.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::installCode):

  • runtime/VM.h:

(JSC::VM::bytecodeIntrinsicRegistry):
(JSC::VM::shadowChicken):

  • runtime/VMInlines.h:

(JSC::VM::shouldTriggerTermination):
(JSC::VM::logEvent):

Source/WTF:

  • wtf/PrintStream.h:

(WTF::PrintStream::print):

Tools:

  • Scripts/display-profiler-output:
5:02 PM Changeset in webkit [200657] by bshafiei@apple.com
  • 1 copy in branches/safari-602.1.32-branch

New Branch.

4:51 PM Changeset in webkit [200656] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't select record bar in Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=156963
<rdar://problem/25898256>

Reviewed by Timothy Hatcher.

Sync record selection between the Rendering Frames grid and overview graph.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode.prototype.hasAncestor):
Add helper function needed by TimelineView.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._mouseClicked):
Don't deselect the selected record when clicked. Initially this seemed
like a good idea but it complicates the UI for no added value.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
Get path components from the current TimelineView instead of the
TimelineRecordingContentView, now that the selected record appears
in the bottom ContentBrowser's navigation bar.

4:49 PM Changeset in webkit [200655] by achristensen@apple.com
  • 7 edits in trunk/Source

Handle _schemeUpgraded delegate callbacks in NSURLSessionDataDelegate
https://bugs.webkit.org/show_bug.cgi?id=157354
rdar://problem/25842107

Reviewed by Darin Adler.

Source/WebCore:

No new tests. This cannot be tested with a self-signed certificate.
This needs to be tested once we use real ssl certificates for testing.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):

  • platform/network/mac/WebCoreURLResponse.h:
  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::synthesizeRedirectResponseIfNecessary):
Take the NSURLRequest instead of the NSURLConnection as a parameter so we can share this code with the NSURLSession loader,
which has an NSURLSessionDataTask. Both have the currentRequest, which is all we need in this function anyway.

Source/WebKit2:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
When we make a request to a http url and CFNetwork determines that that url would have redirected to an HSTS site
and it is going to change the request to an https request, this delegate callback is called. We need to call the
redirection code to have the same behavior as the NSURLConnection-based loader.

4:47 PM Changeset in webkit [200654] by ddkilzer@apple.com
  • 2 edits in trunk/Source/bmalloc

bmalloc should automatically disable itself when ThreadSanitizer is used
<https://webkit.org/b/157527>

Reviewed by Michael Catanzaro.

  • bmalloc/Environment.cpp:

(bmalloc::isASanEnabled): Rename to isSanitizerEnabled.
(bmalloc::isSanitizerEnabled): Rename from isASanEnabled. Add
support for detecting ThreadSanitizer.
(bmalloc::Environment::computeIsBmallocEnabled): Switch from
isASanEnabled to isSanitizerEnabled.

4:45 PM Changeset in webkit [200653] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.32

New tag.

4:38 PM Changeset in webkit [200652] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

iOS rebaseline after r200464.

  • fast/shadow-dom/touch-event-ios-expected.txt:
4:38 PM Changeset in webkit [200651] by commit-queue@webkit.org
  • 11 edits
    2 adds in trunk

Web Inspector: Backend should initiate timeline recordings on page navigations to ensure nothing is missed
https://bugs.webkit.org/show_bug.cgi?id=157504
<rdar://problem/26188642>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:

Add protocol commands to enable/disable auto capture and list the
instruments that should be enabled when auto capture starts.
Add protocol event for when the backend starts an auto capture.

Source/WebCore:

Test: inspector/timeline/setAutoCaptureInstruments-errors.html

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
Pass other agents into the TimelineAgent constructor.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
Inform the TimelineAgent whenever the main frame starts a new load.

  • inspector/InspectorTimelineAgent.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
Initialize new members.

(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
Cleanup auto capture state when tearing down.

(WebCore::InspectorTimelineAgent::setAutoCaptureEnabled):
(WebCore::InspectorTimelineAgent::setAutoCaptureInstruments):
Set and validate new auto capture state from the frontend.

(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
When page navigates start an auto capture if needed.

Source/WebInspectorUI:

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WebInspector.TimelineManager.prototype.set enabledTimelineTypes):
(WebInspector.TimelineManager.prototype._updateAutoCaptureInstruments):
For backends that support it, enable/disable auto capture and the instruments to use.

(WebInspector.TimelineManager.prototype.autoCaptureStarted):
New event, stop and start a new recording. Set a flag that we should
detect the auto capturing resource so we know when the stop the
auto capture.

(WebInspector.TimelineManager.prototype._loadNewRecording):
(WebInspector.TimelineManager.prototype._addRecord):
(WebInspector.TimelineManager.prototype._startAutoCapturing): Renamed.
(WebInspector.TimelineManager.prototype._attemptAutoCapturingForFrame):
(WebInspector.TimelineManager.prototype._legacyAttemptStartAutoCapturingForFrame):
(WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
(WebInspector.TimelineManager.prototype._resetAutoRecordingMaxTimeTimeout):
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
(WebInspector.TimelineManager.prototype._mainResourceDidChange):
(WebInspector.TimelineManager.prototype._mergeScriptProfileRecords):
Factor out the new path, old path, and shared code for auto capturing.
Renamed _startAutoCapturing to _attemptAutoCapturingForFrame which
better matches what it tries to do.

  • UserInterface/Protocol/TimelineObserver.js:

(WebInspector.TimelineObserver.prototype.autoCaptureStarted):
Inform TimelineManager.

LayoutTests:

  • inspector/timeline/setAutoCaptureInstruments-errors-expected.txt: Added.
  • inspector/timeline/setAutoCaptureInstruments-errors.html: Added.
4:21 PM Changeset in webkit [200650] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

4:18 PM Changeset in webkit [200649] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger sidebar should refresh when Debug UI enabled/disabled
https://bugs.webkit.org/show_bug.cgi?id=157540
<rdar://problem/26207064>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved.removeScript):
(WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved):
Remove element from both tree outlines, if it exists.

4:11 PM Changeset in webkit [200648] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

Make the different evaluateWithScopeExtension implementations more consistent
https://bugs.webkit.org/show_bug.cgi?id=157536

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Timothy Hatcher.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
Throw the exception consistent with JSJavaScriptCallFrame.

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
Better error message consistent with InjectedScriptHost.

  • runtime/Completion.h:
  • runtime/Completion.cpp:

(JSC::evaluateWithScopeExtension):
Give this an Exception out parameter like other evaluations
so the caller can decide what to do with it.

3:08 PM Changeset in webkit [200647] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

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

Marking fast/text/unicode-range-download.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=42154

Unreviewed test gardening.

2:35 PM Changeset in webkit [200645] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] FTL can produce GetByVal nodes without proper bounds checking
https://bugs.webkit.org/show_bug.cgi?id=157502
rdar://problem/26027027

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-10
Reviewed by Filip Pizlo.

It was possible for FTL to generates GetByVal on arbitrary offsets
without any bounds checking.

The bug is caused by the order of optimization phases:
-First, the Integer Range Optimization proves that a CheckInBounds

test can never fail.
This proof is based on control flow or preceeding instructions
inside a loop.

-The Loop Invariant Code Motion phase finds that the GetByVal does not

depend on anything in the loop and hoist it out of the loop.

-> As a result, the conditions that were necessary to eliminate

the CheckInBounds are no longer met before the GetByVal.

This patch just moves the Integer Range Optimization phase after
Loop Invariant Code Motion to make sure no code is moved after
its integer ranges bounds proofs have been used.

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • tests/stress/bounds-check-not-eliminated-by-licm.js: Added.

(testInLoopTests):

2:30 PM Changeset in webkit [200644] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: TimelineOverview assertion failed: Missing overview graph for timeline type undefined
https://bugs.webkit.org/show_bug.cgi?id=157533
<rdar://problem/26204033>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._recordWasFiltered):
The OverviewTimelineView's represented object is the entire recording,
and TimelineOverview.recordWasFiltered expects a timeline. Return early
since no graph in the overview needs updating.

2:26 PM Changeset in webkit [200643] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Call Trees and Memory view blank
https://bugs.webkit.org/show_bug.cgi?id=157486
<rdar://problem/26178404>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
Setting current time now handled by _updateTimelineViewTimes.
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
Update times for the current TimelineView when the recording ends.
This ensures that views that don't call TimelineView.setupDataGrid are
able to update state that depends on the ruler selection.

(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineViewTimes):
Renamed from _updateTimelineViewSelection. Sets start, end, and current times.

1:45 PM Changeset in webkit [200642] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(SHADOW_DOM) && !ENABLE(DETAILS_ELEMENT) build
https://bugs.webkit.org/show_bug.cgi?id=157514

Reviewed by Ryosuke Niwa.

  • dom/Element.cpp:

(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):

1:44 PM Changeset in webkit [200641] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebKit2

Fix the !ENABLE(VIDEO) build
https://bugs.webkit.org/show_bug.cgi?id=157518

Reviewed by Alex Christensen.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

1:42 PM Changeset in webkit [200640] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(WEB_TIMING) build
https://bugs.webkit.org/show_bug.cgi?id=157515

Reviewed by Alex Christensen.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::loadDone):

1:41 PM Changeset in webkit [200639] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

Fix the !ENABLE(INDEXED_DATABASE) build
https://bugs.webkit.org/show_bug.cgi?id=157517

Reviewed by Alex Christensen.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::WorkerThread):

1:32 PM Changeset in webkit [200638] by jer.noble@apple.com
  • 12 edits
    15 adds in trunk

Return a Promise from HTMLMediaElement.play()
https://bugs.webkit.org/show_bug.cgi?id=157400

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline web-platform-tests/html/dom/interfaces-expected.txt with new (failing) result.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Tests: media/media-play-promise-reject-error-notsupported.html

media/media-play-promise-reject-load-abort.html
media/media-play-promise-reject-pause-abort.html
media/media-play-promise-reject-play-notallowed.html
media/media-play-promise-reject-play-notsupported.html
media/media-play-promise-resolve-when-playing.html
media/media-play-promise-resolve.html

The HTML Living Standard Spec <https://html.spec.whatwg.org/multipage/embedded-content.html>
(5 May 2016) adds support for a Promise to be returned by the play() method, to be resolved
or rejected at defined points during loading and playback.

Add utility methods which encapsulate the definitions of the equivalent algorithms from the
HTML Spec. Add a new, overloaded play() method on HTMLMediaElement which takes a DeferredWrapper
reference.

After the change to use scheduleNotifyAboutPlaying() instead of enqueueing the "playing" event
directly, we must ensure that the notifyAboutPlaying() task does not get fired before the
"play" event preceeding it does. So re-implement GenericEventQueue (which previously used
a timer to dispatch events) to use a GenericTaskQueue instead. This ensures that all tasks and
events are interleaved in the order in which they were enqueued.

Additionally, the new pauseAfterDetachedTimerFired() event was firing out of microtask order, which
broke some W3C tests after the changes to GenericEventQueue. Move GenericEventQueue and
GenericTaskQueue to the same timing source (namely, a WebCore Timer) and interleave Events
and Tasks by having GenericEventQueue use GenericTaskQueue to issue its Events. Because
Document::postTask() cannot ensure ordering with Timer-based events, switch HTMLMediaElement
over to Timer-backed GenericTaskQueues.

Use a WeakPtr to track the destruction of TaskDispatcher<Timer> objects in pendingDispatchers().

  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::GenericEventQueue):
(WebCore::GenericEventQueue::enqueueEvent):
(WebCore::GenericEventQueue::close):
(WebCore::GenericEventQueue::cancelAllEvents):
(WebCore::GenericEventQueue::suspend):
(WebCore::GenericEventQueue::resume):
(WebCore::GenericEventQueue::sharedTimer): Deleted.
(WebCore::GenericEventQueue::sharedTimerFired): Deleted.
(WebCore::GenericEventQueue::pendingQueues): Deleted.

  • dom/GenericEventQueue.h:
  • platform/GenericTaskQueue.cpp: Added.

(WebCore::TaskDispatcher<Timer>::~TaskDispatcher):
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedTimer):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):

  • platform/GenericTaskQueue.h:

(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Deleted.
(WebCore::TaskDispatcher<Timer>::postTask): Deleted.
(WebCore::TaskDispatcher<Timer>::timerFired): Deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::rejectPendingPlayPromises):
(WebCore::HTMLMediaElement::resolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleNotifyAboutPlaying):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::noneSupported):
(WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::contextDestroyed):
(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::pauseAfterDetachedTask): Renamed from pauseAfterDetachedTimerFired.
(WebCore::HTMLMediaElement::removedFrom):
(WebCore::HTMLMediaElement::contextDestroyed):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

  • media/media-play-promise-reject-error-notsupported-expected.txt: Added.
  • media/media-play-promise-reject-error-notsupported.html: Added.
  • media/media-play-promise-reject-load-abort-expected.txt: Added.
  • media/media-play-promise-reject-load-abort.html: Added.
  • media/media-play-promise-reject-pause-abort-expected.txt: Added.
  • media/media-play-promise-reject-pause-abort.html: Added.
  • media/media-play-promise-reject-play-notallowed-expected.txt: Added.
  • media/media-play-promise-reject-play-notallowed.html: Added.
  • media/media-play-promise-reject-play-notsupported-expected.txt: Added.
  • media/media-play-promise-reject-play-notsupported.html: Added.
  • media/media-play-promise-resolve-expected.txt: Added.
  • media/media-play-promise-resolve-when-playing-expected.txt: Added.
  • media/media-play-promise-resolve-when-playing.html: Added.
  • media/media-play-promise-resolve.html: Added.
1:21 PM Changeset in webkit [200637] by Ryan Haddad
  • 12 edits
    15 deletes in trunk

Unreviewed, rolling out r200627.
https://bugs.webkit.org/show_bug.cgi?id=157531

This change has caused crashes in existing LayoutTests
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"Return a Promise from HTMLMediaElement.play()"
https://bugs.webkit.org/show_bug.cgi?id=157400
http://trac.webkit.org/changeset/200627

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-10

12:31 PM Changeset in webkit [200636] by Simon Fraser
  • 15 edits
    2 moves in trunk

Fix scrolling tree dumping
https://bugs.webkit.org/show_bug.cgi?id=157529

Reviewed by Tim Horton.

Source/WebCore:

Scrolling tree dumps cannot contain layerIDs because they are not stable between
runs. Fix by adding ScrollingStateTreeAsTextBehavior flags, and not dumping
the layerID for tests.

Sadly RemoteScrollingCoordinatorTransaction has a lot of duplicated code for dumping
the scrolling state tree, which should be converted to dumpProperties() at some point.

Fix the one test that suffered from this problem, and unskip it.

Test: fast/scrolling/ios/remove-scrolling-role.html

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::dumpProperties):

  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::dump):
(WebCore::ScrollingStateNode::scrollingStateTreeAsText):

  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateOverflowScrollingNode.cpp:

(WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateOverflowScrollingNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateScrollingNode.h:
  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::dumpProperties):

  • page/scrolling/ScrollingStateStickyNode.h:

LayoutTests:

  • fast/scrolling/ios/remove-scrolling-role-expected.txt: Renamed from LayoutTests/platform/ios-simulator-wk2/scrolling/remove-scrolling-role-expected.txt.
  • fast/scrolling/ios/remove-scrolling-role.html: Renamed from LayoutTests/platform/ios-simulator-wk2/scrolling/remove-scrolling-role.html.
  • platform/ios-simulator-wk2/TestExpectations:
12:31 PM Changeset in webkit [200635] by Simon Fraser
  • 3 edits in trunk/LayoutTests

Mark fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html as flakey.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
12:16 PM Changeset in webkit [200634] by Joseph Pecoraro
  • 11 edits
    2 adds in trunk

Web Inspector: Eliminate the crazy code for evaluateOnCallFrame
https://bugs.webkit.org/show_bug.cgi?id=157510
<rdar://problem/26191332>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
Set and clear an optional scope extension object.

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype.evaluate):
(InjectedScript.prototype._evaluateOn):
(InjectedScript.prototype.evaluateOnCallFrame):
Unify the code to use the passed in evaluate function and object.
When evaluating on a call frame the evaluate function ends up being
DebuggerCallFrame::evaluateWithScopeExtension. When evaluating globally
this ends up being JSInjectedScriptHost::evaluateWithScopeExtension.
In both cases "object" is the preferred this object to use.

  • debugger/DebuggerCallFrame.h:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
(Inspector::JSJavaScriptCallFrame::evaluate): Deleted.

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::evaluateWithScopeExtension):
(Inspector::JavaScriptCallFrame::evaluate): Deleted.
Pass through to DebuggerCallFrame with the proper arguments.

  • debugger/Debugger.cpp:

(JSC::Debugger::hasBreakpoint):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):
Use the new evaluate on call frame method name and no scope extension object.

LayoutTests:

  • inspector/debugger/evaluateOnCallFrame-CommandLineAPI-expected.txt: Added.
  • inspector/debugger/evaluateOnCallFrame-CommandLineAPI.html: Added.
12:08 PM Changeset in webkit [200633] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(CSS_REGIONS) build after r198990
https://bugs.webkit.org/show_bug.cgi?id=157516

Reviewed by Ryosuke Niwa.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::affectsRenderedSubtree):

11:56 AM Changeset in webkit [200632] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make super-property-access.js test run for less time because it was timing out in debug builds.

Rubber stamped by Filip Pizlo.

  • tests/stress/super-property-access.js:

(test):
(test.value):
(test.foo):
(test.B.prototype.bar):
(test.B):

11:34 AM Changeset in webkit [200631] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Fix more deprecation warnings.

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:

(PluginServiceInitializer):

  • WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:

(WebContentServiceInitializer):

10:45 AM Changeset in webkit [200630] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[SpeculativeValidation] Do not start a preload if there is already one pending
https://bugs.webkit.org/show_bug.cgi?id=157522
<rdar://problem/26156083>

Reviewed by Alex Christensen.

Do not start a preload if there is already one pending. We failed to check in
SpeculativeLoadManager::preloadEntry() if there was already a pending preload.
As a result, we would sometimes cancel an already pending preload and start
one from scratch which is inefficient. It would also sometimes lead to hitting
an assertion in the SpeculativeLoad destructor because we could destroy the
SpeculativeLoad without finishing or cancelling the load.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):

10:42 AM Changeset in webkit [200629] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Cleanup super getter/setter now that underlying issue is fixed
https://bugs.webkit.org/show_bug.cgi?id=157488
<rdar://problem/26179120>

Patch by Devin Rousso <Devin Rousso> on 2016-05-10
Reviewed by Brian Burg.

Addressed FIXMEs for bug 147064:
<https://webkit.org/b/147064> Getter and setter on super are called with wrong "this" object

  • UserInterface/Views/VisualStyleKeywordPicker.js:

(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._getValue): Deleted.
(WebInspector.VisualStyleKeywordPicker.prototype._setValue): Deleted.
(WebInspector.VisualStyleKeywordPicker.prototype._generateSynthesizedValue): Deleted.

  • UserInterface/Views/VisualStyleNumberInputBox.js:

(WebInspector.VisualStyleNumberInputBox.prototype.set specialPropertyPlaceholderElementText):

  • UserInterface/Views/VisualStyleTimingEditor.js:

(WebInspector.VisualStyleTimingEditor.prototype.get value):
(WebInspector.VisualStyleTimingEditor.prototype.set value):
(WebInspector.VisualStyleTimingEditor.prototype.get synthesizedValue):
(WebInspector.VisualStyleTimingEditor.prototype._getValue): Deleted.
(WebInspector.VisualStyleTimingEditor.prototype._setValue): Deleted.
(WebInspector.VisualStyleTimingEditor.prototype._generateSynthesizedValue): Deleted.

10:32 AM Changeset in webkit [200628] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix a deprecation warning.

  • DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:

(DatabaseServiceInitializer):

10:27 AM Changeset in webkit [200627] by jer.noble@apple.com
  • 12 edits
    15 adds in trunk

Return a Promise from HTMLMediaElement.play()
https://bugs.webkit.org/show_bug.cgi?id=157400

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline web-platform-tests/html/dom/interfaces-expected.txt with new (failing) result.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Tests: media/media-play-promise-reject-error-notsupported.html

media/media-play-promise-reject-load-abort.html
media/media-play-promise-reject-pause-abort.html
media/media-play-promise-reject-play-notallowed.html
media/media-play-promise-reject-play-notsupported.html
media/media-play-promise-resolve-when-playing.html
media/media-play-promise-resolve.html

The HTML Living Standard Spec <https://html.spec.whatwg.org/multipage/embedded-content.html>
(5 May 2016) adds support for a Promise to be returned by the play() method, to be resolved
or rejected at defined points during loading and playback.

Add utility methods which encapsulate the definitions of the equivalent algorithms from the
HTML Spec. Add a new, overloaded play() method on HTMLMediaElement which takes a DeferredWrapper
reference.

After the change to use scheduleNotifyAboutPlaying() instead of enqueueing the "playing" event
directly, we must ensure that the notifyAboutPlaying() task does not get fired before the
"play" event preceeding it does. So re-implement GenericEventQueue (which previously used
a timer to dispatch events) to use a GenericTaskQueue instead. This ensures that all tasks and
events are interleaved in the order in which they were enqueued.

Additionally, the new pauseAfterDetachedTimerFired() event was firing out of microtask order, which
broke some W3C tests after the changes to GenericEventQueue. Move GenericEventQueue and
GenericTaskQueue to the same timing source (namely, a WebCore Timer) and interleave Events
and Tasks by having GenericEventQueue use GenericTaskQueue to issue its Events. Because
Document::postTask() cannot ensure ordering with Timer-based events, switch HTMLMediaElement
over to Timer-backed GenericTaskQueues.

  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::GenericEventQueue):
(WebCore::GenericEventQueue::enqueueEvent):
(WebCore::GenericEventQueue::close):
(WebCore::GenericEventQueue::cancelAllEvents):
(WebCore::GenericEventQueue::suspend):
(WebCore::GenericEventQueue::resume):
(WebCore::GenericEventQueue::sharedTimer): Deleted.
(WebCore::GenericEventQueue::sharedTimerFired): Deleted.
(WebCore::GenericEventQueue::pendingQueues): Deleted.

  • dom/GenericEventQueue.h:
  • platform/GenericTaskQueue.cpp: Added.

(WebCore::TaskDispatcher<Timer>::~TaskDispatcher):
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedTimer):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):

  • platform/GenericTaskQueue.h:

(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Deleted.
(WebCore::TaskDispatcher<Timer>::postTask): Deleted.
(WebCore::TaskDispatcher<Timer>::timerFired): Deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::rejectPendingPlayPromises):
(WebCore::HTMLMediaElement::resolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleNotifyAboutPlaying):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::noneSupported):
(WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::contextDestroyed):
(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::pauseAfterDetachedTask): Renamed from pauseAfterDetachedTimerFired.
(WebCore::HTMLMediaElement::removedFrom):
(WebCore::HTMLMediaElement::contextDestroyed):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

  • media/media-play-promise-reject-error-notsupported-expected.txt: Added.
  • media/media-play-promise-reject-error-notsupported.html: Added.
  • media/media-play-promise-reject-load-abort-expected.txt: Added.
  • media/media-play-promise-reject-load-abort.html: Added.
  • media/media-play-promise-reject-pause-abort-expected.txt: Added.
  • media/media-play-promise-reject-pause-abort.html: Added.
  • media/media-play-promise-reject-play-notallowed-expected.txt: Added.
  • media/media-play-promise-reject-play-notallowed.html: Added.
  • media/media-play-promise-reject-play-notsupported-expected.txt: Added.
  • media/media-play-promise-reject-play-notsupported.html: Added.
  • media/media-play-promise-resolve-expected.txt: Added.
  • media/media-play-promise-resolve-when-playing-expected.txt: Added.
  • media/media-play-promise-resolve-when-playing.html: Added.
  • media/media-play-promise-resolve.html: Added.
10:23 AM Changeset in webkit [200626] by Chris Dumez
  • 90 edits in trunk/Source

Get rid of a lot of calls to RefPtr::release()
https://bugs.webkit.org/show_bug.cgi?id=157505

Reviewed by Alex Christensen.

Get rid of a lot of calls to RefPtr::release() and use WTFMove() instead.

Source/WebCore:

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::addKeyTimerFired):
(WebCore::MediaKeySession::sendMessage):
(WebCore::MediaKeySession::sendError):

  • Modules/geolocation/Geolocation.cpp:

(WebCore::createGeoposition):

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowIndexedDatabase::reconnectFrameFromDocumentSuspension):

  • Modules/indexeddb/IDBKey.h:

(WebCore::IDBKey::createMultiEntryArray):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::scheduleEvent):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::scheduleEvent):

  • Modules/mediasource/SourceBufferList.cpp:

(WebCore::SourceBufferList::scheduleEvent):

  • Modules/notifications/DOMWindowNotifications.cpp:

(WebCore::DOMWindowNotifications::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowNotifications::reconnectFrameFromDocumentSuspension):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabaseBackend):

  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::unwrap):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::enqueueTextFrame):
(WebCore::WebSocketChannel::enqueueRawFrame):
(WebCore::WebSocketChannel::enqueueBlobFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSGeolocationCustom.cpp:

(WebCore::createPositionOptions):
(WebCore::JSGeolocation::getCurrentPosition):
(WebCore::JSGeolocation::watchPosition):

  • bindings/js/JSMessagePortCustom.cpp:

(WebCore::fillMessagePortArray):

  • bindings/js/JSSQLTransactionCustom.cpp:

(WebCore::JSSQLTransaction::executeSql):

  • bindings/js/ScriptControllerMac.mm:

(WebCore::ScriptController::createScriptInstanceForWidget):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallWith):

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::generatePair):

  • css/CSSBasicShapes.cpp:

(WebCore::buildSerializablePositionOffset):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForNinePieceImageRepeat):
(WebCore::counterToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSContentDistributionValue.cpp:

(WebCore::CSSContentDistributionValue::customCSSText):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • css/CSSFilterImageValue.h:
  • css/CSSGrammar.y.in:
  • css/CSSNamedImageValue.cpp:

(WebCore::CSSNamedImageValue::image):

  • css/CSSNamedImageValue.h:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::parseAnimationProperty):
(WebCore::CSSParser::parseInsetRoundedCorners):
(WebCore::ShadowParseContext::commitLength):
(WebCore::CSSParser::parseShadow):
(WebCore::BorderImageSliceParseContext::commitNumber):
(WebCore::BorderImageQuadParseContext::commitNumber):
(WebCore::CSSParser::parseBorderRadius):
(WebCore::CSSParser::parseCounter):
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::CSSParser::parseDeprecatedLinearGradient):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseLinearGradient):
(WebCore::CSSParser::parseRadialGradient):
(WebCore::CSSParser::parseTransformValue):
(WebCore::CSSParser::parseBuiltinFilterArguments):
(WebCore::CSSParser::parseTextIndent):
(WebCore::CSSParser::popRuleData):
(WebCore::CSSParser::markRuleHeaderStart):
(WebCore::CSSParser::createViewportRule):

  • css/CSSParser.h:
  • css/CSSParserValues.cpp:

(WebCore::CSSParserValue::createCSSValue):

  • css/CSSParserValues.h:
  • css/CSSValueList.cpp:

(WebCore::CSSValueList::copy):

  • css/CSSValueList.h:
  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertClipPath):
(WebCore::StyleBuilderConverter::convertReflection):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):

  • css/StyleResolver.h:
  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::createCSSOMWrapper):

  • css/StyleRule.h:
  • dom/Attr.cpp:

(WebCore::Attr::create):

  • dom/Attr.h:
  • dom/ContainerNode.h:

(WebCore::ChildNodesLazySnapshot::nextNode):

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):
(WebCore::Document::takeDOMWindowFrom):
(WebCore::Document::updateHoverActiveState):

  • dom/Element.cpp:

(WebCore::Element::detachAttribute):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::ensureAttr):

  • dom/Element.h:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::entanglePorts):

  • dom/NodeIterator.cpp:

(WebCore::NodeIterator::nextNode):
(WebCore::NodeIterator::previousNode):

  • dom/Range.cpp:

(WebCore::Range::processContentsBetweenOffsets):

  • dom/StyledElement.cpp:

(WebCore::StyledElement::rebuildPresentationAttributeStyle):

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::createBlockElement):

  • editing/ApplyBlockElementCommand.h:
  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::applyCommandToComposite):
(WebCore::CompositeEditCommand::appendBlockPlaceholder):
(WebCore::CompositeEditCommand::insertBlockPlaceholder):
(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
(WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt):
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/CompositeEditCommand.h:
  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::wrappingStyleForSerialization):
(WebCore::styleFromMatchedRulesForElement):
(WebCore::extractPropertiesNotIn):
(WebCore::backgroundColorInEffect):

  • editing/EditingStyle.h:
  • editing/Editor.cpp:

(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
(WebCore::Editor::findStringAndScrollToVisible):
(WebCore::Editor::rangeOfString):

  • editing/Editor.h:
  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):

  • editing/InsertParagraphSeparatorCommand.h:
  • editing/MergeIdenticalElementsCommand.cpp:

(WebCore::MergeIdenticalElementsCommand::doUnapply):

  • editing/ModifySelectionListLevel.cpp:

(WebCore::IncreaseSelectionListLevelCommand::doApply):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):

  • editing/ModifySelectionListLevel.h:
  • editing/RemoveNodeCommand.cpp:

(WebCore::RemoveNodeCommand::doUnapply):

  • editing/RemoveNodePreservingChildrenCommand.cpp:

(WebCore::RemoveNodePreservingChildrenCommand::doApply):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::insertFragmentForTestRendering):

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::doApply):

  • editing/mac/DictionaryLookup.h:
  • editing/mac/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection):
(WebCore::DictionaryLookup::rangeAtHitTestResult):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::finishRequestAutocomplete):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleEvent):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):

  • html/HTMLMediaElement.h:
  • html/canvas/OESVertexArrayObject.cpp:

(WebCore::OESVertexArrayObject::createVertexArrayOES):

  • html/canvas/OESVertexArrayObject.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getContextAttributes):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCue::getCueAsHTML):
(WebCore::VTTCue::createCueRenderingTree):

  • html/track/VTTCue.h:
  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::createEquivalentHTMLElement):

  • html/track/WebVTTElement.h:
  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTTreeBuilder::buildFromString):
(WebCore::WebVTTParser::createDocumentFragmentFromCueText):

  • html/track/WebVTTParser.h:

Source/WTF:

  • wtf/text/AtomicStringImpl.cpp:

(WTF::HashAndUTF8CharactersTranslator::translate):

  • wtf/text/CString.cpp:

(WTF::CString::copyBufferIfNeeded):

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::allocateBuffer):
(WTF::StringBuilder::allocateBufferUpConvert):
(WTF::StringBuilder::shrinkToFit):

  • wtf/text/WTFString.cpp:

(WTF::String::append):
(WTF::String::insert):
(WTF::String::removeInternal):

  • wtf/text/WTFString.h:

(WTF::String::String):
(WTF::String::operator=):
(WTF::String::releaseImpl):
(WTF::String::isNull): Deleted.

10:05 AM Changeset in webkit [200625] by barraclough@apple.com
  • 3 edits in trunk/Source/WebCore

Allow some leeway after page load before throttling, to allow post load events to complete.
https://bugs.webkit.org/show_bug.cgi?id=157499

Reviewed by Ryosuke Niwa

  • page/PageThrottler.cpp:

(WebCore::PageThrottler::PageThrottler):

  • m_pageLoadActivityCounter now affects activity state indirecty, via m_pageLoadActivityHysteresis.

(WebCore::PageThrottler::pageLoadActivityCounterChanged):

  • counter updates hysteresis object, which in turn will affect activity state.
  • page/PageThrottler.h:
    • added m_pageLoadActivityHysteresis, pageLoadActivityCounterChanged.
10:05 AM Changeset in webkit [200624] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Clicks do not work in Safari after pressing the Track package button in Gmail
https://bugs.webkit.org/show_bug.cgi?id=157508
<rdar://problem/22646404>

Reviewed by Anders Carlsson.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::viewDidMoveToWindow):
Explicitly cancel the force-click animation when we're removing the gesture
recognizer due to the WK*View being unparented. This works around a bug
where we don't get the cancellation callback in this situation, causing
Safari to be left in an inconsistent and unexpected state.

9:34 AM Changeset in webkit [200623] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix the !ENABLE(DFG_JIT) build
https://bugs.webkit.org/show_bug.cgi?id=157512

Reviewed by Mark Lam.

  • jit/Repatch.cpp:
8:27 AM Changeset in webkit [200622] by Alan Bujtas
  • 6 edits
    2 adds in trunk

REGRESSION (r193610): Drop down menu doesn’t expand at allofbach.com
https://bugs.webkit.org/show_bug.cgi?id=157445

Reviewed by Simon Fraser.

When we don't run transitions (becasuse of to/from 'auto' values) we should also not
report the 'from' value and behave as if we finished the transition already.

Source/WebCore:

Test: fast/animation/height-auto-transition-computed-value.html

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty): This is a revert of
looping the 'to' value back to the first keyframe when reverse animation is at the start value (last keyframe).

  • platform/Length.cpp:

(WebCore::blend):

LayoutTests:

  • fast/animation/height-auto-transition-computed-value-expected.html: Added.
  • fast/animation/height-auto-transition-computed-value.html: Added.
  • imported/blink/transitions/transition-not-interpolable-expected.txt:
7:56 AM Changeset in webkit [200621] by Michael Catanzaro
  • 20 edits
    7 deletes in trunk

[Linux] Remove seccomp filters support
https://bugs.webkit.org/show_bug.cgi?id=157380

Reviewed by Darin Adler.

.:

  • Source/cmake/FindLibSeccomp.cmake: Removed.
  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebKit2:

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode): Deleted.
(WebKit::NetworkProcessCreationParameters::decode): Deleted.

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.

  • Shared/WebProcessCreationParameters.h:
  • Shared/linux/SeccompFilters/OpenSyscall.cpp: Removed.
  • Shared/linux/SeccompFilters/OpenSyscall.h: Removed.
  • Shared/linux/SeccompFilters/SeccompBroker.cpp: Removed.
  • Shared/linux/SeccompFilters/SeccompBroker.h: Removed.
  • Shared/linux/SeccompFilters/SeccompFilters.cpp: Removed.
  • Shared/linux/SeccompFilters/SeccompFilters.h: Removed.
  • Shared/linux/SeccompFilters/SigactionSyscall.cpp: Removed.
  • Shared/linux/SeccompFilters/SigactionSyscall.h: Removed.
  • Shared/linux/SeccompFilters/SigprocmaskSyscall.cpp: Removed.
  • Shared/linux/SeccompFilters/SigprocmaskSyscall.h: Removed.
  • Shared/linux/SeccompFilters/Syscall.cpp: Removed.
  • Shared/linux/SeccompFilters/Syscall.h: Removed.
  • Shared/linux/SeccompFilters/SyscallPolicy.cpp: Removed.
  • Shared/linux/SeccompFilters/SyscallPolicy.h: Removed.
  • Shared/linux/SeccompFilters/XDGBaseDirectory.h: Removed.
  • Shared/linux/SeccompFilters/XDGBaseDirectoryGLib.cpp: Removed.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess): Deleted.
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::cookieStorageDirectory): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebProcess/efl/SeccompFiltersWebProcessEfl.cpp: Removed.
  • WebProcess/efl/SeccompFiltersWebProcessEfl.h: Removed.
  • WebProcess/gtk/SeccompFiltersWebProcessGtk.cpp: Removed.
  • WebProcess/gtk/SeccompFiltersWebProcessGtk.h: Removed.
  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Deleted.

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebKit2/SeccompFilters.cpp: Removed.
  • efl/jhbuild.modules:
  • gtk/jhbuild.modules:
4:41 AM Changeset in webkit [200620] by dino@apple.com
  • 10 edits in trunk

[iOS] <select> elements should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157501
<rdar://problem/26187870>

Reviewed by Antoine Quint.

Source/WebCore:

This is the equivalent of http://webkit.org/b/157112 for iOS.
Handle <select> elements when we're in RTL mode. This means
drawing the button with the drop-down arrow on the left
side, and the button text right-aligned.

Test: fast/forms/select-non-native-rendering-direction.html
plus a bunch of other ones that needed rebaselining.

  • rendering/RenderThemeIOS.mm: Rename MenuListButtonPaddingRight to MenuListButtonPaddingAfter.

(WebCore::RenderThemeIOS::popupInternalPaddingBox): Handle both directions.
(WebCore::adjustInputElementButtonStyle):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations): Handle drawing in
RTL mode.

LayoutTests:

Rebaseline now that iOS is doing the right thing.

  • platform/ios-simulator/fast/forms/select-non-native-rendering-direction-expected.txt:
  • platform/ios-simulator/fast/forms/listbox-bidi-align-expected.txt:
  • platform/ios-simulator/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/ios-simulator/fast/text/international/bidi-listbox-atsui-expected.txt:
  • platform/ios-simulator/fast/text/international/bidi-listbox-expected.txt:
  • platform/ios-simulator/fast/text/international/bidi-menulist-expected.txt:
  • platform/ios-simulator/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
2:47 AM Changeset in webkit [200619] by youenn.fablet@crf.canon.fr
  • 17 edits
    2 adds in trunk

NodeList should be iterable
https://bugs.webkit.org/show_bug.cgi?id=131443
<rdar://problem/25731519>

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/dom/nodeListIterator.html

Updating JSKeyValueIterator to support map and set iterators,
depending on the signature of the result type of DOMClass::Iterator::next method.
Symbol.iterator method is made the same as values method for set iterators.

Adding support for NodeList.
Updating FontFaceSet to take benefit of that.

  • bindings/js/JSDOMBinding.h:

(WebCore::jsPair):.

  • bindings/js/JSKeyValueIterator.h:

(WebCore::IteratorInspector::decltype): IteratorInspector detects whether the iterator is a set or map iterator.
(WebCore::IteratorInspector::test):
(WebCore::fillForEachArgumentsWithIteratorValue): Specializing according set/map iterator.
(WebCore::iteratorValueToJS): Ditto.
(WebCore::keyValueIteratorForEach):
(WebCore::JSKeyValueIterator<JSWrapper>::next):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementationIterableFunctions): Removed the line forbidding set iterators.
Making Symbol.iterator function equal to values for set iterators.

  • bindings/scripts/test/JS/JSTestNode.cpp: Rebasing with set iterator functions.
  • bindings/scripts/test/JS/JSTestObj.cpp: Rebasing according updated function names.
  • bindings/scripts/test/TestNode.idl: Making TestNode set iterable.
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::Iterator::next): Refactoring to make it a set iterator.

  • css/FontFaceSet.h:
  • css/FontFaceSet.idl:
  • dom/NodeList.h: Making NodeList iterable.

(WebCore::NodeList::Iterator::Iterator):
(WebCore::NodeList::Iterator::next):
(WebCore::NodeList::createIterator):

  • dom/NodeList.idl:

LayoutTests:

  • fast/dom/domListEnumeration-expected.txt:
  • fast/dom/nodeListIterator-expected.txt: Added.
  • fast/dom/nodeListIterator.html: Added.
  • fast/dom/script-tests/domListEnumeration.js:
  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/font-face-set-javascript.html:
12:46 AM Changeset in webkit [200618] by svillar@igalia.com
  • 8 edits
    17 adds in trunk

[css-grid] Implement auto-repeat computation
https://bugs.webkit.org/show_bug.cgi?id=157473

Reviewed by Darin Adler.

Source/WebCore:

We added support for parsing and style for the new auto-repeat syntax. This patch actually
implements the feature by computing the number of auto-repeat tracks that will be part of
the explicit grid depending on the available size on the corresponding axis.

Note that we still do not drop the empty tracks, i.e., auto-fit will work exactly as
auto-fill until the empty track removal is implemented.

Some test results are not totally correct yet because we need to add the line names to the
computed style. As that requires a rather large piece of code it will be done in a follow up
patch. Track sizes are correct though.

Tests: fast/css-grid-layout/grid-auto-fill-columns.html

fast/css-grid-layout/grid-auto-fill-rows.html
fast/css-grid-layout/grid-change-auto-repeat-tracks.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTrackRepeatFunction): Add the CSSAutoRepeatValue directly
instead of adding the track size.

  • css/StyleBuilderCustom.h: Store the insertion point in style.
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::guttersSize): Replaced size_t by unsigned.
(WebCore::RenderGrid::rawGridTrackSize): New function which retrieves the track size from
either explicit (including auto-repeat tracks) or implicit tracks.
(WebCore::RenderGrid::gridTrackSize): Use rawGridTrackSize().
(WebCore::RenderGrid::computeAutoRepeatTracksCount): This is the core of the patch. This
method computes the number of auto-repeat tracks that fits on the available size for a given
axis (or 1 if that's indefinite).

  • rendering/RenderGrid.h:

LayoutTests:

Apart from some home made tests I'm importing 5 patches from Mozilla's test suite as they
perfectly test the behavior of auto-repeat with positioned items. I've commented auto-fit
tests as that feature isn't implemented yet.

  • fast/css-grid-layout/grid-auto-fill-columns-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-fill-columns.html: Added.
  • fast/css-grid-layout/grid-auto-fill-rows-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-fill-rows.html: Added.
  • fast/css-grid-layout/grid-change-auto-repeat-tracks-expected.txt: Added.
  • fast/css-grid-layout/grid-change-auto-repeat-tracks.html: Added.
  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html: Added.

May 9, 2016:

11:36 PM Changeset in webkit [200617] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Web Inspector: CRASH under JSC::DebuggerCallFrame::thisValue when hitting breakpoint
https://bugs.webkit.org/show_bug.cgi?id=157442
<rdar://problem/24172015>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-09
Reviewed by Saam Barati.

Source/JavaScriptCore:

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::thisValueForCallFrame):
When the thisValue is JSValue() return undefined and avoid calling
toThisValue which would lead to a crash. Having this be an empty
JSValue could happen inside an ES6 class constructor, before
calling super.

LayoutTests:

  • inspector/debugger/break-in-constructor-before-super-expected.txt: Added.
  • inspector/debugger/break-in-constructor-before-super.html: Added.
11:07 PM Changeset in webkit [200616] by bshafiei@apple.com
  • 1 copy in branches/safari-601.6-branch

New Branch.

11:03 PM Changeset in webkit [200615] by bshafiei@apple.com
  • 1 copy in branches/safari-601.1.46.128-branch

New Branch.

10:04 PM Changeset in webkit [200614] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix GTK build after r200607

  • Modules/notifications/Notification.h:

dir and replaceId are used in WebNotificationManager with NOTIFICATIONS and with LEGACY_NOTIFICATIONS

9:58 PM Changeset in webkit [200613] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, fix cloop.

  • bytecode/ValueProfile.cpp:

(JSC::ResultProfile::emitDetectNumericness):
(JSC::ResultProfile::emitSetNonNumber):

  • bytecode/ValueProfile.h:

(JSC::ResultProfile::addressOfFlags):
(JSC::ResultProfile::addressOfSpecialFastPathCount):
(JSC::ResultProfile::detectNumericness):
(JSC::ResultProfile::hasBits):

9:52 PM Changeset in webkit [200612] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Fix the Windows build after r200602, and do some minor tidyup.

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::contentsHidden):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::contentsHidden):
(PlatformCALayerWin::setContentsHidden):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
8:40 PM Changeset in webkit [200611] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit2

REGRESSION (r191922): Zoom in/Zoom Out is not working for PDFs
https://bugs.webkit.org/show_bug.cgi?id=157503
<rdar://problem/23736297>

Reviewed by Anders Carlsson.

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:

Restore a requiresUnifiedScaleFactor that was lost in r191922.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::mainFramePluginHandlesPageScaleGestureDidChange):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::didInitializePlugin):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
Separate mainFramePluginHandlesPageScaleGesture changes out from didCommitLoadForFrame,
because the PluginView doesn't exist at this point, so it can't answer
the handlesPageScaleGesture question correctly (or at all).
Instead, we'll send the message when the main-frame PluginView is initialized.

8:22 PM Changeset in webkit [200610] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Crash beneath ObjCCallbackFunctionImpl::call
https://bugs.webkit.org/show_bug.cgi?id=157491

Reviewed by Saam Barati.

Clear any exceptions after the micro task runs.

Tried creating a test case, but I don't have source for the app.
I can't seem to find the right combination of Promises and ObjC code.

  • runtime/JSJob.cpp:

(JSC::JSJobMicrotask::run):

7:55 PM Changeset in webkit [200609] by Simon Fraser
  • 6 edits
    7 copies
    41 moves
    6 adds in trunk/LayoutTests

iOS-scrolling test cleanup.

Move iOS scrolling tests from platform/ios-simulator/fast/scrolling/ios to fast/scrolling/ios/.
Rebaseline those that need it. Enable some in iOS WK1 if they pass.

Try to make fast/scrolling/ios/touch-scroll-visibility-hidden.html not flakey

  • fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt.
  • fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor.html.
  • fast/scrolling/ios/iframe-inside-overflow-clipping-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/iframe-inside-overflow-clipping-expected.txt.
  • fast/scrolling/ios/iframe-inside-overflow-clipping.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/iframe-inside-overflow-clipping.html.
  • fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor-expected.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-clip-with-accelerated-scrolling-ancestor-expected.html.
  • fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-clip-with-accelerated-scrolling-ancestor.html.
  • fast/scrolling/ios/overflow-div-scrolling-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-div-scrolling-expected.txt.
  • fast/scrolling/ios/overflow-div-scrolling.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-div-scrolling.html.
  • fast/scrolling/ios/overflow-scroll-inherited-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-inherited-expected.txt.
  • fast/scrolling/ios/overflow-scroll-inherited.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-inherited.html.
  • fast/scrolling/ios/overflow-scroll-touch-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-touch-expected.txt.
  • fast/scrolling/ios/overflow-scroll-touch.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-touch.html.
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-expected.txt.
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size-expected.txt.
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size.html.
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip.html.
  • fast/scrolling/ios/remove-overflow-crash-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/remove-overflow-crash-expected.txt.
  • fast/scrolling/ios/remove-overflow-crash.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/remove-overflow-crash.html.
  • fast/scrolling/ios/resources/jump-back.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/resources/jump-back.html.
  • fast/scrolling/ios/script-tests/TEMPLATE.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/script-tests/TEMPLATE.html.
  • fast/scrolling/ios/script-tests/overflow-div-scrolling.js: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/script-tests/overflow-div-scrolling.js.

(verifyScrollOffset):

  • fast/scrolling/ios/scroll-event-from-scrollTo-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-event-from-scrollTo-expected.txt.
  • fast/scrolling/ios/scroll-event-from-scrollTo.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-event-from-scrollTo.html.
  • fast/scrolling/ios/scroll-events-back-forward-after-pageshow-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-after-pageshow-expected.txt.
  • fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-after-pageshow.html.
  • fast/scrolling/ios/scroll-events-back-forward-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-expected.txt.
  • fast/scrolling/ios/scroll-events-back-forward.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward.html.
  • fast/scrolling/ios/scrollTo-at-page-load-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollTo-at-page-load-expected.txt.
  • fast/scrolling/ios/scrollTo-at-page-load.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollTo-at-page-load.html.
  • fast/scrolling/ios/scrollbar-hiding-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding-expected.txt.
  • fast/scrolling/ios/scrollbar-hiding.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding.html.
  • fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport-expected.txt.
  • fast/scrolling/ios/scrolling-content-clip-to-viewport.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport.html.
  • fast/scrolling/ios/table-cell-touch-scrolling-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/table-cell-touch-scrolling-expected.txt.
  • fast/scrolling/ios/table-cell-touch-scrolling.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/table-cell-touch-scrolling.html.
  • fast/scrolling/ios/textarea-scroll-touch-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch-expected.txt.
  • fast/scrolling/ios/textarea-scroll-touch.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch.html.
  • fast/scrolling/ios/touch-scroll-back-forward-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-scroll-back-forward-expected.txt.
  • fast/scrolling/ios/touch-scroll-back-forward.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-scroll-back-forward.html.
  • fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt:
  • fast/scrolling/ios/touch-scroll-visibility-hidden.html:
  • fast/scrolling/ios/touch-stacking-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking-expected.txt.
  • fast/scrolling/ios/touch-stacking.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking.html.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png: Added.
  • platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/scrollbar-hiding-expected.png: Added.
  • platform/ios-simulator/fast/scrolling/ios/scrollbar-hiding-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/textarea-scroll-touch-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.png: Added.
  • platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking-expected.txt.
7:45 PM Changeset in webkit [200608] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Filtering by Errors/Warnings should not filter Breakpoints list
https://bugs.webkit.org/show_bug.cgi?id=157481
<rdar://problem/26177346>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

New UI strings.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
Only filter tree elements belonging to the scripts tree outline.
(WebInspector.DebuggerSidebarPanel):
Drive-by cleanup of Issues filter button tooltips.

7:31 PM Changeset in webkit [200607] by Darin Adler
  • 14 edits in trunk/Source/WebCore

Change Notification constructor to take an IDL dictionary instead of a WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=157466

Reviewed by Alex Christensen.

  • Modules/notifications/Notification.cpp: Got rid of unneeded includes.

(WebCore::Notification::Notification): Deleted the unused default constructor. Changed
NotificationCenter argument to be reference rather than PassRefPtr. Changed one of the
ScriptExecutionContext arguments to be a Document since the code relies on that already.
Used the lambda form of timer creation instead of the class member form. Added a FIXME
about when m_notificationCenter can be null.
(WebCore::Notification::create): Changed NotificationCenter argument to be reference
rather than PassRefPtr. Changed options argument to be Options rather than Dictionary.
(WebCore::directionString): Added. Helper because the class still wants to store the
direction as a string, at least for now.
(WebCore::Notification::show): Streamlined the code a bit.
(WebCore::Notification::taskTimerFired): Deleted. Not needed now that we use a lambda
inside the constructor.
(WebCore::Notification::permission): Removed unneeded const from return type.
(WebCore::Notification::permissionString): Ditto.

  • Modules/notifications/Notification.h: Used pragma once, updated for changes above.

Removed a number of unused functions, including cancel, setIconURL, setLang,
stopLoadingIcon, detachPresenter, setBody, startLoadingIcon, finishLoadingIcon, and
taskTimerFired.

  • Modules/notifications/Notification.idl: Add NotificationOptions and pass it instead

of Dictionary to the constructor. Note that this is only a subset of what is
currently specified in the Notifications API document. The latest document specifies
a much more complex feature with lots more options.

  • Modules/notifications/NotificationCenter.cpp:

(WebCore::NotificationCenter::createNotification): Pass a reference rather than a
pointer to this.

  • Modules/notifications/NotificationClient.h: Use pragma once. Removed unneeded

includes and forward declarations. Fixed #if to be easier to read.

  • bindings/js/JSDOMConvert.h: Reworked the convert functions to use Converter and

DefaultConverter structs so we can do partial specialization in the future and so
we can get custom types for optional values. Used this to make an optional String
just be a null String, so it won't try to use Optional<String> instead. Might get
more complex latter when we add support for nullable.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateEnumerationImplementationContent): Generate a blank line to make the output
slightly clearer. Tweaked a comment.
(GenerateDefaultValue): Added. Converts the default syntax from IDL into the syntax
needed in C++ code.
(GenerateDefaultValueWithLeadingComma): Added. Helper for use below.
(GenerateDictionaryImplementationContent): Use GenerateDefaultValue and
GenerateDefaultValueWithLeadingComma to make default values.
(GenerateParametersCheck): Use GenerateDefaultValue here in the enumeration code
path. This is a step in the direction of being able to make the whole thing more
generic in the future.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

Regenerated.

  • bindings/scripts/test/TestObj.idl: Simplified and extended some of the test cases

to cover more combinations of the dictionary and enumeration support.

7:01 PM Changeset in webkit [200606] by fpizlo@apple.com
  • 42 edits
    17 adds in trunk

Polymorphic operands in operators coerces downstream values to double.
https://bugs.webkit.org/show_bug.cgi?id=151793

Reviewed by Mark Lam.
Source/JavaScriptCore:


Previously if an object flowed into arithmetic, the prediction propagation phase would either
assume that the output of the arithmetic had to be double or sometimes it would assume that it
couldn't be double. We want it to only assume that the output is double if it actually had been.

The first part of this patch is to roll out http://trac.webkit.org/changeset/200502. That removed
some of the machinery that we had in place to detect whether the output of an operation is int or
double. That changeset claimed that the machinery was "fundamentally broken". It actually wasn't.
The reason why it didn't work was that ByteCodeParser was ignoring it if likelyToTakeSlowCase was
false. I think this was a complete goof-up: the code in ByteCodeParser::makeSafe was structured
in a way that made it non-obvious that the method is a no-op if !likelyToTakeSlowCase. So, this
change rolls out r200502 and makes ResultProfile do its job by reshaping how makeSafe processes
it.

This also makes two other changes to shore up ResultProfile:

  • OSR exit can now refine a ResultProfile the same way that it refines ValueProfile.
  • Baseline JIT slow paths now set bits in ResultProfile.


Based on this stuff, the DFG now predicts int/double/string in op_add/op_sub/op_mul based on
ResultProfiles. To be conservative, we still only use the ResultProfiles if the incoming
prediction is not number-or-boolean. This ensures that we exactly retain our old behavior in
those cases for which it was tuned. But I hope to remove this soon. I believe that ResultProfile
is already strictly better than what prediction propagation was doing before.

This can be an enormous win. This patch adds some simple microbenchmarks that demonstrate the
problem of assuming that arithmetic on objects returns double. The most extreme of these speeds
up 8x with this change (object-int-add-array).

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addFrequentExitSite):
(JSC::CodeBlock::hasExitSite):

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::FrequentExitSite::dump):
(JSC::DFG::ExitProfile::ExitProfile):
(JSC::DFG::ExitProfile::~ExitProfile):
(JSC::DFG::ExitProfile::add):

  • bytecode/DFGExitProfile.h:

(JSC::DFG::FrequentExitSite::isHashTableDeletedValue):

  • bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::fromLazyOperand):
(JSC::MethodOfGettingAValueProfile::emitReportValue):
(JSC::MethodOfGettingAValueProfile::getSpecFailBucket): Deleted.

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):
(JSC::MethodOfGettingAValueProfile::operator bool):
(JSC::MethodOfGettingAValueProfile::operator!): Deleted.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/ValueProfile.cpp:

(JSC::ResultProfile::emitDetectBitsLight):
(JSC::ResultProfile::emitSetDouble):
(JSC::ResultProfile::emitSetNonNumber):
(WTF::printInternal):

  • bytecode/ValueProfile.h:

(JSC::ResultProfile::ResultProfile):
(JSC::ResultProfile::bytecodeOffset):
(JSC::ResultProfile::specialFastPathCount):
(JSC::ResultProfile::didObserveNonInt32):
(JSC::ResultProfile::didObserveDouble):
(JSC::ResultProfile::didObserveNonNegZeroDouble):
(JSC::ResultProfile::didObserveNegZeroDouble):
(JSC::ResultProfile::didObserveNonNumber):
(JSC::ResultProfile::didObserveInt32Overflow):
(JSC::ResultProfile::didObserveInt52Overflow):
(JSC::ResultProfile::setObservedNonNegZeroDouble):
(JSC::ResultProfile::setObservedNegZeroDouble):
(JSC::ResultProfile::setObservedNonNumber):
(JSC::ResultProfile::setObservedInt32Overflow):
(JSC::ResultProfile::addressOfFlags):
(JSC::ResultProfile::addressOfSpecialFastPathCount):
(JSC::ResultProfile::detectBitsLight):
(JSC::ResultProfile::hasBits):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::ensureNaturalLoops):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
(JSC::DFG::Graph::valueProfileFor): Deleted.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::hasExitSite):
(JSC::DFG::Graph::numBlocks):

  • dfg/DFGNode.h:

(JSC::DFG::Node::arithNodeFlags):
(JSC::DFG::Node::mayHaveNonIntResult):
(JSC::DFG::Node::mayHaveDoubleResult):
(JSC::DFG::Node::mayHaveNonNumberResult):
(JSC::DFG::Node::hasConstantBuffer):

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::dumpNodeFlags):

  • dfg/DFGNodeFlags.h:
  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

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

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

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfEqual):
(JSC::AssemblyHelpers::branchIfNotCell):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::branchIfNotDoubleKnownNotInt32):
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchStructure):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::CCallHelpers):
(JSC::CCallHelpers::setupArguments):
(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/IntrinsicEmitter.cpp:

(JSC::AccessCase::emitIntrinsicGetter):

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

(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):
(JSC::JIT::callOperationNoExceptionCheck):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):

  • jit/TagRegistersMode.cpp: Added.

(WTF::printInternal):

  • jit/TagRegistersMode.h: Added.
  • runtime/CommonSlowPaths.cpp:

(JSC::updateResultProfileForBinaryArithOp):

LayoutTests:

  • js/regress/object-int-add-array-expected.txt: Added.
  • js/regress/object-int-add-array.html: Added.
  • js/regress/object-int-add-expected.txt: Added.
  • js/regress/object-int-add.html: Added.
  • js/regress/object-int-mul-array-expected.txt: Added.
  • js/regress/object-int-mul-array.html: Added.
  • js/regress/object-int-sub-array-expected.txt: Added.
  • js/regress/object-int-sub-array.html: Added.
  • js/regress/object-int-sub-expected.txt: Added.
  • js/regress/object-int-sub.html: Added.
  • js/regress/script-tests/object-int-add-array.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-int-add.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-int-mul-array.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-int-sub-array.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-int-sub.js: Added.

(i.o.valueOf):

6:40 PM Changeset in webkit [200605] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: DOM path bar blinks when modifying inline styles
https://bugs.webkit.org/show_bug.cgi?id=149258
<rdar://problem/22737843>

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js:

(Array.shallowEqual):

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
(WebInspector.ContentBrowser.prototype._removeAllNavigationItems):
Don't re-render the navigation bar when all new navigation items match the previous ones.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WebInspector.HierarchicalPathNavigationItem.set components.let.componentsEqual):
(WebInspector.HierarchicalPathNavigationItem.prototype.set components):
Don't re-render HierarchicalPathComponent when all new path components match the previous ones.

6:35 PM Changeset in webkit [200604] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Land correct result for a recently added test.

  • fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt:
5:59 PM Changeset in webkit [200603] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Modern IDB: Have server database connections remember the OpenDB request that spawned them.
https://bugs.webkit.org/show_bug.cgi?id=157498

Reviewed by Tim Horton.

No new tests (No testable change in behavior, debug only for now).

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::create):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didCommitTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::openRequestIdentifier):

5:20 PM Changeset in webkit [200602] by Simon Fraser
  • 23 edits
    3 adds in trunk

[iOS] visibility:hidden -webkit-overflow-scrolling: touch divs can interfere with page scrolling
https://bugs.webkit.org/show_bug.cgi?id=157496
Source/WebCore:

Reviewed by Tim Horton.

UIScrollViews are constructed in the UI process for visibility:hidden scrollable elements
with -webkit-overflow-scrolling: touch, and these intercept user events when they should not.

Fix by propagating a "contentsHidden" flag from the web process which is used to turn off
user interaction on these views.

Test: fast/scrolling/ios/touch-scroll-visibility-hidden.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateContentsVisibility): We have to tell the scrolling layer
if we have visibility:hidden.

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::contentsHidden):
(PlatformCALayerCocoa::setContentsHidden):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterDescendants):

Source/WebKit2:

rdar://problem/22963278

Reviewed by Tim Horton.

UIScrollViews are constructed in the UI process for visibility:hidden scrollable elements
with -webkit-overflow-scrolling: touch, and these intercept user events when they should not.

Fix by propagating a "contentsHidden" flag from the web process which is used to turn off
user interaction on these views.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):

  • Shared/mac/RemoteLayerTreeTransaction.h:
  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(-[UIView _recursiveFindDescendantScrollViewAtPoint:withEvent:]): Our custom hit
test needs to take view.isUserInteractionEnabled into account.

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::setHidden):
(WebKit::PlatformCALayerRemote::contentsHidden):
(WebKit::PlatformCALayerRemote::setContentsHidden):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

Tools:

rdar://problem/22963278

Reviewed by Tim Horton.

Enhance UIScriptController to generate a drag, which is useful for scrolling.

  • WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
  • WebKitTestRunner/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::dragFromPointToPoint):

  • WebKitTestRunner/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/HIDEventGenerator.h:
  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator dragWithStartPoint:endPoint:duration:completionBlock:]):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::dragFromPointToPoint):

LayoutTests:

rdar://problem/22963278

Reviewed by Tim Horton.

Add a fast/scrolling/ios directory, disable it everywhere except on iOS.

  • TestExpectations:
  • fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt: Added.
  • fast/scrolling/ios/touch-scroll-visibility-hidden.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
5:13 PM Changeset in webkit [200601] by mmaxfield@apple.com
  • 8 edits
    6 adds in trunk

Web Font is downloaded even when all the characters in the document are outside its unicode-range
https://bugs.webkit.org/show_bug.cgi?id=42154
<rdar://problem/17779042>

Reviewed by Darin Adler.

Source/WebCore:

Fonts are requested in two stages:

  • For a given font family, all the relevant @font-face rules are consulted. We build up a

mapping of unicode-range -> Font object. This result is cached.

  • Then, when we have the mapping, we look up the character we are trying to render to

find the appropriate Font object.

However, we are not supposed to create any Font objects (because that causes a download to
be triggered) until we consult with the character we're trying to render. Therefore, this
patch swaps out the Font objects with a FontAccessor. This FontAccessor is essentially a
lazily-created Font. When step 2 starts looking up the appropriate character, the
FontAccessor will be asked to start the download.

Test: fast/text/unicode-range-download.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::removeClient):
as a client from all its CSSFontFaces.

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::clear): Clearing the CSSFontFaceSet needs to remove itself as a
client from all its CSSFontFaces.

  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSFontAccessor::create): The lazy Font object.
(WebCore::CSSFontAccessor::CSSFontAccessor): Ditto.
(WebCore::appendFontWithInvalidUnicodeRangeIfLoading): Appends a FontAccessor.
(WebCore::CSSSegmentedFontFace::fontRanges): Create the FontAccessor and use it instead.

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::determinePitch): Use the fontForFirstRange() convenience
function.
(WebCore::glyphPageFromFontRanges): font() may now return nullptr. Update this function to
handle that.

  • platform/graphics/FontRanges.cpp:

(WebCore::FontRanges::Range::font): Trigger the lazy initialization.
(WebCore::TrivialFontAccessor::create): Used in the case where there is only one font in
the Ranges object and it has a full unicode-range.
(WebCore::TrivialFontAccessor::TrivialFontAccessor):
(WebCore::FontRanges::FontRanges): Use TrivialFontAccessor.
(WebCore::FontRanges::glyphDataForCharacter): font() may now return nullptr. Update this
function to handle that. This is where the magic happens: this is where we trigger
downloads only if the character falls within the unicode-range.
(WebCore::FontRanges::fontForFirstRange): Add ASSERT.
(WebCore::FontRanges::isLoading): Update to use the new FontAccessor.

  • platform/graphics/FontRanges.h: Ditto.

(WebCore::FontRanges::Range::Range):
(WebCore::FontRanges::Range::fontAccessor):
(WebCore::FontRanges::appendRange):
(WebCore::FontRanges::Range::font): Deleted.

  • platform/graphics/FontSelector.h: The virtual base class of FontAccessor. This is

necessary because it must be shared between platform code and non-platform code.
(WebCore::FontAccessor::~FontAccessor):

LayoutTests:

  • fast/text/unicode-range-download-expected.txt: Added.
  • fast/text/unicode-range-download.html: Added.
  • fast/text/resources/unicode-range-download-Ahem.otf: Added.
  • fast/text/resources/unicode-range-download-Ahem.ttf: Added.
  • fast/text/resources/unicode-range-download-Ahem.woff: Added.
  • imported/blink/svg/custom/resources/graffiti.svg: Added.

imported/blink/svg/custom/svg-fonts-unloaded-segment.html requires this font.

5:02 PM Changeset in webkit [200600] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove Global Breakpoints folder
https://bugs.webkit.org/show_bug.cgi?id=157478
<rdar://problem/26176524>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

Remove UI string.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
Remove references to folder tree element.

(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
Top level comparison should check for "special" breakpoints.

5:00 PM Changeset in webkit [200599] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

[WebKit1] Invoking a link preview on a complex link (e.g. an image) results in an empty TextIndicator
https://bugs.webkit.org/show_bug.cgi?id=157497
<rdar://problem/25872773>

Reviewed by Anders Carlsson.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):
r198578 fixed this for WebKit2, but forgot about WebKit1.

4:59 PM Changeset in webkit [200598] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Modern IDB: Prevent the same transaction from being commited/aborted twice.
https://bugs.webkit.org/show_bug.cgi?id=157494

Reviewed by Tim Horton.

When a page navigates or a worker terminates, in rare cases with specific unfortunate timing, the IDBServer
might receive a request to commit/abort a transaction that is already in the process of committing/aborting.

By moving transactions that are finishing into their own map we can at least detect this situation and
return an error. This seems like an improvement over some mysterious ASSERTs/timeouts.

No new tests:
While apparent that this is at least partially to blame for some existing timeouts/ASSERTs, I could not nail
down a reliable way to reproduce this with a dedicated test.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::prepareToFinishTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::hasUnfinishedTransactions):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted): Renamed from inProgressTransactionCompleted.
(WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
4:51 PM Changeset in webkit [200597] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

CallObjectConstructor should not call operationToThis in the FTL
https://bugs.webkit.org/show_bug.cgi?id=157492
<rdar://problem/26149904>

Reviewed by Mark Lam.

At some point when I was working on intrinsifying the Object
constructor, I realized that the Object constructor was different
from the ToObject operation. I fixed the DFG but I guess I didn't
fix the FTL.

This patch fixes an issue with www.wunderground.com not loading
the 10-day forecast and local map.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):

  • tests/stress/call-object-constructor.js: Added.

(test):
(assert):

4:48 PM Changeset in webkit [200596] by timothy_horton@apple.com
  • 3 edits
    2 adds in trunk/Source/WebCore

Draw border and correct icon for placeholder attachments
https://bugs.webkit.org/show_bug.cgi?id=157495
rdar://problem/19982510

Reviewed by Anders Carlsson.

  • Resources/AttachmentPlaceholder.png: Added.
  • Resources/AttachmentPlaceholder@2x.png: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderThemeMac.mm:

(WebCore::attachmentPlaceholderBorderColor):
(WebCore::paintAttachmentIconPlaceholder):
(WebCore::paintAttachmentProgress):
(WebCore::paintAttachmentPlaceholderBorder):
(WebCore::RenderThemeMac::paintAttachment):
If progress is set, but set to 0, draw a dashed border around the attachment
and use the placeholder "download" artwork.

3:50 PM Changeset in webkit [200595] by adachan@apple.com
  • 5 edits in trunk/Source

Introduce WebVideoFullscreenInterfaceMac::isPlayingVideoInEnhancedFullscreen() and use it in WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=157493

Reviewed by Dan Bernstein.

Source/WebCore:

  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(WebCore::WebVideoFullscreenInterfaceMac::isPlayingVideoInEnhancedFullscreen):

Source/WebKit2:

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen):

3:01 PM Changeset in webkit [200594] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Heap Snapshot Timeline view can be live
https://bugs.webkit.org/show_bug.cgi?id=157487
<rdar://problem/26178439>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView.prototype.get showsLiveRecordingData): Deleted.
Don't override, should return true.

2:57 PM Changeset in webkit [200593] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Clean up iOS text autosizing code
https://bugs.webkit.org/show_bug.cgi?id=157489

Reviewed by Zalan Bujtas.

Change the TraverseNextInclusionFunction and HeightTypeTraverseNextInclusionFunction
to take references.

Use downcast<> more.

Whitespace cleanup.

  • rendering/RenderBlockFlow.cpp:

(WebCore::isNonBlocksOrNonFixedHeightListItems):

  • rendering/RenderElement.cpp:

(WebCore::includeNonFixedHeight):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::traverseNext):

  • rendering/RenderObject.h:
  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::adjustNodeSizes):
(WebCore::TextAutoSizingValue::reset):

2:53 PM Changeset in webkit [200592] by adachan@apple.com
  • 7 edits in trunk/Source/WebKit2

Add WKPageRef SPI to tell whether there's a video playing in enhanced fullscreen
https://bugs.webkit.org/show_bug.cgi?id=157434

Reviewed by Darin Adler.

  • UIProcess/API/C/mac/WKPagePrivateMac.h:
  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(WKPageIsPlayingVideoInEnhancedFullscreen):

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

(WebKit::WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen):

  • UIProcess/WebPageProxy.h:
1:41 PM Changeset in webkit [200591] by andersca@apple.com
  • 11 edits
    2 copies
    1 add in trunk/Source

Add injected bundle SPI for getting favicon and touch icon URLs
https://bugs.webkit.org/show_bug.cgi?id=157435

Reviewed by Darin Adler.

Source/WebCore:

  • CMakeLists.txt:

Add new files.

  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::iconType):

  • html/HTMLLinkElement.h:

Rename LinkRelAttribute::IconType to LinkIconType.

  • html/LinkIconCollector.cpp: Added.

(WebCore::iconSize):
New helper function that returns the icon size for an icon.

(WebCore::compareIcons):
Icon comparison function, to be used by for sorting.

(LinkIconCollector::iconsOfTypes):
Gather the right icons, sort them (descending by size) and return them.

  • html/LinkIconCollector.h:

Added.

  • html/LinkIconType.h:

Move icon type declarations here and arrange them so we can use them in an OptionSet.

  • html/LinkRelAttribute.cpp:

(WebCore::LinkRelAttribute::LinkRelAttribute):

  • html/LinkRelAttribute.h:
  • loader/icon/IconController.cpp:

(WebCore::iconFromLinkElements):
Rename IconType to LinkIconType.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(collectIcons):
New helper function that calls into the WebCore LinkCollector.

(-[WKWebProcessPlugInFrame appleTouchIconURLs]):
Call collectIcons.

(-[WKWebProcessPlugInFrame faviconURLs]):
Ditto.

1:22 PM Changeset in webkit [200590] by Simon Fraser
  • 5 edits
    2 moves in trunk

Remove testRunner.setTextAutosizingEnabled and migrate the one test that uses it
https://bugs.webkit.org/show_bug.cgi?id=157480

Reviewed by Zalan Bujtas.

Migrate the one test that used testRunner.setTextAutosizingEnabled() to window.internals.settings.setTextAutosizingEnabled()
and move it next to the other iOS text autosizing tests.
Tools:

Remove testRunner.setTextAutosizingEnabled(), which was only implemented in DumpRenderTree.

  • DumpRenderTree/TestRunner.cpp:

(setTextAutosizingEnabledCallback): Deleted.
(TestRunner::staticFunctions): Deleted.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setTextAutosizingEnabled): Deleted.

LayoutTests:

  • fast/text-autosizing/ios/textarea-auto-sizing-disable-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/fast/html/textarea-auto-sizing-disable-expected.txt.
  • fast/text-autosizing/ios/textarea-auto-sizing-disable.html: Renamed from LayoutTests/platform/ios-simulator/ios/fast/html/textarea-auto-sizing-disable.html.
  • platform/ios-simulator/TestExpectations:
1:22 PM Changeset in webkit [200589] by Simon Fraser
  • 1 edit
    25 adds in trunk/LayoutTests

Upstream some iOS text autosizing tests.

  • fast/text-autosizing/ios/anonymous-block.html: Added.
  • fast/text-autosizing/ios/contenteditable.html: Added.
  • fast/text-autosizing/ios/first-letter.html: Added.
  • fast/text-autosizing/ios/font-family-case-insensitive-expected.txt: Added.
  • fast/text-autosizing/ios/font-family-case-insensitive.html: Added.
  • fast/text-autosizing/ios/lists.html: Added.
  • fast/text-autosizing/ios/overflow.html: Added.
  • fast/text-autosizing/ios/percent-adjust-length-line-height-expected.txt: Added.
  • fast/text-autosizing/ios/percent-adjust-length-line-height.html: Added.
  • fast/text-autosizing/ios/percent-adjust-number-line-height-expected.txt: Added.
  • fast/text-autosizing/ios/percent-adjust-number-line-height.html: Added.
  • fast/text-autosizing/ios/percent-adjust-percent-line-height-expected.txt: Added.
  • fast/text-autosizing/ios/percent-adjust-percent-line-height.html: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/anonymous-block-expected.txt: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/contenteditable-expected.txt: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/first-letter-expected.txt: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/lists-expected.txt: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/overflow-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/anonymous-block-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/contenteditable-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/first-letter-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/lists-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/overflow-expected.txt: Added.
1:22 PM Changeset in webkit [200588] by Simon Fraser
  • 8 edits
    2 adds in trunk

[iOS WK2] Font size increases on some pages after navigating then going back
https://bugs.webkit.org/show_bug.cgi?id=157441
rdar://problem/22873240

Reviewed by Darin Adler.

Source/WebCore:

Sometimes I want to dump ViewportConfigurations from WebKit2 so export dump().

Test: fast/text-autosizing/ios/text-autosizing-after-back.html

  • page/ViewportConfiguration.h:

Source/WebKit2:

There's an ordering dependency between setting the viewport configuration and doing
layouts when going back to a page from the page cache that is incorrectly handled.

In FrameLoader::commitProvisionalLoad(), CachedPage::restore() triggers a layout under
updateContentsSize(), but this happens before dispatchDidCommitLoad() which updates
the viewport arguments via ViewportConfiguration::setViewportArguments().

This issue is not addressed by the current commit. But a second problem is:
if the inputs to text autosizing change, we need to invalidate the autosizing state.
The relevant input here is the fixed layout width (which is determined from the viewport
configuration).

The current code invalidated text autosizing when m_viewportConfiguration.minimumLayoutSize()
changed, but the correct behavior is to invalidate based on fixed layout size changing.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::sendViewportAttributesChanged):
(WebKit::WebPage::setFixedLayoutSize):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetTextAutosizing):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): Deleted.
(WebKit::WebPage::resetTextAutosizingBeforeLayoutIfNeeded): Deleted.

LayoutTests:

  • fast/text-autosizing/ios/text-autosizing-after-back-expected.html: Added.
  • fast/text-autosizing/ios/text-autosizing-after-back.html: Added.
1:18 PM Changeset in webkit [200587] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

"Main content" restrictions should not apply to media documents
https://bugs.webkit.org/show_bug.cgi?id=157479
<rdar://problem/25840861>

Reviewed by Jer Noble.

No new tests, this change only applies to media documents in a top level document so it
isn't possible to have a layout test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Don't apply restrictions to a media document.

1:17 PM Changeset in webkit [200586] by sbarati@apple.com
  • 35 edits
    3 adds in trunk/Source/JavaScriptCore

Getter and setter on super are called with wrong "this" object
https://bugs.webkit.org/show_bug.cgi?id=147064
<rdar://problem/21885916>

Reviewed by Filip Pizlo.

This patch implements calls to 'super' getters and setters.
The problem before is we were passing the 'super' (i.e, the prototype
object) as the this value to these getters/setters, which is wrong.
We should be passing the caller's this value.

To implement this behavior, I've introduced four new opcodes and their corresponding DFG nodes:

  • op_get_by_id_with_this | GetByIdWithThis
  • op_put_by_id_with_this | PutByIdWithThis
  • op_get_by_val_with_this | GetByValWithThis
  • op_put_by_val_with_this | PutByValWithThis

These are implemented with no optimizations. The future plan is
to unite them with the *by_id and *by_val opcodes and nodes:
https://bugs.webkit.org/show_bug.cgi?id=157215

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

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitGetById):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::emitGetByVal):
(JSC::BytecodeGenerator::emitPutByVal):
(JSC::BytecodeGenerator::emitDirectPutByVal):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::ensureThis):
(JSC::BytecodeGenerator::isThisUsedInInnerArrowFunction):

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

(JSC::ThisNode::emitBytecode):
(JSC::emitHomeObjectForCallee):
(JSC::emitSuperBaseForCallee):
(JSC::emitGetSuperFunctionForConstruct):
(JSC::SuperNode::emitBytecode):
(JSC::NewTargetNode::emitBytecode):
(JSC::TaggedTemplateNode::emitBytecode):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::PostfixNode::emitBracket):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitBracket):
(JSC::PrefixNode::emitDot):
(JSC::AssignDotNode::emitBytecode):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::AssignmentElementNode::bindValue):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasIdentifier):

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

(JSC::DFG::newTypedArrayWithSize):
(JSC::DFG::putWithThis):

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::setupShadowChickenPacket):
(JSC::CCallHelpers::setupFourStubArgsGPR):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):
(JSC::CCallHelpers::setupThreeStubArgsGPR):
(JSC::CCallHelpers::setupTwoStubArgsFPR):
(JSC::CCallHelpers::setupStubArguments134):

  • jit/GPRInfo.h:

(JSC::argumentRegisterFor): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_by_val_with_this):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_by_val_with_this):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_put_by_id_with_this):
(JSC::JIT::emitSlow_op_put_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_to_arguments):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_by_val_with_this):
(JSC::JIT::emit_op_put_by_id_with_this):
(JSC::JIT::emit_op_put_by_val_with_this):

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

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • tests/stress/super-property-access-exceptions.js: Added.

(assert):
(test):
(test.fooProp):
(test.A.prototype.get foo):
(test.A.prototype.get x):
(test.A):
(test.B):
(test.B.prototype.bar):
(test.B.prototype.baz):
(test.foo):
(test.func):
(test.A.prototype.set foo):

  • tests/stress/super-property-access-tdz.js: Added.

(assert):
(test):
(shouldThrowTDZ):
(test.A.prototype.get foo):
(test.A.prototype.set foo):
(test.A):
(test.fooProp):
(test.B):
(test.C):
(test.D):
(test.E):
(test.F):

  • tests/stress/super-property-access.js: Added.

(assert):
(test):
(func):
(test.A):
(test.A.prototype.set value):
(test.A.prototype.get value):
(test.B.prototype.set value):
(test.B.prototype.get value):
(test.B):
(test.value):
(test.A.prototype.get func):
(test.B.prototype.inc):
(test.B.prototype.dec):
(test.B.prototype.preInc):
(test.B.prototype.preDec):
(test.B.prototype.plusEq):
(test.B.prototype.minusEq):
(test.B.prototype.timesEq):
(test.B.prototype.divEq):
(test.B.prototype.funcDot):
(test.B.prototype.funcBracket):
(test.foo):
(test.B.prototype.baz):
(test.B.prototype.jaz):
(test.B.prototype.bar):
(test.B.prototype.index):
(test.):
(test.prototype.bar):
(test.A.prototype.set foo):
(test.A.prototype.get array):
(test.A.prototype.get foo):
(test.obj):
(test.A.prototype.get call):
(test.A.prototype.get apply):
(test.B.prototype.foo):
(test.A.prototype.get i):

1:10 PM Changeset in webkit [200585] by Ryan Haddad
  • 4 edits in trunk/LayoutTests

Rebaseline failing LayoutTests after r200580

Unreviewed test gardening.

  • fast/xmlhttprequest/xmlhttprequest-get-expected.txt:
  • http/tests/workers/worker-importScriptsOnError-expected.txt:
  • inspector/model/remote-object-get-properties-expected.txt:
1:07 PM Changeset in webkit [200584] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Update Picture-in-picture artwork
https://bugs.webkit.org/show_bug.cgi?id=157484
<rdar://problem/26177784>

Reviewed by Eric Carlson.

We have new artwork for the picture-in-picture presentation mode. I
also converted it to use SVG (and moved the button style to a
more consistent part of the file).

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-panel .picture-in-picture-button):
(video::-webkit-media-controls-panel .picture-in-picture-button.return-from-picture-in-picture):
(video::-webkit-media-controls-panel .picture-in-picture-button:active):
(video::-webkit-media-controls-panel .picture-in-picture-button.return-from-picture-in-picture:active):

12:46 PM Changeset in webkit [200583] by Chris Dumez
  • 36 edits in trunk

Optimize [StrictTypeChecking] on IDL operations
https://bugs.webkit.org/show_bug.cgi?id=157467

Reviewed by Darin Adler.

Source/WebCore:

Optimize [StrictTypeChecking] on IDL operations so that:

  • Only generate extra code for nullable parameters because for non-nullable parameters, JSXXX::toWrapped() will return null in case of a bad input type. We will then throw a TypeError when null-checking it already.
  • After the JSValue::isNullOrUndefined() check, avoid calling JSXXX::toWrapped() and set nativeValue to nullptr directly.
  • Drop the check for JSValue::inherits(JSXXX::info()) and just do a null check on the value returned by JSXXX::toWrapped(). toWrapped() already does a JSValue::inherits(JSXXX::info() check. Since we only call toWrapped() if the JSValue is not null/undefined, a null return value always indicates a bad input type.

Also update the TypeError message to be more useful when passing null
for non-nullable parameters or assigning null to a non-nullable
attribute. The message is now consistent with the one used for strict
type checking.

No new tests, rebaselined existing tests.

  • bindings/js/JSDOMBinding.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateParametersCheck):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjLenientTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameter):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):

  • bindings/scripts/test/TestObj.idl:

LayoutTests:

Rebaseline existing tests now that we provide a more useful exception
message when passing null for a non-nullable parameter and assigning
null to a non-nullable attribute.

  • editing/selection/extend-expected.txt:
  • fast/dom/Document/adoptNode-null-expected.txt:
  • fast/dom/Document/adoptNode-null.html:
  • fast/dom/Document/importNode-null-expected.txt:
  • fast/dom/Document/importNode-null.html:
  • fast/dom/Element/attr-param-typechecking-expected.txt:
  • fast/dom/MutationObserver/observe-exceptions-expected.txt:
  • fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
  • fast/dom/Range/range-intersectsNode-expected.txt:
  • fast/dom/createNodeIterator-parameters-expected.txt:
  • fast/dom/createNodeIterator-parameters.html:
  • fast/dom/createTreeWalker-parameters-expected.txt:
  • fast/dom/createTreeWalker-parameters.html:
  • fast/dom/xmlserializer-serialize-to-string-exception-expected.txt:
  • fast/dynamic/insertAdjacentElement-expected.txt:
  • fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt:
  • fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
  • media/encrypted-media/encrypted-media-v2-syntax.html:
  • webaudio/createMediaStreamSource-null-expected.txt:
  • webaudio/createMediaStreamSource-null.html:
  • webaudio/decode-audio-data-basic-expected.txt:
  • webaudio/decode-audio-data-basic.html:
  • webaudio/mediaelementaudiosourcenode-expected.txt:
  • webaudio/mediaelementaudiosourcenode.html:
11:05 AM Changeset in webkit [200582] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Download progress on attachment elements sometimes exceeds element bounds
https://bugs.webkit.org/show_bug.cgi?id=157440
<rdar://problem/25245440>

Reviewed by Darin Adler.

In the case of very large dynamic type sizes, we can overflow the
bounds of the attachment. It turns out that we used to limit to one
line in many cases anyway, so only wrap if we have only a title and/or icon.
This looks better when you have many of the other elements even in
non-large-type modes.

  • rendering/RenderThemeIOS.mm:

(WebCore::AttachmentInfo::buildTitleLines):
(WebCore::AttachmentInfo::AttachmentInfo):
Limit the title to a single line if we have anything
other than a title and icon.

(WebCore::attachmentBorderPath):
(WebCore::paintAttachmentBorder):
(WebCore::RenderThemeIOS::paintAttachment):
Clip to the border, so that even if somehow we paint outside of
the bounds, we don't paint over other parts of the page.

10:48 AM Changeset in webkit [200581] by rniwa@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Focusing a shadow host places the slot content after the shadow DOM content
https://bugs.webkit.org/show_bug.cgi?id=154770
<rdar://problem/24873102>

Reviewed by Antti Koivisto.

Add a regression test now that the bug has been fixed.

  • fast/shadow-dom/shadow-layout-after-focus-expected.html: Added.
  • fast/shadow-dom/shadow-layout-after-focus.html: Added.
10:47 AM Changeset in webkit [200580] by rniwa@webkit.org
  • 8 edits in trunk

REGRESSION (198056): Unable to use edit buttons on WordPress
https://bugs.webkit.org/show_bug.cgi?id=157475

Reviewed by Antti Koivisto.

Source/WebCore:

Renamed Event.prototype.deepPath() to composedPath() per discussions on
https://github.com/whatwg/dom/issues/242 as the old name was not Web compatible.

Test: fast/shadow-dom/Extensions-to-Event-Interface.html

  • dom/Event.cpp:

(WebCore::Event::composedPath): Renamed from deepPath.

  • dom/Event.h:
  • dom/Event.idl:

LayoutTests:

Updated the tests.

  • fast/shadow-dom/Extensions-to-Event-Interface-expected.txt:
  • fast/shadow-dom/Extensions-to-Event-Interface.html:
  • fast/shadow-dom/resources/event-path-test-helpers.js:

(dispatchEventWithLog):

10:32 AM Changeset in webkit [200579] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Removing timeout and adding failure expectation for storage/indexeddb/intversion-open-in-upgradeneeded.html
https://bugs.webkit.org/show_bug.cgi?id=155050

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:54 AM Changeset in webkit [200578] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Don't use DiskCache for media resource loads
https://bugs.webkit.org/show_bug.cgi?id=157405

Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-09
Reviewed by Darin Adler.

Source/WebCore:

http/tests/security/video-cross-origin-caching.html was loading from the disk cache.
This patch adds an assertion that fires in that test without this fix.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • platform/graphics/PlatformMediaResourceLoader.h:
  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::hiddenFromInspector):
(WebCore::ResourceRequestBase::setHiddenFromInspector):
(WebCore::ResourceRequestBase::requester):
(WebCore::ResourceRequestBase::setRequester):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask _restart]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):

Source/WebKit2:

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeRetrieveDecision):
(WebKit::NetworkCache::makeStoreDecision):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::retrieveDecisionToDiagnosticKey):

9:28 AM Changeset in webkit [200577] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/win

[wincairo] web inspector failed to launch in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=156184
<rdar://problem/25539297>

Patch by Fujii Hironori <Fujii Hironori> on 2016-05-09
Reviewed by Alex Christensen.

  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorClient::openLocalFrontend): Enable
AllowFileAccessFromFileURLs and AllowUniversalAccessFromFileURLs
of WebPreferences for Web Inspector.

9:20 AM Changeset in webkit [200576] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Refactor FocusController::findFocusableElementRecursively
https://bugs.webkit.org/show_bug.cgi?id=157415

Reviewed by Darin Adler.

Refactor FocusController::findFocusableElementRecursively and related functions. Extracted two functions:
nextFocusableElementWithinScope and previousFocusableElementWithinScope out of it since they didn't really share
any code other than calling findFocusableElement at the beginning.

Also renamed internal variant of nextFocusableElement and previousFocusableElement to nextFocusableElementOrScopeOwner
and previousFocusableElementOrScopeOwner. It was confusing to have these internal functions in addition to public
member functions that are used in Objective-C DOM API.

No new tests are added since there should be no behavioral change.

  • page/FocusController.cpp:

(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument): Added a FIXME.
(WebCore::FocusController::advanceFocusInDocumentOrder): Use findFocusableElementAcrossFocusScope instead of manually
calling findFocusableElementRecursively and findFocusableElementDescendingDownIntoFrameDocument separately.
(WebCore::FocusController::findFocusableElementAcrossFocusScope): Now that findFocusableElementWithinScope calls
findFocusableElementDescendingDownIntoFrameDocument internally, there is no need to keep around "found" local variable.
Introduce a few early exists for a better clarity.
(WebCore::FocusController::findFocusableElementWithinScope): Renamed from findFocusableElementRecursively. Also call
findFocusableElementDescendingDownIntoFrameDocument here instead of findFocusableElementAcrossFocusScope.
(WebCore::FocusController::nextFocusableElementWithinScope): Extracted from findFocusableElementRecursively.
(WebCore::FocusController::previousFocusableElementWithinScope): Ditto.
(WebCore::FocusController::findFocusableElement):
(WebCore::FocusController::nextFocusableElement): Added a FIXME.
(WebCore::FocusController::previousFocusableElement): Ditto.
(WebCore::FocusController::findFocusableElementOrScopeOwner): Renamed from findFocusableElement for clarity.
(WebCore::FocusController::nextFocusableElementOrScopeOwner): Ditto from nextFocusableElement.
(WebCore::FocusController::previousFocusableElementOrScopeOwner): Ditto from nextFocusableElement.

  • page/FocusController.h:
9:09 AM Changeset in webkit [200575] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebInspectorUI

[css-grid] Update Grid Layout properties in CSSKeywordCompletions.js
https://bugs.webkit.org/show_bug.cgi?id=157166

Reviewed by Timothy Hatcher.

The CSS Grid Layout properties have been changing on the spec,
however they haven't been updated in CSSKeywordCompletions for a long time.
Update them using the last spec draft:
https://drafts.csswg.org/css-grid/#property-index

  • UserInterface/Models/CSSKeywordCompletions.js:
8:16 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
7:59 AM Changeset in webkit [200574] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Cleanup issue tree elements in the Debugger sidebar
https://bugs.webkit.org/show_bug.cgi?id=157469
<rdar://problem/26162999>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
Don't add duplicate issue tree elements.
(WebInspector.DebuggerSidebarPanel.prototype._handleIssuesCleared):
Remove issues from the correct tree outline.

  • UserInterface/Views/IssueTreeElement.css:

(.issue .icon):
(.issue.warning .icon):
(.issue.error .icon):
Match dashboard icons.

7:52 AM Changeset in webkit [200573] by Matt Baker
  • 12 edits
    1 copy in trunk/Source/WebInspectorUI

Web Inspector: Show in progress message in Timeline views that do not show data until the recording finishes
https://bugs.webkit.org/show_bug.cgi?id=156761
<rdar://problem/25970771>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

New UI strings.

  • UserInterface/Main.html:

New view class.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView.prototype.get showsLiveRecordingData):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.get showsLiveRecordingData):

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView.prototype.get showsLiveRecordingData):

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView.prototype.get showsLiveRecordingData):
Don't show live recording data.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.get showsLiveRecordingData):
Forward property to current child TimelineView.

  • UserInterface/Views/TimelineRecordingContentView.css:

(.content-view.timeline-recording > .content-browser .recording-progress):
(.content-view.timeline-recording > .content-browser .recording-progress > .status):
(.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner):
New progress view styles.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
Refresh progress view visibility.

(WebInspector.TimelineRecordingContentView.prototype._updateProgressView):
Show the progress view if we're currently capturing, and showing a view
that doesn't support showing live data.

  • UserInterface/Views/TimelineRecordingProgressView.js:

(WebInspector.TimelineRecordingProgressView):
(WebInspector.TimelineRecordingProgressView.prototype.get visible):
(WebInspector.TimelineRecordingProgressView.prototype.set visible):
Show a status message, indeterminate progress spinner, and Stop Recording
button while timeline data is being recorded.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.get showsLiveRecordingData):
Implemented by TimelineViews that don't support showing data while recording.

  • UserInterface/Views/Variables.css:

(:root):
Add --panel-background-color-light for the progress view.

3:17 AM Changeset in webkit [200572] by Manuel Rego Casasnovas
  • 11 edits in trunk

[css-grid] Fix static position for positioned grid items
https://bugs.webkit.org/show_bug.cgi?id=157417

Reviewed by Darin Adler.

Source/WebCore:

The spec was updated to define properly the static position
for positioned grid items, but we didn't update the implementation yet:
https://drafts.csswg.org/css-grid-1/issues-wd-20150108#issue-1

We were only setting the static position when the start line
was not auto. Otherwise we were using the default one
which includes the padding.
With the spec change we need to set it always,
even if the start line is auto.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutPositionedObject):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

LayoutTests:

Updated several tests to follow the new expected behavior.

  • fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html:
  • fast/css-grid-layout/absolute-positioning-grid-container-parent.html:
  • fast/css-grid-layout/grid-positioned-items-gaps-rtl.html:
  • fast/css-grid-layout/grid-positioned-items-gaps.html:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid-line.html:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid.html:
  • fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line.html:
  • fast/css-grid-layout/grid-sizing-positioned-items.html:
1:55 AM Changeset in webkit [200571] by Gyuyoung Kim
  • 3 edits in trunk/LayoutTests

Fix wrong gardening in r200570

Unreviewed EFL gardening.

  • TestExpectations: Move selection gap tests to EFL's one.
  • platform/efl/TestExpectations:
1:51 AM Changeset in webkit [200570] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Skip tests of selection gap because EFL port disabled to paint the selection gap

Unreviewed EFL gardening.

Note: See TracTimeline for information about the timeline view.