Timeline



Feb 18, 2016:

11:27 PM Changeset in webkit [196803] by yoon@igalia.com
  • 7 edits in trunk/Source

[GTK] Limit the number of tiles according to the visible area
https://bugs.webkit.org/show_bug.cgi?id=126122

Reviewed by Carlos Garcia Campos.

Source/WebCore:

TextureMapperTiledBackingStore creates tiles for whole layer bounds, which
means it creates the huge amount of textures if there is an excessively big
layer. Not only it wastes the memory and the CPU time, it even can crash GPU
drivers.

This patch modifies TextureMapperTiledBackingStore to take into account the
visible area with a coverage multiplier when creating tiles.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
Set a flag to recalculate the visible area of the layer when there are
geometric changes.
(WebCore::GraphicsLayerTextureMapper::setContentsToImage):
(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
(WebCore::GraphicsLayerTextureMapper::markVisibleRectAsDirty):
(WebCore::GraphicsLayerTextureMapper::selfOrAncestorHasActiveTransformAnimation):
(WebCore::GraphicsLayerTextureMapper::computeTransformedVisibleRect):
Compute the inverse transform matrix to map a global visible are to
the local visible area.
(WebCore::clampToContentsRectIfRectIsInfinite):
(WebCore::GraphicsLayerTextureMapper::transformedVisibleRect):

  • platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:

(WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
In HiDPI, the directly composited image is uploaded to the unscaled
texture to reduce memory usages. So we should apply device scale
factor to render it correctly.
(WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded):
Create tiles which covered by visible rect with a coverage multiplier.

Source/WebKit2:

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::initialize): Because we creates
nonCompositingLayer with a size of current view, we should not apply
the currently visible rect when creating / deleting tiles.
(WebKit::LayerTreeHostGtk::flushPendingLayerChanges): Passes the current
visible rect to the GraphicsLayers.

11:22 PM Changeset in webkit [196802] by Brent Fulgham
  • 7 edits
    1 add in trunk

Extend HashCountedSet with a method to efficiently set the count of an entry
https://bugs.webkit.org/show_bug.cgi?id=154352

Reviewed by Geoffrey Garen.

Source/WebCore:

Tested by new TestWebKitAPI tests.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::decodeHashCountedSet): Update to use new HashCountedSet::add method.

Source/WTF:

Tested by new TestWebKitAPI tests.

Update the HashCountedSet class with a new 'add' method to support efficient initialization of
the count of a given key. Also provide move and pointer template specializations to expand the
types of data that can be used as 'keys' in the HashCountedSet to match the underlying HashMap
implementation.

  • wtf/HashCountedSet.h:

(WTF::Traits>::add): Added new overload supporting a supplied count.

Tools:

  • TestWebKitAPI/CMakeLists.txt: Add new HashCountedSet test files.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto.
  • TestWebKitAPI/Tests/WTF/HashCountedSet.cpp: Added.
11:14 PM WebKitGTK/GRefPtrAndFloatingRefs created by Carlos Garcia Campos
10:56 PM Changeset in webkit [196801] by commit-queue@webkit.org
  • 3 edits
    2 deletes in trunk

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

made fast/events/wheelevent-basic-actual.txt fail in WK2
(Requested by alexchristensen on #webkit).

Reverted changeset:

"Wheel event callback removing the window causes crash in
WebCore."
https://bugs.webkit.org/show_bug.cgi?id=150871
http://trac.webkit.org/changeset/196790

10:53 PM Changeset in webkit [196800] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk

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

broke windows build (Requested by alexchristensen on #webkit).

Reverted changeset:

"Extend HashCountedSet with a method to efficiently set the
count of an entry"
https://bugs.webkit.org/show_bug.cgi?id=154352
http://trac.webkit.org/changeset/196791

10:42 PM Changeset in webkit [196799] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Improve the instruction selection of Select
https://bugs.webkit.org/show_bug.cgi?id=154432

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

Plenty of code but this patch is pretty dumb:
-On ARM64: use the 3 operand form of CSEL instead of forcing a source

to be alised to the destination. This gives more freedom to the register
allocator and it is one less Move to process per Select.

-On x86, introduce a fake 3 operands form and use aggressive aliasing

to try to alias both sources to the destination.

If aliasing succeed on the "elseCase", the condition of the Select
is reverted in the MacroAssembler.

If no aliasing is possible and we end up with 3 registers, the missing
move instruction is generated by the MacroAssembler.

The missing move is generated after testing the values because the destination
can use the same register as one of the test operand.
Experimental testing seems to indicate there is no macro-fusion on CMOV,
there is no measurable cost to having the move there.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::isInvertible):
(JSC::MacroAssembler::invert):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::moveConditionallyDouble):
(JSC::MacroAssemblerARM64::moveConditionallyFloat):
(JSC::MacroAssemblerARM64::moveConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::moveConditionally32):
(JSC::MacroAssemblerARM64::moveConditionally64):
(JSC::MacroAssemblerARM64::moveConditionallyTest32):
(JSC::MacroAssemblerARM64::moveConditionallyTest64):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::moveConditionallyDouble):
(JSC::MacroAssemblerX86Common::moveConditionallyFloat):
(JSC::MacroAssemblerX86Common::moveConditionally32):
(JSC::MacroAssemblerX86Common::moveConditionallyTest32):
(JSC::MacroAssemblerX86Common::invert):
(JSC::MacroAssemblerX86Common::isInvertible):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::moveConditionally64):
(JSC::MacroAssemblerX86_64::moveConditionallyTest64):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createSelect):
(JSC::B3::Air::LowerToAir::lower):

  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::shouldTryAliasingDef):

  • b3/air/AirOpcode.opcodes:
9:26 PM Changeset in webkit [196798] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Sidebar focus jumps when trying to edit a color
https://bugs.webkit.org/show_bug.cgi?id=154404
<rdar://problem/24725744>

Patch by Devin Rousso <Devin Rousso> on 2016-02-18
Reviewed by Timothy Hatcher.

Clicking an inline swatch in the CSS Rules sidebar causes any focused
editor, if any, to become blurred and therefore fire its handler function.
This causes an issue because when a CodeMirror instance in the styles
sidebar becomes blurred, it is possible for the entire Rules sidebar to
refresh and recreate all of the sections (r187714), meaning that it will
reselect whatever editor was previously selected before the refresh,
causing the swatch popup to be blurred and therefore dismiss.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorBlurActiveEditor):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.createSwatch):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchBeforeClicked):
Add listener for new event and call to delegate function for handling it.

  • UserInterface/Views/InlineSwatch.js:

(WebInspector.InlineSwatch.prototype._swatchElementClicked):
Now fires an event before the clicked logic happens, but still after the
click event is fired on the element.

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionBlurActiveEditor):
Clears the previously focused editor so when a reset happens no editor
is refocused.

9:17 PM Changeset in webkit [196797] by Chris Dumez
  • 15 edits in trunk

window.history / window.navigator should not be replaceable
https://bugs.webkit.org/show_bug.cgi?id=154412

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

window.history / window.navigator should not be replaceable as per
the latest HTML specification:
https://html.spec.whatwg.org/multipage/browsers.html#the-window-object

Firefox and Chrome already match the specification. This patch aligns
our behavior.

No new tests, already covered by existing tests.

  • page/DOMWindow.idl:

LayoutTests:

Update / rebaseline existing tests now that window.history and
window.navigator are no longer replaceable.

  • fast/dom/Window/get-set-properties-expected.txt:
  • fast/dom/Window/get-set-properties.html:
  • fast/dom/Window/window-property-shadowing-expected.txt:
  • fast/dom/Window/window-property-shadowing.html:
  • http/tests/history/cross-origin-replace-history-object-child-expected.txt:
  • http/tests/history/resources/cross-origin-replaces-history-object-child-iframe.html:
  • js/dom/var-declarations-shadowing-expected.txt:
  • js/dom/var-declarations-shadowing.html:
  • js/getOwnPropertyDescriptor-window-attributes-expected.txt:
  • js/getOwnPropertyDescriptor-window-attributes.html:
9:12 PM Changeset in webkit [196796] by Gyuyoung Kim
  • 2 edits in trunk/Source/JavaScriptCore

[CMake][GTK] Clean up llvm guard in PlatformGTK.cmake
https://bugs.webkit.org/show_bug.cgi?id=154430

Reviewed by Saam Barati.

llvm isn't used anymore.

  • PlatformGTK.cmake: Remove USE_LLVM_DISASSEMBLER guard.
8:25 PM Changeset in webkit [196795] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Revert an unintended change made in the previous commit.

  • init-database.sql:
8:18 PM Changeset in webkit [196794] by rniwa@webkit.org
  • 8 edits in trunk/Websites/perf.webkit.org

Perf dashboard should let user cancel pending A/B testing and hide failed ones
https://bugs.webkit.org/show_bug.cgi?id=154433

Reviewed by Chris Dumez.

Added a button to hide a test group in the details view (the bottom table) in the analysis task page, and
"Show hidden tests" link to show the hidden test groups on demand. When a test group is hidden, all pending
requests in the group will also be canceled since a common scenario of using this feature is that the user
had triggered an useless A/B testing; e.g. all builds will fail, wrong, etc... We can revisit and add the
capability to just cancel the pending requests and leaving the group visible later if necessary.

Run ALTER TYPE build_request_status_type ADD VALUE 'canceled'; to add the new type.

  • init-database.sql: Added testgroup_hidden column to analysis_test_groups table and added 'canceled'

as a value to build_request_status_type table.

  • public/api/test-groups.php:

(format_test_group): Added 'hidden' field in the JSON result.

  • public/privileged-api/update-test-group.php:

(main): Added the support for updating testgroup_hidden column. When this column is set to true, also
cancel all pending build requests (by setting its request_status to 'canceled' which will be ignore by
the syncing script).

  • public/v3/components/test-group-results-table.js:

(TestGroupResultsTable.prototype.setTestGroup): Reset _renderedTestGroup here so that the next call to
render() will update the table; e.g. when build requests' status change from 'Pending' to 'Canceled'.

  • public/v3/models/build-request.js:

(BuildRequest.prototype.hasCompleted): A build request is considered complete/finished if it's canceled.
(BuildRequest.prototype.hasPending): Added.
(BuildRequest.prototype.statusLabel): Handle 'canceled' status.

  • public/v3/models/test-group.js:

(TestGroup):
(TestGroup.prototype.updateSingleton): Added to update 'hidden' field.
(TestGroup.prototype.isHidden): Added.
(TestGroup.prototype.hasPending): Added.
(TestGroup.prototype.hasPending): Added.
(TestGroup.prototype.updateHiddenFlag): Added. Uses the privileged API to update testgroup_hidden column.
The JSON API also updates the status of the 'pending' build requests in the group to 'canceled'.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage): Added _showHiddenTestGroups and _filteredTestGroups as instance variables.
(AnalysisTaskPage.prototype._didFetchTestGroups):
(AnalysisTaskPage.prototype._showAllTestGroups): Added.
(AnalysisTaskPage.prototype._didUpdateTestGroupHiddenState): Extracted from _didFetchTestGroups.
(AnalysisTaskPage.prototype._renderTestGroupList): Use the filtered list of test groups to show the list
of test groups. When all test groups are shown, we would first show the hidden ones after the regular ones.
(AnalysisTaskPage.prototype._createTestGroupListItem): Extracted from _renderTestGroupList.
(AnalysisTaskPage.prototype._renderTestGroupDetails): Update the text inside the button to hide the test
group. Also show a warning text that the pending requests will be canceled if there are any.
(AnalysisTaskPage.prototype._hideCurrentTestGroup): Added.
(AnalysisTaskPage.cssTemplate): Updated the style.

6:45 PM Changeset in webkit [196793] by Chris Dumez
  • 10 edits
    1 copy in trunk

HTMLTableHeaderCellElement.scope should only return known values
https://bugs.webkit.org/show_bug.cgi?id=154423
<rdar://problem/24731018>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-tabular-expected.txt:

Source/WebCore:

HTMLTableHeaderCellElement.scope should only return known values as per:

Known values are document here:

No new tests, already covered by existing test.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLElementsAllInOne.cpp:
  • html/HTMLTableHeaderCellElement.cpp: Copied from Source/WebCore/html/HTMLTableHeaderCellElement.h.

(WebCore::HTMLTableHeaderCellElement::scope):
(WebCore::HTMLTableHeaderCellElement::setScope):

  • html/HTMLTableHeaderCellElement.h:
  • html/HTMLTableHeaderCellElement.idl:
6:44 PM Changeset in webkit [196792] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

The rows in the analysis results table should be expandable
https://bugs.webkit.org/show_bug.cgi?id=154427

Reviewed by Chris Dumez.

Added "(Expand)" link between rows that have hidden points. Upon click it inserts the hidden rows.

We insert around five rows at a time when there are hundreds of hidden points but we also avoid leaving
behind expandable rows of less than two rows.

Also fixed a bug in CustomizableTestGroupForm that getElementsById would throw in the shipping Safari
because getElementsById doesn't exist on Element.prototype by using class name instead.

  • public/v3/components/analysis-results-viewer.js:

(AnalysisResultsViewer):
(AnalysisResultsViewer.prototype.setCurrentTestGroup): Removed superfluous call to render().
(AnalysisResultsViewer.prototype.setPoints): Always show the start and the end points.
(AnalysisResultsViewer.prototype.buildRowGroups):
(AnalysisResultsViewer.prototype._buildRowsForPointsAndTestGroups): Add an instance of ExpandableRow which
shows a "(Expand)" link to show hidden rows here.
(AnalysisResultsViewer.prototype._expandBetween): Added. Expands rows between two points.
(AnalysisResultsViewer.cssTemplate): Added rules for "(Expand)" links.
(AnalysisResultsViewer.ExpandableRow): Added.
(AnalysisResultsViewer.ExpandableRow.prototype.resultContent): Added. Overrides what's in the results column.
(AnalysisResultsViewer.ExpandableRow.prototype.heading): Added. Generates "(Expand)" link.

  • public/v3/components/customizable-test-group-form.js:

(CustomizableTestGroupForm.prototype._computeRootSetMap): Use getElementsByClassName instead of
getElementById.
(CustomizableTestGroupForm.prototype._classForLabelAndRepository): Renamed from _idForLabelAndRepository.
(CustomizableTestGroupForm._constructRevisionRadioButtons): Set class name instead of id.

  • public/v3/components/results-table.js:

(ResultsTable.prototype.render): Don't generate radio buttons to select a row when root set is missing;
e.g. for rows that show "(Expand)" links.

5:14 PM Changeset in webkit [196791] by Brent Fulgham
  • 7 edits
    1 add in trunk

Extend HashCountedSet with a method to efficiently set the count of an entry
https://bugs.webkit.org/show_bug.cgi?id=154352

Reviewed by Geoffrey Garen.

Source/WebCore:

Tested by new TestWebKitAPI tests.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::decodeHashCountedSet): Update to use new HashCountedSet::add method.

Source/WTF:

Tested by new TestWebKitAPI tests.

Update the HashCountedSet class with a new 'add' method to support efficient initialization of
the count of a given key. Also provide move and pointer template specializations to expand the
types of data that can be used as 'keys' in the HashCountedSet to match the underlying HashMap
implementation.

  • wtf/HashCountedSet.h:

(WTF::Traits>::add): Added new overload supporting a supplied count.

Tools:

  • TestWebKitAPI/CMakeLists.txt: Add new HashCountedSet test files.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto.
  • TestWebKitAPI/Tests/WTF/HashCountedSet.cpp: Added.
5:13 PM Changeset in webkit [196790] by Simon Fraser
  • 3 edits
    2 adds in trunk

Wheel event callback removing the window causes crash in WebCore.
https://bugs.webkit.org/show_bug.cgi?id=150871

Reviewed by Brent Fulgham.
Source/WebCore:

Null check the FrameView before using it, since the iframe may have been removed
from its parent document inside the event handler.

Test: fast/events/wheel-event-destroys-frame.html

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformCompleteWheelEvent):

LayoutTests:

  • fast/events/wheel-event-destroys-frame-expected.txt: Added.
  • fast/events/wheel-event-destroys-frame.html: Added.
5:07 PM Changeset in webkit [196789] by sbarati@apple.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

Implement Proxy.HasProperty?
https://bugs.webkit.org/show_bug.cgi?id=154313

Reviewed by Filip Pizlo.

This patch is a straight forward implementation of
Proxy.HasProperty? with respect to section 9.5.7
of the ECMAScript spec.
https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::getOwnPropertySlotCommon):

  • runtime/ProxyObject.h:
  • tests/es6.yaml:
  • tests/stress/proxy-basic.js:

(assert):
(let.handler.has):

  • tests/stress/proxy-has-property.js: Added.

(assert):
(throw.new.Error.let.handler.get has):
(throw.new.Error):
(assert.let.handler.has):
(let.handler.has):
(getOwnPropertyDescriptor):
(i.catch):

5:03 PM Changeset in webkit [196788] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add Native Parameter Lists to Console prototype functions
https://bugs.webkit.org/show_bug.cgi?id=154419
<rdar://problem/24730314>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-02-18
Reviewed by Timothy Hatcher.

  • UserInterface/Models/NativeFunctionParameters.js:
4:51 PM Changeset in webkit [196787] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Statistically significant A/B testing results should be color coded in details view
https://bugs.webkit.org/show_bug.cgi?id=154414

Reviewed by Chris Dumez.

Color code the statistically significant comparisions in TestGroupResultsTable as done in the analysis
results viewer.

  • public/v3/components/customizable-test-group-form.js:

(CustomizableTestGroupForm.cssTemplate): Build fix after r196768.

  • public/v3/components/test-group-results-table.js:

(TestGroupResultsTable.prototype.buildRowGroups): Add the status as a class name.
(TestGroupResultsTable.cssTemplate): Added styles to color-code statistically significant results.

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

Modern IDB: Fix IDBGetResult encoder/decoder.
https://bugs.webkit.org/show_bug.cgi?id=154421

Reviewed by Alex Christensen.

No new tests, as Modern IDB is still disabled for WK2.

But if you manually enable it, "Basic IndexedDB Seems To Work"

Source/WebCore:

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::encode):
(WebCore::IDBGetResult::decode):

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<IDBGetResult>::encode): Deleted.
(IPC::ArgumentCoder<IDBGetResult>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:
4:27 PM Changeset in webkit [196785] by sbarati@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Proxy's don't properly handle Symbols as PropertyKeys.
https://bugs.webkit.org/show_bug.cgi?id=154385

Reviewed by Mark Lam and Yusuke Suzuki.

We were converting all PropertyKeys to strings, even when
the PropertyName was a Symbol. In the spec, PropertyKeys are
either a Symbol or a String. We now respect that in Proxy.Get? and
Proxy.GetOwnProperty?.

  • runtime/Completion.cpp:

(JSC::profiledEvaluate):
(JSC::createSymbolForEntryPointModule):
(JSC::identifierToJSValue): Deleted.

  • runtime/Identifier.h:

(JSC::parseIndex):

  • runtime/IdentifierInlines.h:

(JSC::Identifier::fromString):
(JSC::identifierToJSValue):
(JSC::identifierToSafePublicJSValue):

  • runtime/ProxyObject.cpp:

(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):

  • tests/es6.yaml:
  • tests/stress/proxy-basic.js:

(let.handler.getOwnPropertyDescriptor):

4:03 PM Changeset in webkit [196784] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Addressing post-review comments after r196747.

Unreviewed.

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

(WebCore::FontFaceSet::size):
(WebCore::FontFaceSet::clear):

  • css/FontFaceSet.h:
4:01 PM Changeset in webkit [196783] by andersca@apple.com
  • 3 edits
    1 delete in trunk

.:
Get rid of the "All Source (target WebProcess)" scheme.

Rubber-stamped by Dan Bernstein.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme: Removed.

Tools:
Get rid of the --target-web-process and --use-web-process-xpc-service options.

Rubber-stamped by Dan Bernstein.

We now always use XPC, and --target-web-process is no longer supported.

  • Scripts/webkitdirs.pm:

(execMacWebKitAppForDebugging):
(shouldTargetWebProcess): Deleted.
(determineShouldTargetWebProcess): Deleted.
(shouldUseXPCServiceForWebProcess): Deleted.
(determineShouldUseXPCServiceForWebProcess): Deleted.
(printHelpAndExitForRunAndDebugWebKitAppIfNeeded): Deleted.
(argumentsForRunAndDebugMacWebKitApp): Deleted.

3:48 PM Changeset in webkit [196782] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Soft hyphen is not shown when it is placed at the end of an inline element
https://bugs.webkit.org/show_bug.cgi?id=153980

Reviewed by David Hyatt.

This patch handles the case when the character at the breaking position does not fit the
line and soft-hyphen, as the first breaking opportunity, is followed by this overflowing character.
(foo&shy;bar where b overflows the line).
In such cases we don't yet have an item in the breaking history so we need to take a look at
the current context instead.

Source/WebCore:

Test: fast/text/soft-hyphen-as-first-breaking-opportunity.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::InlineIteratorHistory::nextBreakablePosition):
(WebCore::BreakingContext::handleText):

LayoutTests:

  • fast/text/soft-hyphen-as-first-breaking-opportunity-expected.html: Added.
  • fast/text/soft-hyphen-as-first-breaking-opportunity.html: Added.
3:43 PM Changeset in webkit [196781] by Ryan Haddad
  • 2 edits in trunk/Tools

Skip API test WTF_ParkingLot.UnparkOneFiftyThenFiftyAll on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=153997

Reviewed by Filip Pizlo.

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
3:35 PM Changeset in webkit [196780] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

Fake memory pressure handler should log detailed memory breakdown.
<https://webkit.org/b/154415>

Reviewed by Antti Koivisto.

Piggyback on the RESOURCE_USAGE code to implement some detailed memory footprint diffing
and have the fake memory handler dump before/after/diff after it runs.

  • page/ResourceUsageThread.h:

(WebCore::TagInfo::TagInfo):

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::logFootprintComparison):
(WebCore::displayNameForVMTag):
(WebCore::pagesPerVMTag):
(WebCore::TagInfo::TagInfo): Deleted.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::install):

2:42 PM Changeset in webkit [196779] by beidson@apple.com
  • 9 edits in trunk/Source

Modern IDB: Implement server->client operations in WK2.
https://bugs.webkit.org/show_bug.cgi?id=154411

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.
Source/WebCore:

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.h:

(WebCore::IDBTransactionInfo::encode):
(WebCore::IDBTransactionInfo::decode):

Source/WebKit2:

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::didDeleteDatabase):
(WebKit::WebIDBConnectionToServer::didOpenDatabase):
(WebKit::WebIDBConnectionToServer::didAbortTransaction):
(WebKit::WebIDBConnectionToServer::didCommitTransaction):
(WebKit::WebIDBConnectionToServer::didCreateObjectStore):
(WebKit::WebIDBConnectionToServer::didDeleteObjectStore):
(WebKit::WebIDBConnectionToServer::didClearObjectStore):
(WebKit::WebIDBConnectionToServer::didCreateIndex):
(WebKit::WebIDBConnectionToServer::didDeleteIndex):
(WebKit::WebIDBConnectionToServer::didPutOrAdd):
(WebKit::WebIDBConnectionToServer::didGetRecord):
(WebKit::WebIDBConnectionToServer::didGetCount):
(WebKit::WebIDBConnectionToServer::didDeleteRecord):
(WebKit::WebIDBConnectionToServer::didOpenCursor):
(WebKit::WebIDBConnectionToServer::didIterateCursor):
(WebKit::WebIDBConnectionToServer::fireVersionChangeEvent):
(WebKit::WebIDBConnectionToServer::didStartTransaction):
(WebKit::WebIDBConnectionToServer::notifyOpenDBRequestBlocked):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::didReceiveMessage):

2:31 PM Changeset in webkit [196778] by jer.noble@apple.com
  • 5 edits in trunk/Tools

run-webkit-httpd should use webkitpy to run httpd.
https://bugs.webkit.org/show_bug.cgi?id=154271

Reviewed by Alexey Proskuryakov.

Update run-webkit-httpd to use webkitpy.port to launch httpd. Pass on http_port and http_all_interface
options to match the current run-webkit-httpd (optional) behavior.

  • Scripts/run-webkit-httpd:

(parse_args):
(main):

  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init):

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd._prepare_config):

  • Scripts/webkitpy/port/base.py:

(Port.to.start_http_server):

1:58 PM Changeset in webkit [196777] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196770

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
1:58 PM Changeset in webkit [196776] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/reflection-forms.html for ios-simulator after r196769

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
1:55 PM Changeset in webkit [196775] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Follow up fix to Implement Proxy.GetOwnProperty?
https://bugs.webkit.org/show_bug.cgi?id=154314

Reviewed by Filip Pizlo.

Part of the implementation was broken because
of how JSObject::getOwnPropertyDescriptor worked.
I've fixed JSObject::getOwnPropertyDescriptor to
be able to handle ProxyObject.

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertyDescriptor):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performInternalMethodGetOwnProperty):

  • tests/stress/proxy-get-own-property.js:

(assert):
(assert.let.handler.get getOwnPropertyDescriptor):

1:30 PM Changeset in webkit [196774] by Brian Burg
  • 2 edits in trunk/Source/WebKit2

RemoteInspector deadlocks if _WKAutomationDelegate creates/registers a target synchronously
https://bugs.webkit.org/show_bug.cgi?id=154359
<rdar://problem/24708897>

Reviewed by Joseph Pecoraro.

  • UIProcess/Cocoa/AutomationClient.mm:

(WebKit::AutomationClient::requestAutomationSession):
Make an NSString out of the String reference so it gets captured correctly.

12:59 PM Changeset in webkit [196773] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix unused-const-variable warning on non Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=154394

Reviewed by Michael Catanzaro.

  • html/HTMLPlugInImageElement.cpp:
12:32 PM ASanWebKit edited by ddkilzer@webkit.org
Updated for Mac OS X 10.11 El Capitan and later. (diff)
12:29 PM Changeset in webkit [196772] by sbarati@apple.com
  • 8 edits
    1 add in trunk/Source/JavaScriptCore

Implement Proxy.GetOwnProperty?
https://bugs.webkit.org/show_bug.cgi?id=154314

Reviewed by Filip Pizlo.

This patch implements Proxy.GetOwnProperty?.
It's a straight forward implementation as described
in section 9.5.5 of the specification:
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncBind):

  • runtime/JSObject.cpp:

(JSC::validateAndApplyPropertyDescriptor):
(JSC::JSObject::defineOwnNonIndexProperty):
(JSC::JSObject::defineOwnProperty):
(JSC::JSObject::getGenericPropertyNames):
(JSC::JSObject::getMethod):

  • runtime/JSObject.h:

(JSC::JSObject::butterflyAddress):
(JSC::makeIdentifier):

  • runtime/ProxyObject.cpp:

(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::getOwnPropertySlotCommon):
(JSC::ProxyObject::getOwnPropertySlot):
(JSC::ProxyObject::getOwnPropertySlotByIndex):
(JSC::ProxyObject::visitChildren):

  • runtime/ProxyObject.h:
  • tests/es6.yaml:
  • tests/stress/proxy-basic.js:

(let.handler.get null):

  • tests/stress/proxy-get-own-property.js: Added.

(assert):
(throw.new.Error.let.handler.getOwnPropertyDescriptor):
(throw.new.Error):
(let.handler.getOwnPropertyDescriptor):
(i.catch):
(assert.let.handler.getOwnPropertyDescriptor):

12:23 PM Changeset in webkit [196771] by beidson@apple.com
  • 14 edits in trunk/Source

Modern IDB: Implement client->server operations in WK2.
https://bugs.webkit.org/show_bug.cgi?id=154400

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.

Source/WebCore:

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/shared/IDBIndexInfo.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::idbServer):

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::didReceiveMessage):

  • DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::deleteDatabase):
(WebKit::WebIDBConnectionToClient::openDatabase):
(WebKit::WebIDBConnectionToClient::abortTransaction):
(WebKit::WebIDBConnectionToClient::commitTransaction):
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToClient::createObjectStore):
(WebKit::WebIDBConnectionToClient::deleteObjectStore):
(WebKit::WebIDBConnectionToClient::clearObjectStore):
(WebKit::WebIDBConnectionToClient::createIndex):
(WebKit::WebIDBConnectionToClient::deleteIndex):
(WebKit::WebIDBConnectionToClient::putOrAdd):
(WebKit::WebIDBConnectionToClient::getRecord):
(WebKit::WebIDBConnectionToClient::getCount):
(WebKit::WebIDBConnectionToClient::deleteRecord):
(WebKit::WebIDBConnectionToClient::openCursor):
(WebKit::WebIDBConnectionToClient::iterateCursor):
(WebKit::WebIDBConnectionToClient::establishTransaction):
(WebKit::WebIDBConnectionToClient::databaseConnectionClosed):
(WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
12:18 PM Changeset in webkit [196770] by Chris Dumez
  • 10 edits in trunk

[Unforgeable] operations should not be writable as per Web IDL
https://bugs.webkit.org/show_bug.cgi?id=154396
<rdar://problem/24721063>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

[Unforgeable] operations should not be writable as per the Web IDL specification:
http://heycam.github.io/webidl/#es-operations

They were currently non-configurable in WebKit but still writable.

No new tests, already covered by existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

Mark [Unforgeable] operations as ReadOnly.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:
  • bindings/scripts/test/TestObj.idl:

Add bindings test coverage for [Unforgeable].

12:14 PM Changeset in webkit [196769] by Chris Dumez
  • 12 edits in trunk

Fix behavior of reflecting unsigned long IDL attributes that are limited to only non-negative numbers greater than zero
https://bugs.webkit.org/show_bug.cgi?id=154398

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-forms-expected.txt:
  • web-platform-tests/html/dom/reflection-tabular-expected.txt:

Source/WebCore:

Fix behavior of reflecting unsigned long IDL attributes that are limited
to only non-negative numbers greater than zero to comply with:

This patch updates the following IDL attributes:

  • colgroup.span
  • col.span
  • input.size
  • textarea.cols
  • textareal.rows

All of them now:

  • Have "unsigned long" type on IDL size and "unsigned" type on native side.
  • On getting, return the value if it is in the range [1; 2147483647], otherwise return the default value.
  • On setting, set to the input value if it is in the range [1; 2147483647], otherwise, set to the default value.

Note that as per the specification, we are supposed to throw an
IndexSizeError exception when trying to set those attributes to zero.
However, we instead use the default value to match other browsers.
It would be risky to be the only browser to throw in this case.

No new tests, already covered by existing test.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::setSize):

  • html/HTMLTableColElement.cpp:

(WebCore::HTMLTableColElement::parseAttribute):
(WebCore::HTMLTableColElement::setSpan):

  • html/HTMLTableColElement.h:
  • html/HTMLTableColElement.idl:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::parseAttribute):
(WebCore::HTMLTextAreaElement::setCols):
(WebCore::HTMLTextAreaElement::setRows):
(WebCore::HTMLTextAreaElement::shouldUseInputMethod): Deleted.

  • html/HTMLTextAreaElement.h:
  • html/HTMLTextAreaElement.idl:
  • html/parser/HTMLParserIdioms.h:

(WebCore::limitToOnlyNonNegativeNumbersGreaterThanZero):

12:07 PM Changeset in webkit [196768] by rniwa@webkit.org
  • 6 edits
    1 add in trunk/Websites/perf.webkit.org

v3 UI should allow custom revisions for A/B testing
https://bugs.webkit.org/show_bug.cgi?id=154379

Reviewed by Chris Dumez.

Added the capability to customize revisions selected in the overview chart and the results viewer.

Newly added CustomizableTestGroupForm is responsible for allowing users to modify the set of revisions in
a new A/B testing group. Unlike TestGroupForm which doesn't know anything about which revisions are selected
for each project/repository, CustomizableTestGroupForm is aware of the list of revisions used in each set.

The list of revisions used in each set is represented by RootSet if users had not customized them, and
CustomRootSet otherwise; the latter was added since regular RootSet object requires CommitLog and other
DataModelObjects which are hard to create without corresponding database entries.

  • public/v3/components/customizable-test-group-form.js: Added.

(CustomizableTestGroupForm): Added.
(CustomizableTestGroupForm.prototype.setRootSetMap): Added.
(CustomizableTestGroupForm.prototype._submitted): Overrides the superclass' method.
(CustomizableTestGroupForm.prototype._customize): Ditto. Unlike TestGroupForm's callback, this class'
callback passes in a root set map as the third argument.
(CustomizableTestGroupForm.prototype._computeRootSetMap): Added. Returns this._rootSetMap, which is set by
AnalysisTaskPage if user had not customized the root sets. Otherwise return a new map with CustomRootSet's.
(CustomizableTestGroupForm.prototype.render): Added. Creates a table to allow customization of root sets.
(CustomizableTestGroupForm._constructRevisionRadioButtons): Added.
(CustomizableTestGroupForm._createRadioButton): Added.
(CustomizableTestGroupForm.cssTemplate): Added.
(CustomizableTestGroupForm.formContent): Added. This method is called by TestGroupForm.htmlTemplate.

  • public/v3/components/test-group-form.js:

(TestGroupForm): Updated the various methods to not directly mutate DOM. Store the state in instance
variables and update DOM in render() as done elsewhere.
(TestGroupForm.prototype.setNeedsName): Deleted. We no longer need this flag since TestGroupForm which is
used for retries never needs a name and CustomizableTestGroupForm which is used to create a new test group
always requires a name.
(TestGroupForm.prototype.setDisabled):
(TestGroupForm.prototype.setLabel):
(TestGroupForm.prototype.setRepetitionCount):
(TestGroupForm.prototype.render): Added.
(TestGroupForm.prototype._submitted): Moved the code to prevent the default action has been moved to the
constructor since this method is overridden by CustomizableTestGroupForm.
(TestGroupForm.cssTemplate): Added.
(TestGroupForm.htmlTemplate):
(TestGroupForm.formContent): Extracted from htmlTemplate.

  • public/v3/index.html:
  • public/v3/models/repository.js:

(Repository.sortByNamePreferringOnesWithURL): Added.

  • public/v3/models/root-set.js:

(RootSet.prototype.revisionForRepository): Added so that _createTestGroupAfterVerifyingRootSetList can retrieve
the revision information from CustomRootSet without going through CommitLog objects since CustomRootSet doesn't
have associated CommitLog objects.
(CustomRootSet): Added. Used by CustomizableTestGroupForm to create a custom root map since regular RootSet
requires CommitLog and other related objects which are hard to create without database entries.
(CustomRootSet.prototype.setRevisionForRepository): Added.
(CustomRootSet.prototype.repositories): Added.
(CustomRootSet.prototype.revisionForRepository): Added.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage):
(AnalysisTaskPage.prototype.render): Removed the reference to v2 UI since v3 UI is now strictly more powerful
than v2 UI. Also update the root set maps in each form here.
(AnalysisTaskPage.prototype._retryCurrentTestGroup): No longer takes unused name argument as it got removed
from TestGroupForm.
(AnalysisTaskPage.prototype._chartSelectionDidChange): No longer updates the disabled-ness here since it's now
done in render() via setRootSetMap().
(AnalysisTaskPage.prototype._createNewTestGroupFromChart): Now takes rootSetMap as an argument.
(AnalysisTaskPage.prototype._selectedRowInAnalysisResultsViewer): No longer updates the disabled-ness here
since it's now done in render() via setRootSetMap().
(AnalysisTaskPage.prototype._createNewTestGroupFromViewer): Now takes rootSetMap as an argument.
(AnalysisTaskPage.prototype._createTestGroupAfterVerifyingRootSetList): Take a dictionary of root set labels
such as A and B, which maps to a RootSet or a newly-added CustomRootSet.
(AnalysisTaskPage.htmlTemplate): Use customizable-test-group-form for creating a new A/B testing group. Retry
form will continue to use TestGroupForm since customizing revisions is non-sensical in retries.
(AnalysisTaskPage.cssTemplate): Updated the style.

11:06 AM Changeset in webkit [196767] by ChangSeok Oh
  • 3 edits in trunk/Source/WebKit2

[GTK][Threaded Compositor] The web inspector doesn't work when using the threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=154067

Reviewed by Carlos Garcia Campos.

The forceCompositingMode should be true for threaded compositor. We set it true for a normal webView
in _WebKitSettingsPrivate() but we do not for inspector anywhere. So DrawingArea is not
properly created for the inspector. Let's move the setting to WebPreferences::platformInitializeStore
which is a common place for the webView and the inspector.

  • UIProcess/API/gtk/WebKitSettings.cpp:

(_WebKitSettingsPrivate::_WebKitSettingsPrivate): Deleted.

  • UIProcess/gtk/WebPreferencesGtk.cpp:

(WebKit::WebPreferences::platformInitializeStore):

11:02 AM Changeset in webkit [196766] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

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

Broke Safari (Requested by andersca on #webkit).

Reverted changeset:

"Remove two unused functions"
https://bugs.webkit.org/show_bug.cgi?id=154397
http://trac.webkit.org/changeset/196765

10:44 AM Changeset in webkit [196765] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove two unused functions
https://bugs.webkit.org/show_bug.cgi?id=154397

Reviewed by Tim Horton.

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetPluginSiteDataManager): Deleted.
(WKContextGetResourceCacheManager): Deleted.

  • UIProcess/API/C/WKContext.h:
10:21 AM Changeset in webkit [196764] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196742

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
10:13 AM Changeset in webkit [196763] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Remove redundant ASSERT_WITH_MESSAGE_UNUSED() from SOFT_LINK_FRAMEWORK_FOR_SOURCE() macro

Follow-up fix noted by Andy Estes for:

[Cocoa] Always check the return value of dlopen() and dlsym() in Release builds
<http://webkit.org/b/154364>

  • platform/mac/SoftLinking.h:

(SOFT_LINK_FRAMEWORK_FOR_SOURCE): Remove redundant
ASSERT_WITH_MESSAGE_UNUSED().

9:53 AM Changeset in webkit [196762] by Csaba Osztrogonác
  • 14 edits in trunk/LayoutTests

JSC ARM Linux test gardening after r196625
https://bugs.webkit.org/show_bug.cgi?id=154392

Reviewed by Mark Lam.

  • js/script-tests/dfg-float32array.js:
  • js/script-tests/dfg-float64array.js:
  • js/script-tests/dfg-int16array.js:
  • js/script-tests/dfg-int32array-overflow-values.js:
  • js/script-tests/dfg-int32array.js:
  • js/script-tests/dfg-int8array.js:
  • js/script-tests/dfg-osr-entry-hoisted-clobbered-structure-check.js:
  • js/script-tests/dfg-uint16array.js:
  • js/script-tests/dfg-uint32array-overflow-values.js:
  • js/script-tests/dfg-uint32array.js:
  • js/script-tests/dfg-uint8array.js:
  • js/script-tests/dfg-uint8clampedarray.js:
  • js/script-tests/regress-141098.js:
9:25 AM Changeset in webkit [196761] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSString resolution of substrings should use StringImpl sharing optimization.
<https://webkit.org/b/154068>
<rdar://problem/24629358>

Reviewed by Antti Koivisto.

When resolving a JSString that's actually a substring of another JSString,
use the StringImpl sharing optimization to create a new string pointing into
the parent one, instead of copying out the bytes of the string.

This dramatically reduces peak memory usage on Gerrit diff viewer pages.

Another approach to this would be to induce GC far more frequently due to
the added cost of copying out these substrings. It would reduce the risk
of prolonging the life of strings only kept alive by substrings.

This patch chooses to trade that risk for less GC and lower peak memory.

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRope):

9:19 AM Changeset in webkit [196760] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Crash on SES selftest page when loading the page while WebInspector is open
https://bugs.webkit.org/show_bug.cgi?id=154378
<rdar://problem/24713422>

Reviewed by Mark Lam.

Do a partial revert of r196676 so that JSObject::getOwnPropertyDescriptor()
returns early again if it detects that getOwnPropertySlot() returns a
non-own property. This check was removed in r196676 because we assumed that
only JSDOMWindow::getOwnPropertySlot() could return non-own properties.
However, as it turns out, DebuggerScope::getOwnPropertySlot() does so as
well.

Not having the check would lead to crashes when using the debugger because
we would get a slot with the CustomAccessor attribute but getDirect() would
then fail to return the property (because it is not an own property). We
would then cast the value returned by getDirect() to a CustomGetterSetter*
and dereference it.

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertyDescriptor):

8:55 AM Changeset in webkit [196759] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, fix VS build. I didn't know we still did that, but apparently there's a bot
for that.

8:48 AM Changeset in webkit [196758] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix CMake build. This got messed up when rebasing.

  • CMakeLists.txt:
8:45 AM Changeset in webkit [196757] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the !ENABLE(DFG_JIT) build after r195865
https://bugs.webkit.org/show_bug.cgi?id=154391

Reviewed by Filip Pizlo.

  • runtime/SamplingProfiler.cpp:

(JSC::tryGetBytecodeIndex):

8:40 AM Changeset in webkit [196756] by fpizlo@apple.com
  • 27 edits
    3 moves
    1 delete in trunk

Remove remaining references to LLVM, and make sure comments refer to the backend as "B3" not "LLVM"
https://bugs.webkit.org/show_bug.cgi?id=154383

Reviewed by Saam Barati.

Source/JavaScriptCore:

I did a grep -i llvm of all of our code and did one of the following for each occurence:

  • Renamed it to B3. This is appropriate when we were using "LLVM" to mean "the FTL backend".
  • Removed the reference because I found it to be dead. In some cases it was a dead comment: it was telling us things about what LLVM did and that's just not relevant anymore. In other cases it was dead code that I forgot to delete in a previous patch.
  • Edited the comment in some smart way. There were comments talking about what LLVM did that were still of interest. In some cases, I added a FIXME to consider changing the code below the comment on the grounds that it was written in a weird way to placate LLVM and so we can do it better now.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGOSRAvailabilityAnalysisPhase.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::compileTimeStats):

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGSSAConversionPhase.h:
  • dfg/DFGStaticExecutionCountEstimationPhase.h:
  • dfg/DFGUnificationPhase.cpp:

(JSC::DFG::UnificationPhase::run):

  • disassembler/ARM64Disassembler.cpp:

(JSC::tryToDisassemble): Deleted.

  • disassembler/X86Disassembler.cpp:

(JSC::tryToDisassemble):

  • ftl/FTLAbstractHeap.cpp:

(JSC::FTL::IndexedAbstractHeap::initialize):

  • ftl/FTLAbstractHeap.h:
  • ftl/FTLFormattedValue.h:
  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLocation.cpp:

(JSC::FTL::Location::restoreInto):

  • ftl/FTLLowerDFGToB3.cpp: Copied from Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp.

(JSC::FTL::DFG::ftlUnreachable):
(JSC::FTL::DFG::LowerDFGToB3::LowerDFGToB3):
(JSC::FTL::DFG::LowerDFGToB3::compileBlock):
(JSC::FTL::DFG::LowerDFGToB3::compileArithNegate):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileOverridesHasInstance):
(JSC::FTL::DFG::LowerDFGToB3::isBoolean):
(JSC::FTL::DFG::LowerDFGToB3::unboxBoolean):
(JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
(JSC::FTL::lowerDFGToB3):
(JSC::FTL::DFG::LowerDFGToLLVM::LowerDFGToLLVM): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileBlock): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithNegate): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileMultiGetByOffset): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileOverridesHasInstance): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::isBoolean): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::unboxBoolean): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::emitStoreBarrier): Deleted.
(JSC::FTL::lowerDFGToLLVM): Deleted.

  • ftl/FTLLowerDFGToB3.h: Copied from Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h.
  • ftl/FTLLowerDFGToLLVM.cpp: Removed.
  • ftl/FTLLowerDFGToLLVM.h: Removed.
  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLWeight.h:

(JSC::FTL::Weight::frequencyClass):
(JSC::FTL::Weight::inverse):
(JSC::FTL::Weight::scaleToTotal): Deleted.

  • ftl/FTLWeightedTarget.h:

(JSC::FTL::rarely):
(JSC::FTL::unsure):

  • jit/CallFrameShuffler64.cpp:

(JSC::CallFrameShuffler::emitDisplace):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::ftlCalleeSaveRegisters):

  • llvm: Removed.
  • llvm/InitializeLLVMLinux.cpp: Removed.
  • llvm/InitializeLLVMWin.cpp: Removed.
  • llvm/library: Removed.
  • llvm/library/LLVMTrapCallback.h: Removed.
  • llvm/library/libllvmForJSC.version: Removed.
  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):
(JSC::Options::initialize):

  • runtime/Options.h:
  • wasm/WASMFunctionB3IRGenerator.h: Copied from Source/JavaScriptCore/wasm/WASMFunctionLLVMIRGenerator.h.
  • wasm/WASMFunctionLLVMIRGenerator.h: Removed.
  • wasm/WASMFunctionParser.cpp:

Tools:

  • Scripts/run-jsc-stress-tests:
8:12 AM Changeset in webkit [196755] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit2

[GTK] Use G_TYPE_ERROR instead of G_TYPE_POINTER for GError parameters of signals
https://bugs.webkit.org/show_bug.cgi?id=153786

Reviewed by Michael Catanzaro.

It's binary compatible and it's needed by binding generator to
properly identify those parameters as GError.

  • UIProcess/API/gtk/WebKitDownload.cpp:

(webkit_download_class_init):

  • UIProcess/API/gtk/WebKitPrintOperation.cpp:

(webkit_print_operation_class_init):

  • UIProcess/API/gtk/WebKitWebResource.cpp:

(webkit_web_resource_class_init):

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkit_web_view_class_init):

  • UIProcess/API/gtk/webkit2marshal.list:
3:31 AM Changeset in webkit [196754] by ryuan.choi@navercorp.com
  • 2 edits
    4 moves in trunk/Source/WebKit2

[EFL] Move WebView from CoordinatedGraphics to efl
https://bugs.webkit.org/show_bug.cgi?id=154332

Reviewed by Csaba Osztrogonác.

  • PlatformEfl.cmake:
  • UIProcess/efl/WebView.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp.
  • UIProcess/efl/WebView.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.h.
  • UIProcess/efl/WebViewClient.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/WebViewClient.cpp.
  • UIProcess/efl/WebViewClient.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/WebViewClient.h.
3:13 AM Changeset in webkit [196753] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

Reduce tiling coverage immediately when memory pressure hits.
<https://webkit.org/b/154374>

Reviewed by Simon Fraser.

We already had a policy that reduced tiling coverage to a minimum while the system
is under memory pressure. However, that policy wouldn't kick in immediately after
receiving the pressure notification, but the next time we flush compositing state.

This change makes it happen sooner, improving our chances to escape death!

  • page/Page.h:
  • page/Page.cpp:

(WebCore::Page::forEachPage):

Add a little helper for visiting every Page.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

When under critical memory pressure, schedule a compositing flush in all Pages.
This ensures that the reduced tiling coverage policy takes effect, allowing us to
immediately drop several tiles in each visible web view.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::install):

To ensure that this behavior is testable with the fake memory pressure notification,
make the fake handler set the "in memory pressure" state just like the real one would.
I don't know why we were not doing this previously, it was just an oversight.
After the simulation completes, it schedules a runloop callback that resets the
"in memory pressure" state.

2:34 AM Changeset in webkit [196752] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[cmake] Build system cleanup
https://bugs.webkit.org/show_bug.cgi?id=154337

Reviewed by Žan Doberšek.

  • CMakeLists.txt:
12:46 AM Changeset in webkit [196751] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Align console prompt with execution context selector
https://bugs.webkit.org/show_bug.cgi?id=154381

Reviewed by Timothy Hatcher.

  • UserInterface/Views/QuickConsole.css:

(.quick-console > .console-prompt > .CodeMirror):
(.quick-console .execution-context):

12:34 AM Changeset in webkit [196750] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Storage tab navigation bar should fit on a single line
https://bugs.webkit.org/show_bug.cgi?id=152473
<rdar://problem/24023435>

Patch by Devin Rousso <Devin Rousso> on 2016-02-18
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js:

(Number.constrain):
Reworked logic to ensure that the returned value is never less than the
given minimum value.

12:29 AM Changeset in webkit [196749] by Michael Catanzaro
  • 2 edits
    1 delete in trunk

[CMake] Remove LLVM support
https://bugs.webkit.org/show_bug.cgi?id=154370

Reviewed by Csaba Osztrogonác.

After switching all CMake ports to B3, this was only needed for the LLVM disassembler, which
has been removed from JSC. Feel free to bring this back if restoring the LLVM disassembler,
but for the time being this is dead code.

  • Source/cmake/FindLLVM.cmake: Removed.
  • Source/cmake/OptionsCommon.cmake:
12:28 AM Changeset in webkit [196748] by jh718.park@samsung.com
  • 2 edits in trunk

[CMake] Remove meaningless conditional statements in CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=153778

Reviewed by Csaba Osztrogonác.

  • CMakeLists.txt:

Use CMAKE_FOO_OUTPUT_DIRECTORY located in CMakeLists.txt as default value.
And remove conditional statements which has enclosed these one
because they don't have meaning anymore.

Feb 17, 2016:

11:25 PM Changeset in webkit [196747] by mmaxfield@apple.com
  • 25 edits
    8 adds in trunk

[Font Loading] Implement FontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=153348

Reviewed by Simon Fraser.

Source/WebCore:

The CSS Font Loading spec includes a FontFaceSet object which represents
a collection of FontFaces. This patch implements such an object, and
backs it with a vector of FontFaces. Similarly to the FontFace object,
FontFaceSet is separated into a FontFaceSet frontend object and a
CSSFontFaceSet backend object, which actually owns the FontFace objects.
All the interaction with Promises is performed in the frontend object.

This patch does not implement the EventTarget part of the FontFaceSet
API, so the only way to know when a font is finished loading is by using
the associated Promise objects.

The CSS Font Loading spec describes how the Document should vend an
instance of FontFaceSet which represents the font faces currently
associated with the Document. However, that functionality is
forthcoming. Currently, the only way to get a FontFaceSet is to create
one yourself (using the constructor). Therefore, this patch does not
implement the spec's notion of a "CSS-connected font face."

Test: fast/text/font-face-set-javascript.html

  • CMakeLists.txt: Add new files.
  • DerivedSources.make: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/JSFontFaceSetCustom.cpp: Added.

(WebCore::JSFontFaceSet::ready): Use the Promise member.
(WebCore::JSFontFaceSet::entries): Use existing iterator code.
(WebCore::JSFontFaceSet::keys):
(WebCore::JSFontFaceSet::values):

  • css/CSSAllInOne.cpp: Add new files.
  • css/CSSFontFace.cpp: We now have a collection of clients (instead of

just one). Also, we need to keep a pointer to our FontFace wrapper.
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::addClient):
(WebCore::CSSFontFace::removeClient):
(WebCore::CSSFontFace::setStatus): Rename the delegate callback to be
more clear.
(WebCore::CSSFontFace::fontLoaded):
(WebCore::CSSFontFace::addedToSegmentedFontFace): Deleted.
(WebCore::CSSFontFace::removedFromSegmentedFontFace): Deleted.

  • css/CSSFontFace.h: Same as above.

(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::Client::~Client):
(WebCore::CSSFontFace::Client::kick):
(WebCore::CSSFontFace::Client::stateChanged):
(WebCore::CSSFontFace::wrapper):
(WebCore::CSSFontFaceClient::~CSSFontFaceClient): Deleted.

  • css/CSSFontFaceSet.cpp: Added. Initial imlementation.

(WebCore::CSSFontFaceSet::CSSFontFaceSet):
(WebCore::CSSFontFaceSet::~CSSFontFaceSet):
(WebCore::CSSFontFaceSet::incrementActiveCount):
(WebCore::CSSFontFaceSet::decrementActiveCount):
(WebCore::CSSFontFaceSet::has):
(WebCore::CSSFontFaceSet::add):
(WebCore::CSSFontFaceSet::remove):
(WebCore::extractFamilies):
(WebCore::familiesIntersect): Because this is an initial imlementation,
this function is not optimized. A subsequent patch (which implements
Document.fonts) will optimize this.
(WebCore::CSSFontFaceSet::matchingFaces):
(WebCore::CSSFontFaceSet::load):
(WebCore::CSSFontFaceSet::check):
(WebCore::CSSFontFaceSet::stateChanged):

  • css/CSSFontFaceSet.h: Added.

(WebCore::CSSFontFaceSetClient::~CSSFontFaceSetClient):
(WebCore::CSSFontFaceSet::size):
(WebCore::CSSFontFaceSet::operator[]):
(WebCore::CSSFontFaceSet::status):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::familyNameFromPrimitive):
(WebCore::CSSFontSelector::registerLocalFontFacesForFamily):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::familyNameFromPrimitive): Deleted.
(WebCore::CSSFontSelector::kick): Deleted.

  • css/CSSFontSelector.h:
  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
(WebCore::CSSSegmentedFontFace::appendFontFace):
(WebCore::CSSSegmentedFontFace::kick):
(WebCore::CSSSegmentedFontFace::fontLoaded): Deleted.

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

(WebCore::FontFace::FontFace):
(WebCore::FontFace::~FontFace):
(WebCore::FontFace::stateChanged): Renamed to make its purpose clearer.
(WebCore::FontFace::kick): Deleted.

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

(WebCore::createPromise):
(WebCore::FontFaceSet::FontFaceSet):
(WebCore::FontFaceSet::~FontFaceSet):
(WebCore::FontFaceSet::Iterator::Iterator):
(WebCore::FontFaceSet::Iterator::next):
(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::PendingPromise::~PendingPromise):
(WebCore::FontFaceSet::has):
(WebCore::FontFaceSet::size):
(WebCore::FontFaceSet::add):
(WebCore::FontFaceSet::remove):
(WebCore::FontFaceSet::clear):
(WebCore::FontFaceSet::load): Most of the complexity of loading is
due to the promises involved. Rather than use the Javascript function
Promise.all(), this patch builds a data structure to represent the
promises which need to be resolved. When fonts finish loading, we look
at the data structure to determine which promises to resolve.
(WebCore::FontFaceSet::check):
(WebCore::FontFaceSet::status):
(WebCore::FontFaceSet::canSuspendForDocumentSuspension):
(WebCore::FontFaceSet::startedLoading):
(WebCore::FontFaceSet::completedLoading):
(WebCore::FontFaceSet::fulfillPromise): Keep the promise alive.
(WebCore::FontFaceSet::faceFinished):

  • css/FontFaceSet.h: Added.

(WebCore::FontFaceSet::create):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::check):
(WebCore::FontFaceSet::createIterator):
(WebCore::FontFaceSet::PendingPromise::create):

  • css/FontFaceSet.idl: Added.
  • dom/EventNames.h:
  • dom/EventTargetFactory.in:

LayoutTests:

  • fast/text/font-face-set-javascript-expected.txt: Added.
  • fast/text/font-face-set-javascript.html: Added.
10:37 PM Changeset in webkit [196746] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: In the styles sidebar, Option-clicking on --css-variable should jump to its definition
https://bugs.webkit.org/show_bug.cgi?id=154082
<rdar://problem/24593361>

Patch by Devin Rousso <Devin Rousso> on 2016-02-17
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
Now tests to see if the highlighted token was a CSS variable and if
so, attempts to show the declaration of the CSS variable instead of
the location where it is used.

10:28 PM Changeset in webkit [196745] by mark.lam@apple.com
  • 8 edits in trunk/Source

Callers of JSString::value() should check for exceptions thereafter.
https://bugs.webkit.org/show_bug.cgi?id=154346

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

JSString::value() can throw an exception if the JS string is a rope and value()
needs to resolve the rope but encounters an OutOfMemory error. If value() is not
able to resolve the rope, it will return a null string (in addition to throwing
the exception). If a caller does not check for exceptions after calling
JSString::value(), they may eventually use the returned null string and crash the
VM.

The fix is to add all the necessary exception checks, and do the appropriate
handling if needed.

  • jsc.cpp:

(functionRun):
(functionLoad):
(functionReadFile):
(functionCheckSyntax):
(functionLoadWebAssembly):
(functionLoadModule):
(functionCheckModuleSyntax):

  • runtime/DateConstructor.cpp:

(JSC::dateParse):
(JSC::dateNow):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncEval):

  • tools/JSDollarVMPrototype.cpp:

(JSC::functionPrint):

Source/WebCore:

No new tests. The crash that results from this issue is dependent on a race
condition where an OutOfMemory error occurs precisely at the point where the
JSString::value() function is called on a rope JSString.

  • bindings/js/JSHTMLAllCollectionCustom.cpp:

(WebCore::callHTMLAllCollection):

  • bindings/js/JSStorageCustom.cpp:

(WebCore::JSStorage::putDelegate):

  • Added a comment at the site of the exception check to clarify the meaning of the return value.
10:13 PM Changeset in webkit [196744] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Always check the return value of dlopen() and dlsym() in Release builds
<http://webkit.org/b/154364>

Reviewed by Alexey Proskuryakov.

  • platform/mac/SoftLinking.h:

(SOFT_LINK_LIBRARY): Change ASSERT_WITH_MESSAGE() to
RELEASE_ASSERT_WITH_MESSAGE().
(SOFT_LINK_FRAMEWORK): Ditto.
(SOFT_LINK_PRIVATE_FRAMEWORK): Ditto.
(SOFT_LINK_STAGED_FRAMEWORK): Ditto.
(SOFT_LINK_FRAMEWORK_IN_UMBRELLA): Ditto.
(SOFT_LINK): Ditto.
(SOFT_LINK_POINTER): Ditto.
(SOFT_LINK_CONSTANT): Ditto.
(SOFT_LINK_FRAMEWORK_FOR_SOURCE): Add
RELEASE_ASSERT_WITH_MESSAGE() when soft-link is not
optional.

10:03 PM Changeset in webkit [196743] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION (r196620): Web Inspector: DataGrid headers and resizers are misaligned when the scrollbar is visible
https://bugs.webkit.org/show_bug.cgi?id=154280
<rdar://problem/24670567>

Reviewed by Timothy Hatcher.

Revert back to "overflow-y: overlay".

  • UserInterface/Views/DataGrid.css:

(.data-grid .data-container):

  • UserInterface/Views/DatabaseContentView.css:

(.storage-view.query):

9:44 PM Changeset in webkit [196742] by Chris Dumez
  • 4 edits in trunk

Regression(r196648): http://w3c-test.org/html/dom/interfaces.html redirects at the end of the test
https://bugs.webkit.org/show_bug.cgi?id=154357

Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Make location.assign() / location.replace()'s parameter mandatory,
as per the specification:
https://html.spec.whatwg.org/multipage/browsers.html#the-location-interface

Previously, calling location.assign() / location.replace() without
parameter would be identical to calling location.assign("undefined") /
location.replace("undefined"), which is not useful.

After r196648, http://w3c-test.org/html/dom/interfaces.html was able to
test location.assign() / location.replace() further because they are now
on the instance (where they should be) instead of the prototype. One of
these tests calls these functions without parameter, expecting them to
throw an exception. However, in WebKit, it would not throw and it would
redirect us to http://w3c-test.org/html/dom/undefined.

Firefox and Chrome both follow the specification already and throw in
this case.

No new tests, already covered by existing test.

  • page/Location.idl:

Make location.assign() / location.replace()'s parameter mandatory,
as per the specification.

9:27 PM Changeset in webkit [196741] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION (r196620): Web Inspector: When the scrollbars are always visible, the console prompt is 1px taller
https://bugs.webkit.org/show_bug.cgi?id=154328
<rdar://problem/24692996>

Introduce a CSS variable to ensure that the quick console is the
same height as the bottom right section of the styles sidebar.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ .options-container):
(.sidebar > .panel.details.css-style > .content ~ .class-list-container):

  • UserInterface/Views/QuickConsole.css:

(.quick-console):

  • UserInterface/Views/Variables.css:

(:root):

9:16 PM Changeset in webkit [196740] by commit-queue@webkit.org
  • 10 edits in trunk

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

broke css3/calc/transforms-translate.html (Requested by
alexchristensen on #webkit).

Reverted changeset:

"WebKitCSSMatrix transformList with calculated relative length
crashes Safari."
https://bugs.webkit.org/show_bug.cgi?id=153333
http://trac.webkit.org/changeset/196738

7:57 PM Changeset in webkit [196739] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Add Context menu separators to Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=154360

Patch by Devin Rousso <Devin Rousso> on 2016-02-17
Reviewed by Joseph Pecoraro.

In the Styles sidebar, there are three main sections for the context menu:

  • Copy and Duplicate/Show-source
  • Add pseudo-class rules
  • Add/Select pseudo-element rules

These three sections were all put together in the same context menu, which
was very crowded as a result. Separators have been added to make it so that
these three sections are now separated and clearly show their different uses.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):

  • UserInterface/Views/VisualStyleSelectorTreeItem.js:

(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):

6:13 PM Changeset in webkit [196738] by dino@apple.com
  • 10 edits in trunk

WebKitCSSMatrix transformList with calculated relative length crashes Safari.
https://bugs.webkit.org/show_bug.cgi?id=153333
<rdar://problem/17198383>

Reviewed by Simon Fraser.

Source/WebCore:

WebKitCSSMatrix objects should fail to construct when not
using absolute lengths.

Updated existing tests:

  • transforms/cssmatrix-2d-interface.xhtml
  • transforms/cssmatrix-3d-interface.xhtml
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertTransform): Tell transformsForValue
that we don't require absolute lengths.

  • css/TransformFunctions.cpp:

(WebCore::convertToFloatLength): Add an optional parameter that will
cause the conversion to fail if the primitive value has a non-absolute
length.
(WebCore::transformsForValue): Pass the parameter for requiring an
absolute length on to convertToFloatLength when necessary.

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

(WebCore::WebKitCSSMatrix::setMatrixValue): In this case we do
require all transform strings to have absolute lengths, not ones
that depend on the font size or are calculated.

LayoutTests:

Update existing tests to exercise the non-absolute lengths for translation
and perspective functions.

  • transforms/cssmatrix-2d-interface-expected.txt:
  • transforms/cssmatrix-2d-interface.xhtml:
  • transforms/cssmatrix-3d-interface-expected.txt:
  • transforms/cssmatrix-3d-interface.xhtml:
6:04 PM Changeset in webkit [196737] by Ryan Haddad
  • 3 edits in trunk/Source/WebCore

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

This change caused 5 API test failures on ios-simulator
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"[iOS] Purge GraphicsServices font cache on memory warning."
https://bugs.webkit.org/show_bug.cgi?id=154343
http://trac.webkit.org/changeset/196712

Patch by Commit Queue <commit-queue@webkit.org> on 2016-02-17

5:38 PM Changeset in webkit [196736] by commit-queue@webkit.org
  • 14 edits in trunk/Source/JavaScriptCore

[JSC] ARM64: Support the immediate format used for bit operations in Air
https://bugs.webkit.org/show_bug.cgi?id=154327

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

ARM64 supports a pretty rich form of immediates for bit operation.
There are two formats used to encode repeating patterns and common
input in a dense form.

In this patch, I add 2 new type of Arg: BitImm32 and BitImm64.
Those represents the valid immediate forms for bit operation.
On x86, any 32bits value is valid. On ARM64, all the encoding
form are tried and the immediate is used when possible.

The arg type Imm64 is renamed to BigImm to better represent what
it is: an immediate that does not fit into Imm.

  • assembler/ARM64Assembler.h:

(JSC::LogicalImmediate::create32): Deleted.
(JSC::LogicalImmediate::create64): Deleted.
(JSC::LogicalImmediate::value): Deleted.
(JSC::LogicalImmediate::isValid): Deleted.
(JSC::LogicalImmediate::is64bit): Deleted.
(JSC::LogicalImmediate::LogicalImmediate): Deleted.
(JSC::LogicalImmediate::mask): Deleted.
(JSC::LogicalImmediate::partialHSB): Deleted.
(JSC::LogicalImmediate::highestSetBit): Deleted.
(JSC::LogicalImmediate::findBitRange): Deleted.
(JSC::LogicalImmediate::encodeLogicalImmediate): Deleted.

  • assembler/AssemblerCommon.h:

(JSC::ARM64LogicalImmediate::create32):
(JSC::ARM64LogicalImmediate::create64):
(JSC::ARM64LogicalImmediate::value):
(JSC::ARM64LogicalImmediate::isValid):
(JSC::ARM64LogicalImmediate::is64bit):
(JSC::ARM64LogicalImmediate::ARM64LogicalImmediate):
(JSC::ARM64LogicalImmediate::mask):
(JSC::ARM64LogicalImmediate::partialHSB):
(JSC::ARM64LogicalImmediate::highestSetBit):
(JSC::ARM64LogicalImmediate::findBitRange):
(JSC::ARM64LogicalImmediate::encodeLogicalImmediate):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::and64):
(JSC::MacroAssemblerARM64::or64):
(JSC::MacroAssemblerARM64::xor64):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::bitImm):
(JSC::B3::Air::LowerToAir::bitImm64):
(JSC::B3::Air::LowerToAir::appendBinOp):

  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::dump):
(WTF::printInternal):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::bitImm):
(JSC::B3::Air::Arg::bitImm64):
(JSC::B3::Air::Arg::isBitImm):
(JSC::B3::Air::Arg::isBitImm64):
(JSC::B3::Air::Arg::isSomeImm):
(JSC::B3::Air::Arg::value):
(JSC::B3::Air::Arg::isGP):
(JSC::B3::Air::Arg::isFP):
(JSC::B3::Air::Arg::hasType):
(JSC::B3::Air::Arg::isValidBitImmForm):
(JSC::B3::Air::Arg::isValidBitImm64Form):
(JSC::B3::Air::Arg::isValidForm):
(JSC::B3::Air::Arg::asTrustedImm32):
(JSC::B3::Air::Arg::asTrustedImm64):

  • b3/air/AirOpcode.opcodes:
  • b3/air/opcode_generator.rb:
5:25 PM Changeset in webkit [196735] by beidson@apple.com
  • 11 edits
    4 moves in trunk/Source/WebKit2

Modern IDB: Rename some "UniqueIDBDatabase" classes that conflict with new classes in WebCore.
https://bugs.webkit.org/show_bug.cgi?id=154363.

Reviewed by Alex Christensen.

Adding "Legacy" to the front of the name fixes problems for now.

And all of this gunk will go away after Modern IDB is done, anyways.

  • CMakeLists.txt:
  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::getOrCreateLegacyUniqueIDBDatabase):
(WebKit::DatabaseProcess::removeLegacyUniqueIDBDatabase):
(WebKit::DatabaseProcess::getOrCreateUniqueIDBDatabase): Deleted.
(WebKit::DatabaseProcess::removeUniqueIDBDatabase): Deleted.

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:

(WebKit::DatabaseProcessIDBConnection::establishConnection):

  • DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
  • DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp.

(WebKit::LegacyUniqueIDBDatabase::calculateAbsoluteDatabaseFilename):
(WebKit::LegacyUniqueIDBDatabase::LegacyUniqueIDBDatabase):
(WebKit::LegacyUniqueIDBDatabase::~LegacyUniqueIDBDatabase):
(WebKit::LegacyUniqueIDBDatabase::filenameForDatabaseName):
(WebKit::LegacyUniqueIDBDatabase::databaseFilenameIdentifier):
(WebKit::LegacyUniqueIDBDatabase::canShareDatabases):
(WebKit::LegacyUniqueIDBDatabase::registerConnection):
(WebKit::LegacyUniqueIDBDatabase::unregisterConnection):
(WebKit::LegacyUniqueIDBDatabase::shutdown):
(WebKit::LegacyUniqueIDBDatabase::shutdownBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didShutdownBackingStore):
(WebKit::LegacyUniqueIDBDatabase::deleteDatabase):
(WebKit::LegacyUniqueIDBDatabase::getOrEstablishIDBDatabaseMetadata):
(WebKit::LegacyUniqueIDBDatabase::openBackingStoreAndReadMetadata):
(WebKit::LegacyUniqueIDBDatabase::didOpenBackingStoreAndReadMetadata):
(WebKit::LegacyUniqueIDBDatabase::openTransaction):
(WebKit::LegacyUniqueIDBDatabase::beginTransaction):
(WebKit::LegacyUniqueIDBDatabase::commitTransaction):
(WebKit::LegacyUniqueIDBDatabase::resetTransaction):
(WebKit::LegacyUniqueIDBDatabase::rollbackTransaction):
(WebKit::LegacyUniqueIDBDatabase::postTransactionOperation):
(WebKit::LegacyUniqueIDBDatabase::didCompleteTransactionOperation):
(WebKit::LegacyUniqueIDBDatabase::changeDatabaseVersion):
(WebKit::LegacyUniqueIDBDatabase::didChangeDatabaseVersion):
(WebKit::LegacyUniqueIDBDatabase::didCreateObjectStore):
(WebKit::LegacyUniqueIDBDatabase::didDeleteObjectStore):
(WebKit::LegacyUniqueIDBDatabase::didClearObjectStore):
(WebKit::LegacyUniqueIDBDatabase::didCreateIndex):
(WebKit::LegacyUniqueIDBDatabase::didDeleteIndex):
(WebKit::LegacyUniqueIDBDatabase::didCompleteBoolRequest):
(WebKit::LegacyUniqueIDBDatabase::createObjectStore):
(WebKit::LegacyUniqueIDBDatabase::deleteObjectStore):
(WebKit::LegacyUniqueIDBDatabase::clearObjectStore):
(WebKit::LegacyUniqueIDBDatabase::createIndex):
(WebKit::LegacyUniqueIDBDatabase::deleteIndex):
(WebKit::LegacyUniqueIDBDatabase::putRecord):
(WebKit::LegacyUniqueIDBDatabase::getRecord):
(WebKit::LegacyUniqueIDBDatabase::openCursor):
(WebKit::LegacyUniqueIDBDatabase::cursorAdvance):
(WebKit::LegacyUniqueIDBDatabase::cursorIterate):
(WebKit::LegacyUniqueIDBDatabase::count):
(WebKit::LegacyUniqueIDBDatabase::deleteRange):
(WebKit::LegacyUniqueIDBDatabase::openBackingStoreTransaction):
(WebKit::LegacyUniqueIDBDatabase::beginBackingStoreTransaction):
(WebKit::LegacyUniqueIDBDatabase::commitBackingStoreTransaction):
(WebKit::LegacyUniqueIDBDatabase::resetBackingStoreTransaction):
(WebKit::LegacyUniqueIDBDatabase::rollbackBackingStoreTransaction):
(WebKit::LegacyUniqueIDBDatabase::changeDatabaseVersionInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::createObjectStoreInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::deleteObjectStoreInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::clearObjectStoreInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::createIndexInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::deleteIndexInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::putRecordInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didPutRecordInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::getRecordFromBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didGetRecordFromBackingStore):
(WebKit::LegacyUniqueIDBDatabase::openCursorInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didOpenCursorInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::advanceCursorInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didAdvanceCursorInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::iterateCursorInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didIterateCursorInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::countInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didCountInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::deleteRangeInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didDeleteRangeInBackingStore):
(WebKit::LegacyUniqueIDBDatabase::didEstablishTransaction):
(WebKit::LegacyUniqueIDBDatabase::didResetTransaction):
(WebKit::LegacyUniqueIDBDatabase::resetAllTransactions):
(WebKit::LegacyUniqueIDBDatabase::finalizeRollback):
(WebKit::LegacyUniqueIDBDatabase::absoluteDatabaseDirectory):
(WebKit::LegacyUniqueIDBDatabase::postMainThreadTask):
(WebKit::LegacyUniqueIDBDatabase::performNextMainThreadTask):
(WebKit::LegacyUniqueIDBDatabase::postDatabaseTask):
(WebKit::LegacyUniqueIDBDatabase::performNextDatabaseTask):

  • DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h.

(WebKit::LegacyUniqueIDBDatabase::create):
(WebKit::LegacyUniqueIDBDatabase::identifier):

  • DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.cpp.

(WebKit::LegacyUniqueIDBDatabaseIdentifier::LegacyUniqueIDBDatabaseIdentifier):
(WebKit::LegacyUniqueIDBDatabaseIdentifier::isHashTableDeletedValue):
(WebKit::LegacyUniqueIDBDatabaseIdentifier::hash):
(WebKit::LegacyUniqueIDBDatabaseIdentifier::isNull):
(WebKit::LegacyUniqueIDBDatabaseIdentifier::isolatedCopy):
(WebKit::operator==):

  • DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.h.

(WebKit::LegacyUniqueIDBDatabaseIdentifier::databaseName):
(WebKit::LegacyUniqueIDBDatabaseIdentifier::openingOrigin):
(WebKit::LegacyUniqueIDBDatabaseIdentifier::mainFrameOrigin):
(WebKit::LegacyUniqueIDBDatabaseIdentifierHash::hash):
(WebKit::LegacyUniqueIDBDatabaseIdentifierHash::equal):
(WebKit::LegacyUniqueIDBDatabaseIdentifierHashTraits::isEmptyValue):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::UniqueIDBDatabaseBackingStoreSQLite):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
  • Shared/WebCrossThreadCopier.cpp:

(WebCore::LegacyUniqueIDBDatabaseIdentifier>::copy):
(WebCore::UniqueIDBDatabaseIdentifier>::copy): Deleted.

  • Shared/WebCrossThreadCopier.h:
  • WebKit2.xcodeproj/project.pbxproj:
5:17 PM Changeset in webkit [196734] by keith_miller@apple.com
  • 14 edits
    1 add in trunk

Spread operator should be allowed when not the first argument of parameter list
https://bugs.webkit.org/show_bug.cgi?id=152721

Reviewed by Saam Barati.

Source/JavaScriptCore:

Spread arguments to functions should now be ES6 compliant. Before we
would only take a spread operator if it was the sole argument to a
function. Additionally, we would not use the Symbol.iterator on the
object to generate the arguments. Instead we would do a loop up to the
length mapping indexed properties to the corresponding argument. We fix
both these issues by doing an AST transformation from foo(...a, b, ...c, d)
to foo(...[...a, b, ...c, d]) (where the spread on the rhs uses the
old spread semantics). This solution has the downside of requiring the
allocation of another object and copying each element twice but avoids a
large change to the vm calling convention.

  • interpreter/Interpreter.cpp:

(JSC::loadVarargs):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createElementList):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseArguments):
(JSC::Parser<LexerType>::parseArgument):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createElementList):

  • tests/es6.yaml:
  • tests/stress/spread-calling.js: Added.

(testFunction):
(testEmpty):
(makeObject):
(otherIterator.return.next):
(otherIterator):
(totalIter):
(throwingIter.return.next):
(throwingIter):
(i.catch):

LayoutTests:

Update tests with new semantics of spread calling. Additionally,
adjust benchmarks to run in a more reasonable time now that
spread is implemented correctly.

  • js/basic-spread-expected.txt:
  • js/parser-syntax-check-expected.txt:
  • js/regress/script-tests/deltablue-varargs.js:

(deltaBlue):

  • js/regress/script-tests/varargs-construct.js:
  • js/script-tests/basic-spread.js:
  • js/script-tests/parser-syntax-check.js:
5:05 PM Changeset in webkit [196733] by Brian Burg
  • 2 edits in trunk/Source/JavaScriptCore

Remove a wrong cast in RemoteInspector::receivedSetupMessage
https://bugs.webkit.org/show_bug.cgi?id=154361
<rdar://problem/24709281>

Reviewed by Joseph Pecoraro.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::receivedSetupMessage):
Not only is this cast unnecessary (the constructor accepts the base class),
but it is wrong since the target could be an automation target. Remove it.

5:03 PM Changeset in webkit [196732] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit2

Remove WebContextSupplement::shouldTerminate, it's no longer used
https://bugs.webkit.org/show_bug.cgi?id=154367

Reviewed by Sam Weinig.

  • UIProcess/WebContextSupplement.h:

(WebKit::WebContextSupplement::shouldTerminate): Deleted.

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::shouldTerminate): Deleted.

  • UIProcess/WebCookieManagerProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::shouldTerminate): Deleted.

4:42 PM Changeset in webkit [196731] by fpizlo@apple.com
  • 5 edits
    3 moves in trunk/Source/JavaScriptCore

Rename FTLB3Blah to FTLBlah
https://bugs.webkit.org/show_bug.cgi?id=154365

Rubber stamped by Geoffrey Garen, Benjamin Poulain, Awesome Kling, and Saam Barati.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • ftl/FTLB3Compile.cpp: Removed.
  • ftl/FTLB3Output.cpp: Removed.
  • ftl/FTLB3Output.h: Removed.
  • ftl/FTLCompile.cpp: Copied from Source/JavaScriptCore/ftl/FTLB3Compile.cpp.
  • ftl/FTLOutput.cpp: Copied from Source/JavaScriptCore/ftl/FTLB3Output.cpp.
  • ftl/FTLOutput.h: Copied from Source/JavaScriptCore/ftl/FTLB3Output.h.
4:37 PM Changeset in webkit [196730] by Brian Burg
  • 2 edits in trunk/Source/WebKit2

RemoteInspector deadlocks if _WKAutomationDelegate creates/registers a target synchronously
https://bugs.webkit.org/show_bug.cgi?id=154359
<rdar://problem/24708897>

Reviewed by Joseph Pecoraro.

RemoteInspector always grabs a lock whenever receiving or sending XPC messages. If it
forwards a new session request via _WKAutomationDelegate, and the client synchronously
creates and registers a session, then RemoteInspector will try to grab the lock again
while adding the session to its registry, causing a deadlock.

  • UIProcess/Cocoa/AutomationClient.mm:

(WebKit::AutomationClient::requestAutomationSession): Add a dispatch_async() to
protect clients from accidentally deadlocking. They shouldn't have to care about
RemoteInspector's locking mechanisms.

4:11 PM Changeset in webkit [196729] by fpizlo@apple.com
  • 52 edits
    57 deletes in trunk

Remove LLVM dependencies from WebKit
https://bugs.webkit.org/show_bug.cgi?id=154323

Reviewed by Antti Koivisto and Benjamin Poulain.

Source/JavaScriptCore:

We have switched all ports that use the FTL JIT to using B3 as the backend. This renders all
LLVM-related code dead, including the disassembler, which was only reachable when you were on
a platform that already had an in-tree disassembler.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGCommon.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::compileTimeStats):

  • disassembler/ARM64Disassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/ARMv7Disassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/Disassembler.cpp:

(JSC::disassemble):
(JSC::disassembleAsynchronously):

  • disassembler/Disassembler.h:

(JSC::tryToDisassemble):

  • disassembler/LLVMDisassembler.cpp: Removed.
  • disassembler/LLVMDisassembler.h: Removed.
  • disassembler/UDis86Disassembler.cpp:

(JSC::tryToDisassembleWithUDis86):

  • disassembler/UDis86Disassembler.h:

(JSC::tryToDisassembleWithUDis86):

  • disassembler/X86Disassembler.cpp:

(JSC::tryToDisassemble):

  • ftl/FTLAbbreviatedTypes.h:
  • ftl/FTLAbbreviations.h: Removed.
  • ftl/FTLAbstractHeap.cpp:

(JSC::FTL::AbstractHeap::decorateInstruction):
(JSC::FTL::AbstractHeap::dump):
(JSC::FTL::AbstractField::dump):
(JSC::FTL::IndexedAbstractHeap::IndexedAbstractHeap):
(JSC::FTL::IndexedAbstractHeap::~IndexedAbstractHeap):
(JSC::FTL::IndexedAbstractHeap::baseIndex):
(JSC::FTL::IndexedAbstractHeap::dump):
(JSC::FTL::NumberedAbstractHeap::NumberedAbstractHeap):
(JSC::FTL::NumberedAbstractHeap::dump):
(JSC::FTL::AbsoluteAbstractHeap::AbsoluteAbstractHeap):
(JSC::FTL::AbstractHeap::tbaaMetadataSlow): Deleted.

  • ftl/FTLAbstractHeap.h:

(JSC::FTL::AbstractHeap::AbstractHeap):
(JSC::FTL::AbstractHeap::heapName):
(JSC::FTL::IndexedAbstractHeap::atAnyIndex):
(JSC::FTL::NumberedAbstractHeap::atAnyNumber):
(JSC::FTL::AbsoluteAbstractHeap::atAnyAddress):
(JSC::FTL::AbstractHeap::tbaaMetadata): Deleted.

  • ftl/FTLAbstractHeapRepository.cpp:

(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLB3Compile.cpp:
  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::Output):
(JSC::FTL::Output::check):
(JSC::FTL::Output::load):
(JSC::FTL::Output::store):

  • ftl/FTLB3Output.h:
  • ftl/FTLCommonValues.cpp:

(JSC::FTL::CommonValues::CommonValues):
(JSC::FTL::CommonValues::initializeConstants):

  • ftl/FTLCommonValues.h:

(JSC::FTL::CommonValues::initialize): Deleted.

  • ftl/FTLCompile.cpp: Removed.
  • ftl/FTLCompileBinaryOp.cpp: Removed.
  • ftl/FTLCompileBinaryOp.h: Removed.
  • ftl/FTLDWARFDebugLineInfo.cpp: Removed.
  • ftl/FTLDWARFDebugLineInfo.h: Removed.
  • ftl/FTLDWARFRegister.cpp: Removed.
  • ftl/FTLDWARFRegister.h: Removed.
  • ftl/FTLDataSection.cpp: Removed.
  • ftl/FTLDataSection.h: Removed.
  • ftl/FTLExceptionHandlerManager.cpp: Removed.
  • ftl/FTLExceptionHandlerManager.h: Removed.
  • ftl/FTLExceptionTarget.cpp:
  • ftl/FTLExceptionTarget.h:
  • ftl/FTLExitThunkGenerator.cpp: Removed.
  • ftl/FTLExitThunkGenerator.h: Removed.
  • ftl/FTLFail.cpp:

(JSC::FTL::fail):

  • ftl/FTLInlineCacheDescriptor.h: Removed.
  • ftl/FTLInlineCacheSize.cpp: Removed.
  • ftl/FTLInlineCacheSize.h: Removed.
  • ftl/FTLIntrinsicRepository.cpp: Removed.
  • ftl/FTLIntrinsicRepository.h: Removed.
  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::~JITCode):
(JSC::FTL::JITCode::initializeB3Code):
(JSC::FTL::JITCode::initializeB3Byproducts):
(JSC::FTL::JITCode::initializeAddressForCall):
(JSC::FTL::JITCode::contains):
(JSC::FTL::JITCode::ftl):
(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):
(JSC::FTL::JITCode::initializeExitThunks): Deleted.
(JSC::FTL::JITCode::addHandle): Deleted.
(JSC::FTL::JITCode::addDataSection): Deleted.
(JSC::FTL::JITCode::exitThunks): Deleted.

  • ftl/FTLJITCode.h:

(JSC::FTL::JITCode::b3Code):
(JSC::FTL::JITCode::handles): Deleted.
(JSC::FTL::JITCode::dataSections): Deleted.

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::codeSize):
(JSC::FTL::JITFinalizer::finalizeFunction):

  • ftl/FTLJITFinalizer.h:
  • ftl/FTLJSCall.cpp: Removed.
  • ftl/FTLJSCall.h: Removed.
  • ftl/FTLJSCallBase.cpp: Removed.
  • ftl/FTLJSCallBase.h: Removed.
  • ftl/FTLJSCallVarargs.cpp: Removed.
  • ftl/FTLJSCallVarargs.h: Removed.
  • ftl/FTLJSTailCall.cpp: Removed.
  • ftl/FTLJSTailCall.h: Removed.
  • ftl/FTLLazySlowPath.cpp:

(JSC::FTL::LazySlowPath::LazySlowPath):
(JSC::FTL::LazySlowPath::generate):

  • ftl/FTLLazySlowPath.h:

(JSC::FTL::LazySlowPath::createGenerator):
(JSC::FTL::LazySlowPath::patchableJump):
(JSC::FTL::LazySlowPath::done):
(JSC::FTL::LazySlowPath::usedRegisters):
(JSC::FTL::LazySlowPath::callSiteIndex):
(JSC::FTL::LazySlowPath::stub):
(JSC::FTL::LazySlowPath::patchpoint): Deleted.

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLocation.cpp:

(JSC::FTL::Location::forValueRep):
(JSC::FTL::Location::dump):
(JSC::FTL::Location::forStackmaps): Deleted.

  • ftl/FTLLocation.h:

(JSC::FTL::Location::forRegister):
(JSC::FTL::Location::forIndirect):
(JSC::FTL::Location::forConstant):
(JSC::FTL::Location::kind):
(JSC::FTL::Location::hasReg):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::LowerDFGToLLVM):
(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::createPhiVariables):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileUpsilon):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePhi):
(JSC::FTL::DFG::LowerDFGToLLVM::compileDoubleConstant):
(JSC::FTL::DFG::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStrCat):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithDiv):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithNegate):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitAnd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitOr):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitXor):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitRShift):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitLShift):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitURShift):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetButterfly):
(JSC::FTL::DFG::LowerDFGToLLVM::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileLoadVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToLLVM::compileIsUndefined):
(JSC::FTL::DFG::LowerDFGToLLVM::compileIn):
(JSC::FTL::DFG::LowerDFGToLLVM::getById):
(JSC::FTL::DFG::LowerDFGToLLVM::loadButterflyWithBarrier):
(JSC::FTL::DFG::LowerDFGToLLVM::stringsEqual):
(JSC::FTL::DFG::LowerDFGToLLVM::emitRightShiftSnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateCell):
(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):
(JSC::FTL::DFG::LowerDFGToLLVM::speculate):
(JSC::FTL::DFG::LowerDFGToLLVM::callCheck):
(JSC::FTL::DFG::LowerDFGToLLVM::preparePatchpointForExceptions):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitDescriptor):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::DFG::LowerDFGToLLVM::blessSpeculation):
(JSC::FTL::DFG::LowerDFGToLLVM::buildExitArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::exitValueForAvailability):
(JSC::FTL::DFG::LowerDFGToLLVM::exitValueForNode):
(JSC::FTL::DFG::LowerDFGToLLVM::probe):
(JSC::FTL::DFG::LowerDFGToLLVM::crash):
(JSC::FTL::DFG::LowerDFGToLLVM::compileUntypedBinaryOp): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::emitOSRExitCall): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::callStackmap): Deleted.

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::OSRExitDescriptor):
(JSC::FTL::OSRExitDescriptor::validateReferences):
(JSC::FTL::OSRExitDescriptor::emitOSRExit):
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):
(JSC::FTL::OSRExit::codeLocationForRepatch):
(JSC::FTL::OSRExit::gatherRegistersToSpillForCallIfException): Deleted.
(JSC::FTL::OSRExit::spillRegistersToSpillSlot): Deleted.
(JSC::FTL::OSRExit::recoverRegistersFromSpillSlot): Deleted.
(JSC::FTL::OSRExit::willArriveAtExitFromIndirectExceptionCheck): Deleted.
(JSC::FTL::OSRExit::willArriveAtOSRExitFromCallOperation): Deleted.
(JSC::FTL::OSRExit::needsRegisterRecoveryOnGenericUnwindOSRExitPath): Deleted.

  • ftl/FTLOSRExit.h:

(JSC::FTL::OSRExit::considerAddingAsFrequentExitSite):
(JSC::FTL::OSRExitDescriptorImpl::OSRExitDescriptorImpl): Deleted.

  • ftl/FTLOSRExitCompilationInfo.h: Removed.
  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileRecovery):
(JSC::FTL::compileStub):
(JSC::FTL::compileFTLOSRExit):

  • ftl/FTLOSRExitHandle.cpp:
  • ftl/FTLOSRExitHandle.h:
  • ftl/FTLOutput.cpp: Removed.
  • ftl/FTLOutput.h: Removed.
  • ftl/FTLPatchpointExceptionHandle.cpp:
  • ftl/FTLPatchpointExceptionHandle.h:
  • ftl/FTLStackMaps.cpp: Removed.
  • ftl/FTLStackMaps.h: Removed.
  • ftl/FTLState.cpp:

(JSC::FTL::State::State):
(JSC::FTL::State::~State):
(JSC::FTL::State::dumpState): Deleted.

  • ftl/FTLState.h:
  • ftl/FTLUnwindInfo.cpp: Removed.
  • ftl/FTLUnwindInfo.h: Removed.
  • ftl/FTLValueRange.cpp:

(JSC::FTL::ValueRange::decorateInstruction):

  • ftl/FTLValueRange.h:

(JSC::FTL::ValueRange::ValueRange):
(JSC::FTL::ValueRange::begin):
(JSC::FTL::ValueRange::end):

  • ftl/FTLWeight.h:

(JSC::FTL::Weight::value):
(JSC::FTL::Weight::frequencyClass):
(JSC::FTL::Weight::scaleToTotal):

  • llvm/InitializeLLVM.cpp: Removed.
  • llvm/InitializeLLVM.h: Removed.
  • llvm/InitializeLLVMMac.cpp: Removed.
  • llvm/InitializeLLVMPOSIX.cpp: Removed.
  • llvm/InitializeLLVMPOSIX.h: Removed.
  • llvm/LLVMAPI.cpp: Removed.
  • llvm/LLVMAPI.h: Removed.
  • llvm/LLVMAPIFunctions.h: Removed.
  • llvm/LLVMHeaders.h: Removed.
  • llvm/library/LLVMAnchor.cpp: Removed.
  • llvm/library/LLVMExports.cpp: Removed.
  • llvm/library/LLVMOverrides.cpp: Removed.
  • llvm/library/config_llvm.h: Removed.

Source/WTF:

  • wtf/Platform.h:

Tools:

  • Scripts/copy-webkitlibraries-to-product-directory:

(isContentOfFileEqualToString):
(fileContains): Deleted.
(buildLLVM): Deleted.
(symlinkLLVMLibrariesIfNeeded): Deleted.

WebKitLibraries:

  • LLVMIncludesElCapitan.tar.bz2: Removed.
  • LLVMIncludesIOS9.tar.bz2: Removed.
  • LLVMIncludesMavericks.tar.bz2: Removed.
  • LLVMIncludesYosemite.tar.bz2: Removed.
  • LLVMLibrariesElCapitan.tar.bz2: Removed.
  • LLVMLibrariesIOS9.tar.bz2: Removed.
  • LLVMLibrariesMavericks.tar.bz2: Removed.
  • LLVMLibrariesYosemite.tar.bz2: Removed.
3:45 PM Changeset in webkit [196728] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove an unused function
https://bugs.webkit.org/show_bug.cgi?id=154358

Reviewed by Sam Weinig.

  • Platform/cg/CGUtilities.cpp:

(WebKit::paintBitmapContext): Deleted.

  • Platform/cg/CGUtilities.h:
3:36 PM Changeset in webkit [196727] by Ryan Haddad
  • 1 edit
    2 adds in trunk/LayoutTests

Add ios-simulator baseline for new W3C HTML tests added with r196710

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt: Added.
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt: Added.
3:35 PM Changeset in webkit [196726] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Remove the overflow check on ArithAbs when possible
https://bugs.webkit.org/show_bug.cgi?id=154325

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

This patch adds support for ArithMode for ArithAbs.

It is useful for kraken tests where Math.abs() is used
on values for which the range is known.

For example, imaging-gaussian-blur has two Math.abs() with
integers that are always in a small range around zero.
The IntegerRangeOptimizationPhase detects the range correctly
so we can just update the ArithMode depending on the input.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToArithNegate):
(JSC::DFG::Node::hasArithMode):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAbs):

  • tests/stress/arith-abs-integer-range-optimization.js: Added.

(negativeRange):
(negativeRangeIncludingZero):
(negativeRangeWithOverflow):
(positiveRange):
(positiveRangeIncludingZero):
(rangeWithoutOverflow):

  • tests/stress/arith-abs-with-bitwise-or-zero.js: Added.

(opaqueAbs):

3:25 PM Changeset in webkit [196725] by beidson@apple.com
  • 10 edits in trunk/Source

Modern IDB: More Encoder/Decoder/Messaging scaffolding for WK2 IPC.
https://bugs.webkit.org/show_bug.cgi?id=154356

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.

Source/WebCore:

  • Modules/indexeddb/shared/IDBDatabaseInfo.h:

(WebCore::IDBDatabaseInfo::encode):
(WebCore::IDBDatabaseInfo::decode):

  • Modules/indexeddb/shared/IDBError.h:

(WebCore::IDBError::encode):
(WebCore::IDBError::decode):

  • Modules/indexeddb/shared/IDBRequestData.h:

(WebCore::IDBRequestData::decode):

  • Modules/indexeddb/shared/IDBResultData.h:

(WebCore::IDBResultData::encode):
(WebCore::IDBResultData::decode):

Source/WebKit2:

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didDeleteDatabase):
(WebKit::WebIDBConnectionToClient::didOpenDatabase):
(WebKit::WebIDBConnectionToClient::didAbortTransaction):
(WebKit::WebIDBConnectionToClient::didCommitTransaction):
(WebKit::WebIDBConnectionToClient::didCreateObjectStore):
(WebKit::WebIDBConnectionToClient::didDeleteObjectStore):
(WebKit::WebIDBConnectionToClient::didClearObjectStore):
(WebKit::WebIDBConnectionToClient::didCreateIndex):
(WebKit::WebIDBConnectionToClient::didDeleteIndex):
(WebKit::WebIDBConnectionToClient::didPutOrAdd):
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didGetCount):
(WebKit::WebIDBConnectionToClient::didDeleteRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):
(WebKit::WebIDBConnectionToClient::fireVersionChangeEvent):
(WebKit::WebIDBConnectionToClient::didStartTransaction):
(WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
3:11 PM Changeset in webkit [196724] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix GTK build after r196720.

  • UIProcess/API/gtk/WebKitUIClient.cpp:
2:59 PM Changeset in webkit [196723] by Chris Dumez
  • 3 edits
    2 adds in trunk

SES selftest page crashes on nightly r196694
https://bugs.webkit.org/show_bug.cgi?id=154350
<rdar://problem/24704334>

Reviewed by Mark Lam.

Source/JavaScriptCore:

SES selftest page crashes after r196001 / r196145 when calling
Object.getOwnPropertyDescriptor(window, "length") after the window
has been reified and "length" has been shadowed by a value property.

It was crashing in JSObject::getOwnPropertyDescriptor() because
we are getting a slot that has attribute "CustomAccessor" but
the property is not a CustomGetterSetter. In this case, since
window.length is [Replaceable] and has been set to a numeric value,
it makes that the property is not a CustomGetterSetter. However,
the "CustomAccessor" attribute should have been dropped from the
slot when window.length was shadowed. Therefore, this code path
should not be exercised at all when calling
getOwnPropertyDescriptor().

The issue was that putDirectInternal() was updating the slot
attributes only if the "Accessor" flag has changed, but not
the "customAccessor" flag. This patch fixes the issue.

  • runtime/JSObject.h:

(JSC::JSObject::putDirectInternal):

LayoutTests:

Add test coverage for the crash which happens when shadowing window.length
with a value after the window property and then calling
Object.getOwnPropertyDescriptor(window, "length").

  • js/window-length-getOwnPropertyDescriptor-crash-expected.txt: Added.
  • js/window-length-getOwnPropertyDescriptor-crash.html: Added.
2:11 PM Changeset in webkit [196722] by sbarati@apple.com
  • 36 edits
    8 adds in trunk/Source

Implement Proxy Get?
https://bugs.webkit.org/show_bug.cgi?id=154081

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This patch implements ProxyObject and ProxyConstructor. Their
implementations are straight forward and follow the spec.
The largest change in this patch is adding a second parameter
to PropertySlot's constructor that specifies the internal method type of
the getOwnPropertySlot inquiry. We use getOwnPropertySlot to
implement more than one Internal Method in the spec. Because
of this, we need InternalMethodType to give us context about
which Internal Method we're executing. Specifically, Proxy will
call into different handlers based on this information.

InternalMethodType is an enum with the following values:

  • Get This corresponds to Get? internal method in the spec.
  • GetOwnProperty This corresponds to GetOwnProperty? internal method in the spec.
  • HasProperty This corresponds to HasProperty? internal method in the spec.
  • VMInquiry This is basically everything else that isn't one of the above types. This value also mandates that getOwnPropertySlot does not perform any user observable effects. I.e, it can't call a JS function.

The other non-VMInquiry InternalMethodTypes are allowed to perform user
observable effects. I.e, in future patches, ProxyObject will implement
InternalMethodType::HasProperty and InternalMethodType::GetOwnProperty, which will both be defined
to call user defined JS functions, which clearly have the right to perform
user observable effects.

This patch implements getOwnPropertySlot of ProxyObject under
InternalMethodType::Get.

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::put):
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::caughtValue):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

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

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/ArrayPrototype.cpp:

(JSC::getProperty):

  • runtime/CommonIdentifiers.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::get):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::defineOwnProperty):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::regExpMatchesArrayStructure):
(JSC::JSGlobalObject::moduleRecordStructure):
(JSC::JSGlobalObject::moduleNamespaceObjectStructure):
(JSC::JSGlobalObject::proxyObjectStructure):
(JSC::JSGlobalObject::wasmModuleStructure):

  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::getOwnPropertySlot):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::callbackGetter):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):

  • runtime/JSObject.cpp:

(JSC::JSObject::calculatedClassName):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::hasProperty):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::hasOwnProperty):
(JSC::JSObject::getOwnPropertyDescriptor):

  • runtime/JSObject.h:

(JSC::JSObject::getDirectIndex):
(JSC::JSObject::get):

  • runtime/JSScope.cpp:

(JSC::abstractAccess):

  • runtime/ObjectConstructor.cpp:

(JSC::toPropertyDescriptor):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncLookupGetter):
(JSC::objectProtoFuncLookupSetter):
(JSC::objectProtoFuncToString):

  • runtime/PropertySlot.h:

(JSC::attributesForStructure):
(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::isCacheableGetter):
(JSC::PropertySlot::isCacheableCustom):
(JSC::PropertySlot::internalMethodType):
(JSC::PropertySlot::disableCaching):
(JSC::PropertySlot::getValue):

  • runtime/ProxyConstructor.cpp: Added.

(JSC::ProxyConstructor::create):
(JSC::ProxyConstructor::ProxyConstructor):
(JSC::ProxyConstructor::finishCreation):
(JSC::constructProxyObject):
(JSC::ProxyConstructor::getConstructData):
(JSC::ProxyConstructor::getCallData):

  • runtime/ProxyConstructor.h: Added.

(JSC::ProxyConstructor::createStructure):

  • runtime/ProxyObject.cpp: Added.

(JSC::ProxyObject::ProxyObject):
(JSC::ProxyObject::finishCreation):
(JSC::performProxyGet):
(JSC::ProxyObject::getOwnPropertySlotCommon):
(JSC::ProxyObject::getOwnPropertySlot):
(JSC::ProxyObject::getOwnPropertySlotByIndex):
(JSC::ProxyObject::visitChildren):

  • runtime/ProxyObject.h: Added.

(JSC::ProxyObject::create):
(JSC::ProxyObject::createStructure):
(JSC::ProxyObject::target):
(JSC::ProxyObject::handler):

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectGet):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::StackFrame::nameFromCallee):

  • tests/es6.yaml:
  • tests/stress/proxy-basic.js: Added.

(assert):
(let.handler.get null):
(get let):
(let.handler.get switch):
(let.handler):
(let.theTarget.get x):

  • tests/stress/proxy-in-proto-chain.js: Added.

(assert):

  • tests/stress/proxy-of-a-proxy.js: Added.

(assert):
(throw.new.Error.):

  • tests/stress/proxy-property-descriptor.js: Added.

(assert):
(set Object):

  • wasm/WASMModuleParser.cpp:

(JSC::WASMModuleParser::getImportedValue):

Source/WebCore:

Tests are in JavaScriptCore.

  • bindings/js/JSCryptoAlgorithmDictionary.cpp:

(WebCore::getProperty):
(WebCore::getHashAlgorithm):

  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::getJSArrayFromJSON):
(WebCore::getStringFromJSON):
(WebCore::getBooleanFromJSON):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::DialogHandler::returnValue):

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::tryGetProperty):

  • bindings/js/JSStorageCustom.cpp:

(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::deletePropertyByIndex):
(WebCore::JSStorage::putDelegate):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::getProperty):

  • testing/Internals.cpp:

(WebCore::Internals::isReadableStreamDisturbed):

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

StringPrototype functions should check for exceptions after calling JSString::value().
https://bugs.webkit.org/show_bug.cgi?id=154340

Reviewed by Filip Pizlo.

JSString::value() can throw an exception if the JS string is a rope and value()
needs to resolve the rope but encounters an OutOfMemory error. If value() is not
able to resolve the rope, it will return a null string (in addition to throwing
the exception). If StringPrototype functions do not check for exceptions after
calling JSString::value(), they may eventually use the returned null string and
crash the VM.

The fix is to add all the necessary exception checks, and do the appropriate
handling if needed.

Also in a few place where when an exception is detected, we return JSValue(), I
changed it to return jsUndefined() instead to be consistent with the rest of the
file.

  • runtime/StringPrototype.cpp:

(JSC::replaceUsingRegExpSearch):
(JSC::stringProtoFuncMatch):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSplit):
(JSC::stringProtoFuncLocaleCompare):
(JSC::stringProtoFuncBig):
(JSC::stringProtoFuncSmall):
(JSC::stringProtoFuncBlink):
(JSC::stringProtoFuncBold):
(JSC::stringProtoFuncFixed):
(JSC::stringProtoFuncItalics):
(JSC::stringProtoFuncStrike):
(JSC::stringProtoFuncSub):
(JSC::stringProtoFuncSup):
(JSC::stringProtoFuncFontcolor):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncAnchor):
(JSC::stringProtoFuncLink):
(JSC::trimString):

1:46 PM Changeset in webkit [196720] by andersca@apple.com
  • 9 edits in trunk/Source/WebKit2

Need listener-based version of runBeforeUnloadConfirmPanel
https://bugs.webkit.org/show_bug.cgi?id=154354
rdar://problem/23736691

Reviewed by Sam Weinig.

  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::runBeforeUnloadConfirmPanel):

  • UIProcess/API/C/WKPage.cpp:

(fixUpBotchedPageUIClient):
(WebKit::RunBeforeUnloadConfirmPanelResultListener::create):
(WebKit::RunBeforeUnloadConfirmPanelResultListener::~RunBeforeUnloadConfirmPanelResultListener):
(WebKit::RunBeforeUnloadConfirmPanelResultListener::call):
(WKPageRunBeforeUnloadConfirmPanelResultListenerGetTypeID):
(WKPageRunBeforeUnloadConfirmPanelResultListenerCall):
(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
1:44 PM Changeset in webkit [196719] by Simon Fraser
  • 5 edits in trunk/LayoutTests

Add tests for iframe and overflow scrollability after navigating back
https://bugs.webkit.org/show_bug.cgi?id=154300

Fix the tests added in r196665 to be agnostic about how many pixels a wheel event scrolls.

  • fast/scrolling/iframe-scrollable-after-back-expected.txt:
  • fast/scrolling/iframe-scrollable-after-back.html:
  • fast/scrolling/overflow-scrollable-after-back-expected.txt:
  • fast/scrolling/overflow-scrollable-after-back.html:
1:33 PM Changeset in webkit [196718] by commit-queue@webkit.org
  • 1 edit
    3 adds in trunk/LayoutTests

[ES6] Arrow function. Arrow function should raise exception ReferenceError only when access to 'arguments' on top level
https://bugs.webkit.org/show_bug.cgi?id=152570

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2016-02-17
Reviewed by Saam Barati.

Add tests to ensure that arrrow function return error when it binds arguments on top level

  • js/arrowfunction-lexical-bind-arguments-top-level-expected.txt: Added.
  • js/arrowfunction-lexical-bind-arguments-top-level.html: Added.
  • js/script-tests/arrowfunction-lexical-bind-arguments-top-level.js: Added.
1:27 PM Changeset in webkit [196717] by Simon Fraser
  • 11 edits in trunk/Source

PDFPlugin's scrollableArea container is not properly unregistered when page is going into the PageCache
https://bugs.webkit.org/show_bug.cgi?id=148182

Reviewed by Brent Fulgham.
Source/WebCore:

When handling Command-arrow key while showing a scrollable PDF, the timing of PDFPlugin
teardown and navigation could result in PDFPlugin::destroy() getting the wrong FrameView,
so the old FrameView was left with a stale pointer in its scrollableAreaSet.

Fix this by adding an explicit willDetatchRenderer() which is called on the plugin
before the Frame gets a new FrameView.

Also narrow the scope of the RefPtr<Widget> in HTMLPlugInElement::defaultEventHandler()
so that the Widget is not kept alive over a possible navigation.

I was unable to make an automated test, because reproducing the bug requires handling
a Command-arrow key event in a way that the last ref to a Widget is held over the event
handling, and this wasn't possible in an iframe.

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::defaultEventHandler):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::willDetachRenderers):

  • plugins/PluginViewBase.h:

(WebCore::PluginViewBase::willDetatchRenderer):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::detachRenderTree): Drive-by nullptr.

Source/WebKit2:

When handling Command-arrow key while showing a scrollable PDF, the timing of PDFPlugin
teardown and navigation could result in PDFPlugin::destroy() getting the wrong FrameView,
so the old FrameView was left with a stale pointer in its scrollableAreaSet.

Fix this by adding an explicit willDetatchRenderer() which is called on the plugin
before the Frame gets a new FrameView.

Also narrow the scope of the RefPtr<Widget> in HTMLPlugInElement::defaultEventHandler()
so that the Widget is not kept alive over a possible navigation.

I was unable to make an automated test, because reproducing the bug requires handling
a Command-arrow key event in a way that the last ref to a Widget is held over the event
handling, and this wasn't possible in an iframe.

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::willDetatchRenderer):

  • WebProcess/Plugins/Plugin.h:

(WebKit::Plugin::willDetatchRenderer):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::willDetatchRenderer):

  • WebProcess/Plugins/PluginView.h:
1:17 PM Changeset in webkit [196716] by weinig@apple.com
  • 4 edits in trunk

Add an ensure function on HashMap that takes a key and a function to make the lazy value initialization idiom easier
https://bugs.webkit.org/show_bug.cgi?id=134857

Reviewed by Geoffrey Garen.

Source/WTF:

The current idiom for adding a value to a HashMap if the key is not already present, to allow for not
unnecessarily constructing the new value if it won't be used, is:

{

auto result = map.add(key, Value());
if (!result.isNewEntry)

return result.iterator->value;

result.iterator->value = createNewValue();
return result.iterator->value;

}

or sometimes

{

auto& value = map.add(key, Value()).iterator->value;
if (!value)

value = createNewValue();

return value;

}

With this patch, you can now use the new function HashMap::ensure(key, functor). This will allow us to
change to using the following idiom:

{

return map.ensure(key, [] { return createNewValue(); });

}

The passed in functor will only be called if the key is not already present in the HashMap.

  • wtf/HashMap.h:

(WTF::HashMapTranslator::translate):
(WTF::HashMapEnsureTranslator::hash):
(WTF::HashMapEnsureTranslator::equal):
(WTF::HashMapEnsureTranslator::translate):
(WTF::HashMapTranslatorAdapter::hash):

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

Add tests for HashMap::ensure.

12:42 PM Changeset in webkit [196715] by beidson@apple.com
  • 10 edits in trunk/Source

Modern IDB: Encoder/Decoder/Messaging scaffolding for WK2 IPC.
https://bugs.webkit.org/show_bug.cgi?id=154351

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.

Source/WebCore:

  • Modules/indexeddb/IDBDatabaseIdentifier.h:

(WebCore::IDBDatabaseIdentifier::encode):
(WebCore::IDBDatabaseIdentifier::decode):

  • Modules/indexeddb/shared/IDBCursorInfo.h:

(WebCore::IDBCursorInfo::encode):
(WebCore::IDBCursorInfo::decode):

  • Modules/indexeddb/shared/IDBIndexInfo.h:

(WebCore::IDBIndexInfo::encode):
(WebCore::IDBIndexInfo::decode):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

(WebCore::IDBObjectStoreInfo::encode):
(WebCore::IDBObjectStoreInfo::decode):

  • Modules/indexeddb/shared/IDBRequestData.h:

(WebCore::IDBRequestData::encode):
(WebCore::IDBRequestData::decode):

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

(WebCore::IDBResourceIdentifier::encode):
(WebCore::IDBResourceIdentifier::decode):

  • Modules/indexeddb/shared/IDBTransactionInfo.h:

(WebCore::IDBTransactionInfo::encode):
(WebCore::IDBTransactionInfo::decode):

Source/WebKit2:

Implement in all of the client->server message sends, requiring many Encoder/Decoders for
IDB objects to also be implemented:

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::createObjectStore):
(WebKit::WebIDBConnectionToServer::deleteObjectStore):
(WebKit::WebIDBConnectionToServer::clearObjectStore):
(WebKit::WebIDBConnectionToServer::createIndex):
(WebKit::WebIDBConnectionToServer::deleteIndex):
(WebKit::WebIDBConnectionToServer::putOrAdd):
(WebKit::WebIDBConnectionToServer::getRecord):
(WebKit::WebIDBConnectionToServer::getCount):
(WebKit::WebIDBConnectionToServer::deleteRecord):
(WebKit::WebIDBConnectionToServer::openCursor):
(WebKit::WebIDBConnectionToServer::iterateCursor):
(WebKit::WebIDBConnectionToServer::establishTransaction):
(WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
(WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):

12:40 PM Changeset in webkit [196714] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit/ios

[iOS WK1] NSTimer in WebGeolocationProviderIOS.mm fires on the main thread without the WebThreadLock
<http://webkit.org/b/154347>
<rdar://problem/19360382>

Reviewed by Andy Estes.

This isn't testable because the GeolocationClientMock in WebCore
bypasses this code in WebKit1.

  • Misc/WebGeolocationProviderIOS.mm:

(-[WebGeolocationProviderIOS _handlePendingInitialPosition:]):
Assert that this is always called on the WebThread.
(-[WebGeolocationProviderIOS registerWebView:]): Register the
NSTimer on the WebThread NSRunLoop.

12:29 PM Changeset in webkit [196713] by Matt Baker
  • 23 edits in trunk/Source/WebInspectorUI

Web Inspector: add CSS variables for common border/background colors
https://bugs.webkit.org/show_bug.cgi?id=154302
<rdar://problem/24680944>

Reviewed by Timothy Hatcher.

Added CSS variables for commonly used border and background colors, and removed
duplicate CSS variables with less generic names. Inactive border colors declared in
rules with a body.window-inactive selector have been removed. A new rule using this
selector in Variables.css sets "--border-color" to the inactive color.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
(.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-has-label)):

  • UserInterface/Views/DataGrid.css:

(.data-grid.inline):
(.data-grid th):
(.data-grid :matches(th, td):not(:last-child)):
(body.window-inactive .data-grid th): Deleted.
(body.window-inactive .data-grid :matches(th, td):not(:last-child)): Deleted.

  • UserInterface/Views/DebuggerSidebarPanel.css:

(.sidebar > .panel.navigation.debugger.paused .details-section.scripts):

  • UserInterface/Views/DetailsSection.css:

(.details-section):
(.details-section .details-section:first-child):
(.details-section > .header):
(.details-section > .content > .group):
(.details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child)):

  • UserInterface/Views/FilterBar.css:

(.filter-bar):

  • UserInterface/Views/FindBanner.css:

(.find-banner):
(body.window-inactive .find-banner): Deleted.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.css:

(.panel.details.layer-tree .bottom-bar):

  • UserInterface/Views/Main.css:

(body.docked.bottom):
(body.docked.right):
(#split-content-browser):
(#split-content-browser > .navigation-bar):
(body.window-inactive.docked.bottom): Deleted.
(body.window-inactive.docked.right): Deleted.
(body.window-inactive #split-content-browser): Deleted.

  • UserInterface/Views/MemoryCategoryView.css:

(.memory-category-view):
(.memory-category-view > .details):
(body.window-inactive .memory-category-view): Deleted.
(body.window-inactive .memory-category-view > .details): Deleted.

  • UserInterface/Views/MemoryTimelineView.css:

(.timeline-view.memory):
(.timeline-view.memory > .content > .overview):
(.timeline-view.memory > .content > .details > .subtitle):
(.timeline-view.memory > .content > .overview > .divider):
(body.window-inactive .timeline-view.memory): Deleted.
(body.window-inactive .timeline-view.memory > .content > .overview): Deleted.
(body.window-inactive .timeline-view.memory > .content > .details > .subtitle): Deleted.
(body.window-inactive .timeline-view.memory > .content > .overview > .divider): Deleted.

  • UserInterface/Views/NavigationBar.css:

(.navigation-bar):
(body.window-inactive .navigation-bar): Deleted.

  • UserInterface/Views/NavigationSidebarPanel.css:

(.sidebar > .panel.navigation > .overflow-shadow):
(body.window-inactive .sidebar > .panel.navigation > .overflow-shadow): Deleted.

  • UserInterface/Views/NetworkSidebarPanel.css:

(.sidebar > .panel.navigation.network > .title-bar):
(body.window-inactive .sidebar > .panel.navigation.network > .title-bar): Deleted.

  • UserInterface/Views/OverviewTimelineView.css:

(.timeline-view.overview > .timeline-ruler > .header):
(body.window-inactive .timeline-view.overview > .timeline-ruler > .header): Deleted.

  • UserInterface/Views/QuickConsole.css:

(.quick-console):
(body.window-inactive .quick-console): Deleted.

  • UserInterface/Views/Sidebar.css:

(.sidebar):
(.sidebar.left):
(.sidebar.right):
(body.window-inactive .sidebar.left): Deleted.
(body.window-inactive .sidebar.right): Deleted.

  • UserInterface/Views/TimelineDataGrid.css:

(.data-grid.timeline th):
(body.window-inactive .data-grid.timeline th): Deleted.

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .header):
(body.window-inactive .timeline-ruler > .header): Deleted.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .title-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar): Deleted.
(body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted.

  • UserInterface/Views/Toolbar.css:

(body.latest-mac .toolbar .dashboard-container):

  • UserInterface/Views/Variables.css:

(:root):
(body.window-inactive *):

  • UserInterface/Views/VisualStyleSelectorSection.css:

(.details-section.visual-style-selector-section:not(.collapsed) > .header):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):

12:27 PM Changeset in webkit [196712] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Purge GraphicsServices font cache on memory warning.
<https://webkit.org/b/154343>

Reviewed by Antti Koivisto.

The GS font cache was holding on to the last retain on CSS fonts after they stop being used.
Call SPI to purge it on memory pressure.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):

  • platform/spi/ios/GraphicsServicesSPI.h:
12:22 PM Changeset in webkit [196711] by beidson@apple.com
  • 2 edits in trunk/Source

Revert accidentally committed ChangeLogs

12:19 PM Changeset in webkit [196710] by Chris Dumez
  • 3 edits
    18 adds in trunk/LayoutTests

Import W3C HTML reflection tests
https://bugs.webkit.org/show_bug.cgi?id=154310
<rdar://problem/24685826>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Import W3C HTML reflection tests from:
https://github.com/w3c/web-platform-tests/tree/master/html/dom

This improves our test coverage.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-embedded.html: Added.
  • web-platform-tests/html/dom/reflection-forms-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-forms.html: Added.
  • web-platform-tests/html/dom/reflection-grouping-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-grouping.html: Added.
  • web-platform-tests/html/dom/reflection-metadata-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-metadata.html: Added.
  • web-platform-tests/html/dom/reflection-misc-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-misc.html: Added.
  • web-platform-tests/html/dom/reflection-obsolete-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-obsolete.html: Added.
  • web-platform-tests/html/dom/reflection-sections-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-sections.html: Added.
  • web-platform-tests/html/dom/reflection-tabular-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-tabular.html: Added.
  • web-platform-tests/html/dom/reflection-text-expected.txt: Added.
  • web-platform-tests/html/dom/reflection-text.html: Added.

LayoutTests:

Skip newly imported tests in Debug builds because they are slow.

12:19 PM Changeset in webkit [196709] by beidson@apple.com
  • 2 edits in trunk/Source

Modern IDB: More WK2 IPC Scaffolding.
https://bugs.webkit.org/show_bug.cgi?id=154317

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.

Source/WebCore:

  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::IDBCursorInfo):

  • Modules/indexeddb/shared/IDBCursorInfo.h:

(WebCore::IDBCursorInfo::decode):

  • Modules/indexeddb/shared/IDBError.h:

(WebCore::IDBError::decode):

  • Modules/indexeddb/shared/IDBIndexInfo.h:

(WebCore::IDBIndexInfo::decode):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

(WebCore::IDBObjectStoreInfo::decode):

  • Modules/indexeddb/shared/IDBRequestData.cpp:

(WebCore::IDBRequestData::IDBRequestData):

  • Modules/indexeddb/shared/IDBRequestData.h:

(WebCore::IDBRequestData::decode):

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

(WebCore::IDBResourceIdentifier::decode):

  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::IDBResultData):

  • Modules/indexeddb/shared/IDBResultData.h:

(WebCore::IDBResultData::decode):

  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:

(WebCore::IDBTransactionInfo::IDBTransactionInfo):

  • Modules/indexeddb/shared/IDBTransactionInfo.h:

(WebCore::IDBTransactionInfo::decode):

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebKit2.xcodeproj/project.pbxproj:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::deleteDatabase):
(WebKit::WebIDBConnectionToClient::openDatabase):
(WebKit::WebIDBConnectionToClient::abortTransaction):
(WebKit::WebIDBConnectionToClient::commitTransaction):
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToClient::createObjectStore):
(WebKit::WebIDBConnectionToClient::deleteObjectStore):
(WebKit::WebIDBConnectionToClient::clearObjectStore):
(WebKit::WebIDBConnectionToClient::createIndex):
(WebKit::WebIDBConnectionToClient::deleteIndex):
(WebKit::WebIDBConnectionToClient::putOrAdd):
(WebKit::WebIDBConnectionToClient::getRecord):
(WebKit::WebIDBConnectionToClient::getCount):
(WebKit::WebIDBConnectionToClient::deleteRecord):
(WebKit::WebIDBConnectionToClient::openCursor):
(WebKit::WebIDBConnectionToClient::iterateCursor):
(WebKit::WebIDBConnectionToClient::establishTransaction):
(WebKit::WebIDBConnectionToClient::databaseConnectionClosed):
(WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in: Added.
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::didDeleteDatabase):
(WebKit::WebIDBConnectionToServer::didOpenDatabase):
(WebKit::WebIDBConnectionToServer::didAbortTransaction):
(WebKit::WebIDBConnectionToServer::didCommitTransaction):
(WebKit::WebIDBConnectionToServer::didCreateObjectStore):
(WebKit::WebIDBConnectionToServer::didDeleteObjectStore):
(WebKit::WebIDBConnectionToServer::didClearObjectStore):
(WebKit::WebIDBConnectionToServer::didCreateIndex):
(WebKit::WebIDBConnectionToServer::didDeleteIndex):
(WebKit::WebIDBConnectionToServer::didPutOrAdd):
(WebKit::WebIDBConnectionToServer::didGetRecord):
(WebKit::WebIDBConnectionToServer::didGetCount):
(WebKit::WebIDBConnectionToServer::didDeleteRecord):
(WebKit::WebIDBConnectionToServer::didOpenCursor):
(WebKit::WebIDBConnectionToServer::didIterateCursor):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in: Added.
12:18 PM Changeset in webkit [196708] by rniwa@webkit.org
  • 4 edits
    1 add in trunk/Websites/perf.webkit.org

v3 UI has the capability to schedule an A/B testing in a specific range
https://bugs.webkit.org/show_bug.cgi?id=154329

Reviewed by Chris Dumez.

Extended AnalysisTaskChartPane and ResultsTable so that users can select a range of points in either
the overview chart pane and the results viewer table. Extracted TestGroupForm out of the analysis task
page and used right below those two components in the analysis task page.

  • public/v3/components/results-table.js:

(ResultsTable):
(ResultsTable.prototype.setRangeSelectorLabels): Added.
(ResultsTable.prototype.setRangeSelectorCallback): Added.
(ResultsTable.prototype.selectedRange): Added.
(ResultsTable.prototype._rangeSelectorClicked): Added.
(ResultsTable.prototype.render): Generate radio boxes to select a range.

  • public/v3/components/test-group-form.js:

(TestGroupForm):
(TestGroupForm.prototype.setStartCallback): Added.
(TestGroupForm.prototype.setNeedsName): Added.
(TestGroupForm.prototype.setDisabled): Added.
(TestGroupForm.prototype.setLabel): Added.
(TestGroupForm.prototype.setRepetitionCount): Added.
(TestGroupForm.prototype._submitted): Added.
(TestGroupForm.htmlTemplate): Extracted from AnalysisTaskPage.htmlTemplate.

  • public/v3/index.html:
  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskChartPane.prototype._mainSelectionDidChange): Added. Delegates the work to AnalysisTaskPage.
(AnalysisTaskChartPane.prototype.selectedPoints): Added.
(AnalysisTaskPage):
(AnalysisTaskPage.prototype.title):
(AnalysisTaskPage.prototype.render):
(AnalysisTaskPage.prototype._renderTestGroupDetails): Use TestGroupForm's methods instead of mutating DOM.
(AnalysisTaskPage.prototype._retryCurrentTestGroup):
(AnalysisTaskPage.prototype._chartSelectionDidChange): Added.
(AnalysisTaskPage.prototype._createNewTestGroupFromChart): Added.
(AnalysisTaskPage.prototype._selectedRowInAnalysisResultsViewer): Added.
(AnalysisTaskPage.prototype._createNewTestGroupFromViewer): Added.
(AnalysisTaskPage.prototype._createRetryNameForTestGroup):
(AnalysisTaskPage.prototype._createTestGroupAfterVerifyingRootSetList): Extracted from _retryCurrentTestGroup
so that we can call it in _createNewTestGroupFromChart and _createNewTestGroupFromViewer.
(AnalysisTaskPage.htmlTemplate):

12:11 PM Changeset in webkit [196707] by achristensen@apple.com
  • 4 edits
    2 copies in trunk

Copy http body when being redirected with 308 with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=154348

Reviewed by Brady Eidson.
Source/WebKit2:


This fixes http/tests/security/cors-post-redirect-308.html
which used to assert in ResourceRequest::doUpdateResourceHTTPBody

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::willPerformHTTPRedirection):

LayoutTests:

  • http/tests/navigation/post-308-response-expected.txt: Copied from LayoutTests/http/tests/navigation/post-307-response-expected.txt.
  • http/tests/navigation/post-308-response.html: Copied from LayoutTests/http/tests/navigation/post-307-response.html.
  • http/tests/navigation/resources/redirection-response.php:

Added a test verifying data is being sent with post requests after being redirected with an http status code of 308.
We already had non-CORS tests for 301, 302, 303, and 307, and we already had CORS tests for 301, 302, 303, 307, and 308.
This fills in the missing non-CORS test.

11:31 AM Changeset in webkit [196706] by Chris Dumez
  • 8 edits
    2 adds in trunk

Regression(r196648): window.showModalDialog is no longer undefined if the client does not allow showing modal dialog
https://bugs.webkit.org/show_bug.cgi?id=154330

Reviewed by Gavin Barraclough.

Source/WebCore:

window.showModalDialog is no longer undefined if the client does not
allow showing modal dialog after r196648. This patch fixes the issue
and add test coverage for this.

Test: fast/dom/Window/forbid-showModalDialog.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):

  • Move the DOMWindow::canShowModalDialog() check *before* checking for static properties as showModalDialog is now in the static property table after r196648.
  • Add check for Base::getOwnPropertySlot() first to support overriding window.showModalDialog (This behavior matches Firefox).
  • Return false if DOMWindow::canShowModalDialog() returns false as this seems cleaner than claiming that the property is there but undefined.
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::canShowModalDialogNow): Deleted.
This was indentical to canShowModalDialog().

(WebCore::DOMWindow::canShowModalDialog):
(WebCore::DOMWindow::setCanShowModalDialogOverride):
(WebCore::DOMWindow::showModalDialog):

  • page/DOMWindow.h:
  • testing/Internals.cpp:

(WebCore::Internals::setCanShowModalDialogOverride):

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

Add support for overriding the ChromeClient's canShowModalDialog
decision and hook it up to Internals to add layout test coverage.

LayoutTests:

Add layout test to make sure that window.showModalDialog is undefined
when the client does not allow showing modal dialog and to check that
window.showModalDialog can be shadowed.

  • fast/dom/Window/forbid-showModalDialog-expected.txt: Added.
  • fast/dom/Window/forbid-showModalDialog.html: Added.
11:21 AM Changeset in webkit [196705] by beidson@apple.com
  • 23 edits
    2 adds in trunk/Source

Modern IDB: More WK2 IPC Scaffolding.
https://bugs.webkit.org/show_bug.cgi?id=154317

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.

Source/WebCore:

  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::IDBCursorInfo):

  • Modules/indexeddb/shared/IDBCursorInfo.h:

(WebCore::IDBCursorInfo::decode):

  • Modules/indexeddb/shared/IDBError.h:

(WebCore::IDBError::decode):

  • Modules/indexeddb/shared/IDBIndexInfo.h:

(WebCore::IDBIndexInfo::decode):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

(WebCore::IDBObjectStoreInfo::decode):

  • Modules/indexeddb/shared/IDBRequestData.cpp:

(WebCore::IDBRequestData::IDBRequestData):

  • Modules/indexeddb/shared/IDBRequestData.h:

(WebCore::IDBRequestData::decode):

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

(WebCore::IDBResourceIdentifier::decode):

  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::IDBResultData):

  • Modules/indexeddb/shared/IDBResultData.h:

(WebCore::IDBResultData::decode):

  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:

(WebCore::IDBTransactionInfo::IDBTransactionInfo):

  • Modules/indexeddb/shared/IDBTransactionInfo.h:

(WebCore::IDBTransactionInfo::decode):

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebKit2.xcodeproj/project.pbxproj:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::deleteDatabase):
(WebKit::WebIDBConnectionToClient::openDatabase):
(WebKit::WebIDBConnectionToClient::abortTransaction):
(WebKit::WebIDBConnectionToClient::commitTransaction):
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToClient::createObjectStore):
(WebKit::WebIDBConnectionToClient::deleteObjectStore):
(WebKit::WebIDBConnectionToClient::clearObjectStore):
(WebKit::WebIDBConnectionToClient::createIndex):
(WebKit::WebIDBConnectionToClient::deleteIndex):
(WebKit::WebIDBConnectionToClient::putOrAdd):
(WebKit::WebIDBConnectionToClient::getRecord):
(WebKit::WebIDBConnectionToClient::getCount):
(WebKit::WebIDBConnectionToClient::deleteRecord):
(WebKit::WebIDBConnectionToClient::openCursor):
(WebKit::WebIDBConnectionToClient::iterateCursor):
(WebKit::WebIDBConnectionToClient::establishTransaction):
(WebKit::WebIDBConnectionToClient::databaseConnectionClosed):
(WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in: Added.
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::didDeleteDatabase):
(WebKit::WebIDBConnectionToServer::didOpenDatabase):
(WebKit::WebIDBConnectionToServer::didAbortTransaction):
(WebKit::WebIDBConnectionToServer::didCommitTransaction):
(WebKit::WebIDBConnectionToServer::didCreateObjectStore):
(WebKit::WebIDBConnectionToServer::didDeleteObjectStore):
(WebKit::WebIDBConnectionToServer::didClearObjectStore):
(WebKit::WebIDBConnectionToServer::didCreateIndex):
(WebKit::WebIDBConnectionToServer::didDeleteIndex):
(WebKit::WebIDBConnectionToServer::didPutOrAdd):
(WebKit::WebIDBConnectionToServer::didGetRecord):
(WebKit::WebIDBConnectionToServer::didGetCount):
(WebKit::WebIDBConnectionToServer::didDeleteRecord):
(WebKit::WebIDBConnectionToServer::didOpenCursor):
(WebKit::WebIDBConnectionToServer::didIterateCursor):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in: Added.
11:18 AM Changeset in webkit [196704] by commit-queue@webkit.org
  • 12 edits
    1 delete in trunk

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

"Causes major slowdowns on deltablue-varargs" (Requested by

keith_miller on #webkit).

Reverted changeset:

"Spread operator should be allowed when not the first argument
of parameter list"
https://bugs.webkit.org/show_bug.cgi?id=152721
http://trac.webkit.org/changeset/196675

11:17 AM Changeset in webkit [196703] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Allow ports to disable automatic text track selection
https://bugs.webkit.org/show_bug.cgi?id=154322
<rdar://problem/24623986>

Reviewed by Brent Fulgham.

  • page/CaptionUserPreferencesMediaAF.cpp:

(MTEnableCaption2015BehaviorPtr): Implement for Windows.

11:04 AM Changeset in webkit [196702] by barraclough@apple.com
  • 4 edits in trunk/Source

JSDOMWindow::put should not do the same thing twice
https://bugs.webkit.org/show_bug.cgi?id=154334

Reviewed by Chris Dumez.

It either calls JSGlobalObject::put or Base::put. Hint: these are basically the same thing.
In the latter case it might call lookupPut. That's redundant; JSObject::put handles static
table entries.

Source/JavaScriptCore:

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::hasOwnPropertyForWrite): Deleted.

  • no longer needed.

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):

  • just call Base::put.

(WebCore::JSDOMWindow::putByIndex):

  • just call Base::putByIndex.
11:03 AM Changeset in webkit [196701] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

CMake build fix after r196698.

  • PlatformMac.cmake:
10:50 AM Changeset in webkit [196700] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

CMake build fix after r196698.

  • CMakeLists.txt:
10:16 AM Changeset in webkit [196699] by n_wang@apple.com
  • 19 edits
    2 adds in trunk

AX: Implement sentence related text marker functions using TextIterator
https://bugs.webkit.org/show_bug.cgi?id=154312

Reviewed by Chris Fleizach.

Source/WebCore:

Using CharacterOffset to implement sentence related text marker calls. Reused
logic from VisibleUnits class. Also fixed an issue where paragraph navigation
should skip preceding and following BR nodes.

Test: accessibility/mac/text-marker-sentence-nav.html

  • accessibility/AXObjectCache.cpp:

(WebCore::resetNodeAndOffsetForReplacedNode):
(WebCore::setRangeStartOrEndWithCharacterOffset):
(WebCore::AXObjectCache::characterOffsetForNodeAndOffset):
(WebCore::AXObjectCache::previousCharacterOffset):
(WebCore::AXObjectCache::startCharacterOffsetOfWord):
(WebCore::AXObjectCache::endCharacterOffsetOfWord):
(WebCore::AXObjectCache::previousWordStartCharacterOffset):
(WebCore::AXObjectCache::leftWordRange):
(WebCore::AXObjectCache::rightWordRange):
(WebCore::AXObjectCache::characterBefore):
(WebCore::characterOffsetNodeIsBR):
(WebCore::parentEditingBoundary):
(WebCore::AXObjectCache::nextBoundary):
(WebCore::AXObjectCache::previousBoundary):
(WebCore::AXObjectCache::paragraphForCharacterOffset):
(WebCore::AXObjectCache::nextParagraphEndCharacterOffset):
(WebCore::AXObjectCache::previousParagraphStartCharacterOffset):
(WebCore::AXObjectCache::startCharacterOffsetOfSentence):
(WebCore::AXObjectCache::endCharacterOffsetOfSentence):
(WebCore::AXObjectCache::sentenceForCharacterOffset):
(WebCore::AXObjectCache::nextSentenceEndCharacterOffset):
(WebCore::AXObjectCache::previousSentenceStartCharacterOffset):
(WebCore::AXObjectCache::rootAXEditableElement):
(WebCore::startWordBoundary): Deleted.
(WebCore::endWordBoundary): Deleted.
(WebCore::AXObjectCache::nextWordBoundary): Deleted.
(WebCore::AXObjectCache::previousWordBoundary): Deleted.

  • accessibility/AXObjectCache.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

  • editing/VisibleUnits.cpp:

(WebCore::startWordBoundary):
(WebCore::startOfWord):
(WebCore::endWordBoundary):
(WebCore::startSentenceBoundary):
(WebCore::startOfSentence):
(WebCore::endSentenceBoundary):

  • editing/VisibleUnits.h:

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(nextParagraphEndTextMarkerForTextMarkerCallback):
(sentenceTextMarkerRangeForTextMarkerCallback):
(previousSentenceStartTextMarkerForTextMarkerCallback):
(nextSentenceEndTextMarkerForTextMarkerCallback):
(setSelectedVisibleTextRangeCallback):
(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(AccessibilityUIElement::sentenceTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousSentenceStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextSentenceEndTextMarkerForTextMarker):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(AccessibilityUIElement::sentenceTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousSentenceStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextSentenceEndTextMarkerForTextMarker):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(AccessibilityUIElement::sentenceTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousSentenceStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextSentenceEndTextMarkerForTextMarker):
(AccessibilityUIElement::supportedActions):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::sentenceTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::nextSentenceEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::previousSentenceStartTextMarkerForTextMarker):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::sentenceTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::nextSentenceEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::previousSentenceStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::mathPostscriptsDescription):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::sentenceTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::previousSentenceStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::nextSentenceEndTextMarkerForTextMarker):
(WTR::_convertMathMultiscriptPairsToString):

LayoutTests:

  • accessibility/mac/text-marker-paragraph-nav-expected.txt:
  • accessibility/mac/text-marker-paragraph-nav.html:
  • accessibility/mac/text-marker-sentence-nav-expected.txt: Added.
  • accessibility/mac/text-marker-sentence-nav.html: Added.
10:15 AM Changeset in webkit [196698] by andersca@apple.com
  • 9 edits
    8 deletes in trunk/Source/WebKit2

Remove unused media cache manager code
https://bugs.webkit.org/show_bug.cgi?id=154339

Reviewed by Tim Horton.

  • DerivedSources.make:
  • Shared/API/c/WKBase.h:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextGetMediaCacheManager): Deleted.

  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/C/WKMediaCacheManager.cpp: Removed.

(WKMediaCacheManagerGetTypeID): Deleted.
(WKMediaCacheManagerGetHostnamesWithMediaCache): Deleted.
(WKMediaCacheManagerClearCacheForHostname): Deleted.
(WKMediaCacheManagerClearCacheForAllHostnames): Deleted.

  • UIProcess/API/C/WKMediaCacheManager.h: Removed.
  • UIProcess/WebMediaCacheManagerProxy.cpp: Removed.

(WebKit::WebMediaCacheManagerProxy::supplementName): Deleted.
(WebKit::WebMediaCacheManagerProxy::create): Deleted.
(WebKit::WebMediaCacheManagerProxy::WebMediaCacheManagerProxy): Deleted.
(WebKit::WebMediaCacheManagerProxy::~WebMediaCacheManagerProxy): Deleted.
(WebKit::WebMediaCacheManagerProxy::processPoolDestroyed): Deleted.
(WebKit::WebMediaCacheManagerProxy::processDidClose): Deleted.
(WebKit::WebMediaCacheManagerProxy::shouldTerminate): Deleted.
(WebKit::WebMediaCacheManagerProxy::refWebContextSupplement): Deleted.
(WebKit::WebMediaCacheManagerProxy::derefWebContextSupplement): Deleted.
(WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache): Deleted.
(WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache): Deleted.
(WebKit::WebMediaCacheManagerProxy::clearCacheForHostname): Deleted.
(WebKit::WebMediaCacheManagerProxy::clearCacheForAllHostnames): Deleted.

  • UIProcess/WebMediaCacheManagerProxy.h: Removed.
  • UIProcess/WebMediaCacheManagerProxy.messages.in: Removed.
  • UIProcess/WebProcessPool.cpp:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/MediaCache/WebMediaCacheManager.cpp: Removed.

(WebKit::WebMediaCacheManager::supplementName): Deleted.
(WebKit::WebMediaCacheManager::WebMediaCacheManager): Deleted.
(WebKit::WebMediaCacheManager::getHostnamesWithMediaCache): Deleted.
(WebKit::WebMediaCacheManager::clearCacheForHostname): Deleted.
(WebKit::WebMediaCacheManager::clearCacheForAllHostnames): Deleted.

  • WebProcess/MediaCache/WebMediaCacheManager.h: Removed.
  • WebProcess/MediaCache/WebMediaCacheManager.messages.in: Removed.
  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker): Deleted.

9:46 AM Changeset in webkit [196697] by Ryan Haddad
  • 1 edit
    2 adds in trunk/LayoutTests

Adding an ios-specific baseline for accessibility/ios-simulator/centerpoint.html during failure investigation
https://bugs.webkit.org/show_bug.cgi?id=154137

Unreviewed test gardening.

  • platform/ios-simulator/accessibility/ios-simulator/centerpoint-expected.txt: Added.
9:32 AM Changeset in webkit [196696] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
9:25 AM Changeset in webkit [196695] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping tests added with r196688 on ios-simulator due to reliance on unsupported mouse events.

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
9:22 AM WebKitIDL edited by Chris Dumez
Drop [EventTarget] (diff)
8:50 AM Changeset in webkit [196694] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

8:48 AM Changeset in webkit [196693] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.19

New tag.

8:01 AM Changeset in webkit [196692] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Add singular and plural cases for "Ignore n times before stopping" label in breakpoint editor
https://bugs.webkit.org/show_bug.cgi?id=154335
<rdar://problem/24655491>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

Added string for singular ignore count.

  • UserInterface/Controllers/BreakpointPopoverController.js:

(WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
Remove unused variable "this._ignoreCount" and update ignore count text.

(WebInspector.BreakpointPopoverController.prototype._popoverIgnoreInputChanged):
Update ignore count text as value changes.

(WebInspector.BreakpointPopoverController.prototype._updateIgnoreCountText):
Set singular text when count === 1, otherwise set plural text.

3:45 AM Changeset in webkit [196691] by Manuel Rego Casasnovas
  • 8 edits in trunk/Source/WebCore

[css-grid] GridSpan refactoring
https://bugs.webkit.org/show_bug.cgi?id=153868

Reviewed by Sergio Villar Senin.

Add new enum to know if a GridSpan is definite or indefinite.
That way we don't need GridUnresolvedSpan class (which is removed).
We can always have two GridSpans in GridCoordinate,
if the position is "auto" the GridSpan will be marked as indefinite.
This will allow in a follow-up patch to avoid repeated calls
to methods that resolve positions.

Most operations in GridSpan are restricted to definite GridSpans (access
to positions, iterator, etc.). For indefinite GridSpans we only need to
know that they're indefinite, we shouldn't use the rest of the data.

No new tests, no change of behavior.

  • css/CSSGridTemplateAreasValue.cpp:

(WebCore::stringForPosition):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTemplateAreasRow):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::createImplicitNamedGridLinesFromGridArea):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::insertItemIntoGrid):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::gridAreaBreadthForChildIncludingAlignmentOffsets):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Deleted.
(WebCore::RenderGrid::autoPlacementMinorAxisDirection): Deleted.
(WebCore::RenderGrid::populateGridPositions): Deleted.

  • rendering/style/GridCoordinate.h:

(WebCore::GridSpan::definiteGridSpan):
(WebCore::GridSpan::indefiniteGridSpan):
(WebCore::GridSpan::operator==):
(WebCore::GridSpan::integerSpan):
(WebCore::GridSpan::resolvedInitialPosition):
(WebCore::GridSpan::resolvedFinalPosition):
(WebCore::GridSpan::begin):
(WebCore::GridSpan::end):
(WebCore::GridSpan::isDefinite):
(WebCore::GridSpan::GridSpan):
(WebCore::GridCoordinate::GridCoordinate):

  • rendering/style/GridResolvedPosition.cpp:

(WebCore::initialPositionSide):
(WebCore::finalPositionSide):
(WebCore::adjustGridPositionsFromStyle):
(WebCore::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveGridPositionAgainstOppositePosition):
(WebCore::GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition):
(WebCore::GridResolvedPosition::resolveGridPositionsFromStyle):
(WebCore::implicitNamedGridLineForSide): Deleted.
(WebCore::GridResolvedPosition::isNonExistentNamedLineOrArea): Deleted.
(WebCore::resolveNamedGridLinePositionFromStyle): Deleted.
(WebCore::resolveGridPositionFromStyle): Deleted.

  • rendering/style/GridResolvedPosition.h:

(WebCore::GridResolvedPosition::GridResolvedPosition): Deleted.
(WebCore::GridResolvedPosition::operator*): Deleted.
(WebCore::GridResolvedPosition::operator++): Deleted.
(WebCore::GridResolvedPosition::operator==): Deleted.

12:38 AM Changeset in webkit [196690] by Chris Dumez
  • 10 edits in trunk

Window should have its 'constructor' property on the prototype
https://bugs.webkit.org/show_bug.cgi?id=154037
<rdar://problem/24689078>

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Window should have its 'constructor' property on the prototype as per
the Web IDL specification:
http://heycam.github.io/webidl/#interface-prototype-object

Firefox and Chrome already match the specification.

No new tests, covered by:

  • fast/dom/Window/window-constructor-settable.html
  • fast/dom/Window/window-constructor.html
  • http/tests/security/cross-origin-window-property-access.html
  • imported/w3c/web-platform-tests/html/dom/interfaces.html
  • bindings/scripts/CodeGeneratorJS.pm:

(ConstructorShouldBeOnInstance): Deleted.
Drop this routine as all constructors are now on the prototype.

(InstancePropertyCount):
Do not account for constructor properties as these can only be
on the prototype now.

(PrototypePropertyCount):
Increment the property count by 1 if the interface has a constructor
property (e.g. [NoInterfaceObject] interfaces do not have one).

(GeneratePropertiesHashTable):
Stop calling ConstructorShouldBeOnInstance() as it no longer exists.
Always generated the "constructor" property if:

  1. We are generating the prototype hash table.

and

  1. The interface needs a constructor (i.e. not marked as [NoInterfaceObject]).

(GenerateImplementation):

  • Drop code handling the case where ConstructorShouldBeOnInstance() returns true as constructors are not always on the prototype and the ConstructorShouldBeOnInstance() routine has been dropped.
  • Drop code handling [CustomProxyToJSObject]. Now that the constructor is always on the prototype, we never need to cast thisValue to a JSDOMWindow (by calling toJSDOMWindow). In the Window case, thisValue is now casted to a JSDOMWindowPrototype*, similarly to other interfaces so we don't need a special casting function anymore.
  • Stop generating security checks. This only impacts Window as it is the only interface marked as [CheckSecurity]. The cross-origin checking code as it was would not work when "constructor" is on the prototype because thisValue is a JSDOMWindowPrototype, not a JSDOMWindow and we have no way of getting the wrapped window. Also, the security check is no longer needed because:
    1. Accessing crossOriginWindow.constructor will not work now that constructor is on the prototype because JSDOMWindow::getOwnPropertySlot() already prevents access to the prototype in the cross-origin case.
    2. "constructor" is a value property, not a getter/setter. Therefore, it is no possible to use the getter/setter from a same origin window instance and call it on a cross origin window.

LayoutTests:

  • http/tests/security/cross-origin-window-property-access-expected.txt:
  • http/tests/security/cross-origin-window-property-access.html:

Add checks to make sure it still is not possible to access
window.constructor cross-origin.

  • js/getOwnPropertyDescriptor-window-attributes-expected.txt:
  • js/getOwnPropertyDescriptor-window-attributes.html:

Update test now that window has it's "constructor" attribute
on the prototype.

Feb 16, 2016:

11:40 PM WebKitGTK/2.10.x edited by Carlos Garcia Campos
(diff)
11:18 PM Changeset in webkit [196689] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r196620): Web Inspector: Selecting last message in the console makes the scrollbar visible
https://bugs.webkit.org/show_bug.cgi?id=154326
<rdar://problem/24692717>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.css:

(.console-item.selected::after):
Make sure the selected message marker (blue vertical line) doesn't
go over the content view.

11:16 PM Changeset in webkit [196688] by Carlos Garcia Campos
  • 22 edits
    13 adds in trunk

Add a way to test ScrollAnimator
https://bugs.webkit.org/show_bug.cgi?id=153479

Reviewed by Michael Catanzaro.

Source/WebCore:

Tests: fast/scrolling/overlay-scrollbars-scroll-corner.html

fast/scrolling/scroll-animator-basic-events.html
fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html
fast/scrolling/scroll-animator-select-list-events.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/FrameView.cpp:

(WebCore::FrameView::usesMockScrollAnimator):
(WebCore::FrameView::logMockScrollAnimatorMessage):

  • page/FrameView.h:
  • page/Settings.cpp:

(WebCore::Settings::setUsesMockScrollAnimator):
(WebCore::Settings::usesMockScrollAnimator):

  • page/Settings.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollAnimator):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::usesMockScrollAnimator):
(WebCore::ScrollableArea::logMockScrollAnimatorMessage):

  • platform/mock/ScrollAnimatorMock.cpp: Added.

(WebCore::ScrollAnimatorMock::create):
(WebCore::ScrollAnimatorMock::ScrollAnimatorMock):
(WebCore::ScrollAnimatorMock::~ScrollAnimatorMock):
(WebCore::ScrollAnimatorMock::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMock::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMock::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMock::willRemoveHorizontalScrollbar):
(WebCore::ScrollAnimatorMock::mouseEnteredContentArea):
(WebCore::ScrollAnimatorMock::mouseMovedInContentArea):
(WebCore::ScrollAnimatorMock::mouseExitedContentArea):
(WebCore::ScrollAnimatorMock::mouseEnteredScrollbar):
(WebCore::ScrollAnimatorMock::mouseExitedScrollbar):
(WebCore::ScrollAnimatorMock::mouseIsDownInScrollbar):

  • platform/mock/ScrollAnimatorMock.h: Added.
  • platform/mock/ScrollbarThemeMock.cpp:

(WebCore::ScrollbarThemeMock::usesOverlayScrollbars):

  • platform/mock/ScrollbarThemeMock.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::usesMockScrollAnimator):
(WebCore::RenderLayer::logMockScrollAnimatorMessage):

  • rendering/RenderLayer.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::usesMockScrollAnimator):
(WebCore::RenderListBox::logMockScrollAnimatorMessage):

  • rendering/RenderListBox.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUsesMockScrollAnimator):

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

LayoutTests:

  • compositing/overflow/overflow-scrollbar-layer-positions-expected.txt:
  • fast/scrolling/overlay-scrollbars-scroll-corner-expected.html: Added.
  • fast/scrolling/overlay-scrollbars-scroll-corner.html: Added.
  • fast/scrolling/scroll-animator-basic-events-expected.txt: Added.
  • fast/scrolling/scroll-animator-basic-events.html: Added.
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt: Added.
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html: Added.
  • fast/scrolling/scroll-animator-select-list-events-expected.txt: Added.
  • fast/scrolling/scroll-animator-select-list-events.html: Added.
  • fast/scrolling/scrollbar-tickmarks-hittest.html:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt: Added.
  • platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt: Added.
10:54 PM Changeset in webkit [196687] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Enable overlay scrollbars in GTK+ after r196641.

This was blocked by bug #153404, but the commit that introduced
the regression was rolled out in r196641.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):

10:13 PM Changeset in webkit [196686] by fpizlo@apple.com
  • 6 edits in trunk/Source

FTL_USES_B3 should be unconditionally true
https://bugs.webkit.org/show_bug.cgi?id=154324

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

  • dfg/DFGCommon.h:

Source/WTF:

  • wtf/Platform.h:
9:29 PM Changeset in webkit [196685] by fpizlo@apple.com
  • 3 edits
    3 adds in trunk/Source/JavaScriptCore

FTL should support CompareEq(String:, String:)
https://bugs.webkit.org/show_bug.cgi?id=154269
rdar://problem/24499921

Reviewed by Benjamin Poulain.

Looks like a slight pdfjs slow-down, probably because we're having some recompilations. I
think we should land the increased coverage first and fix the issues after, especially since
the regression is so small and doesn't have a statistically significant effect on the overall
score.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToLLVM::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToLLVM::stringsEqual):

  • tests/stress/ftl-string-equality.js: Added.
  • tests/stress/ftl-string-ident-equality.js: Added.
  • tests/stress/ftl-string-strict-equality.js: Added.
8:25 PM Changeset in webkit [196684] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL should support NewTypedArray
https://bugs.webkit.org/show_bug.cgi?id=154268

Reviewed by Saam Barati.

3% speed-up on pdfjs. This was already covered by many different tests.

Rolling this back in after fixing the butterfly argument.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToLLVM::compileAllocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorageAndGetEnd):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateObject):

8:11 PM Changeset in webkit [196683] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.101

New tag.

8:04 PM Changeset in webkit [196682] by bshafiei@apple.com
  • 10 edits in tags/Safari-601.1.46.100.1

Merge patch for r192036 and r196679. rdar://problem/24355523

8:03 PM Changeset in webkit [196681] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.46.100.1/Source

Versioning.

7:58 PM Changeset in webkit [196680] by bshafiei@apple.com
  • 10 edits in branches/safari-601.1.46-branch

Merge patch for r192036 and r196679. rdar://problem/24355523

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

Allow double tap to zoom in fast-click pages
https://bugs.webkit.org/show_bug.cgi?id=154318
<rdar://problem/24223767>

Reviewed by Simon Fraser and Benjamin Poulain.

Most of the patch comes from Jon Lee.

Our fast-click algorithm exposed a number of cases where
people missed the double-tap-to-zoom behaviour. In particular,
when you double tap on a large body of text, typical in
blogs and articles.

This patch enhances the algorithm to have a parallel
double-tap gesture recognizer in the situations where
fast-click is enabled. This new gesture recongizer does
not cause the single tap to block for 350ms, so clicks
are still dispatched fast. If it fires, we already have
some information about whether we have a pending double
tap, based on the first tap.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary): Remove the optimization
that only told the content view to disable on pages that allowed double taps. We now allow
them even on fast click pages.

  • UIProcess/ios/WKContentViewInteraction.h: Add the new UITapGestureRecognizer for double taps

in fast click pages. This is called nonBlockingDoubleTapGestureRecognizer because, unlike
the existing DoubleTapGestureRecognizer, this one does not force the singleTapRecognizer
to wait.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]): Set up the new UITapGestureRecognizer.
(-[WKContentView cleanupInteraction]): And remove it when we're done.
(-[WKContentView _removeDefaultGestureRecognizers]): Ditto.
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView _inspectorNodeSearchRecognized:]): Something happened, we are no longer in
a potential double tap situation.
(-[WKContentView _disableDoubleTapGesturesDuringTapIfNecessary:]): Remove the check
for potential tap in progress.
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _highlightLongPressRecognized:]): Again, something happened, so we are
no longer in a double tap situation.
(-[WKContentView _longPressRecognized:]): Ditto.
(-[WKContentView _singleTapRecognized:]): Ditto.
(-[WKContentView _doubleTapRecognized:]): Ditto.
(-[WKContentView _resetIsDoubleTapPending]):
(-[WKContentView _fastDoubleTapRecognized:]): We're now pending a double tap.
(-[WKContentView _twoFingerDoubleTapRecognized:]):
(-[WKContentView _didNotHandleTapAsClick:]): If we get here and we have a pending
double tap, then trigger a zoom operation.
(-[WKContentView _setDoubleTapGesturesEnabled:]):

6:34 PM Changeset in webkit [196678] by Chris Dumez
  • 4 edits in trunk/Source

JSDOMWindow::getOwnPropertySlot should just call getStaticPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=154257

Patch by Gavin Barraclough <barraclough@apple.com> on 2016-02-16
Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • runtime/Lookup.h:

(JSC::getStaticPropertySlot):
(JSC::getStaticFunctionSlot):
(JSC::getStaticValueSlot):

  • this could all do with a little more love. But enforce the basic precedence:

(1) regular storage properties always win over static table properties.
(2) if properties have been reified, don't consult the static tables.
(3) only if the property is not present on the object & not reified

should the static hashtable be consulted.

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):

  • JSDOMWindow::getOwnPropertySlot should just call getStaticPropertySlot
6:20 PM Changeset in webkit [196677] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.100.1

New tag.

5:37 PM Changeset in webkit [196676] by barraclough@apple.com
  • 8 edits in trunk

JSDOMWindow::getOwnPropertySlot should not search photo chain
https://bugs.webkit.org/show_bug.cgi?id=154102

Reviewed by Chris Dumez.

Should only return *own* properties.

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertyDescriptor):

  • remove hack/special-case for DOMWindow; we no longer need this.

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotNamedItemGetter):

LayoutTests:

  • fast/dom/Window/es52-globals-expected.txt:
  • http/tests/security/window-named-valueOf-expected.txt:
  • imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
    • update test results.
5:29 PM Changeset in webkit [196675] by keith_miller@apple.com
  • 12 edits
    1 add in trunk

Spread operator should be allowed when not the first argument of parameter list
https://bugs.webkit.org/show_bug.cgi?id=152721

Reviewed by Saam Barati.

Source/JavaScriptCore:

Spread arguments to functions should now be ES6 compliant. Before we
would only take a spread operator if it was the sole argument to a
function. Additionally, we would not use the Symbol.iterator on the
object to generate the arguments. Instead we would do a loop up to the
length mapping indexed properties to the corresponding argument. We fix
both these issues by doing an AST transformation from foo(...a, b, ...c, d)
to foo(...[...a, b, ...c, d]) (where the spread on the rhs uses the
old spread semantics). This solution has the downside of requiring the
allocation of another object and copying each element twice but avoids a
large change to the vm calling convention.

  • interpreter/Interpreter.cpp:

(JSC::loadVarargs):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createElementList):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseArguments):
(JSC::Parser<LexerType>::parseArgument):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createElementList):

  • tests/es6.yaml:
  • tests/stress/spread-calling.js: Added.

(testFunction):
(testEmpty):
(makeObject):
(otherIterator.return.next):
(otherIterator):
(totalIter):
(throwingIter.return.next):
(throwingIter):
(i.catch):

LayoutTests:

Update tests with new semantics of spread calling.

  • js/basic-spread-expected.txt:
  • js/parser-syntax-check-expected.txt:
  • js/script-tests/basic-spread.js:
  • js/script-tests/parser-syntax-check.js:
5:14 PM Changeset in webkit [196674] by achristensen@apple.com
  • 4 edits in trunk/Source

CMake build fix.

  • PlatformMac.cmake:
5:11 PM Changeset in webkit [196673] by Chris Dumez
  • 10 edits
    2 adds
    3 deletes in trunk

Navigator.geolocation should not be marked a [Replaceable] and should be on the prototype
https://bugs.webkit.org/show_bug.cgi?id=154304
<rdar://problem/24685092>

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

  1. Drop the [Replaceable] IDL extended attribute for navigator.geolocation as this does not match other browsers or the specification:
  2. Move Navigator attributes to the prototype, where they should be as per the Web IDL specification.

The previous behavior was meant as a workaround for a bug in the Amazon
iOS app (rdar://problem/16332749). However, I have confirmed that the
latest Amazon App no longer has any issue with those changes.

Test: js/navigator-set-geolocation.html

  • Modules/geolocation/NavigatorGeolocation.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(InterfaceRequiresAttributesOnInstanceForCompatibility): Deleted.

LayoutTests:

  • fast/dom/Geolocation/enabled-expected.txt:
  • fast/dom/Geolocation/script-tests/enabled.js:
  • js/dom/delete-syntax-expected.txt:
  • js/dom/script-tests/delete-syntax.js:

Update tests as they expected the navigator properties to be on the
instance rather than the prototype.

  • js/dom/script-tests/shadow-navigator-geolocation-in-strict-mode-does-not-throw.js: Removed.
  • js/dom/shadow-navigator-geolocation-in-strict-mode-does-not-throw-expected.txt: Removed.
  • js/dom/shadow-navigator-geolocation-in-strict-mode-does-not-throw.html: Removed.

Drop outdated test.

  • js/navigator-set-geolocation-expected.txt: Added.
  • js/navigator-set-geolocation.html: Added.

Add test to make sure that Navigator.geolocation cannot be set. I verified that
this test passes in both Firefox and Chrome.

4:45 PM Changeset in webkit [196672] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable B3 on ARM64
https://bugs.webkit.org/show_bug.cgi?id=154275

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

The port passes more tests than LLVM now, let's use it by default.

  • dfg/DFGCommon.h:
4:30 PM Changeset in webkit [196671] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit2

Use NSURLCredential from serverTrust when evaluating server trust AuthenticationChallenges with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=154316

Reviewed by Brady Eidson.

This fixes http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html
and many other layout tests that use https because it allows https connections with servers
with self-signed certificates when TestController::canAuthenticateAgainstProtectionSpace in
WebKitTestRunner says it's OK, or when any other WKPageNavigationClient says it's ok.

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::serverTrustCredential):

4:00 PM Changeset in webkit [196670] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

REGRESSION(r196268): WTFCrashWithSecurityImplication on SVG path animation tests
https://bugs.webkit.org/show_bug.cgi?id=154221

Reviewed by Brent Fulgham.

In r196268, a destructor was added to SVGListPropertyTearOff that notifies
its wrapper (the SVGAnimatedListPropertyTearoff) about its deletion. This
allows the wrapper to nullify any references to the wrapped content.

We needed to do the same thing for SVGPathSegListPropertyTearOff. Both
SVGPathSegListPropertyTearOff and SVGListPropertyTearOff inherit from
SVGListProperty and both hold pointers to SVGAnimatedListPropertyTearOff
which needs to be notified.

Tests: exiting svg path animation tests should not crash.

  • svg/properties/SVGPathSegListPropertyTearOff.h:

(WebCore::SVGPathSegListPropertyTearOff::~SVGPathSegListPropertyTearOff):

3:59 PM Changeset in webkit [196669] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

REGRESSION (r190430): WTFCrashWithSecurityImplication in:void SVGRootInlineBox::layoutCharactersInTextBoxes()
https://bugs.webkit.org/show_bug.cgi?id=154185

Reviewed by Ryosuke Niwa.
Source/WebCore:

This is a regression caused by adding support for HTMLSlotElement. The
crash happens when adding an HTMLSlotElement to anther element which should
not have it as a child like SVGTextElement for example. In this case, we
were creating a RenderText which should not be happen inside an SVG document.
The RenderText::createTextBox() was creating InlineTextBox for the slot's
text and attach it to the SVGRootInlineBox. In layoutCharactersInTextBoxes(),
the assumption is the inline box is either SVGInlineTextBox or SVGInlineFlowBox.
But since we have an InlineTextBox instead, the crash happens when casting
the InlineTextBox to SVGInlineFlowBox.

The fix is for createRenderTreeForSlotAssignees() to not create a renderer
when the parent element should not have a renderer for the this element.
This is the same thing we do for createRenderer() which handles the non
HTMLSlotElement case and which is called also from createRenderTreeRecursively().

Test: fast/shadow-dom/text-slot-child-crash.svg

  • style/StyleTreeResolver.cpp:

(WebCore::Style::moveToFlowThreadIfNeeded):
(WebCore::Style::TreeResolver::createRenderer): Delete the check for
shouldCreateRenderer() and handling the case when resolvedStyle is null
since these are handled by the caller createRenderTreeRecursively().

(WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees):
Assert shouldCreateRenderer() is true for this element.

(WebCore::Style::TreeResolver::createRenderTreeRecursively): Don't create
the renderer if shouldCreateRenderer() returns false. Also handle the case
when resolvedStyle is null and pass the new style to createRenderer().

  • style/StyleTreeResolver.h:

LayoutTests:


Ensure that adding an HTMLSlotElement with text to an SVGTextElement will
not create a renderer and we won't crash.

  • fast/shadow-dom/text-slot-child-crash-expected.txt: Added.
  • fast/shadow-dom/text-slot-child-crash.svg: Added.
3:47 PM Changeset in webkit [196668] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

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

This change caused LayoutTest crashes (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"FTL should support NewTypedArray"
https://bugs.webkit.org/show_bug.cgi?id=154268
http://trac.webkit.org/changeset/196652

3:45 PM Changeset in webkit [196667] by Brian Burg
  • 4 edits in trunk/Source/JavaScriptCore

RemoteInspector should forward new automation session requests to its client
https://bugs.webkit.org/show_bug.cgi?id=154260
<rdar://problem/24663313>

Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::listingForAutomationTarget):
Use the correct key for the session identifier in the listing. The name()
override for RemoteAutomationTarget is actually the session identifier.

(Inspector::RemoteInspector::receivedAutomationSessionRequestMessage):

  • inspector/remote/RemoteInspectorConstants.h: Add new constants.
3:24 PM Changeset in webkit [196666] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Every RenderLayer should not have to remove itself from the scrollableArea set
https://bugs.webkit.org/show_bug.cgi?id=154311

Reviewed by Zalan Bujtas.

A subset of RenderLayers are are scrollable, and get registered on the FrameView,
but we pay the cost of a hash lookup for removal on every RenderLayer, which is a waste.

Store a bit that tells RenderLayer that it's in the set and needs to be removed.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:
3:24 PM Changeset in webkit [196665] by Simon Fraser
  • 3 edits
    5 adds in trunk/LayoutTests

Add tests for iframe and overflow scrollability after navigating back
https://bugs.webkit.org/show_bug.cgi?id=154300

Reviewed by Brent Fulgham.

Test that sends mousewheel events to overflow and iframe, before and after navigating
forward then back.

These tests detect the regression caused by r188659.

  • fast/scrolling/iframe-scrollable-after-back-expected.txt: Added.
  • fast/scrolling/iframe-scrollable-after-back.html: Added.
  • fast/scrolling/overflow-scrollable-after-back-expected.txt: Added.
  • fast/scrolling/overflow-scrollable-after-back.html: Added.
  • fast/scrolling/resources/scroll-notifying-page.html: Added.
  • platform/ios-simulator/TestExpectations: Skip on iOS.
3:22 PM Changeset in webkit [196664] by dbates@webkit.org
  • 12 edits in trunk

CSP: Update violation report 'Content-Type' header
https://bugs.webkit.org/show_bug.cgi?id=153166
<rdar://problem/24383327>

Reviewed by Brent Fulgham.

Source/WebCore:

Inspired by Blink patch:
<https://src.chromium.org/viewvc/blink?view=rev&revision=154215>

Post the Content Security Policy violation report with Content-Type application/csp-report as
per section Reporting of the Content Security Policy 2.0 spec., <https://www.w3.org/TR/2015/CR-CSP2-20150721/>.

Currently we post CSP violation reports with Content-Type application/json.

  • html/parser/XSSAuditorDelegate.cpp:

(WebCore::XSSAuditorDelegate::didBlockScript): Use report type ViolationReportType::XSSAuditor to PingLoader.

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendViolationReport): Modified to take argument of type ViolationReportType
to determine the appropriate Content-Type header to use for the report. For a XSS Auditor violation report
we use Content-Type application/json. For a Content Security Policy violation report we use Content-Type
application/csp-report. Additionally, pass a ASCIILiteral() to ResourceRequestBase::setHTTPMethod()
as opposed to a constant string literal to avoid a copy of a constant string literal.

  • loader/PingLoader.h: Add enum class ViolationReportType.
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation): Use report type ViolationReportType::ContentSecurityPolicy.

LayoutTests:

Update expected results now that we post the Content Security Policy violation report with
Content-Type application/csp-report.

  • TestExpectations: Update associated bugs for entries that still fail.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt: Fix up HTTP_REFERER and csp-report

to reflect the correct value for HTTP_REFERER and the correct values for the report-uri and document-uri keys in the CSP
report JSON object.

3:16 PM Changeset in webkit [196663] by rniwa@webkit.org
  • 6 edits
    1 add in trunk/Websites/perf.webkit.org

Extract the code specific to v2 UI out of shared statistics.js
https://bugs.webkit.org/show_bug.cgi?id=154277

Reviewed by Chris Dumez.

Extracted statistics-strategies.js out of statistics.js for v2 UI and detect-changes.js. The intent is to
deprecate this file once we implement refined statistics tools in v3 UI and adopt it in detect-changes.js.

  • public/shared/statistics.js:

(Statistics.movingAverage): Extracted from the "Simple Moving Average" strategy.
(Statistics.cumultaiveMovingAverage): Extracted from the "Cumulative Moving Average" strategy.
(Statistics.exponentialMovingAverage): Extracted from the "Exponential Moving Average" strategy.
Use a temporary "movingAverage" to keep the last moving average instead of relying on the previous
entry in "averages" array to avoid special casing an array of length 1 and starting the loop at i = 1.
(Statistics.segmentTimeSeriesGreedyWithStudentsTTest): Extracted from "Segmentation: Recursive t-test"
strategy. Don't create the list of averages to match segmentTimeSeriesByMaximizingSchwarzCriterion here.
It's done in newly added averagesFromSegments.
(Statistics.segmentTimeSeriesByMaximizingSchwarzCriterion): Extracted from
"Segmentation: Schwarz criterion" strategy.
(.recursivelySplitIntoTwoSegmentsAtMaxTIfSignificantlyDifferent): Just store the start index to match

  • public/v2/app.js:

(App.Pane.updateStatisticsTools):
(App.Pane._computeMovingAverageAndOutliers):

  • public/v2/data.js:
  • public/v2/index.html:
  • public/v2/statistics-strategies.js: Added.

(StatisticsStrategies.MovingAverageStrategies): Added.
(averagesFromSegments): Extracted from "Segmentation: Schwarz criterion" strategy. Now used by both
"Segmentation: Recursive t-test" and "Segmentation: Schwarz criterion" strategies.
(StatisticsStrategies.EnvelopingStrategies): Moved from Statistics.EnvelopingStrategies.
(StatisticsStrategies.TestRangeSelectionStrategies): Moved from Statistics.TestRangeSelectionStrategies.
(createWesternElectricRule): Moved from statistics.js.
(countValuesOnSameSide): Ditto.
(StatisticsStrategies.executeStrategy): Moved from Statistics.executeStrategy.

  • tools/detect-changes.js:

(computeRangesForTesting):

3:13 PM Changeset in webkit [196662] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking pageoverlay/overlay-installation.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=153337

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
2:57 PM Changeset in webkit [196661] by andersca@apple.com
  • 13 edits
    1 delete in trunk/Source/WebKit2

Use pid_t everywhere, instead of PlatformProcessIdentifier
https://bugs.webkit.org/show_bug.cgi?id=154306

Reviewed by Sam Weinig.

  • Platform/IPC/Connection.h:
  • Platform/PlatformProcessIdentifier.h: Removed.
  • UIProcess/API/efl/tests/test_ewk2_context.cpp:

(TEST_F):

  • UIProcess/ChildProcessProxy.h:

(WebKit::ChildProcessProxy::processIdentifier):

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::didFinishLaunchingProcess):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::processIdentifier):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processIdentifier):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::networkProcessIdentifier):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
2:54 PM Changeset in webkit [196660] by andersca@apple.com
  • 2 edits
    2 deletes in trunk/Source/WebKit2

Remove WebKit2 header cruft
https://bugs.webkit.org/show_bug.cgi?id=154309

Reviewed by Sam Weinig.

  • WebKit2.xcodeproj/project.pbxproj:
  • mac/WKError.h: Removed.
  • mac/WKPreferences.h: Removed.
2:43 PM Changeset in webkit [196659] by andersca@apple.com
  • 3 edits
    4 deletes in trunk/Source/WebKit2

Remove unused environment variable classes
https://bugs.webkit.org/show_bug.cgi?id=154308

Reviewed by Tim Horton.

  • UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.h: Removed.
  • UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm: Removed.

(WebKit::DynamicLinkerEnvironmentExtractor::DynamicLinkerEnvironmentExtractor): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processEnvironmentVariable): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processLoadCommand): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processLoadCommands): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processSingleArchitecture): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processFatFile): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::getExtractedEnvironmentVariables): Deleted.

  • UIProcess/Launcher/mac/EnvironmentVariables.cpp: Removed.

(WebKit::EnvironmentVariables::EnvironmentVariables): Deleted.
(WebKit::EnvironmentVariables::~EnvironmentVariables): Deleted.
(WebKit::EnvironmentVariables::set): Deleted.
(WebKit::EnvironmentVariables::get): Deleted.
(WebKit::EnvironmentVariables::appendValue): Deleted.
(WebKit::EnvironmentVariables::valueIfVariableHasName): Deleted.
(WebKit::EnvironmentVariables::createStringForVariable): Deleted.
(WebKit::EnvironmentVariables::copyEnvironmentVariables): Deleted.
(WebKit::EnvironmentVariables::dump): Deleted.

  • UIProcess/Launcher/mac/EnvironmentVariables.h: Removed.

(WebKit::EnvironmentVariables::environmentPointer): Deleted.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • WebKit2.xcodeproj/project.pbxproj:
2:01 PM Changeset in webkit [196658] by sbarati@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

SamplingProfiler still fails with ASan enabled
https://bugs.webkit.org/show_bug.cgi?id=154301
<rdar://problem/24679502>

Reviewed by Filip Pizlo.

To fix this issue, I've come up with unsafe versions
of all operations that load memory from the thread's call
frame. All these new unsafe methods are marked with SUPPRESS_ASAN.

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::callSiteAsRawBits):
(JSC::CallFrame::unsafeCallSiteAsRawBits):
(JSC::CallFrame::callSiteIndex):
(JSC::CallFrame::unsafeCallSiteIndex):
(JSC::CallFrame::stack):
(JSC::CallFrame::callerFrame):
(JSC::CallFrame::unsafeCallerFrame):
(JSC::CallFrame::friendlyFunctionName):

  • interpreter/CallFrame.h:

(JSC::ExecState::calleeAsValue):
(JSC::ExecState::callee):
(JSC::ExecState::unsafeCallee):
(JSC::ExecState::codeBlock):
(JSC::ExecState::unsafeCodeBlock):
(JSC::ExecState::scope):
(JSC::ExecState::callerFrame):
(JSC::ExecState::callerFrameOrVMEntryFrame):
(JSC::ExecState::unsafeCallerFrameOrVMEntryFrame):
(JSC::ExecState::callerFrameOffset):
(JSC::ExecState::callerFrameAndPC):
(JSC::ExecState::unsafeCallerFrameAndPC):

  • interpreter/Register.h:

(JSC::Register::codeBlock):
(JSC::Register::asanUnsafeCodeBlock):
(JSC::Register::unboxedInt32):
(JSC::Register::tag):
(JSC::Register::unsafeTag):
(JSC::Register::payload):

  • interpreter/VMEntryRecord.h:

(JSC::VMEntryRecord::prevTopCallFrame):
(JSC::VMEntryRecord::unsafePrevTopCallFrame):
(JSC::VMEntryRecord::prevTopVMEntryFrame):
(JSC::VMEntryRecord::unsafePrevTopVMEntryFrame):

  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::walk):
(JSC::FrameWalker::advanceToParentFrame):
(JSC::FrameWalker::isAtTop):
(JSC::FrameWalker::resetAtMachineFrame):

1:42 PM Changeset in webkit [196657] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196648

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
1:25 PM Changeset in webkit [196656] by achristensen@apple.com
  • 7 edits in trunk/Source

Add checks before redirecting with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=154298

Reviewed by Andy Estes.

Source/WebCore:

This fixes http/tests/security/cors-post-redirect-307.html and
http/tests/navigation/post-307-response.html when using NetworkSession.

  • platform/network/ResourceRequestBase.h:

WEBCORE_EXPORT some functions newly used in WebKit2.

Source/WebKit2:

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::create):
(WebKit::NetworkDataTask::setPendingDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::NetworkDataTask):
(WebKit::NetworkDataTask::~NetworkDataTask):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
Implemented based on ResourceHandle::willSendRequest but with two notable exceptions:

  1. When using NSURLConnection, the last http method and the current http method are not always equal, and this

check needs to change the current http method to match the last http method when being redirected with an http
status code 307. When using NSURLSession, the current http method is already updated properly.

  1. I did not copy the part of ResourceHandle::willSendRequest that uses a CredentialStorage. I'm trying to avoid

using CredentialStorages with NSURLSession.
(WebKit::NetworkDataTask::scheduleFailure):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):

1:18 PM Changeset in webkit [196655] by dbates@webkit.org
  • 4 edits in trunk

CSP: Fix parsing of 'host/path' source expressions
https://bugs.webkit.org/show_bug.cgi?id=153170
<rdar://problem/24383407>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by Mike West):
<https://src.chromium.org/viewvc/blink?revision=154875&view=revision>

Fixes an issue where a source of the form example.com/A/ was incorrectly considered
invalid and hence such a requested resource would be blocked. A source of this form
is valid by the definition of host-source in section Source List Syntax of the Content
Security Policy 2.0 spec., <http://www.w3.org/TR/2015/CR-CSP2-20150721/>.

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parseSource):

LayoutTests:

Remove entry for test http/tests/security/contentSecurityPolicy/source-list-parsing-paths-03.html
as it now passes.

1:17 PM Changeset in webkit [196654] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

JSContext Inspector: Support for inline source maps
https://bugs.webkit.org/show_bug.cgi?id=154303
<rdar://problem/24670392>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-02-16
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Base/URLUtilities.js:

(parseDataURL):
Break a data URL into components.

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
Handle a data URL without using NetworkAgent. Also move references
to a main frame after checking for NetworkAgent.

  • UserInterface/Models/SourceMap.js:

(WebInspector.SourceMap.prototype.get sourceMappingBasePathURLComponents):

  • UserInterface/Models/SourceMapResource.js:

(WebInspector.SourceMapResource.prototype.get sourceMapDisplaySubpath):
Handle JavaScript debuggable script URLs which may not be complete URLs.

(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
Also handle if NetworkAgent does not exist.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
When connected to a JavaScript debuggable we were hiding disclosure
triangles as we did not expect resources to have subresources. If
a SourceMap is added, show them again.

LayoutTests:

  • inspector/unit-tests/url-utilities-expected.txt: Added.
  • inspector/unit-tests/url-utilities.html: Added.
1:16 PM Changeset in webkit [196653] by dbates@webkit.org
  • 4 edits in trunk

CSP: Disallow an empty host in a host-source source expression
https://bugs.webkit.org/show_bug.cgi?id=153168
<rdar://problem/24383366>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by rob@robwu.nl):
<https://src.chromium.org/viewvc/blink?revision=180407&view=revision>

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parseSource):

LayoutTests:

Remove entry for test http/tests/security/contentSecurityPolicy/source-list-parsing-07.html
as it now passes.

1:12 PM Changeset in webkit [196652] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL should support NewTypedArray
https://bugs.webkit.org/show_bug.cgi?id=154268

Reviewed by Saam Barati.

3% speed-up on pdfjs. This was already covered by many different tests.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToLLVM::compileAllocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorageAndGetEnd):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateObject):

12:58 PM Changeset in webkit [196651] by beidson@apple.com
  • 15 edits
    4 adds in trunk/Source

Modern IDB: WK2 IPC Scaffolding.
https://bugs.webkit.org/show_bug.cgi?id=154296

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.

Source/WebCore:

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

Source/WebKit2:

  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::establishIDBConnectionToServer):
(WebKit::DatabaseToWebProcessConnection::removeIDBConnectionToServer):

  • DatabaseProcess/DatabaseToWebProcessConnection.h:
  • DatabaseProcess/DatabaseToWebProcessConnection.messages.in:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: Added.

(WebKit::WebIDBConnectionToClient::create):
(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess):
(WebKit::WebIDBConnectionToClient::messageSenderConnection):
(WebKit::WebIDBConnectionToClient::connectionToClient):
(WebKit::WebIDBConnectionToClient::didDeleteDatabase):
(WebKit::WebIDBConnectionToClient::didOpenDatabase):
(WebKit::WebIDBConnectionToClient::didAbortTransaction):
(WebKit::WebIDBConnectionToClient::didCommitTransaction):
(WebKit::WebIDBConnectionToClient::didCreateObjectStore):
(WebKit::WebIDBConnectionToClient::didDeleteObjectStore):
(WebKit::WebIDBConnectionToClient::didClearObjectStore):
(WebKit::WebIDBConnectionToClient::didCreateIndex):
(WebKit::WebIDBConnectionToClient::didDeleteIndex):
(WebKit::WebIDBConnectionToClient::didPutOrAdd):
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didGetCount):
(WebKit::WebIDBConnectionToClient::didDeleteRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):
(WebKit::WebIDBConnectionToClient::fireVersionChangeEvent):
(WebKit::WebIDBConnectionToClient::didStartTransaction):
(WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: Added.
  • Platform/Logging.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: Added.

(WebKit::generateConnectionToServerIdentifier):
(WebKit::WebIDBConnectionToServer::create):
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::messageSenderConnection):
(WebKit::WebIDBConnectionToServer::coreConnectionToServer):
(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::createObjectStore):
(WebKit::WebIDBConnectionToServer::deleteObjectStore):
(WebKit::WebIDBConnectionToServer::clearObjectStore):
(WebKit::WebIDBConnectionToServer::createIndex):
(WebKit::WebIDBConnectionToServer::deleteIndex):
(WebKit::WebIDBConnectionToServer::putOrAdd):
(WebKit::WebIDBConnectionToServer::getRecord):
(WebKit::WebIDBConnectionToServer::getCount):
(WebKit::WebIDBConnectionToServer::deleteRecord):
(WebKit::WebIDBConnectionToServer::openCursor):
(WebKit::WebIDBConnectionToServer::iterateCursor):
(WebKit::WebIDBConnectionToServer::establishTransaction):
(WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
(WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: Added.
  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):

  • WebProcess/Databases/WebDatabaseProvider.h:
  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::idbConnectionToServerForSession):

  • WebProcess/Databases/WebToDatabaseProcessConnection.h:
12:50 PM Changeset in webkit [196650] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

stress/sampling-profiler-deep-stack.js fails on ARM 32bit
https://bugs.webkit.org/show_bug.cgi?id=154255
<rdar://problem/24662996>

Reviewed by Mark Lam.

The bug here wasn't in the implementation of the sampling profiler
itself. Rather, it was a bug in the test. JSC wasn't spending a lot
of time in a function that the test assumed a lot of time was spent in.
That's because the DFG was doing a good job at optimizing the function
at the leaf of the recursion. Because of that, we often wouldn't sample it.
I fixed this by making the leaf function do more work.

  • tests/stress/sampling-profiler-deep-stack.js:

(platformSupportsSamplingProfiler.foo):

12:35 PM Changeset in webkit [196649] by bshafiei@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merged r196645. rdar://problem/24679618

12:23 PM Changeset in webkit [196648] by Chris Dumez
  • 13 edits in trunk

[Web IDL] Operations should be on the instance for global objects or if [Unforgeable]
https://bugs.webkit.org/show_bug.cgi?id=154120
<rdar://problem/24613231>

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/JavaScriptCore:

Have putEntry() take a thisValue parameter in addition to the base,
instead of relying on PropertySlot::thisValue() because this did not
always do the right thing. In particular, when JSDOMWindow::put() was
called to set a function, it would end up setting the new value on the
JSDOMWindowShell instead of the actual JSDOMWindow.
JSDOMWindow::getOwnPropertySlot() would then not be able to find it.
Therefore the following would fail:
$ window.open = "test"
$ console.log(window.open) prints the native function instead of "test"

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

  • runtime/Lookup.h:

(JSC::putEntry):
(JSC::lookupPut):

Source/WebCore:

Operations should be on the instance for global objects or if
[Unforgeable] as per the Web IDL specification:

This patch implements this behavior in order to align
with the specification and other browsers.

No new tests, already covered by existing tests.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
Update function names now that they have "Instance" in their
name instead of "Prototype".

(WebCore::JSDOMWindow::getOwnPropertySlot):

  • Update function names now that they have "Instance" in their name instead of "Prototype".
  • Move the functions hard-coding *before* the static table check now that these functions are in the static table to maintain the previous behavior.
  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::getOwnPropertySlotDelegate):
Update function names now that they have "Instance" in their
name instead of "Prototype".

  • bindings/scripts/CodeGeneratorJS.pm:
  • Move functions to the instance if their interface is a global object or if they are marked as [Unforgeable]. Operations are now treated more like attributes, as they can now be either on the instance or the prototype. In a lot of places, I now use the naming "properties" instead of "attributes" as "properties" refer both "attributes" and "operations" / "functions".
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

Rebaseline bindings tests.

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:

Rebaseline test because the order of static properties has changed:
functions are now before constants instead of after.

12:18 PM Changeset in webkit [196647] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Add a redirect for B3 documentation
https://bugs.webkit.org/show_bug.cgi?id=154293

Reviewed by Timothy Hatcher.

  • .htaccess:
11:53 AM Changeset in webkit [196646] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking webarchive/loading/missing-data.html as flaky on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=153380

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:33 AM Changeset in webkit [196645] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Revert r195826.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _createAndConfigureDoubleTapGestureRecognizer]):
(-[WKContentView _singleTapCommited:]):

11:28 AM Changeset in webkit [196644] by keith_miller@apple.com
  • 4 edits
    1 add in trunk

ClonedArguments should not materialize its special properties unless they are being changed or deleted
https://bugs.webkit.org/show_bug.cgi?id=154128

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Before we would materialize ClonedArguments whenever they were being accessed.
However this would cause the IC to miss every time as the structure for
the arguments object would change as we went to IC it. Thus on the next
function call we would miss the cache since the new arguments object
would not have materialized the value.

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::getOwnPropertySlot):

  • tests/stress/cloned-arguments-modification.js: Added.

(foo):

LayoutTests:

Have argumnets-strict-mode test the speed of spreading the arguments object.

  • js/regress/script-tests/arguments-strict-mode.js:

(foo):

11:13 AM Changeset in webkit [196643] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/events/keydown-1.html as flaky on mac-wk1 debug
https://bugs.webkit.org/show_bug.cgi?id=154297

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:12 AM Changeset in webkit [196642] by fpizlo@apple.com
  • 5 edits
    7 adds in trunk

FTL should support StringFromCharCode
https://bugs.webkit.org/show_bug.cgi?id=154267
Source/JavaScriptCore:

rdar://problem/24192536

Reviewed by Mark Lam.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Fix a bug preventing the UntypedUse from being effective.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStringFromCharCode): Implement the opcode.

  • tests/stress/string-from-char-code-slow.js: Added.

LayoutTests:

Reviewed by Mark Lam.

  • js/regress/script-tests/string-from-char-code.js: Added.

(result):

  • js/regress/script-tests/untyped-string-from-char-code.js: Added.

(result):

  • js/regress/string-from-char-code-expected.txt: Added.
  • js/regress/string-from-char-code.html: Added.
  • js/regress/untyped-string-from-char-code-expected.txt: Added.
  • js/regress/untyped-string-from-char-code.html: Added.
10:48 AM Changeset in webkit [196641] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Rollout r188659. This broke scrolling of iframes and overflow when
navigating back to a page in the page cache.

The fix was overly agressive and had no layout test. I will fix the original
issue a different way.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • page/FrameView.cpp:

(WebCore::FrameView::clearScrollableAreas): Deleted.

  • page/FrameView.h:
10:15 AM Changeset in webkit [196640] by Carlos Garcia Campos
  • 4 edits
    2 adds in trunk

[GTK] No hover-horizontal scrolling available
https://bugs.webkit.org/show_bug.cgi?id=122859

Reviewed by Michael Catanzaro.

Source/WebCore:

This is a regression of WebKit2, because in WebKit1 we used native
widgets for frame scrollbars that handled this automatically. Now
we need to also check if the mouse is over frame scrollbars to
adjust the wheel event.

Test: platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent): Pass the adjusted wheel
event to platformCompleteWheelEvent().

  • page/gtk/EventHandlerGtk.cpp:

(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
Check also frame scrollbars.

LayoutTests:

  • platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll-expected.html: Added.
  • platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html: Added.
10:13 AM Changeset in webkit [196639] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/LayoutTests/loader/stateobjects

Fix pushstate tests. rdar://problem/24527863

10:12 AM Changeset in webkit [196638] by matthew_hanson@apple.com
  • 1 edit
    2 adds in branches/safari-601-branch/LayoutTests

Address Font Variant test failures. rdar://problem/24494903

9:59 AM Changeset in webkit [196637] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebCore

Fix for rdar://problem/24494562

9:24 AM Changeset in webkit [196636] by Antti Koivisto
  • 10 edits
    4 adds in trunk

Factor id mutation style invalidation code into a class
https://bugs.webkit.org/show_bug.cgi?id=154287

Reviewed by Andreas Kling.

Source/WebCore:

Also add a cheap basic optimization that avoids descendant invalidation if they can not be affected.

It would be easy to implement fine grained invalidation like with classes and attribute selectors.
However dynamic id changes are not common enough (nor recommended) to pay the memory cost of
the required data structures.

Test: fast/css/style-invalidation-id-change-descendants.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):

  • css/RuleFeature.h:
  • dom/Element.cpp:

(WebCore::makeIdForStyleResolution):
(WebCore::Element::attributeChanged):
(WebCore::checkNeedsStyleInvalidationForIdChange): Deleted.

  • style/IdChangeInvalidation.cpp: Added.

(WebCore::Style::IdChangeInvalidation::invalidateStyle):

  • style/IdChangeInvalidation.h: Added.

(WebCore::Style::IdChangeInvalidation::IdChangeInvalidation):
(WebCore::Style::IdChangeInvalidation::~IdChangeInvalidation):

LayoutTests:

  • fast/css/style-invalidation-id-change-descendants-expected.txt: Added.
  • fast/css/style-invalidation-id-change-descendants.html: Added.
9:12 AM Changeset in webkit [196635] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196621

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
8:42 AM Changeset in webkit [196634] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Increase the width of the find banner's search field
https://bugs.webkit.org/show_bug.cgi?id=154284

Reviewed by Timothy Hatcher.

  • UserInterface/Views/FindBanner.css:

(.find-banner > input[type="search"]):
Keep the minimum width the same as the current width.

(body .find-banner.console-find-banner):
Overwrite ".navigation-bar .item {flex-wrap: nowrap}".

2:00 AM Changeset in webkit [196633] by akling@apple.com
  • 12 edits in trunk/Source

Drop StyleResolver and SelectorQueryCache when entering PageCache.
<https://webkit.org/b/154238>

Reviewed by Antti Koivisto.

Source/WebCore:

Stop keeping these around for cached pages to save lots of memory.
We can easily rebuild them if a cached navigation occurs, and this
way we also don't need to worry about invalidating style for cached
pages in all the right places.

Restoring a cached page will now lead to a forced style recalc.
We don't try to defer this (beyond a zero-timer) since it's going
to happen anyway, and it's nicer to front-load the cost rather than
stuttering on the first user content interaction.

  • dom/Document.cpp:

(WebCore::Document::setInPageCache):

  • history/CachedPage.cpp:

(WebCore::CachedPage::restore):
(WebCore::CachedPage::clear): Deleted.

  • history/CachedPage.h:

(WebCore::CachedPage::markForVisitedLinkStyleRecalc): Deleted.
(WebCore::CachedPage::markForFullStyleRecalc): Deleted.

  • history/PageCache.cpp:

(WebCore::PageCache::markPagesForVisitedLinkStyleRecalc): Deleted.
(WebCore::PageCache::markPagesForFullStyleRecalc): Deleted.

  • history/PageCache.h:
  • page/Frame.cpp:

(WebCore::Frame::setPageAndTextZoomFactors): Deleted.

  • page/Page.cpp:

(WebCore::Page::setViewScaleFactor): Deleted.
(WebCore::Page::setDeviceScaleFactor): Deleted.
(WebCore::Page::setPagination): Deleted.
(WebCore::Page::setPaginationLineGridEnabled): Deleted.
(WebCore::Page::setVisitedLinkStore): Deleted.

Source/WebKit/win:

  • WebCoreSupport/WebVisitedLinkStore.cpp:

(WebVisitedLinkStore::removeAllVisitedLinks): Deleted.
(WebVisitedLinkStore::addVisitedLinkHash): Deleted.

1:50 AM Changeset in webkit [196632] by Carlos Garcia Campos
  • 14 edits in trunk/Source/WebCore

[GTK] clicking on the scrollbar trough steps rather than jumps to the clicked position
https://bugs.webkit.org/show_bug.cgi?id=115363

Reviewed by Michael Catanzaro.

Allow ScrollbarTheme to decide the behavior of a button press event,
instead of only deciding whether to center on thumb or not. This
way we can match the current GTK+ behavior in WebKit, without
affecting other ports.

  • platform/ScrollTypes.h: Add ScrollbarButtonPressAction enum.
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::mouseDown): Ask ScrollbarTheme to handle the
event for the pressed part and do the requested action.

  • platform/ScrollbarTheme.cpp:

(WebCore::ScrollbarTheme::handleMousePressEvent): Add default
implementation. It's equivalent to the previous default implementation.

  • platform/ScrollbarTheme.h:
  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::handleMousePressEvent): Match current
GTK+ behavior: left click centers on thumb and right click
scrolls. Dragging the thumb works for left and middle buttons.

  • platform/gtk/ScrollbarThemeGtk.h:
  • platform/ios/ScrollbarThemeIOS.h: Remove shouldCenterOnThumb,

and don't override handleMousePressEvent since iOS wants the
default behavior.

  • platform/ios/ScrollbarThemeIOS.mm:
  • platform/mac/ScrollbarThemeMac.h: Override handleMousePressEvent

and remove shouldCenterOnThumb.

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::shouldCenterOnThumb): Same implementation just made it
static to be used as helper.
(WebCore::ScrollbarThemeMac::handleMousePressEvent): Return the
desired action keeping the same behavior.

  • platform/win/ScrollbarThemeWin.cpp:

(WebCore::ScrollbarThemeWin::handleMousePressEvent): Ditto.

  • platform/win/ScrollbarThemeWin.h:
  • rendering/RenderScrollbarTheme.h:
1:45 AM Changeset in webkit [196631] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Mouse cursor doesn't change when entering scrollbars
https://bugs.webkit.org/show_bug.cgi?id=154243

Reviewed by Simon Fraser.

If the scrollbar is over or very close to text or a link, when
entering the scrollbar the cursor is not changed, keeping the beam
or hand cursor when using the scrollbar. Same happens for image
documents where the magnifier cursor is used and it remains when
entering the scrollbars. We should use pointer cursor always for
scrollbars.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateCursor): Request also to include
frame scrollbars in hit test result.
(WebCore::EventHandler::selectCursor): Use always pointer cursor
for scrollbars.

1:33 AM Changeset in webkit [196630] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[Mac][cmake] Unreviewed buildfix after r196488. Just for fun.

  • PlatformMac.cmake:
12:20 AM Changeset in webkit [196629] by Antti Koivisto
  • 15 edits
    4 adds in trunk

Optimize style invalidations for attribute selectors
https://bugs.webkit.org/show_bug.cgi?id=154242

Reviewed by Andreas Kling.

Source/WebCore:

Currently we invalidate the whole element subtree if there are any attribute selectors for the changed attribute.
This is slow as generally few if any elements are really affected. Using attribute selectors for dynamic styling
should be performant.

This patch implements optimization strategy for attributes similar to what we already have for classes:

  • Collect a map of all rules that contains descendant-affecting attribute selectors for a given attribute.
  • When an attribute value changes check if there are any such rules for it.
  • Check if the value change affects the results of any of the attribute selectors.
  • Only if it does invalidate the exact descendant elements affected by the rules.

Test: fast/css/style-invalidation-attribute-change-descendants.html

  • WebCore.xcodeproj/project.pbxproj:
  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::ancestorClassRules):
(WebCore::DocumentRuleSets::ancestorAttributeRulesForHTML):

Create optimization RuleSets when needed.

  • css/DocumentRuleSets.h:

(WebCore::DocumentRuleSets::uncommonAttribute):
(WebCore::DocumentRuleSets::features):

  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::makeAttributeSelectorKey):
(WebCore::RuleFeatureSet::collectFeatures):

Collect rules with descendant affecting attribute selectors.

(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
(WebCore::RuleFeatureSet::shrinkToFit):

  • css/RuleFeature.h:
  • css/SelectorChecker.cpp:

(WebCore::anyAttributeMatches):
(WebCore::SelectorChecker::attributeSelectorMatches):

Expose function for matching single attribute selectors.

(WebCore::canMatchHoverOrActiveInQuirksMode):

  • css/SelectorChecker.h:
  • dom/Attr.cpp:

(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):

  • dom/Element.cpp:

(WebCore::Element::setAttributeInternal):
(WebCore::makeIdForStyleResolution):
(WebCore::Element::attributeChanged):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::addAttributeInternal):
(WebCore::Element::removeAttribute):

Add AttributeChangeInvalidation where needed.

(WebCore::Element::needsStyleInvalidation):

Move to Element from ClassChangeInvalidation.

(WebCore::Element::willModifyAttribute):

No more full style invalidation on attribute change.

  • style/AttributeChangeInvalidation.cpp: Added.

(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):

Invalidate local style.
Check if we need to invalidate descendants by looking into ancestorAttributeRules.

(WebCore::Style::AttributeChangeInvalidation::invalidateDescendants):

Use StyleInvalidationAnalysis to invalidate the subtree for the relevant rules.

  • style/AttributeChangeInvalidation.h: Added.

(WebCore::Style::AttributeChangeInvalidation::needsInvalidation):
(WebCore::Style::AttributeChangeInvalidation::AttributeChangeInvalidation):
(WebCore::Style::AttributeChangeInvalidation::~AttributeChangeInvalidation):

If needed, invalidate descendants before and after attribute change to catch rules that start and stop applying.

LayoutTests:

  • fast/css/style-invalidation-attribute-change-descendants-expected.txt: Added.
  • fast/css/style-invalidation-attribute-change-descendants.html: Added.
12:11 AM Changeset in webkit [196628] by Chris Dumez
  • 4 edits
    2 adds in trunk

Do security checks early in JSDOMWindow::put*()
https://bugs.webkit.org/show_bug.cgi?id=154270

Reviewed by Gavin Barraclough.

Source/WebCore:

Do security checks early in JSDOMWindow::put() / JSDOMWindow::putByIndex()
and return as soon as possible. This makes it less error-prone as we need
to do the security check only once, at the top of the function.

Also lock down the security further by calling lookupPut() only if the
property name is "location". The "location" property is the only one that
can be set cross-origin. Previously, trying to set a property such as
"name" (which cannot be set cross-origin) relied on the attribute setter
doing the security check when getting called. The new check is less error
prone and will correctly prevent overriding window's method cross-origin
once these move down from the prototype (Bug 154120).

Finally, the previous code was failing to set the "location" property
cross-origin after the window has been reified. This patch fixes the
issue by always calling the original "location" property setter from the
static table in the cross-origin case.

Test: http/tests/security/cross-origin-reified-window-location-setting.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::putByIndex):

LayoutTests:

  • http/tests/security/cross-frame-access-put-expected.txt:

Rebaseline. The extra security warnings are for the following properties:
closed, crypto, frameElement, pageXOffset and pageYOffset.
All these properties are read-only and therefore cannot be set (cross-origin
or not). The previous code was not doing an explicit check and ended up
trying to set these properties. However, since they are read-only, we would
silently fail to set them. The new code does the explicit check and therefore
will warn and NOT attempt to set.

  • http/tests/security/cross-origin-reified-window-location-setting-expected.txt: Added.
  • http/tests/security/cross-origin-reified-window-location-setting.html: Added.

Add test to check that setting window.location cross-origin still works after the
window object has been reified.

Feb 15, 2016:

11:14 PM Changeset in webkit [196627] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.5.17.1.1/Source

Versioning.

11:12 PM Changeset in webkit [196626] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.17.1.1

New tag.

11:10 PM Changeset in webkit [196625] by mark.lam@apple.com
  • 14 edits in trunk/LayoutTests

[ARMv7] Some JSC test fails due to exhausting the JIT code heap on the no LLINT test configuration.
https://bugs.webkit.org/show_bug.cgi?id=151611

Reviewed by Saam Barati.

These tests are only failing because they are compiling too much with the LLINT
disabled. As a result, they are using more JIT code heap space than is allowed
by the OS.

This patch excludes these tests from the noLLINT configuration on 32-bit ARM.

  • js/script-tests/dfg-float32array.js:
  • js/script-tests/dfg-float64array.js:
  • js/script-tests/dfg-int16array.js:
  • js/script-tests/dfg-int32array-overflow-values.js:
  • js/script-tests/dfg-int32array.js:
  • js/script-tests/dfg-int8array.js:
  • js/script-tests/dfg-osr-entry-hoisted-clobbered-structure-check.js:
  • js/script-tests/dfg-uint16array.js:
  • js/script-tests/dfg-uint32array-overflow-values.js:
  • js/script-tests/dfg-uint32array.js:
  • js/script-tests/dfg-uint8array.js:
  • js/script-tests/dfg-uint8clampedarray.js:
  • js/script-tests/regress-141098.js:
10:42 PM Changeset in webkit [196624] by mitz@apple.com
  • 2 edits
    4 deletes in trunk/Source/WebKit2

Removed unused files after r196478.

  • Configurations/DatabaseProcess.xcconfig: Removed.
  • Configurations/NetworkProcess.xcconfig: Removed.
  • Configurations/PluginProcess.xcconfig: Removed.
  • Configurations/WebContentProcess.xcconfig: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
9:39 PM Changeset in webkit [196623] by ChangSeok Oh
  • 2 edits in trunk/Source/WebKit2

[ThreadedCompositor] position:fixed elements do not have their own layers when threaded compositor is enabled.
https://bugs.webkit.org/show_bug.cgi?id=154100

Reviewed by Carlos Garcia Campos.

Currently, fixed elements are redrawn to a backing store every time layout or scroll happens.
It results in the bad effect on performance-wise. Letting fixed element have separate layers is
necessary when threaded compositor is enabled at least. Because async scrolling requires it.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::updatePreferences):

9:36 PM Changeset in webkit [196622] by Brent Fulgham
  • 27 edits
    8 adds in trunk

[Mac] Gather some rudimentary statistics during resource load
https://bugs.webkit.org/show_bug.cgi?id=153575
<rdar://problem/24075254>

Reviewed by Brady Eidson.

Source/WebCore:

Tested by: http/tests/navigation/statistics.html

  • CMakeLists.txt:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::updateLastHandledUserGestureTimestamp): Log user interaction
with the ResourceLoadObserver.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Track load statistics if the
user interacted with the document.

  • loader/ResourceLoadObserver.cpp: Added.
  • loader/ResourceLoadObserver.h: Added.
  • loader/ResourceLoadStatistics.cpp: Added.
  • loader/ResourceLoadStatistics.h: Added.
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal): Track load statistics.

  • page/Settings.cpp:

(WebCore::Settings::setResourceLoadStatisticsEnabled): Added.

  • page/Settings.h:

(WebCore::Settings::resourceLoadStatisticsEnabled): Added.

  • platform/Logging.h:
  • testing/Internals.cpp:

(WebCore::Internals::resourceLoadStatisticsForOrigin):
(WebCore::Internals::setResourceLoadStatisticsEnabled):

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

Source/WebKit/mac:

  • Misc/WebKitNSStringExtras.h:
  • Misc/WebKitNSStringExtras.mm:

(+[NSString _webkit_localStorageDirectoryWithBundleIdentifier:]): Added.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences resourceLoadStatisticsEnabled]): Added.
(-[WebPreferences setResourceLoadStatisticsEnabled:]): Added.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(WebKitInitializeApplicationCachePathIfNecessary):
(WebKitInitializeApplicationStatisticsStoragePathIfNecessary): Added.
(-[WebView _commonInitializationWithFrameName:groupName:]): Add call to new
initialization method.
(-[WebView _preferencesChanged:]): Track changes in the user's desire to
monitor resource load statistics.
(+[WebView _applicationWillTerminate]): Write statistics to disk (if preferences
say to do so.)

Tools:

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]): Add menu item for new debug flag.
(-[SettingsController toggleResourceLoadStatisticsEnabled:]): Added.
(-[SettingsController resourceLoadStatisticsEnabled]): Added.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]): React to changes in
users's desire to track resource load statistics.

LayoutTests:

  • http/tests/navigation/resources/redirect-on-reload-updates-history-item-statistics.php: Added.
  • http/tests/navigation/resources/redirect-updates-history-item-done-statistics.html: Added.
  • http/tests/navigation/statistics-expected.txt: Added.
  • http/tests/navigation/statistics.html: Added.
9:32 PM Changeset in webkit [196621] by Chris Dumez
  • 12 edits in trunk

The following properties should exist on the global object: AudioTrackList, AudioTrack, VideoTrackList, VideoTrack
https://bugs.webkit.org/show_bug.cgi?id=154250
<rdar://problem/24660829>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

The following properties should exist on the global object:

  • AudioTrackList, AudioTrack, VideoTrackList, VideoTrack

These interfaces are not marked as [NoInterfaceObject] in:

No new tests, already covered by existing tests.

  • html/track/AudioTrack.idl:
  • html/track/AudioTrackList.idl:
  • html/track/VideoTrack.idl:
  • html/track/VideoTrackList.idl:

LayoutTests:

Rebaseline now that AudioTrackList, AudioTrack, VideoTrackList and VideoTrack
are exposed on the global Window object.

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
9:15 PM Changeset in webkit [196620] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Non-overlay scrollbars obscure the ends of lines in the console and sidebars
https://bugs.webkit.org/show_bug.cgi?id=154276

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DataGrid.css:

(.data-grid .data-container):

  • UserInterface/Views/DatabaseContentView.css:

(.storage-view.query):

  • UserInterface/Views/LogContentView.css:

(.content-view.log):
Replace all occurrences of "overflow-y: overlay" with "overflow-y: auto".

9:11 PM Changeset in webkit [196619] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.18.10

Merged r196589. rdar://problem/24644805

9:11 PM Changeset in webkit [196618] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.18.10/Source

Versioning.

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

New tag.

8:51 PM Changeset in webkit [196616] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] BranchAdd can override arguments of its stackmap
https://bugs.webkit.org/show_bug.cgi?id=154274

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

With the 3 operands BranchAdd added in r196513, we can run into
a register allocation such that the destination register is also
used by a value in the stack map.

It use to be that BranchAdd was a 2 operand instruction.
In that form, the destination is also one of the source and
can be recovered through Sub. There is no conflict between
destination and the stackmap.

After r196513, the destination has its own value. It is uncommon
on x86 because of the aggressive aliasing but that can happen.
On ARM, that's a standard form since there is no need for aliasing.

Since the arguments of the stackmap are of type EarlyUse,
they appeared as not interfering with the destination. When the register
allocator gives the same register to the destination and something in
the stack map, the result of BranchAdd destroys the value kept alive
for the stackmap.

In this patch, I introduce a concept very similar to ForceLateUse
to keep the argument of the stackmap live in CheckAdd. The new
role is "ForceLateUseUnlessRecoverable".

In this mode, anything that is not also an input argument becomes
LateUse. As such, it interferes with the destination of CheckAdd.
The arguments are recovered by the slow patch of CheckAdd. They
remain Early use.

This new modes ensure that destination can be aliased to the source
when that's useful, while making sure it is not aliased with another
value that needs to be live on exit.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::forEachArg):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::forEachArg):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):
(WTF::printInternal):

  • b3/B3StackmapSpecial.h:
  • b3/B3StackmapValue.h:
8:41 PM Changeset in webkit [196615] by Hunseop Jeong
  • 104 edits
    4 adds in trunk/LayoutTests

[EFL] Rebaseline after r196244.

Unreviewed test gardening.

  • platform/efl/compositing/geometry/clipping-foreground-expected.txt:
  • platform/efl/compositing/geometry/root-layer-update-expected.txt:
  • platform/efl/compositing/overflow/ancestor-overflow-expected.txt:
  • platform/efl/compositing/overflow/nested-scrolling-expected.txt:
  • platform/efl/compositing/overflow/overflow-scroll-expected.txt:
  • platform/efl/compositing/overflow/parent-overflow-expected.txt:
  • platform/efl/compositing/overflow/scrollbar-painting-expected.txt:
  • platform/efl/compositing/reflections/nested-reflection-on-overflow-expected.txt:
  • platform/efl/compositing/sibling-positioning-expected.txt:
  • platform/efl/css3/unicode-bidi-isolate-basic-expected.txt:
  • platform/efl/fast/block/positioning/auto/vertical-rl/007-expected.txt:
  • platform/efl/fast/block/positioning/vertical-rl/fixed-positioning-expected.txt:
  • platform/efl/fast/borders/border-antialiasing-expected.txt:
  • platform/efl/fast/clip/001-expected.txt:
  • platform/efl/fast/clip/013-expected.txt:
  • platform/efl/fast/clip/014-expected.txt:
  • platform/efl/fast/clip/016-expected.txt:
  • platform/efl/fast/clip/outline-overflowClip-expected.txt:
  • platform/efl/fast/css/clip-zooming-expected.txt:
  • platform/efl/fast/forms/validation-message-appearance-expected.txt:
  • platform/efl/fast/inline/left-right-center-inline-alignment-in-ltr-and-rtl-blocks-expected.txt:
  • platform/efl/fast/line-grid/line-grid-inside-columns-expected.txt:
  • platform/efl/fast/line-grid/line-grid-into-columns-expected.txt:
  • platform/efl/fast/lists/scrolled-marker-paint-expected.txt:
  • platform/efl/fast/multicol/client-rects-expected.txt:
  • platform/efl/fast/multicol/column-break-with-balancing-expected.txt:
  • platform/efl/fast/multicol/column-rules-expected.txt:
  • platform/efl/fast/multicol/column-rules-stacking-expected.txt:
  • platform/efl/fast/multicol/columns-shorthand-parsing-expected.txt:
  • platform/efl/fast/multicol/float-paginate-complex-expected.txt:
  • platform/efl/fast/multicol/float-paginate-empty-lines-expected.txt:
  • platform/efl/fast/multicol/float-paginate-expected.txt:
  • platform/efl/fast/multicol/layers-in-multicol-expected.txt:
  • platform/efl/fast/multicol/layers-split-across-columns-expected.txt:
  • platform/efl/fast/multicol/max-height-columns-block-expected.txt:
  • platform/efl/fast/multicol/nested-columns-expected.txt:
  • platform/efl/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/efl/fast/multicol/overflow-across-columns-expected.txt:
  • platform/efl/fast/multicol/overflow-across-columns-percent-height-expected.txt:
  • platform/efl/fast/multicol/overflow-unsplittable-expected.txt:
  • platform/efl/fast/multicol/paginate-block-replaced-expected.txt:
  • platform/efl/fast/multicol/pagination/BottomToTop-bt-expected.txt:
  • platform/efl/fast/multicol/pagination/BottomToTop-lr-expected.txt:
  • platform/efl/fast/multicol/pagination/BottomToTop-rl-expected.txt:
  • platform/efl/fast/multicol/pagination/BottomToTop-tb-expected.txt:
  • platform/efl/fast/multicol/pagination/LeftToRight-bt-expected.txt:
  • platform/efl/fast/multicol/pagination/LeftToRight-rl-expected.txt:
  • platform/efl/fast/multicol/pagination/LeftToRight-tb-expected.txt:
  • platform/efl/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-bt-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-lr-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-rl-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-tb-expected.txt:
  • platform/efl/fast/multicol/pagination/TopToBottom-bt-expected.txt:
  • platform/efl/fast/multicol/pagination/TopToBottom-lr-expected.txt:
  • platform/efl/fast/multicol/pagination/TopToBottom-rl-expected.txt:
  • platform/efl/fast/multicol/positive-leading-expected.txt:
  • platform/efl/fast/multicol/scrolling-column-rules-expected.txt:
  • platform/efl/fast/multicol/scrolling-overflow-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
  • platform/efl/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
  • platform/efl/fast/multicol/span/span-as-nested-columns-child-expected.txt:
  • platform/efl/fast/multicol/span/span-margin-collapsing-expected.txt:
  • platform/efl/fast/multicol/table-vertical-align-expected.txt:
  • platform/efl/fast/multicol/tall-image-behavior-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/column-rules-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/float-paginate-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/nested-columns-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/column-rules-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/float-paginate-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/nested-columns-expected.txt:
  • platform/efl/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
  • platform/efl/fast/overflow/float-in-relpositioned-expected.txt:
  • platform/efl/fast/overflow/overflow-auto-position-absolute-expected.txt:
  • platform/efl/fast/overflow/overflow-rtl-expected.txt:
  • platform/efl/fast/overflow/paged-x-div-expected.txt:
  • platform/efl/fast/overflow/paged-x-div-with-column-gap-expected.txt:
  • platform/efl/fast/overflow/paged-x-on-root-expected.txt:
  • platform/efl/fast/overflow/paged-x-with-column-gap-expected.txt:
  • platform/efl/fast/overflow/paged-y-div-expected.txt:
  • platform/efl/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/efl/fast/regions/repaint/region-painting-via-layout-expected.txt:
  • platform/efl/fast/repaint/box-shadow-h-expected.txt:
  • platform/efl/fast/repaint/box-shadow-v-expected.txt:
  • platform/efl/fast/repaint/layer-outline-expected.txt:
  • platform/efl/fast/repaint/layer-outline-horizontal-expected.txt:
  • platform/efl/fast/table/edge-offsets-expected.txt:
  • platform/efl/fast/transforms/overflow-with-transform-expected.txt:
  • platform/efl/fast/transforms/rotated-transform-affects-scrolling-1-expected.txt: Added.
  • platform/efl/fast/transforms/rotated-transform-affects-scrolling-2-expected.txt: Added.
  • platform/efl/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/efl/scrollbars/scrollbars-on-positioned-content-expected.txt:
  • platform/efl/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.txt: Added.
  • platform/efl/svg/custom/image-rescale-clip-expected.txt: Added.
8:07 PM Changeset in webkit [196614] by weinig@apple.com
  • 6 edits
    1 delete in trunk/Source/WebCore

Stop using NSMapTable in places where we were only using it to be GC safe
<rdar://problem/24063723>
https://bugs.webkit.org/show_bug.cgi?id=154264

Reviewed by Dan Bernstein.

Switch from NSMapTable to HashMap.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMInternal.h:
  • bindings/objc/DOMInternal.mm:
  • bindings/objc/WebScriptObject.mm:
  • bridge/objc/objc_instance.mm:
  • platform/spi/cocoa/NSPointerFunctionsSPI.h: Removed. No longer used.
6:32 PM Changeset in webkit [196613] by commit-queue@webkit.org
  • 2 edits in trunk

Re-enable INTL on WinCairo
https://bugs.webkit.org/show_bug.cgi?id=154256

Patch by Alex Christensen <achristensen@webkit.org> on 2016-02-15
Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsWin.cmake:

Peavo updated icu and it works, so let's re-enable INTL on WinCairo to catch Windows build failures.

6:22 PM Changeset in webkit [196612] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:53 PM Changeset in webkit [196611] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196607

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
4:50 PM Changeset in webkit [196610] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual sidebar minor regression fixes
https://bugs.webkit.org/show_bug.cgi?id=154237
<rdar://problem/24653135>

Patch by Devin Rousso <Devin Rousso> on 2016-02-15
Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:

(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-special-property-placeholder):
Do not display the placeholder, as it is not used in comma separated value
property editors.

(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle::before):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle): Deleted.
Added ::before to get rid of the "-" on subtitle elements (r196266).

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype.widthDidChange):
Recalculates the width for all comma separated value elements (r196266).

(WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
Only open/close sections with properties that have values when a new node
or selector item is selected.

(WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
Make copies of the default unit lists to prevent modifying the values used
later in other sections (r194728).

4:20 PM Changeset in webkit [196609] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit2

Implement content sniffing check with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=154261

Reviewed by Andy Estes.

This fixes http/tests/xmlhttprequest/small-chunks-response-text.html when using NetworkSession.

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::create):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::NetworkDataTask):
Content sniffing is enabled by default. Disable it if the NetworkLoadParameters say not to.
This is analogous to behavior in ResourceHandle::createNSURLConnection.

4:17 PM Changeset in webkit [196608] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.100

New tag.

3:58 PM Changeset in webkit [196607] by Chris Dumez
  • 3 edits in trunk/LayoutTests/imported/w3c

Re-sync W3C web-platform-tests' html/dom/interfaces.html
https://bugs.webkit.org/show_bug.cgi?id=154259

Reviewed by Ryosuke Niwa.

Re-sync W3C web-platform-tests' html/dom/interfaces.html after:

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces.html:
3:57 PM Changeset in webkit [196606] by Matt Baker
  • 9 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: eliminate the linear and rendering frames TimelineOverview subclasses
https://bugs.webkit.org/show_bug.cgi?id=154000
<rdar://problem/24553105>

Reviewed by Timothy Hatcher.

This patch eliminates the TimelineOverview subclasses, and moves logic for switching between
a time-based or frame-based graph into the overview itself. The values of the overview's start
time, current time, and end time now match the values in the timeline recording regardless of the
current view mode. When viewing the rendering frames graph, the recording times are ignored and
all frames are included. The overview maintains separate zoom level and ruler selection settings
for each view mode.

  • UserInterface/Main.html:
  • UserInterface/Views/LinearTimelineOverview.js: Removed.
  • UserInterface/Views/RenderingFrameTimelineOverview.js: Removed.

Removed TimelineOverview subclasses.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.get height):
Set FPS graph height to 108 pixels.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:not(:first-child)):
(.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)): Deleted.
(.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)): Deleted.
Disable alternating graph styles when showing FPS instrument.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
Create separate settings for timelines and FPS view modes.
(WebInspector.TimelineOverview.prototype.get viewMode):
(WebInspector.TimelineOverview.prototype.set viewMode):
(WebInspector.TimelineOverview.prototype.set startTime):
Adjust the current ruler selection when start time changes. Not necessary
when showing the FPS instrument, which doesn't have a start time.
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
Now a wrapper around the corresponding view mode setting.
(WebInspector.TimelineOverview.prototype.set pixelAlignDuration):
(WebInspector.TimelineOverview.prototype.get scrollStartTime):
(WebInspector.TimelineOverview.prototype.set scrollStartTime):
Now a wrapper around the corresponding view mode setting.
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.get height):
Return the sum height of all visible overview graphs.
(WebInspector.TimelineOverview.prototype.shown):
Show overview graphs for the current view mode.
(WebInspector.TimelineOverview.prototype.hidden):
(WebInspector.TimelineOverview.prototype.reset):
(WebInspector.TimelineOverview.prototype.recordWasFiltered):
(WebInspector.TimelineOverview.prototype.selectRecord):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverview.prototype.layout):
Layout for both view modes is largely identical, and differs only in the treatment
of the overview's start time, current time, and end time. Time-based instruments
use time values from the recording, while the FPS instrument has a fixed start time
of zero, and a current and end time pinned to the last rendering frame.
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview._handleGestureStart):
(WebInspector.TimelineOverview.prototype._handleGestureChange):
(WebInspector.TimelineOverview.prototype._instrumentAdded):
(WebInspector.TimelineOverview.prototype._instrumentRemoved):
(WebInspector.TimelineOverview.prototype._timelineRulerMouseClicked):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
Save the selection for the current view mode.
(WebInspector.TimelineOverview.prototype._recordSelected):
(WebInspector.TimelineOverview.prototype._resetSelection.reset):
(WebInspector.TimelineOverview.prototype._resetSelection):
(WebInspector.TimelineOverview.prototype._canShowTimelineType):
(WebInspector.TimelineOverview.prototype._viewModeDidChange):
Sets zoom level, ruler selection, and graph visibility based on current view mode.
(WebInspector.TimelineOverview.prototype._createViewModeSettings):
Helper function for creating an object to track the zoom level and ruler
selection of each view mode.
(WebInspector.TimelineOverview.prototype.get _currentSettings):
Internal getter for retrieving the settings for the current view mode.
(WebInspector.TimelineOverview.prototype.canShowTimeline): Deleted.
Not needed now that the overview contains all timelines.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.shown):
(WebInspector.TimelineOverviewGraph.prototype.hidden):
Toggle CSS hidden class.

  • UserInterface/Views/TimelineRecordFrame.js:

No need to query offsetHeight now that TimelineOverviewGraph has a height property.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
Create a single timeline overview.
(WebInspector.TimelineRecordingContentView.prototype.get timelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.recordWasFiltered):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
Update the timeline overview's mode based on the current timeline view.
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
Removed special handling for the FPS overview.
Removed selection start time adjustment, which is now handled internally by TimelineOverview.
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
(WebInspector.TimelineSidebarPanel.prototype._renderingFrameTimelineTimesUpdated):
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
Refresh the view mode when the content view changes.
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
(WebInspector.TimelineSidebarPanel.prototype._viewModeSelected):
(WebInspector.TimelineSidebarPanel.prototype._viewModeForTimeline):
(WebInspector.TimelineSidebarPanel.prototype._updateViewModeIfNeeded):
Sync the tree outline, frames chart, and navigation bar with the current view mode.
(WebInspector.TimelineSidebarPanel.prototype.shown):
Refreshing the frame selection is unnecessary. It's updated by the recording content
view whenever the ruler selection changes.
(WebInspector.TimelineSidebarPanel.prototype.get viewMode): Deleted.
No longer public, since the timeline overview now owns the view mode. Internally the sidebar
still tracks the current state so it can determine when the value has changed.
(WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForTimeline):
The sidebar should only be synced to the overview after the content view has changed.
(WebInspector.TimelineSidebarPanel.prototype.updateFrameSelection):
Removed unnecessary assertion.
(WebInspector.TimelineSidebarPanel.prototype._changeViewMode): Deleted.
Replaced by _updateViewModeIfNeeded.

3:57 PM Changeset in webkit [196605] by rniwa@webkit.org
  • 5 edits
    1 move
    1 add
    2 deletes in trunk/Websites/perf.webkit.org

v1 UI and v2 UI should share statistics.js
https://bugs.webkit.org/show_bug.cgi?id=154262

Reviewed by Chris Dumez.

Share statistics.js between v1 and v2 UI.

  • public/index.html:
  • public/js/shared.js: Deleted.
  • public/js/statistics.js: Removed.
  • public/shared: Added.
  • public/shared/statistics.js: Moved from Websites/perf.webkit.org/public/v2/js/statistics.js.
  • public/v2/index.html:
  • public/v2/js/statistics.js: Removed.
  • public/v3/index.html:
  • tools/detect-changes.js:
3:39 PM Changeset in webkit [196604] by mmaxfield@apple.com
  • 24 edits
    2 copies
    2 adds in trunk

[Font Loading] Implement FontFace JavaScript object
https://bugs.webkit.org/show_bug.cgi?id=153345

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/text/font-face-javascript.html

This patch implements the FontFace Javascript object. This object mostly consists of
style getters / setters, which we implement by parsing input strings and generating
output strings similarly to getComputedStyle(). This object also has a load() function
which returns a promise which will be fulfilled or rejected depending on the load.
There is also a "loaded" attribute which exposes this promise directly. Also, a status
field is exposed so script knows what the state of the load is.

Currently, loading depends on our CachedResourceLoader which is part of the Document,
so this API is not available in a non-document context.

Another caveat is that immediate-mode font loading (where the content provides an
ArrayBuffer containing the bytes of the font file) is forthcoming. This requires
changing the relationship between CSSFontFaceSource and CachedFont.

CSSFontFace has been modified to keep a strong reference to the CSSFontSelector. This
is because the lifetime of the CSSFontFace can now outlive the CSSFontSelector. When
the CSSFontSelector is removed from the Document, it explicitly clears its constituent
CSSFontFaces, thereby breaking the reference cycle.

Test: fast/text/font-face-javascript-expected.html

  • CMakeLists.txt: Add new files.
  • DerivedSources.cpp: Ditto.
  • DerivedSources.make: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::globalObject): Remove whitespace.
(WebCore::DeferredWrapper::deferred): Allow access to the inner JSC object.

  • bindings/js/JSDOMPromise.h:

(WebCore::DOMPromise::deferred): Ditto.

  • bindings/js/JSFontFaceCustom.cpp: Copied from Source/WebCore/bindings/js/JSDOMPromise.cpp.

(WebCore::JSFontFace::loaded):
(WebCore::JSFontFace::load):

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::adoptSource):
(WebCore::CSSFontFace::updateStatus): Enforce the state machine's transitions.
(WebCore::CSSFontFace::fontLoaded):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::load):

  • css/CSSFontFace.h:

(WebCore::CSSFontFaceClient::~CSSFontFaceClient):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::status):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::appendSources): Update for new CSSFontFace API.
(WebCore::CSSFontSelector::registerLocalFontFacesForFamily): Ditto.
(WebCore::CSSFontSelector::addFontFaceRule): Ditto.
(WebCore::CSSFontSelector::kick): Ditto.
(WebCore::appendSources): Deleted.
(WebCore::registerLocalFontFacesForFamily): Deleted.

  • css/CSSFontSelector.h:
  • css/CSSUnicodeRangeValue.cpp: Use for serializing the "unicodeRange" property.
  • css/FontFace.cpp:

(WebCore::createPromise): Implement the remaining Javascript API functions.
(WebCore::valueFromDictionary):
(WebCore::FontFace::create):
(WebCore::FontFace::FontFace):
(WebCore::FontFace::parseString):
(WebCore::FontFace::status):
(WebCore::FontFace::kick):
(WebCore::FontFace::load):
(WebCore::FontFace::fulfillPromise):
(WebCore::FontFace::rejectPromise):
(WebCore::parseString): Deleted.

  • css/FontFace.h:

(WebCore::FontFace::promise):
(WebCore::FontFace::backing):
(WebCore::FontFace::create): Deleted.

  • css/FontFace.idl: Copied from Source/WebCore/bindings/js/JSDOMPromise.cpp.

LayoutTests:

  • fast/text/font-face-javascript-expected.txt: Added.
  • fast/text/font-face-javascript.html: Added.
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
2:37 PM Changeset in webkit [196603] by jer.noble@apple.com
  • 61 edits in trunk/Source/WebCore

Null-deref crash in DefaultAudioDestinationNode::suspend()
https://bugs.webkit.org/show_bug.cgi?id=154248

Reviewed by Alex Christensen.

Drive-by fix: AudioContext should be a reference, not a pointer.

  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::AnalyserNode):

  • Modules/webaudio/AnalyserNode.h:

(WebCore::AnalyserNode::create):

  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
(WebCore::AudioBasicInspectorNode::connect):
(WebCore::AudioBasicInspectorNode::disconnect):
(WebCore::AudioBasicInspectorNode::checkNumberOfChannelsForInput):
(WebCore::AudioBasicInspectorNode::updatePullStatus):

  • Modules/webaudio/AudioBasicInspectorNode.h:
  • Modules/webaudio/AudioBasicProcessorNode.cpp:

(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
(WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):

  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::create):
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::renderFromBuffer):
(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::startPlaying):
(WebCore::AudioBufferSourceNode::looping):
(WebCore::AudioBufferSourceNode::setLooping):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::createBufferSource):
(WebCore::AudioContext::createMediaElementSource):
(WebCore::AudioContext::createMediaStreamDestination):
(WebCore::AudioContext::createScriptProcessor):
(WebCore::AudioContext::createBiquadFilter):
(WebCore::AudioContext::createWaveShaper):
(WebCore::AudioContext::createPanner):
(WebCore::AudioContext::createConvolver):
(WebCore::AudioContext::createDynamicsCompressor):
(WebCore::AudioContext::createAnalyser):
(WebCore::AudioContext::createGain):
(WebCore::AudioContext::createDelay):
(WebCore::AudioContext::createChannelSplitter):
(WebCore::AudioContext::createChannelMerger):
(WebCore::AudioContext::createOscillator):

  • Modules/webaudio/AudioContext.h:

(WebCore::operator==):
(WebCore::operator!=):

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::AudioDestinationNode):
(WebCore::AudioDestinationNode::render):
(WebCore::AudioDestinationNode::updateIsEffectivelyPlayingAudio):

  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::connect):
(WebCore::AudioNode::disconnect):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::scriptExecutionContext):
(WebCore::AudioNode::processIfNecessary):
(WebCore::AudioNode::checkNumberOfChannelsForInput):
(WebCore::AudioNode::propagatesSilence):
(WebCore::AudioNode::pullInputs):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::deref):
(WebCore::AudioNode::finishDeref):

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::context):

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::disable):
(WebCore::AudioNodeInput::enable):
(WebCore::AudioNodeInput::updateInternalBus):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::internalSummingBus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):

  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::setNumberOfChannels):
(WebCore::AudioNodeOutput::updateNumberOfChannels):
(WebCore::AudioNodeOutput::propagateChannelCount):
(WebCore::AudioNodeOutput::pull):
(WebCore::AudioNodeOutput::bus):
(WebCore::AudioNodeOutput::fanOutCount):
(WebCore::AudioNodeOutput::paramFanOutCount):
(WebCore::AudioNodeOutput::addInput):
(WebCore::AudioNodeOutput::removeInput):
(WebCore::AudioNodeOutput::disconnectAllInputs):
(WebCore::AudioNodeOutput::addParam):
(WebCore::AudioNodeOutput::removeParam):
(WebCore::AudioNodeOutput::disconnectAllParams):
(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):

  • Modules/webaudio/AudioNodeOutput.h:

(WebCore::AudioNodeOutput::context):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::value):
(WebCore::AudioParam::smooth):
(WebCore::AudioParam::calculateSampleAccurateValues):
(WebCore::AudioParam::calculateFinalValues):
(WebCore::AudioParam::calculateTimelineValues):
(WebCore::AudioParam::connect):
(WebCore::AudioParam::disconnect):

  • Modules/webaudio/AudioParam.h:

(WebCore::AudioParam::create):
(WebCore::AudioParam::AudioParam):

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valueForContextTime):

  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
(WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
(WebCore::AudioScheduledSourceNode::start):
(WebCore::AudioScheduledSourceNode::finish):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::AudioSummingJunction):
(WebCore::AudioSummingJunction::~AudioSummingJunction):
(WebCore::AudioSummingJunction::changedOutputs):
(WebCore::AudioSummingJunction::updateRenderingState):

  • Modules/webaudio/AudioSummingJunction.h:

(WebCore::AudioSummingJunction::context):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::BiquadFilterNode):

  • Modules/webaudio/BiquadFilterNode.h:

(WebCore::BiquadFilterNode::create):

  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::BiquadProcessor):

  • Modules/webaudio/BiquadProcessor.h:
  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::ChannelMergerNode):
(WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::ChannelSplitterNode):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):
(WebCore::ConvolverNode::setBuffer):

  • Modules/webaudio/ConvolverNode.h:

(WebCore::ConvolverNode::create):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):

  • Modules/webaudio/DefaultAudioDestinationNode.h:

(WebCore::DefaultAudioDestinationNode::create):

  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode):

  • Modules/webaudio/DelayNode.h:

(WebCore::DelayNode::create):

  • Modules/webaudio/DelayProcessor.cpp:

(WebCore::DelayProcessor::DelayProcessor):

  • Modules/webaudio/DelayProcessor.h:
  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):

  • Modules/webaudio/DynamicsCompressorNode.h:

(WebCore::DynamicsCompressorNode::create):

  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::GainNode):
(WebCore::GainNode::checkNumberOfChannelsForInput):

  • Modules/webaudio/GainNode.h:

(WebCore::GainNode::create):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::create):
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):

  • Modules/webaudio/MediaStreamAudioDestinationNode.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
(WebCore::MediaStreamAudioSourceNode::setFormat):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::offlineRender):
(WebCore::OfflineAudioDestinationNode::notifyComplete):

  • Modules/webaudio/OfflineAudioDestinationNode.h:

(WebCore::OfflineAudioDestinationNode::create):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):
(WebCore::OscillatorNode::OscillatorNode):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::pullInputs):
(WebCore::PannerNode::process):
(WebCore::PannerNode::listener):
(WebCore::PannerNode::setPanningModel):

  • Modules/webaudio/PannerNode.h:

(WebCore::PannerNode::create):

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::create):
(WebCore::ScriptProcessorNode::ScriptProcessorNode):
(WebCore::ScriptProcessorNode::initialize):
(WebCore::ScriptProcessorNode::fireProcessEvent):

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::WaveShaperNode):
(WebCore::WaveShaperNode::setOversample):

  • Modules/webaudio/WaveShaperNode.h:

(WebCore::WaveShaperNode::create):

2:36 PM Changeset in webkit [196602] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Null-deref crash in DefaultAudioDestinationNode::suspend()
https://bugs.webkit.org/show_bug.cgi?id=154248

Reviewed by Alex Christensen.

Null-check scriptExecutionContext() before deref.

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):

2:33 PM Changeset in webkit [196601] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Update Tools/efl/install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=154239

Reviewed by Michael Catanzaro.

  • efl/install-dependencies:
2:25 PM Changeset in webkit [196600] by achristensen@apple.com
  • 11 edits
    4 adds in trunk/Source/WebKit2

Move Download authentication code to AuthenticationManager
https://bugs.webkit.org/show_bug.cgi?id=154132

Reviewed by Sam Weinig.

When a video element makes a request that receives an authentication challenge, the
AuthenticationManager receives an AuthenticationChallenge without an AuthenticationClient.
As a result, Download::receivedCredential and other functions were being called, which
sent a message to the challenge's sender. This functionality is not specific to downloads,
so I moved it from Download to AuthenticationManager.

This fixes http/tests/media/video-auth.html when using NetworkSession
because I use AuthenticationManager::receivedCredential if there is no AuthenticationClient
instead of improperly asserting that there is always an AuthenticationClient if there is no
completionHandler.

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/ios/DownloadIOS.mm:

(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.

  • NetworkProcess/Downloads/mac/DownloadMac.mm:

(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.

  • NetworkProcess/Downloads/soup/DownloadSoup.cpp:

(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::continueWithoutCredential): Deleted.
(WebKit::Download::useCredential): Deleted.
(WebKit::Download::cancelAuthenticationChallenge): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge):
(WebKit::AuthenticationManager::cancelChallenge):
(WebKit::AuthenticationManager::cancelSingleChallenge):
(WebKit::AuthenticationManager::performDefaultHandling):
(WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge):

  • Shared/Authentication/AuthenticationManager.h:

(WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount):

  • Shared/Authentication/cocoa: Added.
  • Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: Added.

(WebKit::AuthenticationManager::receivedCredential):
(WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential):
(WebKit::AuthenticationManager::receivedCancellation):
(WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling):
(WebKit::AuthenticationManager::receivedChallengeRejection):

  • Shared/Authentication/soup: Added.
  • Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Added.

(WebKit::AuthenticationManager::receivedCredential):
(WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential):
(WebKit::AuthenticationManager::receivedCancellation):
(WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling):
(WebKit::AuthenticationManager::receivedChallengeRejection):

  • WebKit2.xcodeproj/project.pbxproj:
2:03 PM Changeset in webkit [196599] by Chris Dumez
  • 22 edits
    1 copy
    1 add in trunk

XMLHttpRequest / XMLHttpRequestUpload should inherit XMLHttpRequestEventTarget
https://bugs.webkit.org/show_bug.cgi?id=154230

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:

Source/WebCore:

MLHttpRequest / XMLHttpRequestUpload should inherit XMLHttpRequestEventTarget
as per:
https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget

Firefox and Chrome already match the specification.

No new tests, already covered by existing tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:
  • xml/XMLHttpRequestEventTarget.h: Added.
  • xml/XMLHttpRequestEventTarget.idl: Copied from Source/WebCore/xml/XMLHttpRequestUpload.idl.
  • xml/XMLHttpRequestUpload.h:
  • xml/XMLHttpRequestUpload.idl:

LayoutTests:

Rebaseline tests now that XMLHttpRequestEventTarget is exposed on the
global objects.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
1:38 PM Changeset in webkit [196598] by jiewen_tan@apple.com
  • 13 edits
    2 adds in trunk

Refine SimulatedMouseEvent to support Event.isTrusted
https://bugs.webkit.org/show_bug.cgi?id=154133
<rdar://problem/24616246>

Reviewed by Darin Adler.

Source/WebCore:

This patch extracts everything related to create/dispatch SimulatedMouseEvent from MouseEvent.h/cpp
and EventDispatcher.h/cpp, and produces SimulateClick.h/cpp which will handle simulated click solely.
After that, we hide the SimulatedMouseEvent and only expose simulateClick to be called. The reason is
that we both want to tell whether the call sites are from user agent/bindings and keep the
SimulatedMouseEvent intact.

Also, this patch separate Element::dispatchSimulatedClick into two: one for the user agent, and another
for the bindings. Therefore, HTMLElement.click will be treated as untrusted.

Some of the changes in this patch referred Blink r200401:
https://codereview.chromium.org/1285793004

Modified test:
LayoutTests/imported/blink/fast/events/event-trusted.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::Element::dispatchSimulatedClick):
(WebCore::Element::dispatchSimulatedClickForBindings):

  • dom/Element.h:
  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchSimulatedClick): Deleted.

  • dom/EventDispatcher.h:
  • dom/MouseEvent.cpp:

(WebCore::SimulatedMouseEvent::create): Deleted.
(WebCore::SimulatedMouseEvent::~SimulatedMouseEvent): Deleted.
(WebCore::SimulatedMouseEvent::SimulatedMouseEvent): Deleted.

  • dom/MouseEvent.h:
  • dom/SimulatedClick.cpp: Added.

(WebCore::simulateMouseEvent):
(WebCore::simulateClick):

  • dom/SimulatedClick.h: Added.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::click):

LayoutTests:

  • imported/blink/fast/events/event-trusted-expected.txt:
  • imported/blink/fast/events/event-trusted.html:
1:37 PM Changeset in webkit [196597] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Show inherited CSS variables in the Style sidebar
https://bugs.webkit.org/show_bug.cgi?id=154215
rdar://problem/24644058

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/CSSProperty.js:

(WebInspector.CSSProperty.isInheritedPropertyName): Added.
(WebInspector.CSSProperty.prototype.update): Use WebInspector.CSSProperty.isInheritedPropertyName.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload): Use WebInspector.CSSProperty.isInheritedPropertyName.

1:30 PM Changeset in webkit [196596] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sidebars are defaulting to their minimum width, instead of a good width
https://bugs.webkit.org/show_bug.cgi?id=154218
rdar://problem/24644192

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel): Default the setting value to 300 instead of 0, so the minimum isn't used.

1:25 PM Changeset in webkit [196595] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking animations/animation-delay-changed.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=154253

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
1:23 PM Changeset in webkit [196594] by commit-queue@webkit.org
  • 12 edits
    5 adds in trunk

Web Inspector: Web Workers have no access to console for debugging
https://bugs.webkit.org/show_bug.cgi?id=26237

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-02-15
Reviewed by Timothy Hatcher.

LayoutTests/imported/w3c:

  • web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt:

Update test results for a console.warn message that the test produces from a Worker.

Source/JavaScriptCore:

  • inspector/ConsoleMessage.h:

Add accessor for MessageLevel.

Source/WebCore:

This adds the most basic console message support to Workers.
Messages logged from workers get surfaced through the Page's console.
This lacks support for logging and interacting with arguments,
which would be addressed when adding more complete Worker
debugging tools.

Test: inspector/console/messageAdded-from-worker.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::initScript):
Set the ConsoleClient for the Worker's global object. We route
the messages to the Page's console.

  • bindings/js/WorkerScriptController.h:
  • workers/WorkerConsoleClient.h: Added.
  • workers/WorkerConsoleClient.cpp: Added.

(WebCore::WorkerConsoleClient::WorkerConsoleClient):
(WebCore::WorkerConsoleClient::~WorkerConsoleClient):
(WebCore::WorkerConsoleClient::profile):
(WebCore::WorkerConsoleClient::profileEnd):
(WebCore::WorkerConsoleClient::count):
(WebCore::WorkerConsoleClient::time):
(WebCore::WorkerConsoleClient::timeEnd):
(WebCore::WorkerConsoleClient::timeStamp):
Stub most console methods in a Worker.

(WebCore::WorkerConsoleClient::messageWithTypeAndLevel):
Send worker log messages to the global scope and on to the main page.

  • workers/WorkerGlobalScope.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessageToWorkerConsole):
Ideally we want to converge on simple addConsoleMessage
APIs that just take a ConsoleMessage, without a barrage
of parameters. Add these versions now.

LayoutTests:

  • inspector/console/messageAdded-from-worker-expected.txt: Added.
  • inspector/console/messageAdded-from-worker.html: Added.
  • inspector/console/resources/worker-console-log.js: Added.
1:16 PM Changeset in webkit [196593] by timothy@apple.com
  • 5 edits
    2 adds in trunk

Web Inspector: CSS variables are not formatted correctly
https://bugs.webkit.org/show_bug.cgi?id=154217
rdar://problem/24644154

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Views/CodeMirrorFormatters.js:

(newlineBeforeToken): Check for variable-2 token in the maybeprop state.

LayoutTests:

  • inspector/codemirror/prettyprinting-css-rules-expected.txt:
  • inspector/codemirror/prettyprinting-css-rules.html:
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables-expected.css: Added.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables.css: Added.
1:13 PM Changeset in webkit [196592] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CodeMirror styles needs updated for CSS variables
https://bugs.webkit.org/show_bug.cgi?id=154216
rdar://problem/24644146

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SyntaxHighlightingDefaultTheme.css:

(.cm-s-default .cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Added .cm-variable-2.
(.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Ditto.

1:08 PM Changeset in webkit [196591] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[ARMv7] stress/op_rshift.js and stress/op_urshift.js are failing.
https://bugs.webkit.org/show_bug.cgi?id=151514

Reviewed by Filip Pizlo.

The issue turns out to be trivial: on ARMv7 (and traditional ARM too), arithmetic
shift right (ASR) and logical shift right (LSR) takes an immediate shift amount
from 1-32. See http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Cjacbgca.html.
An immediate shift amount of 0 is interpreted as a shift of 32 bits.

Meanwhile, our macro assembler is expecting the immediate shift value to be
between 0-31. As a result, a shift amount of 0 is being wrongly encoded with 0
bits which means shift right by 32 bits.

The fix is to check if the shift amount is 0, and if so, emit a move. Else,
emit the right shift as usual.

This issue does not affect left shifts, as the immediate shift amount for left
shifts is between 0-31 as our macro assembler expects.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::rshift32):
(JSC::MacroAssemblerARM::urshift32):
(JSC::MacroAssemblerARM::sub32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::rshift32):
(JSC::MacroAssemblerARMv7::urshift32):

  • tests/stress/op_rshift.js:
  • tests/stress/op_urshift.js:
  • Un-skip these tests. They should always pass now.
12:49 PM Changeset in webkit [196590] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

CMake build fix.

  • PlatformMac.cmake:
12:30 PM Changeset in webkit [196589] by achristensen@apple.com
  • 5 edits in trunk

Fix internal Windows build of projects built after WebKit
https://bugs.webkit.org/show_bug.cgi?id=154249
rdar://problem/24644805

Reviewed by Chris Dumez.

Source/WebKit:

  • PlatformWin.cmake:

Copy all generated headers to ForwardingHeaders/WebKit, not just WebKit.h.
This should fix problems related to not finding headers from other projects, such as AccessibleApplication.h.
WebKit.h, WebKitCOMAPI.h, and CFDictionaryPropertyBag.h were copied correctly, so this should copy the rest
of the needed headers.

Tools:

  • DumpRenderTree/PlatformWin.cmake:
  • MiniBrowser/win/CMakeLists.txt:

Don't include DerivedSources/WebKit/Interfaces to make MiniBrowser and DumpRenderTree
more like projects built internally after WebKit. They should only need to use what
is in ForwardingHeaders/WebKit.

12:09 PM Changeset in webkit [196588] by Chris Dumez
  • 3 edits
    2 adds in trunk

Regression(r196563): It is no longer possible to call window.addEventListener without an explicit 'this'
https://bugs.webkit.org/show_bug.cgi?id=154245

Reviewed by Ryosuke Niwa.

Source/WebCore:

This patch adds support for calling the EventListener API without an
explicit 'this' value. If no explicit 'this' value is passed, then we
fall back to using the global object. This matches Chrome and Firefox's
behavior. It also fixes the Dromaeo/cssquery-dojo.html test.

Test: fast/dom/Window/addEventListener-implicit-this.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateFunctionCastedThis):

LayoutTests:

Add a layout test to cover the use of the EventListener API without an
explicit 'this' value.

  • fast/dom/Window/addEventListener-implicit-this-expected.txt: Added.
  • fast/dom/Window/addEventListener-implicit-this.html: Added.
12:09 PM Changeset in webkit [196587] by fpizlo@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Parser::parseVariableDeclarationList should null check the node before attempting to create a new CommaExpr
https://bugs.webkit.org/show_bug.cgi?id=154244
rdar://problem/24290670

Reviewed by Michael Saboff.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::appendToCommaExpr): Catch the bug sooner in debug.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVariableDeclarationList): Fix the bug.

  • tests/stress/for-let-comma.js: Added. This used to crash in debug and release.
12:01 PM Changeset in webkit [196586] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source/bmalloc

Merged r196536. rdar://problem/24620164

11:59 AM Changeset in webkit [196585] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/bmalloc

Merged r196424. rdar://problem/24620164

11:58 AM Changeset in webkit [196584] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/bmalloc

Merged r196421. rdar://problem/24620164

11:56 AM Changeset in webkit [196583] by barraclough@apple.com
  • 2 edits in trunk/Source/WebCore

Organize, deduplicate & comment JSDOMWindowCustom getOwnPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=154224

Reviewed by Chris Dumez.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::jsDOMWindowGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):

  • organized property access sequence into a more logical order, removed duplicated code & added comments.

(WebCore::namedItemGetter): Deleted.

  • there was no need for a custom callback here; merged functionality into jsDOMWindowGetOwnPropertySlotNamedItemGetter.

(WebCore::jsDOMWindowGetOwnPropertySlotCrossOrigin): Deleted.

  • renamed to jsDOMWindowGetOwnPropertySlotRestrictedAccess (this now also handles frameless access).
10:54 AM Changeset in webkit [196582] by dbates@webkit.org
  • 6 edits in trunk

CSP: 'sandbox' should be ignored in report-only mode
https://bugs.webkit.org/show_bug.cgi?id=153167
<rdar://problem/22708669>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by Mike West):
<https://src.chromium.org/viewvc/blink?revision=165322&view=revision>

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportInvalidDirectiveInReportOnlyMode): Added. Logs a
console message to the console to explain that the specified directive is invalid in
report-only mode.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::applySandboxPolicy): Do not apply sandbox
policy when in report-only mode and call ContentSecurityPolicy::reportInvalidDirectiveInReportOnlyMode()
to log a message to the console.

LayoutTests:

Remove the entry from the TestExpectations file for the test
http/tests/security/contentSecurityPolicy/sandbox-report-only.html as it now passes.

10:53 AM Changeset in webkit [196581] by dbates@webkit.org
  • 5 edits in trunk

CSP: Allow schemeless source expressions to match an HTTP or HTTPS resource
https://bugs.webkit.org/show_bug.cgi?id=154177
<rdar://problem/22708772>

Reviewed by Brent Fulgham.

Source/WebCore:

Allow a schemeless source expression to match an HTTP or HTTPS subresource when the page is
delivered over HTTP as per section Matching Source Expressions of the Content Security Policy
2.0 spec., <https://www.w3.org/TR/2015/CR-CSP2-20150721/> (21 July 2015).

Currently we have logic that implements this functionality, but it is guarded behind the compile-
time macro ENABLE(CSP_NEXT) that is disabled by default. Instead we should always compile such
code. In subsequent commits we will move more code out from under the ENABLE(CSP_NEXT)-guard
towards removing the ENABLE_CSP_NEXT macro entirely.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::protocolMatchesSelf):

LayoutTests:

Update test case and expected result to test that a schemeless source expression
matches an HTTPS subresource (and does not trigger a Content Security Policy violation)
when the page is served over HTTP.

  • http/tests/security/contentSecurityPolicy/source-list-parsing-10-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-10.html: Change "no" to "yes"

so that we consider it a success (and continue printing "PASS") when we load and execute the
script, <https://127.0.0.1:8443/security/contentSecurityPolicy/resources/script.js>.

9:52 AM Changeset in webkit [196580] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fix byline to avoid bumping into content sticks out.

  • wp-content/themes/webkit/style.css:

(article .byline): Bump padding to avoid content with negative margins.

9:44 AM Changeset in webkit [196579] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196563

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
7:53 AM Changeset in webkit [196578] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/WebCore

[cmake] Consolidated Linux-specific file lists.
https://bugs.webkit.org/show_bug.cgi?id=154219

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-02-15
Reviewed by Gyuyoung Kim.

No new tests needed.

  • PlatformEfl.cmake: Moved Linux files and include dir to Linux.cmake.
  • PlatformGTK.cmake: Ditto.
  • platform/Linux.cmake: Added.
5:30 AM Changeset in webkit [196577] by Hunseop Jeong
  • 344 edits in trunk/LayoutTests

Unreviewed. EFL gardening after r195740.

  • platform/efl/tables/mozilla/bugs/bug10269-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug10269-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug10296-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug103533-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug106158-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug108340-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug110566-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug11321-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug113235-3-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug11944-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug119786-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug1261-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug12910-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug13105-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug13118-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug133756-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug133756-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug13484-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug13526-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug14159-3-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug149275-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug17130-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug1828-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug18558-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2050-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug21299-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug21918-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug221784-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug221784-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug22246-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug22246-2a-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2267-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug23072-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug23151-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug23299-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug24503-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug24627-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2469-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2479-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug24880-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug25086-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2516-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug25367-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2585-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug27038-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug27038-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug275625-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2757-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug278266-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug278385-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2886-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug29157-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2973-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3037-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3037-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug30985-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3191-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug32205-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug32205-5-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug32447-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3263-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3309-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug34538-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug35662-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3718-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug40828-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug4284-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug44523-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug45055-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug4520-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46268-3-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46268-5-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46268-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46480-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46480-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug4739-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug48028-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug48028-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug51140-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug55527-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug55694-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug56405-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug57300-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug57378-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug57828-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug5798-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug5799-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug5838-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug58402-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug60013-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug60992-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug63785-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug650-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug67864-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug67915-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug69187-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug709-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug7112-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug7112-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug75250-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug8032-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug82946-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug8361-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug83786-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug8381-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug9072-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug9271-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug93363-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug96343-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug965-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug97138-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug99923-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/efl/tables/mozilla/collapsing_borders/bug127040-expected.txt:
  • platform/efl/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/efl/tables/mozilla/core/captions-expected.txt:
  • platform/efl/tables/mozilla/core/col_widths_auto_auto-expected.txt:
  • platform/efl/tables/mozilla/core/col_widths_auto_autoPer-expected.txt:
  • platform/efl/tables/mozilla/core/col_widths_fix_autoPer-expected.txt:
  • platform/efl/tables/mozilla/core/row_span-expected.txt:
  • platform/efl/tables/mozilla/dom/appendCol2-expected.txt:
  • platform/efl/tables/mozilla/dom/appendRowsExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/appendTbodyExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCellsRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCellsShrink1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCellsShrink2-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCol1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCol2-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCol3-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteColGroup1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteColGroup2-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteRowsRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteRowsShrink1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteTbodyExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteTbodyRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/insertCellsExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/insertCellsExpand2-expected.txt:
  • platform/efl/tables/mozilla/dom/insertCellsRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/insertCellsRebuild2-expected.txt:
  • platform/efl/tables/mozilla/dom/insertRowsExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/insertRowsRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/tableDom-expected.txt:
  • platform/efl/tables/mozilla/marvin/body_col-expected.txt:
  • platform/efl/tables/mozilla/marvin/body_tbody-expected.txt:
  • platform/efl/tables/mozilla/marvin/body_tfoot-expected.txt:
  • platform/efl/tables/mozilla/marvin/body_thead-expected.txt:
  • platform/efl/tables/mozilla/marvin/col_span-expected.txt:
  • platform/efl/tables/mozilla/marvin/table_frame_border-expected.txt:
  • platform/efl/tables/mozilla/marvin/table_frame_box-expected.txt:
  • platform/efl/tables/mozilla/marvin/table_rules_all-expected.txt:
  • platform/efl/tables/mozilla/marvin/table_rules_none-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_border_0-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_border_1-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_border_2-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_border_3-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_caption_align_bot-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_caption_align_top-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_default-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_row_th_nowrap-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_colspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_height-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_nowrap-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_rowspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_colspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_height-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_rowspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_caption_align_bottom-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_caption_align_top-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_bgcolor_name-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_border-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_border_none-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_border_px-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_cellpadding-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_cellpadding_pct-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_cellspacing-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_cellspacing_pct-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_frame_void-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_rules_groups-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_rules_none-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_bgcolor_name-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_bgcolor_rgb-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_colspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_height-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_nowrap-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_rowspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_bgcolor_name-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_bgcolor_rgb-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_colspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_height-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_nowrap-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_bgcolor_name-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_bgcolor_rgb-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_style-expected.txt:
  • platform/efl/tables/mozilla/other/body_col-expected.txt:
  • platform/efl/tables/mozilla/other/cellspacing-expected.txt:
  • platform/efl/tables/mozilla/other/move_row-expected.txt:
  • platform/efl/tables/mozilla/other/padding-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug10140-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug101759-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug10216-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug104898-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug106336-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug11945-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug131020-3-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug14159-2-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug178855-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug18770-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug24880-1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug25707-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-11-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-12-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-13-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-14-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-16-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-17-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-18-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug32205-1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug32205-4-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug4294-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug46268-4-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug51000-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug65372-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug6933-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug7113-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug73629-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/core/backgrounds-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/core/captions3-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/core/conflicts-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/appendCells1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/appendCellsRebuild1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/appendCol1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/insertTbodyExpand1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/insertTbodyRebuild1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_above-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_below-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_hsides-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_lhs-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_rhs-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_void-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_vsides-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_rules_cols-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_rules_rows-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/tables_caption_align_left-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/tables_caption_align_right-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_caption_align_left-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_caption_align_right-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_colgroup_width_px-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_above-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_below-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_border-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_box-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_hsides-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_lhs-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_rhs-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_vsides-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_all-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_cols-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_rows-expected.txt:
4:28 AM Changeset in webkit [196576] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore
Fix the !(ENABLE(SVG_FONTS)
ENABLE(SVG_OTF_CONVERTER)) build after r196322

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

Reviewed by Myles C. Maxfield.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):

2:30 AM Changeset in webkit [196575] by Antti Koivisto
  • 5 edits
    2 adds in trunk

Add test for class change style invalidation optimization
https://bugs.webkit.org/show_bug.cgi?id=154226

Reviewed by Myles Maxfield.

Test for https://trac.webkit.org/r196383

Source/WebCore:

Add internals.styleChangeType function.

Test: fast/css/style-invalidation-class-change-descendants.html

  • testing/Internals.cpp:

(WebCore::Internals::nodeNeedsStyleRecalc):
(WebCore::asString):
(WebCore::Internals::styleChangeType):
(WebCore::Internals::description):

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

LayoutTests:

  • fast/css/style-invalidation-class-change-descendants-expected.txt: Added.
  • fast/css/style-invalidation-class-change-descendants.html: Added.
1:50 AM Changeset in webkit [196574] by Hunseop Jeong
  • 2 edits in trunk/LayoutTests

Unreviewed. EFL gardening. Mark more video tests to failure.

  • platform/efl/TestExpectations: Added more crash tests and moved the tests to upper position.
1:12 AM Changeset in webkit [196573] by commit-queue@webkit.org
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Improve the interface of Inst::shouldTryAliasingDef()
https://bugs.webkit.org/show_bug.cgi?id=154227

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-02-15
Reviewed by Andreas Kling.

Using Optional<> instead of a bool+reference looks cleaner
at the call sites.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::shouldTryAliasingDef):

  • b3/B3CheckSpecial.h:
  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::shouldTryAliasingDef):

  • b3/air/AirInst.h:
  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::shouldTryAliasingDef):

  • b3/air/AirIteratedRegisterCoalescing.cpp:
  • b3/air/AirSpecial.cpp:

(JSC::B3::Air::Special::shouldTryAliasingDef):

  • b3/air/AirSpecial.h:
12:39 AM Changeset in webkit [196572] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

[CMake][Mac] Remove WKNPAPIPlugInContainer.mm in WebKit2/PlatformMac.cmake
https://bugs.webkit.org/show_bug.cgi?id=154234

Reviewed by Csaba Osztrogonác.

  • PlatformMac.cmake: Remove WKNPAPIPlugInContainer.mm.

Feb 14, 2016:

9:10 PM Changeset in webkit [196571] by Simon Fraser
  • 3 edits
    2 adds in trunk

[CSS Filters] When applying an SVG filter on a composited image using CSS the image is rendered without the filter
https://bugs.webkit.org/show_bug.cgi?id=154108

Reviewed by Sam Weinig.
Source/WebCore:

When checking whether we can directly composite an image, we need to check for software-rendered
filters.

Test: compositing/filters/simple-image-with-svg-filter.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::isDirectlyCompositedImage):

LayoutTests:

  • compositing/filters/simple-image-with-svg-filter-expected.html: Added.
  • compositing/filters/simple-image-with-svg-filter.html: Added.
8:49 PM Changeset in webkit [196570] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed, land an additional Mac CMake build fix.

  • PlatformMac.cmake:
8:47 PM Changeset in webkit [196569] by Chris Dumez
  • 3 edits in trunk/Source/WebKit/win

Unreviewed Window build fix.

  • WebCoreStatistics.cpp:
  • WebJavaScriptCollector.cpp:
8:43 PM Changeset in webkit [196568] by Chris Dumez
  • 46 edits in trunk/Source/WebCore

Drop the [EventTarget] WebKit-specific IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=154171

Reviewed by Sam Weinig.

Drop the [EventTarget] WebKit-specific IDL extended attribute now that
all interfaces inherit EventTarget when they should.

No new tests, no Web-Exposed behavior change.

  • Modules/battery/BatteryManager.idl:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBOpenDBRequest.idl:
  • Modules/indexeddb/IDBRequest.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/mediasession/MediaRemoteControls.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediasource/SourceBufferList.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/notifications/Notification.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/websockets/WebSocket.idl:
  • bindings/scripts/CodeGeneratorGObject.pm:

(ImplementsInterface):
(SkipFunction): Deleted.
(GenerateCFile): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(InstanceNeedsVisitChildren):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/TestEventTarget.idl:
  • bindings/scripts/test/TestNode.idl:
  • css/FontLoader.idl:
  • dom/EventTarget.idl:
  • dom/MessagePort.idl:
  • dom/Node.idl:
  • dom/WebKitNamedFlow.idl:
  • fileapi/FileReader.idl:
  • html/MediaController.idl:
  • html/track/AudioTrackList.idl:
  • html/track/TextTrack.idl:
  • html/track/TextTrackCue.idl:
  • html/track/TextTrackList.idl:
  • html/track/VideoTrackList.idl:
  • loader/appcache/DOMApplicationCache.idl:
  • page/DOMWindow.idl:
  • page/EventSource.idl:
  • page/Performance.idl:
  • workers/WorkerGlobalScope.idl:
  • xml/XMLHttpRequest.idl:
  • xml/XMLHttpRequestUpload.idl:
7:53 PM Changeset in webkit [196567] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix the Mac CMake build after r196136

  • PlatformMac.cmake:
7:47 PM Changeset in webkit [196566] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Unreviewed attempt to fix the Windows build.

  • Modules/webdatabase/Database.cpp:
  • bridge/c/c_utility.cpp:
  • platform/MemoryPressureHandler.cpp:
6:23 PM Changeset in webkit [196565] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.5.17.1/Source

Versioning.

6:22 PM Changeset in webkit [196564] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.17.1

New tag.

6:17 PM Changeset in webkit [196563] by Chris Dumez
  • 29 edits
    3 adds in trunk

Window and WorkerGlobalScope should inherit EventTarget
https://bugs.webkit.org/show_bug.cgi?id=154170
<rdar://problem/24642377>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that a couple of checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Window and WorkerGlobalScope should inherit EventTarget instead of
duplicating the EventTarget API in their IDL. These were the last
interfaces that needed fixing. The next step will be to get rid
of the [EventTarget] IDL extended attribute and rely entirely
on the EventTarget inheritance.

Test:

  • fast/frames/detached-frame-eventListener.html
  • Covered by existing tests.
  • WebCore.xcodeproj/project.pbxproj:

Add JSEventTargetCustom.h header to the project.

  • bindings/js/JSDOMWindowCustom.cpp:

Drop custom bindings for Window's addEventListener() and
removeEventListener(). The only reason these needed custom
code was to add a check for frameless windows. The frameless
Window checks was moved to the respective methods in the
JSEventTarget generated bindings.

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):
Set WindowPrototype's prototype to EventTarget's prototype.

  • bindings/js/JSDOMWindowShell.h:
  • bindings/js/JSDictionary.cpp:

Include "DOMWindow.h" to fix the build.

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::JSEventTarget::toWrapped):
Handle DOMWindow and WorkerGlobalScope explicitely in toWrapped()
and get rid of the DOM_EVENT_TARGET_INTERFACES_FOR_EACH(TRY_TO_UNWRAP_WITH_INTERFACE)
now that all interfaces inherit EventTarget when they should.
The reason DOMWindow and WorkerGlobalScope still need special
handling is because their wrappers (JSDOMWindow /
JSWorkerGlobalScope) do not subclass JSEventTarget.

(WebCore::JSEventTargetOrGlobalScope::create):

  • bindings/js/JSEventTargetCustom.h: Added.

(WebCore::JSEventTargetOrGlobalScope::wrapped):
(WebCore::JSEventTargetOrGlobalScope::operator JSC::JSObject&):
(WebCore::JSEventTargetOrGlobalScope::JSEventTargetOrGlobalScope):
Add a wrapper type for JSEventTarget / JSDOMWindow and
JSWorkerGlobalScope for use in the generated bindings. This is
needed because JSDOMWindow and JSWorkerGlobalScope do not
subclass JSEventTarget. Subclassing JSEventTarget would be
complicated for them because they already subclass
JSDOMWindowBase / JSWorkerGlobalScopeBase, which subclasses
JSDOMGlobalObject.

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::initScript):
Set WorkerGlobalScopePrototype's prototype to EventTarget's prototype.

  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldGenerateToJSDeclaration):
Do not generate to toJS() implementation for interfaces that use
the [CustomProxyToJSObject] IDL extended attribute, even if they
inherit EventTarget.

(GetCastingHelperForThisObject):
To initialize castedThis from thisValue JSValue, we now use the
JSEventTargetOrGlobalScope wrapper for the EventTarget
implementation. This is to work around the fact that JSDOMWindow
and JSWorkerGlobalScope do not subclass JSEventTarget.

(GenerateFunctionCastedThis):

  • Drop code handling [WorkerGlobalScope] IDL extended attribute as there is no such attribute.
  • Use auto instead of auto* type for castedThis because JSEventTargetOrGlobalScope::create() returns a unique_ptr.
  • Do not check that castedThis inherits JSEventTarget in the EventTarget bindings code as this no longer holds true.

(GenerateImplementation):
Generate frameless window() and security checks for EventTarget
methods when thisValue is a JSDOMWindow.

  • dom/EventTarget.idl:

Add [JSCustomHeader] IDL Extended attribute as we need a header
to expose JSEventTargetOrGlobalScope class.

  • page/DOMWindow.idl:
  • workers/WorkerGlobalScope.idl:

Inherit EventTarget and stop duplicating the EventTarget API.
This matches the HTML specification.

LayoutTests:

  • fast/frames/detached-frame-eventListener-expected.txt: Added.
  • fast/frames/detached-frame-eventListener.html: Added.

Add test case to cover the use of the EventListener API on a detached
frame.

  • fast/loader/window-clearing-expected.txt:

Rebaseline now that window has one more object in its prototype chain.

  • http/tests/security/cross-frame-access-call-expected.txt:
  • http/tests/security/cross-frame-access-call.html:

Add test coverage for cross-origin access to window.dispatchEvent() which
should not be allowed, in addition to window.addEventListener() and
window.removeEventListener() which were already tested.

5:42 PM Changeset in webkit [196562] by Brian Burg
  • 7 edits in trunk/Source

WKAutomationDelegate's requestAutomationSession should take a suggested session identifier
https://bugs.webkit.org/show_bug.cgi?id=154012
<rdar://problem/24557697>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Add a string parameter to the client method for requesting a new session.

  • inspector/remote/RemoteInspector.h:

Source/WebKit2:

Add a string parameter to the delegate method for requesting a new session.

  • UIProcess/API/APIAutomationClient.h:

(API::AutomationClient::didRequestAutomationSession):
(API::AutomationClient::requestAutomationSession): Deleted.
Rename the client method to better match the delegate method's name.

  • UIProcess/API/Cocoa/_WKAutomationDelegate.h:
  • UIProcess/Cocoa/AutomationClient.h:
  • UIProcess/Cocoa/AutomationClient.mm:

(WebKit::AutomationClient::AutomationClient):
(WebKit::AutomationClient::requestAutomationSession):

5:26 PM Changeset in webkit [196561] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Small tweaks to some SimpleLineLayout code
https://bugs.webkit.org/show_bug.cgi?id=154229

Reviewed by Zalan Bujtas.

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow): Use std::ceil instead of ceilf.
Use auto instead of const auto& for a for loop where the local object is
copied and not a reference.
(WebCore::SimpleLineLayout::hitTestFlow): Use modern for loop.
(WebCore::SimpleLineLayout::collectFlowOverflow): Use std::ceil instead of
ceilf. Use a modern for loop, and use slightly more descriptive local
variable names.
(WebCore::SimpleLineLayout::computeBoundingBox): Use auto instead of
const auto& as above.
(WebCore::SimpleLineLayout::computeFirstRunLocation): Use auto and use
the name "range" for the range rather than the name "it", since the range
is not an iterator.
(WebCore::SimpleLineLayout::collectAbsoluteRects): Use auto instead of
const auto& as above.
(WebCore::SimpleLineLayout::collectAbsoluteQuads): Ditto.
(WebCore::SimpleLineLayout::showLineLayoutForFlow): Use modern for loop.

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::Run::text): Convert from a String
to a StringView using the StringView constructor instead of writing out
explicit 8-bit and 16-bit cases.

1:57 AM Changeset in webkit [196560] by Antti Koivisto
  • 5 edits
    2 adds in trunk/Source/WebCore

Factor class change style invalidation code into a class
https://bugs.webkit.org/show_bug.cgi?id=154163

Reviewed by Andreas Kling.

Factor this piece of functionality out of Element and into ClassChangeInvalidation class.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::classStringHasClassName):
(WebCore::Element::classAttributeChanged):
(WebCore::collectClasses): Deleted.
(WebCore::computeClassChange): Deleted.
(WebCore::invalidateStyleForClassChange): Deleted.

  • style/ClassChangeInvalidation.cpp: Added.

(WebCore::Style::ClassChangeInvalidation::computeClassChange):
(WebCore::Style::ClassChangeInvalidation::invalidateStyle):

  • style/ClassChangeInvalidation.h: Added.

(WebCore::Style::ClassChangeInvalidation::needsInvalidation):
(WebCore::Style::ClassChangeInvalidation::ClassChangeInvalidation):
(WebCore::Style::ClassChangeInvalidation::~ClassChangeInvalidation):

Note: See TracTimeline for information about the timeline view.