⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Apr 20, 2015:

11:47 PM Changeset in webkit [183053] by Simon Fraser
  • 4 edits
    2 adds in trunk

REGRESSION (r177494): -webkit-mask-image: with data URI fails on non-local files
https://bugs.webkit.org/show_bug.cgi?id=141857

Reviewed by Dirk Schulze.

Source/WebCore:

r177494 regressed loading of data URIs in masks with remote content, triggering
a cross-domain error which occurs because the mask loading happened via a separate
SVGDocument.

Fix by checking for data URIs at parsing time, which is what we used to do.

Test: http/tests/css/data-uri-mask.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseMaskImage):

  • svg/SVGURIReference.h:

(WebCore::SVGURIReference::isExternalURIReference):

LayoutTests:

Ref test with a masked green square. Has to be an http test to trigger the
origin checking.

  • http/tests/css/data-uri-mask-expected.html: Added.
  • http/tests/css/data-uri-mask.html: Added.
11:22 PM Changeset in webkit [183052] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Crash when showing Web Inspector on page with 'multipart/x-mixed-replace' main resource
https://bugs.webkit.org/show_bug.cgi?id=143979
<rdar://problem/20594948>

Reviewed by Timothy Hatcher.

InspectorDOMAgent::m_document was updated only once per load, from
FrameLoader::dispatchDidCommitLoad(). However, dispatchDidCommitLoad()
is not called for follow-up multipart replacing loads. You can see this
from the following check in DocumentLoader::commitData():

if (!isMultipartReplacingLoad())

frameLoader()->receivedFirstData();

As a result, in the case of a 'multipart/x-mixed-replace' main resource
InspectorDOMAgent::m_document would quickly get outdated as we create
a new Document for each replacing load. This would lead to Web Inspector
code using a Document without frame and causing crashes.

This patch calls InspectorInstrumentation::frameDocumentUpdated() from
Frame::setDocument() so that InspectorDOMAgent::m_document is always up
to date.

No new tests, not easily testable as the main resource needs to be
'multipart/x-mixed-replace'.

  • dom/Document.cpp:

(WebCore::Document::applyXSLTransform):
Stop calling InspectorInstrumentation::frameDocumentUpdated() here as
XSLTProcessor::createDocumentFromSource() will call Frame::setDocument()
and frameDocumentUpdated() will be called there.

  • page/Frame.cpp:

(WebCore::Frame::setDocument):
Call InspectorInstrumentation::frameDocumentUpdated() to make sure
InspectorDOMAgent::m_document gets updated.

10:52 PM Changeset in webkit [183051] by dburkart@apple.com
  • 1 copy in branches/safari-600.7-branch

Branched from safari-600.6-branch

10:49 PM Changeset in webkit [183050] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r182076. rdar://problem/20545985

10:30 PM Changeset in webkit [183049] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebKit2

Merged r181991. rdar://problem/20545917

10:20 PM Changeset in webkit [183048] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r179958. rdar://problem/20545917

10:17 PM Changeset in webkit [183047] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r179895. rdar://problem/20545917

10:13 PM Changeset in webkit [183046] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r179880. rdar://problem/20545917

10:03 PM Changeset in webkit [183045] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebKit2

Merged r181919. rdar://problem/20546023

9:59 PM Changeset in webkit [183044] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebKit2

Merged r181869. rdar://problem/20545937

9:35 PM Changeset in webkit [183043] by commit-queue@webkit.org
  • 3 edits
    8 deletes in trunk/Source/WebInspectorUI

Web Inspector: Unify PrettyPrinting Tool and UserInterface resources
https://bugs.webkit.org/show_bug.cgi?id=143969

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-20
Reviewed by Timothy Hatcher.

Have the PrettyPrinting tool just use the CodeMirror and WebInspector
resources from the relative UserInterface directory. This avoids
having duplicate resources in the tree which offered few advantages.

  • Scripts/update-pretty-printer.rb: Removed.
  • Tools/PrettyPrinting/CodeMirrorFormatters.js: Removed.
  • Tools/PrettyPrinting/Formatter.js: Removed.
  • Tools/PrettyPrinting/FormatterContentBuilder.js: Removed.
  • Tools/PrettyPrinting/codemirror.css: Removed.
  • Tools/PrettyPrinting/codemirror.js: Removed.
  • Tools/PrettyPrinting/css.js: Removed.
  • Tools/PrettyPrinting/index.html:
  • Tools/PrettyPrinting/javascript.js: Removed.
  • UserInterface/Views/CodeMirrorFormatters.js:

Fix style issues.

8:48 PM Changeset in webkit [183042] by jinwoo7.song@samsung.com
  • 7 edits
    3 adds in trunk/LayoutTests

[EFL] Unreviewed, update test expectations and rebaseline failing tests.

Remove some expected failures from tests that are passing.
Also rebaselined failing tests.

  • platform/efl/TestExpectations:
  • platform/efl/fast/dom/Element/getClientRects-expected.txt: Added. Rebaselined after r177774.
  • platform/efl/fast/dom/Range/getClientRects-expected.txt: Ditto.
  • platform/efl/fast/line-grid/line-align-right-edges-expected.png: Rebaselined after r177128.
  • platform/efl/fast/line-grid/line-align-right-edges-expected.txt: Ditto.
  • platform/efl/fast/table/022-expected.png: Rebaselined after r177774.
  • platform/efl/fast/table/022-expected.txt: Added. Ditto.
  • platform/efl/fast/text/wbr-pre-expected.png: Rebaselined after r177774.
  • platform/efl/fast/text/wbr-pre-expected.txt: Added. Ditto.
7:48 PM Changeset in webkit [183041] by rniwa@webkit.org
  • 9 edits
    1 add in trunk/Websites/perf.webkit.org

Perf dashboard should have UI to set status on analysis tasks
https://bugs.webkit.org/show_bug.cgi?id=143977

Reviewed by Chris Dumez.

Added the UI to set the result of an analysis task to 'progression', 'regression', 'unchanged', and 'inconclusive'
as well as a boolean indicating whether creating the analysis task was the right thing to do or not.
The latter will be a useful metric once we start automatically creating analysis tasks.

  • init-database.sql: Added two columns to analysis_tasks table.
  • public/api/analysis-tasks.php: Include the added columns in the JSON.
  • public/include/db.php:

(Database::to_database_boolean): Added.

  • public/include/json-header.php:

(require_match_one_of_values): Added.

  • public/privileged-api/update-analysis-task.php: Added. Updates 'result' and 'needed' values of an analysis task.

(main):

  • public/v2/analysis.js:

(App.AnalysisTask.result): Added.
(App.AnalysisTask.needed): Added. We don't use DS.attr('boolean') here since that would coerce null into false
and we want to differentiate null from false in order to differentiate the null-ness of the value.
(App.AnalysisTask.saveStatus): Added.
(App.AnalysisTask.statusLabel): Use 'result' as the label if it's set and all build requests have been processed.

  • public/v2/app.css:
  • public/v2/app.js:

(App.AnalysisTaskController.analysisResultOptions): Added.
(App.AnalysisTaskController.shouldNotHaveBeenCreated): Added.
(App.AnalysisTaskController.needsFeedback): Added. Show the checkbox to indicate the analysis task should not have
been created if 'no change' is selected.
(App.AnalysisTaskController._updateChosenAnalysisResult): Added.
(App.AnalysisTaskController.actions.saveStatus): Added.

  • public/v2/index.html: Extracted a partial template for updating the bug numbers. Also added the UI to update

'result' and 'needed' values of the analysis task.

7:37 PM Changeset in webkit [183040] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

PhantomNewObject should be marked NodeMustGenerate
https://bugs.webkit.org/show_bug.cgi?id=143974

Patch by Basile Clement <basile_clement@apple.com> on 2015-04-20
Reviewed by Filip Pizlo.

  • dfg/DFGNodeType.h: Mark PhantomNewObject as NodeMustGenerate
6:48 PM Changeset in webkit [183039] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

Fix compilation error for prepare-ChangeLog running with Perl version < v5.18.2.

Unreviewed build fix.

The any function was added to List::Utils between Perl v5.16.2 and Perl v5.18.2.
However, it has been exposed by List::MoreUtils since its inception. This patch uses
the any function exposed by List::MoreUtils for greater compatibility.

  • Scripts/prepare-ChangeLog:

Use any from List::MoreUtils instead of List::Utils, as List::MoreUtils exposes
the any function in all of versions of Perl used by our infrastructure.

5:43 PM Changeset in webkit [183038] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

Expose more bundle form client functions as WKWebProcessPlugInFormDelegatePrivate methods
https://bugs.webkit.org/show_bug.cgi?id=143973

Reviewed by Anders Carlsson.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared new

delegate methods.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: Declared new frame

property.

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

(-[WKWebProcessPlugInNodeHandle frame]): Added. Returns the node’s document’s frame. This is
useful to delegates getting an array of nodes via the new method.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added overrides of
shouldNotifyOnFormChanges and didAssociateFormControls, which call the new delegate methods.

5:17 PM Changeset in webkit [183037] by Lucas Forschler
  • 26 edits
    4 copies in branches/safari-600.1.4.16-branch

Merged r181656 and r182985.

4:38 PM Changeset in webkit [183036] by achristensen@apple.com
  • 2 edits in trunk/Tools

Remove unnecessary logs when resetting tests.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):
In r183020 I added some logs when compiling or removing content extensions fails.
We often try to remove a content extension that does not exist, and that is not a problem.

4:26 PM Changeset in webkit [183035] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Overwrite existing files with moveFile.
https://bugs.webkit.org/show_bug.cgi?id=143968

Reviewed by Brady Eidson and Anders Carlsson.

  • platform/mac/FileSystemMac.mm:

(-[WebFileManagerDelegate fileManager:shouldProceedAfterError:movingItemAtURL:toURL:]):
(WebCore::moveFile):
r182932 introduced moveFile instead of renameFile. In order to preserve behavior, it should overwrite existing files.

4:05 PM Changeset in webkit [183034] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r180520. rdar://problem/20546024

4:00 PM Changeset in webkit [183033] by Lucas Forschler
  • 3 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r179850. rdar://problem/20545969

3:53 PM Changeset in webkit [183032] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows build fix after r183031.

  • platform/graphics/OpenGLShims.cpp:

(WebCore::lookupOpenGLFunctionAddress):
Windows needs an explicit cast converting LChar* to const char*.
Also, add a FIXME comment for sketchy behavior.

3:07 PM Changeset in webkit [183031] by commit-queue@webkit.org
  • 27 edits in trunk/Source

Cleanup some StringBuilder use
https://bugs.webkit.org/show_bug.cgi?id=143550

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-20
Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/Symbol.cpp:

(JSC::Symbol::descriptiveString):

  • runtime/TypeProfiler.cpp:

(JSC::TypeProfiler::typeInformationForExpressionAtOffset):

  • runtime/TypeSet.cpp:

(JSC::TypeSet::toJSONString):
(JSC::StructureShape::propertyHash):
(JSC::StructureShape::stringRepresentation):
(JSC::StructureShape::toJSONString):

Source/WebCore:

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::youTubeURL):

  • css/CSSAnimationTriggerScrollValue.cpp:

(WebCore::CSSAnimationTriggerScrollValue::customCSSText):

  • css/CSSCanvasValue.cpp:

(WebCore::CSSCanvasValue::customCSSText):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS):
(WebCore::CaptionUserPreferencesMediaAF::windowRoundedCornerRadiusCSS):
(WebCore::CaptionUserPreferencesMediaAF::cssPropertyWithTextEdgeColor):
(WebCore::CaptionUserPreferencesMediaAF::colorPropertyCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):

  • page/EventSource.cpp:

(WebCore::EventSource::didReceiveResponse):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeCSSStyleSheet):

  • platform/graphics/OpenGLShims.cpp:

(WebCore::lookupOpenGLFunctionAddress):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processCueAttributes):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::generateHashedName):

  • platform/text/DateTimeFormat.cpp:

(WebCore::DateTimeFormat::quoteAndAppendLiteral):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeRenderRegionList):

  • testing/MicroTaskTest.cpp:

(WebCore::MicroTaskTest::run):

  • testing/MockContentFilterSettings.cpp:

(WebCore::MockContentFilterSettings::unblockRequestURL):

Source/WebKit2:

  • DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:

(WebKit::buildObjectStoreStatement):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::v2RecordsTableSchema):

  • Shared/Databases/IndexedDB/IDBUtilities.cpp:

(WebKit::uniqueDatabaseIdentifier):

  • UIProcess/API/APIUserScript.cpp:

(API::UserScript::generateUniqueURL):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::didReceiveInvalidMessage):

  • WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:

(WebKit::combinedSecurityOriginIdentifier):

3:05 PM Changeset in webkit [183030] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

prepare-ChangeLog should ignore the preceeding function when processing the removal of a function.
https://bugs.webkit.org/show_bug.cgi?id=143897

Reviewed by David Kilzer.

This is a speculative fix that addresses two issues:

  1. An off-by-one error which allowed ending lines to be less than starting lines when a hunk was a pure delete.

We were determining ending lines from combined diffs using the logic: End = Start + Offset - 1.

So for a hunk like "@@ -723,10 +721,0 @@ bool foobar", we were generating the following starting/ending line pairs:
Before: (723, 729)
After: (721, 720)

Before is correct, but After should be (721, 721), since it represents the beginning and ending lines for the hunk.
Whether there are zero lines or one line in the hunk, the starting and ending line are the same.

This error was causing bad behavior on purely additive and purely subtractive hunks, but since we only refer
to After when generating ChangeLog output, the extractLineRangeBeforeChange had no visible effect on program output.

The fix is to set End to the max of Start + Offset - 1 and Start, rather than always using the former.

  1. Creating git diffs from HEAD and not origin/master by default.

Hard-coding origin/master into the originalFile command has the disadvantage of causing the diff to fail entirely
when origin/master does not exist, and to do the wrong thing when determining deleted functions/methods.

  • Scripts/prepare-ChangeLog:

(originalFile):
Use HEAD instead of origin/master in default Git case.

(generateFunctionLists):
Ensure that the end line is not less than the start line.

(extractLineRangeAfterChange):
Set the end line to the start line if the end line is less than the start line.

(extractLineRangeBeforeChange):
Ditto.

3:05 PM Changeset in webkit [183029] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

Suppress warning in prepare-ChangeLog.
https://bugs.webkit.org/show_bug.cgi?id=143882

Reviewed by David Kilzer.

Prune noisy prepare-ChangeLog output by using the List::Util::any function
instead of the deprecated smartmatch operator.

  • Scripts/prepare-ChangeLog:

Import the List::Util::any function.

(get_function_line_ranges_for_cpp):
Use the any function instead of smartmatch.

2:48 PM Changeset in webkit [183028] by andersca@apple.com
  • 10 edits in trunk

Modify the WKWebsiteDataStore API to take a NSSet of types instead of a bitmask
https://bugs.webkit.org/show_bug.cgi?id=143966

Reviewed by Dan Bernstein.

Source/WebKit2:

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

(dataTypesToString):
(-[WKWebsiteDataRecord dataTypes]):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):

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

(+[WKWebsiteDataStore allWebsiteDataTypes]):
(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(toWKWebsiteDataTypes):
(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(dataTypes):
(-[WK2BrowserWindowController fetchWebsiteData:]):
(-[WK2BrowserWindowController fetchAndClearWebsiteData:]):
(-[WK2BrowserWindowController clearWebsiteData:]):

2:31 PM Changeset in webkit [183027] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Add debugging tools to test if a given pointer is a valid object and in the heap.
https://bugs.webkit.org/show_bug.cgi?id=143910

Reviewed by Geoffrey Garen.

When doing debugging from lldb, sometimes, it is useful to be able to tell if a
purported JSObject is really a valid object in the heap or not. We can add the
following utility functions to help:

isValidCell(heap, candidate) - returns true if the candidate is a "live" cell in the heap.
isInHeap(heap, candidate) - returns true if the candidate is the heap's Object space or Storage space.
isInObjectSpace(heap, candidate) - returns true if the candidate is the heap's Object space.
isInStorageSpace(heap, candidate) - returns true if the candidate is the heap's Storage space.

Also moved lldb callable debug utility function prototypes from
JSDollarVMPrototype.cpp to JSDollarVMPrototype.h as static members of the
JSDollarVMPrototype class. This is so that we can conveniently #include that
file to get the prototypes when we need to call them programmatically from
instrumentation that we add while debugging an issue.

  • heap/Heap.h:

(JSC::Heap::storageSpace):

  • tools/JSDollarVMPrototype.cpp:

(JSC::JSDollarVMPrototype::currentThreadOwnsJSLock):
(JSC::ensureCurrentThreadOwnsJSLock):
(JSC::JSDollarVMPrototype::gc):
(JSC::functionGC):
(JSC::JSDollarVMPrototype::edenGC):
(JSC::functionEdenGC):
(JSC::JSDollarVMPrototype::isInHeap):
(JSC::JSDollarVMPrototype::isInObjectSpace):
(JSC::JSDollarVMPrototype::isInStorageSpace):
(JSC::ObjectAddressCheckFunctor::ObjectAddressCheckFunctor):
(JSC::ObjectAddressCheckFunctor::operator()):
(JSC::JSDollarVMPrototype::isValidCell):
(JSC::JSDollarVMPrototype::isValidCodeBlock):
(JSC::JSDollarVMPrototype::codeBlockForFrame):
(JSC::functionCodeBlockForFrame):
(JSC::codeBlockFromArg):
(JSC::JSDollarVMPrototype::printCallFrame):
(JSC::JSDollarVMPrototype::printStack):
(JSC::JSDollarVMPrototype::printValue):
(JSC::currentThreadOwnsJSLock): Deleted.
(JSC::gc): Deleted.
(JSC::edenGC): Deleted.
(JSC::isValidCodeBlock): Deleted.
(JSC::codeBlockForFrame): Deleted.
(JSC::printCallFrame): Deleted.
(JSC::printStack): Deleted.
(JSC::printValue): Deleted.

  • tools/JSDollarVMPrototype.h:
1:43 PM Changeset in webkit [183026] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

SVGFitToViewBox::viewBoxToViewTransform() has to count for zero physical width and height before calling SVGPreserveAspectRatio::getCTM()
https://bugs.webkit.org/show_bug.cgi?id=143903

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-04-20
Reviewed by Daniel Bates.

Source/WebCore:

Ensure that the SVG viewBoxToView transformation is always invertible.
CG path drawing functions crash if the context is transformed to non-
invertible matrix.

Tests: svg/css/crash-path-zero-height-viewbox.svg

svg/css/crash-path-zero-width-viewbox.svg

  • svg/SVGFitToViewBox.cpp:

(WebCore::SVGFitToViewBox::viewBoxToViewTransform):
Do not call SVGPreserveAspectRatio::getCTM() if the physical width or the
physical height is zero.

  • svg/SVGPreserveAspectRatio.cpp:

(WebCore::SVGPreserveAspectRatio::getCTM):
Ensure that we are not dividing by zero in this function.

LayoutTests:

  • svg/css/crash-path-zero-height-viewbox-expected.txt: Added.
  • svg/css/crash-path-zero-height-viewbox.svg: Added.
  • svg/css/crash-path-zero-width-viewbox-expected.txt: Added.
  • svg/css/crash-path-zero-width-viewbox.svg: Added.

Make sure if the physical width or the physical height of an SVG is zero
and a viewBox is specified, we do not crash.

1:25 PM Changeset in webkit [183025] by commit-queue@webkit.org
  • 16 edits in trunk

Web Inspector: Improve Support for WeakSet in Console
https://bugs.webkit.org/show_bug.cgi?id=143951

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-20
Reviewed by Darin Adler.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::weakSetSize):
(Inspector::JSInjectedScriptHost::weakSetEntries):

  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHostPrototype.cpp:

(Inspector::JSInjectedScriptHostPrototype::finishCreation):
(Inspector::jsInjectedScriptHostPrototypeFunctionWeakSetSize):
(Inspector::jsInjectedScriptHostPrototypeFunctionWeakSetEntries):
Treat WeakSets like special sets.

  • inspector/protocol/Runtime.json:

Add a new object subtype, "weakset".

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:

WeakSet has the same APIs and parameters as Set for the functions it implements.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.isCollectionType):
(WebInspector.RemoteObject.prototype.isWeakCollection):
(WebInspector.RemoteObject.prototype.getCollectionEntries):
(WebInspector.RemoteObject.prototype._weakCollectionObjectGroup):
WeakSet is a weak collection.

  • UserInterface/Models/ObjectPreview.js:

(WebInspector.ObjectPreview.prototype.hasSize):

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._formatParameter):

  • UserInterface/Views/FormattedValue.css:

(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap, .formatted-weakset):
(:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap, .formatted-weakset) > .size):
(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap): Deleted.
(:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap) > .size): Deleted.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForTypesAndValue):
Treat a WeakSet like a set in more places.

LayoutTests:

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object.html:

Update the test to include a WeakSet example.
Also rebaseline for iterator changes that landed recently.

12:40 PM Changeset in webkit [183024] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

CSSParser::parseValue() copies the m_parsedProperties vector at addParsedProperties()
https://bugs.webkit.org/show_bug.cgi?id=143925

Reviewed by Simon Fraser.

Update MutableStyleProperties::addParsedProperties() to use
CSSParser::ParsedPropertyVector type (i.e. Vector<CSSProperty, 256>)
instead of Vector<CSSProperty> so that the properties vector is no
longer copied unnecessarily to convert one type to the other.

  • css/CSSParser.h:
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::addParsedProperties):

  • css/StyleProperties.h:
12:39 PM Changeset in webkit [183023] by ap@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Disable mixed content blocking for existing WebKit1 clients
https://bugs.webkit.org/show_bug.cgi?id=143955
rdar://problem/20177186

Reviewed by Oliver Hunt.

  • Misc/WebKitVersionChecks.h:
  • WebView/WebView.mm:

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

12:35 PM Changeset in webkit [183022] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

HashMap storing PropertyKey StringImpl* need to use IdentifierRepHash to handle Symbols
https://bugs.webkit.org/show_bug.cgi?id=143947

Reviewed by Darin Adler.

Type profiler has map between PropertyKey (StringImpl*) and offset.
StringImpl* is also used for Symbol PropertyKey.
So equality of hash tables is considered by interned StringImpl*'s pointer value.
To do so, use IdentifierRepHash instead of StringHash.

  • runtime/SymbolTable.h:
12:03 PM Changeset in webkit [183021] by Beth Dakin
  • 15 edits in trunk/Source

Should remove mouseForceClick and mouseForceCancelled from DOM force events
https://bugs.webkit.org/show_bug.cgi?id=143904
-and corresponding-
rdar://problem/20578842

Reviewed by Dan Bernstein.

Source/WebCore:

After more thought and discussion, we decided to remove mouseForceClick and
mouseForceCancelled from DOM force events. mouseForceClick is confusing and
redundant. mouseForceCancelled is confusing as it is currently implemented, and
all of its functionality can be filled by exisiting events such as mouseup,
mouseout, etc.

  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded):

  • dom/Document.h:
  • dom/Document.idl:
  • dom/Element.cpp:

(WebCore::Element::dispatchMouseForceWillBegin):
(WebCore::Element::dispatchMouseForceClick): Deleted.
(WebCore::Element::dispatchMouseForceCancelled): Deleted.

  • dom/Element.h:
  • dom/Element.idl:
  • dom/EventNames.h:
  • html/HTMLAttributeNames.in:
  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::createWindowEventHandlerNameMap):

  • html/HTMLBodyElement.idl:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createEventHandlerNameMap):

  • page/DOMWindow.idl:

Source/WebKit2:

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::immediateActionDidCancel):

11:48 AM Changeset in webkit [183020] by achristensen@apple.com
  • 4 edits in trunk

Fix content extension test flakiness.
https://bugs.webkit.org/show_bug.cgi?id=143950

Reviewed by Brady Eidson.

Tools:

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):
Remove the TestContentExtensions if it exists.
(WTR::TestController::platformConfigureViewForTest):
Log errors in case there are any.

LayoutTests:

  • platform/mac-wk2/TestExpectations:

Mark contentextensions tests as not flaky any more.

11:46 AM Changeset in webkit [183019] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Implement immediate action support for tel: and mailto: URLs
https://bugs.webkit.org/show_bug.cgi?id=143916
<rdar://problem/19721711>

Reviewed by Darin Adler.

  • Shared/API/c/WKImmediateActionTypes.h:
  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _menuItemForDataDetectedText]): Deleted.
Add _animationControllerForDataDetectedLink and use it when
building immediate actions for tel: and mailto: links.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
(-[WebImmediateActionController _menuItemForDataDetectedText]): Deleted.

  • WebView/WebUIDelegatePrivate.h:

Add _animationControllerForDataDetectedLink and use it when
building immediate actions for tel: and mailto: links.

11:45 AM Changeset in webkit [183018] by Beth Dakin
  • 2 edits in trunk/LayoutTests

Should not list these tests twice.

  • platform/mac-wk2/TestExpectations:
11:31 AM Changeset in webkit [183017] by Simon Fraser
  • 17 edits
    2 adds in trunk

Setting inline style to the same value it already has triggers a style recalc
https://bugs.webkit.org/show_bug.cgi?id=143922

Reviewed by Antti Koivisto.

Source/WebCore:

MutableStyleProperties::setProperty() was taking the result of CSSParser::parseValue()
to mean "parsing changed the style", but it actually just means "parsing succeeded".
Add a new out param, piped through various parser functions, to indicate whether
parsing actually changed style, and instead return that from setProperty().

Add internals.startTrackingStyleRecalcs() and internals.styleRecalcCount() so
we can write tests for style recalc.

Test: fast/css/set-inline-style-recalc.html

  • WebCore.xcodeproj/project.pbxproj: Let Xcode have it's way.
  • css/CSSParser.cpp:

(WebCore::parseColorValue):
(WebCore::parseSimpleLengthValue):
(WebCore::parseKeywordValue):
(WebCore::parseTranslateTransformValue):
(WebCore::CSSParser::parseFontFaceValue):
(WebCore::CSSParser::parseValue):

  • css/CSSParser.h:
  • css/CSSProperty.h:

(WebCore::StylePropertyMetadata::operator==):
(WebCore::CSSProperty::operator==):

  • css/DOMWindowCSS.cpp:

(WebCore::DOMWindowCSS::supports):

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::setProperty):
(WebCore::MutableStyleProperties::appendPrefixingVariantProperty):
(WebCore::MutableStyleProperties::addParsedProperties):
(WebCore::MutableStyleProperties::addParsedProperty):

  • css/StyleProperties.h:
  • css/WebKitCSSMatrix.cpp:

(WebCore::WebKitCSSMatrix::setMatrixValue):

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):
(WebCore::Document::startTrackingStyleRecalcs):
(WebCore::Document::styleRecalcCount):

  • dom/Document.h:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setFont):

  • testing/Internals.cpp:

(WebCore::Internals::startTrackingStyleRecalcs):
(WebCore::Internals::styleRecalcCount):

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

LayoutTests:

Test that changes inline-style (to test this bug fix), and classes (for
proactive testing) and counts style recalcs.

  • fast/css/set-inline-style-recalc-expected.txt: Added.
  • fast/css/set-inline-style-recalc.html: Added.
10:14 AM Changeset in webkit [183016] by beidson@apple.com
  • 5 edits
    7 adds in trunk

Crash in StyleResolver::invalidateMatchedPropertiesCache() when using content extensions.
<rdar://problem/20554405> and https://bugs.webkit.org/show_bug.cgi?id=143892

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/contentextensions/style-resolver-changed-reentrancy.html

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):

  • dom/DocumentStyleSheetCollection.cpp:

(WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::addContentExtensionUserSheet): Call styleResolverChanged on a delay.
(WebCore::DocumentStyleSheetCollection::maybeAddContentExtensionSheet): Ditto.
(WebCore::DocumentStyleSheetCollection::styleResolverChangedTimerFired):

  • dom/DocumentStyleSheetCollection.h:

LayoutTests:

  • http/tests/contentextensions/resources/woff-stylesheet.css: Added.

(@font-face):

  • http/tests/contentextensions/style-resolver-changed-reentrancy-expected.txt: Added.
  • http/tests/contentextensions/style-resolver-changed-reentrancy.html: Added.
  • http/tests/contentextensions/style-resolver-changed-reentrancy.html.json: Added.
  • http/tests/resources/Ahem.woff: Added.
9:49 AM Changeset in webkit [183015] by peavo@outlook.com
  • 3 edits
    2 adds in trunk

Favicons are not always loaded.
https://bugs.webkit.org/show_bug.cgi?id=143880

Reviewed by Darin Adler.

Source/WebCore:

If the favicon link element(s) in the document does not have a mime type,
the favicon is loaded from the domain root (/favicon.ico). If no favicon
exists at this location, the favicon loading will fail. This can be solved
by not demanding that the link element has a mime type.

Test: fast/dom/icon-url-without-mimetype.html

  • loader/icon/IconController.cpp:

(WebCore::iconFromLinkElements): Return the chosen icon URL instead of a vector of URLs.
(WebCore::IconController::url):
(WebCore::iconsFromLinkElements): Deleted.

LayoutTests:

Added new test for icon link elements without mime type.

  • fast/dom/icon-url-without-mimetype-expected.txt: Added.
  • fast/dom/icon-url-without-mimetype.html: Added.
9:37 AM Changeset in webkit [183014] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Contentextensions tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=143950

  • platform/mac-wk2/TestExpectations: Marking them as such.
9:13 AM Changeset in webkit [183013] by achristensen@apple.com
  • 4 edits in trunk

Properly report errors from _WKUserContentExtensionStore.
https://bugs.webkit.org/show_bug.cgi?id=143808

Reviewed by Darin Adler.

Source/WebKit2:

  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:

(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm:

(TEST_F):

8:23 AM Changeset in webkit [183012] by Martin Robinson
  • 3 edits in trunk/Source/WebCore

[CMake] Include ICU unconditionally on the source lists
https://bugs.webkit.org/show_bug.cgi?id=143900

Reviewed by Darin Adler.

No new tests. This is just a build file change.

  • CMakeLists.txt: Integrate ICU source files, includes, and libraries into the main

sections. They are shared by all platforms.

  • PlatformGTK.cmake: Eliminate build rules that are duplicated from the main CMakeLists.txt.
8:05 AM Changeset in webkit [183011] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: iOS: Text input field ignores value of read-only and aria-readonly attributes
https://bugs.webkit.org/show_bug.cgi?id=143946

Reviewed by Mario Sanchez Prada.

Expose an existing method for determining whether the value can be set to the iOS accessibility platform.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanSetValue]):

3:48 AM Changeset in webkit [183010] by jinwoo7.song@samsung.com
  • 4 edits
    1 add in trunk/LayoutTests

[EFL] Unreviewed gardening

Update test expectations for failing tests.

  • platform/efl/fast/box-sizing/box-sizing-expected.png: Rebaseline after 176978.
  • platform/efl/fast/box-sizing/box-sizing-expected.txt: Ditto.
  • platform/efl/fast/css/image-rendering-expected.txt: Added. Rebaseline after r177774.
  • platform/efl/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:

Rebaseline after r173857.

2:18 AM Changeset in webkit [183009] by akling@apple.com
  • 6 edits
    1 delete in trunk/Source/WebCore

Merge TreeShared into Node.
<https://webkit.org/b/143942>

Reviewed by Darin Adler.

Node was the only remaining user of TreeShared, so just fold the class into Node.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Node.cpp:

(WebCore::Node::Node):
(WebCore::Node::~Node):

  • dom/Node.h:

(WebCore::Node::ref):
(WebCore::Node::deref):
(WebCore::Node::hasOneRef):
(WebCore::Node::refCount):
(WebCore::adopted):
(WebCore::Node::hasTreeSharedParent): Deleted.

  • platform/TreeShared.h: Removed.
1:31 AM Changeset in webkit [183008] by jinwoo7.song@samsung.com
  • 1 edit
    1 add in trunk/LayoutTests

[EFL] Unreviewed gardening

Rebaseline after r177774.

  • platform/efl/css2.1/t1508-c527-font-00-b-expected.txt: Added.
1:29 AM Changeset in webkit [183007] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add a rule for NetworkCache to watchlist file
https://bugs.webkit.org/show_bug.cgi?id=143945

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2015-04-20
Reviewed by Sergio Villar Senin.

And add myself to the list of watchers.

  • Scripts/webkitpy/common/config/watchlist:
12:05 AM Changeset in webkit [183006] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk

Implement Object.is
https://bugs.webkit.org/show_bug.cgi?id=143865

Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-20
Reviewed by Darin Adler.

Source/JavaScriptCore:

Expose sameValue to JS, via Object.is
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.is

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorIs):

  • runtime/PropertyDescriptor.cpp:

(JSC::sameValue):

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/Object-is-expected.txt: Added.
  • js/Object-is.html: Added.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/Object-is.js: Added.

Apr 19, 2015:

11:05 PM Changeset in webkit [183005] by Darin Adler
  • 10 edits in trunk/Source/JavaScriptCore

Remove all the remaining uses of OwnPtr and PassOwnPtr in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=143941

Reviewed by Gyuyoung Kim.

  • API/JSCallbackObject.h: Use unique_ptr for m_callbackObjectData.
  • API/JSCallbackObjectFunctions.h: Ditto.
  • API/ObjCCallbackFunction.h: Use unique_ptr for the arguments to the

create function and the constructor and for m_impl.

  • API/ObjCCallbackFunction.mm:

(CallbackArgumentOfClass::CallbackArgumentOfClass): Streamline this
class by using RetainPtr<Class>.
(ArgumentTypeDelegate::typeInteger): Use make_unique.
(ArgumentTypeDelegate::typeDouble): Ditto.
(ArgumentTypeDelegate::typeBool): Ditto.
(ArgumentTypeDelegate::typeVoid): Ditto.
(ArgumentTypeDelegate::typeId): Ditto.
(ArgumentTypeDelegate::typeOfClass): Ditto.
(ArgumentTypeDelegate::typeBlock): Ditto.
(ArgumentTypeDelegate::typeStruct): Ditto.
(ResultTypeDelegate::typeInteger): Ditto.
(ResultTypeDelegate::typeDouble): Ditto.
(ResultTypeDelegate::typeBool): Ditto.
(ResultTypeDelegate::typeVoid): Ditto.
(ResultTypeDelegate::typeId): Ditto.
(ResultTypeDelegate::typeOfClass): Ditto.
(ResultTypeDelegate::typeBlock): Ditto.
(ResultTypeDelegate::typeStruct): Ditto.
(JSC::ObjCCallbackFunctionImpl::ObjCCallbackFunctionImpl): Use
unique_ptr for the arguments to the constructor, m_arguments, and m_result.
Use RetainPtr<Class> for m_instanceClass.
(JSC::objCCallbackFunctionCallAsConstructor): Use nullptr instead of nil or 0
for non-Objective-C object pointer null.
(JSC::ObjCCallbackFunction::ObjCCallbackFunction): Use unique_ptr for
the arguments to the constructor and for m_impl.
(JSC::ObjCCallbackFunction::create): Use unique_ptr for arguments.
(skipNumber): Mark this static since it's local to this source file.
(objCCallbackFunctionForInvocation): Call parseObjCType without doing any
explicit adoptPtr since the types in the traits are now unique_ptr. Also use
nullptr instead of nil for JSObjectRef values.
(objCCallbackFunctionForMethod): Tweaked comment.
(objCCallbackFunctionForBlock): Use nullptr instead of 0 for JSObjectRef.

  • bytecode/CallLinkInfo.h: Removed unneeded include of OwnPtr.h.
  • heap/GCThread.cpp:

(JSC::GCThread::GCThread): Use unique_ptr.

  • heap/GCThread.h: Use unique_ptr for arguments to the constructor and for

m_slotVisitor and m_copyVisitor.

  • heap/GCThreadSharedData.cpp:

(JSC::GCThreadSharedData::GCThreadSharedData): Ditto.

  • parser/SourceProvider.h: Removed unneeded include of PassOwnPtr.h.
10:32 PM Changeset in webkit [183004] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

10:30 PM Changeset in webkit [183003] by bshafiei@apple.com
  • 1 copy in branches/safari-600.1.4.16-branch

New Branch.

9:47 PM Changeset in webkit [183002] by mitz@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fixed a typo.

  • coding/RefPtr.html:
9:42 PM Changeset in webkit [183001] by Darin Adler
  • 9 edits in trunk

Update RefPtr documentation and deprecation
https://bugs.webkit.org/show_bug.cgi?id=143936

Reviewed by Andreas Kling.

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj: Removed PassRef.h
  • WTF.vcxproj/WTF.vcxproj.filters: Ditto.
  • WTF.xcodeproj/project.pbxproj: Ditto.
  • wtf/CMakeLists.txt: Ditto.

Tools:

  • Scripts/do-webcore-rename: Put in some DeprecatedPassRefPtr renames.

Websites/webkit.org:

  • coding/RefPtr.html: Updated.
9:17 PM Changeset in webkit [183000] by bshafiei@apple.com
  • 5 edits in branches/safari-600.6-branch/Source

Versioning.

9:08 PM Changeset in webkit [182999] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.6.2

New tag.

8:54 PM Changeset in webkit [182998] by benjamin@webkit.org
  • 4 edits in trunk/Source

Improve the feature.json files

  • features.json:
6:45 PM Changeset in webkit [182997] by Yusuke Suzuki
  • 14 edits
    3 adds in trunk

Introduce bytecode intrinsics
https://bugs.webkit.org/show_bug.cgi?id=143926

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch introduces bytecode level intrinsics into builtins/*.js JS code.
When implementing functions in builtins/*.js,
sometimes we require lower level functionality.

For example, in the current Array.from, we use result[k] = value.
The spec requires [[DefineOwnProperty]] operation here.
However, usual result[k] = value is evaluated as [[Set]]. (PutValue => [[Set]])
So if we implement Array.prototype[k] getter/setter, the difference is observable.

Ideally, reaching here, we would like to use put_by_val_direct bytecode.
However, there's no syntax to generate it directly.

This patch introduces bytecode level intrinsics into JSC BytecodeCompiler.
Like @call, @apply, we introduce a new node, Intrinsic.
These are generated when calling appropriate private symbols in privileged code.
AST parser detects them and generates Intrinsic nodes and
BytecodeCompiler detects them and generate required bytecodes.

Currently, Array.from implementation works fine without this patch.
This is because when the target code is builtin JS,
BytecodeGenerator emits put_by_val_direct instead of put_by_val.
This solves the above issue. However, instead of solving this issue,
it raises another issue; There's no way to emit [[Set]] operation.
[[Set]] operation is actually used in the spec (Array.from's "length" is set by [[Set]]).
So to implement it precisely, introducing bytecode level intrinsics is necessary.

In the subsequent fixes, we'll remove that special path emitting put_by_val_direct
for result[k] = value under builtin JS environment. Instead of that special handling,
use bytecode intrinsics instead. It solves problems and it is more intuitive
because written JS code in builtin works as the same to the usual JS code.

(from):

  • bytecode/BytecodeIntrinsicRegistry.cpp: Added.

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::lookup):

  • bytecode/BytecodeIntrinsicRegistry.h: Added.
  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByValDirect):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/NodeConstructors.h:

(JSC::BytecodeIntrinsicNode::BytecodeIntrinsicNode):

  • parser/Nodes.h:

(JSC::BytecodeIntrinsicNode::identifier):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers):

  • runtime/CommonIdentifiers.h:

(JSC::CommonIdentifiers::bytecodeIntrinsicRegistry):

  • tests/stress/array-from-with-accessors.js: Added.

(shouldBe):

Tools:

Change cpplint to accept emit_intrinsic_XXX.

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

(check_identifier_name_in_declaration):

6:28 PM Changeset in webkit [182996] by Gyuyoung Kim
  • 3 edits in trunk

[CMake] Synchronize variables between WebKitFeatures.cmake and cmakedonfig.h.cmake
https://bugs.webkit.org/show_bug.cgi?id=143935

Reviewed by Darin Adler.

Some variables aren't defined in these files or unused variables aren't removed. This
patch cleans up it as well as fix wrong alphabet order.

  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:
11:59 AM Changeset in webkit [182995] by Yusuke Suzuki
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

Make Builtin functions non constructible
https://bugs.webkit.org/show_bug.cgi?id=143923

Reviewed by Darin Adler.

Builtin functions defined by builtins/*.js accidentally have Construct.
According to the spec, these functions except for explicitly defined as a constructor do not have Construct.
This patch fixes it. When the JS function used for a construction is builtin function, throw not a constructor error.

Ideally, returning ConstructTypeNone in JSFunction::getConstructData is enough.
However, to avoid calling getConstructData (it involves indirect call of function pointer of getConstructData), some places do not check ConstructType.
In these places, they only check the target function is JSFunction because previously JSFunction always has Construct.
So in this patch, we check isBuiltinFunction() in those places.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::inliningCost):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getConstructData):

  • tests/stress/builtin-function-is-construct-type-none.js: Added.

(shouldThrow):

11:08 AM Changeset in webkit [182994] by Yusuke Suzuki
  • 12 edits
    11 adds in trunk

[ES6] Implement WeakSet
https://bugs.webkit.org/show_bug.cgi?id=142408

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch implements ES6 WeakSet.
Current implementation simply leverages WeakMapData with undefined value.
This WeakMapData should be optimized in the same manner as MapData/SetData in the subsequent patch[1].

And in this patch, we also fix WeakMap/WeakSet behavior to conform the ES6 spec.
Except for adders (WeakMap.prototype.set/WeakSet.prototype.add),
methods return false (or undefined for WeakMap.prototype.get)
when a key is not Object instead of throwing a type error.

[1]: https://bugs.webkit.org/show_bug.cgi?id=143919

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:
  • runtime/JSWeakSet.cpp: Added.

(JSC::JSWeakSet::finishCreation):
(JSC::JSWeakSet::visitChildren):

  • runtime/JSWeakSet.h: Added.

(JSC::JSWeakSet::createStructure):
(JSC::JSWeakSet::create):
(JSC::JSWeakSet::weakMapData):
(JSC::JSWeakSet::JSWeakSet):

  • runtime/WeakMapPrototype.cpp:

(JSC::getWeakMapData):
(JSC::protoFuncWeakMapDelete):
(JSC::protoFuncWeakMapGet):
(JSC::protoFuncWeakMapHas):

  • runtime/WeakSetConstructor.cpp: Added.

(JSC::WeakSetConstructor::finishCreation):
(JSC::callWeakSet):
(JSC::constructWeakSet):
(JSC::WeakSetConstructor::getConstructData):
(JSC::WeakSetConstructor::getCallData):

  • runtime/WeakSetConstructor.h: Added.

(JSC::WeakSetConstructor::create):
(JSC::WeakSetConstructor::createStructure):
(JSC::WeakSetConstructor::WeakSetConstructor):

  • runtime/WeakSetPrototype.cpp: Added.

(JSC::WeakSetPrototype::finishCreation):
(JSC::getWeakMapData):
(JSC::protoFuncWeakSetDelete):
(JSC::protoFuncWeakSetHas):
(JSC::protoFuncWeakSetAdd):

  • runtime/WeakSetPrototype.h: Added.

(JSC::WeakSetPrototype::create):
(JSC::WeakSetPrototype::createStructure):
(JSC::WeakSetPrototype::WeakSetPrototype):

  • tests/stress/weak-set-constructor-adder.js: Added.

(WeakSet.prototype.add):

  • tests/stress/weak-set-constructor.js: Added.

LayoutTests:

Add basic-weakset test and fix WeakMap behavior to conform the latest spec.

  • js/dom/basic-weakmap-expected.txt:
  • js/dom/basic-weakset-expected.txt: Added.
  • js/dom/basic-weakset.html: Added.
  • js/dom/script-tests/basic-weakmap.js:
  • js/dom/script-tests/basic-weakset.js: Added.
9:17 AM Changeset in webkit [182993] by Simon Fraser
  • 2 edits in trunk

Restore the WebKit.xcworkspace to the way it was before r182899,
which inadvertently added the Source directory and a couple of source
files.

  • WebKit.xcworkspace/contents.xcworkspacedata:
12:10 AM Changeset in webkit [182992] by bshafiei@apple.com
  • 5 edits in branches/safari-600.6-branch/Source

Versioning.

Note: See TracTimeline for information about the timeline view.