Timeline
Jun 4, 2016:
- 8:46 PM Changeset in webkit [201693] by
-
- 9 edits in trunk/Source/WebCore
Modern IDB: Crash seen in IDBConnectionProxy::putOrAdd on GuardMalloc bot
https://bugs.webkit.org/show_bug.cgi?id=158124
Reviewed by Darin Adler.
No new tests (Covered by existing test configurations).
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::putOrAdd):
- Modules/indexeddb/client/IDBConnectionProxy.h:
(WebCore::IDBClient::IDBConnectionProxy::callConnectionOnMainThread):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
- bindings/js/SerializedScriptValue.h:
- platform/network/BlobRegistry.h:
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):
- platform/network/BlobRegistryImpl.h:
- 5:59 PM Changeset in webkit [201692] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: add a keyboard shortcut to open the new tab tab
https://bugs.webkit.org/show_bug.cgi?id=158365
<rdar://problem/26631897>
Reviewed by Timothy Hatcher.
Make Cmd-t show the new tab tab if it's not already open and
there is at least one tab type that's not currently in the tab bar.
- UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._updateNewTabButtonState):
(WebInspector.showNewTabTab):
(WebInspector.isNewTabWithTypeAllowed):
Clean up the code that decides whether we can show the new tab tab.
It is now a special case inside WebInspector.isNewTabWithTypeAllowed.
- UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView.prototype._updateShownTabs):
Use Array.from.
- 5:36 PM Changeset in webkit [201691] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r201474): Should set overflow: hidden on -webkit-media-controls when placeholder is showing
https://bugs.webkit.org/show_bug.cgi?id=158377
Reviewed by Darin Adler.
In r201474, we defer removing the hidden class from inlinePlaybackPlaceholder until
showInlinePlaybackPlaceholderWhenSafe(). We also need to move the code that adds the
placeholder-showing class to -webkit-media-controls to that method.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.showInlinePlaybackPlaceholderWhenSafe):
Add the "placeholder-showing" class to -webkit-media-controls when we show the placeholder.
(Controller.prototype.handlePresentationModeChange):
Remove the "placeholder-showing" class from -webkit-media-controls when we hide the
placeholder. Remove the old code that adds and removes that class.
- 4:02 PM Changeset in webkit [201690] by
-
- 3 edits in trunk/Source/WebCore
leaks seen in fast/css/variables tests
https://bugs.webkit.org/show_bug.cgi?id=150728
Reviewed by Anders Carlsson.
Fixes leaks seen running fast/css/variables tests with leak checking turned on.
- css/CSSPrimitiveValue.cpp:
(WebCore::isStringType): Added. For debugging purposes so we catch cases where we
are not treating strings consistently between construction and destruction.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Assert isStringType returns true.
(WebCore::CSSPrimitiveValue::cleanup): Added CSS_DIMENSION and CSS_PARSER_IDENTIFIER
to the list of types that have to decrement the reference count of the string we own.
Both types are passed to the string constructor above.
- css/CSSValueList.cpp:
(WebCore::CSSValueList::buildParserValueListSubstitutingVariables): Restructured the
code so we destroy any CSSParserValue that we don't use. This is needed because of the
peculiar requirements of CSSParserValue: it has a be a struct without a destructor so
it can be used in the CSS grammar, so we have to destroy it explicitly. Ideally we would
minimize any use of it outside the CSSParser itself, but as long as we are using it, we
need to do this explicit destruction.
- 3:48 PM Changeset in webkit [201689] by
-
- 15 edits4 deletes in trunk/Source/WebKit
Remove NPSPI that is no longer used
https://bugs.webkit.org/show_bug.cgi?id=158384
Reviewed by Sam Weinig.
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj:
Source/WebKit/mac:
- Configurations/WebKitLegacy.xcconfig:
- Plugins/Hosted/NetscapePluginHostProxy.mm:
(WKPCCheckIfAllowedToLoadURL): Deleted.
(WKPCCancelCheckIfAllowedToLoadURL): Deleted.
(WKPCResolveURL): Deleted.
- Plugins/Hosted/NetscapePluginInstanceProxy.h:
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy): Deleted.
(WebKit::NetscapePluginInstanceProxy::checkIfAllowedToLoadURL): Deleted.
(WebKit::NetscapePluginInstanceProxy::cancelCheckIfAllowedToLoadURL): Deleted.
(WebKit::NetscapePluginInstanceProxy::checkIfAllowedToLoadURLResult): Deleted.
(WebKit::NetscapePluginInstanceProxy::resolveURL): Deleted.
- Plugins/Hosted/WebHostedNetscapePluginView.h:
- Plugins/Hosted/WebHostedNetscapePluginView.mm:
(-[WebHostedNetscapePluginView _webPluginContainerCancelCheckIfAllowedToLoadRequest:]): Deleted.
(-[WebHostedNetscapePluginView _containerCheckResult:contextInfo:]): Deleted.
- Plugins/Hosted/WebKitPluginClient.defs:
- Plugins/WebBaseNetscapePluginView.h:
- Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView resolvedURLStringForURL:target:]): Deleted.
- Plugins/WebNetscapeContainerCheckContextInfo.h: Removed.
- Plugins/WebNetscapeContainerCheckContextInfo.mm: Removed.
(-[WebNetscapeContainerCheckContextInfo initWithCheckRequestID:callbackFunc:context:]): Deleted.
(-[WebNetscapeContainerCheckContextInfo checkRequestID]): Deleted.
(-[WebNetscapeContainerCheckContextInfo callback]): Deleted.
(-[WebNetscapeContainerCheckContextInfo context]): Deleted.
- Plugins/WebNetscapeContainerCheckPrivate.h: Removed.
- Plugins/WebNetscapeContainerCheckPrivate.mm: Removed.
(browserContainerCheckFuncs): Deleted.
- Plugins/WebNetscapePluginView.h:
- Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView checkIfAllowedToLoadURL:frame:callbackFunc:context:]): Deleted.
(-[WebNetscapePluginView _containerCheckResult:contextInfo:]): Deleted.
(-[WebNetscapePluginView cancelCheckIfAllowedToLoadURL:]): Deleted.
(-[WebNetscapePluginView _webPluginContainerCancelCheckIfAllowedToLoadRequest:]): Deleted.
(-[WebNetscapePluginView fini]): Deleted.
(-[WebNetscapePluginView getVariable:value:]): Deleted.
(-[WebNetscapePluginView resolveURL:forTarget:]): Deleted.
- Plugins/npapi.mm:
(WKN_CheckIfAllowedToLoadURL): Deleted.
(WKN_CancelCheckIfAllowedToLoadURL): Deleted.
(WKN_ResolveURL): Deleted.
- 3:34 PM Changeset in webkit [201688] by
-
- 3 edits in trunk/Source/WebKit/mac
Temporary build fix. (This function is going away).
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::checkIfAllowedToLoadURLResult): Deleted.
- Plugins/Hosted/WebKitPluginHost.defs:
- 2:28 PM Changeset in webkit [201687] by
-
- 2 edits in trunk/Source/WebCore
32-bit build fix
https://bugs.webkit.org/show_bug.cgi?id=158383
rdar://problem/26628125
Reviewed by Dan Bernstein.
Synthesize the webPlaybackSessionInterfaceMac property.
- platform/mac/WebPlaybackControlsManager.mm:
- 2:09 PM Changeset in webkit [201686] by
-
- 8 edits in trunk/Source/WebInspectorUI
Web Inspector: discontinuous recordings should have discontinuities in the timeline memory graph
https://bugs.webkit.org/show_bug.cgi?id=158052
<rdar://problem/26516695>
Reviewed by Joseph Pecoraro.
Add gaps to the overview and category line charts where discontinuities
exist in the timeline recording.
- UserInterface/Models/Timeline.js:
(WebInspector.Timeline.prototype.recordsInTimeRange):
Replaces_visibleRecords
methods found in various views.
- UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.reset):
(WebInspector.TimelineRecording.prototype.addDiscontinuity):
(WebInspector.TimelineRecording.prototype.discontinuitiesInTimeRange):
Allow discontinuities to be added to the recording, and have a means to
look up gaps within a time range.
- UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._visibleRecords): Deleted.
Replaced by Timeline helper method.
- UserInterface/Views/MemoryTimelineOverviewGraph.js:
(WebInspector.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):
(WebInspector.MemoryTimelineOverviewGraph.prototype.layout):
Insert zero-points into the chart at discontinuity boundaries to create
gaps. Data points for records immediately before or after a gap are extended
to the edge of the discontinuity.
(WebInspector.MemoryTimelineOverviewGraph.prototype._visibleRecords): Deleted.
Replaced by Timeline helper method.
- UserInterface/Views/MemoryTimelineView.js:
(WebInspector.MemoryTimelineView.prototype.layout):
Insert zero-points into each category chart at discontinuity boundaries
to create gaps.
Insert zero-points into the chart to create gaps.
(WebInspector.MemoryTimelineView.prototype._visibleRecords): Deleted.
Replaced by Timeline helper method.
- UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.discontinuitiesInTimeRange):
Forward to the TimelineRecording, which isn't exposed to clients.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
Track discontinuities (recording stop followed by a start) and add them
to the current recording.
- 1:59 PM Changeset in webkit [201685] by
-
- 3 edits2 copies4 adds in trunk/LayoutTests
Modern IDB: Add -private.html variants of crypto/subtle IndexedDB tests.
https://bugs.webkit.org/show_bug.cgi?id=153323
Reviewed by Darin Adler.
- crypto/subtle/resources/rsa-indexeddb-non-exportable.js: Copied from LayoutTests/crypto/subtle/rsa-indexeddb-non-exportable.html.
- crypto/subtle/resources/rsa-indexeddb.js: Copied from LayoutTests/crypto/subtle/rsa-indexeddb.html.
- crypto/subtle/rsa-indexeddb-non-exportable-private-expected.txt: Added.
- crypto/subtle/rsa-indexeddb-non-exportable-private.html: Added.
- crypto/subtle/rsa-indexeddb-non-exportable.html:
- crypto/subtle/rsa-indexeddb-private-expected.txt: Added.
- crypto/subtle/rsa-indexeddb-private.html: Added.
- crypto/subtle/rsa-indexeddb.html:
- 1:53 PM Changeset in webkit [201684] by
-
- 4 edits2 deletes in trunk/Source/WTF
Get rid of WorkItemWin
https://bugs.webkit.org/show_bug.cgi?id=158381
Reviewed by Sam Weinig.
- wtf/PlatformWin.cmake:
- wtf/WorkQueue.h:
- wtf/win/WorkItemWin.cpp: Removed.
(WTF::WorkItemWin::WorkItemWin): Deleted.
(WTF::WorkItemWin::create): Deleted.
(WTF::WorkItemWin::~WorkItemWin): Deleted.
- wtf/win/WorkItemWin.h: Removed.
(WTF::WorkItemWin::function): Deleted.
(WTF::WorkItemWin::queue): Deleted.
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::performWorkOnRegisteredWorkThread):
(WTF::WorkQueue::dispatch):
- 12:26 PM Changeset in webkit [201683] by
-
- 5 edits in trunk/Source/WTF
Get rid of HANDLE registration code in WorkQueueWin
https://bugs.webkit.org/show_bug.cgi?id=158375
Reviewed by Darin Adler.
- wtf/WorkQueue.h:
- wtf/win/WorkItemWin.cpp:
(WTF::HandleWorkItem::HandleWorkItem): Deleted.
(WTF::HandleWorkItem::createByAdoptingHandle): Deleted.
(WTF::HandleWorkItem::~HandleWorkItem): Deleted.
- wtf/win/WorkItemWin.h:
(WTF::HandleWorkItem::setWaitHandle): Deleted.
(WTF::HandleWorkItem::waitHandle): Deleted.
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::handleCallback): Deleted.
(WTF::WorkQueue::platformInvalidate): Deleted.
(WTF::WorkQueue::unregisterWaitAndDestroyItemSoon): Deleted.
(WTF::WorkQueue::unregisterWaitAndDestroyItemCallback): Deleted.
- 12:11 PM Changeset in webkit [201682] by
-
- 5 edits in trunk
REGRESSION (r201263): Some tests have become flaky timeouts.
https://bugs.webkit.org/show_bug.cgi?id=157990
Reviewed by Darin Adler.
Tools:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
It is somewhat legitimate for WebContent to not respond to messages after the test
is done; it can be e.g. re-doing a costly repaint. So, we should restart is silently,
without making the current test fail.
LayoutTests:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 12:10 PM Changeset in webkit [201681] by
-
- 3 edits in trunk/Source/WebCore
Avoid redundant isUndefined() check for parameters that are both optional and nullable in overloads
https://bugs.webkit.org/show_bug.cgi?id=158380
Reviewed by Brady Eidson.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
- 11:58 AM Changeset in webkit [201680] by
-
- 3 edits6 adds in trunk
Add better basic isNaN test coverage
https://bugs.webkit.org/show_bug.cgi?id=158379
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-04
Reviewed by Benjamin Poulain.
- js/Number-isNaN-expected.txt: Added.
- js/Number-isNaN.html: Added.
- js/global-isNaN-expected.txt: Added.
- js/global-isNaN.html: Added.
- js/script-tests/Number-isNaN.js: Added.
(objectWithNumberValueOf.valueOf):
(objectWithNaNValueOf.valueOf):
(objectRecordConversionCalls.toString):
(objectRecordConversionCalls.valueOf):
- js/script-tests/global-isNaN.js: Added.
(objectConvertToString.toString):
(objectRecordToStringCall.toString):
(objectThrowOnToString.toString):
(objectWithValueOf.valueOf):
(objectThrowOnValueOf.valueOf):
(objectThrowOnValueOf.toString):
(objectRecordValueOfCall.valueOf):
(objectRecordConversionCalls.toString):
(objectRecordConversionCalls.valueOf):
- js/script-tests/math-clz32.js:
- 12:20 AM Changeset in webkit [201679] by
-
- 22 edits64 adds in trunk
CSP: Content Security Policy directive, upgrade-insecure-requests (UIR)
https://bugs.webkit.org/show_bug.cgi?id=143653
<rdar://problem/23032067>
Reviewed by Andy Estes.
Source/WebCore:
Modify our loading logic so that we recognize and upgrade insecure requests to secure
requests if the Content Security Policy directive 'upgrade-insecure-requests' is
present.
Add a static helper function to ContentSecurityPolicy to upgrade insecure URLs so
that we don't have to sprinkle the same code all over the loader system.
Tests: http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-simple-ws.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content.html
http/tests/ssl/iframe-upgrade.https.html
http/tests/ssl/upgrade-origin-usage.html
http/tests/websocket/tests/hybi/upgrade-simple-ws.html
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect): Upgrade insecure requests if the CSP
indicates we should.
- dom/Document.cpp:
(WebCore::Document::initSecurityContext): Populate new document CSP with sets of upgrade host and port combinations.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript): Upgrade insecure requests if
the CSP indicates we should.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource): Ditto.
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin): Ditto.
- loader/FormSubmission.cpp:
(WebCore::FormSubmission::create): Ditto.
(WebCore::FormSubmission::populateFrameLoadRequest): Add "Upgrade-Insecure-Requests"
header to frame load requests.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToMainResourceRequest): Add the
'Update-Insecure-Requests' header field if necessary.
(WebCore::FrameLoader::addHTTPUpgradeInsecureRequestsIfNeeded): Added helper function.
(WebCore::FrameLoader::loadPostRequest): Upgrade insecure requests if the CSP
indicates we should.
(WebCore::FrameLoader::loadResourceSynchronously): Ditto.
(WebCore::FrameLoader::loadDifferentDocumentItem): If loading a form, add the
'Update-Insecure-Requests' header field if necessary.
(WebCore::createWindow): Upgrade insecure requests if the CSP
indicates we should.
- loader/FrameLoader.h:
- loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage): Upgrade insecure requests if the CSP
indicates we should.
(WebCore::PingLoader::sendPing): Ditto.
(WebCore::PingLoader::sendViolationReport): Ditto.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestInternal): Ditto.
- loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestFrame): Ditto.
(WebCore::SubframeLoader::requestObject): Ditto.
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache): Ditto.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage): Ditto.
(WebCore::CachedResourceLoader::requestResource): Ditto.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow): Add the 'Update-Insecure-Requests' header
field if necessary.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::copyStateFrom): Populate upgraded resource set
from other context.
(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded): Added helper function
to upgrade requests when the upgrade-insecure-requests CSP policy is present, or if
the host and port combination have previously been upgraded.
(WebCore::ContentSecurityPolicy::upgradeInsecureNavigationRequestIfNeeded): Added
helper function to upgrade requests that have been previously upgraded. Cross-site
navigations only get upgraded when they have been previously upgraded.
(WebCore::ContentSecurityPolicy::addInsecureNavigationRequestsToUpgrade): Added.
(WebCore::ContentSecurityPolicy::populateInsecureNavigationRequestsToUpgradeFromOther): Added.
- page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::setUpgradeInsecureRequests): Added.
(WebCore::ContentSecurityPolicy::upgradeInsecureRequests): Added.
- page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::ContentSecurityPolicyDirectiveList): Use
more C++11 initializations.
(WebCore::ContentSecurityPolicyDirectiveList::setUpgradeInsecureRequests): Added.
(WebCore::ContentSecurityPolicyDirectiveList::addDirective): Teach this function to
recognize the new directive.
- page/csp/ContentSecurityPolicyDirectiveList.h:
- page/csp/ContentSecurityPolicyDirectiveNames.cpp:
- page/csp/ContentSecurityPolicyDirectiveNames.h:
- platform/network/HTTPHeaderNames.in: Add new 'Upgrade-Insecure-Requests' header field.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open): Upgrade insecure requests if the CSP if needed.
LayoutTests:
Some of these tests are based on a set of Blink patches by Mike West <mkwst@chromium.org>.
<https://src.chromium.org/viewvc/blink?revision=192607&view=revision>,
<https://codereview.chromium.org/1178093002>, <https://codereview.chromium.org/1964303003>
The rest of them are based on our own mixedContent tests, revised for upgraded requests.
Note that WebSockets are not part of this testing at present due to https://bugs.webkit.org/show_bug.cgi?id=157884.
- http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/basic-upgrade-cors.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/check-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/echo-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-audio-video.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-css.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-image.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-http-to-https-script.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-https-to-http-script.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-xhr-in-main-frame-window.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/mixed-content-with-upgrade.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/post-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content.html: Added.
- http/tests/security/resources/post-origin-to-parent.html: Added.
- http/tests/ssl/iframe-upgrade.https-expected.txt: Added.
- http/tests/ssl/iframe-upgrade.https.html: Added.
- http/tests/ssl/upgrade-origin-usage-expected.txt: Added.
- http/tests/ssl/upgrade-origin-usage.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-1.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-1.manifest: Added.
- http/tests/ssl/resources/origin-usage-iframe-2.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-2.manifest: Added.
- http/tests/websocket/tests/hybi/upgrade-simple-ws-expected.txt: Added.
- http/tests/websocket/tests/hybi/upgrade-simple-ws.html: Added.
- TestExpectations: Skip http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-simple-ws.html since the
WebSocket server does not currently support wss sockets.
Jun 3, 2016:
- 8:28 PM Changeset in webkit [201678] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
Eager FTL failure for strict comparison of NaN with number check
https://bugs.webkit.org/show_bug.cgi?id=158368
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-03
Reviewed by Darin Adler.
DoupleRep with a RealNumberUse starts by handling double
then falls back to Int32 if the unboxed double is NaN.
Before handling integers, the code is checking if the input
is indeed an int32. The problem was that this check failed
to account for NaN as an original input of the DoubleRep.
The call to isNotInt32() filter the doubles checks because
that was handled by the previous block.
The problem is the previous block handles any double except NaN.
If the original input was NaN, the masking by "~SpecFullDouble"
filter that possibility and isNotInt32() fails to test that case.
This patch fixes the issue by changing the filter to SpecDoubleReal.
The type SpecDoubleReal does not include the NaN types.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep):
- tests/stress/double-rep-real-number-use-on-nan.js: Added.
To ensure the isNotInt32() does not test anything, we want
proven numbers as input. The (+value) are there to enforce
a ToNumber() which in turn give us a proven Number type.
- 7:04 PM Changeset in webkit [201677] by
-
- 5 edits2 adds in trunk
Bopomofo ruby in Dictionary.app is written horizontally (when it should be written vertically)
https://bugs.webkit.org/show_bug.cgi?id=158245
<rdar://problem/25675318>
Reviewed by Darin Adler.
Source/WebCore:
With orthogonal flows, the inner element gets a logical width that is computed from two values:
- The containing block's available logical height
- The FrameView's visibleHeight
In Dictionary.app, the FrameView's height changes, but this element doesn't get relaid out.
This is because of our optimization where normal-flow elements don't get relaid out if their
parent's width doesn't change (which is the case here).
Therefore, this orthogonal writing mode element should be relaid out when the FrameView changes
size. Luckily, we already have machinery for doing this: percentage heights. In quirks mode, a
div with a percentage height may walk arbitrarily far up the DOM tree in order to determine which
element the percentage should be resolved against. Therefore, we have a map of percentage-sizing-
ancestors to percentage-sizing-descendants which speeds up this search. If a percentage-sizing-
ancestor gets relaid out, all the relevant percentage-sizing-descendants get relaid out too.
Therefore, we can simply mark the FrameView as a percentage-sizing-ancestor and the orthogonal
flow element as a percentage-sizing-descendant. The lifetime of this relationship is already
managed correctly - it gets reset when style changes and when the renderer is destroyed, and
is created during layout.
Unfortunately, this same treatment should also be done to the element which dictates the
containing block's logical height (which caused https://bugs.webkit.org/show_bug.cgi?id=158286).
Implementing this would require giving RenderBox::availableLogicalHeight() a second result
of the necessary element which dictates the return. In an effort to keep this patch small and
focused, I'll do this secondary (much larger) work in a patch on that bug. This patch,
therefore, is kept small and focused.
Test: fast/text/orthogonal-writing-mode-containing-block-frameView-resize-relayout.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
LayoutTests:
Rebaselined fast/table/border-collapsing/004-vertical.html to show a progression.
- fast/text/orthogonal-writing-mode-containing-block-frameView-resize-relayout-expected.html: Added.
- fast/text/orthogonal-writing-mode-containing-block-frameView-resize-relayout.html: Added.
- platform/mac/fast/table/border-collapsing/004-vertical-expected.png: Rebased
- platform/mac/fast/table/border-collapsing/004-vertical-expected.txt: Rebased
- 7:00 PM Changeset in webkit [201676] by
-
- 11 edits4 adds in trunk
Text not visible while external font downloading
https://bugs.webkit.org/show_bug.cgi?id=25207
<rdar://problem/15167413>
Reviewed by Dean Jackson.
Source/WebCore:
I already laid the groundwork for this when implementing the CSS Font Loading API.
We only have to create a timer and correctly respond to it timing out (by setting
state).
This patch also adds a new internal setting which puts us in a mode where font
loads never complete and the timeout occurs immediately. This is so we can test
the fallback behavior.
Test: fast/text/web-font-load-fallback-during-loading.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::fontLoadEventOccurred):
(WebCore::CSSFontFace::timeoutFired):
(WebCore::CSSFontFace::setStatus):
(WebCore::CSSFontFace::fontLoaded):
(WebCore::CSSFontFace::webFontsShouldAlwaysFallBack):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::font):
- css/CSSFontFace.h:
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::fontLoaded):
- css/FontFace.cpp:
(WebCore::FontFace::fontStateChanged):
- page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setWebFontsAlwaysFallBack):
- page/Settings.h:
(WebCore::Settings::webFontsAlwaysFallBack):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setWebFontsAlwaysFallBack):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
LayoutTests:
- fast/text/web-font-load-fallback-during-loading-no-multiple-expected.txt: Added.
- fast/text/web-font-load-fallback-during-loading-no-multiple.html: Added.
- fast/text/web-font-load-fallback-during-loading-expected.html: Added.
- fast/text/web-font-load-fallback-during-loading.html: Added.
- 6:31 PM Changeset in webkit [201675] by
-
- 12 edits in trunk/Source
Modernize a few more lambda captures
https://bugs.webkit.org/show_bug.cgi?id=158370
Reviewed by Brady Eidson.
Source/WebCore:
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::postMessage):
- workers/DedicatedWorkerGlobalScope.h:
- workers/Worker.cpp:
(WebCore::Worker::postMessage):
- workers/Worker.h:
- workers/WorkerEventQueue.cpp:
(WebCore::WorkerEventQueue::enqueueEvent):
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
- workers/WorkerObjectProxy.h:
Source/WebKit:
- Storage/StorageTracker.cpp:
(WebCore::StorageTracker::deleteOrigin):
- 6:08 PM Changeset in webkit [201674] by
-
- 5 edits3 adds in trunk
JSON.stringify replacer function calls with numeric array indices
https://bugs.webkit.org/show_bug.cgi?id=158262
Source/JavaScriptCore:
rdar://problem/26613876
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-03
Reviewed by Saam Barati.
The spec of SerializeJSONArray is pretty clear that the index
should be transformed into a string before calling SerializeJSONProperty.
See http://www.ecma-international.org/ecma-262/6.0/#sec-serializejsonarray
- runtime/JSONObject.cpp:
(JSC::PropertyNameForFunctionCall::value):
LayoutTests:
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-03
Reviewed by Saam Barati.
- js/JSON-stringify-exposes-array-indices-as-strings-expected.txt: Added.
- js/JSON-stringify-exposes-array-indices-as-strings.html: Added.
- js/script-tests/JSON-stringify-exposes-array-indices-as-strings.js: Added.
(replacer):
(testObject.toJSON):
(toJSONArrayHelper):
- js/resources/JSON-stringify.js:
- js/dom/JSON-stringify-expected.txt:
Update the test results for the native implementation.
- 5:56 PM Changeset in webkit [201673] by
-
- 55 edits1 move in trunk/Source
Unreviewed, rolling out r201663.
https://bugs.webkit.org/show_bug.cgi?id=158374
Broke the Windows build (Requested by andersca on #webkit).
Reverted changeset:
"Rename NoncopyableFunction to Function"
https://bugs.webkit.org/show_bug.cgi?id=158354
http://trac.webkit.org/changeset/201663
- 5:34 PM Changeset in webkit [201672] by
-
- 3 edits in trunk/Source/JavaScriptCore
Proxy.ownKeys should no longer throw an exception when duplicate keys are returned and the target is non-extensible
https://bugs.webkit.org/show_bug.cgi?id=158350
<rdar://problem/26626211>
Reviewed by Michael Saboff.
The spec was recently changes in Proxy OwnPropertyKeys
to allow for duplicate property names under certain circumstances.
This patch fixes our implementation to match the spec.
See: https://github.com/tc39/ecma262/pull/594
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::performGetOwnPropertyNames):
- tests/stress/proxy-own-keys.js:
(i.catch):
(ownKeys):
(assert):
- 5:04 PM Changeset in webkit [201671] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: add a keyboard shortcut to close the current tab bar item
https://bugs.webkit.org/show_bug.cgi?id=158363
<rdar://problem/22677254>
Reviewed by Timothy Hatcher.
Make Cmd-w close the current tab. This matches Safari's keyboard shortcut.
- UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
Don't do anything if the New Tab tab is the only tab bar item besides the
pinned "new tab" button.
- 4:51 PM Changeset in webkit [201670] by
-
- 2 edits in trunk/Source/JavaScriptCore
Some shadow chicken code is wrong when run on a big endian CPU
https://bugs.webkit.org/show_bug.cgi?id=158361
Reviewed by Mark Lam.
This code was wrong on a big endian CPU, and it was
also an anti-pattern in the file. The code was harmless
on a little endian CPU, but it's better to remove it.
- llint/LowLevelInterpreter64.asm:
- 4:27 PM Changeset in webkit [201669] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: setter for debugging flag InspectorBackend.dumpInspectorTimeStats does not work
https://bugs.webkit.org/show_bug.cgi?id=158366
Reviewed by Timothy Hatcher.
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype.set dumpInspectorTimeStats):
Actually update the backing member when the setter is called.
- 4:06 PM Changeset in webkit [201668] by
-
- 26 edits1 add in trunk/Source/JavaScriptCore
Add argument_count bytecode for concat
https://bugs.webkit.org/show_bug.cgi?id=158358
Reviewed by Geoffrey Garen.
This patch adds a new argument count bytecode. Normally, we would
just make sure that the argument.length bytecode was fast enough
that we shouldn't need such an bytecode. However, for the case of
Array.prototype.concat the overhead of the arguments object
allocation in the LLInt was too high and caused regressions.
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecompiler/NodesCodegen.cpp:
(JSC::BytecodeIntrinsicNode::emit_intrinsic_argumentCount):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::getArgumentCount):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_argument_count):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- tests/stress/argument-count-bytecode.js: Added.
(inlineCount):
(inlineCount1):
(inlineCount2):
(inlineCountVarArgs):
(assert):
- 4:01 PM Changeset in webkit [201667] by
-
- 7 edits2 adds in trunk
Crash under VisibleSelection::firstRange()
https://bugs.webkit.org/show_bug.cgi?id=158241
Reviewed by Enrica Casucci.
Source/WebCore:
The crash was commonly caused by parentAnchoredEquivalent returning null when the anchored node was a shadow root.
Fixed it by returning a shadow root in parentAnchoredEquivalent.
Also guard against other kinds of crashes by adding a null check in VisibleSelection::firstRange() since we've seen
a crash in the same code path outside of a shadow tree.
This patch also fixes other Position methods to stop using nonShadowBoundaryParentNode in place of parentNode as
that would cause a similar crash and/or a bug elsewhere.
Test: fast/shadow-dom/selection-at-shadow-root-crash.html
- accessibility/AXObjectCache.cpp:
(AXObjectCache::startCharacterOffsetOfParagraph): Fixed a bug uncovered by the assertion fix in Position::Position.
This code was sometimes creating a position inside a BR, which is wrong.
(AXObjectCache::endCharacterOffsetOfParagraph): Ditto.
- dom/Position.cpp:
(WebCore::Position::Position): Fixed an assertion which was checking that this constructor wasn't being called
with m_anchorNode set to an element editing ignores content of. ing it with isShadowRoot() made this assertion useless because it's true whenever m_anchorNode is not a shadow root.
(WebCore::Position::containerNode): Use parentNode() instead of findParent() which calls nonShadowBoundaryParentNode
since Position should
(WebCore::Position::parentAnchoredEquivalent): Fixed the bug by letting this function return a shadow root.
(WebCore::Position::previous): Use parentNode() instead of findParent().
(WebCore::Position::next): Ditto.
(WebCore::Position::atStartOfTree): Ditto.
(WebCore::Position::atEndOfTree): Ditto.
(WebCore::Position::findParent): Deleted.
- dom/Position.h:
- editing/VisibleSelection.cpp:
(VisibleSelection::firstRange): Added a null check.
LayoutTests:
Added a regression test.
- fast/shadow-dom/selection-at-shadow-root-crash-expected.txt: Added.
- fast/shadow-dom/selection-at-shadow-root-crash.html: Added.
- 3:47 PM Changeset in webkit [201666] by
-
- 3 edits2 adds in trunk
Incorrect rendering on boostmobile FAQ page
https://bugs.webkit.org/show_bug.cgi?id=158303
<rdar://problem/26603462>
Reviewed by Chris Dumez.
Initial value for background-color is 'transparent'. see https://drafts.csswg.org/css-backgrounds-3/#background-color
Source/WebCore:
Test: fast/selectors/non-visited-link-backround-color.html
- css/CSSPropertyNames.in:
LayoutTests:
- fast/selectors/non-visited-link-backround-color-expected.html: Added.
- fast/selectors/non-visited-link-backround-color.html: Added.
- 3:31 PM Changeset in webkit [201665] by
-
- 8 edits in trunk/Source/WebCore
More miscellaneous IDBBindingUtilities cleanup.
https://bugs.webkit.org/show_bug.cgi?id=158359
Reviewed by Tim Horton.
No new tests (Straight refactor, yo).
Replace more ScriptExecutionContext&s with ExecState&s.
Combine more unnecessarily separate functions.
Remove some cruft.
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::setGetResult):
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
- Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValueToJSValue):
(WebCore::idbKeyDataToScriptValue):
(WebCore::deserializeIDBValueDataToJSValue): Deleted.
- bindings/js/IDBBindingUtilities.h:
- 3:26 PM Changeset in webkit [201664] by
-
- 10 edits in trunk
CanvasRenderingContext2D.createPattern() / putImageData() throw wrong exception type
https://bugs.webkit.org/show_bug.cgi?id=158322
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline test now that it is passing.
- canvas/2d.pattern.image.undefined-expected.txt:
Source/WebCore:
CanvasRenderingContext2D.createPattern() / putImageData() were throwing the wrong
exception type when the first parameter was null. It should throw a TypeError
but it was throwing a legacy TYPE_MISMATCH_ERR:
- http://www.w3.org/TR/2dcontext/#canvasrenderingcontext2d
- http://www.w3.org/TR/2dcontext/#canvasimagesource
This patch aligns our behavior with the specification.
No new tests, covered by existing tests.
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern):
(WebCore::CanvasRenderingContext2D::putImageData):
(WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
(WebCore::CanvasRenderingContext2D::didDraw): Deleted.
(WebCore::CanvasRenderingContext2D::drawFocusIfNeeded): Deleted.
(WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal): Deleted.
(WebCore::CanvasRenderingContext2D::font): Deleted.
- html/canvas/CanvasRenderingContext2D.h:
- html/canvas/CanvasRenderingContext2D.idl:
LayoutTests:
Update several outdated layout tests.
- canvas/philip/tests/2d.imageData.put.null.html:
- canvas/philip/tests/2d.pattern.image.null.html:
- canvas/philip/tests/2d.pattern.image.undefined.html:
- 3:24 PM Changeset in webkit [201663] by
-
- 55 edits1 move in trunk/Source
Rename NoncopyableFunction to Function
https://bugs.webkit.org/show_bug.cgi?id=158354
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::runTask):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/webaudio/AudioDestinationNode.h:
(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- dom/ActiveDOMCallbackMicrotask.cpp:
(WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):
- dom/ActiveDOMCallbackMicrotask.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::Task::Task):
- fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::perform):
- fileapi/AsyncFileStream.h:
- page/FrameView.cpp:
(WebCore::FrameView::queuePostLayoutCallback):
(WebCore::FrameView::flushPostLayoutTasksQueue):
- page/FrameView.h:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchBarrier):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
- page/scrolling/ScrollingThread.h:
- platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::postTask):
- platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher::postTask):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/mac/AVMediaCaptureSource.h:
- platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::scheduleDeferredTask):
- style/StyleTreeResolver.cpp:
(WebCore::Style::postResolutionCallbackQueue):
(WebCore::Style::queuePostResolutionCallback):
- style/StyleTreeResolver.h:
Source/WebKit:
- Storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::dispatch):
- Storage/StorageSyncManager.h:
- Storage/StorageThread.cpp:
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):
- Storage/StorageThread.h:
Source/WebKit2:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::clearDiskCacheEntries):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
- NetworkProcess/cache/NetworkCacheStorage.h:
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CrossThreadTask.h:
(WTF::CrossThreadTask::CrossThreadTask):
- wtf/Function.h: Renamed from Source/WTF/wtf/NoncopyableFunction.h.
- wtf/FunctionDispatcher.h:
- wtf/MainThread.cpp:
(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
- wtf/MainThread.h:
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
(WTF::RunLoop::dispatch):
- wtf/RunLoop.h:
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/efl/DispatchQueueWorkItemEfl.h:
(WorkItem::WorkItem):
(TimerWorkItem::create):
(TimerWorkItem::TimerWorkItem):
- wtf/efl/WorkQueueEfl.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
(WTF::RunLoop::dispatchAfter):
- wtf/generic/WorkQueueGeneric.cpp:
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):
- wtf/glib/RunLoopGLib.cpp:
(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::RunLoop::dispatchAfter):
- wtf/win/WorkItemWin.cpp:
(WTF::WorkItemWin::WorkItemWin):
(WTF::WorkItemWin::create):
(WTF::HandleWorkItem::HandleWorkItem):
(WTF::HandleWorkItem::createByAdoptingHandle):
- wtf/win/WorkItemWin.h:
(WTF::WorkItemWin::function):
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- 3:05 PM Changeset in webkit [201662] by
-
- 3 edits in trunk/LayoutTests
Marking fast/scrolling/scroll-container-horizontally.html as flaky on mac-wk2 and ios-simulator-wk1
https://bugs.webkit.org/show_bug.cgi?id=158237
Unreviewed test gardening.
- platform/ios-simulator-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 2:59 PM Changeset in webkit [201661] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r201474): Subtitles are not resizing in other fullscreen modes
https://bugs.webkit.org/show_bug.cgi?id=158355
Reviewed by Eric Carlson.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds):
Set the text track representation layer's frame based on the active video layer.
- 2:42 PM Changeset in webkit [201660] by
-
- 10 edits in trunk/Source/WebCore
Miscellaneous IDBBindingUtilities cleanup.
https://bugs.webkit.org/show_bug.cgi?id=158353
Reviewed by Tim Horton.
No new tests (Straight refactor, yo).
Starting with removing a single form of scriptValueToIDBKey(), and making the return value be
Ref<IDBKey> instead of RefPtr<IDBKey>, update a whole bunch of code to understand that the ExecState
is non-null and the resulting key is non-null.
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::continueFunction):
- Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::cmp):
- Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):
- Modules/indexeddb/IDBKey.cpp:
(WebCore::IDBKey::compare):
(WebCore::IDBKey::isLessThan):
(WebCore::IDBKey::isEqual):
- Modules/indexeddb/IDBKey.h:
(WebCore::IDBKey::createMultiEntryArray):
- Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):
(WebCore::IDBKeyRange::isOnlyKey):
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::count):
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::get):
(WebCore::set):
(WebCore::createIDBKeyFromValue):
(WebCore::getNthValueOnKeyPath):
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::ensureNthValueOnKeyPath):
(WebCore::canInjectNthValueOnKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::deserializeIDBValueToJSValue):
(WebCore::scriptValueToIDBKey):
(WebCore::createKeyPathArray):
- bindings/js/IDBBindingUtilities.h:
- 2:36 PM Changeset in webkit [201659] by
-
- 8 edits2 moves in trunk/Source/WebCore
Rename CheckedRadioButtons into RadioButtonGroups
https://bugs.webkit.org/show_bug.cgi?id=158326
Reviewed by Alex Christensen.
CheckedRadioButtons handles the set of all the Radio Button Groups
for a particular form or document.
The name is wrong and apparently comes from former uses of this class
(see the comment above the class declaration).
This patch renames "CheckedRadioButtons" to "RadioButtonGroups" to reflect that it handles
all the Radio Button Group from a given context (form or document).
Internally it has a set of RadioButtonGroup but that is never explicitely
exposed.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/CheckedRadioButtons.cpp:
(WebCore::RadioButtonGroup::isEmpty): Deleted.
(WebCore::RadioButtonGroup::isRequired): Deleted.
(WebCore::RadioButtonGroup::checkedButton): Deleted.
(WebCore::RadioButtonGroup::RadioButtonGroup): Deleted.
(WebCore::RadioButtonGroup::isValid): Deleted.
(WebCore::RadioButtonGroup::members): Deleted.
(WebCore::RadioButtonGroup::setCheckedButton): Deleted.
(WebCore::RadioButtonGroup::add): Deleted.
(WebCore::RadioButtonGroup::updateCheckedState): Deleted.
(WebCore::RadioButtonGroup::requiredAttributeChanged): Deleted.
(WebCore::RadioButtonGroup::remove): Deleted.
(WebCore::RadioButtonGroup::updateValidityForAllButtons): Deleted.
(WebCore::RadioButtonGroup::contains): Deleted.
(WebCore::CheckedRadioButtons::CheckedRadioButtons): Deleted.
(WebCore::CheckedRadioButtons::~CheckedRadioButtons): Deleted.
(WebCore::CheckedRadioButtons::addButton): Deleted.
(WebCore::CheckedRadioButtons::groupMembers): Deleted.
(WebCore::CheckedRadioButtons::updateCheckedState): Deleted.
(WebCore::CheckedRadioButtons::requiredAttributeChanged): Deleted.
(WebCore::CheckedRadioButtons::checkedButtonForGroup): Deleted.
(WebCore::CheckedRadioButtons::isInRequiredGroup): Deleted.
(WebCore::CheckedRadioButtons::removeButton): Deleted.
- dom/RadioButtonGroups.cpp: Renamed from Source/WebCore/dom/CheckedRadioButtons.cpp.
(WebCore::RadioButtonGroup::isEmpty):
(WebCore::RadioButtonGroup::isRequired):
(WebCore::RadioButtonGroup::checkedButton):
(WebCore::RadioButtonGroup::RadioButtonGroup):
(WebCore::RadioButtonGroup::isValid):
(WebCore::RadioButtonGroup::members):
(WebCore::RadioButtonGroup::setCheckedButton):
(WebCore::RadioButtonGroup::add):
(WebCore::RadioButtonGroup::updateCheckedState):
(WebCore::RadioButtonGroup::requiredAttributeChanged):
(WebCore::RadioButtonGroup::remove):
(WebCore::RadioButtonGroup::updateValidityForAllButtons):
(WebCore::RadioButtonGroup::contains):
(WebCore::RadioButtonGroups::RadioButtonGroups):
(WebCore::RadioButtonGroups::~RadioButtonGroups):
(WebCore::RadioButtonGroups::addButton):
(WebCore::RadioButtonGroups::groupMembers):
(WebCore::RadioButtonGroups::updateCheckedState):
(WebCore::RadioButtonGroups::requiredAttributeChanged):
(WebCore::RadioButtonGroups::checkedButtonForGroup):
(WebCore::RadioButtonGroups::isInRequiredGroup):
(WebCore::RadioButtonGroups::removeButton):
- dom/RadioButtonGroups.h: Renamed from Source/WebCore/dom/CheckedRadioButtons.h.
- html/FormController.h:
(WebCore::FormController::radioButtonGroups):
(WebCore::FormController::checkedRadioButtons): Deleted.
- html/HTMLFormElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::didMoveToNewDocument):
(WebCore::HTMLInputElement::requiredAttributeChanged):
(WebCore::HTMLInputElement::isInRequiredRadioButtonGroup):
(WebCore::HTMLInputElement::radioButtonGroup):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup):
(WebCore::HTMLInputElement::radioButtonGroups):
(WebCore::HTMLInputElement::addToRadioButtonGroup):
(WebCore::HTMLInputElement::removeFromRadioButtonGroup):
(WebCore::HTMLInputElement::checkedRadioButtons): Deleted.
- html/HTMLInputElement.h:
- 2:35 PM Changeset in webkit [201658] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Remove unused WebInspector.CSSCompletions methods
https://bugs.webkit.org/show_bug.cgi?id=158352
Reviewed by Joseph Pecoraro.
- UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.prototype.firstStartsWith): Deleted.
(WebInspector.CSSCompletions.prototype.isLonghandPropertyName): Deleted.
(WebInspector.CSSCompletions.prototype.longhandsForShorthand): Deleted.
- 2:26 PM Changeset in webkit [201657] by
-
- 4 edits in trunk/Source/JavaScriptCore
Clients of PolymorphicAccess::addCases shouldn't have to malloc
https://bugs.webkit.org/show_bug.cgi?id=158357
Reviewed by Keith Miller.
We only ever have 1 or 2 cases, so we can use inline Vector capacity.
This shows up a little in the JSBench profile.
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
- bytecode/PolymorphicAccess.h:
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::addAccessCase):
- 2:13 PM Changeset in webkit [201656] by
-
- 6 edits in trunk/Source/JavaScriptCore
Fix some more INFINITI->INFINITY typos
Unreviewed.
The tests were not covering the edge cases they were supposed to test.
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-03
- tests/stress/math-ceil-basics.js:
(testMathCeilOnConstants):
- tests/stress/math-clz32-basics.js:
(testMathClz32OnDoubles):
(testMathClz32OnConstants):
- tests/stress/math-floor-basics.js:
(testMathFloorOnConstants):
- tests/stress/math-round-basics.js:
(testMathRoundOnConstants):
- tests/stress/math-trunc-basics.js:
(testMathTruncOnConstants):
- 1:59 PM Changeset in webkit [201655] by
-
- 14 edits in trunk/Source
Unreviewed, roll out r196633 as it broke PageCache on iOS for WebKit.org
<rdar://problem/26521101>
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::setInPageCache): Deleted.
- history/CachedPage.cpp:
(WebCore::CachedPage::restore):
(WebCore::CachedPage::clear):
- history/CachedPage.h:
(WebCore::CachedPage::markForVisitedLinkStyleRecalc):
(WebCore::CachedPage::markForFullStyleRecalc):
- history/PageCache.cpp:
(WebCore::PageCache::markPagesForVisitedLinkStyleRecalc):
(WebCore::PageCache::markPagesForFullStyleRecalc):
- history/PageCache.h:
- page/Frame.cpp:
(WebCore::Frame::setPageAndTextZoomFactors):
- page/Page.cpp:
(WebCore::Page::setViewScaleFactor):
(WebCore::Page::setDeviceScaleFactor):
(WebCore::Page::setPagination):
(WebCore::Page::setPaginationLineGridEnabled):
(WebCore::Page::setVisitedLinkStore):
Source/WebKit/mac:
- WebCoreSupport/WebVisitedLinkStore.mm:
(WebVisitedLinkStore::removeAllVisitedLinks):
(WebVisitedLinkStore::removeVisitedLink):
(WebVisitedLinkStore::addVisitedLinkHash):
Source/WebKit/win:
- WebCoreSupport/WebVisitedLinkStore.cpp:
(WebVisitedLinkStore::removeAllVisitedLinks):
(WebVisitedLinkStore::addVisitedLinkHash):
Source/WebKit2:
- WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
(WebKit::VisitedLinkTableController::visitedLinkStateChanged):
(WebKit::VisitedLinkTableController::allVisitedLinkStateChanged):
(WebKit::VisitedLinkTableController::removeAllVisitedLinks):
- 1:12 PM Changeset in webkit [201654] by
-
- 6 edits in trunk/Source/JavaScriptCore
JSGlobalObject::addFunction should call deleteProperty rather than removeDirect
https://bugs.webkit.org/show_bug.cgi?id=158295
Reviewed by Saam Barati.
When a function in declared in program code, this replaces any previosly existing
property from the global object. JSGlobalObject::addFunction is currently calling
removeDirect rather than deleteProperty to remove the existing property. This fails
to remove any properties from static tables.
We currently get away with this because (a) JSObject & JSGlobalObject don't currently
have any properties in static tables, and (b) the current quirky property precedence
means that the symbol table properties end up taking precedence over JSDOMWindow's
static table, so window object properties end up being shadowed.
As a part of bug #158178 the precedence of static tables will change, requiring this
to be fixed.
The deleteProperty function does what we want (has the ability to remove properties,
including those from the static tables). Normally deleteProperty will not remove
properties that are non-configurable (DontDelete) - we need to do so. The function
does already support this, through a flag on VM named 'isInDefineOwnProperty', which
causes configurability to be ignored. Generalize this mechanism for use outside of
defineOwnProperty, renaming & moving DefineOwnPropertyScope helper class out to VM.
- runtime/JSFunction.cpp:
(JSC::JSFunction::deleteProperty):
- isInDefineOwnProperty -> deletePropertyMode.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::addFunction):
- removeDirect -> deleteProperty.
- runtime/JSObject.cpp:
(JSC::JSObject::deleteProperty):
- isInDefineOwnProperty -> deletePropertyMode.
(JSC::JSObject::defineOwnNonIndexProperty):
- DefineOwnPropertyScope -> VM::DeletePropertyModeScope.
(JSC::DefineOwnPropertyScope::DefineOwnPropertyScope): Deleted.
(JSC::DefineOwnPropertyScope::~DefineOwnPropertyScope): Deleted.
- DefineOwnPropertyScope -> VM::DeletePropertyModeScope.
- runtime/VM.cpp:
(JSC::VM::VM):
- removed m_inDefineOwnProperty.
- runtime/VM.h:
(JSC::VM::deletePropertyMode):
- isInDefineOwnProperty -> deletePropertyMode.
(JSC::VM::DeletePropertyModeScope::DeletePropertyModeScope):
(JSC::VM::DeletePropertyModeScope::~DeletePropertyModeScope):
- DefineOwnPropertyScope -> VM::DeletePropertyModeScope.
(JSC::VM::setInDefineOwnProperty): Deleted.
- Replaced with deletePropertyMode, can now only be set via VM::DeletePropertyModeScope.
(JSC::VM::isInDefineOwnProperty): Deleted.
- isInDefineOwnProperty -> deletePropertyMode.
- 12:54 PM Changeset in webkit [201653] by
-
- 2 edits in trunk/LayoutTests
LayoutTest imported/w3c/indexeddb/idbcursor-advance-continue-async.htm is flaky on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=154606
Reviewed by Alex Christensen.
- platform/mac-wk2/TestExpectations: Remove expectations. Test has been working great for quite awhile.
- 12:28 PM Changeset in webkit [201652] by
-
- 5 edits in trunk/LayoutTests
storage/indexeddb/intversion-open-in-upgradeneeded.html is flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=155050
Reviewed by Alex Christensen.
The test no longer crashes/times out, but it does have text failures.
Resolve them by removing a race in the test itself.
- platform/mac-wk2/TestExpectations:
- storage/indexeddb/intversion-open-in-upgradeneeded-expected.txt:
- storage/indexeddb/intversion-open-in-upgradeneeded-private-expected.txt:
- storage/indexeddb/resources/intversion-open-in-upgradeneeded.js:
- 11:42 AM Changeset in webkit [201651] by
-
- 2 edits in trunk/Source/JavaScriptCore
ARMv7 vstm and vldm instructions can only operate on a maximum of 16 registers.
https://bugs.webkit.org/show_bug.cgi?id=158349
Reviewed by Filip Pizlo.
According to the ARM Assembler Reference, the vstm and vldm instructions can only
operate on a maximum of 16 registers. See
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s03s02.html
and http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s03s02.html.
The ARMv7 probe code was wrongly using these instructions to store and load all
32 'd' registers. This is now fixed.
- assembler/MacroAssemblerARMv7.cpp:
- 11:36 AM Changeset in webkit [201650] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Update NativeFunctionParameters (FontFaceSet, HTMLSlotElement, EventTarget)
https://bugs.webkit.org/show_bug.cgi?id=158333
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-03
Reviewed by Brian Burg.
- UserInterface/Models/NativeFunctionParameters.js:
Replace FontLoader with FontFaceSet. Add HTMLSlotElement API.
EventTarget is now actually in the prototype chain, so add it as
a first class citizen and keep mixing it in for legacy backends.
- 11:22 AM Changeset in webkit [201649] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] Implement WebView::removeAllUserContentFromGroup
https://bugs.webkit.org/show_bug.cgi?id=158343
Reviewed by Brent Fulgham.
- WebView.cpp:
(WebView::removeAllUserContentFromGroup):
- 11:13 AM Changeset in webkit [201648] by
-
- 5 edits8 adds in trunk
Reflection of element does not respect backdrop-filter property
https://bugs.webkit.org/show_bug.cgi?id=158201
Patch by Antoine Quint <Antoine Quint> on 2016-06-03
Reviewed by Dean Jackson.
Source/WebCore:
We weren't cloning the PlatformCALayer for the backdrop so reflections would simply
not show their backdrops. We now follow the same pattern as other PlatformCALayers
owned by a GraphicsLayerCA and keep a list of backdrop layer clones that we add
to the structural layer when cloning to match the layer order of the original
and update the backdrop layer clone properties to match the original when the
backdrop filters or rectangle changes.
Tests: css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html
css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html
css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html
css3/filters/backdrop/backdrop-filter-with-reflection.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
Update backdrop layer clones to match new values set when the backdrop filter
configuration changes.
(WebCore::GraphicsLayerCA::ensureCloneLayers):
Create the backdrop layer clones map if needed and clone the existing backdrop layer.
(WebCore::GraphicsLayerCA::clearClones):
Clear the backdrop layer clones map.
(WebCore::GraphicsLayerCA::fetchCloneLayers):
Obtain a clone for the backdrop layer, and if we have a valid clone, add it to the
structural layer clone as its first child to match the operation in updateSublayerList().
- platform/graphics/ca/GraphicsLayerCA.h:
Modify the signature for ensureCloneLayers() to account for the new backdrop layer clone and
declare the backdrop layer clone map.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::clone):
Reflect the backdrop layer type when cloning a PlatformCALayer.
LayoutTests:
- css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html: Added.
Covers the case where a reflected element without a backdrop-filter initially has one added later.
- css3/filters/backdrop/backdrop-filter-with-reflection-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop-expected.html: Added.
Covers the case where a reflected element with a backdrop-filter initially has it removed later.
- css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html: Added.
- css3/filters/backdrop/backdrop-filter-with-reflection-value-change-expected.html: Added.
Covers the case where a reflected element with a backdrop-filter has its backdrop-filter property changed later.
- css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html: Added.
- css3/filters/backdrop/backdrop-filter-with-reflection.html: Added.
Covers the basic case of a reflected element with a backdrop-filter.
- 10:09 AM Changeset in webkit [201647] by
-
- 3 edits in trunk/Source/WebCore
ResourceResponseBase cleanup.
https://bugs.webkit.org/show_bug.cgi?id=158348
Reviewed by Chris Dumez.
No new tests (Refactor, no behavior change).
CrossThreadData can be noncopyable and WTFMove()'ed around, instead of
being in a unique_ptr.
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::crossThreadData):
(WebCore::ResourceResponseBase::fromCrossThreadData):
- platform/network/ResourceResponseBase.h:
- 9:49 AM Changeset in webkit [201646] by
-
- 2 edits in trunk/Source/JavaScriptCore
Gardening: CLOOP build fix (needs a #include).
Not reviewed.
- interpreter/StackVisitor.h:
- 9:43 AM Changeset in webkit [201645] by
-
- 3 edits in trunk/Source/JavaScriptCore
Eliminate two large sources of temporary StringImpl objects.
<https://webkit.org/b/158336>
Reviewed by Anders Carlsson.
We were jumping through some inefficient hoops when creating Identifiers due to the
convenience of our String(const char*) constructor.
This patch avoids just over 1 million temporary StringImpl objects on the PLUM benchmark.
- runtime/JSObject.h:
(JSC::makeIdentifier): Add an overload for string literals so we can stop creating a temporary
String just for passing to Identifier::fromString().
- runtime/Lookup.h:
(JSC::reifyStaticProperties): Use the Identifier::fromString() that takes an LChar* and a length
instead of creating a temporary String.
- 9:32 AM Changeset in webkit [201644] by
-
- 2 edits in trunk
[Win] IndexedDB worker tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=158341
Reviewed by Alex Christensen.
Enable IndexedDB in workers.
- Source/cmake/OptionsWin.cmake:
- 9:13 AM Changeset in webkit [201643] by
-
- 2 edits in trunk/Source/WebKit2
Fix the !ENABLE(INDEXED_DATABASE) build after r201575
https://bugs.webkit.org/show_bug.cgi?id=158346
Reviewed by Brady Eidson.
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
- 8:40 AM Changeset in webkit [201642] by
-
- 2 edits in trunk/Tools
[GTK] Update YouCompleteMe script to make all include paths absolute
https://bugs.webkit.org/show_bug.cgi?id=158301
Reviewed by Michael Catanzaro.
Before this patch, some include paths were not made absolute.
This could make YouCompleteMe plugin to fail extracting information or validating cpp files.
- gtk/ycm_extra_conf.py:
- 7:53 AM Changeset in webkit [201641] by
-
- 6 edits1 add in trunk/Source
Clean up how StackVisitor dumps its frames.
https://bugs.webkit.org/show_bug.cgi?id=158316
Reviewed by Keith Miller.
Source/JavaScriptCore:
- Updated to do dumping to a PrintStream.
- Added support for printing a prefix for each frame. This is currently used by JSDollarVMPrototype to print frame numbers.
- Fix the incrementing of the frame index in StackVisitor. It was initialized but never incremented before when iterating the frames.
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::gotoNextFrame):
(JSC::StackVisitor::Frame::codeType):
(JSC::StackVisitor::Frame::functionName):
(JSC::StackVisitor::Frame::sourceURL):
(JSC::StackVisitor::Frame::toString):
(JSC::StackVisitor::Frame::createArguments):
(JSC::StackVisitor::Frame::computeLineAndColumn):
(JSC::StackVisitor::Frame::retrieveExpressionInfo):
(JSC::StackVisitor::Frame::setToEnd):
(JSC::StackVisitor::Frame::dump):
(JSC::StackVisitor::Indent::dump):
(JSC::printIndents): Deleted.
(JSC::log): Deleted.
(JSC::logF): Deleted.
(JSC::StackVisitor::Frame::print): Deleted.
- interpreter/StackVisitor.h:
(JSC::StackVisitor::Indent::Indent):
(JSC::StackVisitor::Indent::operator++):
(JSC::StackVisitor::Indent::operator--):
(JSC::StackVisitor::Frame::isJSFrame):
(JSC::StackVisitor::Frame::isInlinedFrame):
(JSC::StackVisitor::Frame::vmEntryFrame):
(JSC::StackVisitor::Frame::callFrame):
(JSC::StackVisitor::Frame::Frame):
(JSC::StackVisitor::Frame::~Frame):
- tools/JSDollarVMPrototype.cpp:
(JSC::PrintFrameFunctor::operator()):
Source/WTF:
Added an Indenter class what works with dataLog.
- WTF.xcodeproj/project.pbxproj:
- wtf/Indenter.h: Added.
(WTF::Indenter::Indenter):
(WTF::Indenter::dump):
(WTF::Indenter::operator++):
(WTF::Indenter::operator--):
- 2:03 AM Changeset in webkit [201640] by
-
- 2 edits in trunk/Tools
Unreviewed: add myself to the committers list.
- Scripts/webkitpy/common/config/contributors.json:
- 12:52 AM Changeset in webkit [201639] by
-
- 4 edits in trunk
REGRESSION: WebGL doesn't show up in CSS reflections
https://bugs.webkit.org/show_bug.cgi?id=76489
Patch by Antoine Quint <Antoine Quint> on 2016-06-03
Reviewed by Dean Jackson.
Source/WebCore:
The WebGLLayer needs to notify its owning GraphicsLayer that it was displayed
such that its clones, in GraphicsLayerCA::layerDidDisplay, may have their contents
updated to match that layer's contents. The test at compositing/webgl/webgl-reflection.html
already covers this test and its expectation on Mac has been updated.
- platform/graphics/mac/WebGLLayer.mm:
(-[WebGLLayer display]):
LayoutTests:
Update the expected rendering to contain the reflected WebGL <canvas>.
- platform/mac/compositing/webgl/webgl-reflection-expected.png:
- 12:10 AM Changeset in webkit [201638] by
-
- 2 edits in trunk/Source/WebCore
Refactor showModalDialog handling in JSDOMWindowCustom
https://bugs.webkit.org/show_bug.cgi?id=158294
Reviewed by Ryosuke Niwa.
The showModalDialog property is currently implemented in a way that effectively
results in duplication of the tail of the function, but modified to call
Base::getOwnPropertySlot instead of getStaticPropertySlot. It does so based on the
assumption that Base::getOwnPropertySlot is not going to search the static tables
(containing the property we wish to omit).
However as a part of bug #158178 I plan to change it such that Base::getOwnPropertySlot
does also search the static tables. So, refactoring this code to no longer depend on
using a function that bypasses the static tables. Always perform a lookup that will
check both property storage & static tables. If the object does contain the property,
then check explicitly for the value we're intending to suppress.
Covered by exsiting tests.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
- Check result of getStaticPropertySlot for showModalDialog function.
Jun 2, 2016:
- 10:40 PM Changeset in webkit [201637] by
-
- 4 edits in trunk/Source/WebCore
Fix AtomicString regression caused by r201603.
https://bugs.webkit.org/show_bug.cgi?id=158338
Reviewed by Chris Dumez.
No new tests (Refactor, plus already caught by existing test configs).
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::crossThreadData): Re-introduce the cross thread data concept,
but more modern and clean this time.
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::isolatedCopy): Deleted.
- platform/network/ResourceResponseBase.h:
- 10:38 PM Changeset in webkit [201636] by
-
- 2 edits in trunk/Source/WebCore
Drop BlobRegistryContext class as it is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=158328
Reviewed by Brady Eidson.
Drop BlobRegistryContext class as it is no longer needed. We can now
call isolatedCopy() as we capture in the lambda.
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerFileBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
(WebCore::ThreadableBlobRegistry::blobSize):
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::BlobRegistryContext::BlobRegistryContext): Deleted.
- 10:27 PM Changeset in webkit [201635] by
-
- 18 edits2 adds in trunk
Repaint issue with vertical text in an out of flow container.
https://bugs.webkit.org/show_bug.cgi?id=102665
<rdar://problem/26605298>
Reviewed by David Hyatt.
Since the renderer’s offset for positioned objects is always physical, we only
need to flip the repaint rect(always logical) for writing root, when we see the first positioned object.
All subsequent writing root changes for positioned objects are okay and they don't need flipping.
Source/WebCore:
Test: fast/repaint/vertical-text-repaint.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeRectForRepaint):
- rendering/RenderBox.h:
(WebCore::RenderBox::computeRectForRepaint):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::computeRectForRepaint):
- rendering/RenderInline.h:
(WebCore::RenderInline::computeRectForRepaint):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::computeRectForRepaint):
- rendering/RenderObject.h:
(WebCore::RenderObject::computeAbsoluteRepaintRect):
(WebCore::RenderObject::computeRectForRepaint):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computeRectForRepaint):
- rendering/RenderTableCell.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::computeRectForRepaint):
- rendering/RenderView.h:
- rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::computeRectForRepaint):
- rendering/svg/RenderSVGForeignObject.h:
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeFloatRectForRepaint):
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::computeRectForRepaint):
- rendering/svg/RenderSVGText.h:
LayoutTests:
- fast/repaint/vertical-text-repaint-expected.txt: Added.
- fast/repaint/vertical-text-repaint.html: Added.
- 9:33 PM Changeset in webkit [201634] by
-
- 8 edits in trunk
[Win] Fetch API tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=158296
Reviewed by Alex Christensen.
Source/WebKit/win:
Add preference for enabling Fetch API.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::fetchAPIEnabled):
(WebPreferences::setFetchAPIEnabled):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
Enable Fetch API when running tests.
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):
- 8:32 PM Changeset in webkit [201633] by
-
- 9 edits1 add in trunk/Source/WebCore
Fix build
https://bugs.webkit.org/show_bug.cgi?id=158337
rdar://problem/26429419
Reviewed by Dan Bernstein.
- WebCore.xcodeproj/project.pbxproj:
Add QTKitSPI.h header.
- platform/graphics/mac/MediaPlayerPrivateQTKit.h:
- platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
- platform/graphics/mac/MediaTimeQTKit.h:
- platform/graphics/mac/MediaTimeQTKit.mm:
- platform/mac/WebVideoFullscreenController.mm:
Include QTKitSPI.h.
- platform/spi/cocoa/QuartzCoreSPI.h:
- platform/spi/mac/AVFoundationSPI.h:
Use MAX_ALLOWED instead of MIN_REQUIRED.
- platform/spi/mac/QTKitSPI.h:
Add new QTKit header.
- 7:54 PM Changeset in webkit [201632] by
-
- 3 edits in trunk/LayoutTests
Fix a typo in the clz32() tests
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-02
Rubber-stamped by Joseph Pecoraro.
Joe found a bug in math-clz32.js: I typed INFINITI instead of INFINITY.
The tests was effectively checking "undefined" instead of infinity.
- js/math-clz32-expected.txt:
- js/script-tests/math-clz32.js:
(objectRecordConversionCalls.valueOf):
- 6:34 PM Changeset in webkit [201631] by
-
- 2 edits in trunk/Source/WebKit/ios
Fix typo in -[WebDefaultUIKitDelegate deleteFromInputwithFlags:]
<https://webkit.org/b/158323>
<rdar://problem/26549165>
Reviewed by Andy Estes.
- DefaultDelegates/WebDefaultUIKitDelegate.m:
(-[WebDefaultUIKitDelegate deleteFromInputwithFlags:]): Rename...
(-[WebDefaultUIKitDelegate deleteFromInputWithFlags:]): ...to this.
- 6:18 PM Changeset in webkit [201630] by
-
- 12 edits in trunk/Source/WebInspectorUI
Web Inspector: Modernize Array.prototype.every/some callsites to arrow functions
https://bugs.webkit.org/show_bug.cgi?id=158330
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-02
Reviewed by Brian Burg.
- UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
- UserInterface/Models/ProfileNode.js:
(WebInspector.ProfileNode):
- UserInterface/Models/ScopeChainNode.js:
(WebInspector.ScopeChainNode):
- UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace):
- UserInterface/Models/StructureDescription.js:
(WebInspector.StructureDescription):
- UserInterface/Models/TypeDescription.js:
(WebInspector.TypeDescription):
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.supports):
- UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie.treeElementMatchesCookie):
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
- UserInterface/Views/ScopeBar.js:
(WebInspector.ScopeBar.prototype.get selectedItems):
(WebInspector.ScopeBar.prototype.hasNonDefaultItemSelected):
- UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.console.assert): Deleted.
- 5:39 PM Changeset in webkit [201629] by
-
- 15 edits in trunk/Source
[iOS] PDFDocumentImage should not create a cached image larger than 4M pixels
https://bugs.webkit.org/show_bug.cgi?id=157857
Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-06-02
Reviewed by Darin Adler.
Source/WebCore:
On iOS, if the scaled size of the PDFDocumentImage cached image will exceed
the 4M pixels limit and the system physical memory is 1GB or less, do not
create it. PDFDocumentImage::draw() falls back peacefully if the cached image
couldn't be created for any reason. The PDF will be drawn directly to the
GraphicsContext without having to go through the cached image. This means
the whole PDF will be drawn multiple times; one time for each tile. I think
this is okay for zooming a large PDFDocumentImage on a low end device.
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal): Call the static function
ImageBuffer::createCompatibleBuffer() without having to go through the GraphicsContext.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern): Ditto.
- platform/graphics/FloatSize.h:
(WebCore::FloatSize::area): A helper function similar to IntSize::area().
(WebCore::operator*): Scale a FloatSize by another FloatSize and return the result.
- platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern): Call ImageBuffer::createCompatibleBuffer().
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::scaleFactor):: Return the scaling part of the current CTM.
(WebCore::scalesMatch): Deleted.
(WebCore::GraphicsContext::createCompatibleBuffer): Deleted.
(WebCore::GraphicsContext::isCompatibleWithBuffer): Deleted.
- platform/graphics/GraphicsContext.h:
Move these image buffer functions to ImageBuffer.
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer): Make createCompatibleBuffer
a static function of the ImageBuffer. There is no need to go through the
GraphicsContext just to get the GraphicsContext scaleFactor.
(WebCore::ImageBuffer::compatibleBufferSize): Scale the size of the cachedImage
by the scaleFactor of the context.
(WebCore::ImageBuffer::isCompatibleWithContext): Returns true if the drawing
context and the ImageBuffer context have the same scaleFactor.
- platform/graphics/ImageBuffer.h:
- platform/graphics/NamedImageGeneratedImage.cpp:
(WebCore::NamedImageGeneratedImage::drawPattern): Call ImageBuffer::createCompatibleBuffer().
- platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::updateCachedImageIfNeeded): On iOS, if the
physical memory is less than 1GB, do not allocate more than 16MB for the
PDF cachedImage.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Call ImageBuffer::createCompatibleBuffer().
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::bufferForeground): Ditto.
Source/WTF:
- wtf/StdLibExtras.h: Add a constant value for GB (230).
- 4:52 PM Changeset in webkit [201628] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
global lexical environment variables are not accessible through functions created using the function constructor
https://bugs.webkit.org/show_bug.cgi?id=158319
Reviewed by Filip Pizlo.
When creating a function using the Function constructor, we were
using the global object instead of the global lexical environment
as the function's scope. We should be using the global lexical environment.
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- tests/stress/function-constructor-reading-from-global-lexical-environment.js: Added.
(assert):
(test):
(ClassTDZ):
- 4:45 PM Changeset in webkit [201627] by
-
- 7 edits in trunk
[WebIDL] 'undefined' should be an acceptable value for nullable parameters
https://bugs.webkit.org/show_bug.cgi?id=158321
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline test. The test is failing because the first parameter to
createPattern is wrongly marked as nullable in our IDL and because our
implementation throws a legacy TYPE_MISMATCH_ERR instead of a standard
TypeError when getting null as first parameter. I will fix this bug
and this test via Bug 158322.
- canvas/2d.pattern.image.undefined-expected.txt:
Source/WebCore:
'undefined' should be an acceptable value for nullable parameters (and
should be converted to null):
Our bindings got most of the cases right but there was a bug in our
overload resolution code. This patch fixes it.
No new tests, already covered by existing tests.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
LayoutTests:
Rebaseline existing test that is now passing.
- canvas/philip/tests/2d.pattern.image.undefined-expected.txt:
- 4:33 PM Changeset in webkit [201626] by
-
- 5 edits in trunk/Tools
Really display failing JSC stress tests in buildbot dashboard
https://bugs.webkit.org/show_bug.cgi?id=158324
Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-06-02
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:
(BuildbotCombinedQueueView.prototype.update): Correctly check for string membership in array.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype._parseData): Correctly check for string membership in array.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._popoverContentForJavaScriptCoreTestRegressions): Correctly check for string
membership in array.
(BuildbotQueueView.prototype._presentPopoverForJavaScriptCoreTestRegressions): Ensure that the correct URL is
generated after the first time.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.appendBuilderQueueStatus): Correctly check for string membership in array.
- 4:14 PM Changeset in webkit [201625] by
-
- 2 edits in trunk/Websites/webkit.org
Update the example for wider color gamut images.
- blog-files/color-gamut/index.html:
- 4:07 PM Changeset in webkit [201624] by
-
- 7 edits2 adds in trunk
JS parser incorrectly handles invalid utf8 in error messages.
https://bugs.webkit.org/show_bug.cgi?id=158128
Reviewed by Saam Barati.
Source/JavaScriptCore:
The bug here was caused by us using PrintStream's toString method
to produce the error message for a parse error, even though toString
may produce a null string in the event of invalid utf8 that causes
the error in first case. So when we try to create an error message
containing the invalid character code, we set m_errorMessage to the
null string, as that signals "no error" we don't stop parsing, and
everything goes down hill from there.
Now we use the new toStringWithLatin1Fallback so that we can always
produce an error message, even if it contains invalid unicode. We
also add an additional fallback so that we can guarantee an error
message is set even if we're given a null string. There's a debug
mode assertion to prevent anyone accidentally attempting to clear
the message via setErrorMessage.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::logError):
- parser/Parser.h:
(JSC::Parser::setErrorMessage):
Source/WTF:
Add a new toStringWithLatin1Fallback that simply uses
String::fromUTF8WithLatin1Fallback, so we can avoid the
standard String::fromUTF8 null return.
- wtf/StringPrintStream.cpp:
(WTF::StringPrintStream::toStringWithLatin1Fallback):
- wtf/StringPrintStream.h:
LayoutTests:
Add a testcase.
- js/invalid-utf8-in-syntax-error-expected.txt: Added.
- js/script-tests/invalid-utf8-in-syntax-error.js: Added.
- 3:43 PM Changeset in webkit [201623] by
-
- 26 edits in trunk/Source/WebCore
Modernize how many platform/network classes do isolatedCopy().
https://bugs.webkit.org/show_bug.cgi?id=158313
Reviewed by Alex Christensen.
No new tests (Refactor, no behavior change).
- loader/WorkerThreadableLoader.h:
- platform/network/FormData.cpp:
(WebCore::FormData::isolatedCopy):
(WebCore::FormDataElement::isolatedCopy):
(WebCore::FormData::FormData): Deleted.
(WebCore::FormData::deepCopy): Deleted.
- platform/network/FormData.h:
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::isolatedCopy):
(WebCore::HTTPHeaderMap::copyData): Deleted.
(WebCore::HTTPHeaderMap::adopt): Deleted.
- platform/network/HTTPHeaderMap.h:
- platform/network/ResourceErrorBase.cpp:
(WebCore::ResourceErrorBase::asResourceError):
(WebCore::ResourceErrorBase::isolatedCopy):
- platform/network/ResourceErrorBase.h:
(WebCore::ResourceErrorBase::platformCopy): Deleted.
- platform/network/ResourceLoadTiming.h:
(WebCore::ResourceLoadTiming::isolatedCopy): Not strictly needed for now, but makes it obvious
that changes will be needed if new members are added later.
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::isolatedCopy):
(WebCore::ResourceRequestBase::setAsIsolatedCopy):
(WebCore::ResourceRequestBase::copyData): Deleted.
- platform/network/ResourceRequestBase.h:
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::isolatedCopy):
(WebCore::ResourceResponseBase::copyData): Deleted.
- platform/network/ResourceResponseBase.h:
(WebCore::CrossThreadResourceResponseDataBase::CrossThreadResourceResponseDataBase): Deleted.
- platform/network/cf/ResourceError.h:
- platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::doPlatformIsolatedCopy):
(WebCore::ResourceError::platformCopy): Deleted.
- platform/network/cf/ResourceRequest.h:
- platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doPlatformSetAsIsolatedCopy):
(WebCore::ResourceRequest::doPlatformCopyData): Deleted.
(WebCore::ResourceRequest::doPlatformAdopt): Deleted.
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::doPlatformCopyData): Deleted.
(WebCore::ResourceResponse::doPlatformAdopt): Deleted.
- platform/network/curl/ResourceError.h:
(WebCore::ResourceError::doPlatformIsolatedCopy):
- platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::doPlatformSetAsIsolatedCopy):
(WebCore::ResourceRequest::doPlatformCopyData): Deleted.
(WebCore::ResourceRequest::doPlatformAdopt): Deleted.
- platform/network/curl/ResourceResponse.h:
(WebCore::ResourceResponse::doPlatformCopyData): Deleted.
(WebCore::ResourceResponse::doPlatformAdopt): Deleted.
- platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::doPlatformIsolatedCopy):
- platform/network/soup/ResourceError.h:
- platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::doPlatformIsolatedCopy):
(WebCore::ResourceError::platformCopy): Deleted.
- platform/network/soup/ResourceRequest.h:
(WebCore::ResourceRequest::doPlatformSetAsIsolatedCopy):
(WebCore::ResourceRequest::doPlatformCopyData): Deleted.
(WebCore::ResourceRequest::doPlatformAdopt): Deleted.
- platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::doPlatformCopyData): Deleted.
(WebCore::ResourceResponse::doPlatformAdopt): Deleted.
- 3:18 PM Changeset in webkit [201622] by
-
- 3 edits1 add in trunk/Source/JavaScriptCore
Teach bytecode liveness about the debugger
https://bugs.webkit.org/show_bug.cgi?id=158288
Reviewed by Filip Pizlo.
There was a bug where we wouldn't always keep the scope register
on the stack when the debugger is enabled. The debugger always assumes
it can read from the scope. The bug happened in OSR exit from the FTL.
The FTL uses bytecode liveness for OSR exit. Bytecode liveness proved
that the scope register was dead, so the FTL OSR exit wroteundefined
into the scope's stack slot when OSR exiting to the baseline.
To fix this, I taught bytecode liveness' computeUsesForBytecodeOffset() that the
scope is used by every instruction except op_enter. This causes the
scope to be live-in at every instruction except op_enter.
- bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::blockContainsBytecodeOffset):
(JSC::addAlwaysLiveLocals):
(JSC::findBasicBlockForBytecodeOffset):
(JSC::stepOverInstruction):
(JSC::computeLocalLivenessForBytecodeOffset):
(JSC::BytecodeLivenessAnalysis::runLivenessFixpoint):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
- tests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js: Added.
(foo):
(catch):
- 3:15 PM Changeset in webkit [201621] by
-
- 1 edit10 adds in trunk/Websites/webkit.org
Adding some sample images for a blog post on color.
- blog-files/color-gamut/Flowers-AdobeRGB.jpg: Added.
- blog-files/color-gamut/Flowers-ProPhoto.jpg: Added.
- blog-files/color-gamut/Flowers-oog.jpg: Added.
- blog-files/color-gamut/Flowers-sRGB.jpg: Added.
- blog-files/color-gamut/Rose-AdobeRGB.jpg: Added.
- blog-files/color-gamut/Rose-ProPhoto.jpg: Added.
- blog-files/color-gamut/Rose-oog.jpg: Added.
- blog-files/color-gamut/Rose-sRGB.jpg: Added.
- blog-files/color-gamut/index.html: Added.
- 3:11 PM Changeset in webkit [201620] by
-
- 26 edits in trunk/Source/WebInspectorUI
Web Inspector: Modernize some function expressions that bind(this) to arrow functions
https://bugs.webkit.org/show_bug.cgi?id=158315
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-02
Reviewed by Brian Burg.
Convert a common "function(x) { ... }.bind(this)" pattern to use arrow
functions "(x) => { ... }", which lexically bindsthis
, slightly faster,
and uses less memory.
- UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
- UserInterface/Controllers/BreakpointPopoverController.js:
(WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
- UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype.insertAnnotations):
(WebInspector.TypeTokenAnnotator.prototype.insertAnnotations.): Deleted.
- UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord.prototype._calculateDurationRemainder):
(WebInspector.RenderingFrameTimelineRecord):
- UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.requestContent):
- UserInterface/Models/Script.js:
(WebInspector.Script.prototype.requestScriptSyntaxTree):
(WebInspector.Script.prototype.requestScriptSyntaxTree.makeSyntaxTreeAndCallCallback): Deleted.
- UserInterface/Models/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.populateLiveDisplayLocationString):
- UserInterface/Models/WrappedPromise.js:
(WebInspector.WrappedPromise):
- UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._updateBody):
- UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype._dataUpdated):
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers):
- UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.set item):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
- UserInterface/Views/ErrorObjectView.js:
(WebInspector.ErrorObjectView.prototype.update):
- UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.onattach):
(WebInspector.GeneralTreeElement.prototype.onattach.this._boundContextMenuEventHandler): Deleted.
- UserInterface/Views/InlineSwatch.js:
(WebInspector.InlineSwatch.prototype._getNextValidHEXFormat):
(WebInspector.InlineSwatch):
- UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.refresh):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._showPopoverForSelectedNode):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._contentForPopover):
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._mouseup):
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
- UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement.): Deleted.
- UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
- UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype._updateEntries):
- UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
- UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeElementAddContextMenuItems):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.this._codeMirror.addKeyMap): Deleted.
- UserInterface/Views/TabBar.js:
- UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor.prototype._checkDependencies):
- 3:01 PM Changeset in webkit [201619] by
-
- 16 edits3 adds in trunk
REGRESSION(r200694): %ThrowTypeError% is not unique
https://bugs.webkit.org/show_bug.cgi?id=158231
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
The ES6 standard in section 9.2.7.1 states that %ThrowTypeError% is unique. This
change reverts the handling of TypeError before r200694 and then rolls in
throwTypeErrorGetterSetter() with the renamed throwTypeErrorArgumentsCalleeAndCallerGetterSetter().
- runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::getOwnPropertySlot):
(JSC::ClonedArguments::materializeSpecials):
- runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::finishCreation):
(JSC::JSBoundFunction::visitChildren):
- runtime/JSFunction.cpp:
(JSC::getThrowTypeErrorGetterSetter):
(JSC::JSFunction::callerGetter):
(JSC::JSFunction::defineOwnProperty):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::regExpProtoSymbolReplaceFunction):
(JSC::JSGlobalObject::regExpProtoGlobalGetter):
(JSC::JSGlobalObject::regExpProtoUnicodeGetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsCalleeAndCallerGetterSetter):
(JSC::JSGlobalObject::moduleLoader):
(JSC::JSGlobalObject::throwTypeErrorGetterSetter): Deleted.
(JSC::JSGlobalObject::throwTypeErrorCalleeAndCallerGetterSetter): Deleted.
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInStrictModeGetterSetter): Deleted.
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInClassContextGetterSetter): Deleted.
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncThrowTypeError):
(JSC::globalFuncThrowTypeErrorArgumentsCalleeAndCaller):
(JSC::globalFuncThrowTypeErrorCalleeAndCaller): Deleted.
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInStrictMode): Deleted.
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInClassContext): Deleted.
- runtime/JSGlobalObjectFunctions.h:
- tests/stress/reflect-set.js:
LayoutTests:
Rebased tests for the new TypeError messages.
Added a new test, throw-type-error-is-unique.html.
- inspector/runtime/getProperties-expected.txt:
- js/basic-strict-mode-expected.txt:
- js/caller-property-expected.txt:
- js/class-method-and-constructor-properties-expected.txt:
- js/script-tests/caller-property.js:
(strictCaller):
(strictTailCaller):
- js/script-tests/class-method-and-constructor-properties.js:
(F.prototype.getElement):
(F):
(G.prototype.get item):
(G):
(H.prototype.arguments):
(H):
- js/script-tests/throw-type-error-is-unique.js: Added.
(ThrowTypeErrorSource):
(ThrowTypeErrorSource.prototype.checkTypeErrorFunctions):
(A):
(strictArguments):
(test):
- js/throw-type-error-is-unique-expected.txt: Added.
- js/throw-type-error-is-unique.html: Added.
- 2:53 PM Changeset in webkit [201618] by
-
- 5 edits in trunk
[iOS]: Some JSC stress tests fail running out of executable memory when the LLInt is disabled
https://bugs.webkit.org/show_bug.cgi?id=158317
Reviewed by Saam Barati.
Source/JavaScriptCore:
Updated these test to not run the "no-llint" variant when running on ARM machines.
- tests/stress/arrowfunction-lexical-bind-superproperty.js: Skip no-llint for ARM
(testCase):
- tests/stress/proxy-revoke.js: Skipp no-lint for ARM and ARM64
(assert):
Tools:
Added defaultNoNoLLIntRun variant to run the default tests with the exception of the no-llint
variant.
- Scripts/run-jsc-stress-tests:
- 2:24 PM Changeset in webkit [201617] by
-
- 20 edits3 adds in trunk/Source
Unreviewed, reland r201532. The associated regressions have been fixed
by r201584.
- 1:48 PM Changeset in webkit [201616] by
-
- 5 edits in branches/safari-602.1.32-branch/Source
Versioning.
- 1:37 PM Changeset in webkit [201615] by
-
- 2 edits in trunk/Source/WebCore
Crash under CachedResource::addClientToSet()
https://bugs.webkit.org/show_bug.cgi?id=158310
<rdar://problem/23643359>
Reviewed by Eric Carlson.
Only call CachedResource::addClient() on the resource returned
by CachedResourceLoader::requestMedia() if the resource is
non-null. CachedResourceLoader::requestMedia() can return null
in some cases so we need to handle this properly.
No new tests, no known reproduction case.
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::startLoading):
- 1:35 PM Changeset in webkit [201614] by
-
- 6 edits in trunk/Source/WebCore
ScriptExecutionContext::Task constructor should take a NoncopyableFunction<void ()> as parameter
https://bugs.webkit.org/show_bug.cgi?id=158309
Reviewed by Brady Eidson.
ScriptExecutionContext::Task constructor should take a NoncopyableFunction<void ()>
as parameter for consistency with the other constructor and because this can be
called cross-thread.
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::close):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::mayResumePlayback):
- Modules/webaudio/AudioDestinationNode.h:
(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::Task::Task):
- 1:05 PM Changeset in webkit [201613] by
-
- 4 edits in trunk/Websites/webkit.org
Fix typos and make some revisions to the B3 docs
https://bugs.webkit.org/show_bug.cgi?id=158311
Reviewed by Michael Saboff.
I found typos and fixed them. Also, I clarified some things:
- Is B3 IR platform-agnostic? Sort of. I tried to describe when it is (Values usually behave the same way regardless of CPU) and when it isn't (it lets you speak of registers if that's what you want to do, for example).
- How does isValidForm really get used? You don't really need to create an Inst to use it.
- Some other incremental improvements to make the docs clearer.
- docs/b3/assembly-intermediate-representation.html:
- docs/b3/index.html:
- docs/b3/intermediate-representation.html:
- 12:57 PM Changeset in webkit [201612] by
-
- 2 edits in trunk/Source/WebKit2
Crash under WebProcess::registerWithStateDumper()
https://bugs.webkit.org/show_bug.cgi?id=158304
<rdar://problem/25329276>
Reviewed by Anders Carlsson.
The issue is that the block in registerWithStateDumper() was executed in
a background thread and is iterating over m_pageMap HashMap. The crash
occurs when a page gets removed from the m_pageMap HashMap while the
block is iterating over this same HashMap in another thread.
The solution proposed is to execute the registerWithStateDumper()'s
block in the main thread.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::registerWithStateDumper):
- 12:40 PM Changeset in webkit [201611] by
-
- 4 edits in trunk/Source
Use "= delete" for Locker(int)
Rubber stamped by Saam Barati.
Source/JavaScriptCore:
- runtime/ConcurrentJITLock.h:
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):
Source/WTF:
See discussion: https://bugs.webkit.org/show_bug.cgi?id=158306#c8
- wtf/Locker.h:
(WTF::Locker::Locker):
(WTF::Locker::~Locker):
- 12:36 PM Changeset in webkit [201610] by
-
- 4 edits in trunk/Source/JavaScriptCore
ObjectPropertyCondition should have a isStillValidAssumingImpurePropertyWatchpoint function
https://bugs.webkit.org/show_bug.cgi?id=158308
Reviewed by Filip Pizlo.
Recently, structureEnsuresValidityAssumingImpurePropertyWatchpoint was converted to check
what should be isStillValidAssumingImpurePropertyWatchpoint. This patch fixes the API so
it should work as expected. This patch also changes generateConditions in
ObjectPropertyConditionSet to use isStillValidAssumingImpurePropertyWatchpoint.
- bytecode/ObjectPropertyCondition.cpp:
(JSC::ObjectPropertyCondition::structureEnsuresValidityAssumingImpurePropertyWatchpoint):
(JSC::ObjectPropertyCondition::isStillValidAssumingImpurePropertyWatchpoint):
- bytecode/ObjectPropertyCondition.h:
- bytecode/ObjectPropertyConditionSet.cpp:
- 12:21 PM Changeset in webkit [201609] by
-
- 4 edits in trunk/Source
Make it harder to accidentally pass an integer to a locker.
Rubber stamped by Keith Miller.
Source/JavaScriptCore:
- runtime/ConcurrentJITLock.h:
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):
Source/WTF:
See here for the discussion: https://bugs.webkit.org/show_bug.cgi?id=158306#c3
- wtf/Locker.h:
(WTF::Locker::Locker):
(WTF::Locker::~Locker):
- 12:05 PM Changeset in webkit [201608] by
-
- 5 edits2 adds in trunk
Fix a couple of mistakes in CSSParserValue memory management
https://bugs.webkit.org/show_bug.cgi?id=158307
<rdar://problem/26127225>
Source/WebCore:
Patch by Darin Adler <Darin Adler> on 2016-06-02
Reviewed by Daniel Bates.
- css/CSSGrammar.y.in: Added a destructor for calc_func_term. This presumably
fixes some memory leaks in error cases. Removed an assertion about not needing
a call to destroy that was far too limited. Tweaked formatting of the percentage
ase in the key production. Indented calc_func_term to make it consistent with
other productions nearby.
- css/CSSParserValues.cpp:
(WebCore::CSSParserValueList::~CSSParserValueList): Use a modern for loop.
(WebCore::CSSParserValueList::deleteValueAt): Deleted. Unused function, and also
would have resulted in a memory leak unless the code already extracted the value
from the list.
(WebCore::CSSParserValueList::extend): Properly transfer ownership from one value
list to the other by setting the unit to 0 in the donor.
- css/CSSParserValues.h: Removed unused deleteValueAt function.
LayoutTests:
Reviewed by Darin Adler.
- fast/css/calc-with-two-variables-crash-expected.txt: Added.
- fast/css/calc-with-two-variables-crash.html: Added.
- 12:04 PM Changeset in webkit [201607] by
-
- 3 edits in trunk/Websites/perf.webkit.org
Build fix after r201564.
- public/v3/pages/analysis-category-page.js:
(AnalysisCategoryPage.prototype.updateFromSerializedState):
- public/v3/pages/create-analysis-task-page.js:
(CreateAnalysisTaskPage.prototype.updateFromSerializedState):
(CreateAnalysisTaskPage.prototype.render):
- 11:42 AM Changeset in webkit [201606] by
-
- 2 edits in trunk/Tools
LayoutTests time out intermittently due to alert about reopening Simulator after it unexpectedly quit
https://bugs.webkit.org/show_bug.cgi?id=158305
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.clean_up_test_run): Delete simulator's savedState directories during cleanup.
- 11:41 AM Changeset in webkit [201605] by
-
- 5 edits in trunk/Source
Make it easier to use NoLockingNecessary
https://bugs.webkit.org/show_bug.cgi?id=158306
Reviewed by Keith Miller.
Source/JavaScriptCore:
Adapt to the new NoLockingNecessary API. More details in the WTF ChangeLog.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::emitPrefillStackTDZVariables):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
- runtime/ConcurrentJITLock.h:
(JSC::ConcurrentJITLockerBase::ConcurrentJITLockerBase):
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):
Source/WTF:
An idiom that we borrowed from LLVM is that if a function requires a lock to be held, we
have it take a const Locker& as its first argument. This may not communicate which lock is
to be held, but it does help us to remember that some lock must be held. So far, it's been
relatively easy to then figure out which lock. We've had bugs where we forgot to hold a
lock but I don't remember the last time we had a bug where we grabbed the wrong lock.
But sometimes, we know at the point where we call such a method that we actually don't
need to hold any lock. This usually happens during object construction. If we're
constructing some object then we usually know that we have not escaped it yet, so we don't
need to waste time acquiring its lock. We could solve this by having a separate set of
methods that don't do or require locking. This would be cumbersome, since usually for
every variant that takes const Locker&, there is already one that doesn't, and that one
will grab the lock for you. So this means having a third variant, that also doesn't take a
const Locker&, but does no locking. That's pretty weird.
So, we introduced NoLockingNecessary for situations like this. The idiom went like so:
Locker<Whatever> locker(Locker<Whatever>::NoLockingNecessary)
stuff->foo(locker);
Usually though, there would be some distance between where the locker is defined and where
it's used, so when you just look at stuff->foo(locker) in isolation you don't know if this
is a real locker or a NoLockingNecessary cast. Also, requiring two lines for this just
adds code.
This change makes this easier. Now you can just do:
stuff->foo(NoLockingNecessary).
This is because NoLockingNecessary has been pulled out into the WTF namespace (and is
usinged from the global namespace) and the Locker<> constructor that takes
NoLockingNecessaryTag is now implicit.
The only possible downside of this change is that people might use this idiom more
frequently now that it's easier to use. I don't think that's a bad thing. I'm now
convinced that this is not a bad idiom. When I was fixing an unrelated bug, I almost went
the way of adding more locking to some core JSC data structures, and in the process, I
needed to use NoLockingNecessary. It's clear that this is a general-purpose idiom and we
should not impose artificial constraints on its use.
- wtf/Locker.h:
(WTF::Locker::Locker):
(WTF::Locker::~Locker):
- 11:40 AM Changeset in webkit [201604] by
-
- 3 edits2 adds in trunk
SVG content renders in incorrect vertical position when padding-left is not specified
https://bugs.webkit.org/show_bug.cgi?id=158234
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-06-02
Reviewed by Darin Adler.
Source/WebCore:
Fix the optimization in RenderSVGRoot::buildLocalToBorderBoxTransform().
Use LayoutSize::isZero() instead of LayoutSize::isEmpty() to decide whether
there is borderAndPadding applied or not.
Test: svg/custom/svg-root-padding-individual.html
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform):
LayoutTests:
Make sure the SVG root element is positioned correctly when either the sum
of its (leftPadding + rightPadding) or the sum of its (topPadding + bottomPadding)
is equal to zero.
- svg/custom/svg-root-padding-individual-expected.html: Added.
- svg/custom/svg-root-padding-individual.html: Added.
- 11:17 AM Changeset in webkit [201603] by
-
- 14 edits in trunk/Source
Overhaul cross-thread use of ResourceRequest, ResourceResponse, and ResourceError.
https://bugs.webkit.org/show_bug.cgi?id=158293
Reviewed by Darin Adler.
Source/WebCore:
No new tests (Refactor, no behavior change).
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
- loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::removeRequestFromSessionCaches):
- platform/network/ResourceErrorBase.cpp:
(WebCore::ResourceErrorBase::isolatedCopy):
(WebCore::ResourceErrorBase::copy): Deleted.
- platform/network/ResourceErrorBase.h:
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::isolatedCopy):
(WebCore::ResourceRequestBase::setAsIsolatedCopy):
(WebCore::ResourceRequestBase::adopt): Deleted.
Made copyData private, and made "adopt" be "isolatedCopy".
Rest of the changes are all re-indenting the file.
- platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::responseContentDispositionEncodingFallbackArray):
(WebCore::ResourceRequestBase::reportUploadProgress):
(WebCore::ResourceRequestBase::setReportUploadProgress):
(WebCore::ResourceRequestBase::reportLoadTiming):
(WebCore::ResourceRequestBase::setReportLoadTiming):
(WebCore::ResourceRequestBase::reportRawHeaders):
(WebCore::ResourceRequestBase::setReportRawHeaders):
(WebCore::ResourceRequestBase::hiddenFromInspector):
(WebCore::ResourceRequestBase::setHiddenFromInspector):
(WebCore::ResourceRequestBase::requester):
(WebCore::ResourceRequestBase::setRequester):
(WebCore::ResourceRequestBase::encodingRequiresPlatformData):
(WebCore::ResourceRequestBase::ResourceRequestBase):
(WebCore::ResourceRequestBase::platformCompare):
(WebCore::operator==):
(WebCore::operator!=):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::isolatedCopy):
(WebCore::ResourceResponseBase::adopt): Deleted.
- platform/network/ResourceResponseBase.h:
- platform/network/cf/ResourceError.h:
(WebCore::ResourceError::isolatedCopy): Deleted.
Removed platform-specific isolatedCopy, and re-indented the header:
- platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::encodingRequiresPlatformData):
(WebCore::ResourceRequest::cachePartition):
(WebCore::ResourceRequest::setCachePartition):
(WebCore::ResourceRequest::setDomainForCachePartition):
(WebCore::ResourceRequest::resourcePrioritiesEnabled):
(WebCore::ResourceRequest::isolatedCopy): Deleted.
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::isolatedCopy): Deleted.
Source/WebKit2:
- NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::Entry):
- 10:59 AM Changeset in webkit [201602] by
-
- 12 edits in trunk/Source
Modernize various lambda captures
https://bugs.webkit.org/show_bug.cgi?id=158292
Reviewed by Brady Eidson.
Modernize various lambda captures, especially the ones unnecessarily
allocating objects on the heap and destroying them in the lambda.
Source/WebCore:
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
(WebCore::ThreadableWebSocketChannelClientWrapper::resume): Deleted.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
- bindings/js/JSCallbackData.h:
(WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): Deleted.
Source/WebKit2:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::clearDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData): Deleted.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation):
- NetworkProcess/cache/NetworkCacheStorage.h:
- 10:50 AM Changeset in webkit [201601] by
-
- 10 edits in trunk
WebRTC: Update RTCPeerConnection.addTrack() to create (or reuse) an RTCRtpTransceiver
https://bugs.webkit.org/show_bug.cgi?id=158191
Reviewed by Eric Carlson.
Source/WebCore:
Update RTCPeerConnection.addTrack to create an RTCRtpTranscevier, or reuse an existing
transceiver that has not been used to send [1].
A new RtpTransceiverSet type is added that wraps a vector of RTCRtpTransceiver objects
and internally maintains two lists for efficient access to RTCRtpSender and RTCRtpReceiver
objects.
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-addtrack
Updated existing test: fast/mediastream/RTCPeerConnection-add-removeTrack.html
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::removeTrack):
(WebCore::RTCPeerConnection::completeAddTransceiver):
(WebCore::RTCPeerConnection::close):
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCRtpTransceiver.cpp:
(WebCore::RtpTransceiverSet::append):
- Modules/mediastream/RTCRtpTransceiver.h:
(WebCore::RtpTransceiverSet::list):
(WebCore::RtpTransceiverSet::getSenders):
(WebCore::RtpTransceiverSet::getReceivers):
LayoutTests:
Extend existing test to verify the created RTCRtpTransceiver object.
- fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
- fast/mediastream/RTCPeerConnection-add-removeTrack.html:
Add checks for bad argument lists and verify the created RTCRtpTransceiver.
- 9:40 AM Changeset in webkit [201600] by
-
- 3 edits in trunk/Source/WebKit2
Speculative revalidated request returns 200 instead of 304
https://bugs.webkit.org/show_bug.cgi?id=158256
Reviewed by Antti Koivisto and Carlos Garcia Campos.
Already conditional requests coming from WebCore should bypass the
SpeculativeLoadManager. This is because the validation is requested
by WebCore (usually the memory cache) and not our network cache. As
a result, we need to pipe the revalidation response (e.g. 304 status
code) back to WebCore instead of resolving it as disk cache level.
This should fix the /webkit2/WebKitWebResource/response unit test.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::requestsHeadersMatch):
- 5:03 AM Changeset in webkit [201599] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
Unskip websocket tests passing after r201500.
- platform/win/TestExpectations:
- 3:33 AM Changeset in webkit [201598] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
The test storage/indexeddb/modern/blob-simple.html is passing.
- platform/win/TestExpectations:
- 2:48 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 2:31 AM Changeset in webkit [201597] by
-
- 5 edits1 add in trunk/LayoutTests
Unreviewed GTK+ gardening Additional rebaseline after r201397.
Added reference files for pixel tests.
- fast/forms/search-input-rtl-expected.txt:
- platform/gtk/fast/css/text-overflow-input-expected.png:
- platform/gtk/fast/forms/placeholder-position-expected.png:
- platform/gtk/fast/forms/search-input-rtl-expected.png: Added.
- platform/gtk/fast/forms/search-rtl-expected.png:
- 1:45 AM Changeset in webkit [201596] by
-
- 32 edits in trunk/Source
Source/WebCore:
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
No change of behavior.
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::load):
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::clearDocument):
(WebCore::CSSFontSelector::beginLoadingFontSoon):
(WebCore::CSSFontSelector::beginLoadTimerFired):
- css/CSSFontSelector.h:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::scheduleArchiveLoad):
- loader/DocumentLoader.h:
- loader/LoaderStrategy.h:
- loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
(WebCore::NetscapePlugInStreamLoader::create):
- loader/NetscapePlugInStreamLoader.h:
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::start):
- loader/ResourceLoader.h:
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::RequestCountTracker::RequestCountTracker):
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::create):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::notifyDone):
- loader/SubresourceLoader.h:
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadResource):
- loader/appcache/ApplicationCacheHost.h:
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::incrementRequestCount):
(WebCore::CachedResourceLoader::decrementRequestCount):
- loader/cache/CachedResourceLoader.h:
Source/WebKit:
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
- WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::loadResource):
- WebCoreSupport/WebResourceLoadScheduler.h:
Source/WebKit/mac:
Add WebIDL special operation support: serializer
https://bugs.webkit.org/show_bug.cgi?id=156293
Reviewed by Darin Adler.
- Plugins/Hosted/HostedNetscapePluginStream.mm:
(WebKit::HostedNetscapePluginStream::start):
- Plugins/WebNetscapePluginStream.mm:
(WebNetscapePluginStream::start):
Source/WebKit/win:
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
- Plugins/PluginStream.cpp:
(WebCore::PluginStream::start):
Source/WebKit2:
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad):
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad):
(WebKit::WebLoaderStrategy::startLocalLoad):
(WebKit::WebLoaderStrategy::networkProcessCrashed):
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::create):
(WebKit::WebResourceLoader::WebResourceLoader):
- WebProcess/Network/WebResourceLoader.h:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::Stream::start):
- 12:36 AM Changeset in webkit [201595] by
-
- 2 edits in trunk/Source/WebCore
[Wayland] PlatformDisplayWayland destructor is super crashy
https://bugs.webkit.org/show_bug.cgi?id=157973
Reviewed by Michael Catanzaro.
EGL registers two at exist callbacks one to finish the display and another one to unload drivers, the one to
finish the display happens first. When our destructor is called the _eglFiniDisplay callback has already been
called, so we have a valid pointer for an already finished display. Then eglTerminate tries to find the display
in the global display list, but fails and for some reason it crashes when trying to return an error.
If atexit is called after the global PlatformDisplay constructor, the atexit handler is called before the
destructor. The atexit callbacks are called in reverse order, so if we register an atexit handler after the
global instace has been created and after EGL has been initialized, we could terminate the EGL display before
the EGL atexit handlers and the global PlatformDisplay destructor.
- platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::initializeEGLDisplay):
Jun 1, 2016:
- 10:47 PM Changeset in webkit [201594] by
-
- 10 edits in trunk/Source
Get rid of StringCapture.
https://bugs.webkit.org/show_bug.cgi?id=158285
Reviewed by Chris Dumez.
Source/WebCore:
No new tests (Refactor, no behavior change).
- dom/Document.cpp:
(WebCore::Document::addConsoleMessage):
(WebCore::Document::addMessage):
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::installContentFilterUnblockHandler):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::setExternalPlayback):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
Source/WTF:
- wtf/text/WTFString.h:
(WTF::StringCapture::StringCapture): Deleted.
(WTF::StringCapture::string): Deleted.
(WTF::StringCapture::releaseString): Deleted.
(WTF::StringCapture::operator=): Deleted.
- 10:39 PM Changeset in webkit [201593] by
-
- 2 edits in trunk/Source/WebKit2
Notify client immediately if network session doesn't exist for a synchronous XHR load.
https://bugs.webkit.org/show_bug.cgi?id=158239
<rdar://problem/26344251>
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2016-06-01
Reviewed by Brady Eidson.
For a synchronous XHR load, if the network session doesn't exist, we should notify NetworkLoadClient.
Otherwise the Web process could hang when waiting for the synchronous load to finish.
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::NetworkLoad):
- 10:21 PM Changeset in webkit [201592] by
-
- 4 edits2 adds in trunk
REGRESSION(r191907): Can't enter combining diacritic marks in Web Inspector fields
https://bugs.webkit.org/show_bug.cgi?id=158227
<rdar://problem/26232464>
Source/WebKit2:
Reviewed by Darin Adler and Alexey Proskuryakov.
Web Inspector uses a WKWebView subclass for the inspector frontend interface.
Since r191907, WKWebView does not have an inner WKView, and instead shares
a WebViewImpl to implement the same methods as WKView. So, WKView is no longer
involved at all when delivering keystrokes to the Web Inspector interface.
This caused a subtle regression where some keystrokes were not being interpreted
in the same way by AppKit because WKWebView does not conform to NSTextInputClient
but WKView does. AppKit won't automatically create a NSTextInputContext for a NSView
unless the subclass is declared as conforming to NSTextInputClient. Thus, the keystroke
never goes through NSTextInputContext machinery which converts the keystroke into
a combining diacritic character.
This regression is covered by a new API test.
- UIProcess/API/Cocoa/WKWebView.mm: mark WKWebView as conforming to NSTextInputClient.
Tools:
Reviewed by Alexey Proskuryakov.
Add a regression test that runs on Mac only.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewTextInput.mm: Added.
(-[DummyNavigationDelegate webView:didFinishNavigation:]):
(TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/editable-body.html: Added.
- 9:38 PM Changeset in webkit [201591] by
-
- 2 edits in trunk/Source/WebKit2
Try to fix ENABLE(IOS_TOUCH_EVENTS) builds.
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::touchEvent):
- 9:26 PM Changeset in webkit [201590] by
-
- 3 edits in trunk/Source/JavaScriptCore
Structure::previousID() races with Structure::allocateRareData()
https://bugs.webkit.org/show_bug.cgi?id=158280
Reviewed by Mark Lam.
The problem is that previousID() would test hasRareData() and then either load the
previous Structure from the rare data, or load it directly. allocateRareData() would set
the hasRareData() bit separately from moving the Structure pointer into the rare data. So
we'd have a race that would cause previousID() to sometimes return the rarae data instead
of the previous Structure.
The fix is to get rid of the hasRareData bit. We can use the structureID of the
previousOrRareData cell to determine if it's the previousID or the RareData. This fixes the
race and it's probably not any slower.
- runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::allocateRareData):
- runtime/Structure.h:
- 9:07 PM Changeset in webkit [201589] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
Runaway WebContent process CPU & memory @ foxnews.com
https://bugs.webkit.org/show_bug.cgi?id=158290
Reviewed by Mark Lam.
Clear the thrown value at the end of the catch block so that the stack scanner won't
find the value during GC.
Added a new stress test.
- bytecompiler/NodesCodegen.cpp:
(JSC::TryNode::emitBytecode):
- tests/stress/recursive-try-catch.js: Added.
(logError):
(tryCallingBadFunction):
(recurse):
(test):
- 9:01 PM Changeset in webkit [201588] by
-
- 52 edits in trunk/Source
Audit RenderObject casts and fix problems and style issues found
https://bugs.webkit.org/show_bug.cgi?id=158221
Reviewed by Chris Dumez.
Source/WebCore:
- bindings/objc/DOM.mm:
(-[DOMElement image]): Use auto to get more specific types in code getting
the renderer for an element instead of dumbing down the type to RenderObject.
- dom/Element.cpp:
(WebCore::Element::scrollByUnits): Call renderer only once. The comment in
Node advises we should do this since it has a branch in it.
(WebCore::Element::absoluteEventBounds): Call renderer only once. Also use
auto for a rect type to clarify that we are not changing the type of the
rect returned by the fucntion.
(WebCore::Element::webkitGetRegionFlowRanges): Call renderer only once.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded): Use auto
to get a mroe specific renderer type.
- editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply): Call renderer only once.
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_addAttachmentForElement): Add an obviously missing
null check for something that is null checked elsewhere.
(fileWrapperForURL): Ditto.
(fileWrapperForElement): Changed argument type to HTMLImageElement& since
the call site already checks the type of the object. Use HTMLImageElement::src
instead of repeating the code here. Check the type of the renderer instead of
assuming it's a RenderImage.
(WebCore::editingAttributedStringFromRange): Pass a reference, not a pointer.
- html/HTMLAnchorElement.cpp:
(WebCore::appendServerMapMousePosition): Take a reference to an event rather
than a "known to be non-null" pointer. Call renderer only once. Round the
floating point values rather than truncating them.
(WebCore::HTMLAnchorElement::handleClick): Pass a reference.
- html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::setFile): Removed the now-unneeded cast since
the renderer function returns a pointer of a more specific type now.
(WebCore::HTMLAttachmentElement::parseAttribute): Ditto.
(WebCore::HTMLAttachmentElement::attachmentTitle): Use auto& to avoid a bit of
reference count churn.
- html/HTMLAttachmentElement.h: Override renderer to return a more specific type.
This follows the pattern that ContainerNode::renderer uses.
- html/HTMLButtonElement.h: Ditto.
- html/HTMLCanvasElement.cpp: Gave the constants at the top of the file more
normal names. Removed unneeded "static" from them. Moved the
defaultInterpolationQuality constant here from the header because it doesn't
need to be there.
(WebCore::HTMLCanvasElement::HTMLCanvasElement): Updated for name changes.
(WebCore::HTMLCanvasElement::createElementRenderer): Removed unneeded code to
set m_rendererIsCanvas to record renderer type; we can just check the type.
(WebCore::HTMLCanvasElement::setHeight): Updated for name changes.
(WebCore::HTMLCanvasElement::setWidth): Ditto.
(WebCore::HTMLCanvasElement::reset): Check the type of the renderer directly
instead of calling m_rendererIsCanvas. This helped make it clear we were
do extra unneeded checks since a renderer can't both be a RenderCanvas and
not be a RenderBox.
(WebCore::HTMLCanvasElement::createImageBuffer): Updated for name changes.
- html/HTMLCanvasElement.h: Moved DefaultInterpolationQuality into the cpp file.
Use nullptr instead of 0. Removed m_rendererIsCanvas.
- html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::HTMLFieldSetElement): Initialize m_documentVersion
in the class definition.
(WebCore::HTMLFieldSetElement::~HTMLFieldSetElement): Use m_hasDisabledAttribute.
(WebCore::updateFromControlElementsAncestorDisabledStateUnder): Fixed typo.
(WebCore::HTMLFieldSetElement::disabledAttributeChanged): Fixed mistake in this
function that would cause the number of disabled fieldset elements to be too high
if the disabled attribute's value was changed from one value to another. Use a
boolean to track the old value; can't think of a solution that works without that.
(WebCore::HTMLFieldSetElement::childrenChanged): Fixed typo.
(WebCore::HTMLFieldSetElement::didMoveToNewDocument): Use m_hasDisabledAttribute.
(WebCore::HTMLFieldSetElement::updateAssociatedElements): Changed name to make it
clearer what this function does. Tweaked a bit without changing behavior.
(WebCore::HTMLFieldSetElement::associatedElements): Updated for name change.
(WebCore::HTMLFieldSetElement::length): Changed to call associatedElements instead of
repeating that it does.
- html/HTMLFieldSetElement.h: Override renderer to return a more specific type.
Also updated for other changes mentioned above.
- html/HTMLFrameElement.cpp:
(WebCore::HTMLFrameElement::HTMLFrameElement): Initialize booleans in the class
definition rather than doing it here.
(WebCore::HTMLFrameElement::parseAttribute): Call renderer only once.
- html/HTMLFrameElement.h: Override renderer to return a more specific type.
Also initialize some booleans in the class definition.
- html/HTMLIFrameElement.h: Override renderer to return a more specific type.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateRenderer): Added. Helper for a common idiom.
(WebCore::HTMLMediaElement::didAttachRenderers): Use auto to get a more specific
type for the renderer.
(WebCore::HTMLMediaElement::willDetachRenderers): Call renderer only once.
(WebCore::HTMLMediaElement::didRecalcStyle): Use updateRenderer to call renderer
only once.
(WebCore::HTMLMediaElement::loadResource): Ditto.
(WebCore::HTMLMediaElement::waitForSourceChange): Ditto.
(WebCore::HTMLMediaElement::noneSupported): Ditto.
(WebCore::HTMLMediaElement::setReadyState): Ditto.
(WebCore::HTMLMediaElement::progressEventTimerFired): Ditto.
(WebCore::HTMLMediaElement::selectNextSourceChild): Renamed goto label to use a style
that fits WebKit coding style. Call renderer only once in MediaQuery code.
(WebCore::HTMLMediaElement::mediaPlayerRepaint): Call renderer only once.
(WebCore::HTMLMediaElement::mediaPlayerSizeChanged): Use updateRenderer to call
renderer only once.
(WebCore::HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated): Call renderer
only once.
(WebCore::HTMLMediaElement::mediaPlayerGraphicsDeviceAdapter): Call page only once.
(WebCore::HTMLMediaElement::mediaEngineWasUpdated): Use updateRenderer to call
renderer only once.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Ditto.
(WebCore::HTMLMediaElement::updatePlayState): Ditto.
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer): Ditto.
(WebCore::HTMLMediaElement::resume): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerContentBoxRect): Call renderer only once.
(WebCore::mediaElementIsAllowedToAutoplay): Use auto to get a more specific type.
- html/HTMLMediaElement.h: Removed conditionals around forward declarations.
Tweaked formatting a bit. Added the updateRender function. Override renderer to
return a more specific type.
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::optionElementChildrenChanged): Don't use the renderer
just to get to the document for the AXObjectCache.
(WebCore::HTMLSelectElement::setLength): Use auto for the list items vector.
(WebCore::HTMLSelectElement::nextValidIndex): Ditto.
(WebCore::HTMLSelectElement::firstSelectableListIndex): Ditto.
(WebCore::HTMLSelectElement::nextSelectableListIndexPageAway): Ditto. Also add a
null check for the renderer.
(WebCore::HTMLSelectElement::updateListBoxSelection): Split an assertion with &&
in it into two separate assertions. Use auto for the list items vector and use
a reference for the list items.
(WebCore::HTMLSelectElement::listBoxOnChange): Use auto for the list items vector
and use a reference for the list items.
(WebCore::HTMLSelectElement::setRecalcListItems): Don't use the renderer
just to get to the document for the AXObjectCache.
(WebCore::HTMLSelectElement::selectOption): Use auto for the list items vector.
(WebCore::HTMLSelectElement::optionToListIndex): Ditto.
(WebCore::HTMLSelectElement::listToOptionIndex): Ditto.
(WebCore::HTMLSelectElement::searchOptionsForValue): Ditto.
(WebCore::HTMLSelectElement::restoreFormControlState): Ditto.
(WebCore::HTMLSelectElement::platformHandleKeydownEvent): Call renderer only once.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Split an assertion with
&& in it into two separate assertions. Use auto for the list items vector. Call
renderer only once.
(WebCore::HTMLSelectElement::updateSelectedState): Use a reference for the list
item.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Use auto for the list
items vvector. Call renderer less often; could not quite get it down to once.
(WebCore::HTMLSelectElement::defaultEventHandler): Call renderer only once.
(WebCore::HTMLSelectElement::lastSelectedListIndex): Use auto for the list items
vector and use a reference for the list items.
(WebCore::HTMLSelectElement::optionAtIndex): Use a reference for the list item.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): Use auto for the list
items vector and use a reference for the list items.
(WebCore::HTMLSelectElement::length): Use auto for the list items vector.
- html/HTMLTextAreaElement.h: Override renderer to return a more specific type.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didAttachRenderers): Call renderer only once and
don't downcast it. There was no obvious type check because the renderer has a
guaranteed type, but this is now clearer because it's the renderer function
that returns a more specific type.
(WebCore::HTMLVideoElement::parseAttribute): Ditto.
(WebCore::HTMLVideoElement::setDisplayMode): Ditto.
- html/HTMLVideoElement.h: Override renderer to return a more specific type.
- html/HTMLWBRElement.h: Ditto.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager): Removed
unneeded typecast in code that null checks a renderer.
(WebCore::isMainContent): Remove now-unneeded downcast of a renderer
obtained from an HTMLMediaElement. Fixed awkward formatting by splitting
an if statement into two.
(WebCore::isElementLargeEnoughForMainContent): Remove now unneeded downcast
of a renderer obtained from an HTMLMediaElement.
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent): Call renderer only once.
Also use auto more in the code rather than writing out types.
- html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint): Used the renderBox
function more consistently for all the renderers used here; before,
some had null checks and others did not.
- html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Use auto
a bit more.
- page/EventHandler.cpp:
(WebCore::enclosingScrollableArea): Removed a redundant null check and
stopped using the name "element" for a local variable that was not
always an element.
- page/PrintContext.cpp:
(WebCore::enclosingBoxModelObject): Rewrote loop to be simpler and tighter.
Also marked this inline since it's used only one place.
(WebCore::PrintContext::pageNumberForElement): Use auto for the return
value rather than writing out the type.
- page/SpatialNavigation.cpp:
(WebCore::isScrollableNode): Tighten the code and use auto a bit.
- platform/ios/WebVideoFullscreenControllerAVKit.mm: Add an include of
RenderVideo.h since this gets at the renderer for a video.
- rendering/RenderAttachment.h:
(WebCore::HTMLAttachmentElement::renderer): Added. Function is here because
it can only be called by code that includes this header. This matches the
pattern of RenderElement.h and ContainerNode::renderer.
- rendering/RenderFrame.cpp: Added now-needed include.
- rendering/RenderFrame.h:
(WebCore::HTMLFrameElement::renderer): Added. Same logic as above.
- rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients): Use auto
a bit and call rendeer only once.
- rendering/RenderMedia.h:
(WebCore::HTMLMediaElement::renderer): Added. Same logic as above.
- rendering/RenderTextControlMultiLine.h:
(WebCore::HTMLTextAreaElement::renderer): Ditto.
- rendering/RenderVideo.cpp:
(WebCore::placeholder): Renamed. Tightened up argument type to match what
is passed at all the call sites. Use auto instead of RenderObject.
(WebCore::RenderVideo::offsetLeft): Use auto and the renamed function above.
(WebCore::RenderVideo::offsetTop): Ditto.
(WebCore::RenderVideo::offsetWidth): Ditto.
(WebCore::RenderVideo::offsetHeight): Ditto.
- rendering/RenderVideo.h:
(WebCore::HTMLVideoElement::renderer): Added. Same logic as above.
- svg/SVGGElement.cpp:
(WebCore::SVGGElement::createElementRenderer): Fixed typo.
- svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::createElementRenderer): Removed
non-helpful oblique comment.
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::createElementRenderer): Ditto.
Source/WebKit/mac:
- Misc/WebNSPasteboardExtras.mm:
(imageFromElement): Use auto and tighten the logic a bit.
(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
Use auto and added a comment about this not using imageFromElement.
- Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView _windowClipRect]): Consistently cast to
RenderEmbeddedObject, which is the class used for renderers for plug-ins.
(-[WebBaseNetscapePluginView inFlatteningPaint]): Ditto.
(-[WebBaseNetscapePluginView invalidatePluginContentRect:]): Ditto.
(-[WebBaseNetscapePluginView actualVisibleRectInWindow]): Ditto.
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createPlugin): Changed code so it does a null check
rather than assuming the renderer is non-null.
(WebFrameLoaderClient::createJavaAppletWidget): Ditto.
Source/WebKit2:
- Shared/WebRenderObject.cpp:
(WebKit::WebRenderObject::WebRenderObject): Tightened up the code that
builds the tree of objects; fewer local variables.
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::invalidateRect): Cast to RenderEmbeddedObject since
that is the class used for plug-ins.
(WebKit::PluginView::pluginProcessCrashed): Ditto.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin): Ditto.
(WebKit::WebPage::plugInIsPrimarySize): Check the renderer for null here.
Did not change this to RenderEmbeddedObject, though, because I wasn't
absolute certain this is only called with that type of renderer.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition): Tweaked.
- 8:38 PM Changeset in webkit [201587] by
-
- 7 edits in trunk/Source/WebKit2
Modernize lambda usage for all callers of RunLoop::dispatch() (take 2).
https://bugs.webkit.org/show_bug.cgi?id=158277
Reviewed by Chris Dumez.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::deleteDumpFile):
- Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
- UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
- UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processDidCloseConnection):
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
- 8:34 PM Changeset in webkit [201586] by
-
- 5 edits3 adds in trunk
[JSC] Some setters for components of Date do not timeClip() their result
https://bugs.webkit.org/show_bug.cgi?id=158278
Source/JavaScriptCore:
rdar://problem/25131426
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-01
Reviewed by Geoffrey Garen.
Many of the setters where not doing timeClip() on the computed UTC
time since Epoch.
See http://www.ecma-international.org/ecma-262/6.0/#sec-date.prototype.setdate
and the following sections for the definition.
- runtime/DatePrototype.cpp:
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
Source/WTF:
Unreviewed.
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-01
- wtf/DateMath.cpp:
(WTF::equivalentYearForDST): Deleted.
The assertion is bogus.
As the comments above explains, the function is completely wrong for years
outside [1900-2100].
The tests passing large values for years are failing (year <= maxYear).
The weird NaN test is a mystery. The old changelog does not explain it.
LayoutTests:
rdar://problem/25131426
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-01
Reviewed by Geoffrey Garen.
New test coverage for large values.
Note that some of those tests are still failing with this patch.
The reason is our code handling month and years is unable to deal
with values outside int32.
Changing that is a bit more complicated due to the number of users
of DateMath. I leave that for the future.
- js/date-timeClip-large-values-expected.txt: Added.
- js/date-timeClip-large-values.html: Added.
- js/script-tests/date-timeClip-large-values.js: Added.
- 8:19 PM Changeset in webkit [201585] by
-
- 2 edits in trunk/Source/WebCore
LayoutTest accessibility/ios-simulator/attributed-string-for-range.html failing on ios-simulator debug
https://bugs.webkit.org/show_bug.cgi?id=158279
Reviewed by Alexey Proskuryakov.
Just use the same description for debug and release. We're not getting any benefit from having two.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper description]):
- 8:18 PM Changeset in webkit [201584] by
-
- 6 edits in trunk/Source/JavaScriptCore
canOptimizeStringObjectAccess should use ObjectPropertyConditions rather than structure watchpoints
https://bugs.webkit.org/show_bug.cgi?id=158291
Reviewed by Benjamin Poulain.
The old StringObject primitive access code used structure watchpoints. This meant that
if you set a watchpoint on String.prototype prior to tiering up to the DFG then added
a new property to String.prototype then we would never use StringObject optimizations.
This made property caching in the LLInt bad because it meant we would watchpoint
String.prototype very early in the program, which hurt date-format-xpab.js since that
benchmark relies on the StringObject optimizations.
This patch also extends ObjectPropertyConditionSet to be able to handle a slotBase
equivalence condition. Since that makes the code for generating the DFG watchpoints
significantly cleaner.
- bytecode/ObjectPropertyCondition.cpp:
(JSC::ObjectPropertyCondition::structureEnsuresValidityAssumingImpurePropertyWatchpoint):
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::ObjectPropertyConditionSet::hasOneSlotBaseCondition):
(JSC::ObjectPropertyConditionSet::slotBaseCondition):
(JSC::generateConditionsForPrototypeEquivalenceConcurrently):
- bytecode/ObjectPropertyConditionSet.h:
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::isStringPrototypeMethodSane):
(JSC::DFG::Graph::canOptimizeStringObjectAccess):
- dfg/DFGGraph.h:
- 6:09 PM Changeset in webkit [201583] by
-
- 2 edits in trunk/Source/WebKit2
[iOS] Regression(r200972): Crash under WebKit::WebPage::selectTextWithGranularityAtPoint()
https://bugs.webkit.org/show_bug.cgi?id=158284
<rdar://problem/26573954>
Reviewed by Ryosuke Niwa.
range can be null but r200972 started dereferencing it without null
check. This patch adds a null check for range and uses the pre-r200972
code path if range is null.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectTextWithGranularityAtPoint):
- 5:45 PM Changeset in webkit [201582] by
-
- 5 edits in branches/safari-601-branch/Source
Versioning.
- 5:43 PM Changeset in webkit [201581] by
-
- 5 edits in branches/safari-601.1.46-branch/Source
Versioning.
- 5:38 PM Changeset in webkit [201580] by
-
- 2 edits in tags/Safari-602.1.35/Source/WebCore
Merged r201576. rdar://problem/26584828
- 5:23 PM Changeset in webkit [201579] by
-
- 2 edits in trunk/Source/WebCore
Use HashMap::ensure() in DocumentOrderedMap::add()
https://bugs.webkit.org/show_bug.cgi?id=158283
Reviewed by Ryosuke Niwa.
Use HashMap::ensure() in DocumentOrderedMap::add() to avoid constructing
a MapEntry if the key is already present in the HashMap.
- dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::add):
- 5:23 PM Changeset in webkit [201578] by
-
- 1 copy in tags/Safari-602.1.32.7
New tag.
- 5:22 PM Changeset in webkit [201577] by
-
- 1 copy in tags/Safari-601.1.46.144
New tag.
- 5:09 PM Changeset in webkit [201576] by
-
- 2 edits in trunk/Source/WebCore
Update QuartzCoreSPI.h for <rdar://problem/26584828>.
- platform/spi/cocoa/QuartzCoreSPI.h:
- 4:38 PM Changeset in webkit [201575] by
-
- 25 edits in trunk/Source
Modernize lambda usage for all callers of RunLoop::dispatch().
https://bugs.webkit.org/show_bug.cgi?id=158265
Reviewed by Chris Dumez.
Source/WebCore:
No new tests (Refactor, no behavior change).
- Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::deleteDatabase):
(WebCore::InProcessIDBServer::didDeleteDatabase):
(WebCore::InProcessIDBServer::openDatabase):
(WebCore::InProcessIDBServer::didOpenDatabase):
(WebCore::InProcessIDBServer::didAbortTransaction):
(WebCore::InProcessIDBServer::didCommitTransaction):
(WebCore::InProcessIDBServer::didCreateObjectStore):
(WebCore::InProcessIDBServer::didDeleteObjectStore):
(WebCore::InProcessIDBServer::didClearObjectStore):
(WebCore::InProcessIDBServer::didCreateIndex):
(WebCore::InProcessIDBServer::didDeleteIndex):
(WebCore::InProcessIDBServer::didPutOrAdd):
(WebCore::InProcessIDBServer::didGetRecord):
(WebCore::InProcessIDBServer::didGetCount):
(WebCore::InProcessIDBServer::didDeleteRecord):
(WebCore::InProcessIDBServer::didOpenCursor):
(WebCore::InProcessIDBServer::didIterateCursor):
(WebCore::InProcessIDBServer::abortTransaction):
(WebCore::InProcessIDBServer::commitTransaction):
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::InProcessIDBServer::createObjectStore):
(WebCore::InProcessIDBServer::deleteObjectStore):
(WebCore::InProcessIDBServer::clearObjectStore):
(WebCore::InProcessIDBServer::createIndex):
(WebCore::InProcessIDBServer::deleteIndex):
(WebCore::InProcessIDBServer::putOrAdd):
(WebCore::InProcessIDBServer::getRecord):
(WebCore::InProcessIDBServer::getCount):
(WebCore::InProcessIDBServer::deleteRecord):
(WebCore::InProcessIDBServer::openCursor):
(WebCore::InProcessIDBServer::iterateCursor):
(WebCore::InProcessIDBServer::establishTransaction):
(WebCore::InProcessIDBServer::fireVersionChangeEvent):
(WebCore::InProcessIDBServer::didStartTransaction):
(WebCore::InProcessIDBServer::didCloseFromServer):
(WebCore::InProcessIDBServer::notifyOpenDBRequestBlocked):
(WebCore::InProcessIDBServer::databaseConnectionClosed):
(WebCore::InProcessIDBServer::abortOpenAndUpgradeNeeded):
(WebCore::InProcessIDBServer::didFireVersionChangeEvent):
(WebCore::InProcessIDBServer::openDBRequestCancelled):
(WebCore::InProcessIDBServer::confirmDidCloseFromServer):
(WebCore::InProcessIDBServer::getAllDatabaseNames):
(WebCore::InProcessIDBServer::didGetAllDatabaseNames):
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::invalidate):
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
(WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange):
(WebCore::ThreadedScrollingTree::handleWheelEventPhase):
(WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices):
(WebCore::ThreadedScrollingTree::deferTestsForReason):
(WebCore::ThreadedScrollingTree::removeTestDeferralForReason):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::platformPrecache):
- platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::createDecodeTask):
(WebCore::DataURLDecoder::decode):
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::retrieveFromMemory):
- Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::enqueueIncomingMessage):
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::receiveSourceEventHandler):
- Shared/mac/CookieStorageShim.mm:
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
- UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):
- UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::ProcessLauncher):
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
- UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isWebProcessResponsive):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::isResponsive):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
- WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::pluginThreadAsyncCall):
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::unprotectPluginFromDestruction):
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):
- WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
- 3:49 PM Changeset in webkit [201574] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r201385) ASSERT in WebCore::HTMLMediaElement::updateActiveTextTrackCues + 5688
https://bugs.webkit.org/show_bug.cgi?id=158164
<rdar://problem/26498634>
Reviewed by Jer Noble.
No new tests, this prevents an assert in existing tests.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement): Call beginIgnoringTrackDisplayUpdateRequests
so we avoid doing unnecessary work triggered by destruction.
- 3:22 PM Changeset in webkit [201573] by
-
- 7 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling in r201436.
https://bugs.webkit.org/show_bug.cgi?id=158143
r201562 should haved fixed the Dromaeo DOM core regression.
Restored changeset:
"REGRESSION: JSBench spends a lot of time transitioning
to/from dictionary"
https://bugs.webkit.org/show_bug.cgi?id=158045
http://trac.webkit.org/changeset/201436
- 2:43 PM Changeset in webkit [201572] by
-
- 2 edits in trunk/Source/WebCore
Fix iOS build.
- platform/spi/cg/CoreGraphicsSPI.h: No ColorSync on iOS.
- 2:43 PM Changeset in webkit [201571] by
-
- 2 edits in trunk/Source/WebCore
Crash under eventTargetRespectingTargetRules()
https://bugs.webkit.org/show_bug.cgi?id=158273
<rdar://problem/26343998>
Reviewed by Alex Christensen.
The code would call nodeOrHostIfPseudoElement(), which can return null
and then dereference it in eventTargetRespectingTargetRules() without
null check. This patch adds a null check. When the node is null, the
while loop after will do nothing and thus the target will not be used.
No new tests, we do not have a good reproduction case.
- dom/EventPath.cpp:
(WebCore::EventPath::EventPath):
- 2:40 PM Changeset in webkit [201570] by
-
- 14 edits in trunk/Source/WebCore
Unreviewed, rolling out r201551 and r201552.
https://bugs.webkit.org/show_bug.cgi?id=158275
This change caused 3 API tests to crash on ios-simulator
(Requested by ryanhaddad on #webkit).
Reverted changesets:
"Precache primary font in a secondary thread"
https://bugs.webkit.org/show_bug.cgi?id=158243
http://trac.webkit.org/changeset/201551
"Remove accidental fprintf."
http://trac.webkit.org/changeset/201552
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-01
- 2:31 PM Changeset in webkit [201569] by
-
- 2 edits in branches/safari-602.1.32-branch/Source/WebCore
Merge r201567. rdar://problem/25388848
- 2:27 PM Changeset in webkit [201568] by
-
- 6 edits2 adds in trunk
AX: iOS: VoiceOver can't access attachments in mail messages
https://bugs.webkit.org/show_bug.cgi?id=158198
Reviewed by Joanmarie Diggs.
Source/WebCore:
Replaced elements, like attachemnts, were not being exposed in the attributed string returned to VoiceOver.
Make sure they are exposed with the attachment character, pointing to the actual element.
Test: accessibility/ios-simulator/attributed-string-for-range.html
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(AccessibilityUnignoredAncestor):
(-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
Tools:
- DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::stringForRange):
(AccessibilityUIElement::attributedStringForRange):
(AccessibilityUIElement::attributedStringRangeIsMisspelled):
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled):
LayoutTests:
- accessibility/ios-simulator/attributed-string-for-range.html: Added.
- 1:55 PM Changeset in webkit [201567] by
-
- 2 edits in trunk/Source/WebCore
setVideoFullscreenGravity() has no effect on the fullscreen video layer
https://bugs.webkit.org/show_bug.cgi?id=158267
Reviewed by Eric Carlson.
When we moved to a 2-AVPlayerLayer solution, we didn't update setVideoFullscreenGravity()
to change the correct layer's videoGravity property.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
- 1:32 PM Changeset in webkit [201566] by
-
- 6 edits1 delete in trunk
Unreviewed, rolling out r201488.
https://bugs.webkit.org/show_bug.cgi?id=158268
Caused 23% regression on JetStream's crypto-md5 (Requested by
rniwa on #webkit).
Reverted changeset:
"[ESNext] Support trailing commas in function param lists"
https://bugs.webkit.org/show_bug.cgi?id=158020
http://trac.webkit.org/changeset/201488
- 1:15 PM Changeset in webkit [201565] by
-
- 4 edits in trunk/Source/WebCore
Fix null dereferencing in ResourceTimingInformation::addResourceTiming
https://bugs.webkit.org/show_bug.cgi?id=158266
rdar://problem/26528466
Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-01
Reviewed by Chris Dumez.
This would crash sometimes in http/tests/security/cross-frame-access-custom.html
- loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming):
- loader/ResourceTimingInformation.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::loadDone):
We would dereference a null pointer on the first instruction when calling
Document::parentDocument from ResourceTimingInformation::addResourceTiming,
which means the document was null. CachedResourceLoader::document even has
a comment saying it can be null, so we should check it before using it.
- 12:55 PM Changeset in webkit [201564] by
-
- 15 edits in trunk/Websites/perf.webkit.org
v3 UI should support marking and unmarking outliers as well as hiding them
https://bugs.webkit.org/show_bug.cgi?id=158248
Rubber-stamped by Chris Dumez.
Added the support for marking and unmarking a sequence of points as outliers. Unlike v2, we now support marking
multiple points as outliers in a single click. Also fixed a bug that outliers are never explicitly hidden in v3 UI.
This patch splits ChartStyles.createChartSourceList into two functions: resolveConfiguration and createSourceList
to separate the work of resolving platform and metric IDs to their respective model objects, and creating a source
list used by TimeSeriesChart to fetch measurement sets. createSourceList is called again when filtering options are
changed.
It also adds noCache option to TimeSeriesChart's fetchMeasurementSets, MeasurementSet's fetchBetween and
_fetchPrimaryCluster to update the measurement sets after marking or unmarking points as outliers. In addition, it
fixes a bug that the annotation bars for analysis tasks are not updated in charts page after creating an analysis
task by adding noCache option to ChartPaneBase's fetchAnalysisTasks, AnalysisTask's fetchByPlatformAndMetric and
_fetchSubset.
Finally, this patch splits ChartPane._makeAnchorToOpenPane into _makePopoverActionItem, _makePopoverOpenOnHover and
_setPopoverVisibility for clarity.
- public/v3/components/chart-pane-base.js:
(ChartPaneBase): Added _disableSampling and _showOutliers as instance variables.
(ChartPaneBase.prototype.configure):
(ChartPaneBase.prototype.isSamplingEnabled): Added.
(ChartPaneBase.prototype.setSamplingEnabled): Added. When a filtering option is updated, recreate the source list
so that TimeSeriesChart.setSourceList can re-fetch the measurement set JSONs.
(ChartPaneBase.prototype.isShowingOutliers): Added.
(ChartPaneBase.prototype.setShowOutliers): Added. Ditto for calling _updateSourceList.
(ChartPaneBase.prototype._updateSourceList): Added.
(ChartPaneBase.prototype.fetchAnalysisTasks): Renamed from _fetchAnalysisTasks. Now takes noCache as an argument
instead of platform and metric IDs since they're on instance variables.
- public/v3/components/chart-styles.js:
(ChartStyles.resolveConfiguration): Renamed from createChartSourceList. Just resolves platform and metric IDs.
(ChartStyles.createSourceList): Extracted from createChartSourceList since it needs to be called when a filtering
option is changed as well as when ChartPaneBase.prototype.configure is called.
(ChartStyles.baselineStyle): Now takes filtering options.
(ChartStyles.targetStyle): Ditto.
(ChartStyles.currentStyle): Ditto.
- public/v3/components/interactive-time-series-chart.js:
(InteractiveTimeSeriesChart.prototype.currentPoint): Find the point in _fetchedTimeSeries when
_sampledTimeSeriesData hasn't been computed yet as a fallback (e.g. when the chart hasn't been rendered yet).
(InteractiveTimeSeriesChart.prototype.selectedPoints): Added.
(InteractiveTimeSeriesChart.prototype.firstSelectedPoint): Added.
(InteractiveTimeSeriesChart.prototype.lockedIndicator): Added. Returns the current point if it's locked.
- public/v3/components/time-series-chart.js:
(TimeSeriesChart.prototype.setDomain):
(TimeSeriesChart.prototype.setSourceList): Added. Re-create _fetchedTimeSeries when filtering options have changed.
Don't re-fetch measurement set JSONs here since showing outliers can be done entirely in the front end.
(TimeSeriesChart.prototype.fetchMeasurementSets): Extracted out of setDomain. Now takes noCache as an argument.
ChartPane._markAsOutlier
(TimeSeriesChart.prototype.firstSampledPointBetweenTime): Added.
- public/v3/models/analysis-task.js:
(AnalysisTask.fetchByPlatformAndMetric): Added noCache as an argument.
(AnalysisTask._fetchSubset): Ditto.
- public/v3/models/measurement-adaptor.js:
(MeasurementAdaptor.prototype.isOutlier): Added.
(MeasurementAdaptor.prototype.applyToAnalysisResults): Add markedOutlier as a property on each point.
- public/v3/models/measurement-cluster.js:
(MeasurementCluster.prototype.addToSeries): Fixed the bug that filtering outliers was broken as _markedOutlierIndex
is undefined here. Use MeasurementAdaptor's isOutlier instead.
- public/v3/models/measurement-set.js:
(MeasurementSet.prototype.fetchBetween): Added noCache as an argument. Reset _primaryClusterPromise and _allFetches
when noCache is true since we need to re-fetch the primary cluster as well as all secondary clusters now.
(MeasurementSet.prototype._fetchPrimaryCluster): Added noCache as an argument. Directly invoke the JSON API at
/api/measurement-set to re-generate all clusters' JSON files instead of first fetching the cached version.
(MeasurementSet.prototype._fetchSecondaryCluster):
(MeasurementSet.prototype._didFetchJSON): Removed a bogus assertion since this function is called on secondary
clusters as well as primary clusters.
(MeasurementSet.prototype._addFetchedCluster): Reimplemented this function using an insertion sort. Also remove the
existing entry if the fetch cluster should replace it.
- public/v3/models/time-series.js:
(TimeSeries.prototype.dataBetweenPoints): Removed the dead code to filter out outliers. This is done in addToSeries
of MeasurementCluster instead.
- public/v3/pages/chart-pane.js:
(ChartPane): Renamed pane to popover since it was confusing to have a pane inside a pane class. As such, renamed
_paneOpenedByClick to _lockedPopover.
(ChartPane.prototype.serializeState): Added the code to serialize filtering options in the serialized state URL.
(ChartPane.prototype.updateFromSerializedState): Ditto for parsing.
(ChartPane.prototype._analyzeRange): Extracted out of render(). Also fixed a bug that the charts page don't show
the newly created analysis task by invoking fetchAnalysisTasks with noCache set to true.
(ChartPane.prototype._markAsOutlier): Added.
(ChartPane.prototype._renderActionToolbar): A bunch of changes due to pane -> popover rename. Also added a popover
for filtering options.
(ChartPane.prototype._makePopoverActionItem): Extracted from _makeAnchorToOpenPane.
(ChartPane.prototype._makePopoverOpenOnHover): Ditto.
(ChartPane.prototype._setPopoverVisibility): Ditto.
(ChartPane.prototype._renderFilteringPopover): Added.
(ChartPane.htmlTemplate): Added a popover for specifying filtering options. Also added .popover on each popover.
(ChartPane.cssTemplate): Updated the style to make use of .popover.
- public/v3/pages/charts-page.js:
(ChartsPage.prototype.graphOptionsDidChange): Added. Updates the URL state when a filtering option is modified.
- public/v3/pages/dashboard-page.js:
(DashboardPage.prototype._createChartForCell):
- public/v3/pages/page-router.js:
(PageRouter.prototype._serializeHashQueryValue): Serialize a set of strings as | separated tokens.
(PageRouter.prototype._deserializeHashQueryValue): Rewrote the function as the serialized URL can no longer be
parsed as a JSON as | separated tokens can't be converted into a valid JSON construct with a simple regex.
- unit-tests/measurement-set-tests.js: Added a test case for fetchBetween with noCache=true.
- 12:47 PM Changeset in webkit [201563] by
-
- 11 edits in branches/safari-601.1.46-branch/Source/WebCore
Merged r201561. rdar://problem/26475175
- 12:32 PM Changeset in webkit [201562] by
-
- 4 edits in trunk/Source/JavaScriptCore
Dictionary property access should be fast
https://bugs.webkit.org/show_bug.cgi?id=158250
Reviewed by Keith Miller.
We have some remnant code that unnecessarily takes a slow path for
dictionaries. This caused the Dromaeo regression in r201436. Let's fix
that.
- jit/Repatch.cpp:
(JSC::tryCacheGetByID): Attempt to flatten a dictionary if necessary, but
not too much. This is our idiom in other places.
(JSC::tryCachePutByID): See tryCacheGetByID.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setupGetByIdPrototypeCache): See tryCacheGetByID.
- runtime/JSObject.cpp:
(JSC::JSObject::fillGetterPropertySlot):
- runtime/JSObject.h:
(JSC::JSObject::fillCustomGetterPropertySlot): The rules for caching a
getter are the same as the rules for caching anything else: We're
allowed to cache even in dictionaries, as long as they're cacheable
dictionaries. Any transition that would change to/from getter/setter
or change other attributes requires a structure transition.
- 11:50 AM Changeset in webkit [201561] by
-
- 11 edits in trunk/Source/WebCore
SVGImage should report its memory cost to JS garbage collector
https://bugs.webkit.org/show_bug.cgi?id=158139
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-06-01
Reviewed by Geoffrey Garen.
Like what we do in HTMLImageLoader::notifyFinished() by reporting the memory
cost of the BitmapImage, we need to do something similar for the SVGImage. In
SVGImage::dataChange() and when allDataReceived is true, we can calculate
the size of all DOM nodes and their renderers. The size of the encoded data
has to be added as well to the total memory cost. An approximation for the
memory cost has to be used since it is costly to get an accurate number.
- bindings/js/JSDocumentCustom.cpp:
(WebCore::reportMemoryForDocumentIfFrameless): Use Node::approximateMemoryCost()
instead of sizeof(Node). A Node's descendant can override this function and
return a more accurate memory cost.
- dom/Node.h:
(WebCore::Node::approximateMemoryCost): Define this new virtual function in the
Node class. Its default value is sizeof(Node) but any descendant can return a
more accurate number.
- platform/graphics/Image.h:
(WebCore::Image::data): Define a const version of data() so it can be called
the const function SVGImage::reportApproximateMemoryCost().
- svg/SVGGraphicsElement.h: Override approximateMemoryCost() to return
sizeof(SVGGraphicsElement).
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::approximateMemoryCost): Override this function to return
the memory cost of the points and the m_path of the renderer.
- svg/SVGPathElement.h:
- svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::approximateMemoryCost): Override this function to return
the memory cost of the points and the m_path of the renderer.
- svg/SVGPolyElement.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::reportApproximateMemoryCost): Calculate the memory cost of the
nodes in the SVGDocument of an SVGImage. Then report this number to the JS garbage
collector.
(WebCore::SVGImage::dataChanged): After loading all the SVG encoded data and building
its DOM tree and the render tree, report the total memory cost to the JS garbage collector.
- svg/graphics/SVGImage.h:
- 11:36 AM BuildingGtk edited by
- (diff)
- 11:17 AM Changeset in webkit [201560] by
-
- 5 edits in branches/safari-601.1.46-branch/Source
Versioning.
- 11:14 AM Changeset in webkit [201559] by
-
- 6 edits in trunk/Source/WebCore
Use inline capacity for StylePropertyShorthand Vectors.
<https://webkit.org/b/158260>
Reviewed by Antti Koivisto.
Vector<StylePropertyShorthand> was a huge source of heap allocations,
just over 0.5% of all fastMalloc() bytes on PLUM. Giving it an inline capacity
of 4 turns all of it into stack allocations.
- css/CSSParser.cpp:
(WebCore::CSSParser::addProperty):
- css/CSSProperty.cpp:
(WebCore::StylePropertyMetadata::shorthandID):
- css/StylePropertyShorthand.cpp:
(WebCore::indexOfShorthandForLonghand):
- css/StylePropertyShorthand.h:
- css/makeprop.pl:
(constructShorthandsVector):
- 10:38 AM Changeset in webkit [201558] by
-
- 1 copy in tags/Safari-602.1.35
New tag.
- 10:14 AM Changeset in webkit [201557] by
-
- 8 edits2 adds in trunk
POST request on a blob resource should return a "network error" instead of HTTP 500 response
https://bugs.webkit.org/show_bug.cgi?id=158022
Patch by Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> on 2016-06-01
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Make sure request on blob resource is correct.
- web-platform-tests/fetch/api/basic/scheme-blob-expected.txt:
- web-platform-tests/fetch/api/basic/scheme-blob-worker-expected.txt:
- web-platform-tests/fetch/api/basic/scheme-blob.js: Add new tests with several HTTP methods.
Source/WebCore:
Not allowed HTTP method is notified as failed in BlobResourceHandle as per Fetch
specification (5.2 Basic fetch). This behavior is observable in fetch WPT tests.
The behavior of XHR is slightly changed for asynchronous request on a blob resource with not
allowed or invalid HTTP methods. The onError callback is called instead of throwing an
exception as per XHR specification (https://xhr.spec.whatwg.org/#request-error-steps).
WPT tests expected results have been updated for fetch tests on blob resources which are
now correct.
Test: fast/files/xhr-blob-request.html ensures XHR response to requests on a blob resource is
correct.
- platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::doStart):
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
LayoutTests:
Make sure response to XHR request on blob is correct.
- fast/files/xhr-blob-request-expected.txt: Added.
- fast/files/xhr-blob-request.html: Added.
- 9:58 AM Changeset in webkit [201556] by
-
- 3 edits in trunk/Source/WebCore
Remove allocation of SubresourceLoader::m_requestCountTracker
https://bugs.webkit.org/show_bug.cgi?id=158255
Reviewed by Chris Dumez.
No change of behavior.
Making m_requestCountTracker an Optional in lieu of a unique_ptr.
This requires constructing m_requestCountTracker in place so that constructor and destructor are called only once.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::notifyDone):
- loader/SubresourceLoader.h:
- 9:22 AM Changeset in webkit [201555] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Close wptserve response file handles explicitly
https://bugs.webkit.org/show_bug.cgi?id=158253
Reviewed by Alexey Proskuryakov.
See https://github.com/youennf/wptserve/commit/fc902e97a21b8470dcdaab8c70691aea1fecbc12
- resources/web-platform-tests-modules.json: Updating wptserve module to close response file handles once written.
- 9:03 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 8:53 AM Changeset in webkit [201554] by
-
- 4 edits1 add in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline several tests after r201397.
We correctly render search field's cancel and result button for RTL content.
- fast/forms/search-input-rtl-expected.txt: Added.
- platform/gtk/fast/css/text-overflow-input-expected.txt:
- platform/gtk/fast/forms/placeholder-position-expected.txt:
- platform/gtk/fast/forms/search-rtl-expected.txt:
- 8:39 AM Changeset in webkit [201553] by
-
- 5 edits in trunk/Source
Versioning.
- 8:11 AM Changeset in webkit [201552] by
-
- 2 edits in trunk/Source/WebCore
Remove accidental fprintf.
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::precache):
- 7:29 AM Changeset in webkit [201551] by
-
- 14 edits in trunk/Source/WebCore
Precache primary font in a secondary thread
https://bugs.webkit.org/show_bug.cgi?id=158243
Reviewed by Andreas Kling.
We know the font families and descriptions to use on style resolution. The actual fonts are only needed for
layout. There is often time to load and cache fonts asynchronously before they are accessed. This can substantially
reduce font related workload in the main thread.
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::font):
(WebCore::CSSFontFace::resolveFamilies):
(WebCore::CSSFontFace::hasSVGFontFaceSource):
- css/CSSFontFace.h:
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::url):
(WebCore::CSSFontFaceSource::isSVGFontFaceSource):
- css/CSSFontFaceSource.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::fallbackFontAt):
(WebCore::CSSFontSelector::resolveFamilies):
Add a function for resolving font families of a cascade to their final values.
- css/CSSFontSelector.h:
- css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontRanges):
(WebCore::CSSSegmentedFontFace::resolveFamilies):
- css/CSSSegmentedFontFace.h:
- platform/graphics/FontCache.cpp:
(WebCore::fontPlatformDataCache):
(WebCore::precacheTasksInProgress):
(WebCore::alternateFamilyName):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::invalidate):
(WebCore::FontCache::precache):
Precache fonts by trying to load them asyncronously one by one. On success the font is cached into font platform data cache.
(WebCore::FontCache::similarFont):
- platform/graphics/FontCache.h:
- platform/graphics/FontCascade.cpp:
(WebCore::pruneSystemFallbackFonts):
(WebCore::precachePrimaryFamily):
When initializing a new font cascade resolve any platform fonts to their actual names using FontSelector,
then precache the primary font for the cascade.
Web fonts are ignored for now.
(WebCore::retrieveOrAddCachedFonts):
- platform/graphics/FontSelector.h:
(WebCore::FontSelector::~FontSelector):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::setFontWhitelist):
(WebCore::fontWithFamily):
(WebCore::autoActivateFont):
(WebCore::createFontPlatformDataThreadSafe):
Factor thread safe part of createFontPlatformData to a function.
(WebCore::FontCache::createFontPlatformData):
Do the main thread only hash lookups here then call to createFontPlatformDataThreadSafe.
(WebCore::fallbackDedupSet):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::platformPrecache):
Try to initialize font asynchronously in a dispatch queue, call completion handler on success or failure.
(WebCore::FontCache::platformCancelPrecache):
Cancel ongoing precache operation.
(WebCore::platformFontLookupWithFamily): Deleted.
This was inlined to the only client, fontWithFamily.
- 4:57 AM Changeset in webkit [201550] by
-
- 2 edits in trunk/Tools
Unreviewed. Mark GTK+ test /webkit2/WebKitWebInspectorServer/test-open-debugging-session as slow.
It's timing out in the bots, but it seems to pass when running run-gtk-tests with no timeout. For GLib tests the
timeout is applied per tester program not per test case, so we need to mark the whole test
WebKit2Gtk/TestInspectorServer as slow.
- Scripts/run-gtk-tests:
(TestRunner):
(TestRunner._run_test_glib):
- 3:06 AM Changeset in webkit [201549] by
-
- 24 edits2 copies3 adds in trunk
WebRTC: Add RTCRtpTransceiver interface and RTCPeerConnection.addTransceiver()
https://bugs.webkit.org/show_bug.cgi?id=158189
Reviewed by Darin Adler.
Source/WebCore:
The RTCRtpTransceiver interface represents a combination of an RTCRtpSender and an
RTCRtpReceiver that share a common mid [1].
RTCPeerConnection.addTransceiver() [2] creates an RTCRtpTransceiver object, either directly
from a MediaStreamTrack [3], or with a specific media type (kind).
This change introduces the RTCRtpTransceiver object, follow-up patches will integrate it
into the offer/answer machinery.
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#rtcrtptransceiver-interface
[2] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-addtransceiver
[3] http://w3c.github.io/mediacapture-main/archives/20160513/getusermedia.html#mediastreamtrack
Test: fast/mediastream/RTCPeerConnection-addTransceiver.html
- CMakeLists.txt:
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::createReceiver):
An RTCTransceiver always has a receiver (RTCRtpReceiver) with a track (MediaStreamTrack) that
can be rendered. Before that remote track is receiving data from the remote peer, it's muted.
createReceiver() uses MediaEndponit::createMutedRemoteSource() to create a source to represent
future incoming media.
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTransceiver):
(WebCore::RTCPeerConnection::completeAddTransceiver):
(WebCore::RTCPeerConnection::addReceiver): Deleted.
We now create the receiver explicitly with createReceiver.
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCPeerConnection.idl:
- Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::create):
(WebCore::RTCRtpSender::RTCRtpSender):
(WebCore::RTCRtpSender::setTrack):
(WebCore::RTCRtpSender::replaceTrack):
- Modules/mediastream/RTCRtpSender.h:
(WebCore::RTCRtpSender::trackId):
(WebCore::RTCRtpSender::trackKind):
(WebCore::RTCRtpSender::setMediaStreamIds):
(WebCore::RTCRtpSender::isStopped):
(WebCore::RTCRtpSender::create): Deleted.
- Modules/mediastream/RTCRtpSenderReceiverBase.h:
(WebCore::RTCRtpSenderReceiverBase::track):
(WebCore::RTCRtpSenderReceiverBase::RTCRtpSenderReceiverBase):
- Modules/mediastream/RTCRtpTransceiver.cpp: Added.
(WebCore::RTCRtpTransceiver::create):
(WebCore::RTCRtpTransceiver::getNextMid):
(WebCore::RTCRtpTransceiver::RTCRtpTransceiver):
(WebCore::RTCRtpTransceiver::directionString):
(WebCore::RTCRtpTransceiver::hasSendingDirection):
(WebCore::RTCRtpTransceiver::enableSendingDirection):
(WebCore::RTCRtpTransceiver::disableSendingDirection):
- Modules/mediastream/RTCRtpTransceiver.h: Added.
(WebCore::RTCRtpTransceiver::~RTCRtpTransceiver):
(WebCore::RTCRtpTransceiver::direction):
(WebCore::RTCRtpTransceiver::setDirection):
(WebCore::RTCRtpTransceiver::provisionalMid):
(WebCore::RTCRtpTransceiver::setProvisionalMid):
(WebCore::RTCRtpTransceiver::mid):
(WebCore::RTCRtpTransceiver::setMid):
(WebCore::RTCRtpTransceiver::sender):
(WebCore::RTCRtpTransceiver::receiver):
(WebCore::RTCRtpTransceiver::stopped):
(WebCore::RTCRtpTransceiver::stop):
- Modules/mediastream/RTCRtpTransceiver.idl: Added.
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/MediaEndpoint.h:
Added createMutedRemoteSource() that creates a muted remote source that will become unmuted
when media arrives from the remote peer.
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::RealtimeMediaSource): Deleted.
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSource::create):
Use Ref instead of RefPtr.
- platform/mock/MockMediaEndpoint.cpp:
(WebCore::MockMediaEndpoint::createMutedRemoteSource):
- platform/mock/MockMediaEndpoint.h:
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::create):
(WebCore::MockRealtimeAudioSource::createMuted):
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource):
- platform/mock/MockRealtimeAudioSource.h:
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::create):
(WebCore::MockRealtimeVideoSource::createMuted):
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):
- platform/mock/MockRealtimeVideoSource.h:
LayoutTests:
Added test for RTCPeerConnection.addTransceiver().
- fast/mediastream/RTCPeerConnection-addTransceiver-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-addTransceiver.html: Added.
Test creating several RTCRtpTransceivers with various configurations and inspect the result.
- platform/mac/TestExpectations:
Skip the new test since the Mac port currently doesn't build with WebRTC support.
- 2:56 AM Changeset in webkit [201548] by
-
- 2 edits in trunk/Tools
Unreviewed. Skip media permission request GTK+ unit tests.
They are timing out in the bots.
- Scripts/run-gtk-tests:
(TestRunner):
- 2:10 AM Changeset in webkit [201547] by
-
- 2 edits in trunk/Source/WebCore
[Win][IndexedDB] Crash when running blob test.
https://bugs.webkit.org/show_bug.cgi?id=158224
Reviewed by Brady Eidson.
Avoid calling WTFMove(x) before calling x->method().
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- 1:23 AM Changeset in webkit [201546] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] Potential null pointer crash when setting cursor.
https://bugs.webkit.org/show_bug.cgi?id=158225
Reviewed by Alex Christensen.
Check return value of Cursor::platformCursor().
- WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::setCursor):
- 12:24 AM Changeset in webkit [201545] by
-
- 5 edits in trunk
[css-grid] Positioned items can be placed on the implicit grid
https://bugs.webkit.org/show_bug.cgi?id=158197
Reviewed by Sergio Villar Senin.
Source/WebCore:
The old code wrongly assumed that positioned items couldn't be placed
on the implicit grid. However, the spec doesn't mention anything about this.
The patch fixes this issue, so now positioned items can be actually
placed on the implicit tracks.
Test: fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild): Use the lines
of the implicit grid instead of the explicit one.
LayoutTests:
Updated the test to follow the expected behavior.
- fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track-expected.txt:
- fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html:
May 31, 2016:
- 10:05 PM Changeset in webkit [201544] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Drop "replace" from JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_WELL_KNOWN_SYMBOL_NOT_IMPLEMENTED_YET
https://bugs.webkit.org/show_bug.cgi?id=158223
Reviewed by Darin Adler.
This list maintains "not implemented yet" well-known symbols.
Symbol.replace
is already implemented.
- runtime/CommonIdentifiers.h:
- 9:49 PM Changeset in webkit [201543] by
-
- 4 edits in trunk/Source/WebCore
Modernize lambda captures in WorkerThreadableWebSocketChannel
https://bugs.webkit.org/show_bug.cgi?id=158246
Reviewed by Brady Eidson.
Modernize lambda captures in WorkerThreadableWebSocketChannel and drop
legacy URLCapture as it is no longer needed / used.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::setMethodNotCompleted): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion): Deleted.
- Modules/websockets/WorkerThreadableWebSocketChannel.h:
- platform/URL.h:
(WebCore::operator==): Deleted.
- 9:30 PM Changeset in webkit [201542] by
-
- 54 edits15 deletes in trunk/Source
Unreviewed, roll out r201481, r201523: 0.3% regression in Octane code-load
https://bugs.webkit.org/show_bug.cgi?id=158249
Source/JavaScriptCore:
- API/JSScriptRef.cpp:
(parseScript):
- CMakeLists.txt:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/AsyncFunctionPrototype.js: Removed.
(asyncFunctionResume): Deleted.
- builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutable):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset): Deleted.
(JSC::computeDefsForBytecodeOffset): Deleted.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::dumpBytecode): Deleted.
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::isArrowFunction):
(JSC::UnlinkedCodeBlock::isOrdinaryArrowFunction): Deleted.
(JSC::UnlinkedCodeBlock::isAsyncArrowFunction): Deleted.
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewMethodDefinition):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon): Deleted.
(JSC::BytecodeGenerator::emitNewFunction): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::makeFunction):
- bytecompiler/NodesCodegen.cpp:
(JSC::FunctionNode::emitBytecode): Deleted.
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::parse):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass): Deleted.
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emitNewFuncCommon): Deleted.
(JSC::JIT::emit_op_new_async_func): Deleted.
(JSC::JIT::emitNewFuncExprCommon): Deleted.
(JSC::JIT::emit_op_new_async_func_exp): Deleted.
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jsc.cpp:
(runInteractive):
(printUsageStatement): Deleted.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createAsyncFunctionBody): Deleted.
- parser/Keywords.table:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements): Deleted.
(JSC::Parser<LexerType>::parseVariableDeclarationList): Deleted.
(JSC::Parser<LexerType>::parseDestructuringPattern): Deleted.
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement): Deleted.
(JSC::Parser<LexerType>::parseFormalParameters): Deleted.
(JSC::stringForFunctionMode): Deleted.
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration): Deleted.
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement): Deleted.
(JSC::Parser<LexerType>::parseAwaitExpression): Deleted.
(JSC::Parser<LexerType>::parseAsyncFunctionExpression): Deleted.
(JSC::Parser<LexerType>::parseUnaryExpression): Deleted.
- parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Parser::ExpressionErrorClassifier::propagateExpressionErrorClass):
(JSC::Parser::closestParentOrdinaryFunctionNonLexicalScope):
(JSC::Parser::pushScope):
(JSC::Parser::popScopeInternal):
(JSC::Parser::matchSpecIdentifier):
(JSC::parse):
(JSC::Scope::setSourceParseMode): Deleted.
(JSC::Scope::isAsyncFunction): Deleted.
(JSC::Scope::isAsyncFunctionBoundary): Deleted.
(JSC::Scope::isModule): Deleted.
(JSC::Scope::setIsFunction): Deleted.
(JSC::Scope::setIsAsyncArrowFunction): Deleted.
(JSC::Scope::setIsAsyncFunction): Deleted.
(JSC::Scope::setIsAsyncFunctionBody): Deleted.
(JSC::Scope::setIsAsyncArrowFunctionBody): Deleted.
(JSC::Parser::ExpressionErrorClassifier::forceClassifyExpressionError): Deleted.
(JSC::Parser::ExpressionErrorClassifier::indicatesPossibleAsyncArrowFunction): Deleted.
(JSC::Parser::forceClassifyExpressionError): Deleted.
(JSC::Parser::declarationTypeToVariableKind): Deleted.
(JSC::Parser::upperScope): Deleted.
(JSC::Parser::isDisallowedIdentifierAwait): Deleted.
(JSC::Parser::disallowedIdentifierAwaitReason): Deleted.
- parser/ParserModes.h:
(JSC::isFunctionParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
(JSC::SourceParseModeSet::SourceParseModeSet): Deleted.
(JSC::SourceParseModeSet::contains): Deleted.
(JSC::SourceParseModeSet::mergeSourceParseModes): Deleted.
(JSC::isAsyncFunctionParseMode): Deleted.
(JSC::isAsyncArrowFunctionParseMode): Deleted.
(JSC::isAsyncFunctionWrapperParseMode): Deleted.
(JSC::isAsyncFunctionBodyParseMode): Deleted.
(JSC::constructAbilityForParseMode): Deleted.
- parser/ParserTokens.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::operator==):
(JSC::SourceCodeKey::runtimeFlags): Deleted.
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createAsyncFunctionBody): Deleted.
- runtime/AsyncFunctionConstructor.cpp: Removed.
(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor): Deleted.
(JSC::AsyncFunctionConstructor::finishCreation): Deleted.
(JSC::callAsyncFunctionConstructor): Deleted.
(JSC::constructAsyncFunctionConstructor): Deleted.
(JSC::AsyncFunctionConstructor::getCallData): Deleted.
(JSC::AsyncFunctionConstructor::getConstructData): Deleted.
- runtime/AsyncFunctionConstructor.h: Removed.
(JSC::AsyncFunctionConstructor::create): Deleted.
(JSC::AsyncFunctionConstructor::createStructure): Deleted.
- runtime/AsyncFunctionPrototype.cpp: Removed.
(JSC::AsyncFunctionPrototype::AsyncFunctionPrototype): Deleted.
(JSC::AsyncFunctionPrototype::finishCreation): Deleted.
- runtime/AsyncFunctionPrototype.h: Removed.
(JSC::AsyncFunctionPrototype::create): Deleted.
(JSC::AsyncFunctionPrototype::createStructure): Deleted.
- runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
- runtime/CodeCache.h:
- runtime/CommonIdentifiers.h:
- runtime/Completion.cpp:
(JSC::checkSyntax):
(JSC::checkModuleSyntax):
- runtime/Completion.h:
- runtime/Executable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ProgramExecutable::checkSyntax):
- runtime/Executable.h:
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- runtime/FunctionConstructor.h:
- runtime/JSAsyncFunction.cpp: Removed.
(JSC::JSAsyncFunction::JSAsyncFunction): Deleted.
(JSC::JSAsyncFunction::createImpl): Deleted.
(JSC::JSAsyncFunction::create): Deleted.
(JSC::JSAsyncFunction::createWithInvalidatedReallocationWatchpoint): Deleted.
- runtime/JSAsyncFunction.h: Removed.
(JSC::JSAsyncFunction::allocationSize): Deleted.
(JSC::JSAsyncFunction::createStructure): Deleted.
- runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnPropertySlot):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
(JSC::JSGlobalObject::init): Deleted.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::asyncFunctionPrototype): Deleted.
(JSC::JSGlobalObject::asyncFunctionStructure): Deleted.
- runtime/ModuleLoaderObject.cpp:
(JSC::moduleLoaderObjectParseModule):
- runtime/RuntimeFlags.h:
(JSC::RuntimeFlags::operator==): Deleted.
(JSC::RuntimeFlags::operator!=): Deleted.
- tests/stress/async-await-basic.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrow): Deleted.
(shouldThrowAsync): Deleted.
(shouldThrowSyntaxError): Deleted.
(let.AsyncFunction.async): Deleted.
(async.asyncFunctionForProto): Deleted.
(Object.getPrototypeOf.async): Deleted.
(Object.getPrototypeOf.async.method): Deleted.
(async): Deleted.
(async.method): Deleted.
(async.asyncNonConstructorDecl): Deleted.
(shouldThrow.new.async): Deleted.
(shouldThrow.new.async.nonConstructor): Deleted.
(async.asyncDecl): Deleted.
(async.f): Deleted.
(MyError): Deleted.
(async.asyncDeclThrower): Deleted.
(shouldThrowAsync.async): Deleted.
(resolveLater): Deleted.
(rejectLater): Deleted.
(async.resumeAfterNormal): Deleted.
(O.async.resumeAfterNormal): Deleted.
(resumeAfterNormalArrow.async): Deleted.
(async.resumeAfterThrow): Deleted.
(O.async.resumeAfterThrow): Deleted.
(resumeAfterThrowArrow.async): Deleted.
(catch): Deleted.
- tests/stress/async-await-module-reserved-word.js: Removed.
(shouldThrow): Deleted.
(SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await): Deleted.
(checkModuleSyntaxError.String.raw.await): Deleted.
(checkModuleSyntaxError.String.raw.async.await): Deleted.
(SyntaxError.Cannot.declare.named): Deleted.
- tests/stress/async-await-mozilla.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrow): Deleted.
(shouldThrowAsync): Deleted.
(assert): Deleted.
(shouldThrowSyntaxError): Deleted.
(mozSemantics.async.empty): Deleted.
(mozSemantics.async.simpleReturn): Deleted.
(mozSemantics.async.simpleAwait): Deleted.
(mozSemantics.async.simpleAwaitAsync): Deleted.
(mozSemantics.async.returnOtherAsync): Deleted.
(mozSemantics.async.simpleThrower): Deleted.
(mozSemantics.async.delegatedThrower): Deleted.
(mozSemantics.async.tryCatch): Deleted.
(mozSemantics.async.tryCatchThrow): Deleted.
(mozSemantics.async.wellFinally): Deleted.
(mozSemantics.async.finallyMayFail): Deleted.
(mozSemantics.async.embedded.async.inner): Deleted.
(mozSemantics.async.embedded): Deleted.
(mozSemantics.async.fib): Deleted.
(mozSemantics.async.isOdd.async.isEven): Deleted.
(mozSemantics.async.isOdd): Deleted.
(mozSemantics.hardcoreFib.async.fib2): Deleted.
(mozSemantics.namedAsyncExpr.async.simple): Deleted.
(mozSemantics.async.executionOrder.async.first): Deleted.
(mozSemantics.async.executionOrder.async.second): Deleted.
(mozSemantics.async.executionOrder.async.third): Deleted.
(mozSemantics.async.executionOrder): Deleted.
(mozSemantics.async.miscellaneous): Deleted.
(mozSemantics.thrower): Deleted.
(mozSemantics.async.defaultArgs): Deleted.
(mozSemantics.shouldThrow): Deleted.
(mozSemantics): Deleted.
(mozMethods.X): Deleted.
(mozMethods.X.prototype.async.getValue): Deleted.
(mozMethods.X.prototype.setValue): Deleted.
(mozMethods.X.prototype.async.increment): Deleted.
(mozMethods.X.prototype.async.getBaseClassName): Deleted.
(mozMethods.X.async.getStaticValue): Deleted.
(mozMethods.Y.prototype.async.getBaseClassName): Deleted.
(mozMethods.Y): Deleted.
(mozFunctionNameInferrence.async.test): Deleted.
(mozSyntaxErrors): Deleted.
- tests/stress/async-await-reserved-word.js: Removed.
(assert): Deleted.
(shouldThrowSyntaxError): Deleted.
(AsyncFunction.async): Deleted.
- tests/stress/async_arrow_functions_lexical_arguments_binding.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrowAsync): Deleted.
(noArgumentsArrow2.async): Deleted.
- tests/stress/async_arrow_functions_lexical_new.target_binding.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrowAsync): Deleted.
(C1): Deleted.
(C2): Deleted.
(shouldThrowAsync.async): Deleted.
- tests/stress/async_arrow_functions_lexical_super_binding.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(BaseClass.prototype.baseClassValue): Deleted.
(BaseClass.prototype.get property): Deleted.
(BaseClass): Deleted.
(ChildClass.prototype.asyncSuperProp): Deleted.
(ChildClass.prototype.asyncSuperProp2): Deleted.
(ChildClass): Deleted.
(ChildClass2): Deleted.
- tests/stress/async_arrow_functions_lexical_this_binding.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(d.y): Deleted.
Source/WebKit/mac:
- WebView/WebPreferencesPrivate.h:
Source/WebKit/win:
- Interfaces/IWebPreferencesPrivate.idl:
Source/WebKit2:
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- 5:45 PM Changeset in webkit [201541] by
-
- 2 edits9 adds in trunk/Source/WebCore
Web Inspector: ReportExtraMemoryCost IDL attribute should also be used to generate estimatedSize method
https://bugs.webkit.org/show_bug.cgi?id=158144
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-31
Reviewed by Darin Adler.
- bindings/scripts/CodeGeneratorJS.pm:
(InstanceNeedsEstimatedSize):
(GenerateHeader):
(GenerateImplementation):
When an interface includes ReportExtraMemoryCost, generate an estimatedSize
method which includes the Base::estimatedSize and the memoryCost().
- bindings/scripts/test/GObject/WebKitDOMInterfaceName.cpp: Added.
(WebKit::kit):
(WebKit::core):
(WebKit::wrapInterfaceName):
(webkit_dom_interface_name_finalize):
(webkit_dom_interface_name_constructor):
(webkit_dom_interface_name_class_init):
(webkit_dom_interface_name_init):
- bindings/scripts/test/GObject/WebKitDOMInterfaceName.h: Added.
- bindings/scripts/test/GObject/WebKitDOMInterfaceNamePrivate.h: Added.
- bindings/scripts/test/JS/JSInterfaceName.cpp: Added.
(WebCore::JSInterfaceNamePrototype::create):
(WebCore::JSInterfaceNamePrototype::createStructure):
(WebCore::JSInterfaceNamePrototype::JSInterfaceNamePrototype):
(WebCore::JSInterfaceNameConstructor::prototypeForStructure):
(WebCore::JSInterfaceNameConstructor::initializeProperties):
(WebCore::JSInterfaceNamePrototype::finishCreation):
(WebCore::JSInterfaceName::JSInterfaceName):
(WebCore::JSInterfaceName::createPrototype):
(WebCore::JSInterfaceName::prototype):
(WebCore::JSInterfaceName::destroy):
(WebCore::jsInterfaceNameConstructor):
(WebCore::setJSInterfaceNameConstructor):
(WebCore::JSInterfaceName::getConstructor):
(WebCore::JSInterfaceName::visitChildren):
(WebCore::JSInterfaceName::estimatedSize):
(WebCore::JSInterfaceNameOwner::isReachableFromOpaqueRoots):
(WebCore::JSInterfaceNameOwner::finalize):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSInterfaceName::toWrapped):
- bindings/scripts/test/JS/JSInterfaceName.h: Added.
(WebCore::JSInterfaceName::create):
(WebCore::JSInterfaceName::createStructure):
(WebCore::JSInterfaceName::finishCreation):
(WebCore::wrapperOwner):
(WebCore::wrapperKey):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/ObjC/DOMInterfaceName.h: Added.
- bindings/scripts/test/ObjC/DOMInterfaceName.mm: Added.
(-[DOMInterfaceName dealloc]):
(core):
(kit):
- bindings/scripts/test/ObjC/DOMInterfaceNameInternal.h: Added.
- bindings/scripts/test/TestReportExtraMemoryCost.idl: Added.
Include a test for the ReportExtraMemoryCost attribute.
- 5:31 PM Changeset in webkit [201540] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Storage DataGrids have a half-pixel transparent/white border below the header
https://bugs.webkit.org/show_bug.cgi?id=156699
<rdar://problem/25778260>
Reviewed by Timothy Hatcher.
Increase the width of the border below the DataGrid's header to match the border in the left sidebar.
- UserInterface/Views/DataGrid.css:
(.data-grid > .header-wrapper):
- 5:28 PM Changeset in webkit [201539] by
-
- 2 edits in trunk/Source/WebCore
Fix assertion after r201447
https://bugs.webkit.org/show_bug.cgi?id=158244
Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-31
Reviewed by Jer Noble.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadResource):
If we are loading media using WebCoreNSURLSession, we could be making a request for a
resource we already have in the memory cache because we are ignoring all caches.
- 5:26 PM Changeset in webkit [201538] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Snapshot List scroll bar occludes border of containing view in top-right
https://bugs.webkit.org/show_bug.cgi?id=158219
<rdar://problem/26545018>
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline th): Deleted.
- UserInterface/Views/TimelineRecordingContentView.css:
(.content-view.timeline-recording > .content-browser > .navigation-bar):
Make the border line span across the whole navigation bar, not just its table cells.
- 4:28 PM Changeset in webkit [201537] by
-
- 2 edits in trunk/Tools
Yet another unreviewed build fix; move the closing brace of the namespace declaration inside
the #if check.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm:
- 4:20 PM Changeset in webkit [201536] by
-
- 2 edits in trunk/Tools
Further unreviewed build fix; only run FullscreenTopContentInset test on Mac.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm:
- 3:52 PM Changeset in webkit [201535] by
-
- 2 edits in trunk/Source/WebKit2
Add two optional items to WebViewImplDelegate
https://bugs.webkit.org/show_bug.cgi?id=158242
-and corresponding-
rdar://problem/26473095
Reviewed by Tim Horton.
- UIProcess/Cocoa/WebViewImpl.h:
- 3:51 PM Changeset in webkit [201534] by
-
- 10 edits in trunk/Source/WebCore
Clean up / modernize iOS text autosizing code
https://bugs.webkit.org/show_bug.cgi?id=158217
Reviewed by Darin Adler.
Clean up / modernize iOS text autosizing code.
I think iOS text autosizing code is too intrusive inside the RenderStyle
class but I have not updated this part of the code yet to limit patch
size. This patch focuses on the TextAutoSizing.* and text autosizing
code in the Document class.
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::TextAutoSizingTraits::constructDeletedValue): Deleted.
(WebCore::TextAutoSizingTraits::isDeletedValue): Deleted.
Move TextAutoSizingTraits to the TextAutoSizing header to
promote reuse and make the text autosizing code a little less
intrusive.
(WebCore::Document::addAutoSizingNode):
- Drop local 'key' variable as it is only used once.
- Use std::make_unique<> to construct the TextAutoSizingValue as it is no longer ref-counted.
(WebCore::Document::validateAutoSizingNodes):
Iterate over the textAutosizedNodes HashMap only once instead
of twice. TextAutoSizingValue::adjustTextNodeSizes() was updated
to return an enum class so we know from that value if we can
remove the value from the HashSet or not, without having to rely
on TextAutoSizingValue::numNodes(), which I removed in this
patch.
(WebCore::Document::clearAutoSizingNodes):
Updated the TextAutoSizingValue destructor to call reset() so
we don't have to explicitly call reset() on each value before
clearing the textAutosizedNodes HashMap.
- dom/Document.h:
- Move TextAutoSizingTraits to the TextAutosizing header.
- Rename resetAutosizingNodes() to clearAutoSizingNodes() as the method now only clears the textAutosizedNodes HashMap and reset() is now an implementation detail for TextAutoSizingValue.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::resetTextAutosizing):
Call clearAutoSizingNodes() as it was renamed.
- rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizingKey::TextAutoSizingKey):
- Use value of -1 for std::unique_ptr m_style member for distinguishing
a HashTable deleted value, instead of having an extra m_isDeleted
data member for this purpose.
- Take RenderStyle parameter by reference and drop the null check as the call site can never pass nullptr.
(WebCore::TextAutoSizingValue::addTextNode):
- Rename addNode() to addTextNode() for clarity.
(WebCore::TextAutoSizingValue::~TextAutoSizingValue):
Update destructor to call reset() so that the Document does not have to
call it explicitly and can instead just clear the HashMap, which will
destroy the TextAutoSizingValue objects.
(WebCore::TextAutoSizingValue::reset):
Rename text to renderer for clarity.
- rendering/TextAutoSizing.h:
- Make TextAutoSizingValue as fast allocated.
- Update TextAutoSizingValue to no longer be refcounted as ownership is never shared. The Document owns those.
- Drop the factory function for TextAutoSizingValue and make the constructor public now that the class is no longer refcounted.
- Make reset() method private now that it is called from the destructor and the Document is no longer expected to explicitly call it.
- Update adjustTextNodeSizes() to return a StillHasNodes enum class and the Document can rely on the determine if it can drop the TextAutoSizingValue from its HashMap (and therefore destroy the object).
- Drop numNodes() method as it is no longer needed.
- 3:44 PM Changeset in webkit [201533] by
-
- 2 edits in trunk/Tools
Unreviewed build fix; only run FullscreetTopContentInset test on platforms
where WK_API_ENABLED is set.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm:
- 3:35 PM Changeset in webkit [201532] by
-
- 20 edits3 deletes in trunk/Source
Unreviewed, rolling out r201363 and r201456.
https://bugs.webkit.org/show_bug.cgi?id=158240
"40% regression on date-format-xparb" (Requested by
keith_miller on #webkit).
Reverted changesets:
"LLInt should be able to cache prototype loads for values in
GetById"
https://bugs.webkit.org/show_bug.cgi?id=158032
http://trac.webkit.org/changeset/201363
"get_by_id should support caching unset properties in the
LLInt"
https://bugs.webkit.org/show_bug.cgi?id=158136
http://trac.webkit.org/changeset/201456
- 3:10 PM Changeset in webkit [201531] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r201359.
https://bugs.webkit.org/show_bug.cgi?id=158238
"It was not a speedup on anything" (Requested by saamyjoon on
#webkit).
Reverted changeset:
"We can cache lookups to JSScope::abstractResolve inside
CodeBlock::finishCreation"
https://bugs.webkit.org/show_bug.cgi?id=158036
http://trac.webkit.org/changeset/201359
- 2:59 PM Changeset in webkit [201530] by
-
- 4 edits2 adds in trunk
REGRESSION (r201405): trailers.apple.com HUD is missing in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=158156
<rdar://problem/26519589>
Reviewed by Darin Adler.
Source/WebKit2:
Only increase the frame of the webView (to account for top content inset) in one dimension.
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm: Added.
(-[FullscreenChangeMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
- 2:57 PM Changeset in webkit [201529] by
-
- 4 edits2 adds in trunk
REGRESSION(r201040): Repainting of moving overflow:hidden objects is broken.
https://bugs.webkit.org/show_bug.cgi?id=158079
Reviewed by Zalan Bujtas.
Source/WebCore:
Added new test fast/repaint/overflow-hidden-movement.html
Change checkForRepaintDuringLayout() to only be true for self-painting layers
and not for all layers.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::hasSelfPaintingLayer):
(WebCore::RenderObject::checkForRepaintDuringLayout):
- rendering/RenderObject.h:
(WebCore::RenderObject::hasSelfPaintingLayer):
LayoutTests:
- fast/repaint/overflow-hidden-movement-expected.txt: Added.
- fast/repaint/overflow-hidden-movement.html: Added.
- 2:56 PM Changeset in webkit [201528] by
-
- 2 edits in trunk/Source/WebCore
ShowRenderTree: Print location information for relative/sticky inlines.
https://bugs.webkit.org/show_bug.cgi?id=158235
Reviewed by David Hyatt.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::showRenderObject):
- 2:47 PM Changeset in webkit [201527] by
-
- 2 edits in trunk/Websites/webkit.org
Unreviewed, fix an obvious typo: a missing comma.
- docs/b3/assembly-intermediate-representation.html:
- 2:44 PM Changeset in webkit [201526] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix; use ASSERT_UNUSED rather than ASSERT to fix release builds.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::removeSession):
- 2:40 PM Changeset in webkit [201525] by
-
- 2 edits in trunk/Websites/webkit.org
Air needs documentation
https://bugs.webkit.org/show_bug.cgi?id=153668
Reviewed by Mark Lam, Saam Barati, and Benjamin Poulain.
Write documentation for Air!
- docs/b3/assembly-intermediate-representation.html:
- 2:24 PM Changeset in webkit [201524] by
-
- 5 edits in trunk/Source/WebCore
[EME] Sound continues playing when video's src is changed
https://bugs.webkit.org/show_bug.cgi?id=158233
Reviewed by Eric Carlson.
When CDMSessionAVFoundation began listening for outputObscuredDueToInsufficientExternalProtection
KVO notifications, it retained the AVPlayer owned by MediaPlayerPrivateAVFoundationObjC, which
caused the AVPlayer to outlive its original owner, and to continue playing even after the
MediaPlayerPrivateAVFoundationObjC had been destroyed.
Rather than observe for outputObscuredDueToInsufficientExternalProtection changes in
CDMSessionAVFoundation, add a backreference from the media player to the session, listen for changes
in the player, and have the player notify the session when the value of that property changes.
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
(WebCore::CDMSessionAVFoundationObjC::createWeakPtr):
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(-[WebCDMSessionAVFoundationObjCListener initWithParent:player:]): Deleted.
(-[WebCDMSessionAVFoundationObjCListener invalidate]): Deleted.
(-[WebCDMSessionAVFoundationObjCListener observeValueForKeyPath:ofObject:change:context:]): Deleted.
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::removeSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::playerKVOProperties):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
- 1:57 PM Changeset in webkit [201523] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Recover parser performance regression by async support
https://bugs.webkit.org/show_bug.cgi?id=158228
Reviewed by Saam Barati.
This patch recovers parser performance regression caused in r201481.
Compared to the version that reverts r201481, still ~1% regression remains.
But compared to ToT, this patch significantly improves the code-load performance.
In Linux x64 JSCOnly port, with GCC 5.3.1.
reverted v.s. patched.
reverted patched
closure 0.61805+-0.00376 ? 0.62280+-0.00525 ?
jquery 8.03778+-0.02114 8.03453+-0.04646
<geometric> 2.22883+-0.00836 ? 2.23688+-0.00995 ? might be 1.0036x slower
ToT v.s. patched.
baseline patched
closure 0.65490+-0.00351 0.62473+-0.00363 definitely 1.0483x faster
jquery 8.25373+-0.06256 8.04701+-0.03455 definitely 1.0257x faster
<geometric> 2.32488+-0.00921 2.24210+-0.00592 definitely 1.0369x faster
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
- bytecode/UnlinkedFunctionExecutable.h:
Extend SourceParseMode.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
Do not callmatchSpecIdentifier()
as much as we can. This greatly improves the performance.
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
Do not touchcurrentScope()->isGenerator()
even if it is unnecessary in parseFunctionInfo.
And accidentalsyntaxChecker => context
changes are fixed.
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
Do not use matchSpecIdentifier() in the hot paths.
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText): Deleted.
- parser/Parser.h:
(JSC::isIdentifierOrKeyword):
AWAIT shoud be one of the keywords. This AWAIT check is unnecessary.
(JSC::Parser::upperScope):
(JSC::Parser::matchSpecIdentifier):
Touching currentScope() and its member causes significant performance degradation.
We carefully remove the above access in the hot paths.
(JSC::Parser::isDisallowedIdentifierAwait):
- parser/ParserModes.h:
(JSC::SourceParseModeSet::SourceParseModeSet):
(JSC::SourceParseModeSet::contains):
(JSC::SourceParseModeSet::mergeSourceParseModes):
(JSC::isFunctionParseMode):
(JSC::isAsyncFunctionParseMode):
(JSC::isAsyncArrowFunctionParseMode):
(JSC::isAsyncFunctionWrapperParseMode):
(JSC::isAsyncFunctionBodyParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
(JSC::constructAbilityForParseMode):
The parser frequently checks SourceParseMode. And variety of SourceParseMode becomes many.
So using switch onto SourceParseMode degrades the performance. Instead, we use bit tests to guard against
many SourceParseModes. We expect that this will be efficiently compiled into test & jmp.
- parser/ParserTokens.h:
Change AWAIT to one of the keywords, as the same to YIELD / LET.
- 1:47 PM Changeset in webkit [201522] by
-
- 4 edits2 adds in trunk
[Mac] AirPlay route is sometimes reset when changing video.src
https://bugs.webkit.org/show_bug.cgi?id=158226
<rdar://problem/24197592>
Reviewed by Jer Noble.
Source/WebCore:
Test: media/airplay-autoplay.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Remove the gesture requirement
if currently processing a user gesture.
(WebCore::HTMLMediaElement::dispatchEvent): Set m_failedToPlayToWirelessTarget to false when
dispatching webkitcurrentplaybacktargetiswirelesschanged so an element can succeed after failing.
LayoutTests:
- media/airplay-autoplay-expected.txt: Added.
- media/airplay-autoplay.html: Added.
- 1:32 PM Changeset in webkit [201521] by
-
- 2 edits in trunk/Source/WebCore
Regression(r201482): Crash under dispatch_semaphore_wait
https://bugs.webkit.org/show_bug.cgi?id=158230
<rdar://problem/26534698>
Reviewed by Eric Carlson.
Stop moving hasSessionSemaphore in the lambda capture since it is used in
dispatch_semaphore_wait() call after the callOnMainThread() call.
No new tests, already covered by tests that are crashing on the bots.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
- 12:45 PM Changeset in webkit [201520] by
-
- 3 edits in trunk/Source/JavaScriptCore
Web Inspector: capturing with Allocations timeline causes GC to take 100x longer and cause frame drops
https://bugs.webkit.org/show_bug.cgi?id=158054
<rdar://problem/25280762>
Reviewed by Joseph Pecoraro.
HeapSnapshot::sweepCell was taking a long time on
http://bl.ocks.org/syntagmatic/6c149c08fc9cde682635
because it has to do a binary search to find if
an item is or is not in the list. 90% of the binary searches
would not find anything. This resulted in a lot of wasted time.
This patch adds a TinyBloomFilter member variable to HeapSnapshot.
We use this filter to try to bypass doing a binary search when the
filter tells us that a particular JSCell is definitely not in our
list. This is a 2x speedup on the steady state GC of the above
website.
- heap/HeapSnapshot.cpp:
(JSC::HeapSnapshot::appendNode):
(JSC::HeapSnapshot::sweepCell):
(JSC::HeapSnapshot::shrinkToFit):
(JSC::HeapSnapshot::nodeForCell):
- heap/HeapSnapshot.h:
- 12:35 PM Changeset in webkit [201519] by
-
- 4 edits in trunk/Source/WebKit2
[iOS] Better deal with WebProcess suspension due to screen locking
https://bugs.webkit.org/show_bug.cgi?id=158229
<rdar://problem/17665473>
<rdar://problem/26554699>
Reviewed by Tim Horton.
When locking the screen while MobileSafari is front-most, we would try keep
trying to mark IOSurfaces as volatile until the 30 seconds timeout was
reached. This patch deals more cleanly with this situation by only trying
to mark IOSurfaces as volatile once if the suspension is due to screen
locking. In such case, it is apparently expected that some IOSurfaces cannot
be marked as volatile so it is enough to try once and let ourselves get
suspended.
This patch also reduces the timeout from 30 seconds to ~3 seconds in the
other suspension cases (e.g. homing out of MobileSafari). If we fail to mark
them as purgeable for 3 seconds for a reason or another, it is no use in
retrying, it is simply not going to happen and there is no reason to delay
process suspension any further.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::callVolatilityCompletionHandlers):
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible):
(WebKit::WebPage::markLayersVolatile):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::markLayersVolatile):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):
- 12:33 PM Changeset in webkit [201518] by
-
- 15 edits1 add in trunk/Source
Make createCrossThreadTask() functions return on the stack instead of the heap.
https://bugs.webkit.org/show_bug.cgi?id=158215
Reviewed by Darin Adler.
Source/WebCore:
No new tests (Refactor, no change in behavior).
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::postDatabaseTask):
(WebCore::IDBServer::IDBServer::postDatabaseTaskReply):
(WebCore::IDBServer::IDBServer::databaseRunLoop):
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::postCrossThreadTask):
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::threadableQueue):
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::postDatabaseTask):
(WebKit::DatabaseProcess::performNextDatabaseTask):
(WebKit::DatabaseProcess::fetchWebsiteData):
- DatabaseProcess/DatabaseProcess.h:
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CrossThreadCopier.cpp:
- wtf/CrossThreadQueue.h: Added. A lightweight of MessageQueue that deals directly in objects instead of in std::unique_ptrs.
(WTF::CrossThreadQueue::isKilled):
(WTF::CrossThreadQueue<DataType>::append):
(WTF::CrossThreadQueue<DataType>::waitForMessage):
(WTF::CrossThreadQueue<DataType>::tryGetMessage):
- wtf/CrossThreadTask.h:
(WTF::createCrossThreadTask):
(WTF::CrossThreadTask::CrossThreadTask): Deleted.
- 11:49 AM Changeset in webkit [201517] by
-
- 2 edits in trunk/Tools
Unreviewed: add myself to the reviewers list.
- Scripts/webkitpy/common/config/contributors.json:
- 11:42 AM Changeset in webkit [201516] by
-
- 4 edits3 adds in trunk
REGRESSION (r189567): Elements with aspect ratios not handled correctly inside flexbox.
https://bugs.webkit.org/show_bug.cgi?id=158040
Reviewed by Zalan Bujtas.
Source/WebCore:
Added new tests in fast/flexbox.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::clientLogicalBottomAfterRepositioning):
(WebCore::RenderFlexibleBox::hasOrthogonalFlow):
(WebCore::RenderFlexibleBox::mainAxisContentExtent):
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::mainAxisBorderAndPaddingExtentForChild):
(WebCore::RenderFlexibleBox::mainAxisLengthIsDefinite):
(WebCore::RenderFlexibleBox::mainAxisScrollbarExtentForChild):
(WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins):
(WebCore::RenderFlexibleBox::crossAxisLengthIsDefinite):
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing):
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
(WebCore::RenderFlexibleBox::useChildAspectRatio):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::resetAutoMarginsAndLogicalTopInCrossAxis):
(WebCore::RenderFlexibleBox::mainAxisOverflowForChild):
(WebCore::RenderFlexibleBox::mainAxisExtentIsDefinite): Deleted.
(WebCore::RenderFlexibleBox::mainAxisLengthIsIndefinite): Deleted.
- rendering/RenderFlexibleBox.h:
(WebCore::RenderFlexibleBox::isFlexibleBoxImpl):
LayoutTests:
- fast/flexbox/aspect-ratio-intrinsic-adjust-expected.html: Added.
- fast/flexbox/aspect-ratio-intrinsic-adjust.html: Added.
- fast/flexbox/resources/subjects_sm.png: Added.
- 10:53 AM Changeset in webkit [201515] by
-
- 2 edits in trunk/Source/WebCore
Build fix after r201482.
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::didReceiveHeader):
header used to be capturedHeader, which was a StringCapture, which needed .string() to get the String.
Now it's a WTF::String, so we already have the String. Hooray for c++14!
- 8:58 AM Changeset in webkit [201514] by
-
- 23 edits in branches/safari-602.1.32-branch/Source
Merge r201474. rdar://problem/24476949
- 8:44 AM Changeset in webkit [201513] by
-
- 5 edits in branches/safari-602.1.32-branch/Source
Versioning.
- 8:42 AM Changeset in webkit [201512] by
-
- 5 edits in branches/safari-602.1.32.5-branch/Source
Versioning.
- 8:35 AM Changeset in webkit [201511] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
- 8:17 AM Changeset in webkit [201510] by
-
- 4 edits2 adds in trunk
[css-grid] Empty grid without explicit tracks shouldn't have any size
https://bugs.webkit.org/show_bug.cgi?id=155197
Reviewed by Darin Adler.
Source/WebCore:
The internal representation of the grid is a Vector of Vector representing rows and
columns. Because of that it was not possible to have columns without having at least one
row. That forced us to have a 1x1 internal representation of the grid even if it was
actually empty. That works for most of the cases except when the grid is actually empty.
By changing the way we compute the sizes we can overcome that implementation
restriction. This allowed us also to thighten the conditions under we could use the
GridIterator. From now on it won't be possible to use it on empty grids so callers should
enforce that restriction.
A new bool was added to verify that placeItemsOnGrid() has been already called. The previous
code was relying on the fact that there were items in the internal representation, which is
wrong, as there might be no items in the grid.
Test: fast/css-grid-layout/empty-grid.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::GridIterator): Added ASSERTs.
(WebCore::RenderGrid::GridIterator::nextGridItem): Ditto.
(WebCore::RenderGrid::GridIterator::isEmptyAreaEnough): Ditto.
(WebCore::RenderGrid::GridIterator::nextEmptyGridArea): Ditto.
(WebCore::RenderGrid::gridColumnCount): Use the style to resolve the number of columns if
the internal representation is empty.
(WebCore::RenderGrid::gridRowCount):
(WebCore::RenderGrid::guttersSize): Allow to pass 0 as span, this permits using the return
value of gridColumnCount|gridRowCount directly to call this method.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths): Use m_gridIsDirty.
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks): Do not examine the contents of grid
tracks if there are no items in the grid.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions): Ditto.
(WebCore::RenderGrid::placeItemsOnGrid): Set m_gridIsDirty to false.
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::clearGrid):
(WebCore::RenderGrid::populateGridPositionsForDirection):
- rendering/RenderGrid.h: Moved gridColumnCount/gridRowCount to cpp file.
LayoutTests:
Make sure that empty grids (and grids with one empty axis) are properly handled. Do also
verify that removing all the items from a grid also generates an correct empty grid.
- fast/css-grid-layout/empty-grid-expected.txt: Added.
- fast/css-grid-layout/empty-grid.html: Added.
- 3:34 AM Changeset in webkit [201509] by
-
- 2 edits in trunk/Tools
[GTK] Provide alternative mirror for the ICU tarball.
https://bugs.webkit.org/show_bug.cgi?id=154530
Unreviewed.
- gtk/jhbuild.modules: After r201449 the GTK+ ARM buildbot is having
a hard time trying to download the ICU tarball from download.icu-project.org
(which redirects to sourceforge and gives problems with something related to
SSL). Provide this alternative mirror to make things working back.
- 2:27 AM Changeset in webkit [201508] by
-
- 1 copy in releases/WebKitGTK/webkit-2.13.1
WebKitGTK+ 2.13.1
- 2:25 AM Changeset in webkit [201507] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.1 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.13.1.
- 12:51 AM Changeset in webkit [201506] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Fix GTK+ clean build after r201504.
- DatabaseProcess/DatabaseProcess.cpp: Add missing include.
- 12:22 AM Changeset in webkit [201505] by
-
- 2 edits in trunk/Tools
[GTK] Test /webkit2/WebKitWebView/geolocation-permission-requests is failing since r201423
https://bugs.webkit.org/show_bug.cgi?id=158200
Reviewed by Philippe Normand.
This is because geolocation is no longer allowed for non secure sites, like HTTP. In that case
POSITION_UNAVAILABLE is returned without asking the API layer.
- TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:
(testWebViewGeolocationPermissionRequests): Keep the HTTP case to check that it indeed returns
POSITION_UNAVAILABLE and use HTTPS URLs to check permission requests are allowed or denied. Also stop using the
document title, and use user script messages that are more reliable instead.