Timeline



Nov 21, 2015:

3:06 PM Changeset in webkit [192726] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Tiny cleanup in ComplexTextController::collectComplexTextRuns()
https://bugs.webkit.org/show_bug.cgi?id=151534

Reviewed by Zalan Bujtas.

The isMissingGlyph boolean is completely unnecessary. Its entire
responsiblity is duplicated by the "font" pointer.

No new tests because there is no behavior change.

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::collectComplexTextRuns):

12:02 PM Changeset in webkit [192725] by Michael Catanzaro
  • 8 edits
    8 copies in trunk

Rolled over to ChangeLog-2015-11-21

11:57 AM WebInspectorCodingStyleGuide edited by BJ Burg
(diff)
9:00 AM Changeset in webkit [192724] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] Off-by-one error in getStyleContext()
https://bugs.webkit.org/show_bug.cgi?id=151524

Reviewed by Carlos Garcia Campos.

GtkWidgetPath* path = gtk_widget_path_new();
gtk_widget_path_append_type(path, widgetType);
...
gtk_widget_path_iter_add_class(path, 0, GTK_STYLE_CLASS_BUTTON);
gtk_widget_path_iter_add_class(path, 1, "text-button");

Only one widget type was appended to the widget path, so the maximum valid index is 0. This
code means to add both style classes to the first widget type in the widget path, so the
second call should use index 0 rather than index 1.

This caused no bug in practice, because when the index is invalid,
gtk_widget_path_iter_add_class() automatically changes the index to the last valid position
in the widget path -- in this case, 0. This is routinely done with -1 as a convention for
specifying the last position in the widget path.

  • rendering/RenderThemeGtk.cpp:

(WebCore::getStyleContext):

8:57 AM Changeset in webkit [192723] by Michael Catanzaro
  • 3 edits in trunk/Source/WebCore

[GTK] Warning spam from GtkStyleContext
https://bugs.webkit.org/show_bug.cgi?id=151520

Reviewed by Carlos Garcia Campos.

Audit every use of gtk_style_context_get_* to fix compatibility with GTK+ 3.19. Some of
these were already fine and are only changed for clarity.

Company: gtk_style_context_get() (and _get_padding/border/color()) should only ever be

called with the same state as gtk_style_context_get_state()

Company: usually that's a simple replacing of the old state (like in the trace you posted)
Company: sometimes it requires calling gtk_style_context_set_sate() with the right state

first

Company: and in very rare cases it needs a gtk_style_context_save() before the set_state(),

too

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::adjustRectAccordingToMargin):

  • rendering/RenderThemeGtk.cpp:

(gtk_css_section_print):
(WebCore::getStyleContext):
(WebCore::RenderThemeGtk::initMediaColors):
(WebCore::renderButton):
(WebCore::getComboBoxMetrics):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::paintProgressBar):
(WebCore::spinButtonArrowSize):
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
(WebCore::styleColor):

Nov 20, 2015:

10:07 PM Changeset in webkit [192722] by akling@apple.com
  • 3 edits
    3 adds in trunk

REGRESSION(r192536): Null pointer dereference in JSPropertyNameEnumerator::visitChildren().
<https://webkit.org/b/151495>

Reviewed by Mark Lam.

Source/JavaScriptCore:

The copied space allocation in JSPropertyNameEnumerator::finishCreation()
may end up triggering a GC, and so JSPropertyNameEnumerator::visitChildren()
would get called while m_propertyNames was still null.

This patch fixes that by having visitChildren() check for pointer nullity
instead of the number of names, since that is non-zero even before the
allocation is made.

Added a test that induces GC during JSPropertyNameEnumerator construction
to cover this bug.

Test: property-name-enumerator-gc-151495.js

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::visitChildren):

LayoutTests:

  • js/property-name-enumerator-gc-151495.html: Added.
  • js/property-name-enumerator-gc-151495-expected.txt: Added.
  • js/script-tests/property-name-enumerator-gc-151495.js: Added.
8:40 PM Changeset in webkit [192721] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

GC timers should carry on gracefully when Heap claims it grew from GC.
<https://webkit.org/b/151521>

Reviewed by Mark Lam.

TL;DR the Heap "extra memory" reporting APIs are hard to use 100% correctly
and GC scheduling shouldn't break if someone makes a mistake with it.

The JSC::Heap allows you to report an extra memory cost for any GC object.
This is reported first when allocating the memory, and then each time the
object is visited during the marking phase.

When reporting an allocation, it's added to the Heap's "bytes allocated in
this cycle" counter. This contributes to the computed heap size at the start
of a collection.

When visiting a GC object that reports extra memory, it's added to the Heap's
"extra memory visited in this collection" counter. This contributes to the
computed heap size at the end of a collection.

As you can see, this means that visiting more memory than we said we allocated
can lead to the Heap thinking it's bigger after a collection than it was before.

Clients of this API do some sketchy things to compute costs, for instance
StringImpl cost is determined by dividing the number of bytes used for the
characters, and dividing it by the StringImpl's ref count. Since a JSString
could be backed by any StringImpl, any code that modifies a StringImpl's
ref count during collection will change the extra memory reported by all
JSString objects that wrap that StringImpl.

So anyways...

The object death rate, which is the basis for when to schedule the next
collection is computed like so:

deathRate = (sizeBeforeGC - sizeAfterGC) / sizeBeforeGC

This patch adds a safety mechanism that returns a zero death rate when the Heap
claims it grew from collection.

  • heap/EdenGCActivityCallback.cpp:

(JSC::EdenGCActivityCallback::deathRate):

  • heap/FullGCActivityCallback.cpp:

(JSC::FullGCActivityCallback::deathRate):

7:57 PM Changeset in webkit [192720] by beidson@apple.com
  • 16 edits
    2 adds in trunk

Modern IDB: After versionchange transactions complete, fire onsuccess on the original IDBOpenDBRequest
https://bugs.webkit.org/show_bug.cgi?id=151522

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/opendatabase-success-after-versionchange.html (And changes to other existing tests)

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::startVersionChangeTransaction):

  • Modules/indexeddb/client/IDBDatabaseImpl.h:
  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBClient::IDBOpenDBRequest::onUpgradeNeeded):

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::create):
(WebCore::IDBClient::IDBTransaction::IDBTransaction):
(WebCore::IDBClient::IDBTransaction::dispatchEvent):

  • Modules/indexeddb/client/IDBTransactionImpl.h:

LayoutTests:

  • storage/indexeddb/modern/deletedatabase-1-expected.txt:
  • storage/indexeddb/modern/deletedatabase-1.html:
  • storage/indexeddb/modern/deletedatabase-2-expected.txt:
  • storage/indexeddb/modern/deletedatabase-2.html:
  • storage/indexeddb/modern/opendatabase-success-after-versionchange-expected.txt: Added.
  • storage/indexeddb/modern/opendatabase-success-after-versionchange.html: Added.
  • storage/indexeddb/modern/opendatabase-versions-expected.txt:
  • storage/indexeddb/modern/opendatabase-versions.html:
  • storage/indexeddb/modern/versionchange-event-expected.txt:
  • storage/indexeddb/modern/versionchange-event.html:
7:31 PM Changeset in webkit [192719] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline does not immediately update current time after switching tabs while recording
https://bugs.webkit.org/show_bug.cgi?id=151528

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

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.shown):
Provide a number so that _startUpdatingCurrentTime doesn't decide
to wait until the next event to update current time.

(WebInspector.TimelineRecordingContentView.prototype._update):
When switching tabs we stop updating and hit this code. However
we want to keep _lastUpdateTimestamp so that if we switch back
to the tab we can re-compute the current time. So don't clear it
in cases where the view was hidden, as it might need to use
it when it is shown again.

7:29 PM Changeset in webkit [192718] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove "Show only resources with breakpoints" filter button
https://bugs.webkit.org/show_bug.cgi?id=151517

Reviewed by Timothy Hatcher.

Removed filter button in preparation for https://bugs.webkit.org/show_bug.cgi?id=151119.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.showResourcesWithBreakpointsOnlyFilterFunction): Deleted.
(WebInspector.DebuggerSidebarPanel): Deleted.

7:16 PM Changeset in webkit [192717] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix for old version of PHP.

  • public/api/runs.php:
7:12 PM Changeset in webkit [192716] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard's should not include results more than 366 days old in JSON
https://bugs.webkit.org/show_bug.cgi?id=151529

Reviewed by Timothy Hatcher.

Don't return results more than 366 days old in /api/runs/ JSON API.
This is a ~5% runtime improvement and reduces the JSON file size by 20-50% in the internal perf dashboard.

  • public/api/runs.php:

(main): Added the support for "?noResults" to avoid echoing results. This is useful for debugging.
Also instantiate RunsGenerator before issuing the query to find all configurations so that the runtime cost
of doing so will be included in elapsedTime.
(RunsGenerator::fetch_runs): Skip a row when its build and commit times are more than 366 days old.
(RunsGenerator::format_run): Takes build_time and revisions as arguments since fetch_runs uses them now.
(RunsGenerator::parse_revisions_array): Compute the max of commit times.

7:05 PM Changeset in webkit [192715] by Simon Fraser
  • 3 edits in trunk/PerformanceTests

Animometer: graphs should not do interpolation
https://bugs.webkit.org/show_bug.cgi?id=151526

Reviewed by Simon Fraser.

Having the graphs do interpolation is misleading, because you can't see the actual data.

Also remove "shape-rendering: crispEdges;" so the lines get antialiased.

  • Animometer/runner/resources/animometer.css:

(section#test-graph > data > svg): Deleted.

  • Animometer/runner/resources/graph.js:

(graph): Deleted.

6:51 PM Changeset in webkit [192714] by Said Abou-Hallawa
  • 2 edits in trunk/Tools

Unreviewed, add watchlist for PerformanceTests/Animometer and add myself.

  • Scripts/webkitpy/common/config/watchlist:
6:29 PM Changeset in webkit [192713] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark fast/replaced/replaced-breaking.html as failing on ElCapitan-wk1.

The test gives a slightly different output of this configuration only
and I don't think we can have platform-specific test expectations for
this particular configuration.

  • platform/mac-wk1/TestExpectations:
5:51 PM Changeset in webkit [192712] by Simon Fraser
  • 17 edits in trunk/Source

More deviceRGB color cleanup
https://bugs.webkit.org/show_bug.cgi?id=151523
<rdar://problem/23638597>

Reviewed by Tim Horton.

Replace calls to deviceRGBColorSpaceRef() with sRGBColorSpaceRef(), and use
sRGBColorSpaceRef() in a few places that were manually creating the colorspace.

Also use cachedCGColor() in a more places that were manually constructing CGColorRefs
from Colors.

Source/WebCore:

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::createImageFromPixelBuffer):

  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::setBackgroundColor):
(PlatformCALayerCocoa::setBorderColor):

  • platform/graphics/ca/cocoa/WebSystemBackdropLayer.mm:

(-[WebLightSystemBackdropLayer init]):
(-[WebDarkSystemBackdropLayer init]):

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::platformGradient):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::toDataURL):
(WebCore::ImageDataToDataURL):

  • platform/graphics/mac/GraphicsContextMac.mm:

(WebCore::linearRGBColorSpaceRef):

  • platform/graphics/mac/WebGLLayer.mm:

(-[WebGLLayer copyImageSnapshotWithColorSpace:]):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::currentFrameCGImage):

  • rendering/RenderThemeIOS.mm:

(WebCore::drawRadialGradient):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuListButtonGradients):
(WebCore::RenderThemeMac::paintSliderTrack):

Source/WebKit2:

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):
(WebKit::ShareableBitmap::createCGImage):

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::cgColorFromColor):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::initializeDebugIndicator):

5:42 PM Changeset in webkit [192711] by commit-queue@webkit.org
  • 16 edits in trunk/Source/WebCore

Renaming PageCache suspension code to support more reasons for suspension.
https://bugs.webkit.org/show_bug.cgi?id=151527

Patch by Katlyn Graff <kgraff@apple.com> on 2015-11-20
Reviewed by Ryosuke Niwa.

No new tests because this is simply a refactor.

Renamed Element:: and Document:: documentWillSuspendForPageCache(),
documentDidResumeFromPageCache(),
registerForPageCacheSuspensionCallbacks(),
unregisterForPageCacheSuspensionCallbacks() to prepare to support
alternate reasons for document-level suspension.

  • dom/Document.cpp:

(WebCore::Document::suspend):
(WebCore::Document::resume):
(WebCore::Document::registerForDocumentSuspensionCallbacks):
(WebCore::Document::unregisterForDocumentSuspensionCallbacks):
(WebCore::Document::documentWillSuspendForPageCache): Deleted.
(WebCore::Document::documentDidResumeFromPageCache): Deleted.
(WebCore::Document::registerForPageCacheSuspensionCallbacks): Deleted.
(WebCore::Document::unregisterForPageCacheSuspensionCallbacks): Deleted.

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

(WebCore::Element::prepareForDocumentSuspension):
(WebCore::Element::resumeFromDocumentSuspension):
(WebCore::Element::documentWillSuspendForPageCache): Deleted.
(WebCore::Element::documentDidResumeFromPageCache): Deleted.

  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore):
(WebCore::CachedFrame::CachedFrame):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::parseAttribute):
(WebCore::HTMLFormElement::resumeFromDocumentSuspension):
(WebCore::HTMLFormElement::didMoveToNewDocument):
(WebCore::HTMLFormElement::documentDidResumeFromPageCache): Deleted.

  • html/HTMLFormElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::registerForSuspensionCallbackIfNeeded):
(WebCore::HTMLInputElement::unregisterForSuspensionCallbackIfNeeded):
(WebCore::HTMLInputElement::resumeFromDocumentSuspension):
(WebCore::HTMLInputElement::prepareForDocumentSuspension):
(WebCore::HTMLInputElement::didMoveToNewDocument):
(WebCore::HTMLInputElement::documentDidResumeFromPageCache): Deleted.
(WebCore::HTMLInputElement::documentWillSuspendForPageCache): Deleted.

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

(WebCore::HTMLMediaElement::registerWithDocument):
(WebCore::HTMLMediaElement::unregisterWithDocument):
(WebCore::HTMLMediaElement::prepareForDocumentSuspension):
(WebCore::HTMLMediaElement::resumeFromDocumentSuspension):
(WebCore::HTMLMediaElement::documentWillSuspendForPageCache): Deleted.
(WebCore::HTMLMediaElement::documentDidResumeFromPageCache): Deleted.

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

(WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement):
(WebCore::HTMLPlugInImageElement::createElementRenderer):
(WebCore::HTMLPlugInImageElement::didMoveToNewDocument):
(WebCore::HTMLPlugInImageElement::prepareForDocumentSuspension):
(WebCore::HTMLPlugInImageElement::resumeFromDocumentSuspension):
(WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache): Deleted.
(WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache): Deleted.

  • html/HTMLPlugInImageElement.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::~SVGSVGElement):
(WebCore::SVGSVGElement::didMoveToNewDocument):
(WebCore::SVGSVGElement::prepareForDocumentSuspension):
(WebCore::SVGSVGElement::resumeFromDocumentSuspension):
(WebCore::SVGSVGElement::documentWillSuspendForPageCache): Deleted.
(WebCore::SVGSVGElement::documentDidResumeFromPageCache): Deleted.

  • svg/SVGSVGElement.h:
4:20 PM Changeset in webkit [192710] by Chris Dumez
  • 2 edits in trunk/LayoutTests

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

as it may cause WKTR to crash when the Flash plugin is
installed (Requested by cdumez on #webkit).

Reverted changeset:

"Unreviewed gardening, update fast/replaced/replaced-
breaking.html"
http://trac.webkit.org/changeset/192139

Patch by Commit Queue <commit-queue@webkit.org> on 2015-11-20

4:04 PM Changeset in webkit [192709] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix the Windows build.

  • platform/graphics/cg/IOSurfacePool.h:
3:45 PM Changeset in webkit [192708] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

New JSC tests introduced in r192664 fail on ARM.
https://bugs.webkit.org/show_bug.cgi?id=151485

Reviewed by Geoffrey Garen.

The newly added tests are exposing some pre-existing bugs. The bugs are tracked here:

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

Skipping the tests for now.

  • tests/stress/op_div.js:
  • tests/stress/op_rshift.js:
  • tests/stress/op_urshift.js:
3:37 PM Changeset in webkit [192707] by ap@apple.com
  • 3 edits
    2 adds in trunk/Tools

Went a bit too far, revert part of the previous patch.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Mavericks.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Mavericks@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
3:16 PM Changeset in webkit [192706] by ap@apple.com
  • 11 edits
    2 deletes in trunk/Tools

Remove Mavericks bots.

Rubber-stamped by Lucas Forschler.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Mavericks.png: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Mavericks@2x.png: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
  • BuildSlaveSupport/build.webkit.org-config/templates/root.html:
  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
  • Scripts/copy-webkitlibraries-to-product-directory:
3:16 PM Changeset in webkit [192705] by commit-queue@webkit.org
  • 8 edits
    1 move
    3 adds
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Add support for Gradients in the Visual sidebar background editor
https://bugs.webkit.org/show_bug.cgi?id=150494

Patch by Devin Rousso <Devin Rousso> on 2015-11-20
Reviewed by Timothy Hatcher.

Allows the editors in the Visual sidebar Background Style section to
work with gradients and data URIs.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/CodeMirrorGradientEditingController.css: Deleted.

Some styling was reused in VisualStyleBackgroundPicker.css.

  • UserInterface/Controllers/CodeMirrorGradientEditingController.js:

(WebInspector.CodeMirrorGradientEditingController):
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
(WebInspector.CodeMirrorGradientEditingController.prototype._gradientEditorGradientChanged):
(WebInspector.CodeMirrorGradientEditingController.prototype.handleEvent): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopsDidChange): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype.dragToAdjustControllerWasAdjustedByAmount): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._angleInputValueDidChange): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._handleChangeEvent): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._colorPickerColorChanged): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._updateCSSClassForGradientType): Deleted.
Reworked gradient editor popup into WebInspector.GradientEditor.

  • UserInterface/Main.html:
  • UserInterface/Models/Gradient.js:

(WebInspector.Gradient.fromString):
(WebInspector.Gradient.stopsWithComponents):
(WebInspector.LinearGradient.linearGradientWithComponents):
Removed console.error statements as they didn't do anything but clog the console.

  • UserInterface/Views/GradientEditor.css: Added.

(.gradient-editor):
(.gradient-editor.radial-gradient):
(.gradient-editor.editing-color):
(.gradient-editor.radial-gradient.editing-color):
(.gradient-editor > .gradient-type-select):
(.gradient-editor > .gradient-slider):
(.gradient-editor > .color-picker):
(.gradient-editor > .color-picker > .slider):
(.gradient-editor > .color-picker > .brightness):
(.gradient-editor > .color-picker > .opacity):
(.gradient-editor > .gradient-angle):
(.gradient-editor.radial-gradient > .gradient-angle):
(.gradient-editor > .gradient-angle > input):

  • UserInterface/Views/GradientEditor.js: Added.

(WebInspector.GradientEditor):
(WebInspector.GradientEditor.prototype.get element):
(WebInspector.GradientEditor.prototype.set gradient):
(WebInspector.GradientEditor.prototype.get gradient):
(WebInspector.GradientEditor.prototype.gradientSliderStopsDidChange):
(WebInspector.GradientEditor.prototype.gradientSliderStopWasSelected):
(WebInspector.GradientEditor.prototype.dragToAdjustControllerWasAdjustedByAmount):
(WebInspector.GradientEditor.prototype._updateCSSClassForGradientType):
(WebInspector.GradientEditor.prototype._gradientTypeChanged):
(WebInspector.GradientEditor.prototype._colorPickerColorChanged):
(WebInspector.GradientEditor.prototype._angleChanged):
(WebInspector.GradientEditor.prototype._angleInputValueDidChange):
New standalone editor for CSS Gradients.

  • UserInterface/Views/VisualStyleBackgroundPicker.css: Added.

(.visual-style-property-container.background-picker > .visual-style-property-value-container):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-gradient-swatch):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-gradient-swatch:hover):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-gradient-swatch:active):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-gradient-swatch > span):
(.visual-style-property-container.background-picker > .visual-style-property-value-container.gradient-value > .color-gradient-swatch):
(.visual-style-property-container.background-picker > .visual-style-property-value-container.gradient-value > .color-gradient-swatch + .value-input):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .value-input):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .value-input[disabled]):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .value-type-picker-select):

  • UserInterface/Views/VisualStyleBackgroundPicker.js: Added.

(WebInspector.VisualStyleBackgroundPicker):
(WebInspector.VisualStyleBackgroundPicker.prototype.get value):
(WebInspector.VisualStyleBackgroundPicker.prototype.set value):
(WebInspector.VisualStyleBackgroundPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleBackgroundPicker.prototype.parseValue):
(WebInspector.VisualStyleBackgroundPicker.prototype._updateValueInput):
(WebInspector.VisualStyleBackgroundPicker.prototype._updateGradientSwatch):
(WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchClicked):
(WebInspector.VisualStyleBackgroundPicker.prototype._gradientEditorGradientChanged):
(WebInspector.VisualStyleBackgroundPicker.prototype._valueInputValueChanged):
(WebInspector.VisualStyleBackgroundPicker.prototype._keywordSelectMouseDown):
(WebInspector.VisualStyleBackgroundPicker.prototype._handleKeywordChanged):
(WebInspector.VisualStyleBackgroundPicker.prototype._createValueOptions):
(WebInspector.VisualStyleBackgroundPicker.prototype._addAdvancedValues):
(WebInspector.VisualStyleBackgroundPicker.prototype._removeAdvancedValues):
(WebInspector.VisualStyleBackgroundPicker.prototype._toggleTabbingOfSelectableElements):
Visual property editor for the CSS background-image property. Supports
limited keywords, as well as url() and gradients.

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:

(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
Fixed regular expression parsing to not match commas inside parenthesis.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):

  • UserInterface/Views/VisualStylePropertyEditorLink.css:

(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-border):
Fixed spacing of link line.

  • UserInterface/Views/VisualStyleURLInput.js: Removed.

Reworked into VisualStyleBackgroundPicker.js.

3:14 PM Changeset in webkit [192704] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Update the patch and the plan files of the graphics benchmark with the latest revision
https://bugs.webkit.org/show_bug.cgi?id=151503

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-11-20
Reviewed by Ryosuke Niwa.

The time for each graphics test has been shortened from 30 seconds to 10
seconds. We need to update the graphics benchmark patch and plan files so
we can get the results faster. Also this will allow running the benchmark
also on the iOS performance bots.

  • Scripts/webkitpy/benchmark_runner/data/patches/Animometer.patch:
  • Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan:
3:10 PM Changeset in webkit [192703] by ggaren@apple.com
  • 3 edits in trunk/Source/WebKit2

A window with a hung tab waits 5s before becoming active
https://bugs.webkit.org/show_bug.cgi?id=151426

Reviewed by Sam Weinig.

This patch adds an optimization to skip the synchronous web process
message to check for a legacy scrollbar when we know that legacy
scrollbars are not enabled.

(Note that legacy scrollbars don't work quite right, due to
<rdar://problem/23585420> and <rdar://problem/23605296>. Still, I verified
with logging that we do the synchronous message when legacy scrollbars
are enabled.)

A consequence of this change is that we will no longer support
click-to-scroll-while-inactive behavior for scrollbars with custom looks
on systems with modern scrollbars. I spoke with Beth and Dan, and they
agreed that this is a reasonable change to make, since we don't support
click-to-scroll-while-inactive behavior for fully custom scrollbars either,
and since systems with modern scrollbars typically use swipe to scroll.

  • UIProcess/Cocoa/WebViewImpl.h: Added some helper functions to explain

the behaviors we're checking for.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::mightBeginDragWhileInactive): Factored out from
shouldDelayWindowOrderingForEvent.

(WebKit::WebViewImpl::mightBeginScrollWhileInactive): New function.

(WebKit::WebViewImpl::acceptsFirstMouse): Moved this function next to
shouldDelayWindowOrderingForEvent because their responsibilities are
very similar. Added a fast path check for when we know that we will
not accept first mouse because we can't start a drag or scroll by
clicking while inactive.

(WebKit::WebViewImpl::shouldDelayWindowOrderingForEvent): Refactored
to use the helper function. Behavior unchanged.

3:10 PM Changeset in webkit [192702] by ggaren@apple.com
  • 8 edits in trunk/Source/WebKit2

A hung webpage pretends to be responsive if you scroll
https://bugs.webkit.org/show_bug.cgi?id=151518

Reviewed by Sam Weinig.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::didReceiveEvent): Don't treat wheel events as
starting or stopping the responsiveness timer. Wheel events usually
process on the event dispatch thread, which responds even if the main
thread is hung.

Instead, send an out-of-band ping to the main thread to verify that
it is still responsive and we'll be able to paint and respond to clicks
after scrolling.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::sendMainThreadPing):
(WebKit::WebProcessProxy::didReceiveMainThreadPing):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in: UI process support for pinging

the main thread in the web process.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::mainThreadPing):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in: Web process support for responding

to pings.

2:55 PM Changeset in webkit [192701] by Simon Fraser
  • 7 edits in trunk/Source

Allow more buffer formats in the IOSurface pool
https://bugs.webkit.org/show_bug.cgi?id=151516

Reviewed by Tim Horton.
Source/WebCore:

Previously IOSurface::create was only looking in the pool for RGBA-format surfaces. Change that to
always look in the pool, and to cache all format types. We include format in the criteria used
to pick a surface from the pool.

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::surfaceMatchesParameters):
(WebCore::IOSurfacePool::takeSurface):
(WebCore::IOSurfacePool::shouldCacheFormat):
(WebCore::IOSurfacePool::shouldCacheSurface):
(WebCore::IOSurfacePool::addSurface):

  • platform/graphics/cg/IOSurfacePool.h:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::surfaceFromPool):
(IOSurface::create):
(IOSurface::IOSurface):

Source/WebKit2:

Have RemoteLayerBackingStore go through a static function on IOSurface to return
a surface to the pool, rather than knowing about IOSurfacePool directly.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::Buffer::discard):

2:35 PM Changeset in webkit [192700] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Support High DPI drawing with CACFLayers
https://bugs.webkit.org/show_bug.cgi?id=147242
<rdar://problem/19861992>

Reviewed by Simon Fraser.

  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:

(WebCore::WKCACFViewLayerTreeHost::initializeContext): Set correct content scale factor
for current screen, and apply an appropriate base transform to the CACFLayer so drawing
operations are done properly.

2:31 PM Changeset in webkit [192699] by fpizlo@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

B3 should have a Select opcode
https://bugs.webkit.org/show_bug.cgi?id=150762

Reviewed by Benjamin Poulain.

This cleans up our conditional move implementation - specifically so that it distinguishes between
comparing the low 32 bits of a GPR and all bits of a GPR - and fixes bugs with operand ordering. It
then adds a Select opcode to B3 and adds all of the strength reduction and lowering magic that it
needs. Finally this change implements FTL::Output::select() in terms of B3::Select.

This patch lets us run Kraken/imaging-gaussian-blur. Running that benchmark using FTL+B3 is a 17%
speed-up. The compile times go down dramatically (by about 7x) and code quality stays about the same.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::moveDoubleConditionally32):
(JSC::MacroAssembler::moveDoubleConditionally64):
(JSC::MacroAssembler::moveDoubleConditionallyTest32):
(JSC::MacroAssembler::moveDoubleConditionallyTest64):
(JSC::MacroAssembler::moveDoubleConditionallyDouble):
(JSC::MacroAssembler::lea):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::move):
(JSC::MacroAssemblerX86Common::moveConditionallyDouble):
(JSC::MacroAssemblerX86Common::zeroExtend32ToPtr):
(JSC::MacroAssemblerX86Common::moveConditionally32):
(JSC::MacroAssemblerX86Common::moveConditionallyTest32):
(JSC::MacroAssemblerX86Common::set32):
(JSC::MacroAssemblerX86Common::cmov):
(JSC::MacroAssemblerX86Common::moveConditionally): Deleted.
(JSC::MacroAssemblerX86Common::moveConditionallyTest): Deleted.

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::branchNeg64):
(JSC::MacroAssemblerX86_64::moveConditionally64):
(JSC::MacroAssemblerX86_64::moveConditionallyTest64):
(JSC::MacroAssemblerX86_64::abortWithReason):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::cmovl_rr):
(JSC::X86Assembler::cmovl_mr):
(JSC::X86Assembler::cmovel_rr):
(JSC::X86Assembler::cmovnel_rr):
(JSC::X86Assembler::cmovpl_rr):
(JSC::X86Assembler::cmovnpl_rr):
(JSC::X86Assembler::cmovq_rr):
(JSC::X86Assembler::cmovq_mr):
(JSC::X86Assembler::cmoveq_rr):
(JSC::X86Assembler::cmovneq_rr):
(JSC::X86Assembler::cmovpq_rr):
(JSC::X86Assembler::cmovnpq_rr):

  • b3/B3LowerToAir.cpp:

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

  • b3/B3MoveConstants.cpp:
  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3ReduceStrength.cpp:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::checkOpcode):
(JSC::B3::Value::typeFor):

  • b3/B3Value.h:
  • b3/B3ValueKey.cpp:

(JSC::B3::ValueKey::dump):
(JSC::B3::ValueKey::materialize):

  • b3/B3ValueKey.h:

(JSC::B3::ValueKey::ValueKey):
(JSC::B3::ValueKey::hash):
(JSC::B3::ValueKey::operator bool):

  • b3/B3ValueKeyInlines.h:

(JSC::B3::ValueKey::ValueKey):
(JSC::B3::ValueKey::child):

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testTruncSExt32):
(JSC::B3::testBasicSelect):
(JSC::B3::testSelectTest):
(JSC::B3::testSelectCompareDouble):
(JSC::B3::testSelectDouble):
(JSC::B3::testSelectDoubleTest):
(JSC::B3::testSelectDoubleCompareDouble):
(JSC::B3::zero):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::testIsZeroPtr):
(JSC::FTL::Output::testNonZeroPtr):
(JSC::FTL::Output::select):
(JSC::FTL::Output::extractValue):
(JSC::FTL::Output::fence):

2:14 PM Changeset in webkit [192698] by beidson@apple.com
  • 10 edits in trunk

Modern IDB: In the VersionChangeEvent for delete database calls, oldVersion should be null instead of 0.
https://bugs.webkit.org/show_bug.cgi?id=151481

Reviewed by Sam Weinig.

Source/WebCore:

No new tests, covered by changes to:

storage/indexeddb/modern/deletedatabase-1.html
storage/indexeddb/modern/deletedatabase-2.html

  • Modules/indexeddb/IDBVersionChangeEvent.h:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • Modules/indexeddb/client/IDBVersionChangeEventImpl.cpp:

(WebCore::IDBClient::IDBVersionChangeEvent::newVersion):

  • Modules/indexeddb/client/IDBVersionChangeEventImpl.h:
  • Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp:

(WebCore::LegacyVersionChangeEvent::newVersion):

  • Modules/indexeddb/legacy/LegacyVersionChangeEvent.h:

LayoutTests:

  • storage/indexeddb/modern/deletedatabase-1-expected.txt:
  • storage/indexeddb/modern/deletedatabase-2-expected.txt:
2:10 PM Changeset in webkit [192697] by achristensen@apple.com
  • 96 edits in trunk

Remove NETWORK_PROCESS compile flag
https://bugs.webkit.org/show_bug.cgi?id=151512

Reviewed by Tim Horton.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebKit2:

  • CMakeLists.txt:
  • NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm:

(NetworkProcessMain):

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::filesInBlob):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::blobSize):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkLoad.cpp:
  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkLoadParameters.cpp:

(WebKit::NetworkLoadParameters::NetworkLoadParameters):

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkResourceLoader.messages.in:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::clearDiskCache):

  • NetworkProcess/efl/NetworkProcessMainEfl.cpp:

(WebKit::NetworkProcessMainUnix):

  • NetworkProcess/gtk/NetworkProcessMainGtk.cpp:

(WebKit::NetworkProcessMainUnix):

  • NetworkProcess/ios/NetworkProcessIOS.mm:
  • NetworkProcess/mac/NetworkLoadMac.mm:
  • NetworkProcess/mac/NetworkProcessMac.mm:
  • NetworkProcess/mac/NetworkResourceLoaderMac.mm:

(WebKit::NetworkResourceLoader::willCacheResponseAsync):

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformTerminate):

  • NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:

(WebKit::RemoteNetworkingContext::storageSession):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:

(WebKit::CustomProtocolManager::initialize):
(WebKit::CustomProtocolManager::addCustomProtocol):

  • Shared/Network/CustomProtocols/CustomProtocolManager.h:
  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:

(WebKit::CustomProtocolManager::supplementName):
(WebKit::CustomProtocolManager::initialize):
(WebKit::CustomProtocolManager::registerScheme):

  • Shared/Network/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::decode):

  • Shared/Network/NetworkProcessCreationParameters.h:
  • Shared/Network/NetworkProcessSupplement.h:

(WebKit::NetworkProcessSupplement::initialize):

  • Shared/Network/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::decode):

  • Shared/Network/NetworkResourceLoadParameters.h:
  • Shared/ProcessExecutablePath.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/efl/ProcessExecutablePathEfl.cpp:

(WebKit::executablePathOfPluginProcess):
(WebKit::executablePathOfNetworkProcess):
(WebKit::executablePathOfDatabaseProcess):

  • Shared/gtk/ProcessExecutablePathGtk.cpp:

(WebKit::executablePathOfPluginProcess):
(WebKit::executablePathOfNetworkProcess):
(WebKit::executablePathOfDatabaseProcess):

  • Shared/mac/CookieStorageShim.h:
  • Shared/mac/CookieStorageShim.mm:

(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

  • Shared/mac/CookieStorageShimLibrary.cpp:
  • Shared/mac/CookieStorageShimLibrary.h:
  • UIProcess/API/APISession.cpp:

(API::Session::~Session):

  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextGetNetworkProcessIdentifier):

  • UIProcess/API/efl/ewk_context.cpp:

(ewk_context_process_model_set):
(ewk_context_process_model_get):
(ewk_context_tls_error_policy_get):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::updateProcessSuppressionState):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::platformInvalidateContext):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::cancel):

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::processTypeAsString):
(WebKit::ProcessLauncher::getProcessTypeFromString):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::computeProcessShimPath):
(WebKit::serviceName):
(WebKit::shouldLeakBoost):
(WebKit::createProcess):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/Network/mac/NetworkProcessProxyMac.mm:

(WebKit::NetworkProcessProxy::platformGetLaunchOptions):

  • UIProcess/Network/soup/NetworkProcessProxySoup.cpp:

(WebKit::NetworkProcessProxy::platformGetLaunchOptions):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setSessionID):
(WebKit::WebPageProxy::initializeWebPage):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::initializeClient):
(WebKit::WebProcessPool::networkingProcessConnection):
(WebKit::WebProcessPool::languageChanged):
(WebKit::WebProcessPool::setUsesNetworkProcess):
(WebKit::WebProcessPool::usesNetworkProcess):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::getNetworkProcessConnection):
(WebKit::WebProcessPool::ensureDatabaseProcess):
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::download):
(WebKit::WebProcessPool::resumeDownload):
(WebKit::WebProcessPool::setAdditionalPluginsDirectory):
(WebKit::WebProcessPool::networkProcessIdentifier):
(WebKit::WebProcessPool::setAlwaysUsesComplexTextCodePath):
(WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation):
(WebKit::WebProcessPool::registerURLSchemeAsLocal):
(WebKit::WebProcessPool::setCacheModel):
(WebKit::WebProcessPool::setDefaultRequestTimeoutInterval):
(WebKit::WebProcessPool::createDownloadProxy):
(WebKit::WebProcessPool::useTestingNetworkSession):
(WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost):
(WebKit::WebProcessPool::requestNetworkingStatistics):
(WebKit::WebProcessPool::handleMessage):

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToNetworkingProcess):
(WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getPluginProcessConnection):
(WebKit::WebProcessProxy::getNetworkProcessConnection):
(WebKit::WebProcessProxy::getDatabaseProcessConnection):
(WebKit::WebProcessProxy::createDownloadProxy):
(WebKit::WebProcessProxy::didCancelProcessSuspension):
(WebKit::WebProcessProxy::reinstateNetworkProcessAssertionState):
(WebKit::WebProcessProxy::didSetAssertionState):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::throttler):

  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::cloneSessionData):

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::initInspectorServer):
(WebKit::WebProcessPool::setIgnoreTLSErrors):

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • WebKit2Prefix.h:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::blobSize):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:
  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::networkProcessCrashed):

  • WebProcess/Network/WebResourceLoadScheduler.h:
  • WebProcess/Network/WebResourceLoader.cpp:
  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::initializeBrowserFuncs):
(WebKit::netscapeBrowserFuncs):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::registerRedirect):
(WebKit::NetscapePlugin::urlRedirectResponse):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::resourceLoadScheduler):
(WebKit::WebPlatformStrategies::createBlobRegistry):

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

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::registerURLSchemeAsEmptyDocument):
(WebKit::WebProcess::usesNetworkProcess):
(WebKit::WebProcess::networkConnection):
(WebKit::WebProcess::webResourceLoadScheduler):
(WebKit::WebProcess::webToDatabaseProcessConnectionClosed):
(WebKit::WebProcess::prefetchDNS):

  • WebProcess/WebProcess.h:
  • config.h:
2:07 PM Changeset in webkit [192696] by benjamin@webkit.org
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Add Air lowering to BitNot() for Xor(value, -1)
https://bugs.webkit.org/show_bug.cgi?id=151474

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-20
Reviewed by Filip Pizlo.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::not32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::not64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::notq_r):
(JSC::X86Assembler::notq_m):

  • b3/B3LowerToAir.cpp:

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

  • b3/B3ReduceStrength.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testNegValueSubOne):
(JSC::B3::testNegValueSubOne32):
(JSC::B3::testBitNotArg):
(JSC::B3::testBitNotImm):
(JSC::B3::testBitNotMem):
(JSC::B3::testBitNotArg32):
(JSC::B3::testBitNotImm32):
(JSC::B3::testBitNotMem32):
(JSC::B3::testBitNotOnBooleanAndBranch32):
(JSC::B3::int64Operands):
(JSC::B3::int32Operands):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::bitNot):

1:19 PM Changeset in webkit [192695] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Super use should be recorded in per-function scope
https://bugs.webkit.org/show_bug.cgi?id=151500

Reviewed by Geoffrey Garen.

"super" use is prohibited under the non-constructor / non-class-method-related functions.
This "super" use should be recorded in per-function scope to check its incorrect use after
parsing a function.
Currently, we accidentally record it to a lexical current scope. So when using "super" inside
a block scope, our "super" use guard miss it.

  • parser/Parser.cpp:

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

  • parser/Parser.h:

(JSC::Parser::currentVariableScope):
(JSC::Parser::currentFunctionScope):
(JSC::Parser::declareVariable):

  • tests/stress/super-in-lexical-scope.js: Added.

(testSyntax):
(testSyntaxError):
(testSyntaxError.test):

1:14 PM Changeset in webkit [192694] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Addressing missed review feedback for:
Modern IDB: Make in-memory ObjectStore cursors work.
https://bugs.webkit.org/show_bug.cgi?id=151196

Reviewed by Darin Adler.

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::maybeOpenCursor):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::create): Deleted.

  • Modules/indexeddb/server/MemoryObjectStoreCursor.h:
12:45 PM Changeset in webkit [192693] by Chris Dumez
  • 13 edits
    2 adds in trunk

Caching of properties on objects that have named property getters is sometimes incorrect
https://bugs.webkit.org/show_bug.cgi?id=151453
<rdar://problem/23049343>

Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

Add new GetOwnPropertySlotIsImpureForPropertyAbsence TypeInfo flag to be
used by objects that have a non-'OverrideBuiltins' named property getter.
This flag prevents caching of properties that are missing as a named
property with this name may later become available.

Objects with an 'OverrideBuiltins' named property getter will keep using
the GetOwnPropertySlotIsImpure TypeInfo flag, which prevents all property
caching since named properties can override own properties or properties
on the prototype.

  • bytecode/ComplexGetStatus.cpp:

(JSC::ComplexGetStatus::computeFor):

  • bytecode/PropertyCondition.cpp:

(JSC::PropertyCondition::isStillValid):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):
(JSC::tryRepatchIn):

  • jsc.cpp:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::getOwnPropertySlotIsImpure):
(JSC::TypeInfo::getOwnPropertySlotIsImpureForPropertyAbsence):
(JSC::TypeInfo::prohibitsPropertyCaching): Deleted.

  • runtime/Structure.h:

Source/WebCore:

In r188590, we dropped the JSC::GetOwnPropertySlotIsImpure TypeInfo flag for
interfaces that have a non-'OverrideBuiltins' named property getter in order
to allow caching of properties returns by GetOwnPropertySlot(). We assumed
this was safe as it was no longer possible for named properties to override
own properties (or properties on the prototype).

However, there is an issue when we cache the non-existence of a property.
Even though at one point the property did not exist, a named property with
this name may later become available. In such case, caching would cause us
to wrongly report a property as missing.

To address the problem, this patch introduces a new
GetOwnPropertySlotIsImpureForPropertyAbsence TypeInfo flag and uses it for
interfaces that have a non-'OverrideBuiltins' named property getter. This
will cause us to not cache the fact that a property is missing on such
objects, while maintaining the performance win from r188590 in the common
case.

Test: fast/dom/NamedNodeMap-named-getter-caching.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

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

LayoutTests:

Add layout test to make sure caching does not cause NamedNodeMap's
named property getter to sometimes wrongly report a property as
missing.

  • fast/dom/NamedNodeMap-named-getter-caching-expected.txt: Added.
  • fast/dom/NamedNodeMap-named-getter-caching.html: Added.
12:40 PM Changeset in webkit [192692] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Remove chartPointRadius from interactive chart component
https://bugs.webkit.org/show_bug.cgi?id=151480

Reviewed by Darin Adler.

Replaced the parameter by CSS rules.

  • public/v2/chart-pane.css:

(.chart .dot):
(.chart .dot.foreground):
(.chart .highlight):
(.chart .extent):

  • public/v2/index.html:
  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent.Ember.Component.extend._constructGraphIfPossible):
(App.InteractiveChartComponent.Ember.Component.extend._highlightedItemsChanged):

12:39 PM Changeset in webkit [192691] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Perf dashboard's runs API uses more than 128MB of memory
https://bugs.webkit.org/show_bug.cgi?id=151478

Reviewed by Andreas Kling.

Don't fetch all query results at once to avoid using twice as much memory as needed.
Use iterative API to format each result at a time.

This change is also a 5% runtime performance gain.

  • public/api/runs.php:

(RunsGenerator::construct): Takes a Database instance instead of a list of configurations. The latter is
no longer needed as we pass in each configuration type explicitly to fetch_runs.
(RunsGenerator::fetch_runs): Renamed from add_runs since it now executes the database query via execute_query.
Also moved the logic to compute the last modified time here.
(RunsGenerator::execute_query): Moved from fetch_runs_for_config. Use Database::query instead of query_and_fetch_all.
(RunsGeneratorForTestGroup):
(RunsGeneratorForTestGroup::
construct):
(RunsGeneratorForTestGroup::execute_query): Moved from fetch_runs_for_config_and_test_group.

  • public/include/db.php:

(generate_data_file): Lock the file to avoid corruption.

12:35 PM Changeset in webkit [192690] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard always fetches charts JSON twice
https://bugs.webkit.org/show_bug.cgi?id=151483

Reviewed by Andreas Kling.

Only re-generate "runs" JSON via /api/runs/ when the cache doesn't exist in /data/ or the cached JSON is
obsolete (shouldRefetch is set true) or corrupt (the second closure).

  • public/v2/app.js:

(App.Pane._fetch):

12:05 PM Changeset in webkit [192689] by Simon Fraser
  • 5 edits in trunk/Source

Back-buffer to front-buffer copy fails for some buffer formats
https://bugs.webkit.org/show_bug.cgi?id=151475
rdar://problem/23617899

Reviewed by Tim Horton.

Source/WebCore:

Fix some fo the bitsPerComponent/bitsPerPixel options in IOSurface::ensurePlatformContext()
for RGB10 buffers. Fix IOSurface::format() to return the new formats.

Implement IOSurface::copyToSurface(), which does a synchronous copy between
surfaces.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::create):
(IOSurface::ensurePlatformContext):
(IOSurface::format):
(IOSurface::copyToSurface):

Source/WebKit2:

When displaying RemoteLayerBackingStore, we copy the back buffer to the front
buffer before painting the updated regions. For buffers using Format::RGB10A8,
the CGImage-based copy fails, so in this case, use IOSurface::copyToSurface().

Reorganized RemoteLayerBackingStore::drawInContext() to make this a bit easier
to understand. First, we either copy the entire surface over, or paint the backImage.
Then we clip to the dirty rects, and clear them, then paint the layer contents.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::drawInContext):

11:20 AM Changeset in webkit [192688] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Simple line layout: Add text-indent support.
https://bugs.webkit.org/show_bug.cgi?id=151472

Reviewed by Simon Fraser.

This enables us to use simple line layout on text-indent content.

Source/WebCore:

Test: fast/text/simple-line-text-indent.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::updateLineConstrains):
(WebCore::SimpleLineLayout::createTextRuns):
(WebCore::SimpleLineLayout::canUseForStyle): Deleted.

LayoutTests:

  • fast/text/simple-line-text-indent-expected.html: Added.
  • fast/text/simple-line-text-indent.html: Added.
10:55 AM Changeset in webkit [192687] by beidson@apple.com
  • 15 edits
    4 adds in trunk

Modern IDB: IDBFactory.deleteDatabase() support.
https://bugs.webkit.org/show_bug.cgi?id=151456

Reviewed by Alex Christensen.

Source/WebCore:

Tests: storage/indexeddb/modern/deletedatabase-1.html

storage/indexeddb/modern/deletedatabase-2.html

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::hasPendingActivity):
(WebCore::IDBClient::IDBDatabase::didCommitOrAbortTransaction):

  • Modules/indexeddb/client/IDBDatabaseImpl.h:
  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::onDeleteDatabaseSuccess):
(WebCore::IDBClient::IDBOpenDBRequest::requestCompleted):

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::hasPendingActivity): Deleted.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::deleteDatabase):
(WebCore::IDBServer::IDBServer::deleteUniqueIDBDatabase):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::hasAnyPendingCallbacks):
(WebCore::IDBServer::UniqueIDBDatabase::maybeDeleteDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::handleOpenDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::notifyConnectionsOfVersionChangeForUpgrade):
(WebCore::IDBServer::UniqueIDBDatabase::notifyConnectionsOfVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::invokeDeleteOrRunTransactionTimer):
(WebCore::IDBServer::UniqueIDBDatabase::deleteOrRunTransactionsTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformActivateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::invokeTransactionScheduler): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::transactionSchedulingTimerFired): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

(WebCore::IDBServer::UniqueIDBDatabase::identifier):
(WebCore::IDBServer::UniqueIDBDatabase::deletePending):

  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::deleteDatabaseSuccess):

  • Modules/indexeddb/shared/IDBResultData.h:

LayoutTests:

  • storage/indexeddb/modern/deletedatabase-1-expected.txt: Added.
  • storage/indexeddb/modern/deletedatabase-1.html: Added.
  • storage/indexeddb/modern/deletedatabase-2-expected.txt: Added.
  • storage/indexeddb/modern/deletedatabase-2.html: Added.
  • storage/indexeddb/modern/deletedatabase-request-event-expected.txt:
  • storage/indexeddb/modern/deletedatabase-request-event.html:
10:55 AM Changeset in webkit [192686] by beidson@apple.com
  • 3 edits
    2 adds in trunk

Modern IDB: Get IDBRequest.readyState right.
https://bugs.webkit.org/show_bug.cgi?id=151484

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/request-readystate.html

  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::readyState):

LayoutTests:

  • storage/indexeddb/modern/request-readystate-expected.txt: Added.
  • storage/indexeddb/modern/request-readystate.html: Added.
7:17 AM Changeset in webkit [192685] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, fix installation of ninja-build after the previous commit

  • gtk/install-dependencies:
7:01 AM Changeset in webkit [192684] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/LayoutTests

Changing some imported/w3c/web-platform-tests/html/semantics expectations from Timeout/Failure to Pass
https://bugs.webkit.org/show_bug.cgi?id=151492

Unreviewed.

  • TestExpectations: Removing timeout/failure expectations.
  • platform/efl/TestExpectations: Removing no longer needed pass expectation.
6:41 AM Changeset in webkit [192683] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] install-dependencies should run installer exactly once
https://bugs.webkit.org/show_bug.cgi?id=151477

Reviewed by Carlos Garcia Campos.

  • gtk/install-dependencies:
3:38 AM Changeset in webkit [192682] by Csaba Osztrogonác
  • 9 edits in trunk

[EFL] Enable FTL JIT by default on X86_64
https://bugs.webkit.org/show_bug.cgi?id=143822

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/OptionsEfl.cmake:

Tools:

  • Scripts/build-jsc:
  • Scripts/run-javascriptcore-tests:
  • Scripts/webkitperl/FeatureList.pm:
  • efl/jhbuild.modules:
  • gtk/jhbuildrc:
  • jhbuild/jhbuildrc_common.py:

(init):

1:33 AM Changeset in webkit [192681] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Unskip mediastream tests after crash was fixed
<https://bugs.webkit.org/show_bug.cgi?id=151353>

  • platform/mac/TestExpectations: Bug 151462 fixed the crash, so

unskip the tests again.

1:25 AM Changeset in webkit [192680] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

Use HTTPHeaderName as much as possible in XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=151438

Reviewed by Darin Adler.

Removing XMLHttpRequest::setRequestHeaderInternal and XMLHttpRequest::getRequestHeader.
Using directly HTTPHeaderMap.add, HTTPHeaderMap.set and HTTPHeaderMap.get.

No change in behavior.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):
(WebCore::XMLHttpRequest::setRequestHeader):
(WebCore::XMLHttpRequest::getAllResponseHeaders):

  • xml/XMLHttpRequest.h:
1:06 AM Changeset in webkit [192679] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

MediaStream: Fix mock video source crash
https://bugs.webkit.org/show_bug.cgi?id=151462

Reviewed by Alexey Proskuryakov.

No new tests, this fixes existing tests.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText): Declare the String used to intialize a

StringView explicitly so it outlives the StringView.

12:09 AM Changeset in webkit [192678] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r192460,r192677): Fix all the builds

  • platform/spi/cocoa/QuartzCoreSPI.h: Check different.

Nov 19, 2015:

11:02 PM Changeset in webkit [192677] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r192460): Fix tvOS build again

  • platform/spi/cocoa/QuartzCoreSPI.h: Update version check.

This will probably need to be backed out in the future.

10:02 PM Changeset in webkit [192676] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r189433) Web Inspector: JSContext inspection exceptions should include native call frames by default
https://bugs.webkit.org/show_bug.cgi?id=151479

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-19
Reviewed by Brian Burg.

  • inspector/JSGlobalObjectInspectorController.h:

Value accidentally got flipped when moving to initializer syntax.

8:51 PM Changeset in webkit [192675] by adam.bergkvist@ericsson.com
  • 8 edits in trunk

WebRTC: Initial testing of updated RTCPeerConnection API
https://bugs.webkit.org/show_bug.cgi?id=151304

Reviewed by Eric Carlson.

Source/WebCore:

Remove faulty ASSERT since the selector argument to
RTCPeerConnection.getStats() is nullable. Also use
pointers instead of a ref (for the same reason).

Tests: Unskip two crashing tests.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::getStats):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::privateGetStats):

LayoutTests:

Unskip two previously crashing tests.
fast/mediastream/RTCPeerConnection-overloaded-operations.html
fast/mediastream/RTCPeerConnection-overloaded-operations-params.html

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
8:36 PM Changeset in webkit [192674] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, install llvm-static on Fedora to fix build now FTL is enabled

  • gtk/install-dependencies:
7:52 PM Changeset in webkit [192673] by commit-queue@webkit.org
  • 112 edits
    1 copy in trunk

Unreviewed, rolling out r192667 and r192668.
https://bugs.webkit.org/show_bug.cgi?id=151476

broke api tests (Requested by alexchristensen on #webkit).

Reverted changesets:

"Remove the non-NetworkProcess configurations"
https://bugs.webkit.org/show_bug.cgi?id=151418
http://trac.webkit.org/changeset/192667

"Fix GTK Build after r192667."
http://trac.webkit.org/changeset/192668

6:45 PM Changeset in webkit [192672] by Hunseop Jeong
  • 2 edits in trunk/Source/WebCore

[EFL][GTK] context_menu API test failed after r192333
https://bugs.webkit.org/show_bug.cgi?id=151437

Reviewed by Carlos Garcia Campos.

EFL,GTK port didn't use the share Menu.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

6:37 PM Changeset in webkit [192671] by sbarati@apple.com
  • 44 edits
    3 adds in trunk

[ES6] Add support for rest parameters
https://bugs.webkit.org/show_bug.cgi?id=38408

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This patch implements rest parameters from the ES6 spec.
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-function-definitions

We implement the rest parameter as a new AST node. This AST node
lowers to "op_new_array X, op_copy_rest X". Note
that the op_copy_rest opcode does not have a result.
The bulk of this patch is implementing op_copy_rest.
This patch implements this in all four tiers in a straight forward way.
The opcode is implemented as a C call that will read the pertinent
arguments from the call frame and fill them into the array.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/Instruction.h:

(JSC::Instruction::Instruction):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::invalidateForInContextForLocal):
(JSC::BytecodeGenerator::emitRestParameter):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::AssignmentElementNode::toString):
(JSC::RestParameterNode::collectBoundIdentifiers):
(JSC::RestParameterNode::toString):
(JSC::RestParameterNode::bindValue):
(JSC::RestParameterNode::emit):
(JSC::SpreadExpressionNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::setEpoch):
(JSC::DFG::Node::numberOfArgumentsToSkip):
(JSC::DFG::Node::dumpChildren):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateClonedArguments):
(JSC::DFG::SpeculativeJIT::compileCopyRest):
(JSC::DFG::SpeculativeJIT::compileNotifyWrite):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateClonedArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCopyRest):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewObject):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_create_out_of_band_arguments):
(JSC::JIT::emit_op_copy_rest):

  • jit/JITOperations.h:
  • llint/LowLevelInterpreter.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createBindingLocation):
(JSC::ASTBuilder::createRestParameter):
(JSC::ASTBuilder::createAssignmentElement):

  • parser/NodeConstructors.h:

(JSC::AssignmentElementNode::AssignmentElementNode):
(JSC::RestParameterNode::RestParameterNode):
(JSC::DestructuringAssignmentNode::DestructuringAssignmentNode):

  • parser/Nodes.h:

(JSC::DestructuringPatternNode::isBindingNode):
(JSC::DestructuringPatternNode::isRestParameter):
(JSC::DestructuringPatternNode::emitDirectBinding):
(JSC::RestParameterNode::name):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::declareRestOrNormalParameter):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseFormalParameters):

  • parser/Parser.h:

(JSC::Parser::strictMode):
(JSC::Parser::isValidStrictMode):
(JSC::Parser::declareParameter):
(JSC::Parser::breakIsValid):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • tests/es6.yaml:
  • tests/stress/rest-parameter-and-default-arguments.js: Added.

(assert):
(shouldThrowTDZ):
(foo):
(baz):
(i.shouldThrowTDZ):

  • tests/stress/rest-parameter-basics.js: Added.

(assert):
(foo):
(bar):
(capture):
(baz):
(jaz):
(kaz):
(raz):
(restLength):
(testArgumentsObject):
(strictModeLikeArgumentsObject):

  • tests/stress/rest-parameter-inlined.js: Added.

(assert):
(bar):
(foo):
(baz):
(jaz):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:

(catch):

5:28 PM Changeset in webkit [192670] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document.html as flaky crasher
https://bugs.webkit.org/show_bug.cgi?id=151469

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:20 PM Changeset in webkit [192669] by commit-queue@webkit.org
  • 6 edits in trunk/PerformanceTests

Calculate the graphics benchmark test gain adaptively
https://bugs.webkit.org/show_bug.cgi?id=151208

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-11-19
Reviewed by Darin Adler.

We need to calculate the gain of the graphics benchmark tests adaptively
and get rid of the gain and limits parameters we have to choose manually
for every test. We are going to use the classic Ziegler–Nichols method for
calculating the gain and integral and derivative times. We are going to
try moving on a cubic curve during the manual stage from y0 to reach ysp.
We also going to use a saturation actuator to ensure the system does not
fluctuate.

  • Animometer/resources/extensions.js:

(ResultsTable.prototype._isNoisyMeasurement): Fix a parameter name.
(ResultsTable.prototype._isNoisyTest): Since score is a member of testResults, we need to limit our search to frame rate and complexity.
(ResultsTable.prototype._showTest): Pass the correct parameter to _isNoisyMeasurement().

  • Animometer/resources/strings.js: Fix the indentation and name and value of a string.
  • Animometer/runner/resources/tests.js: Remove all the manual gains and limits parameters which had to be passed to every test.
  • Animometer/tests/resources/main.js:

(BenchmarkState.prototype.currentStage): Fix an enum name.
(Benchmark): Get rid of manual gain and limits.
(Benchmark.prototype.update): Simplify the calculation by having all the times in ms.

  • Animometer/tests/resources/math.js:

(PIDController): Get rid of the manual gain and limits and the magic numbers for Ti and Td.
(PIDController.prototype._yPosition): Tells whether the test current output is moving towards the set-point or away from it.
(PIDController.prototype._distanceUltimate): Calculates the ultimate distance from y0 after time t using a cubic formula.
(PIDController.prototype._distance): Calculates the distance of y relative to y0.
(PIDController.prototype._gainIncrement): Decides how much the proportional gain should be increased during the manual gain stage.
(PIDController.prototype._updateStage): Updates the stage of the controller based on its current stage and the system output.
(PIDController.prototype._tuneP): Tunes the system before calculating the PID controller gains.
(PIDController.prototype._tunePID): PID tuning function.
(PIDController.prototype._tune):
(PIDController.prototype._saturate):
(PIDController.prototype.tune): Manages calculating the controller parameters. It then returns a PID tuning value.
(PIDController.prototype._sat): Deleted. We may need to return it back but the limits have to be calculated adaptively not manually.

5:13 PM Changeset in webkit [192668] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix GTK Build after r192667.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):
(webkit_web_context_set_process_model):
(webkit_web_context_get_process_model):
(toWebKitProcessModel): Deleted.
(injectedBundleDirectory): Deleted.

4:51 PM Changeset in webkit [192667] by commit-queue@webkit.org
  • 111 edits
    1 delete in trunk

Remove the non-NetworkProcess configurations
https://bugs.webkit.org/show_bug.cgi?id=151418

Patch by Alex Christensen <achristensen@webkit.org> on 2015-11-19
Reviewed by Geoffrey Garen.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebKit2:

This patch assumes ENABLE(NETWORK_PROCESS) is always 1, usesNetworkProcess is always true,
and ProcessModel is always ProcessModelMultipleSecondaryProcesses. It does this by removing
the checks and the code that would be executed with other configurations.

  • CMakeLists.txt:
  • NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm:

(NetworkProcessMain):

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::filesInBlob):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::blobSize):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkLoad.cpp:
  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkLoadParameters.cpp:

(WebKit::NetworkLoadParameters::NetworkLoadParameters):

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkResourceLoader.messages.in:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::clearDiskCache):

  • NetworkProcess/efl/NetworkProcessMainEfl.cpp:

(WebKit::NetworkProcessMainUnix):

  • NetworkProcess/gtk/NetworkProcessMainGtk.cpp:

(WebKit::NetworkProcessMainUnix):

  • NetworkProcess/ios/NetworkProcessIOS.mm:
  • NetworkProcess/mac/NetworkLoadMac.mm:
  • NetworkProcess/mac/NetworkProcessMac.mm:
  • NetworkProcess/mac/NetworkResourceLoaderMac.mm:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformTerminate):

  • NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:

(WebKit::RemoteNetworkingContext::storageSession):

  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKInspectorToggleJavaScriptProfiling):
(WKContextSetProcessModel):
(WKContextGetProcessModel):
(WKContextSetUsesNetworkProcess):
(WKGraphicsContextGetCGContext):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:

(WebKit::CustomProtocolManager::initialize):
(WebKit::CustomProtocolManager::addCustomProtocol):

  • Shared/Network/CustomProtocols/CustomProtocolManager.h:
  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:

(WebKit::CustomProtocolManager::supplementName):
(WebKit::CustomProtocolManager::initialize):
(WebKit::CustomProtocolManager::registerScheme):

  • Shared/Network/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::decode):

  • Shared/Network/NetworkProcessCreationParameters.h:
  • Shared/Network/NetworkProcessSupplement.h:

(WebKit::NetworkProcessSupplement::initialize):

  • Shared/Network/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::decode):

  • Shared/Network/NetworkResourceLoadParameters.h:
  • Shared/ProcessExecutablePath.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/efl/ProcessExecutablePathEfl.cpp:

(WebKit::executablePathOfPluginProcess):
(WebKit::executablePathOfNetworkProcess):
(WebKit::executablePathOfDatabaseProcess):

  • Shared/gtk/ProcessExecutablePathGtk.cpp:

(WebKit::executablePathOfPluginProcess):
(WebKit::executablePathOfNetworkProcess):
(WebKit::executablePathOfDatabaseProcess):

  • Shared/mac/CookieStorageShim.h:
  • Shared/mac/CookieStorageShim.mm:

(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

  • Shared/mac/CookieStorageShimLibrary.cpp:
  • Shared/mac/CookieStorageShimLibrary.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/APISession.cpp:

(API::Session::~Session):

  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):
(WebKit::toFontSmoothingLevel):
(WebKit::toProcessModel): Deleted.

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetCacheModel):
(WKContextSetMaximumNumberOfProcesses):
(WKContextSetJavaScriptGarbageCollectorTimerEnabled):
(WKContextUseTestingNetworkSession):
(WKContextSetProcessModel): Deleted.
(WKContextGetProcessModel): Deleted.
(WKContextSetUsesNetworkProcess): Deleted.

  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextGetNetworkProcessIdentifier):

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup initWithInjectedBundleURL:]):

  • UIProcess/API/Cocoa/WKProcessPool.mm:
  • UIProcess/API/efl/ewk_context.cpp:

(ewk_context_process_model_set):
(ewk_context_process_model_get):
(ewk_context_tls_error_policy_get):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::updateProcessSuppressionState):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::platformInvalidateContext):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::cancel):
(WebKit::DownloadProxy::invalidate):

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::processTypeAsString):
(WebKit::ProcessLauncher::getProcessTypeFromString):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::computeProcessShimPath):
(WebKit::serviceName):
(WebKit::shouldLeakBoost):
(WebKit::createProcess):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/Network/mac/NetworkProcessProxyMac.mm:

(WebKit::NetworkProcessProxy::platformGetLaunchOptions):

  • UIProcess/Network/soup/NetworkProcessProxySoup.cpp:

(WebKit::NetworkProcessProxy::platformGetLaunchOptions):

  • UIProcess/ProcessModel.h: Removed.
  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::shouldTerminate):
(WebKit::WebCookieManagerProxy::refWebContextSupplement):
(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::inspectorProcessPool):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::setSessionID):
(WebKit::WebPageProxy::initializeWebPage):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::create):
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::initializeClient):
(WebKit::WebProcessPool::setDownloadClient):
(WebKit::WebProcessPool::setMaximumNumberOfProcesses):
(WebKit::WebProcessPool::networkingProcessConnection):
(WebKit::WebProcessPool::languageChanged):
(WebKit::WebProcessPool::textCheckerStateChanged):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::getNetworkProcessConnection):
(WebKit::WebProcessPool::ensureDatabaseProcess):
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebProcessPool::processDidCachePage):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::download):
(WebKit::WebProcessPool::resumeDownload):
(WebKit::WebProcessPool::postMessageToInjectedBundle):
(WebKit::WebProcessPool::setAdditionalPluginsDirectory):
(WebKit::WebProcessPool::networkProcessIdentifier):
(WebKit::WebProcessPool::setAlwaysUsesComplexTextCodePath):
(WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation):
(WebKit::WebProcessPool::registerURLSchemeAsLocal):
(WebKit::WebProcessPool::setCacheModel):
(WebKit::WebProcessPool::setDefaultRequestTimeoutInterval):
(WebKit::WebProcessPool::createDownloadProxy):
(WebKit::WebProcessPool::addMessageReceiver):
(WebKit::WebProcessPool::useTestingNetworkSession):
(WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost):
(WebKit::WebProcessPool::requestWebContentStatistics):
(WebKit::WebProcessPool::requestNetworkingStatistics):
(WebKit::WebProcessPool::handleMessage):
(WebKit::WebProcessPool::setProcessModel): Deleted.
(WebKit::WebProcessPool::setUsesNetworkProcess): Deleted.
(WebKit::WebProcessPool::usesNetworkProcess): Deleted.
(WebKit::WebProcessPool::ensureSharedWebProcess): Deleted.

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToNetworkingProcess):
(WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary):
(WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary):
(WebKit::WebProcessPool::sendToOneProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::getPluginProcessConnection):
(WebKit::WebProcessProxy::getNetworkProcessConnection):
(WebKit::WebProcessProxy::getDatabaseProcessConnection):
(WebKit::WebProcessProxy::updateTextCheckerState):
(WebKit::WebProcessProxy::didSaveToPageCache):
(WebKit::WebProcessProxy::didCancelProcessSuspension):
(WebKit::WebProcessProxy::reinstateNetworkProcessAssertionState):
(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::createDownloadProxy): Deleted.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::throttler):

  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::cloneSessionData):

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::initInspectorServer):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::setIgnoreTLSErrors):

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebKit2Prefix.h:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::blobSize):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:
  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::networkProcessCrashed):

  • WebProcess/Network/WebResourceLoadScheduler.h:
  • WebProcess/Network/WebResourceLoader.cpp:
  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::initializeBrowserFuncs):
(WebKit::netscapeBrowserFuncs):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::registerRedirect):
(WebKit::NetscapePlugin::urlRedirectResponse):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::resourceLoadScheduler):
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
(WebKit::WebPlatformStrategies::createPingHandle):
(WebKit::WebPlatformStrategies::createBlobRegistry):

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

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):
(WebKit::WebFrame::source):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::registerURLSchemeAsEmptyDocument):
(WebKit::WebProcess::destroyPrivateBrowsingSession):
(WebKit::WebProcess::pluginProcessConnectionManager):
(WebKit::WebProcess::shouldTerminate):
(WebKit::WebProcess::setInjectedBundleParameters):
(WebKit::WebProcess::networkConnection):
(WebKit::WebProcess::webResourceLoadScheduler):
(WebKit::WebProcess::webToDatabaseProcessConnectionClosed):
(WebKit::WebProcess::setEnhancedAccessibility):
(WebKit::WebProcess::prefetchDNS):
(WebKit::WebProcess::didCreateDownload): Deleted.
(WebKit::WebProcess::didDestroyDownload): Deleted.
(WebKit::WebProcess::downloadProxyConnection): Deleted.
(WebKit::WebProcess::downloadsAuthenticationManager): Deleted.
(WebKit::WebProcess::downloadManager): Deleted.
(WebKit::WebProcess::usesNetworkProcess): Deleted.
(WebKit::WebProcess::downloadRequest): Deleted.
(WebKit::WebProcess::resumeDownload): Deleted.
(WebKit::WebProcess::cancelDownload): Deleted.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::textCheckerState):
(WebKit::WebProcess::eventDispatcher):

  • WebProcess/WebProcess.messages.in:
  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformSetCacheModel):
(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformTerminate):
(WebKit::WebProcess::setIgnoreTLSErrors):
(WebKit::WebProcess::allowSpecificHTTPSCertificateForHost):
(WebKit::getCacheDiskFreeSize): Deleted.
(WebKit::setSoupSessionAcceptLanguage): Deleted.
(WebKit::languageChanged): Deleted.

  • config.h:

Tools:

  • TestWebKitAPI/Tests/WebKit2/mac/GetPIDAfterAbortedProcessLaunch.cpp:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generatePageConfiguration):

4:50 PM Changeset in webkit [192666] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip more mediastream tests that crash when painting a mock video source.
https://bugs.webkit.org/show_bug.cgi?id=151353

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:35 PM Changeset in webkit [192665] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

B3 should have a story for Ext/Trunc strength reduction
https://bugs.webkit.org/show_bug.cgi?id=151464

Reviewed by Geoffrey Garen.

The LLVM shift operations require the shift amount to have the same type as the shift base. The B3
shift operations require the shift amount to be an Int32. DFG concurs with this. But the initial
lowering should involve pretending the FTLOutput's shift operations still take an LLVM-style shift
amount so that we don't regress FTL->LLVM performance. That means emitting an extra Trunc. That means
that we want to be able to constant fold Trunc and be able to fold Trunc(ZExt).

  • b3/B3LowerToAir.cpp:

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

  • b3/B3ReduceStrength.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testSwitchChillDiv):
(JSC::B3::testTruncFold):
(JSC::B3::testZExt32):
(JSC::B3::testZExt32Fold):
(JSC::B3::testSExt32):
(JSC::B3::testSExt32Fold):
(JSC::B3::testTruncZExt32):
(JSC::B3::testTruncSExt32):
(JSC::B3::zero):
(JSC::B3::run):

  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::store):
(JSC::FTL::Output::baseIndex):
(JSC::FTL::Output::branch):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::bitAnd):
(JSC::FTL::Output::bitOr):
(JSC::FTL::Output::bitXor):
(JSC::FTL::Output::shl):
(JSC::FTL::Output::aShr):
(JSC::FTL::Output::lShr):
(JSC::FTL::Output::bitNot):
(JSC::FTL::Output::insertElement):
(JSC::FTL::Output::address):
(JSC::FTL::Output::baseIndex):

3:32 PM Changeset in webkit [192664] by mark.lam@apple.com
  • 4 edits
    9 adds in trunk/Source/JavaScriptCore

Create correctness tests for binary snippet operators.
https://bugs.webkit.org/show_bug.cgi?id=151465

Reviewed by Geoffrey Garen.

Implement a common infrastructure for generating and running tests on binary
operators. Also re-implemented the op_add, op_sub, and op_mul tests to be based
on this new infrastructure.

  • tests/stress/op_add.js:
  • tests/stress/op_mul.js:
  • tests/stress/op_sub.js:
  • These were reimplemented using binary-op-test.js.
  • tests/stress/op_div.js: Added.
  • tests/stress/op_mod.js: Added.
  • tests/stress/op_bitand.js: Added.
  • tests/stress/op_bitor.js: Added.
  • tests/stress/op_bitxor.js: Added.
  • tests/stress/op_lshift.js: Added.
  • tests/stress/op_rshift.js: Added.
  • tests/stress/op_urshift.js: Added.
  • tests/stress/resources/binary-op-test.js: Added.
  • Common code for generating and running tests.
3:14 PM Changeset in webkit [192663] by mark.lam@apple.com
  • 2 edits in trunk/LayoutTests

js/regress/script-tests/ftl-object-sub.js needs more iterations for benchmarking.
https://bugs.webkit.org/show_bug.cgi?id=151411

Reviewed by Filip Pizlo.

Previously, in r192392, I reduced the test iteration count to make the layout
test happy and not time out. Unfortunately, this defeats the use of this test
for benchmarking. I've changed it to now use different iteration counts
depending on who is running it. run-jsc-stress-tests is fine with the higher
iteration count.

Since this test is slow and only meant to test the FTL, I also changed the run
configuration to be runFTLNoCJIT to minimize the slowness hit when running jsc
stress tests.

  • js/regress/script-tests/ftl-object-sub.js:
3:00 PM Changeset in webkit [192662] by BJ Burg
  • 13 edits
    2 adds in trunk/Source

Web Inspector: yank/kill shortcuts (CTRL+Y, K) don't work in Console / QuickConsole
https://bugs.webkit.org/show_bug.cgi?id=151157

Reviewed by Joseph Pecoraro.

CodeMirror maintains its own editor buffer and implements its own
killLine command but doesn't implement the yank command. So, text
that is "killed" with CTRL-k inside a CodeMirror instance isn't
Source/WebCore:

added to Editor's kill ring. Subsequent yank commands won't match
up with the killed text, instead returning text from a prior kill
that was handled by Editor (i.e., in a contenteditable or form input).

This patch adds a host function so that the Inspector frontend can
append "missed" killed text to Editor's kill ring. Subsequent
yanks handled by Editor will then match the text killed by CodeMirror.

No new tests, because we need to use both InspectorFrontendHost
and TestRunner.execCommand, but the latter is not available in
the inspector context where we would need to simulate a kill.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::killText):

Added. This appends the killed text to the kill ring, starting
a new sequence if necessary. Unlike Editor, Inspector waits
until the next kill command to clear the existing sequence.

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:

Source/WebInspectorUI:

added to WebCore's kill ring. Subsequent yank commands won't match
up with the killed text, instead returning text from a prior kill
that was handled by WebCore (i.e., in a contenteditable or form input).

This patch adds a host function so that the Inspector frontend can
append "missed" killed text to WebCore's kill ring. Subsequent
yanks handled by WebCore will then match the text killed by CodeMirror.

In the frontend, we implement our own key binding handler for
CTRL-k that captures killed text, detects whether the kill
should start a new sequence, and sends it to WebCore. Because this
involves several flags and listeners, and we want this behavior for
all editable CodeMirror instances, the text kill handling is
factored into its own CodeMirrorTextKillController.

To add this behavior to all instances, this patch centralizes the
code that constructs a base CodeMirror instance, and attaches the
CodeMirrorTextKillController to all instances. The shortcut
does nothing when its CodeMirror instance is read-only.

The particulars of the kill controller are documented inline.

No new tests, because we need to use both InspectorFrontendHost
and TestRunner.execCommand, but the latter is not available in
the inspector context where we would need to simulate a kill.

  • UserInterface/Controllers/CodeMirrorTextKillController.js: Added.

(WebInspector.CodeMirrorTextKillController):
(WebInspector.CodeMirrorTextKillController.prototype._handleKillLine):
(WebInspector.CodeMirrorTextKillController.prototype._handleTextChange):
(WebInspector.CodeMirrorTextKillController.prototype._handleEditorBlur):
(WebInspector.CodeMirrorTextKillController.prototype._handleSelectionOrCaretChange):

  • UserInterface/Main.html:
  • UserInterface/Protocol/InspectorFrontendHostStub.js:

(window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.killText): Add a stub to avoid check-before-use.

  • UserInterface/Views/BreakpointActionView.js:

(WebInspector.BreakpointActionView.prototype._updateBody):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor):

  • UserInterface/Views/CodeMirrorEditor.js: Added.

(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):

  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor):

2:54 PM Changeset in webkit [192661] by commit-queue@webkit.org
  • 10 edits
    4 adds in trunk/Source/JavaScriptCore

[JSC] Fix AssignmentElement parsing
https://bugs.webkit.org/show_bug.cgi?id=151026

Patch by Caitlin Potter <caitp@igalia.com> on 2015-11-19
Reviewed by Geoffrey Garen.

When parsing an AssignmentPattern, any LeftHandSideExpression which
is a valid assignment target is acceptable.

Additionally, this change minimizes the amount of time spent
re-parsing ObjectLiteral and ArrayLiterals, by parsing as an
Expression first (the common case), and re-parsing only if the
result is a valid ObjectLiteral or ArrayLiteral followed by an =,
or if an error specifically indicates that the expression could
have been parsed as an AssignmentPattern.

  • bytecompiler/NodesCodegen.cpp:

(JSC::AssignmentElementNode::collectBoundIdentifiers):
(JSC::AssignmentElementNode::bindValue):
(JSC::AssignmentElementNode::toString):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::isAssignmentLocation):
(JSC::ASTBuilder::isObjectLiteral):
(JSC::ASTBuilder::isArrayLiteral):
(JSC::ASTBuilder::isObjectOrArrayLiteral):
(JSC::ASTBuilder::createAssignmentElement):

  • parser/NodeConstructors.h:

(JSC::AssignmentElementNode::AssignmentElementNode):

  • parser/Nodes.h:

(JSC::ExpressionNode::isObjectLiteral):
(JSC::ExpressionNode::isArrayLiteral):
(JSC::AssignmentElementNode::assignmentTarget):
(JSC::AssignmentElementNode::divotStart):
(JSC::AssignmentElementNode::divotEnd):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::createAssignmentElement):
(JSC::Parser<LexerType>::parseBindingOrAssignmentElement):
(JSC::Parser<LexerType>::parseAssignmentElement):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseProperty):

  • parser/Parser.h:

(JSC::Parser::ExpressionErrorClassifier::ExpressionErrorClassifier):
(JSC::Parser::ExpressionErrorClassifier::~ExpressionErrorClassifier):
(JSC::Parser::ExpressionErrorClassifier::classifyExpressionError):
(JSC::Parser::ExpressionErrorClassifier::indicatesPossiblePattern):
(JSC::Parser::classifyExpressionError):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • tests/es6.yaml:
  • tests/es6/destructuring_assignment_non_simple_target.js: Added.

(test.):
(test):

  • tests/es6/destructuring_initializer_scoping.js: Added.

(test.tester):

  • tests/stress/destructuring-assignment-syntax.js: Added.

(testSyntax):
(testSyntaxError):

  • tests/stress/rest-elements.js:

(shouldThrow): Deleted.

2:29 PM Changeset in webkit [192660] by Alan Bujtas
  • 13 edits
    2 adds in trunk

Simple line layout: Add word-spacing support.
https://bugs.webkit.org/show_bug.cgi?id=151420

Reviewed by Antti Koivisto.

Source/WebCore:

This enables us to use simple line layout on word-spacing content.

Test: fast/text/simple-line-wordspacing.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::createLineRuns):
(WebCore::SimpleLineLayout::canUseForStyle): Deleted.

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::runWidth):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:

LayoutTests:

Some rebaselining is needed since inline box layout does not compute text run width properly (see webkit.org/b/151452)

  • fast/text/simple-line-wordspacing-expected.html: Added.
  • fast/text/simple-line-wordspacing.html: Added.
  • platform/mac/css1/text_properties/word_spacing-expected.txt:
  • platform/mac/fast/css/word-space-extra-expected.txt:
  • platform/mac/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/mac/fast/text/atsui-spacing-features-expected.txt:
  • platform/mac/fast/text/basic/004-expected.txt:
  • platform/mac/fast/text/basic/005-expected.txt:
  • platform/mac/fast/text/word-space-expected.txt:
  • platform/mac/svg/custom/svg-fonts-word-spacing-expected.txt:
2:18 PM Changeset in webkit [192659] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL->B3 lowering should support integer comparisons with the opcode abstracted and a few other things
https://bugs.webkit.org/show_bug.cgi?id=151463

Reviewed by Geoffrey Garen.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::signExt):
(JSC::FTL::Output::zeroExt):
(JSC::FTL::Output::zeroExtPtr):
(JSC::FTL::Output::fpToInt):
(JSC::FTL::Output::fpToUInt):
(JSC::FTL::Output::fpToInt32):
(JSC::FTL::Output::baseIndex):
(JSC::FTL::Output::absolute):
(JSC::FTL::Output::load32NonNegative):
(JSC::FTL::Output::equal):
(JSC::FTL::Output::notEqual):
(JSC::FTL::Output::above):
(JSC::FTL::Output::lessThan):
(JSC::FTL::Output::lessThanOrEqual):
(JSC::FTL::Output::doubleEqual):
(JSC::FTL::Output::doubleNotEqualOrUnordered):
(JSC::FTL::Output::doubleLessThan):
(JSC::FTL::Output::icmp): Deleted.
(JSC::FTL::Output::fcmp): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareLess):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareLessEq):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareGreater):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareGreaterEq):
(JSC::FTL::DFG::LowerDFGToLLVM::compileLogicalNot):
(JSC::FTL::DFG::LowerDFGToLLVM::baseIndex):
(JSC::FTL::DFG::LowerDFGToLLVM::compare):
(JSC::FTL::DFG::LowerDFGToLLVM::speculateTruthyObject):
(JSC::FTL::DFG::LowerDFGToLLVM::nonSpeculativeCompare):

2:05 PM Changeset in webkit [192658] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] When the iterated allocator is forced to spill, nuke the Moves that were already proven to be useless
https://bugs.webkit.org/show_bug.cgi?id=151461

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-19
Reviewed by Filip Pizlo.

Previously, when we had to spill, we were just inserting new Spill() and Fill()
in code while everything else remained identical.

Coalescing moves is a big part of the algorithm and takes a non-trivial time.
Since we were never removing Moves until reaching a successful coloring, we were
paying that cost with every single iteration.

With this patch, I keep a copy of the coalescing aliases when we make the first
potential spill decision. Before doing that, we have only simplified and coalesced
vertices that are provably colorable regardless of the other vertices' colors
(because their degree is <K, potentially after other edges were removed by simplification).

If we end up actually spilling, I use the old aliases to simplify the blocks if possible.

This is a 5% progression on "testComplex(64, 384)".

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::IteratedRegisterCoalescingAllocator::getAliasWhenSpilling):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::coalesce):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::selectSpill):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::assignColors):
(JSC::B3::Air::addSpillAndFillToProgram):
(JSC::B3::Air::iteratedRegisterCoalescingOnType):
(JSC::B3::Air::iteratedRegisterCoalescing):

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

Marking storage/indexeddb/modern/cursor-4.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=151448

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:25 PM Changeset in webkit [192656] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix FTL->B3 lowering of Phi
https://bugs.webkit.org/show_bug.cgi?id=151460

Reviewed by Geoffrey Garen.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compilePhi):

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

Marking storage/indexeddb/modern/cursor-3.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=151448

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:00 PM Changeset in webkit [192654] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL->B3 lowering should support lazy slow paths, patchpoints, all integer comparisons, and more load/stores
https://bugs.webkit.org/show_bug.cgi?id=151459

Reviewed by Benjamin Poulain.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::absolute):
(JSC::FTL::Output::load8SignExt32):
(JSC::FTL::Output::load8ZeroExt32):
(JSC::FTL::Output::load16SignExt32):
(JSC::FTL::Output::load16ZeroExt32):
(JSC::FTL::Output::load32):
(JSC::FTL::Output::load64):
(JSC::FTL::Output::loadPtr):
(JSC::FTL::Output::loadDouble):
(JSC::FTL::Output::store32):
(JSC::FTL::Output::store64):
(JSC::FTL::Output::storePtr):
(JSC::FTL::Output::storeDouble):
(JSC::FTL::Output::ascribeRange):
(JSC::FTL::Output::nonNegative32):
(JSC::FTL::Output::load32NonNegative):
(JSC::FTL::Output::icmp):
(JSC::FTL::Output::equal):
(JSC::FTL::Output::notEqual):
(JSC::FTL::Output::above):
(JSC::FTL::Output::aboveOrEqual):
(JSC::FTL::Output::below):
(JSC::FTL::Output::belowOrEqual):
(JSC::FTL::Output::greaterThan):
(JSC::FTL::Output::greaterThanOrEqual):
(JSC::FTL::Output::lessThan):
(JSC::FTL::Output::lessThanOrEqual):
(JSC::FTL::Output::fcmp):
(JSC::FTL::Output::doubleEqual):
(JSC::FTL::Output::speculateMul):
(JSC::FTL::Output::patchpoint):
(JSC::FTL::Output::trap):
(JSC::FTL::Output::anchor):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):

12:43 PM Changeset in webkit [192653] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip 4 more mediastream tests that crash when painting a mock video source.
https://bugs.webkit.org/show_bug.cgi?id=151353

Unreviewed test gardening

  • platform/mac/TestExpectations:
12:29 PM Changeset in webkit [192652] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Broadening scope of failure expectation for http/tests/navigation/forward-and-cancel.html on Mac
https://bugs.webkit.org/show_bug.cgi?id=140217

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
12:26 PM Changeset in webkit [192651] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL->B3 lowering should support absolute(), double comparisons, and intToDouble()
https://bugs.webkit.org/show_bug.cgi?id=151457

Reviewed by Benjamin Poulain.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::fpToInt32):
(JSC::FTL::Output::fpToUInt32):
(JSC::FTL::Output::intToFP):
(JSC::FTL::Output::intToDouble):
(JSC::FTL::Output::unsignedToFP):
(JSC::FTL::Output::unsignedToDouble):
(JSC::FTL::Output::intCast):
(JSC::FTL::Output::baseIndex):
(JSC::FTL::Output::absolute):
(JSC::FTL::Output::load8SignExt32):
(JSC::FTL::Output::load8ZeroExt32):
(JSC::FTL::Output::lessThanOrEqual):
(JSC::FTL::Output::fcmp):
(JSC::FTL::Output::doubleEqual):
(JSC::FTL::Output::doubleNotEqualOrUnordered):
(JSC::FTL::Output::doubleLessThan):
(JSC::FTL::Output::doubleLessThanOrEqual):
(JSC::FTL::Output::doubleGreaterThan):
(JSC::FTL::Output::doubleGreaterThanOrEqual):
(JSC::FTL::Output::doubleEqualOrUnordered):
(JSC::FTL::Output::doubleNotEqual):
(JSC::FTL::Output::doubleLessThanOrUnordered):
(JSC::FTL::Output::doubleLessThanOrEqualOrUnordered):
(JSC::FTL::Output::doubleGreaterThanOrUnordered):
(JSC::FTL::Output::doubleGreaterThanOrEqualOrUnordered):
(JSC::FTL::Output::isZero32):
(JSC::FTL::Output::notZero32):

12:20 PM Changeset in webkit [192650] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/xmlhttprequest/workers/methods-async.html as flaky on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=151455

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:03 PM Changeset in webkit [192649] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

FTL->B3 lowering should support checked int math
https://bugs.webkit.org/show_bug.cgi?id=151451

Reviewed by Saam Barati.

Adds lowering of ArithAdd/Sub/Mul to CheckAdd/Sub/Mul. Includes a nice refactoring of the OSR exit
code that made this a lot easier. Also needed to implement a few other ops in FTL::Output.

I ended up renaming "check" to "speculate" in FTL::Output, because it already had a thing called
"check". The FTL terminology for side-exit is "speculate", so I think that this is appropriate.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::sensibleDoubleToInt):
(JSC::FTL::Output::signExt):
(JSC::FTL::Output::zeroExt):
(JSC::FTL::Output::zeroExtPtr):
(JSC::FTL::Output::fpToInt):
(JSC::FTL::Output::fpToUInt):
(JSC::FTL::Output::unsignedToFP):
(JSC::FTL::Output::unsignedToDouble):
(JSC::FTL::Output::intCast):
(JSC::FTL::Output::castToInt32):
(JSC::FTL::Output::fpCast):
(JSC::FTL::Output::intToPtr):
(JSC::FTL::Output::ptrToInt):
(JSC::FTL::Output::unreachable):
(JSC::FTL::Output::speculate):
(JSC::FTL::Output::speculateAdd):
(JSC::FTL::Output::speculateSub):
(JSC::FTL::Output::speculateMul):
(JSC::FTL::Output::trap):
(JSC::FTL::Output::check): Deleted.

  • ftl/FTLJITFinalizer.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::DFG::LowerDFGToLLVM::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::DFG::LowerDFGToLLVM::blessSpeculation):
(JSC::FTL::DFG::LowerDFGToLLVM::emitOSRExitCall):
(JSC::FTL::DFG::LowerDFGToLLVM::buildExitArguments):

12:01 PM Changeset in webkit [192648] by bshafiei@apple.com
  • 6 edits in branches/safari-601.1.46-branch/Source

Merged r192284. rdar://problem/22846841

11:59 AM Changeset in webkit [192647] by bshafiei@apple.com
  • 24 edits in branches/safari-601.1.46-branch/Source

Merged r192138. rdar://problem/22846841

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

Merged r189637. rdar://problem/22846841

11:57 AM Changeset in webkit [192645] by beidson@apple.com
  • 45 edits
    4 adds in trunk

Modern IDB: IDBObjectStore.deleteIndex() support.
https://bugs.webkit.org/show_bug.cgi?id=150911

Reviewed by Alex Christensen.

Source/WebCore:

Tests: storage/indexeddb/modern/deleteindex-1.html

storage/indexeddb/modern/deleteindex-2.html

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::deleteIndex):
(WebCore::IDBClient::IDBConnectionToServer::didDeleteIndex):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::didDeleteIndexInfo):

  • Modules/indexeddb/client/IDBDatabaseImpl.h:
  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::markAsDeleted):

  • Modules/indexeddb/client/IDBIndexImpl.h:
  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::index):
(WebCore::IDBClient::IDBObjectStore::deleteIndex):

  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::deleteIndex):
(WebCore::IDBClient::IDBTransaction::deleteIndexOnServer):
(WebCore::IDBClient::IDBTransaction::didDeleteIndexOnServer):

  • Modules/indexeddb/client/IDBTransactionImpl.h:
  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::createTransactionOperation):

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::didDeleteIndex):

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::deleteIndex):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::indexDeleted):
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::deleteIndex):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/MemoryIndex.cpp:

(WebCore::IDBServer::MemoryIndex::clearIndexValueStore):

  • Modules/indexeddb/server/MemoryIndex.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::maybeRestoreDeletedIndex):
(WebCore::IDBServer::MemoryObjectStore::takeIndexByName):
(WebCore::IDBServer::MemoryObjectStore::deleteIndex):

  • Modules/indexeddb/server/MemoryObjectStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformDeleteIndex):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::didDeleteIndex):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:

(WebCore::IDBDatabaseInfo::loggingString):

  • Modules/indexeddb/shared/IDBDatabaseInfo.h:
  • Modules/indexeddb/shared/IDBIndexInfo.cpp:

(WebCore::IDBIndexInfo::loggingString):

  • Modules/indexeddb/shared/IDBIndexInfo.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::hasIndex):
(WebCore::IDBObjectStoreInfo::deleteIndex):
(WebCore::IDBObjectStoreInfo::loggingString):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:
  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::deleteIndexSuccess):

  • Modules/indexeddb/shared/IDBResultData.h:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::didDeleteIndex):
(WebCore::InProcessIDBServer::createIndex):
(WebCore::InProcessIDBServer::deleteIndex):

  • Modules/indexeddb/shared/InProcessIDBServer.h:

LayoutTests:

  • storage/indexeddb/modern/deleteindex-1-expected.txt: Added.
  • storage/indexeddb/modern/deleteindex-1.html: Added.
  • storage/indexeddb/modern/deleteindex-2-expected.txt: Added.
  • storage/indexeddb/modern/deleteindex-2.html: Added.
  • storage/indexeddb/modern/index-get-count-failures.html:
11:55 AM Changeset in webkit [192644] by bshafiei@apple.com
  • 7 edits in branches/safari-601.1.46-branch/Source

Merged r190574. rdar://problem/22846841

11:52 AM Changeset in webkit [192643] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merged r189635. rdar://problem/22846841

11:50 AM Changeset in webkit [192642] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merged r189628. rdar://problem/22846841

11:29 AM Changeset in webkit [192641] by BJ Burg
  • 7 edits
    4 adds in trunk

REGRESSION(r8780): Backwards delete by word incorrectly appends deleted text to kill ring, should be prepend
https://bugs.webkit.org/show_bug.cgi?id=151300

Reviewed by Darin Adler.

Source/WebCore:

Over 11 years ago, someone was in a big hurry to fix a bunch
of emacs keybindings bugs, and accidentally regressed the kill ring
behavior for backwards-delete-word. It should prepend to the beginning.

This patch fixes the regression and cleans up the kill ring-related
code in Editor and commands. It also adds some tests to cover the
regressed code a bit better.

Tests: editing/pasteboard/emacs-killring-alternating-append-prepend.html

editing/pasteboard/emacs-killring-backward-delete-prepend.html

  • editing/Editor.cpp:

Use more explicit names for insertion mode parameters and member variables.

(WebCore::Editor::deleteWithDirection):
(WebCore::Editor::performDelete):
(WebCore::Editor::addRangeToKillRing):
(WebCore::Editor::addTextToKillRing):

Only one call site for now, but another will be added in a dependent fix.

(WebCore::Editor::addToKillRing): Deleted.

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

(WebCore::TypingCommand::TypingCommand):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::doApply):

  • editing/TypingCommand.h:
  • platform/mac/KillRingMac.mm:

(WebCore::KillRing::append):
(WebCore::KillRing::prepend):

It turns out that the native API implicitly clears the kill sequence when
alternating between prepend and append operations. Its behavior does not match
what Sublime Text or Emacs do in this case. Clear the previous operation flag
to prevent this behavior from happening.

LayoutTests:

  • editing/pasteboard/emacs-killring-alternating-append-prepend-expected.txt: Added.
  • editing/pasteboard/emacs-killring-alternating-append-prepend.html: Added.
  • editing/pasteboard/emacs-killring-backward-delete-prepend-expected.txt: Added.
  • editing/pasteboard/emacs-killring-backward-delete-prepend.html: Added.
11:28 AM Changeset in webkit [192640] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

11:16 AM Changeset in webkit [192639] by mmaxfield@apple.com
  • 4 edits
    3 adds in trunk

Tatechuyoko in ruby sits too high
https://bugs.webkit.org/show_bug.cgi?id=151309
<rdar://problem/23536621>

Reviewed by Darin Adler.

Source/WebCore:

When combining text, we ask what the text's width is in order to determine if it fits in the
column. However, when we do that, we were not setting the font's orientation to horizontal.
This means that, for CJK text, the "width" which was returned was actually the height of the
glyph, and the GlyphOverflow data was similarly garbled.

We actually already were creating a corrected FontDescription, and using it in two places.
However, we weren't using it in the last place, which was causing this bug.

Test: fast/text/text-combine-placement.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::width):

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

LayoutTests:

  • fast/text/resources/tatechuyoko.svg: Added.
  • fast/text/text-combine-placement-expected.html: Added.
  • fast/text/text-combine-placement.html: Added.
11:15 AM Changeset in webkit [192638] by ap@apple.com
  • 2 edits in trunk/Tools

LayoutTestRelay processes leak on iOS testers
https://bugs.webkit.org/show_bug.cgi?id=151447

Reviewed by Tim Horton.

  • BuildSlaveSupport/kill-old-processes: Added LayoutTestRelay.
11:06 AM Changeset in webkit [192637] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/aborted-put.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=151389

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:43 AM Changeset in webkit [192636] by bshafiei@apple.com
  • 10 edits
    3 deletes in tags/Safari-602.1.12/Source/JavaScriptCore

Roll out r192436. rdar://problem/23599078

10:42 AM Changeset in webkit [192635] by Brent Fulgham
  • 3 edits in trunk/Tools

[Win] webkitpy is applying abspath to DOS paths, yielding invalid paths
https://bugs.webkit.org/show_bug.cgi?id=151156

Unreviewed test fix.

I tracked down the cause of the test regression on the Windows builders. Once I fixed that,
I realized that the new 'abs_results_directory' value was not needed, so this change reverts
that code.

  • Scripts/webkitpy/port/base.py:

(Port.to.start_websocket_server): We don't need a special directory variable on Cygwin anymore.
(Port.abs_results_directory): Deleted.

  • Scripts/webkitpy/port/win.py:

(WinPort.init): Deleted.
(WinPort.abs_results_directory): Deleted.
(WinPort.results_directory): Deleted.

10:31 AM Changeset in webkit [192634] by Hunseop Jeong
  • 2 edits in trunk/Source/WebCore

[EFL] http/tests/navigation/useragent test failed after r192459.
https://bugs.webkit.org/show_bug.cgi?id=151340

Reviewed by Gyuyoung Kim.

We need the convert process the predifined value to string.

  • platform/efl/UserAgentEfl.cpp:

(WebCore::versionForUAString):

10:19 AM Changeset in webkit [192633] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

explicit_timeout should be false when testharness test is run in browser
https://bugs.webkit.org/show_bug.cgi?id=151382

Reviewed by Darin Adler.

  • resources/testharnessreport.js:
10:00 AM Changeset in webkit [192632] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JIT snippet generator JumpLists should be returned as references.
https://bugs.webkit.org/show_bug.cgi?id=151445

Reviewed by Gavin Barraclough.

The JumpLists were being returned by value. As a result, new jumps added to
them in the client are actually added to a temporary copy and promptly discarded.
Those jumps never get linked, resulting in infinite loops in DFG generated code
that used the snippets.

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::endJumpList):
(JSC::JITAddGenerator::slowPathJumpList):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::endJumpList):
(JSC::JITMulGenerator::slowPathJumpList):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::endJumpList):
(JSC::JITSubGenerator::slowPathJumpList):

9:45 AM Changeset in webkit [192631] by commit-queue@webkit.org
  • 8 edits
    4 deletes in trunk

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

This test is failing on multiple mac testers (Requested by
ryanhaddad on #webkit).

Reverted changeset:

"Add a test for media control dropoff"
https://bugs.webkit.org/show_bug.cgi?id=151287
http://trac.webkit.org/changeset/192622

9:42 AM Changeset in webkit [192630] by ap@apple.com
  • 3 edits in trunk/Tools

build.webkit.org/dashboard: Move layoutTestResultsDirectoryURLForIteration implementation to base class
https://bugs.webkit.org/show_bug.cgi?id=151425

Reviewed by Tim Horton.

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

(Buildbot.prototype.layoutTestResultsDirectoryURLForIteration):

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

(WebKitBuildbot.prototype.layoutTestResultsDirectoryURLForIteration): Deleted.

9:42 AM Changeset in webkit [192629] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[EFL] Fix Wreturn-type clang warning in EWK2UnitTestBase.cpp
https://bugs.webkit.org/show_bug.cgi?id=151444

Reviewed by Darin Adler.

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:

(EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo):

9:38 AM Changeset in webkit [192628] by Csaba Osztrogonác
  • 8 edits in trunk/Source

[EFL] Fix -Winconsistent-missing-override clang warnings
https://bugs.webkit.org/show_bug.cgi?id=151443

Reviewed by Darin Adler.

Source/WebCore:

  • loader/EmptyClients.h:

(WebCore::EmptyChromeClient::delegatedScrollRequested):
(WebCore::EmptyChromeClient::scheduleAnimation):

Source/WebKit2:

  • Shared/CoordinatedGraphics/CoordinatedBackingStore.h:
  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
  • UIProcess/CoordinatedGraphics/WebView.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:

(WebKit::CoordinatedDrawingArea::layerTreeStateIsFrozen):
(WebKit::CoordinatedDrawingArea::layerTreeHost):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:

(WebKit::CoordinatedLayerTreeHost::layerTreeContext):
(WebKit::CoordinatedLayerTreeHost::pauseRendering):
(WebKit::CoordinatedLayerTreeHost::resumeRendering):

7:50 AM Changeset in webkit [192627] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Skip more mediastream tests that crash when painting a mock video source.

Fix covered by: <https://bugs.webkit.org/show_bug.cgi?id=151353>

  • platform/mac/TestExpectations: Skip:
  • fast/mediastream/delayed-permission-denied.html
  • fast/mediastream/MediaStreamTrack-kind.html
  • fast/mediastream/RTCPeerConnection-overloaded-operations.html
4:54 AM Changeset in webkit [192626] by Csaba Osztrogonác
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed CLOOP buildfix after r192624.

  • runtime/MemoryStatistics.cpp:

(JSC::globalMemoryStatistics):

  • runtime/MemoryStatistics.h:
4:01 AM Changeset in webkit [192625] by Csaba Osztrogonác
  • 3 edits in trunk/Source/JavaScriptCore

Remove unused LLVM API functions
https://bugs.webkit.org/show_bug.cgi?id=151184

Reviewed by Filip Pizlo.

  • ftl/FTLAbbreviations.h:

(JSC::FTL::typeOf): Deleted.
(JSC::FTL::getElementType): Deleted.
(JSC::FTL::getNamedFunction): Deleted.
(JSC::FTL::removeFunctionAttr): Deleted.
(JSC::FTL::getLinkage): Deleted.
(JSC::FTL::setVisibility): Deleted.
(JSC::FTL::isDeclaration): Deleted.
(JSC::FTL::linkModules): Deleted.
(JSC::FTL::getValueName): Deleted.
(JSC::FTL::getNamedGlobal): Deleted.
(JSC::FTL::getFirstGlobal): Deleted.
(JSC::FTL::getNextGlobal): Deleted.
(JSC::FTL::createMemoryBufferWithContentsOfFile): Deleted.
(JSC::FTL::parseBitcodeInContext): Deleted.
(JSC::FTL::disposeMemoryBuffer): Deleted.
(JSC::FTL::getParamTypes): Deleted.
(JSC::FTL::constIntToPtr): Deleted.
(JSC::FTL::constBitCast): Deleted.

  • llvm/LLVMAPIFunctions.h:
3:58 AM Changeset in webkit [192624] by Gyuyoung Kim
  • 2 edits in trunk/Source/JavaScriptCore

Remove unnecessary PLATFORM(EFL) macro in globalMemoryStatistics()
https://bugs.webkit.org/show_bug.cgi?id=151301

Reviewed by Csaba Osztrogonác.

EXECUTABLE_ALLOCATOR_FIXED is enabled on EFL port. So we don't need to keep
PLATFORM(EFL) macro anymore. Besides ENABLE(EXECUTABLE_ALLOCATOR_FIXED) guard
isn't related with ExecutableAllocator::committedByteCount() closely. So this patch
removes it as well.

  • runtime/MemoryStatistics.cpp:

(JSC::globalMemoryStatistics):

3:37 AM Changeset in webkit [192623] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebKit/win

Unreviewed speculative buildfix after r192601.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::convertMainResourceLoadToDownload):

  • WebCoreSupport/WebFrameLoaderClient.h:
2:06 AM Changeset in webkit [192622] by jonlee@apple.com
  • 8 edits
    7 adds in trunk

Add a test for media control dropoff
https://bugs.webkit.org/show_bug.cgi?id=151287
rdar://problem/23544666

Reviewed by Dean Jackson.

Source/WebCore:

Test: media/controls/inline-elements-dropoff-order.html

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-timeline-container.dropped): Override the
display:none since we want the container to remain visible but acting
as a flexible width space to push the other elements to the ends of the
inline flexbox. We will want to refactor the CSS rules so that all of the
components in the timeline are keyed off of the container's dropped class
rather than having each individual component have that class attached.
(audio::-webkit-media-controls-panel.hidden): Deleted. Consolidate a
couple rules.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateLayoutForDisplayedWidth): Also attach the
"dropped" class on the timeline box. Add the captions button for reporting
media control state.

  • testing/Internals.cpp:

(WebCore::Internals::setMockMediaPlaybackTargetPickerState): Extend this to
also take "DeviceNotAvailable" to update the mock device's availability.

  • testing/Internals.cpp: Update to use a reference to Page.

(WebCore::Internals::resetToConsistentState): Reset mock enabled setting for
each test.

  • testing/Internals.h:
  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::resetInternalsObject): Update to use a reference to Page.

LayoutTests:

The test takes a video element and resizes it to multiple widths. It
checks for the existence of the dropped or hidden class on each of the
media controls. The tests are run twice; once with wireless target
availability, and once without. If the platform does not support wireless
playback, it only goes through the tests once.

Test assumes that setMockMediaPlaybackTargetPickerEnabled is set to true at the beginning
of the test.

  • media/controls/controls-test-helpers.js:

(ControlsTest.prototype.setup): Create the console box first before
checking to see the testRunner is available so that the failure
message appears when trying to run the test manually.

  • media/controls/inline-elements-dropoff-order-expected.txt: Added.
  • media/controls/inline-elements-dropoff-order.html: Added.
  • platform/mac-mavericks/media/controls/inline-elements-dropoff-order-expected.txt: Added.
  • platform/mac-yosemite/media/controls/inline-elements-dropoff-order-expected.txt: Added.
1:21 AM Changeset in webkit [192621] by calvaris@igalia.com
  • 10 edits in trunk

[Streams API] Implement IsReadableStreamDisturbed according to spec
https://bugs.webkit.org/show_bug.cgi?id=151356

Reviewed by Darin Adler.

Source/WebCore:

Implemente IsReadableStreamDisturbed according to the spec. This is an internal function to be used by other
internal implementations.

The function is exported as internals to be tested.

Test: streams/reference-implementation/abstract-ops.html.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/ReadableStreamInternals.js:

(cancelReadableStream):
(readFromReadableStreamReader):
(isReadableStreamDisturbed):

  • bindings/js/WebCoreBuiltinNames.h:
  • testing/Internals.cpp:

(WebCore::Internals::isReadableStreamDisturbed):

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

LayoutTests:

  • streams/reference-implementation/abstract-ops-expected.txt: Updated expectations.
  • streams/reference-implementation/abstract-ops.html: Use internals to export IsReadableStreamDisturbed to the

tests.

1:14 AM Changeset in webkit [192620] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk

XHR should not combine empty content-type value with default one
https://bugs.webkit.org/show_bug.cgi?id=147784

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt:

Source/WebCore:

Previously, XHR was testing whether a "Content-Type" was set using setRequestHeader by checking whether a "Content-Type" header value was empty.
This now tests whether "Content-Type" request header is set using either HTTPHeaderMap::contains or checking whether a "Content-Type" header value is null.

Test: http/tests/xmlhttprequest/post-empty-content-type.html

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):

12:38 AM Changeset in webkit [192619] by commit-queue@webkit.org
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Add bitwise Double-Int conversion to B3
https://bugs.webkit.org/show_bug.cgi?id=151432

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-19
Reviewed by Filip Pizlo.

This is needed for boxing/unboxing doubles.

  • b3/B3Const64Value.cpp:

(JSC::B3::Const64Value::bitwiseCastConstant):

  • b3/B3Const64Value.h:
  • b3/B3ConstDoubleValue.cpp:

(JSC::B3::ConstDoubleValue::bitwiseCastConstant):

  • b3/B3ConstDoubleValue.h:
  • b3/B3LowerToAir.cpp:

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

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3ReduceStrength.cpp:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::bitwiseCastConstant):
(JSC::B3::Value::effects):
(JSC::B3::Value::typeFor):

  • b3/B3Value.h:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testDoubleArgToInt64BitwiseCast):
(JSC::B3::testDoubleImmToInt64BitwiseCast):
(JSC::B3::testTwoBitwiseCastOnDouble):
(JSC::B3::testBitwiseCastOnDoubleInMemory):
(JSC::B3::testInt64BArgToDoubleBitwiseCast):
(JSC::B3::testInt64BImmToDoubleBitwiseCast):
(JSC::B3::testTwoBitwiseCastOnInt64):
(JSC::B3::testBitwiseCastOnInt64InMemory):
(JSC::B3::int64Operands):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::bitCast):

12:19 AM Changeset in webkit [192618] by beidson@apple.com
  • 7 edits
    4 adds in trunk

Modern IDB: Populate indexes created in object stores that already have records.
https://bugs.webkit.org/show_bug.cgi?id=151421

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/index-4.html

storage/indexeddb/modern/index-5.html

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::createIndex):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):

  • Modules/indexeddb/server/MemoryObjectStore.h:

LayoutTests:

  • storage/indexeddb/modern/index-4-expected.txt: Added.
  • storage/indexeddb/modern/index-4.html: Added.
  • storage/indexeddb/modern/index-5-expected.txt: Added.
  • storage/indexeddb/modern/index-5.html: Added.
12:17 AM Changeset in webkit [192617] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Tools

WPT server should use its own testharness.js file and generate a warning when it does not match WebKit version
https://bugs.webkit.org/show_bug.cgi?id=150332

Reviewed by Darin Adler and Ryosuke Niwa.

Removing testharness.js overwriting from LayoutTests/resources to LayoutTests/imported/w3c/web-platform-tests/resources.
Adding support for file comparison in python filesystem.
#NousSommesUnis.

  • Scripts/webkitpy/common/system/filesystem.py:

(FileSystem.compare): Adding compare as a wrapper around filecmp.cmp.

  • Scripts/webkitpy/common/system/filesystem_mock.py:

(MockFileSystem.compare): Adding a mock compare.

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

(WebPlatformTestServer.init): Removed testharness.js as file to copy from WK to WPT.
(WebPlatformTestServer._copy_webkit_test_files): Added warning generation when WK testharness.js is not matching WPT version.

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

(TestWebPlatformTestServer.test_previously_spawned_instance): Updated tests to add testharness.js to mock filesystem.
(TestWebPlatformTestServer.test_corrupted_subserver_files): Ditto.

12:05 AM Changeset in webkit [192616] by Matt Baker
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Convert remaining timeline views to use View base class
https://bugs.webkit.org/show_bug.cgi?id=151410

Reviewed by Timothy Hatcher.

Converted timeline views to use View base class. Mostly mechanical
changes (override View.prototype.layout, use let in more places).

  • UserInterface/Views/LayoutTimelineOverviewGraph.js:

(WebInspector.LayoutTimelineOverviewGraph.prototype.layout):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout): Deleted.

  • UserInterface/Views/NetworkTimelineOverviewGraph.js:

(WebInspector.NetworkTimelineOverviewGraph.prototype.layout.createBar):
(WebInspector.NetworkTimelineOverviewGraph.prototype.layout):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar): Deleted.
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout): Deleted.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.layout):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.updateLayout): Deleted.

  • UserInterface/Views/ScriptTimelineOverviewGraph.js:

(WebInspector.ScriptTimelineOverviewGraph.prototype.layout.createBar):
(WebInspector.ScriptTimelineOverviewGraph.prototype.layout):
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar): Deleted.
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout): Deleted.

  • UserInterface/Views/TimelineOverview.js:

Extend View.
(WebInspector.TimelineOverview):
Add ruler as a subview.
(WebInspector.TimelineOverview.prototype.set startTime):
(WebInspector.TimelineOverview.prototype.set currentTime):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set endTime):
(WebInspector.TimelineOverview.prototype.set scrollStartTime):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverview.prototype.get timelineRuler):
(WebInspector.TimelineOverview.prototype.canShowTimeline):
(WebInspector.TimelineOverview.prototype.layout):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview._handleGestureStart):
(WebInspector.TimelineOverview.prototype._handleGestureChange):
(WebInspector.TimelineOverview.prototype._timelineAdded):
(WebInspector.TimelineOverview.prototype._timelineRemoved):
(WebInspector.TimelineOverview.prototype.get element): Deleted.
(WebInspector.TimelineOverview.prototype.updateLayout): Deleted.

  • UserInterface/Views/TimelineOverviewGraph.js:

Extend view.
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.needsLayout):
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
(WebInspector.TimelineOverviewGraph.prototype.updateLayout): Deleted.
(WebInspector.TimelineOverviewGraph.prototype.updateLayoutIfNeeded): Deleted.
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout.update): Deleted.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
Add overview as a subview.
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
Use View.prototype.replaceSubview to swap overview graphs.

Nov 18, 2015:

10:30 PM Changeset in webkit [192615] by BJ Burg
  • 4 edits
    2 adds in trunk

Web Inspector: Storage tab shouldn't hide cookies for .example.com when inspected page is foo.bar.example.com
https://bugs.webkit.org/show_bug.cgi?id=151408

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

The regex should allow multiple subdomains to match a cookie for domain .example.com.

Test: inspector/page/filter-cookies-for-domain.html

  • UserInterface/Models/CookieStorageObject.js:

(WebInspector.CookieStorageObject.cookieDomainMatchesResourceDomain):

Also make the group non-capturing. We don't use the match.

(WebInspector.CookieStorageObject.prototype.saveIdentityToCookie):
(WebInspector.CookieStorageObject):

  • UserInterface/Test.html:

LayoutTests:

  • inspector/page/filter-cookies-for-domain-expected.txt: Added.
  • inspector/page/filter-cookies-for-domain.html: Added.
10:27 PM Changeset in webkit [192614] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: move cookie url matching out of CookieStorageContentView and clean up some code
https://bugs.webkit.org/show_bug.cgi?id=151424

Reviewed by Timothy Hatcher.

Move the code that decides whether a cookie matches a resource URL to a model class.
This will make it possible to test this code easily without pulling Views into tests.

  • UserInterface/Models/CookieStorageObject.js:

(WebInspector.CookieStorageObject.cookieMatchesResourceURL):
(WebInspector.CookieStorageObject.cookieDomainMatchesResourceDomain):
(WebInspector.CookieStorageObject.prototype.saveIdentityToCookie):
(WebInspector.CookieStorageObject):

  • UserInterface/Views/CookieStorageContentView.js:

(WebInspector.CookieStorageContentView.prototype.update): use Promises.
(WebInspector.CookieStorageContentView.prototype._rebuildTable):
(WebInspector.CookieStorageContentView.prototype._filterCookies):

Use Array.filter() and Array.some() to express this logic more directly.

(WebInspector.CookieStorageContentView.cookieMatchesResourceURL): Deleted.
(WebInspector.CookieStorageContentView.cookieDomainMatchesResourceDomain): Deleted.
(WebInspector.CookieStorageContentView.prototype.update.callback): Deleted.

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

Web Inspector: Clear watch expressions button using wrong icon
https://bugs.webkit.org/show_bug.cgi?id=151422

Reviewed by Timothy Hatcher.

Updated "clear" button to use trashcan image. This was broken by
https://bugs.webkit.org/show_bug.cgi?id=151377.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel):

9:44 PM Changeset in webkit [192612] by Matt Baker
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: Reduce synchronous view layouts
https://bugs.webkit.org/show_bug.cgi?id=151058

Reviewed by Timothy Hatcher.

Replace calls to View.updateLayout with needsLayout, when a synchronous layout
isn't absolutely necessary.

  • UserInterface/Models/BackForwardEntry.js:

(WebInspector.BackForwardEntry.prototype.prepareToShow):

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WebInspector.ApplicationCacheFrameContentView.prototype.updateLayout): Deleted.
View subclasses shouldn't override updateLayout.

  • UserInterface/Views/ButtonNavigationItem.js:

(WebInspector.ButtonNavigationItem.prototype.set label):

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.ContentBrowser.prototype._currentContentViewDidChange):
(WebInspector.ContentBrowser.prototype._contentViewNavigationItemsDidChange):

  • UserInterface/Views/DatabaseTableContentView.js:

(WebInspector.DatabaseTableContentView.prototype._queryFinished):
Just update DataGrid's layout, not the whole view. The grid is the only subview
so the result is identical, but the intent is cleared this way.
(WebInspector.DatabaseTableContentView.prototype.updateLayout): Deleted.
View subclasses shouldn't override updateLayout.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype.promptDidChangeHeight): Deleted.
Unused code.

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype.set width):
(WebInspector.Sidebar.prototype.set collapsed):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView.prototype._contentWillPopulate):
Add TextEditor as a subview.
(WebInspector.TextResourceContentView.prototype.updateLayout): Deleted.
View subclasses shouldn't override updateLayout.

8:48 PM Changeset in webkit [192611] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Internal perf dashboard takes forever to load
https://bugs.webkit.org/show_bug.cgi?id=151430

Rubber-stamped by Antti Koivisto.

Fix a few performance problems with the perf dashboard v2 UI.

  • public/v2/app.js:

(App.DashboardRow._createPane): Set "inDashboard" to true.
(App.Pane._fetch): Immediately show the cached chart instead of waiting for the refetched data which invokes
a PHP JSON API. Also don't fetch the analysis tasks when the chart is shown in the dashboard since we don't
show annotate charts in the dashboard.

8:36 PM Changeset in webkit [192610] by beidson@apple.com
  • 17 edits
    1 copy
    7 adds in trunk

Modern IDB:Make in-memory Index cursors work.
https://bugs.webkit.org/show_bug.cgi?id=151278

Reviewed by Alex Christensen.

Source/WebCore:

Tests: storage/indexeddb/modern/index-cursor-1.html

storage/indexeddb/modern/index-cursor-2.html
storage/indexeddb/modern/index-cursor-3.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::openCursor):
(WebCore::IDBClient::IDBIndex::openKeyCursor):

  • Modules/indexeddb/server/IndexValueEntry.cpp:

(WebCore::IDBServer::IndexValueEntry::removeKey):
(WebCore::IDBServer::IndexValueEntry::Iterator::Iterator):
(WebCore::IDBServer::IndexValueEntry::Iterator::key):
(WebCore::IDBServer::IndexValueEntry::Iterator::isValid):
(WebCore::IDBServer::IndexValueEntry::Iterator::invalidate):
(WebCore::IDBServer::IndexValueEntry::Iterator::operator++):
(WebCore::IDBServer::IndexValueEntry::begin):
(WebCore::IDBServer::IndexValueEntry::reverseBegin):
(WebCore::IDBServer::IndexValueEntry::find):
(WebCore::IDBServer::IndexValueEntry::reverseFind):

  • Modules/indexeddb/server/IndexValueEntry.h:

(WebCore::IDBServer::IndexValueEntry::Iterator::Iterator):
(WebCore::IDBServer::IndexValueEntry::unique):

  • Modules/indexeddb/server/IndexValueStore.cpp:

(WebCore::IDBServer::IndexValueStore::removeEntriesWithValueKey):
(WebCore::IDBServer::IndexValueStore::lowestKeyWithRecordInRange):
(WebCore::IDBServer::IndexValueStore::lowestIteratorInRange):
(WebCore::IDBServer::IndexValueStore::highestReverseIteratorInRange):
(WebCore::IDBServer::IndexValueStore::find):
(WebCore::IDBServer::IndexValueStore::reverseFind):
(WebCore::IDBServer::IndexValueStore::Iterator::Iterator):
(WebCore::IDBServer::IndexValueStore::Iterator::nextIndexEntry):
(WebCore::IDBServer::IndexValueStore::Iterator::operator++):
(WebCore::IDBServer::IndexValueStore::Iterator::invalidate):
(WebCore::IDBServer::IndexValueStore::Iterator::isValid):
(WebCore::IDBServer::IndexValueStore::Iterator::key):
(WebCore::IDBServer::IndexValueStore::Iterator::primaryKey):

  • Modules/indexeddb/server/IndexValueStore.h:

(WebCore::IDBServer::IndexValueStore::Iterator::Iterator):

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::openCursor):

  • Modules/indexeddb/server/MemoryIndex.cpp:

(WebCore::IDBServer::MemoryIndex::cursorDidBecomeClean):
(WebCore::IDBServer::MemoryIndex::cursorDidBecomeDirty):
(WebCore::IDBServer::MemoryIndex::objectStoreCleared):
(WebCore::IDBServer::MemoryIndex::notifyCursorsOfValueChange):
(WebCore::IDBServer::MemoryIndex::notifyCursorsOfAllRecordsChanged):
(WebCore::IDBServer::MemoryIndex::putIndexKey):
(WebCore::IDBServer::MemoryIndex::removeRecord):
(WebCore::IDBServer::MemoryIndex::removeEntriesWithValueKey):
(WebCore::IDBServer::MemoryIndex::maybeOpenCursor):

  • Modules/indexeddb/server/MemoryIndex.h:

(WebCore::IDBServer::MemoryIndex::valueStore):
(WebCore::IDBServer::MemoryIndex::objectStore):

  • Modules/indexeddb/server/MemoryIndexCursor.cpp: Added.

(WebCore::IDBServer::MemoryIndexCursor::MemoryIndexCursor):
(WebCore::IDBServer::MemoryIndexCursor::~MemoryIndexCursor):
(WebCore::IDBServer::MemoryIndexCursor::currentData):
(WebCore::IDBServer::MemoryIndexCursor::iterate):
(WebCore::IDBServer::MemoryIndexCursor::indexRecordsAllChanged):
(WebCore::IDBServer::MemoryIndexCursor::indexValueChanged):

  • Modules/indexeddb/server/MemoryIndexCursor.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::indexForIdentifier):
(WebCore::IDBServer::MemoryObjectStore::valueForKey):

  • Modules/indexeddb/server/MemoryObjectStore.h:
  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::objectStoreCursor):
(WebCore::IDBCursorInfo::indexCursor):
(WebCore::IDBCursorInfo::IDBCursorInfo):
(WebCore::IDBCursorInfo::isDirectionNoDuplicate):
(WebCore::IDBCursorInfo::isolatedCopy):

  • Modules/indexeddb/shared/IDBCursorInfo.h:

(WebCore::IDBCursorInfo::objectStoreIdentifier):

LayoutTests:

  • storage/indexeddb/modern/cursor-1-expected.txt:
  • storage/indexeddb/modern/index-cursor-1-expected.txt: Added.
  • storage/indexeddb/modern/index-cursor-1.html: Added.
  • storage/indexeddb/modern/index-cursor-2-expected.txt: Added.
  • storage/indexeddb/modern/index-cursor-2.html: Added.
  • storage/indexeddb/modern/index-cursor-3-expected.txt: Added.
  • storage/indexeddb/modern/index-cursor-3.html: Added.
8:15 PM Changeset in webkit [192609] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add some missing load/store to FTLB3Output
https://bugs.webkit.org/show_bug.cgi?id=151427

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

  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::load8SignExt32):
(JSC::FTL::Output::load8ZeroExt32):
(JSC::FTL::Output::load16SignExt32):
(JSC::FTL::Output::load16ZeroExt32):
(JSC::FTL::Output::loadFloatToDouble):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::load32):
(JSC::FTL::Output::loadPtr):
(JSC::FTL::Output::loadDouble):
(JSC::FTL::Output::load8SignExt32): Deleted.
(JSC::FTL::Output::load8ZeroExt32): Deleted.
(JSC::FTL::Output::load16SignExt32): Deleted.
(JSC::FTL::Output::load16ZeroExt32): Deleted.
(JSC::FTL::Output::loadFloatToDouble): Deleted.

8:14 PM Changeset in webkit [192608] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Assertion failure in RenderTreePosition::computeNextSibling
https://bugs.webkit.org/show_bug.cgi?id=151337
rdar://problem/23250075

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/html/details-mathml-crash.html

  • html/ads: Added.
  • style/StyleResolveTree.cpp:

(WebCore::Style::resolveChildAtShadowBoundary):

Factor common code for resolving child here from resolveShadowTree.

(WebCore::Style::resolveShadowTree):

We don't need StyleResolverParentPusher because shadow tree uses different style resolver anyway.

(WebCore::Style::resolveSlotAssignees):

This needs to call renderTreePosition.invalidateNextSibling() if there is a renderer already.
Achieve this by calling the new common function resolveChildAtShadowBoundary.

LayoutTests:

Test case by Pranjal Jumde.

  • fast/html/details-mathml-crash-expected.txt: Added.
  • fast/html/details-mathml-crash.html: Added.
7:20 PM Changeset in webkit [192607] by jer.noble@apple.com
  • 10 edits in trunk/Source/WebCore

WebGL slow video to texture
https://bugs.webkit.org/show_bug.cgi?id=129626

Reviewed by Dean Jackson.

Support a direct GPU-to-GPU copy of video textures. Add a new AVPlayerItemVideoOutput which,
when lazily-created, will emit CVPixelBuffers which are guaranteed to be compatible with
OpenGL framebuffers. Then, use a CVOpenGLTextureCache object to convert those CVPixelBuffers
to OpenGL textures. Once the video frame is in an OpenGL texture, use an OpenGL framebuffer
to copy the underlying video texture memory to the destination texture.

The copy step uses glTexImage2D, which requires format and type parameters, so change the
signature of copyVideoTextureToPlatformTexture() to pass those parameters in.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::copyVideoTextureToPlatformTexture): Changed signature.

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

(WebCore::WebGLRenderingContextBase::texImage2D): Changed signature.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::copyVideoTextureToPlatformTexture): Changed signature.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture): Changed signature.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createOpenGLVideoOutput): Create an OpenGL-compatible

AVPlayerItemVideoOutput.

(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyOpenGLVideoOutput): Destroy same.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastOpenGLImage): Cache the current frame, if available.
(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture): Convert the

current frame to a texture, and use that texture to render into the destination texture.

7:09 PM Changeset in webkit [192606] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix typos in r192605

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileUpsilon):

6:48 PM Changeset in webkit [192605] by benjamin@webkit.org
  • 16 edits in trunk/Source/JavaScriptCore

FTL should be able to compile a small function with B3
https://bugs.webkit.org/show_bug.cgi?id=151423

Patch by Filip Pizlo <fpizlo@apple.com> and Benjamin Poulain <bpoulain@apple.com> on 2015-11-18
Reviewed by Filip Pizlo.

  • b3/B3LowerToAir.cpp:

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

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

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

(JSC::FTL::Output::Output):
(JSC::FTL::Output::~Output):
(JSC::FTL::Output::initialize):
(JSC::FTL::Output::appendTo):
(JSC::FTL::Output::lockedStackSlot):
(JSC::FTL::Output::load):
(JSC::FTL::Output::store):
(JSC::FTL::Output::branch):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::newBlock):
(JSC::FTL::Output::setOrigin):
(JSC::FTL::Output::origin):
(JSC::FTL::Output::framePointer):
(JSC::FTL::Output::constBool):
(JSC::FTL::Output::constInt32):
(JSC::FTL::Output::constIntPtr):
(JSC::FTL::Output::constInt64):
(JSC::FTL::Output::constDouble):
(JSC::FTL::Output::upsilon):
(JSC::FTL::Output::phi):
(JSC::FTL::Output::add):
(JSC::FTL::Output::sub):
(JSC::FTL::Output::mul):
(JSC::FTL::Output::neg):
(JSC::FTL::Output::doubleAdd):
(JSC::FTL::Output::doubleSub):
(JSC::FTL::Output::doubleMul):
(JSC::FTL::Output::doubleDiv):
(JSC::FTL::Output::doubleNeg):
(JSC::FTL::Output::bitAnd):
(JSC::FTL::Output::bitOr):
(JSC::FTL::Output::bitXor):
(JSC::FTL::Output::shl):
(JSC::FTL::Output::aShr):
(JSC::FTL::Output::lShr):
(JSC::FTL::Output::load64):
(JSC::FTL::Output::store32):
(JSC::FTL::Output::store64):
(JSC::FTL::Output::storePtr):
(JSC::FTL::Output::storeDouble):
(JSC::FTL::Output::addPtr):
(JSC::FTL::Output::address):
(JSC::FTL::Output::below):
(JSC::FTL::Output::isZero32):
(JSC::FTL::Output::notZero32):
(JSC::FTL::Output::isZero64):
(JSC::FTL::Output::notZero64):
(JSC::FTL::Output::isNull):
(JSC::FTL::Output::notNull):
(JSC::FTL::Output::testIsZero32):
(JSC::FTL::Output::testNonZero32):
(JSC::FTL::Output::testIsZero64):
(JSC::FTL::Output::testNonZero64):
(JSC::FTL::Output::testIsZeroPtr):
(JSC::FTL::Output::testNonZeroPtr):
(JSC::FTL::Output::call):
(JSC::FTL::Output::operation):
(JSC::FTL::Output::jump):
(JSC::FTL::Output::branch):
(JSC::FTL::Output::ret):
(JSC::FTL::Output::unreachable):
(JSC::FTL::Output::check):
(JSC::FTL::Output::anchor):
(JSC::FTL::Output::addIncomingToPhi):
(JSC::FTL::Output::~Output): Deleted.
(JSC::FTL::Output::appendTo): Deleted.
(JSC::FTL::Output::param): Deleted.
(JSC::FTL::Output::load): Deleted.
(JSC::FTL::Output::store): Deleted.
(JSC::FTL::Output::store16): Deleted.

  • ftl/FTLCommonValues.cpp:

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

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

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

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::LowerDFGToLLVM):
(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::createPhiVariables):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::safelyInvalidateAfterTermination):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileUpsilon):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePhi):
(JSC::FTL::DFG::LowerDFGToLLVM::compileToThis):
(JSC::FTL::DFG::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStrCat):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArrayifyToStructure):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetById):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutAccessorById):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutGetterSetterById):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutAccessorByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArrayPush):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArrayPop):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateScopedArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateClonedArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArray):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayBuffer):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToLLVM::compileToStringOrCallStringConstructor):
(JSC::FTL::DFG::LowerDFGToLLVM::compileToPrimitive):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileLoadVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::DFG::LowerDFGToLLVM::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToLLVM::compileIn):
(JSC::FTL::DFG::LowerDFGToLLVM::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToLLVM::compileHasGenericProperty):
(JSC::FTL::DFG::LowerDFGToLLVM::compileHasStructureProperty):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetDirectPname):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetPropertyEnumerator):
(JSC::FTL::DFG::LowerDFGToLLVM::compileToIndexString):
(JSC::FTL::DFG::LowerDFGToLLVM::didOverflowStack):
(JSC::FTL::DFG::LowerDFGToLLVM::allocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::reallocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::getById):
(JSC::FTL::DFG::LowerDFGToLLVM::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToLLVM::contiguousPutByValOutOfBounds):
(JSC::FTL::DFG::LowerDFGToLLVM::switchStringSlow):
(JSC::FTL::DFG::LowerDFGToLLVM::doubleToInt32):
(JSC::FTL::DFG::LowerDFGToLLVM::sensibleDoubleToInt32):
(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):
(JSC::FTL::DFG::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::DFG::LowerDFGToLLVM::doubleToStrictInt52):
(JSC::FTL::DFG::LowerDFGToLLVM::vmCall):
(JSC::FTL::DFG::LowerDFGToLLVM::callCheck):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::DFG::LowerDFGToLLVM::callStackmap):
(JSC::FTL::DFG::LowerDFGToLLVM::probe):
(JSC::FTL::DFG::LowerDFGToLLVM::crash):
(JSC::FTL::lowerDFGToLLVM):
(JSC::FTL::DFG::LowerDFGToLLVM::vmCallNoExceptions): Deleted.

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::sensibleDoubleToInt):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::ceil64):
(JSC::FTL::Output::ctlz32):
(JSC::FTL::Output::addWithOverflow32):
(JSC::FTL::Output::subWithOverflow32):
(JSC::FTL::Output::mulWithOverflow32):
(JSC::FTL::Output::addWithOverflow64):
(JSC::FTL::Output::subWithOverflow64):
(JSC::FTL::Output::mulWithOverflow64):
(JSC::FTL::Output::doubleAbs):
(JSC::FTL::Output::doubleSin):
(JSC::FTL::Output::doubleCos):
(JSC::FTL::Output::doublePow):
(JSC::FTL::Output::doublePowi):
(JSC::FTL::Output::doubleSqrt):
(JSC::FTL::Output::doubleLog):
(JSC::FTL::Output::call):
(JSC::FTL::Output::trap):

  • ftl/FTLState.cpp:

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

  • ftl/FTLState.h:
  • ftl/FTLWeight.h:

(JSC::FTL::Weight::frequencyClass):

5:42 PM Changeset in webkit [192604] by jiewen_tan@apple.com
  • 6 edits
    5 adds in trunk

[WK1] Crash loading Blink layout test fast/dom/Window/property-access-on-cached-window-after-frame-removed.html
https://bugs.webkit.org/show_bug.cgi?id=150198
<rdar://problem/23136026>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: fast/dom/Window/property-access-on-cached-window-after-frame-removed.html

Properties of a contentWindow could be accessed even if the frame who owns the window is
detached. Therefore, check whether the document loader is still alive before using it.

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):

Tools:

  • WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:

(WTR::TestRunner::inspectorTestStubURL):
Since WebInspectorUI.framework is not available for iOS, the framework
and corresponding functions are disabled in iOS.

LayoutTests:

  • fast/dom/Window/666869-expected.txt: Added.
  • fast/dom/Window/666869.html: Added.

Test case is from Mozilla.

  • fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt: Added.
  • fast/dom/Window/property-access-on-cached-window-after-frame-removed.html: Added.
  • fast/dom/Window/resources/window-property-collector.js: Added.

(collectProperties):
(emitExpectedResult):
(collectPropertiesHelper):
Test case is from Blink r168256:
https://codereview.chromium.org/131113003

  • platform/mac-wk2/TestExpectations:
5:26 PM Changeset in webkit [192603] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

There is a bug when default parameter values are mixed with destructuring parameter values
https://bugs.webkit.org/show_bug.cgi?id=151369

Reviewed by Geoffrey Garen and Mark Lam.

Relanding this after a rollout.

This patch changes our parser to no longer declare destructuring
parameters as "var"s. This is a weird bug that just happened
to work in a world without default parameter values. In a world with
default parameter values this is just completely wrong. It would
incorrectly transform this program:
function foo(a = function() { b = 40; }, {b}) { a(); return b; }; foo(undefined, {b: 42}); // Should return 40
into
function foo(a = function() { b = 40; }, {b}) { var b; a(); return b; }; foo(undefined, {b:42}); // Returns 42, not 40.
Which is wrong because we end up with two distinct bindings of "b" when
there should only be one.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseDestructuringPattern):

  • parser/Parser.h:

(JSC::Scope::declareParameter):
(JSC::Scope::getUsedVariables):
(JSC::Parser::strictMode):
(JSC::Parser::isValidStrictMode):
(JSC::Parser::declareParameter):
(JSC::Parser::breakIsValid):
(JSC::Scope::declareBoundParameter): Deleted.
(JSC::Parser::declareBoundParameter): Deleted.

  • tests/stress/es6-default-parameters.js:
5:24 PM Changeset in webkit [192602] by eric.carlson@apple.com
  • 15 edits
    6 adds in trunk

MediaStream: Implement MediaDevices.getSupportedConstraints
https://bugs.webkit.org/show_bug.cgi?id=151394

Reviewed by Brent Fulgham.

Source/WebCore:

Test: fast/mediastream/MediaDevices-getSupportedConstraints.html

  • CMakeLists.txt: Add MediaTrackSupportedConstraints and JSMediaTrackSupportedConstraintsCustom.
  • DerivedSources.make: Ditto.
  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getSupportedConstraints): New.

  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/MediaDevices.idl:
  • Modules/mediastream/MediaTrackSupportedConstraints.h: Added. Wrapper around a RealtimeMediaSourceSupportedConstraints.

(WebCore::MediaTrackSupportedConstraints::create):
(WebCore::MediaTrackSupportedConstraints::supportsWidth):
(WebCore::MediaTrackSupportedConstraints::supportsHeight):
(WebCore::MediaTrackSupportedConstraints::supportsAspectRatio):
(WebCore::MediaTrackSupportedConstraints::supportsFrameRate):
(WebCore::MediaTrackSupportedConstraints::supportsFacingMode):
(WebCore::MediaTrackSupportedConstraints::supportsVolume):
(WebCore::MediaTrackSupportedConstraints::supportsSampleRate):
(WebCore::MediaTrackSupportedConstraints::supportsSampleSize):
(WebCore::MediaTrackSupportedConstraints::supportsEchoCancellation):
(WebCore::MediaTrackSupportedConstraints::supportsDeviceId):
(WebCore::MediaTrackSupportedConstraints::supportsGroupId):
(WebCore::MediaTrackSupportedConstraints::MediaTrackSupportedConstraints):

  • Modules/mediastream/MediaTrackSupportedConstraints.idl: Added.
  • WebCore.xcodeproj/project.pbxproj: Add JSMediaTrackSupportedConstraintsCustom.cpp, RealtimeMediaSourceSupportedConstraints.h, and MediaTrackSupportedConstraints.*.

A MediaTrackSupportedConstraints only contains the properties supported by the currently
available capture devices, so implement getOwnPropertySlot and getOwnPropertyNames so
we don't have to declare any attributes in the idl file.

  • bindings/js/JSMediaTrackSupportedConstraintsCustom.cpp: Added.

(WebCore::JSMediaTrackSupportedConstraints::getOwnPropertySlotDelegate):
(WebCore::JSMediaTrackSupportedConstraints::getOwnPropertyNames):

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.h: Added.

(WebCore::RealtimeMediaSourceSupportedConstraints::RealtimeMediaSourceSupportedConstraints):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsWidth):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsWidth):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsHeight):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsHeight):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsAspectRatio):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsAspectRatio):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsFrameRate):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsFrameRate):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsFacingMode):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsFacingMode):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsVolume):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsVolume):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsSampleRate):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsSampleRate):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsSampleSize):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsSampleSize):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsEchoCancellation):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsEchoCancellation):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsDeviceId):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsDeviceId):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsGroupId):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsGroupId):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac): Initialize supported constraints.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
  • platform/mock/MockRealtimeMediaSource.cpp: Delete some dead code.
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::MockRealtimeMediaSourceCenter): Initialize supported constraints.

  • platform/mock/MockRealtimeMediaSourceCenter.h:

LayoutTests:

  • fast/mediastream/MediaDevices-getSupportedConstraints-expected.txt: Added.
  • fast/mediastream/MediaDevices-getSupportedConstraints.html: Added.
5:17 PM Changeset in webkit [192601] by commit-queue@webkit.org
  • 33 edits in trunk/Source

Progress towards implementing Downloads with NETWORK_SESSION
https://bugs.webkit.org/show_bug.cgi?id=151414

Reviewed begrudgingly by Brady Eidson.

Source/WebCore:

There is no change in behavior except that SessionIDs are sent across IPC and passed as parameters,
and they are not used yet.

Patch by Alex Christensen <achristensen@webkit.org> on 2015-11-18

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::continueAfterContentPolicy):
Removed an unused default. Compiler warnings will let us know if we add an unhandled case to this switch.

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

Pass SessionIDs around.

Source/WebKit/mac:

Patch by Alex Christensen <achristensen@webkit.org> on 2015-11-18

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

(WebFrameLoaderClient::detachedFromParent3):
(WebFrameLoaderClient::convertMainResourceLoadToDownload):

Source/WebKit2:

Patch by Alex Christensen <achristensen@webkit.org> on 2015-11-18

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::storageSession):
(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::didReceiveData):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::downloadRequest):
(WebKit::NetworkProcess::resumeDownload):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::cleanup):
(WebKit::NetworkResourceLoader::didConvertHandleToDownload):
(WebKit::NetworkResourceLoader::abort):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(toNSURLSessionResponseDisposition):
(-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[NetworkSessionDelegate URLSession:dataTask:didReceiveData:]):
(-[NetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]):
(-[NetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[NetworkSessionDelegate URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:]):
(-[NetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge):
(WebKit::AuthenticationManager::cancelSingleChallenge):
(WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge):

  • Shared/Downloads/Download.h:
  • Shared/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::DownloadManager):
(WebKit::DownloadManager::startDownload):
(WebKit::DownloadManager::convertHandleToDownload):
(WebKit::DownloadManager::resumeDownload):
(WebKit::DownloadManager::cancelDownload):
(WebKit::DownloadManager::downloadFinished):
(WebKit::DownloadManager::didCreateDownload):

  • Shared/Downloads/DownloadManager.h:

(WebKit::DownloadManager::isDownloading):
(WebKit::DownloadManager::activeDownloadCount):

  • Shared/Downloads/mac/DownloadMac.mm:

(WebKit::Download::start):
(WebKit::Download::startWithHandle):
(WebKit::Download::resume):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::canCachePage):
(WebKit::WebFrameLoaderClient::convertMainResourceLoadToDownload):
(WebKit::WebFrameLoaderClient::createFrame):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):
(WebKit::WebFrame::source):

  • WebProcess/WebPage/WebFrame.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::downloadRequest):
(WebKit::WebProcess::resumeDownload):
(WebKit::WebProcess::releasePageCache):
(WebKit::WebProcess::fetchWebsiteData):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
4:54 PM Changeset in webkit [192600] by mark.lam@apple.com
  • 11 edits
    3 adds in trunk/Source/JavaScriptCore

Snippefy op_mul for the baseline JIT.
https://bugs.webkit.org/show_bug.cgi?id=151393

Reviewed by Geoffrey Garen.

Benchmarks shows that perf is neutral on x86 and x86_64 with the DFG enabled.

With the DFG disabled (relying on the baseline JIT for perf), LongSpider
3d-morph shows a 7.6% regression. However, there are other benchmarks that shows
a progression e.g. on Kraken, audio-beat-detection and audio-fft.

Upon inspection of the generated code for 3d-morph, the only differences is the
added use of a scratch register for the result as well as a jump around the
code that handles double types. It does not look like we're generating bad code.
I'll consider the perf acceptable in aggregate.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generate):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::boxInt32):

  • jit/IntrinsicEmitter.cpp:

(JSC::AccessCase::emitIntrinsicGetter):

  • Changed AssemblyHelpers::boxInt32() to take a TagRegistersMode. The pre-existing boxInt32() always assume that the tag registers are not available. Since we should assume we have tag registers by default, I also changed all the other clients to explicitly specify a more of DoNotHaveTagRegisters. That is except for the snippet generators that do have the tag registers.
  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::compileBinaryArithOpSlowCase):
(JSC::JIT::emit_op_div):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):
(JSC::JIT::compileBinaryArithOp): Deleted.

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emitBinaryDoubleOp):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul): Deleted.
(JSC::JIT::emitSlow_op_mul): Deleted.

  • jit/JITMulGenerator.cpp: Added.

(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h: Added.

(JSC::JITMulGenerator::JITMulGenerator):
(JSC::JITMulGenerator::didEmitFastPath):
(JSC::JITMulGenerator::endJumpList):
(JSC::JITMulGenerator::slowPathJumpList):

  • tests/stress/op_mul.js: Added.

(o1.valueOf):
(generateScenarios):
(printScenarios):
(testCases.func):
(func):
(initializeTestCases):
(stringifyIfNeeded):
(isIdentical):
(runTest):

  • Tests that JIT op_mul results are equivalent to the expected values as defined by the LLINT.
4:30 PM Changeset in webkit [192599] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Remove some unnecessary jumps in snippet code.
https://bugs.webkit.org/show_bug.cgi?id=151415

Reviewed by Geoffrey Garen.

Previously, the snippet generators always emit a jump at the end of the fast
path. In the baseline JIT and FTL, this results in a jump to the very next
instruction. I've change it to assume that the fast path will just fall thru,
and let the client decide instead if it wants/needs a jump or not after the fast
path.

I also changed the generators to provide a didEmitFastPath() query explicitly
declare if they actually generated the fast path, instead of having the client
infer it from an empty endJumpList.

Benchmarks show that perf is neutral with this change (tested on x86_64).

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileArithSub):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::didEmitFastPath):
(JSC::JITAddGenerator::endJumpList):
(JSC::JITAddGenerator::slowPathJumpList):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_add):
(JSC::JIT::emit_op_sub):

  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::didEmitFastPath):
(JSC::JITSubGenerator::endJumpList):
(JSC::JITSubGenerator::slowPathJumpList):

4:20 PM Changeset in webkit [192598] by ap@apple.com
  • 4 edits in trunk/Tools

[Mac] Swipe tests depend on user preferences
https://bugs.webkit.org/show_bug.cgi?id=151403

Reviewed by Tim Horton.

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: (WTR::InjectedBundle::platformInitialize):
  • WebKitTestRunner/mac/main.mm: (setDefaultsToConsistentValuesForTesting):

Override these preferences to match the default for a new OS X installation.

  • DumpRenderTree/mac/DumpRenderTree.mm: (setDefaultsToConsistentValuesForTesting):

Swipe tests are not enabled in WK1, but let's override the default anyway.

4:03 PM Changeset in webkit [192597] by commit-queue@webkit.org
  • 11 edits
    3 deletes in trunk/Source/JavaScriptCore

Unreviewed, rolling out r192436 and r192586.
https://bugs.webkit.org/show_bug.cgi?id=151417

Caused a hang in the inspector and a crash @ google.com.
(Requested by saamyjoon on #webkit).

Reverted changesets:

"Allow any LeftHandSideExpression as a valid
AssignmentElement"
https://bugs.webkit.org/show_bug.cgi?id=151026
http://trac.webkit.org/changeset/192436

"There is a bug when default parameter values are mixed with
destructuring parameter values"
https://bugs.webkit.org/show_bug.cgi?id=151369
http://trac.webkit.org/changeset/192586

4:01 PM Changeset in webkit [192596] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] TailCalls should not trigger assertion failures when running with the jsc profiler on.
https://bugs.webkit.org/show_bug.cgi?id=151359

Reviewed by Geoffrey Garen.

If we have the profiler on when parsing tail calls in the dfg we would emit a CountExecutions node
following a TailCall node as our bytecode for tail calls always emits a op_ret following an op_tail_call.
This trips assertions that no nodes follow a terminal in a basic block. This patch fixes this issue by
not emiting a CountExecutions when we have a tail call that is terminal i.e. the tail caller is not
inlined into another function or the tail caller is inlined but is in tail position itself.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleVarargsCall):
(JSC::DFG::ByteCodeParser::parseBlock):

  • tests/stress/tail-call-profiler.js: Added.

(tail):
(inlineTail):
(inlineTailVarArgs):
(inlineTailTernary):
(body):

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

ResourceUsageOverlay should have better accounting for reclaimable memory.
<https://webkit.org/b/151407>

Reviewed by Anders Carlsson.

Add code to inspect the purgeable state of VM regions when traversing the
web process VM map, and track reclaimable regions of memory separately.

Memory categories that have some amount of reclaimable memory are now
displayed with the reclaimable amount in brackets, e.g "123.45 MB [56.78MB]"

  • page/ResourceUsageOverlay.h:
  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::ResourceUsageOverlay::platformDraw):
(WebCore::TagInfo::TagInfo):
(WebCore::pagesPerVMTag):
(WebCore::runSamplerThread):
(WebCore::dirtyPagesPerVMTag): Deleted.

3:47 PM Changeset in webkit [192594] by Matt Baker
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Probes sidebar panel sections should use NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=151373

Reviewed by Brian Burg.

Replaces image elements with a NavigationBar instance. The "Clear samples"
button is disabled when no samples exist in the probe set.

  • Localizations/en.lproj/localizedStrings.js:

New navigation item labels.

  • UserInterface/Models/ProbeSet.js:

(WebInspector.ProbeSet.prototype._sampleCollected):
Dispatch new event WebInspector.ProbeSet.Event.SampleAdded.

  • UserInterface/Views/DetailsSection.css:

(.details-section > .header > .options > .navigation-bar):
(.details-section > .header > .options > .navigation-bar > .item):
Define consistent style for showing a NavigationBar inside the section header.

  • UserInterface/Views/DetailsSection.js:

(WebInspector.DetailsSection):
Add "options" class name in the base class.

  • UserInterface/Views/ProbeDetailsSidebarPanel.css:

(.details-section.probe-set .options > :matches(.probe-remove, .probe-clear-samples, .probe-add)): Deleted.
(.details-section.probe-set .options > .probe-clear-samples): Deleted.
(.details-section.probe-set .options > .probe-remove): Deleted.
(.details-section.probe-set .options > .probe-add): Deleted.
Remove <img> button styles.

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WebInspector.ProbeSetDetailsSection):
(WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked.createProbeFromEnteredExpression):
(WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
(WebInspector.ProbeSetDetailsSection.prototype._clearSamplesButtonClicked):
(WebInspector.ProbeSetDetailsSection.prototype._probeSetSamplesChanged):
Update "Clear samples" enabled state.
(WebInspector.ProbeSetDetailsSection.prototype._probeSetHasSamples):
Helper function to check if the probe set is empty.

3:21 PM Changeset in webkit [192593] by Chris Dumez
  • 4 edits in trunk/Source/WebKit2

Clean up / optimize NetworkCacheSubresourcesEntry
https://bugs.webkit.org/show_bug.cgi?id=151405

Reviewed by Antti Koivisto.

Clean up / optimize NetworkCacheSubresourcesEntry:

  • Remove m_sourceStorageRecord data member
  • Avoid copying the Key when constructing it
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::encodeAsSubresourcesRecord):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:

(WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:
3:17 PM Changeset in webkit [192592] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk

Web Inspector: Client Blocked Resource Requests causes Crash under InspectorPageAgent::cachedResource
https://bugs.webkit.org/show_bug.cgi?id=151398

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-18
Reviewed by Brian Burg.

Source/WebCore:

Test: inspector/network/client-blocked-load.html

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResource):
Gracefully handle null request.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::cachedResource):
ASSERT if someone tried to pass a null URL.

LayoutTests:

  • inspector/network/client-blocked-load-expected.txt: Added.
  • inspector/network/client-blocked-load.html: Added.
3:14 PM Changeset in webkit [192591] by benjamin@webkit.org
  • 19 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Make LBasicBlock into an alias for B3::BasicBlock. #ifdef anything that does not compile
https://bugs.webkit.org/show_bug.cgi?id=151381

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

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • ftl/FTLAbbreviatedTypes.h:
  • ftl/FTLAbbreviations.h:
  • ftl/FTLAbstractHeap.cpp:

(JSC::FTL::AbstractHeap::decorateInstruction):
(JSC::FTL::IndexedAbstractHeap::IndexedAbstractHeap):

  • ftl/FTLAbstractHeap.h:

(JSC::FTL::AbstractHeap::AbstractHeap):

  • ftl/FTLAbstractHeapRepository.cpp:

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

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

(JSC::FTL::Output::newBlock):
(JSC::FTL::Output::insertNewBlocksBefore):
(JSC::FTL::Output::addIncomingToPhi):
(JSC::FTL::Output::Output): Deleted.
(JSC::FTL::Output::initialize): Deleted.

  • ftl/FTLCommonValues.cpp:

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

  • ftl/FTLCommonValues.h:
  • ftl/FTLIntrinsicRepository.cpp:
  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::LowerDFGToLLVM):
(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileIn):
(JSC::FTL::DFG::LowerDFGToLLVM::compileInstanceOf):
(JSC::FTL::DFG::LowerDFGToLLVM::getById):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateCell):
(JSC::FTL::DFG::LowerDFGToLLVM::buildSwitch):
(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):
(JSC::FTL::DFG::LowerDFGToLLVM::crash):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::Output):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::addIncomingToPhi):

  • ftl/FTLState.cpp:

(JSC::FTL::State::dumpState):

  • ftl/FTLValueRange.cpp:

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

  • ftl/FTLValueRange.h:

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

3:05 PM Changeset in webkit [192590] by fpizlo@apple.com
  • 12 edits
    1 add in trunk/Source/JavaScriptCore

Implement the B3 equivalent of FTLCompile
https://bugs.webkit.org/show_bug.cgi?id=151370

Reviewed by Benjamin Poulain.

This adds a B3 version of FTLCompile and gets the data structures related to installing an FTL
compilation (i.e. the finalizer and JITCode) to be aware of B3. That requires stubbing a lot of stuff
out and also simplifying a lot of code around having everything inside a single contiguous chunk of
JIT code rather than some opaque JIT code handles plus miscellaneous side-codes. This compiles but
crashes because lowering isn't done yet.

(JSC::B3::Procedure::addDataSection):
(JSC::B3::Procedure::calleeSaveRegisters):
(JSC::B3::Procedure::addValueIndex):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::code):

  • ftl/FTLB3Compile.cpp: Added.

(JSC::FTL::compile):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExceptionHandlerManager.cpp:

(JSC::FTL::ExceptionHandlerManager::callOperationExceptionTarget):
(JSC::FTL::ExceptionHandlerManager::lazySlowPathExceptionTarget):
(JSC::FTL::ExceptionHandlerManager::getByIdOSRExit):

  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::~JITCode):
(JSC::FTL::JITCode::initializeB3Code):
(JSC::FTL::JITCode::initializeExitThunks):
(JSC::FTL::JITCode::addDataSection):
(JSC::FTL::JITCode::initializeAddressForCall):
(JSC::FTL::JITCode::initializeArityCheckEntrypoint):
(JSC::FTL::JITCode::addressForCall):
(JSC::FTL::JITCode::contains):
(JSC::FTL::JITCode::exitThunks):
(JSC::FTL::JITCode::ftl):

  • ftl/FTLJITCode.h:

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

  • ftl/FTLJITFinalizer.cpp:

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

  • ftl/FTLJITFinalizer.h:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExit::codeLocationForRepatch):
(JSC::FTL::OSRExit::gatherRegistersToSpillForCallIfException):

3:04 PM Changeset in webkit [192589] by jer.noble@apple.com
  • 13 edits in trunk/Source

Expose WebCore's AudioPlaybackRequiresUserGesture setting to WebKit & WebKit2
https://bugs.webkit.org/show_bug.cgi?id=151274

Reviewed by Anders Carlsson.

Source/WebKit/mac:

Add a WebKit preference key, WebKitAudioPlaybackRequiresUserGesture, and a matching WebPreference
property, and transfer those preferences to WebCore's settings when they change.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences audioPlaybackRequiresUserGesture]):
(-[WebPreferences setAudioPlaybackRequiresUserGesture:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add a new, private, WKWebViewConfiguration property, _requiresUserActionForAudioPlayback,
and use that configuration property to set WebCore's AudioPlaybackRequiresUserGesture setting
during page creation.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAudioPlaybackRequiresUserGesture): Add legacy C API for setting this new WK preference.
(WKPreferencesGetAudioPlaybackRequiresUserGesture): Ditto.

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

(-[WKWebView initWithFrame:configuration:]): Set the page configuration value from preferences.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]): Default the value of the new configuration property to YES for iOS.
(-[WKWebViewConfiguration copyWithZone:]): Copy the value across.
(-[WKWebViewConfiguration _requiresUserActionForAudioPlayback]): Simple getter.
(-[WKWebViewConfiguration _setRequiresUserActionForAudioPlayback:]): Simple setter.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Set WebCore's audioPlaybackRequiresUserGesture Setting.

2:30 PM Changeset in webkit [192588] by Jon Davis
  • 1 edit
    1 add in trunk/Websites/webkit.org

Adding a maintenance file for the old WordPress blog.

Reviewed by Timothy Hatcher.

  • blog/wp-content/maintenance.php: Added.
2:21 PM Changeset in webkit [192587] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

Unreviewed, skip additional mediastream tests that crash when painting a mock video source.

These tests were not skipped previously because the crashes are timing-dependent and do not
always reproduce. See https://bugs.webkit.org/show_bug.cgi?id=151353 for more details.

  • platform/mac/TestExpectations:
2:01 PM Changeset in webkit [192586] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

There is a bug when default parameter values are mixed with destructuring parameter values
https://bugs.webkit.org/show_bug.cgi?id=151369

Reviewed by Geoffrey Garen and Mark Lam.

This patch changes our parser to no longer declare destructuring
parameters as "var"s. This is a weird bug that just happened
to work in a world without default parameter values. In a world with
default parameter values this is just completely wrong. It would
incorrectly transform this program:
function foo(a = function() { b = 40; }, {b}) { a(); return b; }; foo(undefined, {b: 42}); // Should return 40
into
function foo(a = function() { b = 40; }, {b}) { var b; a(); return b; }; foo(undefined, {b:42}); // Returns 42, not 40.
Which is wrong because we end up with two distinct bindings of "b" when
there should only be one.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseDestructuringPattern):

  • parser/Parser.h:

(JSC::Scope::declareParameter):
(JSC::Scope::getUsedVariables):
(JSC::Parser::strictMode):
(JSC::Parser::isValidStrictMode):
(JSC::Parser::declareParameter):
(JSC::Parser::breakIsValid):
(JSC::Scope::declareBoundParameter): Deleted.
(JSC::Parser::declareBoundParameter): Deleted.

  • tests/stress/es6-default-parameters.js:
1:46 PM Changeset in webkit [192585] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Timeline Recording across page navigations behaves poorly
https://bugs.webkit.org/show_bug.cgi?id=151112

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-18
Reviewed by Timothy Hatcher.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::frameStartedLoading): Deleted.
Don't reset the execution stopwatch on page navigation.
If a timeline is actively being recorded on the frontend
then all new timestamps suddenly downshifted towards zero
introduces bad data.

1:36 PM Changeset in webkit [192584] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Watch Expressions details section should use NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=151377

Reviewed by Timothy Hatcher.

Replaces image elements with a NavigationBar instance. The refresh and
clear buttons are disabled if no watch expressions exist.

  • Localizations/en.lproj/localizedStrings.js:

New navigation item labels.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.css:

(.details-section.watch-expressions .options > *): Deleted.
(.details-section.watch-expressions .options > *:active): Deleted.
(.details-section.watch-expressions .options > .watch-expression-add): Deleted.
(.details-section.watch-expressions .options > .watch-expression-clear): Deleted.
(.details-section.watch-expressions .options > .watch-expression-refresh): Deleted.
Remove <img> button styles.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.presentPopoverOverTargetElement):
Use the navigation item element.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._updateWatchExpressionsNavigationBar):
Enable/disable refresh and clear buttons.

11:47 AM Changeset in webkit [192583] by dbates@webkit.org
  • 6 edits in trunk/Source

[iOS] ASSERTION FAILED: temporaryFilePath.last() == '/' in WebCore::openTemporaryFile()
https://bugs.webkit.org/show_bug.cgi?id=151392
<rdar://problem/23595341>

Reviewed by Alexey Proskuryakov.

Workaround <rdar://problem/23579077> where confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...) retrieves
the path to the user temporary directory without a trailing slash in the iOS simulator.

Source/WebCore:

  • platform/mac/FileSystemMac.mm:

(WebCore::openTemporaryFile): Add a path separator (/) between the directory path and filename.

Source/WebKit2:

  • Shared/mac/SandboxExtensionMac.mm:

(WebKit::SandboxExtension::createHandleForTemporaryFile): Add a path separator (/) between the directory path and filename.

Source/WTF:

  • wtf/DataLog.cpp:

(WTF::initializeLogFileOnce):

11:07 AM Changeset in webkit [192582] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Null dereference in Performance::Performance(WebCore::Frame*)
https://bugs.webkit.org/show_bug.cgi?id=151390

Reviewed by Brady Eidson.

Based on the stack trace, it appears the DocumentLoader can be null
when constructing the Performance object. This patch thus adds a null
check before trying to dereference it.

No new tests, was not able to reproduce.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::navigator):
(WebCore::DOMWindow::performance):

  • page/Performance.cpp:

(WebCore::Performance::Performance):
(WebCore::Performance::scriptExecutionContext):

  • page/Performance.h:
11:02 AM Changeset in webkit [192581] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

10:59 AM Changeset in webkit [192580] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.12

New tag.

10:29 AM Changeset in webkit [192579] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

Unreviewed, skip remaining mediastream tests that crash when painting a mock video source.

  • platform/mac/TestExpectations:
10:24 AM Changeset in webkit [192578] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] The main thread can sometimes be blocked forever when ending a media session.
https://bugs.webkit.org/show_bug.cgi?id=151387

Reviewed by Alex Christensen.

This happens because the main thread is waiting for the sample scheduler thread to finish,
but sometimes it never does. This can be resolved by emptying the scheduler's sample queue
before requesting the scheduler thread to finish. This will make sure the scheduler thread
returns to its main loop quickly, and can handle the termination request.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::stopScheduler):

9:40 AM Changeset in webkit [192577] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking two new mediastream/RTCPeerConnection tests as crashing on debug during investigation.
https://bugs.webkit.org/show_bug.cgi?id=151304

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:25 AM Changeset in webkit [192576] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/aborted-put.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=151389

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
6:52 AM Changeset in webkit [192575] by adam.bergkvist@ericsson.com
  • 5 edits
    6 adds in trunk

WebRTC: Initial testing of updated RTCPeerConnection API
https://bugs.webkit.org/show_bug.cgi?id=151304

Reviewed by Eric Carlson.

Source/WebCore:

Add an empty implementation of MediaEndpointPeerConnection which
realizes the PeerConnectionBackend interface. This makes it possible
to construct an RTCPeerConnection and do initial testing.

Tests: fast/mediastream/RTCPeerConnection-overloaded-operations-params.html

fast/mediastream/RTCPeerConnection-overloaded-operations.html

Also unskip three existing RTCPeerConnection tests on GTK.

  • CMakeLists.txt:
  • Modules/mediastream/MediaEndpointPeerConnection.cpp: Added.

(WebCore::createMediaEndpointPeerConnection):
(WebCore::MediaEndpointPeerConnection::MediaEndpointPeerConnection):
(WebCore::MediaEndpointPeerConnection::createOffer):
(WebCore::MediaEndpointPeerConnection::createAnswer):
(WebCore::MediaEndpointPeerConnection::setLocalDescription):
(WebCore::MediaEndpointPeerConnection::localDescription):
(WebCore::MediaEndpointPeerConnection::currentLocalDescription):
(WebCore::MediaEndpointPeerConnection::pendingLocalDescription):
(WebCore::MediaEndpointPeerConnection::setRemoteDescription):
(WebCore::MediaEndpointPeerConnection::remoteDescription):
(WebCore::MediaEndpointPeerConnection::currentRemoteDescription):
(WebCore::MediaEndpointPeerConnection::pendingRemoteDescription):
(WebCore::MediaEndpointPeerConnection::setConfiguration):
(WebCore::MediaEndpointPeerConnection::addIceCandidate):
(WebCore::MediaEndpointPeerConnection::getStats):
(WebCore::MediaEndpointPeerConnection::stop):
(WebCore::MediaEndpointPeerConnection::markAsNeedingNegotiation):

  • Modules/mediastream/MediaEndpointPeerConnection.h: Added.
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Add two new tests and unskip three old ones (details below).

  • fast/mediastream/RTCPeerConnection-overloaded-operations-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-overloaded-operations-params.html: Added.

Feeds some good but mostly bad input to the overloaded operations to verify JS built-ins
argument checking.

  • fast/mediastream/RTCPeerConnection-overloaded-operations.html: Added.

Verifies that the correct overloaded operation is invoked. For examaple, createOffer()
without arguments should invoke the promise based function, but the same operation with
two function arguments should invoke the legacy callback version.

  • platform/gtk/TestExpectations:

Unskip fast/mediastream/RTCIceCandidate.html, fast/mediastream/RTCPeerConnection.html
and fast/mediastream/RTCSessionDescription.html.

5:48 AM WebKitGTK/2.10.x edited by Michael Catanzaro
Propose r192574 (diff)
5:25 AM Changeset in webkit [192574] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Cairo] SolidStroke broken in drawLine after r191658
https://bugs.webkit.org/show_bug.cgi?id=151385

Patch by Alejandro G. Castro <alex@igalia.com> on 2015-11-18
Reviewed by Carlos Garcia Campos.

Fix the drawLine function after r191658, we have to make sure the
color is set when line is SolidStroke.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawLine):

4:53 AM Changeset in webkit [192573] by jfernandez@igalia.com
  • 5 edits
    4 adds in trunk

[CSS Grid Layout] inline margins not honored when not using stretch in row-axis alignment
https://bugs.webkit.org/show_bug.cgi?id=151323

Reviewed by Sergio Villar Senin.

Source/WebCore:

There are some situations where we avoid to compute the inline-axis
margins when computing the logical width of a box. One of those situations
is when we have set an override width; this only affects for now to flex
and grid items. We also follow this approach when setting the logical
width based on the restrictions of 'auto' value in the 'min-width'
property.

This behavior is not correct, since there is no reason to avoid
computing this margins, in the general case. I think this logic was
designed as an optimization for flexbox, which was already computing
the margins by its own, but it's not applicable in the general case, so
grid needs these margins to be computed properly.

For the shrink-to-fit behavior we can add some grid related logic to the
already defined RenderBox function "sizesLogicalWidthToFitContent",
so we avoid the override width.

Tests: fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html

fast/css-grid-layout/min-width-height-auto-and-margins.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::sizesLogicalWidthToFitContent):

  • rendering/RenderGrid.cpp:

(WebCore::defaultAlignmentChangedFromStretchInRowAxis):
(WebCore::selfAlignmentChangedFromStretchInRowAxis):
(WebCore::RenderGrid::styleDidChange):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::selfAlignmentChangedFromStretchInColumnAxis): Deleted.
(WebCore::RenderGrid::computeMarginLogicalHeightForChild): Deleted.
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching): Deleted.

LayoutTests:

Tests to verify that margins are computed properly on grid items
using an alignment value different than stretch or when min-width
is auto.

  • fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding-expected.txt: Added.
  • fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html: Added.
  • fast/css-grid-layout/min-width-height-auto-and-margins-expected.txt: Added.
  • fast/css-grid-layout/min-width-height-auto-and-margins.html: Added.
4:43 AM Changeset in webkit [192572] by Carlos Garcia Campos
  • 3 edits
    1 delete in trunk/Tools

[GTK] Update xserver version in jhbuild
https://bugs.webkit.org/show_bug.cgi?id=151383

Reviewed by Alejandro G. Castro.

In r192568 I assumed the bots would have a recent enough Xvfb
to use the -displayfd option, but I forgot we build our own
xserver just for Xvfb. The version we build is too old, so
we could just use an updated version (the same bots have
installed, for example) to use the -displayfd option.

  • gtk/jhbuild.modules: Update xserver to 1.16.4.
  • gtk/patches/xserver-fix-glx-init.patch: Deleted.
  • gtk/patches/xserver-remove-bogus-dependencies.patch: Updated to

apply on 1.16.4.

3:30 AM Changeset in webkit [192571] by adam.bergkvist@ericsson.com
  • 2 edits in trunk/LayoutTests

WebRTC: [GTK] Skip failing MediaStream tests
https://bugs.webkit.org/show_bug.cgi?id=151360

Reviewed by Eric Carlson.

  • platform/gtk/TestExpectations:

Two tests skipped. Awaits resolution of https://webkit.org/b/151344.

3:12 AM Changeset in webkit [192570] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

AX: Shadow DOM video player controls menus need aria-owns on the trigger buttons
https://bugs.webkit.org/show_bug.cgi?id=127065

Patch by Aaron Chu <arona.chu@gmail.com> on 2015-11-18
Reviewed by Darin Adler.

Source/WebCore:

Test: media/accessibility-closed-captions-has-aria-owns.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createControls):
(Controller.prototype.buildCaptionMenu):

  • Modules/mediacontrols/mediaControlsBase.js:

(Controller.prototype.createControls):
(Controller.prototype.buildCaptionMenu):

LayoutTests:

  • media/accessibility-closed-captions-has-aria-owns-expected.txt: Added.
  • media/accessibility-closed-captions-has-aria-owns.html: Added.
3:02 AM Changeset in webkit [192569] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

Unreviewed. Fix webkitpy tests after r192568.

Instead of ignoring exception when closing mock fds, use a helper
function that the unit test can override to do nothing.

  • Scripts/webkitpy/port/xvfbdriver.py:

(XvfbDriver._xvfb_close_pipe):
(XvfbDriver._xvfb_run):

  • Scripts/webkitpy/port/xvfbdriver_unittest.py:

(XvfbDriverTest.make_driver):

1:05 AM Changeset in webkit [192568] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[XvfbDriver] Fail to run all layout tests when X server started with -displayfd option
https://bugs.webkit.org/show_bug.cgi?id=151135

Reviewed by Darin Adler.

The XvfbDriver uses the x server command line to check the
displays that are currently in use. This doesn't work when X
server was started with -displayfd option. This option is used to let
the server find the display id available that is written to the
given file descriptor. With this option xorg doesn't need to
create the lock files in tmp either. The -displayfd option is also
available in Xvfb, so we could use it too. That would simplify the
code, fixing also race conditions between the check for available
displays and Xvfb opening the connection, we wouldn't need to wait
for 4 seconds after launching Xvfb, and all lock files we are
using won't be needed either.

  • Scripts/webkitpy/port/xvfbdriver.py:

(XvfbDriver._xvfb_pipe): Helper function to create the pipe, only
needed to be overriden by unit tests.
(XvfbDriver._xvfb_read_display_id): Helper function to read from
the pipe, only needed to be overriden by unit tests.
(XvfbDriver._xvfb_run): Run Xvfb with -displayfd option, using a
pipe to read the display id.
(XvfbDriver._start): Call _xvfb_run() and remove the code to run
Xvfb for a given display.
(XvfbDriver.stop): Remove code to release and delete file locks.

  • Scripts/webkitpy/port/xvfbdriver_unittest.py:

(XvfbDriverTest.make_driver):
(XvfbDriverTest.test_start):
(XvfbDriverTest.test_start_arbitrary_worker_number):
(XvfbDriverTest.test_stop):
(XvfbDriverTest.assertDriverStartSuccessful): Deleted.
(XvfbDriverTest): Deleted.
(XvfbDriverTest.test_stop.FakeXvfbProcess): Deleted.

Nov 17, 2015:

11:52 PM Changeset in webkit [192567] by Carlos Garcia Campos
  • 5 edits in trunk

Null dereference loading Blink layout test editing/execCommand/indent-button-crash.html
https://bugs.webkit.org/show_bug.cgi?id=151187

Reviewed by Darin Adler.

Source/WebCore:

This is a merge of Blink r174671:
https://codereview.chromium.org/291143002

Fixes imported/blink/editing/execCommand/indent-button-crash.html.

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::doApply):

LayoutTests:

Unskip the test.

  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
11:48 PM Changeset in webkit [192566] by Carlos Garcia Campos
  • 4 edits in trunk

REGRESSION(r192459): [GTK] User agent string is broken after r192459
https://bugs.webkit.org/show_bug.cgi?id=151347

Reviewed by Žan Doberšek.

.:

Pass UA version numbers as strings to the build.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Remove the incorrect macro and simply use the given values
USER_AGENT_GTK_MAJOR_VERSION and USER_AGENT_GTK_MINOR_VERSION that
are now strings.

  • platform/gtk/UserAgentGtk.cpp:

(WebCore::versionForUAString):
(WebCore::buildUserAgentString):

10:27 PM Changeset in webkit [192565] by ap@apple.com
  • 3 edits in trunk/Tools

run-webkit-tests should not truncate persistent lines
https://bugs.webkit.org/show_bug.cgi?id=151376
rdar://problem/23162775

Reviewed by Antti Koivisto.

It is OK to truncate progress lines, but it's not OK to truncate error (or otherwise
unexpected result) messages that remain on the screen to be read. In practice, this
almost always truncates the test path, which is important to see.

  • Scripts/webkitpy/layout_tests/views/printing.py:

(Printer._test_status_line):
(Printer.print_finished_test):

  • Scripts/webkitpy/layout_tests/views/printing_unittest.py:

(Testprinter.test_test_status_line):

7:00 PM Changeset in webkit [192564] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Simple line layout: Add letter-spacing support.
https://bugs.webkit.org/show_bug.cgi?id=151362

Reviewed by Antti Koivisto.

This enables us to use simple line layout on letter-spacing content.
(fixme: webkit.org/b/151368 -> Repaint rect is not computed correctly when negative letter-spacing applied)

Source/WebCore:

Test: fast/text/simple-line-letterspacing.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForStyle):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow): RenderLineBoxList tests vertical intersection only.

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::runWidth):

LayoutTests:

  • fast/text/simple-line-letterspacing-expected.html: Added.
  • fast/text/simple-line-letterspacing.html: Added.
5:54 PM Changeset in webkit [192563] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.81

New Tag.

5:54 PM Changeset in webkit [192562] by matthew_hanson@apple.com
  • 1 delete in tags/Safari-601.1.46.81

Delete Tag.

5:53 PM Changeset in webkit [192561] by benjamin@webkit.org
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Untangle the dependencies on FTLAbbreviations a bit
https://bugs.webkit.org/show_bug.cgi?id=151375

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-17
Reviewed by Geoffrey Garen.

FTLAbbreviations was included in many places but in most cases
we just need the Abbreviated types. Update the #include accordingly.

Also remove the IntrinsicRepository dependency from the B3Output.

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

(JSC::FTL::Output::Output):
(JSC::FTL::Output::stackmapIntrinsic):
(JSC::FTL::Output::frameAddressIntrinsic):
(JSC::FTL::Output::patchpointInt64Intrinsic):
(JSC::FTL::Output::patchpointVoidIntrinsic):

  • ftl/FTLCommonValues.cpp:
  • ftl/FTLCommonValues.h:
  • ftl/FTLFormattedValue.h:
  • ftl/FTLIntrinsicRepository.cpp:
  • ftl/FTLOSRExit.h:
  • ftl/FTLOSRExitCompilationInfo.h:
  • ftl/FTLStackmapArgumentList.h:
  • ftl/FTLState.cpp:
  • ftl/FTLState.h:
  • ftl/FTLTypedPointer.h:
5:34 PM Changeset in webkit [192560] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Move Timeline creation into a recording
https://bugs.webkit.org/show_bug.cgi?id=151367

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-17
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._loadNewRecording): Deleted.

  • UserInterface/Models/Timeline.js:

(WebInspector.Timeline.create):
(WebInspector.Timeline.prototype.get type):
(WebInspector.Timeline): Deleted.
(WebInspector.Timeline.prototype.get recording): Deleted.

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording):
(WebInspector.TimelineRecording.prototype.get readonly):
(WebInspector.TimelineRecording.prototype.unloaded):
(WebInspector.TimelineRecording.prototype.reset):
(WebInspector.TimelineRecording.prototype.isWritable): Deleted.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.shown):

5:29 PM Changeset in webkit [192559] by commit-queue@webkit.org
  • 7 edits in trunk/PerformanceTests

Reorganize the graphics benchmark string table
https://bugs.webkit.org/show_bug.cgi?id=151334

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-11-17
Reviewed by Simon Fraser.

Make the graphics benchmark string table be an object of sub-objects. Each
sub-object represents an associative array, the key is the string name and
the value is the string data.

  • Animometer/resources/extensions.js:

(ResultsDashboard.prototype.toJSON):
(ResultsTable.prototype._showGraph):
(ResultsTable.prototype._showJSON):
(ResultsTable.prototype._isNoisyMeasurement):
(ResultsTable.prototype._isNoisyTest):
(ResultsTable.prototype._showTest):
(ResultsTable.prototype._showSuite):
(ResultsTable.prototype._showIteration):

  • Animometer/resources/sampler.js:

(Sampler.prototype.toJSON):

  • Animometer/resources/strings.js:
  • Animometer/runner/resources/animometer.js:

(window.benchmarkRunnerClient.didFinishLastIteration):
(window.suitesManager.updateLocalStorageFromJSON):
(window.benchmarkController.showResults):
(window.benchmarkController.showJson):
(window.benchmarkController.showTestGraph):
(window.benchmarkController.showTestJSON):

  • Animometer/runner/resources/tests.js:
  • Animometer/tests/resources/main.js:
5:27 PM Changeset in webkit [192558] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

B3::generate should separate out the final Air codegen, so that it can be done outside the Graph safepoint
https://bugs.webkit.org/show_bug.cgi?id=151371

Reviewed by Benjamin Poulain.

One of the FTL optimizations is that while the expensive backend is running, we are at a "graph
safepoint" that allows the VM to do GCs and other dangerous and time-sensitive things without
waiting for the compilation thread. While in the safepoint, we cannot do anything that touches
anything other than the backend's state. That means, for example, that we wouldn't be able to run
any of the stackmap generation callbacks, since those need to mess with DFG state.

That means that we need to separate the B3 pipeline into "preparation" and "generation".
Preparation is all of the expensive stuff: all B3 phases, lowering to Air, all Air phases.
Generation is just the part where we turn fully lowered Air into machine code. Generation also
happens to be the part where we call stackmap generation callbacks. In other words, preparation
is exactly the stuff that should go into the graph safepoint, while generation is the stuff that
we want to do after we emerge from the safepoint.

Because the tests were using the higher-level Compilation API, I didn't have to change any test
code. The FTL will not use that high-level API.

  • b3/B3Compilation.cpp:

(JSC::B3::Compilation::Compilation):

  • b3/B3Generate.cpp:

(JSC::B3::prepareForGeneration):
(JSC::B3::generate):
(JSC::B3::generateToAir):

  • b3/B3Generate.h:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::LowerToAir):
(JSC::B3::lowerToAir):

  • b3/B3LowerToAir.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::Procedure):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::takeByproducts):
(JSC::B3::Procedure::code):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::proc):
(JSC::B3::Air::Code::lastPhaseName):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generate):

  • b3/air/AirGenerate.h:
4:27 PM Changeset in webkit [192557] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebKit2

Rollout r192417. rdar://problem/22846841

4:27 PM Changeset in webkit [192556] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebKit2

Rollout r192418. rdar://problem/22846841

4:27 PM Changeset in webkit [192555] by matthew_hanson@apple.com
  • 7 edits in branches/safari-601.1.46-branch/Source

Rollout r192419. rdar://problem/22846841

4:27 PM Changeset in webkit [192554] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebKit2

Rollout r192475. rdar://problem/22846841

4:27 PM Changeset in webkit [192553] by matthew_hanson@apple.com
  • 24 edits in branches/safari-601.1.46-branch/Source

Rollout r192479. rdar://problem/22846841

4:26 PM Changeset in webkit [192552] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601.1.46-branch/Source

Rollout r192501. rdar://problem/22846841

4:23 PM Changeset in webkit [192551] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Breakpoint condition field should use CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=151333

Reviewed by Joseph Pecoraro.

Updated breakpoint popover's condition field to use CodeMirror.

  • UserInterface/Controllers/BreakpointPopoverController.js:

Removed keyboard shortcuts. Now handled by CodeMirror.
(WebInspector.BreakpointPopoverController.prototype.completionControllerShouldAllowEscapeCompletion):
Prevent handling of escape to allow tabbing to next element.
(WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
Create CodeMirror instance.
(WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorChanged):
(WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorBeforeChange):
Enforce single-line editor.
(WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorEscapeOrEnterKey):
(WebInspector.BreakpointPopoverController): Deleted.
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.editBreakpoint):
Removed condition element select. CodeMirror sets focus when popover content is created.
(WebInspector.BreakpointPopoverController.prototype._popoverConditionInputChanged): Deleted.
Replaced by BreakpointPopoverController.prototype._conditionCodeMirrorChanged.
(WebInspector.BreakpointPopoverController.prototype._popoverConditionInputKeyDown): Deleted.
Replaced by BreakpointPopoverController.prototype._conditionCodeMirrorEscapeOrEnterKey.

  • UserInterface/Views/BreakpointPopoverController.css:

(.edit-breakpoint-popover-condition):
(.edit-breakpoint-popover-condition > .CodeMirror):
(#edit-breakpoint-popover-condition): Deleted.
Replace selector id with class, styled CodeMirror element to match original input element.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder): Deleted.
Moved common CodeMirror placeholder text style to CodeMirrorOverrides.css.

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror .CodeMirror-placeholder):
Add placeholder style.

4:16 PM Changeset in webkit [192550] by Said Abou-Hallawa
  • 3 edits in trunk/PerformanceTests

Disable flattening the stage iframe of the graphics benchmark when running on iOS
https://bugs.webkit.org/show_bug.cgi?id=151361

Reviewed by Simon Fraser.

Use fixed size for stage iframe of the graphics benchmark to disable
flattening the iframe while animating the particles. Also ensure the
bouncing particles do not go outside the iframe's boundaries.

  • Animometer/runner/resources/animometer.css:

(section#running > #running-test > iframe):
(@media screen and (min-device-width: 1800px)):

  • Animometer/tests/bouncing-particles/resources/bouncing-particles.js:

(BouncingParticle.prototype.animate):

4:08 PM Changeset in webkit [192549] by commit-queue@webkit.org
  • 8 edits in trunk/PerformanceTests

Use the media queries to dynamically set the stage for the graphics benchmark
https://bugs.webkit.org/show_bug.cgi?id=151327

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-11-17
Reviewed by Simon Fraser.

Clean setting the benchmark css rules by using the media queries. Accessing
document.stylesheets.cssRules seems to be unreliable. Fix the test harness
load event listener invocation. And also remove the options for normalizing
the stage resolution for retina display.

  • Animometer/resources/extensions.js:

(window.DocumentExtension.insertCssRuleAfter): Deleted.

  • Animometer/runner/animometer.html:
  • Animometer/runner/resources/animometer.css:

(@media screen and (min-device-width: 1800px)):

  • Animometer/runner/resources/animometer.js:

(window.sectionsManager.setupRunningSectionStyle):
(window.benchmarkController.initialize):
(window.sectionsManager.setupSectionStyle): Deleted.

  • Animometer/tests/bouncing-particles/resources/bouncing-particles.js:

(BouncingParticlesStage):

  • Animometer/tests/text/layering-text.html:
  • Animometer/tests/text/resources/layering-text.js:

(LayeringTextStage):
(LayeringTextStage.prototype._setFontSize): Deleted.

4:07 PM Changeset in webkit [192548] by fpizlo@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/ChangeLog

Unreviewed, fix a ChangeLog entry to have the right filename.

4:05 PM Changeset in webkit [192547] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL::State should be able to refer to B3::Procedure

Rubber stamped by Benjamin Poulain.

  • ftl/FTLState.h:
3:44 PM Changeset in webkit [192546] by benjamin@webkit.org
  • 7 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Add an empty FTLOutput for B3 that crashes on any operation
https://bugs.webkit.org/show_bug.cgi?id=151366

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

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • ftl/B3Output.h: Added.
  • ftl/FTLAbbreviatedTypes.h:
  • ftl/FTLAbstractHeap.cpp:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::createPhiVariables):

  • ftl/FTLOutput.cpp:
  • ftl/FTLOutput.h:
3:15 PM Changeset in webkit [192545] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/get-index-failures.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=151364

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:10 PM Changeset in webkit [192544] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Do not copy the adjacency list when we just need to manipulate them
https://bugs.webkit.org/show_bug.cgi?id=151343

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-17
Reviewed by Geoffrey Garen.

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::IteratedRegisterCoalescingAllocator::precoloredCoalescingHeuristic):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::conservativeHeuristic):

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

[JSC] Remove FTLOutput operations that act directly on floats
https://bugs.webkit.org/show_bug.cgi?id=151342

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-17
Reviewed by Geoffrey Garen.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithFRound):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutByVal):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::store):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::loadFloatToDouble):
(JSC::FTL::Output::fround):
(JSC::FTL::Output::loadFloat): Deleted.

2:46 PM Changeset in webkit [192542] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a FTL_USES_B3 compile-time setting and set it to 0.

Rubber stamped by Benjamin Poulain.

  • dfg/DFGCommon.h:
2:41 PM Changeset in webkit [192541] by peavo@outlook.com
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Current playback time is not shown.
https://bugs.webkit.org/show_bug.cgi?id=151357

Reviewed by Alex Christensen.

We need to implement the currentTime() method.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::currentTime):
(WebCore::MediaPlayerPrivateMediaFoundation::paused):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::paintCurrentFrame):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::currentTime):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::isActive):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
2:31 PM Changeset in webkit [192540] by fpizlo@apple.com
  • 34 edits in trunk

CheckAdd/Mul should have commutativity optimizations in B3->Air lowering
https://bugs.webkit.org/show_bug.cgi?id=151214

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This is an overhaul of CheckAdd/CheckSub/CheckMul that fixes bugs, improves codegen, and
simplifies the contract between B3 and its client.

Previously, the idea was that the operands to the Air BranchAdd/Sub/Mul matched the children of
the B3 CheckAdd/Sub/Mul, or at least, that's what the B3::CheckSpecial would make you believe.
This meant that B3/Air had to avoid optimizations that would break this protocol. This prevented
commutativity optimizations on CheckAdd/Mul and it also prevented strength reduction from
CheckMul(x, 2) to CheckAdd(x, x), for example. Those optimizations would break things because the
client's Stackmap generation callback was allowed to assume that the first entry in params.reps
was the first child. Also, there was a contract between B3 and its client that for CheckAdd/Sub,
the client would undo the operation by doing the opposite operation with the params.reps[0] as the
source and params.reps[1] as the destination.

This not only prevented commutativity optimizations, it also led to bugs. Here are two bugs that
we had:

  • Add(x, x) would not work. The client would be told to undo the add using %x as both the source and destination. The client would use a sub() instruction. The result would not be x - it would be zero.
  • Mul where the result got coalesced with one of the sources. You can't undo a multiplication, so you need to keep the inputs alive until after the result is computed - i.e. the inputs are late uses. I initially thought I worked around this by using a three-operand form of Mul, but of course that doesn't actually fix the issue.

This patch fixes these issues comprehensively by introducing the following changes:

The params.reps corresponding to the first two children of CheckAdd/Sub/Mul and the first child of
Check are always garbage: if you want to know the values of those children in the slow path, pass
them as additional stackmap children. This makes it clear to the compiler whose values you
actually care about, and frees the compiler to reorder and commute the non-stackmap children.

The "undo" of an Add or Sub is handled internally by B3: the client doesn't have to know anything
about undoing. B3 does it. The contract is simply that if a B3::Value* is a stackmap child of a
CheckXYZ, then the corresponding entry in params.reps inside the stackmap generator callback will
contain the value of that Value*. For Add and Sub, B3 undoes the operation. For Add(x, x), the
undo uses the carry flag and some shift magic. For Mul, B3 uses LateUse:

A new kind of Arg::Role called Arg::LateUse is introduced: This kind of use means that the use
happens at the start of the execution of the next instruction. None of the built-in Air opcodes
use LateUse, but it is used by B3::CheckSpecial. We use it to implement CheckMul.

Finally, this change fixes testComplex to actually create many live variables. This revealed a
really dumb pathology in allocateStack(), and this patch fixes it. Basically, it's a bad idea to
build interference graphs by repeatedly recreating the same cliques.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::test32):
(JSC::MacroAssemblerX86Common::setCarry):
(JSC::MacroAssemblerX86Common::invert):

  • b3/B3CheckSpecial.cpp:

(JSC::B3::Air::numB3Args):
(JSC::B3::CheckSpecial::Key::Key):
(JSC::B3::CheckSpecial::Key::dump):
(JSC::B3::CheckSpecial::CheckSpecial):
(JSC::B3::CheckSpecial::forEachArg):
(JSC::B3::CheckSpecial::isValid):
(JSC::B3::CheckSpecial::generate):
(JSC::B3::CheckSpecial::dumpImpl):
(JSC::B3::CheckSpecial::deepDumpImpl):

  • b3/B3CheckSpecial.h:

(JSC::B3::CheckSpecial::Key::Key):
(JSC::B3::CheckSpecial::Key::operator==):
(JSC::B3::CheckSpecial::Key::operator!=):
(JSC::B3::CheckSpecial::Key::opcode):
(JSC::B3::CheckSpecial::Key::numArgs):
(JSC::B3::CheckSpecial::Key::stackmapRole):
(JSC::B3::CheckSpecial::Key::hash):

  • b3/B3CheckValue.cpp:

(JSC::B3::CheckValue::~CheckValue):
(JSC::B3::CheckValue::convertToAdd):
(JSC::B3::CheckValue::CheckValue):

  • b3/B3CheckValue.h:
  • b3/B3Const32Value.cpp:

(JSC::B3::Const32Value::checkMulConstant):
(JSC::B3::Const32Value::checkNegConstant):
(JSC::B3::Const32Value::divConstant):

  • b3/B3Const32Value.h:
  • b3/B3Const64Value.cpp:

(JSC::B3::Const64Value::checkMulConstant):
(JSC::B3::Const64Value::checkNegConstant):
(JSC::B3::Const64Value::divConstant):

  • b3/B3Const64Value.h:
  • b3/B3LowerToAir.cpp:

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

  • b3/B3Opcode.h:
  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::~PatchpointSpecial):
(JSC::B3::PatchpointSpecial::forEachArg):
(JSC::B3::PatchpointSpecial::isValid):

  • b3/B3ReduceStrength.cpp:
  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):

  • b3/B3StackmapSpecial.h:
  • b3/B3StackmapValue.cpp:

(JSC::B3::StackmapValue::append):
(JSC::B3::StackmapValue::appendSomeRegister):
(JSC::B3::StackmapValue::setConstrainedChild):

  • b3/B3StackmapValue.h:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::checkMulConstant):
(JSC::B3::Value::checkNegConstant):
(JSC::B3::Value::divConstant):

  • b3/B3Value.h:
  • b3/air/AirAllocateStack.cpp:

(JSC::B3::Air::allocateStack):

  • b3/air/AirArg.cpp:

(WTF::printInternal):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isAnyUse):
(JSC::B3::Air::Arg::isEarlyUse):
(JSC::B3::Air::Arg::isLateUse):
(JSC::B3::Air::Arg::isDef):
(JSC::B3::Air::Arg::forEachTmp):
(JSC::B3::Air::Arg::isUse): Deleted.

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::IteratedRegisterCoalescingAllocator::build):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::allocate):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdge::hash):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdge::dump):
(JSC::B3::Air::addSpillAndFillToProgram):
(JSC::B3::Air::iteratedRegisterCoalescingOnType):
(JSC::B3::Air::iteratedRegisterCoalescing):

  • b3/air/AirLiveness.h:

(JSC::B3::Air::Liveness::Liveness):
(JSC::B3::Air::Liveness::LocalCalc::LocalCalc):
(JSC::B3::Air::Liveness::LocalCalc::live):
(JSC::B3::Air::Liveness::LocalCalc::takeLive):
(JSC::B3::Air::Liveness::LocalCalc::execute):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirReportUsedRegisters.cpp:

(JSC::B3::Air::reportUsedRegisters):

  • b3/air/AirSpillEverything.cpp:

(JSC::B3::Air::spillEverything):

  • b3/testb3.cpp:

(JSC::B3::testMulArg):
(JSC::B3::testMulArgStore):
(JSC::B3::testMulAddArg):
(JSC::B3::testMulArgs):
(JSC::B3::testComplex):
(JSC::B3::testSimpleCheck):
(JSC::B3::testCheckLessThan):
(JSC::B3::testCheckMegaCombo):
(JSC::B3::testCheckAddImm):
(JSC::B3::testCheckAddImmCommute):
(JSC::B3::testCheckAddImmSomeRegister):
(JSC::B3::testCheckAdd):
(JSC::B3::testCheckAdd64):
(JSC::B3::testCheckSubImm):
(JSC::B3::testCheckSubBadImm):
(JSC::B3::testCheckSub):
(JSC::B3::testCheckSub64):
(JSC::B3::testCheckNeg):
(JSC::B3::testCheckNeg64):
(JSC::B3::testCheckMul):
(JSC::B3::testCheckMulMemory):
(JSC::B3::testCheckMul2):
(JSC::B3::testCheckMul64):
(JSC::B3::run):

Source/WTF:

Disable my failed attempts at perfect forwarding, since they were incorrect, and caused compile
errors if you tried to pass an argument that bound to lvalue. This shouldn't affect performance of
anything we care about, and performance tests seem to confirm that it's all good.

  • wtf/ScopedLambda.h:
2:29 PM Changeset in webkit [192539] by fpizlo@apple.com
  • 13 edits
    3 adds in trunk/Source

Air should lay out code optimally
https://bugs.webkit.org/show_bug.cgi?id=150478

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This adds a phase that optimizes code layout using something that's worked well for me in the past.
Basically, it just forces pre-ordering on the CFG, except that:

  • Blocks that are only reachable by Rare control flow are scheduled separately, all the way at the end.
  • Successors of the same frequency class are pushed in ascending order of frequency, so that the most frequent successor is scheduled immediately after.

This also adds the requisite branch flipping, so that a branch's taken successor is not the
fall-through block. We want the fall-through to be the not-taken successor if at all possible.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3BlockWorklist.h:
  • b3/B3GenericFrequentedBlock.h:

(JSC::B3::GenericFrequentedBlock::frequency):
(JSC::B3::GenericFrequentedBlock::isRare):
(JSC::B3::GenericFrequentedBlock::dump):

  • b3/B3Procedure.h:
  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isDoubleCond):
(JSC::B3::Air::Arg::isCondition):
(JSC::B3::Air::Arg::isSpecial):
(JSC::B3::Air::Arg::asDoubleCondition):
(JSC::B3::Air::Arg::isInvertible):
(JSC::B3::Air::Arg::inverted):

  • b3/air/AirBasicBlock.h:

(JSC::B3::Air::BasicBlock::index):
(JSC::B3::Air::BasicBlock::setIndex):
(JSC::B3::Air::BasicBlock::size):
(JSC::B3::Air::BasicBlock::begin):
(JSC::B3::Air::BasicBlock::containsPredecessor):
(JSC::B3::Air::BasicBlock::frequency):

  • b3/air/AirBlockWorklist.h: Added.
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::findNextBlock):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::proc):
(JSC::B3::Air::Code::at):
(JSC::B3::Air::Code::operator[]):
(JSC::B3::Air::Code::blockList):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirOptimizeBlockOrder.cpp: Added.

(JSC::B3::Air::optimizeBlockOrder):

  • b3/air/AirOptimizeBlockOrder.h: Added.

Source/WTF:

  • wtf/GraphNodeWorklist.h:

(WTF::GraphNodeWorklist::push):
(WTF::GraphNodeWorklist::isEmpty):
(WTF::GraphNodeWorklist::notEmpty):
(WTF::GraphNodeWorklist::pop):

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

New Tag.

2:20 PM Changeset in webkit [192537] by matthew_hanson@apple.com
  • 1 delete in tags/Safari-601.1.46.81

Delete Tag.

2:13 PM Changeset in webkit [192536] by akling@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] JSPropertyNameEnumerator could be destructorless.
<https://webkit.org/b/151242>

Reviewed by Mark Lam.

Make JSPropertyNameEnumerator destructorless and have it store the property names
cache in CopiedSpace. This was the most popular occupant of 64-byte destructor cells
in MarkedSpace, so making it destructorless gets rid of some ill-filled MarkedBlocks.

This patch had two issues on 32-bit platforms when first landed:

  • Copied space allocations are required to be 8-byte divisible in size.
  • WriteBarrier<Unknown> and WriteBarrier<JSString> are not the same size on 32-bit; the former is a 64-bit EncodedJSValue internally, and the latter is a 32-bit JSCell*. My patch was reinterpret_cast'ing a WriteBarrier<JSString> to a WriteBarrier<Unknown> when passing to SlotVisitor::appendValues(), which led to invalid addresses getting marked and strings getting GC'd prematurely.
  • heap/CopyToken.h:
  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::finishCreation):
(JSC::JSPropertyNameEnumerator::visitChildren):
(JSC::JSPropertyNameEnumerator::copyBackingStore):
(JSC::JSPropertyNameEnumerator::destroy): Deleted.

  • runtime/JSPropertyNameEnumerator.h:
2:09 PM Changeset in webkit [192535] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Refactoring: move branchMul32's imm arg to the 3rd argument to be consistent.
https://bugs.webkit.org/show_bug.cgi?id=151358

Reviewed by Saam Barati.

branch32, branchAdd32, and branchSub32 all have it as the 3rd argument.
branchMul32 is the odd man out. This patch makes branchMul32 consistent with
the others.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::branchAdd32):
(JSC::MacroAssembler::branchMul32):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::branchMul32):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchMul32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchMul32):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchMul32):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::branchNeg32):
(JSC::MacroAssemblerSH4::branchMul32):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchMul32):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_mul):

2:05 PM Changeset in webkit [192534] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

2:01 PM Changeset in webkit [192533] by bshafiei@apple.com
  • 5 edits in branches/safari-601.4-branch/Source

Versioning.

1:57 PM Changeset in webkit [192532] by bshafiei@apple.com
  • 1 copy in branches/safari-601.4-branch

New Branch.

1:55 PM Changeset in webkit [192531] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Use the JITAddGenerator snippet in the DFG.
https://bugs.webkit.org/show_bug.cgi?id=151266

Reviewed by Geoffrey Garen.

No tests added because the op_add.js stress test already tests for correctness
(using the LLINT as a reference).

Performance-wise, the difference from the pre-existing DFG implementation is
insignificant (at least as measured on x86 and x86_64). We're moving forward
with adopting this implementation because it unifies the 32-bit and 64-bit
implementations, as well as lays ground work for a repatching inline cache
implementation of op_add later.

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::resultType):

  • Made an assertion less restrictive. For ValueAdd operands, the DFG thinks that the operand can also be empty (though we should never see this in practice).
  • dfg/DFGFixupPhase.cpp:

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

  • Add fallback to unused type operands.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueAdd):

  • Introduce a common function to compile the ValueAdd node.
  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::JSValueOperand::JSValueOperand):

  • Add the forwarding constructor so that we can use Optional<JSValueOperand>.
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • Changed to use the common compileValueAdd().
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::moveValue):

  • Similar to moveTrustedValue() but used for untrusted constants.
  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):

  • Updated to take the left or right operand as a constant. This is necessary because the client should not be making assumptions about whether the snippet will determine the operation to be commutative or not. Instead, the client should just pass in the operands and let the snippet do any operand order swapping if necessary.
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_add):

  • Updated to use the new JITAddGenerator interface.
  • tests/stress/op_add.js:

(stringifyIfNeeded):
(runTest):

  • Made test output more clear about when string results are expected.
1:45 PM Changeset in webkit [192530] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.4.1

New tag.

1:41 PM Changeset in webkit [192529] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

It's best for the DFG to always have some guess of basic block frequency
https://bugs.webkit.org/show_bug.cgi?id=151350

Reviewed by Geoffrey Garen.

It'll simplify things for B3 if we always have some estimate of block frequency, even if it's not
a great estimate. Using NaN as an estimate is probably worse than using any non-NaN number.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseCodeBlock):

  • dfg/DFGCriticalEdgeBreakingPhase.cpp:

(JSC::DFG::CriticalEdgeBreakingPhase::breakCriticalEdge):

  • dfg/DFGLoopPreHeaderCreationPhase.cpp:

(JSC::DFG::createPreHeader):

1:31 PM Changeset in webkit [192528] by ggaren@apple.com
  • 3 edits in trunk/Source/WebKit2

A window with a hung tab waits 5s before closing
https://bugs.webkit.org/show_bug.cgi?id=151319

Reviewed by Anders Carlsson.

I manually tested that I did not break unload events upon window close
by running run-webkit-httpd and invoking a 1x1 image load of
http://127.0.0.1:8000/navigation/resources/save-Ping.php from an unload
handler.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::tryClose): Use the sudden termination bit to
close without waiting for a response.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isSuddenTerminationEnabled): Expose the bit.

1:30 PM Changeset in webkit [192527] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Reserved VM pool established in r187125 is likely too conservative
https://bugs.webkit.org/show_bug.cgi?id=151351

Reviewed by Filip Pizlo.

Reduce the VM allocation reserved pool from 25% to 15% for ARM32.

  • jit/ExecutableAllocator.h:
1:16 PM Changeset in webkit [192526] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Split SimpleLineLayout::canUseFor into canUseForStyle and canUseForFontAndText.
https://bugs.webkit.org/show_bug.cgi?id=151338

Reviewed by Myles C. Maxfield.

No change in functionality.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForFontAndText):
(WebCore::SimpleLineLayout::canUseForStyle):
(WebCore::SimpleLineLayout::canUseFor):

12:52 PM Changeset in webkit [192525] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

FTLLazySlowPaths should be able to handle being passed the zero register as a location
https://bugs.webkit.org/show_bug.cgi?id=151193

Reviewed by Geoffrey Garen.

On arm64, SP and ZR are the same register number. The meaning
of the register number being SP or ZR is dependent on context of
the instruction and the register within the instruction. LLVM may
prove that a value is zero, or sometimes, we will lower a
value as a constant zero (for example, we might compile
CreateDirectArguments of an inlined call frame and we might know
that the arguments have a length of zero). LazySlowPaths should
be able to gracefully handle being passed a stackmap location
with a gpr value of SP by moving zero into another register
and replacing the location's register with the new register.
This way, no lazy slow path will ever have access to a location with a GPR
value of SP. This patch makes this work by using a scratch register
allocator when we need to do this maneuver of moving zero into a scratch
register. Inside FTLCompile, we track if we need to move zero into a register,
and if so, into which register. We actually emit the necessary
instructions to move zero into this register, and to spill reused
registers if necessary, while generating the code for the lazy slow
path itself.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLDWARFRegister.cpp:

(JSC::FTL::DWARFRegister::reg):

  • ftl/FTLLazySlowPath.cpp:

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

  • ftl/FTLLazySlowPath.h:

(JSC::FTL::LazySlowPath::createGenerator):

12:24 PM Changeset in webkit [192524] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Support Doubles with B3's Mul.
https://bugs.webkit.org/show_bug.cgi?id=151355

Reviewed by Filip Pizlo.

  • b3/B3LowerToAir.cpp:

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

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testMulLoadTwice):
(JSC::B3::testMulArgDouble):
(JSC::B3::testMulArgsDouble):
(JSC::B3::testMulArgImmDouble):
(JSC::B3::testMulImmArgDouble):
(JSC::B3::testMulImmsDouble):
(JSC::B3::testDivArgDouble):
(JSC::B3::run):

12:23 PM Changeset in webkit [192523] by bshafiei@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merged r192172. rdar://problem/23488498

12:21 PM Changeset in webkit [192522] by bshafiei@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merged r192134. rdar://problem/23488495

12:00 PM Changeset in webkit [192521] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

11:56 AM Changeset in webkit [192520] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Removed useless variable scriptResult from testExecutionTimeLimit
https://bugs.webkit.org/show_bug.cgi?id=151331

Patch by Matthew Daiter <mdaiter8121@gmail.com> on 2015-11-17
Reviewed by Alex Christensen.

  • API/tests/ExecutionTimeLimitTest.cpp: Removed scriptResult

(testExecutionTimeLimit):

11:41 AM Changeset in webkit [192519] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Support Doubles with B3's Sub.
https://bugs.webkit.org/show_bug.cgi?id=151322

Reviewed by Filip Pizlo.

  • b3/B3LowerToAir.cpp:

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

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testSubImmArg32):
(JSC::B3::testSubArgDouble):
(JSC::B3::testSubArgsDouble):
(JSC::B3::testSubArgImmDouble):
(JSC::B3::testSubImmArgDouble):
(JSC::B3::testSubImmsDouble):
(JSC::B3::testBitAndArgs):
(JSC::B3::negativeZero):
(JSC::B3::posInfinity):
(JSC::B3::negInfinity):
(JSC::B3::doubleOperands):
(JSC::B3::run):

  • Added RUN_UNARY and RUN_BINARY macros to auto generate permutations of operands for the tests.
  • Added SubDouble tests using the new macros.
11:41 AM Changeset in webkit [192518] by beidson@apple.com
  • 7 edits in trunk

Modern IDB: Support IDBObjectStore.indexNames.
https://bugs.webkit.org/show_bug.cgi?id=151341

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by existing storage/indexeddb/modern/objectstore-attributes.html).

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::indexNames):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::indexNames):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

LayoutTests:

  • storage/indexeddb/modern/objectstore-attributes-expected.txt:
  • storage/indexeddb/modern/objectstore-attributes.html:
11:30 AM Changeset in webkit [192517] by Lucas Forschler
  • 4 edits in trunk/Websites/bugs.webkit.org

Commit working changes from build.webkit.org

11:11 AM Changeset in webkit [192516] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] IteratedRegisterCoalescingAllocator's freeze can add zombie Tmps to our coloring algorithm
https://bugs.webkit.org/show_bug.cgi?id=151345

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

The extended test of https://bugs.webkit.org/show_bug.cgi?id=151214 revealed a problem with
the Move freezing step of the iterated register allocator.

When freezing a move related Tmp, we go over all the move instructions and update the other
Tmp of the move as needed. If that Tmp is no longer Move related and is of low degree it can
be simplified too.

The problem arise when one of those Tmp was already coalesced. For example, say we have

1: move %tmp42, %tmp43
2: move %tmp42, %tmp44

The first move cannot be coalesced for some reason and is moved to the Active worklist.
The second move is coalesced and %tmp42 is now %tmp44.

When nothing can be simplified or coalesced, we look at freezing a Move-related Tmp.
Let's say we pick %tmp43. The code of freeze() was going to all the Move instructions
to update them. Here you would find @1 above, get %tmp42 as the other Tmp. Since %tmp42
is no longer move related, it is added to the simplify work list.
-> We just added a coalesced Tmp to our worklist!

To fix that, I get the alias of every other Tmp before updating its status.

There is still a problem: multiple Moves instructions may have been coalesced to the same
Tmp. We must not add a Tmp twice to a worklist.
To avoid duplicates, I rely on the fact that the freeze worklist should not contains
aliased Tmps. Before adding something to the simplify worklist, I check that it was
in the freeze worklist.

I cannot find how this problem would have been avoided in the original paper. I suspect
that may have been a bug in the pseudo-code.

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::IteratedRegisterCoalescingAllocator::freeze):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::freezeMoves):

11:05 AM Changeset in webkit [192515] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

Unreviewed, skip crashing mediastream tests

Tests in fast/mediastream/ that attempt to render mock video source frames crash due to
use-after-free. https://bugs.webkit.org/show_bug.cgi?id=151353 tracks these crashes.

  • platform/mac/TestExpectations:
10:30 AM WebKitGTK/2.10.x edited by Michael Catanzaro
Propose r192496 (diff)
10:06 AM DisplayLists edited by Jon Davis
(diff)
10:05 AM DisplayLists edited by Jon Davis
(diff)
9:59 AM FAQ edited by BJ Burg
more questions answered (diff)
9:58 AM Changeset in webkit [192514] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[WK1] Mark test failure to get bots green after r192499
https://bugs.webkit.org/show_bug.cgi?id=151055

  • webgl/1.0.3/151055_asan.html: Mark webgl/1.0.3/151055_asan.html as failing.
9:27 AM FAQ edited by BJ Burg
answer for "how do I build WebKit for QT?" (diff)
9:06 AM FAQ edited by BJ Burg
clean up. (diff)
2:13 AM Changeset in webkit [192513] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
https://bugs.webkit.org/show_bug.cgi?id=151025

Reviewed by Darin Adler.

Source/WebCore:

Negative margins could make RenderFlexibleBox compute negative
intrinsic sizes. Clamp intrinsic sizes to 0.

Test: css3/flexbox/negative-margins-assert.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):

LayoutTests:

  • css3/flexbox/negative-margins-assert-expected.txt: Added.
  • css3/flexbox/negative-margins-assert.html: Added.
2:11 AM Changeset in webkit [192512] by svillar@igalia.com
  • 5 edits in trunk

[css-grid] Fix alignment with gutters and negative free spaces
https://bugs.webkit.org/show_bug.cgi?id=151307

Reviewed by Zalan Bujtas.

Source/WebCore:

This is a regression caused by r192154. The problem was that
the free space was not properly computed when the grid
container was narrower than the track sizes + gutters size for
a given axis. The culprit was an unneeded clamp to 0 which was
polluting the freeSpace computation as the track sizing
algorithm works perfectly OK with negative freeSpace values.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackSizesForDirection):

LayoutTests:

  • fast/css-grid-layout/grid-gutters-and-alignment-expected.txt:
  • fast/css-grid-layout/grid-gutters-and-alignment.html:
1:57 AM Changeset in webkit [192511] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[GStreamer] Use RunLoop instead of GMainLoop in AudioFileReaderGStreamer
https://bugs.webkit.org/show_bug.cgi?id=151256

Reviewed by Žan Doberšek.

Use RunLoop instead of the platform specific code. The AudioBus
can be created from any thread, so we create a helper thread to
ensure we don't use the main RunLoop.

This patch also includes some code cleanups:

  • Uses smart pointers when possible.
  • Fixes uninitialized members in constructors.
  • Makes private members private.
  • Uses lambdas instead of static non-members functions.
  • nullptr instead of 0 in some places.
  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::createWeakPtr):
(WebCore::AudioFileReader::deinterleavePadAddedCallback):
(WebCore::AudioFileReader::deinterleaveReadyCallback):
(WebCore::AudioFileReader::decodebinPadAddedCallback):
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::handleSample):
(WebCore::AudioFileReader::handleMessage):
(WebCore::AudioFileReader::handleNewDeinterleavePad):
(WebCore::AudioFileReader::deinterleavePadsConfigured):
(WebCore::AudioFileReader::plugDeinterleave):
(WebCore::AudioFileReader::decodeAudioForBusCreation):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):
(WebCore::onAppsinkPullRequiredCallback): Deleted.
(WebCore::messageCallback): Deleted.
(WebCore::onGStreamerDeinterleavePadAddedCallback): Deleted.
(WebCore::onGStreamerDeinterleaveReadyCallback): Deleted.
(WebCore::onGStreamerDecodebinPadAddedCallback): Deleted.

  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstBufferList>):
(WTF::derefGPtr<GstBufferList>):

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
12:37 AM Changeset in webkit [192510] by Carlos Garcia Campos
  • 9 edits in trunk/Source/WebKit2

[GTK] Web Process crashes on reparenting a WebView with AC mode on
https://bugs.webkit.org/show_bug.cgi?id=151139

Reviewed by Mario Sanchez Prada.

When the web view is reparented, the widget is first unrealized,
and then realized again when added to the new parent. In the
second realize, the old redirected XComposite window is destroyed
and a new one is created, but the web process is still using the
old redirected window ID. As soon as the redirected window is
destroyed and the web process tries to use the window ID, it
crashes due to a BadDrawable X error. We have to notify the web
process as soon as the web view is unrealized to stop using the
current window ID and exit accelerated compositing mode until a
new window ID is given. This notification needs to be synchronous,
because the window can be destroyed in the UI process before the
message is received in the web process.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): Add an assert to ensure we never have
a redirected window when the view is realized. Also check drawing
area is not nullptr, since it can be destroyed at any time if the
web process crashes.
(webkitWebViewBaseUnrealize): Call
DrawingAreaProxyImpl::destroyNativeSurfaceHandleForCompositing()
and destroy the redirected XComposite window.

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::destroyNativeSurfaceHandleForCompositing):
Send DestroyNativeSurfaceHandleForCompositing synchronous messsage
to the web process.

  • UIProcess/DrawingAreaProxyImpl.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in: Add

DestroyNativeSurfaceHandleForCompositing message.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::destroyNativeSurfaceHandleForCompositing):
Set the native surface handler for compositing to 0 to reset it.

  • WebProcess/WebPage/DrawingAreaImpl.h:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::makeContextCurrent): Return false
early always when layer tree context ID is 0, even if we already
have a context.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):
Cancel any pending layer flush when setting a new handler.

12:11 AM Changeset in webkit [192509] by Hunseop Jeong
  • 3 edits
    2 adds in trunk/LayoutTests

Unreviewed EFL Gardening on 16th Nov.
https://bugs.webkit.org/show_bug.cgi?id=151339

  • platform/efl/fast/text/decorations-with-text-combine-expected.txt:
  • platform/efl/fast/text/international/text-combine-image-test-expected.txt:
  • platform/efl/fast/text/mark-matches-overflow-clip-expected.txt: Added.
  • platform/efl/fast/text/text-combine-shrink-on-color-change-expected.txt: Added.
Note: See TracTimeline for information about the timeline view.