Timeline


and

04/25/15: Today

18:28 Changeset [183342] by timothy@apple.com
  • 4 edits in trunk/Source

Update localized strings.

Source/WebCore:

  • English.lproj/Localizable.strings: Updated.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js: Updated.
18:27 Changeset [183341] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Make JSContext debugging work with Tabs UI
https://bugs.webkit.org/show_bug.cgi?id=144203

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector._isTabTypeAllowed):
(WebInspector.activateExtraDomains):
(WebInspector._updateReloadToolbarButton):
(WebInspector._updateDownloadToolbarButton):

18:26 Changeset [183340] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Save and restore tab state on reload and between sessions
https://bugs.webkit.org/show_bug.cgi?id=144202

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector._mainResourceDidChange):
(WebInspector._provisionalLoadStarted):
(WebInspector._restoreCookieForOpenTabs):
(WebInspector._saveCookieForOpenTabs):
(WebInspector._pageHidden):

  • UserInterface/Views/TabContentView.js:

(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.restoreStateFromCookie):
(WebInspector.TabContentView.prototype.saveStateToCookie):

18:26 Changeset [183339] by timothy@apple.com
  • 7 edits
    1 move
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Split search from ResourceSidebarPanel into a Search tab and sidebar
https://bugs.webkit.org/show_bug.cgi?id=144197

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector._tabContentViewForType):
(WebInspector._searchTextDidChange):
(WebInspector._focusSearchField):
(WebInspector._domNodeWasInspected):

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):

  • UserInterface/Images/SearchResults.svg: Added.
  • UserInterface/Main.html:
  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
(WebInspector.ResourceSidebarPanel.prototype._addStorageChild):
(WebInspector.ResourceSidebarPanel.prototype._extraDomainsActivated):
(WebInspector.ResourceSidebarPanel.prototype.get contentTreeOutlineToAutoPrune): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholderSoon): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholder): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.forEachMatch): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.resourceCallback): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.resourcesCallback): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.searchScripts.scriptCallback): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.searchScripts): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.domSearchResults): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.domCallback): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._showResourcesContentTreeOutline): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._showSearchContentTreeOutline): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._searchFieldChanged): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._searchFieldInput): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._searchTreeElementForResource): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._searchTreeElementForScript): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._focusSearchField): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._scriptsToSearch): Deleted.

  • UserInterface/Views/SearchBar.js:

(WebInspector.SearchBar):

  • UserInterface/Views/SearchSidebarPanel.css: Renamed from Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.css.

(.sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.search > .search-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar):
(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar > input[type="search"]):

  • UserInterface/Views/SearchSidebarPanel.js: Added.

(WebInspector.SearchSidebarPanel):
(WebInspector.SearchSidebarPanel.prototype.closed):
(WebInspector.SearchSidebarPanel.prototype.focusSearchField):
(WebInspector.SearchSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholderSoon):
(WebInspector.SearchSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholder):
(WebInspector.SearchSidebarPanel.prototype.performSearch.forEachMatch):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourceCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts.scriptCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts):
(WebInspector.SearchSidebarPanel.prototype.performSearch.domSearchResults):
(WebInspector.SearchSidebarPanel.prototype.performSearch.domCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch):
(WebInspector.SearchSidebarPanel.prototype._searchFieldChanged):
(WebInspector.SearchSidebarPanel.prototype._searchFieldInput):
(WebInspector.SearchSidebarPanel.prototype._searchTreeElementForResource):
(WebInspector.SearchSidebarPanel.prototype._searchTreeElementForScript):
(WebInspector.SearchSidebarPanel.prototype._mainResourceDidChange.delayedWork):
(WebInspector.SearchSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.SearchSidebarPanel.prototype._treeElementSelected):

  • UserInterface/Views/SearchTabContentView.js: Added.

(WebInspector.SearchTabContentView):
(WebInspector.SearchTabContentView.prototype.get type):
(WebInspector.SearchTabContentView.prototype.shown):
(WebInspector.SearchTabContentView.prototype.closed):
(WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
(WebInspector.SearchTabContentView.prototype.focusSearchField):
(WebInspector.SearchTabContentView.prototype.performSearch):

  • UserInterface/Views/Toolbar.css:

(.toolbar .item-section.center-right):
(.toolbar .item-section.right):
(.toolbar .search-bar):
(.toolbar .search-bar > input[type="search"]):
(.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container):
(body.window-inactive .toolbar .search-bar > input[type="search"]):
(.toolbar .item): Deleted.

18:25 Changeset [183338] by timothy@apple.com
  • 15 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: New Toolbar UI for tabs
https://bugs.webkit.org/show_bug.cgi?id=144185

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/ImageUtilities.js:
  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.updateDockedState):
(WebInspector._captureDidStart):
(WebInspector._debuggerDidPause):
(WebInspector._debuggerDidResume):
(WebInspector._mainFrameDidChange):
(WebInspector._mainResourceDidChange):
(WebInspector._windowKeyDown):
(WebInspector._windowKeyUp):
(WebInspector._pageHidden):
(WebInspector._undock):
(WebInspector._dockBottom):
(WebInspector._dockRight):
(WebInspector._updateDockNavigationItems):
(WebInspector._domNodeWasInspected):
(WebInspector._inspectModeStateChanged):
(WebInspector._toggleInspectMode):
(WebInspector._downloadWebArchive):
(WebInspector._reloadPageClicked):
(WebInspector._updateDownloadToolbarButton):
(WebInspector.archiveMainFrame):
(WebInspector.canArchiveMainFrame):

  • UserInterface/Images/Crosshair.svg:
  • UserInterface/Images/DockBottom.svg:
  • UserInterface/Images/DockRight.svg:
  • UserInterface/Images/DownloadArrow.svg:
  • UserInterface/Images/ReloadToolbar.svg: Added.
  • UserInterface/Images/Undock.svg:
  • UserInterface/Views/ActivateButtonToolbarItem.js:

(WebInspector.ActivateButtonToolbarItem):
(WebInspector.ActivateButtonToolbarItem.prototype.set label):

  • UserInterface/Views/ButtonToolbarItem.css:

(.toolbar .item.button):
(body.window-inactive .toolbar .item.button):
(.toolbar.small-size .item.button > .glyph):

  • UserInterface/Views/ButtonToolbarItem.js:

(WebInspector.ButtonToolbarItem):
(WebInspector.ButtonToolbarItem.prototype.set label):

  • UserInterface/Views/DashboardContainerView.css:

(.toolbar .dashboard-container):

  • UserInterface/Views/Main.css:

(body.docked.bottom):

  • UserInterface/Views/Toolbar.css:

(.toolbar):
(body.mac-platform:not(.legacy, .docked) .toolbar):
(.toolbar .control-section):
(.toolbar .item-section):
(.toolbar .item-section.left):
(.toolbar .item-section.center-left):
(.toolbar .item-section.center-right):
(.toolbar .item-section.right):

  • UserInterface/Views/Toolbar.js:

(WebInspector.Toolbar):
(WebInspector.Toolbar.prototype.customUpdateLayout.isOverflowingToolbar):
(WebInspector.Toolbar.prototype.customUpdateLayout):
(WebInspector.Toolbar.prototype.addToolbarItem):

18:24 Changeset [183337] by timothy@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Add NavigationBar to the details sidebar
https://bugs.webkit.org/show_bug.cgi?id=144191

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

  • UserInterface/Views/DetailsSidebarPanel.js:

(WebInspector.DetailsSidebarPanel):
(WebInspector.DetailsSidebarPanel.prototype.get navigationItem):

  • UserInterface/Views/NavigationBar.js:

(WebInspector.NavigationBar.prototype.removeNavigationItem):
Remove unused index argument.

  • UserInterface/Views/Sidebar.css:

(.sidebar > .navigation-bar):
(.sidebar.has-navigation-bar > .panel):

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar):
(WebInspector.Sidebar.prototype.addSidebarPanel):
(WebInspector.Sidebar.prototype.removeSidebarPanel):
(WebInspector.Sidebar.prototype.set selectedSidebarPanel):
(WebInspector.Sidebar.prototype.get minimumWidth):
(WebInspector.Sidebar.prototype.set width):
(WebInspector.Sidebar.prototype.set collapsed):

18:23 Changeset [183336] by timothy@apple.com
  • 8 edits
    6 deletes in trunk/Source

Web Inspector: Remove native window dock controls
https://bugs.webkit.org/show_bug.cgi?id=144184

Reviewed by Joseph Pecoraro.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • Resources/Dock.pdf: Removed.
  • Resources/DockLegacy.pdf: Removed.
  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController window]):
(-[WebInspectorWindowController setDockingUnavailable:]):

Source/WebKit2:

  • Resources/DockBottom.pdf: Removed.
  • Resources/DockBottomLegacy.pdf: Removed.
  • Resources/DockRight.pdf: Removed.
  • Resources/DockRightLegacy.pdf: Removed.
  • UIProcess/WebInspectorProxy.h:
  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):

  • WebKit2.xcodeproj/project.pbxproj:
18:23 Changeset [183335] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Switch over to a tab based UI
https://bugs.webkit.org/show_bug.cgi?id=144154

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector._tabContentViewForType):
(WebInspector._rememberOpenTabs):
(WebInspector._windowResized):
(WebInspector._tabBrowserSizeDidChange):
(WebInspector._quickConsoleDidResize):
(WebInspector._sidebarWidthDidChange):
(WebInspector._tabBrowserSelectedTabContentViewDidChange):
(WebInspector._inspectModeStateChanged):
(WebInspector._focusedContentView):

  • UserInterface/Main.html:
  • UserInterface/Views/Main.css:

(#tab-browser):

18:22 Changeset [183334] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove Main.js code we don't need for Tabs
https://bugs.webkit.org/show_bug.cgi?id=144126

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.contentLoaded):

18:22 Changeset [183333] by timothy@apple.com
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Change more places that changed WebInspector.navigationSidebar.selectedSidebarPanel to tabs
https://bugs.webkit.org/show_bug.cgi?id=144125

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.toggleDetailsSidebar):
(WebInspector.tabContentViewClassForRepresentedObject):
(WebInspector._updateModifierKeys):
(WebInspector._consoleResizerMouseDown.dockedResizerDragEnd):
(WebInspector._consoleResizerMouseDown):
(WebInspector.linkifyURLAsNode):
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setTimelineProfilingEnabled):
(InspectorFrontendAPI.showConsole):
(InspectorFrontendAPI.showResources):

  • UserInterface/Protocol/InspectorObserver.js:

(WebInspector.InspectorObserver.prototype.inspect):

  • UserInterface/Views/DebuggerTabContentView.js:

(WebInspector.DebuggerTabContentView.prototype.canShowRepresentedObject):
(WebInspector.DebuggerTabContentView.prototype.revealAndSelectBreakpoint):

  • UserInterface/Views/DefaultDashboardView.js:

(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._resourcesWasClicked):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.revealInSidebar):

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser.bestTabContentViewForClass):

18:21 Changeset [183332] by timothy@apple.com
  • 7 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Make Console work in a tab world
https://bugs.webkit.org/show_bug.cgi?id=144112

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector.isShowingConsoleTab):
(WebInspector.UIString):
(WebInspector.toggleNavigationSidebar):
(WebInspector.toggleDetailsSidebar):
(WebInspector.tabContentViewClassForRepresentedObject):
(WebInspector.linkifyStringAsFragment):

  • UserInterface/Images/Console.svg: Added.
  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.showConsole):

  • UserInterface/Views/ConsoleTabContentView.js: Added.

(WebInspector.ConsoleTabContentView):
(WebInspector.ConsoleTabContentView.prototype.shown):
(WebInspector.ConsoleTabContentView.prototype.showRepresentedObject):
(WebInspector.ConsoleTabContentView.prototype.canShowRepresentedObject):
(WebInspector.ConsoleTabContentView.prototype.get supportsSplitContentBrowser):

  • UserInterface/Views/DefaultDashboardView.js:

(WebInspector.DefaultDashboardView.prototype._consoleItemWasClicked):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.get navigationItems):
(WebInspector.LogContentView.prototype.shown):
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype._showConsoleTab):

  • UserInterface/Views/LogIcon.css:

(.log-icon .icon):

  • UserInterface/Views/Main.css:

(#split-content-browser .hierarchical-path-component.log-icon .icon):
(#split-content-browser .hierarchical-path-component.log-icon .title):
(#split-content-browser .hierarchical-path-component.log-icon select):

18:20 Changeset [183331] by timothy@apple.com
  • 25 edits in trunk/Source/WebInspectorUI

Web Inspector: Make showing a content view work in the tab world
https://bugs.webkit.org/show_bug.cgi?id=144110

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.hideSplitConsole):
(WebInspector.showSourceCodeLocation):
(WebInspector.showOriginalUnformattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeTextRange):
(WebInspector.showResourceRequest):
(WebInspector.debuggerToggleBreakpoints):
(WebInspector.debuggerPauseResumeToggle):
(WebInspector.debuggerStepOver):
(WebInspector.debuggerStepInto):
(WebInspector.debuggerStepOut):
(WebInspector._focusChanged):
(WebInspector._mouseWasClicked):
(WebInspector._dragOver):
(WebInspector._captureDidStart):
(WebInspector._debuggerDidPause):
(WebInspector._debuggerDidResume):
(WebInspector._frameWasAdded):
(WebInspector._undock):
(WebInspector._updateDockNavigationItems):

  • UserInterface/Models/Breakpoint.js:

(WebInspector.Breakpoint.prototype.appendContextMenuItems.revealOriginalSourceCodeLocation):
(WebInspector.Breakpoint.prototype.appendContextMenuItems):

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.showMainResourceForFrame):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype._goToRegionFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel):

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype.updateHierarchicalPathForCurrentContentView):

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView):

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView.prototype.restoreFromCookie):

  • UserInterface/Views/DOMTreeDataGridNode.js:

(WebInspector.DOMTreeDataGridNode.prototype._goToArrowWasClicked):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
(WebInspector.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToContentTreeOutline):
(WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssueAdded):

  • UserInterface/Views/LayerTreeDataGridNode.js:

(WebInspector.LayerTreeDataGridNode.prototype._goToArrowWasClicked):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView.prototype._treeElementSelected):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.get contentBrowser):
(WebInspector.NavigationSidebarPanel.prototype.set contentBrowser):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.prototype._treeElementSelected):

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
(WebInspector.ObjectTreeBaseTreeElement):

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype._treeElementSelected):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype._goToRequestDataClicked):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
(WebInspector.ResourceSidebarPanel.prototype._storageCleared):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype._goToResource):

  • UserInterface/Views/ScriptTimelineView.js:

(WebInspector.ScriptTimelineView.prototype._treeElementSelected):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeElementSelected):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.shown):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline):

18:20 Changeset [183330] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Make debugger keyboard shortcuts global
https://bugs.webkit.org/show_bug.cgi?id=144068

We wont always have a DebuggerSidebarPanel to listen for the shortcuts.

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector.showSourceCodeForFrame):
(WebInspector.showSourceCode):

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.pause):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidResume):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssueAdded):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssuesCleared):
(WebInspector.DebuggerSidebarPanel):

18:19 Changeset [183329] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove Reload and Download Web Archive buttons from FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=144064

The will be global toolbar items soon.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/FrameTreeElement.js:
  • UserInterface/Views/ResourceTreeElement.js:

(WebInspector.ResourceTreeElement.prototype._updateStatus):

18:19 Changeset [183328] by timothy@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove time and weight from the dashboard
https://bugs.webkit.org/show_bug.cgi?id=144063

These two items were the odd ones out since they are only available
when recording a timeline. We will need the toolbar space soon, so make
this lets us make the dashboard skinnier.

This also removes the exception catching in DashboardContainerView. It doesn't really
help us and it makes debugging an exception harder.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DashboardContainerView.css:

(.toolbar .dashboard-container):

  • UserInterface/Views/DashboardContainerView.js:

(WebInspector.DashboardContainerView.prototype._dashboardViewForRepresentedObject):

  • UserInterface/Views/DefaultDashboardView.css:

(body.web .toolbar.collapsed .dashboard.default > .item.resourcesCount):
(body.javascript .toolbar .dashboard.default > .item.resourcesCount):

  • UserInterface/Views/DefaultDashboardView.js:

(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):

18:18 Changeset [183327] by timothy@apple.com
  • 16 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove sidebar panel shortcut and image
https://bugs.webkit.org/show_bug.cgi?id=144061

Sidebar panels no longer need a keyboard shortcut or a toolbar image.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:

(WebInspector.ApplicationCacheDetailsSidebarPanel):

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel):

  • UserInterface/Views/DOMDetailsSidebarPanel.js:

(WebInspector.DOMDetailsSidebarPanel):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel):

  • UserInterface/Views/DebuggerSidebarPanel.js:
  • UserInterface/Views/DetailsSidebarPanel.js:

(WebInspector.DetailsSidebarPanel):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
(WebInspector.NavigationSidebarPanel.prototype.show):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):

  • UserInterface/Views/ProbeDetailsSidebarPanel.js:

(WebInspector.ProbeDetailsSidebarPanel):

  • UserInterface/Views/RenderingFrameDetailsSidebarPanel.js:
  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel):

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.added):
(WebInspector.SidebarPanel.prototype.removed):
(WebInspector.SidebarPanel.prototype.visibilityDidChange):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForTimeline):

18:17 Changeset [183326] by timothy@apple.com
  • 13 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove allowedNavigationSidebarPanels, it isn't needed
https://bugs.webkit.org/show_bug.cgi?id=144056

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:
  • UserInterface/Views/ContentView.js:
  • UserInterface/Views/CookieStorageContentView.js:
  • UserInterface/Views/DOMStorageContentView.js:
  • UserInterface/Views/DOMTreeContentView.js:
  • UserInterface/Views/DatabaseContentView.js:
  • UserInterface/Views/DatabaseTableContentView.js:
  • UserInterface/Views/FontResourceContentView.js:
  • UserInterface/Views/FrameDOMTreeContentView.js:
  • UserInterface/Views/LogContentView.js:
  • UserInterface/Views/ResourceClusterContentView.js:
  • UserInterface/Views/TimelineRecordingContentView.js:
18:17 Changeset [183325] by timothy@apple.com
  • 12 edits in trunk/Source/WebInspectorUI

Web Inspector: Support passing extra arguments to ContentViews during construction
https://bugs.webkit.org/show_bug.cgi?id=144055

This allows us to pass the TimelineSidebarPanel to Timeline views since in the future
there could be multiple timeline sidebars, one per tab. So the global instance will
be going away.

This also removes the exception catching in ContentViewContainer. It doesn't really
help us and it makes debugging an exception harder.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype.showContentViewForRepresentedObject):
(WebInspector.ContentBrowser.prototype.contentViewForRepresentedObject):

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView):

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
(WebInspector.ContentViewContainer.prototype.showContentViewForRepresentedObject):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
(WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.NetworkTimelineView.prototype._treeElementSelected):
(WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
(WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):

  • UserInterface/Views/ScriptTimelineView.js:

(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
(WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):

  • UserInterface/Views/TimelineSidebarPanel.js:
  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get timelineSidebarPanel):

18:16 Changeset [183324] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Disable global keyboard shortcuts for background tabs
https://bugs.webkit.org/show_bug.cgi?id=143918

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):
(WebInspector.ContentBrowser.prototype.shown): Added.
(WebInspector.ContentBrowser.prototype.hidden): Added.
Disable shortcuts on the browser and find banner.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView.prototype.shown): Added.
(WebInspector.ContentBrowserTabContentView.prototype.hidden): Added.
Tell the content browser we were shown or hidden.

  • UserInterface/Views/FindBanner.js:

(WebInspector.FindBanner):
(WebInspector.FindBanner.prototype.show):
(WebInspector.FindBanner.prototype.enableKeyboardShortcuts): Added.
(WebInspector.FindBanner.prototype.disableKeyboardShortcuts): Added.
Support disabling or enabling the keyboard shortcuts.

18:16 Changeset [183323] by timothy@apple.com
  • 7 edits
    4 copies
    13 adds in trunk/Source/WebInspectorUI

Web Inspector: Add TabBrowser and TabContentView
https://bugs.webkit.org/show_bug.cgi?id=143886

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/Debugger.svg: Added.
  • UserInterface/Images/Elements.svg: Added.
  • UserInterface/Images/Gear.svg: Added.
  • UserInterface/Images/NewTabPlus.svg: Added.
  • UserInterface/Images/Resources.svg:
  • UserInterface/Images/Timeline.svg: Added.
  • UserInterface/Images/ToggleLeftSidebar.svg: Added.
  • UserInterface/Images/ToggleRightSidebar.svg: Added.
  • UserInterface/Views/ContentBrowserTabContentView.css: Added.

(.content-browser.tab.content-view > .content-browser):

  • UserInterface/Views/ContentBrowserTabContentView.js: Added.

(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.get contentBrowser):
(WebInspector.ContentBrowserTabContentView.prototype.shown):
(WebInspector.ContentBrowserTabContentView.prototype.hidden):
(WebInspector.ContentBrowserTabContentView.prototype.closed):
(WebInspector.ContentBrowserTabContentView.prototype.updateLayout):
(WebInspector.ContentBrowserTabContentView.prototype.get managesDetailsSidebarPanels):
(WebInspector.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels):
(WebInspector.ContentBrowserTabContentView.prototype.contentBrowserTreeElementForRepresentedObject):
(WebInspector.ContentBrowserTabContentView.prototype._navigationSidebarCollapsedStateDidChange):
(WebInspector.ContentBrowserTabContentView.prototype._detailsSidebarCollapsedStateDidChange):
(WebInspector.ContentBrowserTabContentView.prototype._detailsSidebarPanelSelected):
(WebInspector.ContentBrowserTabContentView.prototype._contentBrowserRepresentedObjectsDidChange):
(WebInspector.ContentBrowserTabContentView.prototype._contentBrowserCurrentContentViewDidChange):
(WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObjectInNavigationSidebar):

  • UserInterface/Views/DebuggerTabContentView.js: Added.

(WebInspector.DebuggerTabContentView):

  • UserInterface/Views/ElementsTabContentView.js: Added.

(WebInspector.ElementsTabContentView):
(WebInspector.ElementsTabContentView.prototype._mainFrameDidChange):

  • UserInterface/Views/ResourcesTabContentView.js: Added.

(WebInspector.ResourcesTabContentView):

  • UserInterface/Views/SettingsTabContentView.js: Added.

(WebInspector.SettingsTabContentView):

  • UserInterface/Views/TabBrowser.css: Added.

(.tab-browser):
(.tab-browser > .tab-bar):
(.tab-browser > .content-view-container):
(.tab-browser > .tab-bar + .content-view-container):

  • UserInterface/Views/TabBrowser.js: Added.

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.get tabBar):
(WebInspector.TabBrowser.prototype.get navigationSidebar):
(WebInspector.TabBrowser.prototype.get detailsSidebar):
(WebInspector.TabBrowser.prototype.get selectedTabContentView):
(WebInspector.TabBrowser.prototype.updateLayout):
(WebInspector.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.showTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):
(WebInspector.TabBrowser.prototype._tabBarItemSelected):
(WebInspector.TabBrowser.prototype._sidebarPanelSelected):
(WebInspector.TabBrowser.prototype._sidebarCollapsedStateDidChange):
(WebInspector.TabBrowser.prototype._showNavigationSidebarPanelForTabContentView):
(WebInspector.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):

  • UserInterface/Views/TabContentView.js: Added.

(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get parentTabBrowser):
(WebInspector.TabContentView.prototype.set parentTabBrowser):
(WebInspector.TabContentView.prototype.get tabBarItem):
(WebInspector.TabContentView.prototype.get managesDetailsSidebarPanels):
(WebInspector.TabContentView.prototype.showDetailsSidebarPanels):
(WebInspector.TabContentView.prototype.canShowRepresentedObject):
(WebInspector.TabContentView.prototype.get navigationSidebarPanel):
(WebInspector.TabContentView.prototype.get navigationSidebarCollapsedSetting):
(WebInspector.TabContentView.prototype.get detailsSidebarPanels):
(WebInspector.TabContentView.prototype.get detailsSidebarCollapsedSetting):
(WebInspector.TabContentView.prototype.get detailsSidebarSelectedPanelSetting):

  • UserInterface/Views/TimelineTabContentView.js: Added.

(WebInspector.TimelineTabContentView):

18:15 Changeset [183322] by timothy@apple.com
  • 2 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add a WebInspector.TabBar class
https://bugs.webkit.org/show_bug.cgi?id=143442

Reviewed by Joseph Pecoraro.

  • UserInterface/Main.html:

Added new files.

  • UserInterface/Protocol/InspectorFrontendHostStub.js:

(window.Symbol):
(WebInspector.InspectorFrontendHostStub.prototype.showContextMenu):
Added some stubs needed to work standalone.

  • UserInterface/Views/TabBar.css: Added.

(.tab-bar):
(body.window-inactive .tab-bar):
(.tab-bar > .top-border):
(body.window-inactive .tab-bar > .top-border):
(.tab-bar > .item):
(.tab-bar > :nth-child(n + 2 of .item)):
(.tab-bar > .item.pinned):
(.tab-bar > .item.selected):
(.tab-bar > .item.new-tab-button:hover):
(.tab-bar:not(.animating) > .item:not(.selected):hover + .item):
(body.window-inactive .tab-bar > .item):
(body.window-inactive .tab-bar > .item.selected):
(.tab-bar > .item > .close):
(body:not(.window-inactive) .tab-bar:not(.single-tab) > .item:hover > .close):
(.tab-bar.single-tab > .item > .close):
(.tab-bar > .item > .close:hover):
(.tab-bar > .item > .close:active):
(.tab-bar > .item > .flex-space):
(.tab-bar > .item > .flex-space:last-child):
(.tab-bar > .item > .icon):
(.tab-bar > .item.selected > .icon):
(.tab-bar > .item.new-tab-button:hover > .icon):
(.tab-bar > .item > .title):
(.tab-bar > .item > .title > .content):
(.tab-bar:not(.animating) > .item:not(.selected):hover > .title):
(.tab-bar > .item.selected > .title):
(.tab-bar.collapsed > .item):
(.tab-bar.collapsed > .item > .flex-space):
(.tab-bar.collapsed > .item > .close):
(.tab-bar.hide-titles > .item > .title):
(.tab-bar.hide-titles > .item.selected:hover > .icon):
(.tab-bar.hide-titles > .item.selected:hover > .close):
(.tab-bar.static-layout):
(.tab-bar.static-layout > .item):
(.tab-bar.animating.closing-tab > .item):
(.tab-bar.animating:matches(.expanding-tabs, .inserting-tab) > .item):
(.tab-bar.animating.inserting-tab > .item.being-inserted):
(.tab-bar.animating.closing-tab > .item.selected):
(body.window-inactive .tab-bar.animating.closing-tab > .item.selected):
(.tab-bar.dragging-tab > .item.selected):

  • UserInterface/Views/TabBar.js: Added.

(WebInspector.TabBar):
(WebInspector.TabBar.prototype.get newTabItem):
(WebInspector.TabBar.prototype.set newTabItem):
(WebInspector.TabBar.prototype.addTabBarItem):
(WebInspector.TabBar.prototype.insertTabBarItem.animateTabs):
(WebInspector.TabBar.prototype.insertTabBarItem.removeStyles):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.insertTabBarItem.set else):
(WebInspector.TabBar.prototype.insertTabBarItem.set this):
(WebInspector.TabBar.animateTabs.get if):
(WebInspector.TabBar.animateTabs):
(WebInspector.TabBar.removeStyles):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.updateLayoutSoon.update):
(WebInspector.TabBar.prototype.updateLayoutSoon):
(WebInspector.TabBar.prototype.updateLayout):
(WebInspector.TabBar.prototype.get selectedTabBarItem):
(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype.get tabBarItems):
(WebInspector.TabBar.prototype.get element):
(WebInspector.TabBar.prototype._findTabBarItem):
(WebInspector.TabBar.prototype._hasMoreThanOneNormalTab):
(WebInspector.TabBar.prototype._recordTabBarItemSizesAndPositions):
(WebInspector.TabBar.prototype._clearTabBarItemSizesAndPositions):
(WebInspector.TabBar.prototype._finishExpandingTabsAfterClose.):
(WebInspector.TabBar.prototype._finishExpandingTabsAfterClose):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleMouseMoved):
(WebInspector.TabBar.prototype._handleMouseUp):
(WebInspector.TabBar.prototype._handleMouseLeave):
(WebInspector.TabBar.prototype._handleNewTabMouseEnter):

  • UserInterface/Views/TabBarItem.js: Added.

(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype.get identifier):
(WebInspector.TabBarItem.prototype.get element):
(WebInspector.TabBarItem.prototype.get parentTabBar):
(WebInspector.TabBarItem.prototype.set parentTabBar):
(WebInspector.TabBarItem.prototype.get selected):
(WebInspector.TabBarItem.prototype.set selected):
(WebInspector.TabBarItem.prototype.get pinned):
(WebInspector.TabBarItem.prototype.get image):
(WebInspector.TabBarItem.prototype.set image):
(WebInspector.TabBarItem.prototype.get title):
(WebInspector.TabBarItem.prototype.set title):
(WebInspector.TabBarItem.prototype.updateLayout):

18:14 Changeset [183321] by timothy@apple.com
  • 1 edit in trunk/Source/WebInspectorUI/ChangeLog

Web Inspector: Make closing ContentViews more leak proof
https://bugs.webkit.org/show_bug.cgi?id=144200

Remove all listeners on the target objects in close that match the this object.
This makes things more foolproof when something changes or a new listener is
added to the same object. TimelineRecordingContentView also had a leak where
TimelineManager and DebuggerManager listeners were not being removed.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WebInspector.ApplicationCacheFrameContentView.prototype.closed):

  • UserInterface/Views/ClusterContentView.js:

(WebInspector.ClusterContentView.prototype.closed):

  • UserInterface/Views/ContentFlowDOMTreeContentView.js:

(WebInspector.ContentFlowDOMTreeContentView.prototype.closed):

  • UserInterface/Views/FrameDOMTreeContentView.js:

(WebInspector.FrameDOMTreeContentView.prototype.closed):

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView.prototype.closed):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView.prototype.closed):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.closed):

18:08 Changeset [183320] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Set#keys !== Set#values
https://bugs.webkit.org/show_bug.cgi?id=144190

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

Source/JavaScriptCore:

per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-set.prototype.keys
Set#keys should === Set#values

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):
(JSC::setProtoFuncValues):
(JSC::setProtoFuncEntries):
(JSC::setProtoFuncKeys): Deleted.

LayoutTests:

  • js/script-tests/set-keys.js: Added.
  • js/set-keys-expected.txt: Added.
  • js/set-keys.html: Added.
18:06 Changeset [183319] by joepeck@webkit.org
  • 10 edits in trunk/Source/JavaScriptCore

Allow for pausing a JSContext when opening a Web Inspector
<rdar://problem/20564788>

Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::receivedSetupMessage):

  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/RemoteInspectorDebuggable.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.mm:

(Inspector::RemoteInspectorDebuggableConnection::setup):
On any incoming setup message, we may want to automatically
pause the debuggable. If requested, pause the debuggable
after we have setup the frontend connection.

  • runtime/JSGlobalObjectDebuggable.h:
  • runtime/JSGlobalObjectDebuggable.cpp:

(JSC::JSGlobalObjectDebuggable::pause):
Pass through to the inspector controller.

  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::pause):
Enable pause on next statement.

17:59 Changeset [183318] by timothy@apple.com
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Make closing ContentViews more leak proof
https://bugs.webkit.org/show_bug.cgi?id=144200

Remove all listeners on the target objects in close that match the this object.
This makes things more foolproof when something changes or a new listener is
added to the same object. TimelineRecordingContentView also had a leak where
TimelineManager and DebuggerManager listeners were not being removed.

Reviewed by Darin Adler.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WebInspector.ApplicationCacheFrameContentView.prototype.closed):

  • UserInterface/Views/ClusterContentView.js:

(WebInspector.ClusterContentView.prototype.closed):

  • UserInterface/Views/ContentFlowDOMTreeContentView.js:

(WebInspector.ContentFlowDOMTreeContentView.prototype.closed):

  • UserInterface/Views/FrameDOMTreeContentView.js:

(WebInspector.FrameDOMTreeContentView.prototype.closed):

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView.prototype.closed):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView.prototype.closed):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.closed):

16:47 Changeset [183317] by darin@apple.com
  • 5 edits in trunk

Crash if IDBTransaction is aborted right after it's created
https://bugs.webkit.org/show_bug.cgi?id=144199

Reviewed by Simon Fraser.

Source/WebCore:

Test: storage/indexeddb/transaction-abort.html

  • Modules/indexeddb/IDBTransactionBackend.cpp:

(WebCore::IDBTransactionBackend::IDBTransactionBackend): Don't start the
transaction if it is already complete (has been aborted).

LayoutTests:

  • platform/mac-wk2/TestExpectations: Unskip storage/indexeddb/transaction-abort.html.
  • storage/indexeddb/transaction-abort-expected.txt: Updated since the exact text of

the execptions is different from what was marked here as expected.

16:20 WebKitEFLLayoutTest edited by gyuyoung.kim@webkit.org
(diff)
15:03 Changeset [183316] by rniwa@webkit.org
  • 16 edits
    3 adds in trunk

class methods should be non-enumerable
https://bugs.webkit.org/show_bug.cgi?id=143181

Reviewed by Darin Adler.

Source/JavaScriptCore:

Fixed the bug by using Object.defineProperty to define methods.

This patch adds the concept of link time constants and uses it to resolve Object.defineProperty
inside CodeBlock's constructor since bytecode can be linked against multiple global objects.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock): Resolve link time constants that are used. Ignore ones with register
index of zero.

  • bytecode/SpecialPointer.h: Added a new enum for link time constants. It currently contains

exactly one entry for Object.defineProperty.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addConstant): Added. Like addConstant that takes JSValue, allocate a new
constant register for the link time constant we're adding.
(JSC::UnlinkedCodeBlock::registerIndexForLinkTimeConstant): Added.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitMoveLinkTimeConstant): Added. Like addConstantValue, allocate a new
register for the specified link time constant and notify UnlinkedCodeBlock about it.
(JSC::BytecodeGenerator::emitCallDefineProperty): Added. Create a new property descriptor and call
Object.defineProperty with it.

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

(JSC::PropertyListNode::emitBytecode): Make static and non-static getters and setters for classes
non-enumerable by using emitCallDefineProperty to define them.
(JSC::PropertyListNode::emitPutConstantProperty): Ditto for a non-accessor properties.
(JSC::ClassExprNode::emitBytecode): Make prototype.constructor non-enumerable and make prototype
property on the class non-writable, non-configurable, and non-enumerable by using defineProperty.

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): Set m_definePropertyFunction.
(JSC::JSGlobalObject::visitChildren): Visit m_definePropertyFunction.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::definePropertyFunction): Added.
(JSC::JSGlobalObject::actualPointerFor): Added a variant that takes LinkTimeConstant.
(JSC::JSGlobalObject::jsCellForLinkTimeConstant): Like actualPointerFor, takes LinkTimeConstant and
returns a JSCell; e.g. Object.defineProperty.

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::addDefineProperty): Added. Returns Object.defineProperty.

  • runtime/ObjectConstructor.h:

LayoutTests:

Added a regression test.

Also fixed a test that previously relied on "prototype" property being writable
since this is no longer the case.

  • js/class-syntax-extends-expected.txt:
  • js/class-syntax-prototype.html: Added.
  • js/script-tests/class-syntax-extends.js:
  • js/script-tests/class-syntax-prototype.js: Added.
15:00 Changeset [183315] by utatane.tea@gmail.com
  • 5 edits
    1 add in trunk

[ES6] Implement String.fromCodePoint
https://bugs.webkit.org/show_bug.cgi?id=144160

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch implements String.fromCodePoint.
It accepts multiple code points and generates a string that consists of given code points.
The range [0x0000 - 0x10FFFF] is valid for code points.
If the given value is out of range, throw a range error.

When a 0xFFFF <= valid code point is given,
String.fromCodePoint generates a string that contains surrogate pairs.

  • runtime/StringConstructor.cpp:

(JSC::stringFromCodePoint):
(JSC::constructWithStringConstructor):

  • tests/stress/string-from-code-point.js: Added.

(shouldBe):
(shouldThrow):
(toCodePoints):
(passThrough):

LayoutTests:

Add String.fromCodePoint.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
14:43 Changeset [183314] by mrobinson@webkit.org
  • 32 edits in trunk

Rename ENABLE_3D_RENDERING to ENABLE_3D_TRANSFORMS
https://bugs.webkit.org/show_bug.cgi?id=144182

Reviewed by Simon Fraser.

.:

  • Source/cmake/OptionsEfl.cmake: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • Source/cmake/OptionsGTK.cmake: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • Source/cmake/OptionsMac.cmake: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • Source/cmake/WebKitFeatures.cmake: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • Source/cmakeconfig.h.cmake: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • WebCore.vcxproj/WebCoreCommon.props: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • WebCore.vcxproj/WebCoreTestSupportCommon.props: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • css/CSSComputedStyleDeclaration.cpp: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • css/MediaQueryEvaluator.cpp: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • platform/graphics/GraphicsContext.h: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • platform/graphics/cairo/GraphicsContextCairo.cpp: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • platform/graphics/texmap/TextureMapperImageBuffer.cpp: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • rendering/RenderLayer.cpp: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • rendering/RenderLayerCompositor.cpp: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • rendering/RenderObject.cpp: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.

Source/WTF:

  • wtf/FeatureDefines.h: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
  • win/tools/vsprops/FeatureDefinesCairo.props: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
13:50 Changeset [183313] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mavericks fix - no window.performance there.

  • fast/frames/flattening/resources/iframe-to-resize.html:
13:20 Changeset [183312] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Unreviewed. Add more temporary logging to figure out what's going on with the test on bots.

  • fast/frames/flattening/resources/iframe-to-resize.html:
09:29 Changeset [183311] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: assertion failure when editing inline styles
https://bugs.webkit.org/show_bug.cgi?id=143939

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-04-25
Reviewed by Timothy Hatcher.

Prevent "_updateResourceContent" from being called on inline style changes.
Introduce a flag that marks a CSSStyleSheet as a representation of an
"ElementCSSInlineStyle" (DOM Level 2 spec) and return early.

  • UserInterface/Controllers/CSSStyleManager.js:

(WebInspector.CSSStyleManager.prototype.styleSheetChanged):

  • UserInterface/Models/CSSStyleSheet.js:

(WebInspector.CSSStyleSheet):
(WebInspector.CSSStyleSheet.isInlineStyle):
(WebInspector.CSSStyleSheet.prototype.markAsInlineStyle):

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):

08:43 Changeset [183310] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

mayExit() is wrong about Branch nodes with ObjectOrOtherUse: they can exit.
https://bugs.webkit.org/show_bug.cgi?id=144152

Reviewed by Filip Pizlo.

Changed the EdgeMayExit functor to recognize ObjectUse, ObjectOrOtherUse,
StringObjectUse, and StringOrStringObjectUse kinds as potentially triggering
OSR exits. This was overlooked in the original code.

While only the ObjectOrOtherUse kind is relevant for manifesting this bug with
the Branch node, the other 3 may also trigger the same bug for other nodes.
To prevent this bug from manifesting with other nodes (and future ones that
are yet to be added to mayExits()'s "potential won't exit" set), we fix the
EdgeMayExit functor to handle all 4 use kinds (instead of just ObjectOrOtherUse).

Also added a test to exercise a code path that will trigger this bug with
the Branch node before the fix is applied.

  • dfg/DFGMayExit.cpp:
  • tests/stress/branch-may-exit-due-to-object-or-other-use-kind.js: Added.

(inlinedFunction):
(foo):

01:13 Changeset [183309] by commit-queue@webkit.org
  • 1 edit
    31 adds in trunk/Tools

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

Patch by Dewei Zhu <dewei_zhu@apple.com> on 2015-04-25
Reviewed by Ryosuke Niwa

Add a script to run Speedometer and JetStream on a browser.

  • Scripts/run-benchmark: Wrapper script to run benchmark.

(main):

  • Scripts/webkitpy/benchmark_runner/README.md: Introduction of this script.
  • Scripts/webkitpy/benchmark_runner/init.py: Added.
  • Scripts/webkitpy/benchmark_runner/benchmark_builder/init.py: Added.
  • Scripts/webkitpy/benchmark_runner/benchmark_builder/benchmark_builder_factory.py: Added.

(BenchmarkBuilderFactory):

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/benchmark_builders.json: Added.
  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py: Added.

(GenericBenchmarkBuilder):
(GenericBenchmarkBuilder.prepare):
(GenericBenchmarkBuilder._copyBenchmarkToTempDir):
(GenericBenchmarkBuilder._applyPatch):
(GenericBenchmarkBuilder.clean):

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/jetstream_benchmark_builder.py: Added.

(JetStreamBenchmarkBuilder):
(JetStreamBenchmarkBuilder.prepare):
(JetStreamBenchmarkBuilder._runCreateScript):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Main module that masters all the processes of benchmark running.

(BenchmarkRunner):
(BenchmarkRunner.init):
(BenchmarkRunner.execute):
(BenchmarkRunner.dump):
(BenchmarkRunner.wrap):
(BenchmarkRunner.merge):

  • Scripts/webkitpy/benchmark_runner/browser_driver/init.py: Added.
  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py: Added.

(BrowserDriver):
(BrowserDriver.prepareEnv):
(BrowserDriver.launchUrl):
(BrowserDriver.closeBrowser):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver_factory.py: Added.

(BrowserDriverFactory):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_drivers.json: Added.
  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: Added.

(OSXChromeDriver):
(OSXChromeDriver.prepareEnv):
(OSXChromeDriver.launchUrl):
(OSXChromeDriver.closeBrowsers):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: Added.

(OSXSafariDriver):
(OSXSafariDriver.prepareEnv):
(OSXSafariDriver.launchUrl):
(OSXSafariDriver.closeBrowsers):

  • Scripts/webkitpy/benchmark_runner/data/patches/JetStream.patch: Patch that makes JetStream compatible with this script.
  • Scripts/webkitpy/benchmark_runner/data/patches/Speedometer.patch: Patch that makes Speedometer compatible with this scritp.
  • Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: Added.
  • Scripts/webkitpy/benchmark_runner/generic_factory.py: Factory for generic purpose.

(GenericFactory):
(GenericFactory.iterateGetItem):
(GenericFactory.create):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/init.py: Added.
  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py: Added.

(ServerControl):
(ServerControl.render_GET):
(ServerControl.render_POST):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py: Added.

(HTTPServerDriver):
(HTTPServerDriver.serve):
(HTTPServerDriver.fetchResult):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver_factory.py: Added.

(HTTPServerDriverFactory):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_drivers.json: Added.
  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Added.

(SimpleHTTPServerDriver):
(SimpleHTTPServerDriver.depends):
(SimpleHTTPServerDriver.init):
(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.baseUrl):
(SimpleHTTPServerDriver.fetchResult):

  • Scripts/webkitpy/benchmark_runner/utils.py: Utility module.

(ModuleNotFoundError):
(loadModule):
(getPathFromProjectRoot):
(loadJSONFromFile):
(TimeoutError):
(timeout):
(timeout.init):
(timeout.handle_timeout):
(timeout.enter):
(timeout.exit):

04/24/15: Yesterday

23:57 Changeset [183308] by commit-queue@webkit.org
  • 31 edits
    1 add in trunk

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

Made js/sort-with-side-effecting-comparisons.html time out in
debug builds (Requested by ap on #webkit).

Reverted changeset:

"It shouldn't take 1846 lines of code and 5 FIXMEs to sort an
array."
https://bugs.webkit.org/show_bug.cgi?id=144013
http://trac.webkit.org/changeset/183288

22:19 Changeset [183307] by fpizlo@apple.com
  • 6 edits
    2 adds in trunk/Source/JavaScriptCore

CRASH in operationCreateDirectArgumentsDuringExit()
https://bugs.webkit.org/show_bug.cgi?id=143962

Reviewed by Geoffrey Garen.

We shouldn't assume that constant-like OSR exit values are always recoverable. They are only
recoverable so long as they are live. Therefore, OSR exit should track liveness of
constants instead of assuming that they are always live.

  • dfg/DFGGenerationInfo.h:

(JSC::DFG::GenerationInfo::noticeOSRBirth):
(JSC::DFG::GenerationInfo::appendBirth):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGVariableEvent.cpp:

(JSC::DFG::VariableEvent::dump):

  • dfg/DFGVariableEvent.h:

(JSC::DFG::VariableEvent::birth):
(JSC::DFG::VariableEvent::id):
(JSC::DFG::VariableEvent::dataFormat):

  • dfg/DFGVariableEventStream.cpp:

(JSC::DFG::VariableEventStream::reconstruct):

  • tests/stress/phantom-direct-arguments-clobber-argument-count.js: Added.

(foo):
(bar):

  • tests/stress/phantom-direct-arguments-clobber-callee.js: Added.

(foo):
(bar):

20:40 Changeset [183306] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

Change was incorrect, broke builds (Requested by smfr on
#webkit).

Reverted changeset:

"Fix the build."
http://trac.webkit.org/changeset/183303

20:30 Changeset [183305] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] FontPlatformData's equality check should always use reference URLs
https://bugs.webkit.org/show_bug.cgi?id=144168

Reviewed by Tim Horton.

<rdar://problem/18985642> is not fixed, so we need to continue using the older
objectForEqualityCheck().

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::objectForEqualityCheck):

20:29 Changeset [183304] by mmaxfield@apple.com
  • 11 edits
    2 adds in trunk

Implement parsing support for font-synthesis CSS property
https://bugs.webkit.org/show_bug.cgi?id=144180
Source/WebCore:

<rdar://problem/20692791>
<rdar://problem/20625024>

Reviewed by Tim Horton.

See http://www.w3.org/TR/css-fonts-3/#font-synthesis-prop

This property allows web authors to opt out of font synthesis. This patch only
implements parsing support for the property.

Test: fast/css3-text/font-synthesis-parse.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontSynthesisFromStyle): Create a CSSValue for the existing style object.
(WebCore::ComputedStyleExtractor::propertyValue): Call fontSynthesisFromStyle().

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): Call parseFontSynthesis().
(WebCore::CSSParser::parseFontSynthesis): Accept the grammar

"none | [ weight
style ]"
  • css/CSSParser.h: Function signature.
  • css/CSSPropertyNames.in: New CSS property name.
  • css/CSSValueKeywords.in: New CSS value names.
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueFontSynthesis): Construct an internal
representation of font-synthesis for a given CSSValue.

  • rendering/style/RenderStyle.h: Function signature.
  • rendering/style/RenderStyleConstants.h: Internal representation of

font-synthesis.

  • rendering/style/StyleRareInheritedData.h: Where we actually store the bits

related to this internal representation.

LayoutTests:

Reviewed by Tim Horton.

  • fast/css3-text/font-synthesis-parse-expected.txt: Added.
  • fast/css3-text/font-synthesis-parse.html: Added.
18:31 Changeset [183303] by simon.fraser@apple.com
  • 2 edits in trunk/Tools

Fix the build.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController initWithConfiguration:]):

18:03 Changeset [183302] by simon.fraser@apple.com
  • 5 edits in trunk/Source

Have the web inspector report accurate memory use for layers with detached backing store
https://bugs.webkit.org/show_bug.cgi?id=144179

Reviewed by Dean Jackson.
Source/WebCore:

Only report memory use for layers whose backing store is attached.

  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/PlatformCALayer.h: Add backingContributesToMemoryEstimate()

which platforms can override if they allow backing store detaching.

Source/WebKit2:

Remote layers can make their backing store volatile, so the backing only contributes
to reported memory use when attached.

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
18:02 Changeset [183301] by simon.fraser@apple.com
  • 26 edits in trunk/LayoutTests

Track a coverage rect through GraphicsLayerCA flushes, use it to mark backing store attached
https://bugs.webkit.org/show_bug.cgi?id=144165

Reviewed by Dean Jackson.

New results for platform/mac-wk2/tiled-drawing tests that dump layer trees.

  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
  • platform/mac-wk2/tiled-drawing/simple-document-with-margin-tiles-expected.txt:
  • platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-expected.txt:
  • platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt:
  • platform/mac-wk2/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt:
  • platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt:
  • platform/mac-wk2/tiled-drawing/tile-coverage-speculative-expected.txt:
  • platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:
  • platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt:
  • platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt:
  • platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:
  • platform/mac-wk2/tiled-drawing/use-tiled-drawing-expected.txt:
  • platform/mac-wk2/tiled-drawing/visible-rect-content-inset-expected.txt:
18:02 Changeset [183300] by simon.fraser@apple.com
  • 30 edits
    6 adds in trunk

Track a coverage rect through GraphicsLayerCA flushes, use it to mark backing store attached
https://bugs.webkit.org/show_bug.cgi?id=144165

Reviewed by Dean Jackson.

Source/WebCore:

Push in the clipRect as the secondary rect when doing a GraphicsLayerCA flush,
which maps this rect through all the layers. Each layer tests intersection with
this rect to determine if its backing store should be attached.

This will cause us to drop backing store for layers that don't intersect the
visible part of the view, which is too aggressive. A future patch will add
some padding.

Tests: compositing/visible-rect/coverage-clipped.html

compositing/visible-rect/coverage-scrolling.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA): Remove initialization of things with
C++11 initializers. Initialize the new m_intersectsCoverageRect bit.
(WebCore::GraphicsLayerCA::flushCompositingState): Push the clipRect in as the
secondary coverage rect. A future patch will inflate this on the way down the tree.
(WebCore::GraphicsLayerCA::computeVisibleRect): If we're clipping, and
we have a secondary coverage rect, that rect can be clipped to us too.
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateBackingStoreAttachment):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/GraphicsLayerCA.h: New CoverageRectChanged bit.

Use more C++11 initializers.
(WebCore::GraphicsLayerCA::coverageRect):

LayoutTests:

Updated results that now include coverage rects, and a new test that includes both visible
and hidden layers.

  • compositing/contents-scale/animating-expected.txt:
  • compositing/contents-scale/rounded-contents-scale-expected.txt:
  • compositing/contents-scale/scaled-ancestor-expected.txt:
  • compositing/contents-scale/simple-scale-expected.txt:
  • compositing/contents-scale/z-translate-expected.txt:
  • compositing/visible-rect/coverage-clipped-expected.txt: Added.
  • compositing/visible-rect/coverage-clipped.html: Added.
  • compositing/visible-rect/coverage-scrolling-expected.txt: Added.
  • compositing/visible-rect/coverage-scrolling.html: Added.
  • platform/ios-simulator-wk2/compositing/visible-rect/coverage-clipped-expected.txt: Added.
  • platform/ios-simulator-wk2/compositing/visible-rect/coverage-scrolling-expected.txt: Added.
  • platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
  • platform/mac-wk2/compositing/visible-rect/iframe-no-layers-expected.txt:
  • platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
  • platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
  • platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt:
  • platform/mac/compositing/visible-rect/2d-transformed-expected.txt:
  • platform/mac/compositing/visible-rect/3d-transform-style-expected.txt:
  • platform/mac/compositing/visible-rect/3d-transformed-expected.txt:
  • platform/mac/compositing/visible-rect/animated-expected.txt:
  • platform/mac/compositing/visible-rect/animated-from-none-expected.txt:
  • platform/mac/compositing/visible-rect/clipped-by-viewport-expected.txt:
  • platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt:
  • platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt:
  • platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt:
  • platform/mac/compositing/visible-rect/iframe-no-layers-expected.txt:
  • platform/mac/compositing/visible-rect/nested-transform-expected.txt:
  • platform/mac/compositing/visible-rect/scrolled-expected.txt:
17:25 Changeset [183299] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

theverge.com burning 100% CPU on iPad (due to window.screenX/Y)
<https://webkit.org/b/144175>
<rdar://problem/20694585>

Reviewed by Anders Carlsson.

Return an empty window rect on iOS WK2 builds. This avoids sending a synchronous
IPC request to the UI process that would give the same result, but spend way
more time and CPU cycles to do so.

With this change, theverge.com CPU usage goes from 100% to ~20% when idle.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::windowRect):

17:19 Changeset [183298] by bfulgham@apple.com
  • 2 edits in trunk/Tools

Disable ActionMenusPDFTest due to timeout on test bot

  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenus.mm:

(TestWebKitAPI::TEST):

17:16 Changeset [183297] by bfulgham@apple.com
  • 5 edits in trunk/Source/WebKit2

TextIndicator for embedded PDFs is slightly offset
https://bugs.webkit.org/show_bug.cgi?id=144172
<rdar://problem/20691304>

Reviewed by Tim Horton.

When I converted the existing DOM Range logic to work with PDFSelections, I omitted the
step where the font ascent was used to adjust the origin used for the TextIndicator. This
patch determines the correct ascent for the range of characters in the selection, and
adjusts the offset by the difference between the ascent and the height of the selection rect.

Also, since the PDFSelection only supplies the bounding rect for the selection, I calculate
an equivalent text bounding box by insetting the rect by half the size of the ascent.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::scaleFactor): Add accessor for PDF scale factor.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::dictionaryPopupInfoForPDFSelectionInPluginView): Adjusted to take the
font ascent and scale factor into account.

17:11 Changeset [183296] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r183293): Fix iOS EWS build by adding SPI declaration for +[UIPeripheralHost visiblePeripheralFrame]

Fixes the following build failures:

WebKit2/UIProcess/ios/WKPDFView.mm:740:45: error: class method '+visiblePeripheralFrame' not found (return type defaults to 'id') [-Werror,-Wobjc-method-access]

CGRect keyboardRect = [UIPeripheralHost visiblePeripheralFrame];

~

WebKit2/UIProcess/ios/WKPDFView.mm:740:12: error: no viable conversion from 'id' to 'CGRect'

CGRect keyboardRect = [UIPeripheralHost visiblePeripheralFrame];

~

  • Platform/spi/ios/UIKitSPI.h:

(+[UIPeripheralHost visiblePeripheralFrame]): Add declaration.

17:11 Changeset [183295] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

AnimationController::scrollWasUpdated() shows up in scrolling profiles on pages that don't use scroll triggers
https://bugs.webkit.org/show_bug.cgi?id=144173
<rdar://problem/20526168>

Reviewed by Simon Fraser.

Keep a list of Animations that care about scroll updates, and only
run the animation update if the list is not empty.

Covered by existing tests.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine): Tell the AnimationController
if this is an animation that depends on scrolling.

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::animationWillBeRemoved): Call the
new removeFromAnimationsDependentOnScroll as this animation is deleted.
(WebCore::AnimationControllerPrivate::addToAnimationsDependentOnScroll):
(WebCore::AnimationControllerPrivate::removeFromAnimationsDependentOnScroll):
(WebCore::AnimationControllerPrivate::scrollWasUpdated): Only update if
there are animations that care.
(WebCore::AnimationController::wantsScrollUpdates): Helper to expose this
value to FrameView.

  • page/animation/AnimationController.h:
  • page/animation/AnimationControllerPrivate.h:

(WebCore::AnimationControllerPrivate::wantsScrollUpdates):

17:09 Changeset [183294] by andersca@apple.com
  • 5 edits
    1 copy in trunk/Source/WebKit2

Change _WKWebsiteDataStore to hold on to an internal WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=144171

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _websiteDataStore]):
(-[WKWebViewConfiguration _setWebsiteDataStore:]):

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

(-[_WKWebsiteDataStore initWithDataStore:]):
(+[_WKWebsiteDataStore defaultDataStore]):
(+[_WKWebsiteDataStore nonPersistentDataStore]):
(-[_WKWebsiteDataStore isNonPersistent]):
(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.h.
  • WebKit2.xcodeproj/project.pbxproj:
16:54 Changeset [183293] by timothy_horton@apple.com
  • 6 edits in trunk/Source

WKPDFView does not support password-protected PDFs
https://bugs.webkit.org/show_bug.cgi?id=144162
<rdar://problem/18411512>

Reviewed by Andy Estes.

  • Platform/spi/ios/UIKitSPI.h:

Add some SPI.

  • UIProcess/ios/WKPDFView.h:
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _didLoadPDFDocument]):
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):
Move creation of the UIPDFDocument (only possible if the CGPDFDocument is unlocked)
and initial setup of the page views out into _didLoadPDFDocument.

If the CGPDFDocument is locked, we'll show some UI to unlock it; otherwise
we'll continue on to _didLoadPDFDocument as previously.

(-[WKPDFView web_setMinimumSize:]):
Resize the password UI instead of the PDF pages if we have it.

(-[WKPDFView _computePageAndDocumentFrames]):
Don't bother doing any work revalidating PDF pages if the document is locked.

(-[WKPDFView _updatePasswordEntryField]):
Make sure that the UIDocumentPassword view is always the size of the scrollview.
This takes care of rotation.

(-[WKPDFView _keyboardDidShow:]):
Make sure that we scroll the password field around, if necessary, to keep it
on screen when editing begins.

(-[WKPDFView _showPasswordEntryField]):
(-[WKPDFView _hidePasswordEntryField]):
Adjust the background color (to match the UIDocumentPasswordView) and disable zooming
while it's up. The UIDocumentPassword view is installed into the scroll view
to match UIWebView behavior.

(-[WKPDFView userDidEnterPassword:forPasswordView:]):
(-[WKPDFView didBeginEditingPassword:inView:]):
(-[WKPDFView didEndEditingPassword:inView:]):
(-[WKPDFView _didFailToUnlock]):
Pop up a dialog informing the user that they entered the wrong password.

(-[WKPDFView _tryToUnlockWithPassword:]):
Try to unlock the document. If it succeeds, hide the unlock UI and go back to
_didLoadPDFDocument.

  • English.lproj/Localizable.strings:

Add some localizable strings.

16:51 Changeset [183292] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Fix iOS EWS builds after updating to iOS 8.3 SDK

  • platform/spi/cocoa/CoreTextSPI.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::updateCachedSystemFontDescription):

  • Update IPHONE_OS_VERSION_MIN_REQUIRED for these constants.
16:29 Changeset [183291] by benjamin@webkit.org
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] When inserting a NaN into a Int32 array, we convert it to DoubleArray then to ContiguousArray
https://bugs.webkit.org/show_bug.cgi?id=144169

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-04-24
Reviewed by Geoffrey Garen.

  • runtime/JSObject.cpp:

(JSC::JSObject::convertInt32ForValue):
DoubleArray do not store NaN, they are used for holes.
What happened was:
1) We fail to insert the NaN in the Int32 array because it is a double.
2) We were converting the array to DoubleArray.
3) We were trying to insert the value again. We would fail again because

DoubleArray does not store NaN.

4) We would convert the DoubleArrayt to Contiguous Array, converting the values

to boxed values.

  • tests/stress/int32array-transition-on-nan.js: Added.

The behavior is not really observable. This only test nothing crashes in those
cases.

(insertNaNWhileFilling):
(testInsertNaNWhileFilling):
(insertNaNAfterFilling):
(testInsertNaNAfterFilling):
(pushNaNWhileFilling):
(testPushNaNWhileFilling):

16:11 Changeset [183290] by beidson@apple.com
  • 2 edits
    2 adds in trunk/LayoutTests

Handling additional review feedback after http://trac.webkit.org/changeset/183280
https://bugs.webkit.org/show_bug.cgi?id=144157.

Suggested by, implicitly reviewed by, and explicitly rubber-stamped by Alexey Proskuryakov.

  • http/tests/security/cors-post-redirect-303-expected.txt: Added.
  • http/tests/security/cors-post-redirect-303.html: Added.
  • http/tests/security/resources/cors-post-redirect-target.php:
16:04 Changeset [183289] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix; add declarations to AVKitSPI.h

  • platform/spi/cocoa/AVKitSPI.h:
16:02 Changeset [183288] by ggaren@apple.com
  • 31 edits
    1 delete in trunk

It shouldn't take 1846 lines of code and 5 FIXMEs to sort an array.
https://bugs.webkit.org/show_bug.cgi?id=144013

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch implements Array.prototype.sort in JavaScript, removing the
C++ implementations. It is simpler and less error-prone to express our
operations in JavaScript, which provides memory safety, exception safety,
and recursion safety.

The performance result is mixed, but net positive in my opinion. It's
difficult to enumerate all the results, since we used to have so many
different sorting modes, and there are lots of different data patterns
across which you might want to measure sorting. Suffice it to say:

(*) The benchmarks we track are faster or unchanged.

(*) Sorting random input using a comparator -- which we think is
common -- is 3X faster.

(*) Sorting random input in a non-array object -- which jQuery does
-- is 4X faster.

(*) Sorting random input in a compact array of integers using a
trivial pattern-matchable comparator is 2X *slower*.

  • builtins/Array.prototype.js:

(sort.min):
(sort.stringComparator):
(sort.compactSparse): Special case compaction for sparse arrays because
we don't want to hang when sorting new Array(BIG).

(sort.compact):
(sort.merge):
(sort.mergeSort): Use merge sort because it's a reasonably efficient
stable sort. We have evidence that some sites depend on stable sort,
even though the ES6 spec does not mandate it. (See
<http://trac.webkit.org/changeset/33967>.)

This is a textbook implementation of merge sort with three optimizations:

(1) Use iteration instead of recursion;

(2) Use array subscripting instead of array copying in order to
create logical sub-lists without creating physical sub-lists;

(3) Swap src and dst at each iteration instead of copying src into
dst, and only copy src into the subject array at the end if src is
not the subject array.

(sort.inflate):
(sort.comparatorSort):
(sort): Sort in JavaScript for the win.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutableInternal): Allow non-private
names so we can use helper functions.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::isNumericCompareFunction): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::setIsNumericCompareFunction): Deleted.
(JSC::UnlinkedCodeBlock::isNumericCompareFunction): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::setIsNumericCompareFunction): Deleted.

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

(JSC::FunctionNode::emitBytecode): We don't do this special casing based
on pattern matching anymore. This was mainly an optimization to avoid
the overhead of calling from C++ to JS, which we now avoid by
sorting in JS.

  • heap/Heap.cpp:

(JSC::Heap::markRoots):
(JSC::Heap::pushTempSortVector): Deleted.
(JSC::Heap::popTempSortVector): Deleted.
(JSC::Heap::visitTempSortVectors): Deleted.

  • heap/Heap.h: We don't have temp sort vectors anymore because we sort

in JavaScript using a normal JavaScript array for our temporary storage.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner): Allow capturing so we can use
helper functions.

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction): Deleted.
(JSC::attemptFastSort): Deleted.
(JSC::performSlowSort): Deleted.
(JSC::arrayProtoFuncSort): Deleted.

  • runtime/CommonIdentifiers.h: New strings used by sort.
  • runtime/JSArray.cpp:

(JSC::compareNumbersForQSortWithInt32): Deleted.
(JSC::compareNumbersForQSortWithDouble): Deleted.
(JSC::compareNumbersForQSort): Deleted.
(JSC::compareByStringPairForQSort): Deleted.
(JSC::JSArray::sortNumericVector): Deleted.
(JSC::JSArray::sortNumeric): Deleted.
(JSC::ContiguousTypeAccessor::getAsValue): Deleted.
(JSC::ContiguousTypeAccessor::setWithValue): Deleted.
(JSC::ContiguousTypeAccessor::replaceDataReference): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::getAsValue): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::setWithValue): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::replaceDataReference): Deleted.
(JSC::JSArray::sortCompactedVector): Deleted.
(JSC::JSArray::sort): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_less): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_less): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_greater): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_greater): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_balance_factor): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_balance_factor): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_key_key): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_key_node): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_node_node): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::null): Deleted.
(JSC::JSArray::sortVector): Deleted.
(JSC::JSArray::compactForSorting): Deleted.

  • runtime/JSArray.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation): Provide some builtins used
by sort.

Source/WTF:

Remove this custom tree implementation because it is unused. (It was
previously used to achieve a stable array sort in certain cases.)

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

LayoutTests:

  • js/script-tests/array-holes.js:
  • js/array-holes-expected.txt: This result now matches Firefox. We see

'peekaboo', which is a prototype property, rather than a hole, because
sorting uses Get?, which sees prototype properties.

The ES6 spec says that sorting should use Get?, so this new result
matches the spec a little better -- although the spec also says that the
result of sorting is undefined in this case because of the presence of
an indexed property in the prototype chain.

  • js/dom/array-prototype-properties-expected.txt: Updated error message

to match other array prototype error messages.

  • js/comparefn-sort-stability-expected.txt:
  • js/script-tests/comparefn-sort-stability.js: Made this test bigger in

order to demonstrate that Firefox and Safari use a stable sort, and
Chrome does not.

  • js/script-tests/array-sort-sparse.js:
  • js/array-sort-sparse-expected.txt: Added some tests for things I got

wrong in this patch.

15:31 Changeset [183287] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Unreviewed follow-up. Added a notifyDone, so that the watchdog timer actually works.

  • fast/frames/flattening/resources/iframe-to-resize.html:
15:22 Changeset [183286] by enrica@apple.com
  • 6 edits in trunk/Source/WebCore

Make rangeExpandedAroundPositionByCharacters to all platforms.
https://bugs.webkit.org/show_bug.cgi?id=144161

Reviewed by Tim Horton.

No change in functionality, simply making this available
to all platforms.

  • editing/VisibleUnits.cpp:

(WebCore::rangeExpandedAroundPositionByCharacters):

  • editing/VisibleUnits.h:
  • editing/mac/DataDetection.mm:
  • editing/mac/DictionaryLookup.h:
  • editing/mac/DictionaryLookup.mm:

(WebCore::rangeExpandedAroundPositionByCharacters): Deleted.

15:05 Changeset [183285] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Purge PassRefPtr from NamedNodeMap.
<https://webkit.org/b/144091>

Reviewed by Antti Koivisto.

Use RefPtr instead of PassRefPtr in NamedNodeMap.

  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::getNamedItem):
(WebCore::NamedNodeMap::getNamedItemNS):
(WebCore::NamedNodeMap::removeNamedItem):
(WebCore::NamedNodeMap::removeNamedItemNS):
(WebCore::NamedNodeMap::setNamedItem):
(WebCore::NamedNodeMap::setNamedItemNS):
(WebCore::NamedNodeMap::item):

  • dom/NamedNodeMap.h:
15:01 Changeset [183284] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.3

New tag.

15:00 Changeset [183283] by commit-queue@webkit.org
  • 73 edits
    11 deletes in trunk

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

Broke 32-bit build and a test. (Requested by ap on #webkit).

Reverted changeset:

"AX: richer text change notifications (142719)"
https://bugs.webkit.org/show_bug.cgi?id=142719
http://trac.webkit.org/changeset/183266

14:53 Changeset [183282] by bfulgham@apple.com
  • 6 edits in trunk

REGRESSION: WebKit2.ActionMenusTest API test fails
https://bugs.webkit.org/show_bug.cgi?id=144149
<rdar://problem/20677770>

Reviewed by Tim Horton.

Source/WebKit2:

Tested by TestWebKitAPI

The 'lookupTextAtLocation' method was not converting the NSEvent coordinates it
was receiving from root view to the plugin view. Consequently, full page PDFs
did hit testing correctly, but an <embed> PDF would not.

Since 'existingSelectionContainsPoint' is exposed as API, I also modified it to
expect 'root view' coordinates and perform the requisite conversions, rather
than expecting 'plugin view' coordinates.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::existingSelectionContainsPoint): Expect 'root view' coordinates
for the input.
(WebKit::PDFPlugin::lookupTextAtLocation): Properly convert the passed 'root view'
coordinates to the PDF's view coordinate space.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation): Pass hit point using view coordinates,
not content coordinates.

Tools:

  • TestWebKitAPI/Tests/WebKit2/action-menu-targets.html: Revise to use the same test PDF

as the 'ActionMenusPDFTest'.

  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenus.mm:

(TestWebKitAPI::TEST): Unskip the PDF portion of ActionMenusTest, and revise its expected output
to match the hit test on the 'action-menu-target.pdf' test file.

14:39 Changeset [183281] by dbates@webkit.org
  • 2 edits in trunk/Tools

Cleanup: Use @memoized for property IOSSimulator.testing_device
https://bugs.webkit.org/show_bug.cgi?id=141715

Reviewed by Darin Adler.

Simplify the caching of the result of IOSSimulator.testing_device
and make the code more readable by making use of the @memoized declarator
instead of explicitly managing a private instance variable,
IOSSimulator._testing_device, for the cached result.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.determine_full_port_name):
(IOSSimulatorPort.init): Delete instance variable IOSSimulatorPort._testing_device.
(IOSSimulatorPort):
(IOSSimulatorPort.testing_device): No need to cache the created device object in
IOSSimulatorPort._testing_device since we are marking this function @memoized.
(IOSSimulatorPort.reset_preferences): Code style fix; inline self.testing_device.path instead
of caching in local variable since we only make use of this value exactly once in this function.
(IOSPort.init): Deleted; The instance variable IOSPort._testing_device has never
been used since being added in r178622. So, we can remove this constructor since
it's the trivial constructor once we remove the instance variable IOSPort._testing_device.

14:09 Changeset [183280] by beidson@apple.com
  • 4 edits
    9 adds in trunk

Origin header is preserved on cross-origin redirects.
https://bugs.webkit.org/show_bug.cgi?id=144157.

Reviewed by Sam Weinig.

Source/WebCore:

Tests: http/tests/security/cors-post-redirect-301.html

http/tests/security/cors-post-redirect-302.html
http/tests/security/cors-post-redirect-307.html
http/tests/security/cors-post-redirect-308.html

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::willSendRequest): Always clear any origin header for cross-origin redirects.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::willSendRequest): Ditto.

LayoutTests:

  • http/tests/security/cors-post-redirect-301-expected.txt: Added.
  • http/tests/security/cors-post-redirect-301.html: Added.
  • http/tests/security/cors-post-redirect-302-expected.txt: Added.
  • http/tests/security/cors-post-redirect-302.html: Added.
  • http/tests/security/cors-post-redirect-307-expected.txt: Added.
  • http/tests/security/cors-post-redirect-307.html: Added.
  • http/tests/security/cors-post-redirect-308-expected.txt: Added.
  • http/tests/security/cors-post-redirect-308.html: Added.
  • http/tests/security/resources/cors-post-redirect-target.php: Added.
13:55 Changeset [183279] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Address a review comment from Joe Pecoraro.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.h:
13:48 Changeset [183278] by andersca@apple.com
  • 10 edits in trunk

Rename -[WKWebsiteDataStore isNonPersistent] to -[WKWebsiteDataStore isPersistent]
https://bugs.webkit.org/show_bug.cgi?id=144158

Reviewed by Beth Dakin.

Source/WebKit2:

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::isPersistent):
(API::WebsiteDataStore::isNonPersistent): Deleted.

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

(-[WKWebsiteDataStore isPersistent]):
(-[WKWebsiteDataStore isNonPersistent]): Deleted.

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

(-[_WKWebsiteDataStore isNonPersistent]):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController initWithConfiguration:]):

12:33 Changeset [183277] by bfulgham@apple.com
  • 15 edits in trunk/Source

Immediate action not functional for embedded PDFs
https://bugs.webkit.org/show_bug.cgi?id=143952
<rdar://problem/19842365>

Reviewed by Tim Horton.

Source/WebCore:

Add a dictionary lookup method to allow us to retrieve
relevant information for PDFs.

  • editing/mac/DictionaryLookup.mm:

(WebCore::dictionaryLookupForPDFSelection): Updated to properly handle cases
where the Lookup engine selects a smaller range than the initial automatic
selection performed on clicking.

Source/WebKit2:

Add a new method to retrieve appropriate dictionary lookup content and update the
hit test result with relevant dictionary content and the bounding rect of the
selection.

  • WebProcess/Plugins/Netscape/NetscapePlugin.h: Add stub.
  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp: Initialize plugin type.
  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::rectInWindowSpaceForRectInLayoutSpace): New helper function to
convert PDF 'in page' units to the equivalent view units.
(WebKit::PDFPlugin::PDFPlugin): Initialize plugin type.
(WebKit::PDFPlugin::viewRectForSelection): Query a provided PDFSelection for
its bounding rect and return the result in view units.

  • WebProcess/Plugins/Plugin.h:
  • WebProcess/Plugins/PluginProxy.cpp: Initialize plugin type.
  • WebProcess/Plugins/PluginProxy.h: Add stub.
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::viewRectForSelection): Added.

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::dictionaryPopupInfoForPDFSelectionInPluginView): Added.
(WebKit::textIndicatorTransitionForActionMenu): Added helper function.
(WebKit::WebPage::performActionMenuHitTestAtLocation): Update the hit test information
with relevant dictionary lookup content, and mark the result as a text node (if
appropriate).

12:15 Changeset [183276] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2] Only issue a isPlayingAudioDidChange() notification if the audio playing state actually changed.
https://bugs.webkit.org/show_bug.cgi?id=144153

Reviewed by Alexey Proskuryakov.

Check the old state vs. the new state and only issue the change notification if the IsPlayingAudio state changed.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingMediaDidChange):

12:08 Changeset [183275] by mmirman@apple.com
  • 3 edits
    3 adds in trunk

Source/JavaScriptCore:
Made Object.prototype.proto native getter and setter check that this object not null or undefined
https://bugs.webkit.org/show_bug.cgi?id=141865
rdar://problem/19927273

Reviewed by Filip Pizlo.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoGetter):
(JSC::globalFuncProtoSetter):

LayoutTests:
Added tests to ensure that Object.prototype.proto native getter and setter do not coerce undefined to this
https://bugs.webkit.org/show_bug.cgi?id=141865
rdar://problem/19927273

Reviewed by Filip Pizlo.

  • js/script-tests/sloppy-getter-setter-global-object.js: Added.
  • js/sloppy-getter-setter-global-object-expected.txt: Added.
  • js/sloppy-getter-setter-global-object.html: Added.
12:01 Changeset [183274] by simon.fraser@apple.com
  • 5 edits in trunk/Source/WebCore

Make it possible to map a secondary quad through TransformState
https://bugs.webkit.org/show_bug.cgi?id=144156

Reviewed by Dean Jackson.

A future patch will need to map two quads simultaneously through TransformState,
so add the ability to provide an optional secondary quad.

This patch also firms up the setQuad() contract, fixing webkit.org/b/106680,
requiring the state to be flattened when setting the quad (and now, the secondary quad).
Previously, setQuad implicitly flattened but failed to update m_mapPoint when
doing so.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::computeVisibleRect): Now we have to explicitly flatten
before setting the quad.

  • platform/graphics/ca/GraphicsLayerCA.h: Drive-up #include removal.
  • platform/graphics/transforms/TransformState.cpp:

(WebCore::TransformState::operator=): Copy the secondary quad if we have one.
(WebCore::TransformState::translateMappedCoordinates): Move the secondary quad
if we have one.
(WebCore::TransformState::mappedQuad): Code factored into mapQuad().
(WebCore::TransformState::mappedSecondaryQuad): Return the secondary quad mapped
into the state's current coordinate space.
(WebCore::TransformState::mapQuad): Factored code.

  • platform/graphics/transforms/TransformState.h:

(WebCore::TransformState::setQuad): Make the contract more explicit with assertions.
(WebCore::TransformState::setSecondaryQuad): Ditto when setting the secondary quad.
(WebCore::TransformState::lastPlanarSecondaryQuad):
(WebCore::TransformState::lastPlanarQuad): Deleted.

11:57 Changeset [183273] by antti@apple.com
  • 3 edits in trunk/Source/WebKit2

CrashTracer: [USER] com.apple.WebKit.Networking at com.apple.WebKit: WebKit::NetworkResourceLoader::~NetworkResourceLoader + 14
https://bugs.webkit.org/show_bug.cgi?id=144147

Reviewed by Chris Dumez.

Storage::storeBodyAsBlob copies the std::function callback for handling mapped bodies in a thread.
This is thread safe only if the function copy is thread safe. It is currently not as we are capturing
RefPtr<NetworkResourceLoader> and NetworkResourceLoader doesn't use thread safe refcounting.

Fix by avoiding copying of the callback. Use same apporach for WriteOperation as we already use for
ReadOperation: count the active operations in progress and delete WriteOperation when everything is
finished. This way we don't need to copy the function out from WriteOperation.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation):
(WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):

Move definition here from the header.

(WebKit::NetworkCache::Storage::~Storage):
(WebKit::NetworkCache::Storage::storeBodyAsBlob):

Increment the operation count when storing a blob, call finishWriteOperation when done.

(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::finishReadOperation):

Count active operations instead of finished operations. This makes the code clearer.

(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::finishWriteOperation):

Mirror the way ReadOperations work.

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation): Deleted.

11:55 Changeset [183272] by ap@apple.com
  • 3 edits in trunk/LayoutTests

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Reviewed by Anders Carlsson.

Cleaned the test up a little, and added logging to collect some information about
why it fails.

  • fast/frames/flattening/iframe-flattening-resize-event-count.html:
  • fast/frames/flattening/resources/iframe-to-resize.html:
11:45 Changeset [183271] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

[iOS] Reimplement r182512 and r183153 in a cleaner way
https://bugs.webkit.org/show_bug.cgi?id=144151

Reviewed by Enrica Casucci.

On iOS, we create FontPlatformData's ctFont() by round tripping it through a CGFontRef.
This causes the resultant ctFont() to lose system-font-ness. Patches r182512 and r183153
react to this fact by making users of a FontPlatformData use the original font passed in
to the FontPlatformData instead of the FontPlatformData's ctFont(), but only if we
detect that the FontPlatformData represents a system font (the underlying APIs have
different behavior for system fonts and non-system-fonts).

However, on OS X, we create a FontPlatformData's ctFont() directly from the original
font passed in to the constructor. This preserves system-font-ness (because it no
longer has the CGFontRef in the middle of the transformation). Therefore, OS X has the
correct behavior regarding system fonts.

The difference between the two ctFont() creation codepaths seems to be historical
rather than intentional. Rather than change all the call sites of ctFont() to use a
different platform font object if a system font is detected, a cleaner solution is to
simply unify the two ctFont() creation codepaths to the version which preserves system-
font-ness. Doing this will make all users of FontPlatformData automatically have the
correct behavior with no updates.

This patch reverts the relevant parts of r182512 and r183153 in favor of this new
solution.

No new tests because there is no behavior change.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::hashTableDeletedFontValue): Deleted.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformWidthForGlyph):

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::ctFontSize):
(WebCore::FontPlatformData::ctFont):

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::getCFStringAttributes):

11:26 Changeset [183270] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::FontPlatformData):

11:12 Changeset [183269] by mmaxfield@apple.com
  • 11 edits in trunk/Source

[Cocoa] Start cleaning up FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=144133

Reviewed by Enrica Casucci.

Source/WebCore:

This is the start of a crusade to ultimately remove one of the CTFontRefs which we have inside
FontPlatformData. This patch starts this effort out by removing the FontPlatformData
constructor which accepts an NSFont. This constructor simply casts the NSFont to a CTFontRef,
and forwards to another constructor. This patch moves this cast to callers of this constructor,
thereby enumerating the places we have left that use NSFont with FontPlatformData.

This patch also cleans up two of the constructors in FontPlatformData.cpp to forward on to
a common constructor.

This patch also collects places inside FontPlatformDataCocoa.mm where we check if a pointer is
not 0 and not -1, and puts this common code inside a new function,
FontPlatformData::isValidCTFontRef().

No new tests because there is no behavior change.

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData): Coalesce constructors.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::isValidCTFontRef): Check if a pointer is not 0 and not -1.
(WebCore::FontPlatformData::hashTableDeletedFontValue): Deleted.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformCreateScaledFont): Receive cast which has been hoisted from the deleted
FontPlatformData constructor.
(WebCore::Font::compositeFontReferenceFont): Ditto.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::~FontPlatformData): Use isValidCTFontRef().
(WebCore::FontPlatformData::platformDataInit): Ditto.
(WebCore::FontPlatformData::platformDataAssign): Ditto.
(WebCore::FontPlatformData::platformIsEqual): Simplify preprocessor macros.
(WebCore::FontPlatformData::allowsLigatures): Remove unnecessary NSFont use.
(WebCore::FontPlatformData::FontPlatformData): Deleted.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Remove unnecessary
NSFont use.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::systemFallbackForCharacters): Receive cast which has been hoisted from the
deleted FontPlatformData constructor.
(WebCore::FontCache::createFontPlatformData): Ditto.

  • platform/mac/DragImageMac.mm:

(WebCore::fontFromNSFont): Ditto.
(WebCore::widthWithFont): Ditto.
(WebCore::drawAtPoint): Ditto.

Source/WebKit/mac:

Receive casts which have been hoisted from the deleted FontPlatformData constructor.

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]): Receive cast which has
been hoisted from the deleted FontPlatformData constructor.
(-[NSString _web_widthWithFont:]): Ditto.

  • Misc/WebStringTruncator.mm:

(fontFromNSFont): Ditto.

11:02 Changeset [183268] by timothy@apple.com
  • 4 edits in trunk/Source

REGRESSION: Web Inspector: Start Timeline Recording in Develop menu broken
https://bugs.webkit.org/show_bug.cgi?id=144150

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setTimelineProfilingEnabled): Change !== to === when
checking enabled to isCapturing().

Source/WebKit2:

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::evaluateCommandOnLoad): Properly treat bools as literals
instead of strings by not using the string version of evaluateCommandOnLoad.

10:26 Changeset [183267] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Add headerdocs for WKWebsiteDataRecord and WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=144138

Reviewed by Darin Adler.

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

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

09:49 Changeset [183266] by commit-queue@webkit.org
  • 73 edits
    3 copies
    8 adds in trunk

AX: richer text change notifications (142719)
https://bugs.webkit.org/show_bug.cgi?id=142719

Patch by Doug Russell <d_russell@apple.com> on 2015-04-24
Reviewed by Darin Adler.

Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes.

Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields.

Source/WebCore:

Tests: platform/mac/accessibility/input-replacevalue-userinfo.html

platform/mac/accessibility/selection-change-userinfo.html
platform/mac/accessibility/value-change-userinfo.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::passwordNotificationPostTimerFired):
(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::setTextSelectionIntent):
(WebCore::isPasswordFieldOrContainedByPasswordField):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):
(WebCore::AXObjectCache::enqueuePasswordValueChangeNotification):
(WebCore::AXObjectCache::rootWebArea):
(WebCore::AXObjectCache::selectedChildrenChanged): Deleted.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::textChangeForEditType):
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
(WebCore::AXObjectCache::computedObjectAttributeCache): Deleted.
(WebCore::AXObjectCache::getOrCreate): Deleted.
(WebCore::AXObjectCache::attachWrapper): Deleted.

  • accessibility/AXTextStateChangeIntent.h: Added.

(WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::passwordFieldOrContainingPasswordField):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isContainedByPasswordField):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField):
(WebCore::AccessibilityObject::isPasswordField): Deleted.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):

  • accessibility/AccessibilityScrollView.h:
  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::textChangeForEditType):
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
(WebCore::AXObjectCache::postPlatformNotification): Deleted.

  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::setShouldRepostNotificationsForTests):
(WebCore::AXPostNotificationWithUserInfo):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::textReplacementChangeDictionary):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(+[WebAccessibilityObjectWrapperBase accessibilitySetShouldRepostNotifications:]):
(-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:]):
(arrayRemovingNonJSONTypes):
(dictionaryRemovingNonJSONTypes):
(-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:userInfo:]):

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

(textMarkerRangeFromVisiblePositions):
(-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):

  • editing/AppendNodeCommand.cpp:

(WebCore::AppendNodeCommand::AppendNodeCommand):
(WebCore::sendAXTextChangedIgnoringLineBreaks):
(WebCore::AppendNodeCommand::doApply):
(WebCore::AppendNodeCommand::doUnapply):

  • editing/AppendNodeCommand.h:

(WebCore::AppendNodeCommand::create):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::ApplyStyleCommand):
(WebCore::ApplyStyleCommand::applyBlockStyle): Deleted.

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

(WebCore::EditCommandComposition::unapplyEditType):
(WebCore::CompositeEditCommand::CompositeEditCommand):
(WebCore::CompositeEditCommand::apply):
(WebCore::CompositeEditCommand::insertParagraphSeparator):
(WebCore::CompositeEditCommand::insertNodeBefore):
(WebCore::CompositeEditCommand::appendNode):
(WebCore::CompositeEditCommand::removeNodePreservingChildren):
(WebCore::CompositeEditCommand::insertTextIntoNode):
(WebCore::CompositeEditCommand::deleteTextFromNode):
(WebCore::CompositeEditCommand::replaceTextInNode):
(WebCore::CompositeEditCommand::moveParagraphs):
(WebCore::EditCommandComposition::getNodesInCommand): Deleted.
(WebCore::CompositeEditCommand::applyStyle): Deleted.
(WebCore::CompositeEditCommand::insertLineBreak): Deleted.
(WebCore::CompositeEditCommand::insertNodeAt): Deleted.
(WebCore::CompositeEditCommand::removeChildrenInRange): Deleted.
(WebCore::CompositeEditCommand::inputText): Deleted.

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

(WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand):
(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):

  • editing/DeleteFromTextNodeCommand.h:

(WebCore::DeleteFromTextNodeCommand::create):
(WebCore::DeleteFromTextNodeCommand::deletedText):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::DeleteSelectionCommand):
(WebCore::DeleteSelectionCommand::preservesTypingStyle): Deleted.

  • editing/DeleteSelectionCommand.h:

(WebCore::DeleteSelectionCommand::create):

  • editing/DictationCommand.cpp:

(WebCore::DictationCommand::insertTextRunWithoutNewlines):
(WebCore::DictationCommand::insertParagraphSeparator):

  • editing/EditAction.h:
  • editing/EditCommand.cpp:

(WebCore::EditCommand::EditCommand):
(WebCore::EditCommand::editingAction):
(WebCore::EditCommand::applyEditType):
(WebCore::EditCommand::unapplyEditType):
(WebCore::SimpleEditCommand::SimpleEditCommand):
(WebCore::SimpleEditCommand::notifyAccessibilityForTextChange):
(WebCore::EditCommand::setParent): Deleted.

  • editing/EditCommand.h:
  • editing/EditingAllInOne.cpp:
  • editing/Editor.cpp:

(WebCore::Editor::handleTextEvent):
(WebCore::Editor::deleteSelectionWithSmartDelete):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::replaceSelectionWithText):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::changeBackToReplacedString):
(WebCore::Editor::transpose):
(WebCore::Editor::changeSelectionAfterCommand):

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

(WebCore::executeInsertFragment):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::moveTo):
(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelectionByMouseIfDifferent):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::isBoundary):
(WebCore::FrameSelection::textSelectionIntent):
(WebCore::FrameSelection::modify):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::wordSelectionContainingCaretSelection):
(WebCore::FrameSelection::modifyMovingBackward): Deleted.
(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Deleted.
(WebCore::FrameSelection::selectionAtWordStart): Deleted.

  • editing/FrameSelection.h:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
(WebCore::FrameSelection::selection): Deleted.

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):

  • editing/InsertIntoTextNodeCommand.h:

(WebCore::InsertIntoTextNodeCommand::create):
(WebCore::InsertIntoTextNodeCommand::insertedText):

  • editing/InsertNodeBeforeCommand.cpp:

(WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand):
(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):

  • editing/InsertNodeBeforeCommand.h:

(WebCore::InsertNodeBeforeCommand::create):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand):

  • editing/InsertParagraphSeparatorCommand.h:

(WebCore::InsertParagraphSeparatorCommand::create):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::InsertTextCommand):

  • editing/InsertTextCommand.h:

(WebCore::InsertTextCommand::create):
(WebCore::InsertTextCommand::createWithMarkerSupplier):

  • editing/MoveSelectionCommand.cpp:

(WebCore::MoveSelectionCommand::doApply):

  • editing/RemoveNodePreservingChildrenCommand.cpp:

(WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):

  • editing/RemoveNodePreservingChildrenCommand.h:

(WebCore::RemoveNodePreservingChildrenCommand::create):

  • editing/ReplaceDeleteFromTextNodeCommand.cpp: Copied from Source/WebCore/editing/AppendNodeCommand.h.

(WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand):
(WebCore::ReplaceDeleteFromTextNodeCommand::notifyAccessibilityForTextChange):

  • editing/ReplaceDeleteFromTextNodeCommand.h: Copied from Source/WebCore/editing/AppendNodeCommand.h.
  • editing/ReplaceInsertIntoTextNodeCommand.cpp: Added.

(WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand):
(WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange):

  • editing/ReplaceInsertIntoTextNodeCommand.h: Copied from Source/WebCore/editing/RemoveNodePreservingChildrenCommand.h.
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
(WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Deleted.
(WebCore::ReplaceSelectionCommand::insertAsListItems): Deleted.

  • editing/ReplaceSelectionCommand.h:

(WebCore::ReplaceSelectionCommand::create):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::insertTextRunWithoutNewlines):
(WebCore::TypingCommand::insertParagraphSeparator):

  • editing/atk/FrameSelectionAtk.cpp:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

  • editing/ios/DictationCommandIOS.cpp:

(WebCore::DictationCommandIOS::DictationCommandIOS):

  • editing/ios/DictationCommandIOS.h:
  • editing/mac/FrameSelectionMac.mm:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setInnerTextValue):

  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag):

  • page/EventHandler.cpp:

(WebCore::setInitialKeyboardSelection):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):

Source/WebKit/mac:

  • WebCoreSupport/WebEditorClient.mm:

(undoNameForEditAction):

Source/WebKit2:

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::nameForEditAction):

Tools:

  • DumpRenderTree/mac/AccessibilityNotificationHandler.h:
  • DumpRenderTree/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler stopObserving]):
(-[AccessibilityNotificationHandler _notificationReceived:]):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::removeNotificationListener):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler _notificationReceived:]):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::removeNotificationListener):

LayoutTests:

  • platform/mac/accessibility/input-replacevalue-userinfo-expected.txt: Added.
  • platform/mac/accessibility/input-replacevalue-userinfo.html: Added.
  • platform/mac/accessibility/selection-change-userinfo-expected.txt: Added.
  • platform/mac/accessibility/selection-change-userinfo.html: Added.
  • platform/mac/accessibility/value-change-userinfo-expected.txt: Added.
  • platform/mac/accessibility/value-change-userinfo.html: Added.
09:38 Changeset [183265] by darin@apple.com
  • 56 edits
    6 deletes in trunk

Convert OwnPtr and PassOwnPtr uses to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128007

Reviewed by Anders Carlsson.

Source/WebCore:

  • PlatformEfl.cmake: Removed OwnPtrCairo source files.
  • PlatformGTK.cmake: Ditto.
  • PlatformWinCairo.cmake: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • platform/CrossThreadCopier.cpp: Removed OwnPtr specialization.
  • platform/CrossThreadCopier.h: Ditto.
  • platform/ScrollAnimatorNone.cpp: Removed unneeded include.
  • platform/ThreadGlobalData.cpp: Ditto.
  • platform/ThreadGlobalData.h: Ditto.
  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h: Ditto.
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::processNotification): Use unique_ptr.
(WebCore::AVFWrapper::notificationCallback): Use make_unique.
(WebCore::AVFWrapper::platformLayer): Ditto.

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::appendPathToCairoContext): Use cairo_path_destroy directly
instead of a smart pointer; the code path is simple enough that it is
clear this way.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::ImageBuffer): Use make_unique.

  • platform/graphics/cairo/ImageBufferDataCairo.h: Use unique_ptr.
  • platform/graphics/cairo/OwnPtrCairo.cpp: Removed.
  • platform/graphics/cairo/OwnPtrCairo.h: Removed.
  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::Path): Use cairo_path_destroy directly instead of a
smart pointer; the code path is simple enough that it is clear this way.
(WebCore::Path::operator=): Ditto.
(WebCore::Path::addPath): Ditto.
(WebCore::Path::apply): Ditto.

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::clipForPatternFilling): Ditto.

  • platform/graphics/freetype/FontCacheFreeType.cpp: Removed unneeded include.
  • platform/graphics/glx/GLContextGLX.cpp: Ditto.
  • platform/graphics/surfaces/egl/EGLSurface.cpp:

(WebCore::EGLOffScreenSurface::EGLOffScreenSurface): Use make_unique.

  • platform/graphics/surfaces/glx/GLXConfigSelector.h:

(WebCore::GLXConfigSelector::findMatchingConfig): Use unique_ptr with X11Deleter.
(WebCore::GLXConfigSelector::findMatchingConfigWithVisualId): Ditto.

  • platform/graphics/surfaces/glx/GLXSurface.cpp:

(WebCore::GLXTransportSurface::GLXTransportSurface): Ditto.
(WebCore::GLXOffScreenSurface::initialize): Ditto.

  • platform/graphics/surfaces/glx/OwnPtrX11.h: Removed.
  • platform/graphics/surfaces/glx/X11Helper.cpp:

(WebCore::X11Helper::createOffScreenWindow): Use unique_ptr with X11Deleter.
(WebCore::X11Helper::createPixmap): Ditto.

  • platform/graphics/surfaces/glx/X11Helper.h: Added X11Deleter,

which can be used with unique_ptr to make it call XFree instead of delete.

  • platform/graphics/win/FullScreenController.cpp: Use unique_ptr.

(FullScreenController::FullScreenController): Use make_unique.
(FullScreenController::enterFullScreen): Ditto.

  • platform/graphics/win/FullScreenController.h: Use unique_ptr.
  • platform/graphics/win/GraphicsContext3DWin.cpp: Removed unneeded includes.
  • platform/graphics/win/WKCAImageQueue.cpp:

(WebCore::WKCAImageQueue::WKCAImageQueue): Use make_unique.

  • platform/graphics/win/WKCAImageQueue.h: Use unique_ptr.
  • platform/network/NetworkStorageSessionStub.cpp: Removed unneeded include.
  • platform/network/ResourceHandleInternal.h: Use unique_ptr.
  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::create): Deleted.

  • platform/network/curl/MultipartHandle.h: Deleted the create function.
  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::headerCallback): Use make_unique.

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheEncoder.h: Added an include now

needed that was inherited from OwnPtr.h before.

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj: Removed OwnPtr source files.
  • WTF.vcxproj/WTF.vcxproj.filters: Ditto.
  • WTF.xcodeproj/project.pbxproj: Ditto.
  • wtf/CMakeLists.txt: Ditto.
  • wtf/Forward.h: Removed OwnPtr and PassOwnPtr.
  • wtf/HashTraits.h: Ditto.
  • wtf/OwnPtr.h: Removed.
  • wtf/OwnPtrCommon.h: Removed.
  • wtf/PassOwnPtr.h: Removed.
  • wtf/SizeLimits.cpp: Removed OwnPtr.
  • wtf/VectorTraits.h: Removed OwnPtr specialization.

Tools:

  • DumpRenderTree/win/HistoryDelegate.h: Removed unneeded include.
  • DumpRenderTree/win/UIDelegate.h: Ditto.
  • TestWebKitAPI/Tests/WTF/HashMap.cpp: Removed OwnPtr-specific test cases.
  • TestWebKitAPI/Tests/WTF/HashSet.cpp: Ditto.
  • TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp: Removed unneeded include.
  • TestWebKitAPI/Tests/WebKit2/UserMessage.cpp: Use unique_ptr.

(TestWebKitAPI::WebKit2UserMessageRoundTripTest::SetUp): Use make_unique.

  • TestWebKitAPI/Tests/WebKit2/WillLoad.cpp: Ditto.

(TestWebKitAPI::WebKit2WillLoadTest::SetUp): Ditto.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMDOMWindowTest.cpp:

(WebKitDOMDOMWindowTest::create): Ditto.

  • TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:

(documentLoadedCallback): Use a queue of DelayedSignal objects instead
of smart pointers to DelayedSIgnal objects.
(uriChangedCallback): Ditto.

08:44 Changeset [183264] by bfulgham@apple.com
  • 2 edits in trunk/Tools

[Mac] Unreviewed test fix.
https://bugs.webkit.org/show_bug.cgi?id=144149

  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenus.mm:

(TestWebKitAPI::TEST): Temporarily skip the PDF <embed>
test.

07:39 Changeset [183263] by antti@apple.com
  • 3 edits in trunk/Source/WebKit2

Network Cache: Make path functions members
https://bugs.webkit.org/show_bug.cgi?id=144146

Reviewed by Carlos Garcia Campos.

This simplifies the code.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::partitionPathForKey):
(WebKit::NetworkCache::Storage::recordPathForKey):
(WebKit::NetworkCache::Storage::bodyPathForKey):
(WebKit::NetworkCache::Storage::storeBodyAsBlob):
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::finishReadOperation):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::partitionPathForKey): Deleted.
(WebKit::NetworkCache::recordPathForKey): Deleted.
(WebKit::NetworkCache::bodyPathForKey): Deleted.

  • NetworkProcess/cache/NetworkCacheStorage.h:
04:42 Changeset [183262] by peavo@outlook.com
  • 4 edits in trunk/Source/WebCore

[Win] Popup menu is not accessible.
https://bugs.webkit.org/show_bug.cgi?id=141704

Reviewed by Brent Fulgham.

Get accessibility information for items in popup menus.

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::onGetObject):
(WebCore::PopupMenuWin::wndProc):
(WebCore::AccessiblePopupMenu::AccessiblePopupMenu):
(WebCore::AccessiblePopupMenu::~AccessiblePopupMenu):
(WebCore::AccessiblePopupMenu::QueryInterface):
(WebCore::AccessiblePopupMenu::AddRef):
(WebCore::AccessiblePopupMenu::Release):
(WebCore::AccessiblePopupMenu::GetTypeInfoCount):
(WebCore::AccessiblePopupMenu::GetTypeInfo):
(WebCore::AccessiblePopupMenu::GetIDsOfNames):
(WebCore::AccessiblePopupMenu::Invoke):
(WebCore::AccessiblePopupMenu::get_accParent):
(WebCore::AccessiblePopupMenu::get_accChildCount):
(WebCore::AccessiblePopupMenu::get_accChild):
(WebCore::AccessiblePopupMenu::get_accName):
(WebCore::AccessiblePopupMenu::get_accValue):
(WebCore::AccessiblePopupMenu::get_accDescription):
(WebCore::AccessiblePopupMenu::get_accRole):
(WebCore::AccessiblePopupMenu::get_accState):
(WebCore::AccessiblePopupMenu::get_accHelp):
(WebCore::AccessiblePopupMenu::get_accKeyboardShortcut):
(WebCore::AccessiblePopupMenu::get_accFocus):
(WebCore::AccessiblePopupMenu::get_accSelection):
(WebCore::AccessiblePopupMenu::get_accDefaultAction):
(WebCore::AccessiblePopupMenu::accSelect):
(WebCore::AccessiblePopupMenu::accLocation):
(WebCore::AccessiblePopupMenu::accNavigate):
(WebCore::AccessiblePopupMenu::accHitTest):
(WebCore::AccessiblePopupMenu::accDoDefaultAction):
(WebCore::AccessiblePopupMenu::put_accName):
(WebCore::AccessiblePopupMenu::put_accValue):
(WebCore::AccessiblePopupMenu::get_accHelpTopic):

  • platform/win/PopupMenuWin.h:
  • platform/win/ScrollbarThemeWin.h:

(WebCore::ScrollbarThemeWin::hasButtons): Deleted.

04:20 Changeset [183261] by antti@apple.com
  • 7 edits in trunk

Memory cache live resources repeatedly purged during painting
https://bugs.webkit.org/show_bug.cgi?id=144104
Source/WebCore:

<rdar://problem/20667695>

Reviewed by Chris Dumez.

On some PLT pages (like nytimes.com) we get into state where painting repeatedly purges live bitmaps.
This slows down page loads significantly.

This might have regressed because improvements in page caching keep more pages and so resources 'live'.

With this path we do all regular cache pruning asynchronously. If memory is really critical
the low memory handling code will still prune synchronously.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::removeClient):
(WebCore::CachedResource::didAccessDecodedData):

prune() -> pruneSoon()

  • loader/cache/MemoryCache.cpp:

Decrease the pruning size target from 0.95 to 0.8 so we don't need to prune so often.

(WebCore::MemoryCache::needsPruning):

Factor into a function.

(WebCore::MemoryCache::prune):
(WebCore::MemoryCache::pruneSoon):

Prune asynchronously.

  • loader/cache/MemoryCache.h:

LayoutTests:

Reviewed by Chris Dumez.

  • http/tests/cache/disk-cache/disk-cache-vary-cookie.html:

These clearMemoryCache calls are now done by cache-test.js.

  • http/tests/cache/disk-cache/resources/cache-test.js:

(loadResources):

Make sure to clear the memory cache explicitly in the beginning so we always hit the disk cache.

(runTests):

04:16 Changeset [183260] by antti@apple.com
  • 7 edits in trunk

Unreviewed, rolling out r183259.

Wrong ChangeLog.

Reverted changeset:

"Memory cache live resources repeatedly purged during
painting"
https://bugs.webkit.org/show_bug.cgi?id=144104
http://trac.webkit.org/changeset/183259

04:05 Changeset [183259] by antti@apple.com
  • 7 edits in trunk

Source/WebCore:
CrashTracer: WebProcess at com.apple.WebCore: WebCore::toScriptElementIfPossible + 4
https://bugs.webkit.org/show_bug.cgi?id=144050

Reviewed by Chris Dumez.

We are seeing null Element pointer crashes with this stack:

47 com.apple.WebCore: WebCore::toScriptElementIfPossible + 4 <==
47 com.apple.WebCore: WebCore::ScriptRunner::timerFired + 452
47 com.apple.WebCore: WebCore::ThreadTimers::sharedTimerFiredInternal + 175

The most likely cause seems to be that this code

ASSERT(m_pendingAsyncScripts.contains(scriptElement));
m_scriptsToExecuteSoon.append(m_pendingAsyncScripts.take(scriptElement));

in ScriptRunner::notifyScriptReady fails to find scriptElement and we are left with null entry in
m_scriptsToExecuteSoon. However I haven't managed to repro this or find the exact path how this
could happen. The related code is fragile with lot of state (especially in ScriptElement class)
and involves many opportunities for re-entry via scripts.

No repro, no test case.

  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::timerFired):

Paper this over by adding a null check. We could check m_pendingAsyncScripts.take() above
but this also covers possibility this is caused by something else.

LayoutTests:
Memory cache live resources repeatedly purged during painting
https://bugs.webkit.org/show_bug.cgi?id=144104

Reviewed by Chris Dumez.

  • http/tests/cache/disk-cache/disk-cache-vary-cookie.html:

These clearMemoryCache calls are now done by cache-test.js.

  • http/tests/cache/disk-cache/resources/cache-test.js:

(loadResources):

Make sure to clear the memory cache explicitly in the beginning so we always hit the disk cache.

(runTests):

03:21 Changeset [183258] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Remove incorrect assert after r183189.

In this case the assert was already there, but it's incorrect
because we are handling uninitialized attachments below in the
same function, and also when sending messages. So, if it's ok to
send uninitialized attachments, it's ok to receive them. This
didn't fail before r183189, because we were only invaliding the
attachments by setting the file descriptor to -1, and they were
handled as null attachments. After r183189, the move operator
resets the moved attachment leaving it uninitialized again.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):

00:41 Changeset [183257] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.29

New tag.

00:40 Changeset [183256] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

00:17 Changeset [183255] by carlosgc@webkit.org
  • 6 edits in trunk/Source

[SOUP] Use a webkit subdirectory for the disk cache
https://bugs.webkit.org/show_bug.cgi?id=144048

Reviewed by Martin Robinson.

Source/WebCore:

Add a static method to SoupNetworkSession to clear a soup cache
given its directory.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::strIsNumeric):
(WebCore::SoupNetworkSession::clearCache):

  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit2:

Recent versions of libsoup remove any file in cache dir not
referenced by the index when the cache is loaded to workaround
leaked resources when load/dump is unbalanced for whatever reason,
like a crash. We currently use $XDG_CACHE_HOME/app-name as default
disk cache directory, but that directory could be used by apps to
cache other things, and the soup cache might end up deleting other
stuff. The soup cache assumes the given directory is only for the
disk cache, so we should ensure that.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformInitializeNetworkProcess): Append
webkit to the given disk cache and clear the previous soup cache if it exists.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Ditto.

00:05 Changeset [183254] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Remove incorrect ASSERT added in r183176.

We allow to encode null attachments.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::Handle::releaseAttachment):

04/23/15:

23:45 Changeset [183253] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

23:42 Changeset [183252] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

23:36 Changeset [183251] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove a useless branch on DFGGraph::addShouldSpeculateMachineInt()
https://bugs.webkit.org/show_bug.cgi?id=144118

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-04-23
Reviewed by Geoffrey Garen.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addShouldSpeculateMachineInt):
Both block do the same thing.

23:30 Changeset [183250] by jer.noble@apple.com
  • 2 edits in trunk/Source/WTF

Disable HAVE_AVKIT on AppleTV
https://bugs.webkit.org/show_bug.cgi?id=144142

Reviewed by Dan Bernstein.

  • wtf/Platform.h:
22:56 Changeset [183249] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.28.2/Source/WebKit2

Merged r183245. rdar://problem/20680694

22:51 Changeset [183248] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.28.2/Source

Versioning.

22:47 Changeset [183247] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.28.2

New tag.

22:30 Changeset [183246] by mitz@apple.com
  • 1 edit in trunk/Source/WebKit2/ChangeLog

Added Radar information to Change Log entry

22:27 Changeset [183245] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed a bug where framework header postprocessing wasn’t removing WK_DEPRECATED macros when it should have.

Reviewed by Andy Estes.

  • mac/postprocess-framework-headers.sh:
21:55 Changeset [183244] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the iOS build after r183234.

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::commitScaleChange):

21:52 Changeset [183243] by simon.fraser@apple.com
  • 3 edits in trunk/Source/WebCore

Fix Windows build.

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

(PlatformCALayerWin::setBackingStoreAttached):
(PlatformCALayerWin::backingStoreAttached):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
21:36 Changeset [183242] by simon.fraser@apple.com
  • 16 edits in trunk/Source

Make it possible to detach GraphicsLayerCA backing store
https://bugs.webkit.org/show_bug.cgi?id=144140

Reviewed by Tim Horton.
Source/WebCore:

This changes makes it possible to denote a GraphicsLayerCA's backing store
as "attached" or not. When not attached, the backing store is made volatile
and can be purged. This will be used in a future patch.

  • platform/graphics/ca/GraphicsLayerCA.h: Add updateBackingStoreAttachment().
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/mac/PlatformCALayerMac.h:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm: Stubs. In future, we could

remove backing store on Mac and iOS WK1 too.
(PlatformCALayerMac::setBackingStoreAttached):
(PlatformCALayerMac::backingStoreAttached):

Source/WebKit2:

This changes makes it possible to denote a GraphicsLayerCA's backing store
as "attached" or not. When not attached, the backing store is made volatile
and can be purged. This will be used in a future patch.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore): Whitespace.
(WebKit::RemoteLayerBackingStore::display): If backingStoreWillBeDisplayed()
returns true, this indicates that the backing store was brought out of the
"unreachable" list, so return true even if the backing store doesn't require
painting.

  • Shared/mac/RemoteLayerBackingStoreCollection.h: C++11 initializer, and comments.
  • Shared/mac/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayed): Return true
if the caller will need to submit the backing store in the current transaction.
(WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable): This
explicit dirtying is no longer necessary given the backingStoreWillBeDisplayed() change.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::applyPropertiesToLayer): Only set the layer's backing if we both have backing
store, and it's attached.

  • Shared/mac/RemoteLayerTreeTransaction.h: New bit, and data member.
  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::recursiveBuildTransaction): Only call display()
on the backing store if it's attached.
(WebKit::PlatformCALayerRemote::setBackingStoreAttached):
(WebKit::PlatformCALayerRemote::backingStoreAttached):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::backingStoreWillBeDisplayed):

21:14 WebInspectorDebugging edited by burg@cs.washington.edu
(diff)
21:05 Changeset [183241] by simon.fraser@apple.com
  • 3 edits in trunk/Source/WebCore

Remove "layer" from GraphicsLayerCA member function names
https://bugs.webkit.org/show_bug.cgi?id=144139

Reviewed by Myles Maxfield.

Rename "updateLayer*" to "update*" in GraphicsLayerCA.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateNames):
(WebCore::GraphicsLayerCA::updateDrawsContent):
(WebCore::GraphicsLayerCA::updateLayerNames): Deleted.
(WebCore::GraphicsLayerCA::updateLayerDrawsContent): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:
21:01 Changeset [183240] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Speculative fix for non-main thread auto-attach failures
https://bugs.webkit.org/show_bug.cgi?id=144134

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-04-23
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::singleton):

20:49 Changeset [183239] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit/win

Try to fix the Windows build after r183234.

  • FullscreenVideoController.cpp:

(FullscreenVideoController::FullscreenVideoController): FullscreenVideoController inherits privately from
WebCore::MediaPlayerPrivateFullscreenClient, so make_unique isn't allowed to upcast. Add an explicit upcast.

20:08 Changeset [183238] by burg@cs.washington.edu
  • 3 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: run a customizable bootstrap function after the UI has fully loaded
https://bugs.webkit.org/show_bug.cgi?id=144124

Reviewed by Joseph Pecoraro.

It can be really annoying to click through the Inspector UI dozens of times to debug one
interaction or iterate on a specific widget.

This patch adds a blank "bootstrap" function that can be used to hard-wire commands to
automate repetitive UI state setup. The function is run immediately after the inspector loads.
Setup commands can be shared as bug report reproduction steps.

  • UserInterface/Base/Bootstrap.js: Added.

(WebInspector.runBootstrapOperations): Added.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded): Bootstrap after setting up everything and restoring view state from cookie.

  • UserInterface/Main.html:
20:06 Changeset [183237] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r183232.

  • public/include/json-header.php:
20:03 Changeset [183236] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/20663758> Fix the build after AVPlayerViewController API change

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal): Don’t pass a nil completion
handler to -[AVPlayerViewController exitFullScreenAnimated:completionHandler:].

19:23 Changeset [183235] by commit-queue@webkit.org
  • 19 edits
    4 adds in trunk

Allow function allocation sinking
https://bugs.webkit.org/show_bug.cgi?id=144016

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

Source/JavaScriptCore:

This adds the ability to sink function allocations in the
DFGObjectAllocationSinkingPhase.

In order to enable this, we add a new PhantomNewFunction node that is
used similarily to the PhantomNewObject node, i.e. as a placeholder to replace
a sunk NewFunction and keep track of the allocations that have to be performed
in case of OSR exit after the sunk allocation but before the real one.
The FunctionExecutable and JSLexicalEnvironment (activation) of the function
are stored onto the PhantomNewFunction through PutHints in order for them
to be recovered on OSR exit.

Contrary to sunk object allocations, sunk function allocations do not
support any kind of operations (e.g. storing into a field) ; any such operation
will mark the function allocation as escaping and trigger materialization. As
such, function allocations can only be sunk to places where it would have been
correct to syntactically move them, and we don't need a special
MaterializeNewFunction node to recover possible operations on the function. A
sunk NewFunction node will simply create new NewFunction nodes, then replace
itself with a PhantomNewFunction node.

In itself, this change is not expected to have a significant impact on
performances other than in degenerate cases (see e.g.
JSRegress/sink-function), but it is a step towards being able to sink recursive
closures onces we support CreateActivation sinking as well as allocation cycles
sinking.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • 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::convertToPhantomNewFunction):
(JSC::DFG::Node::isPhantomAllocation):

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
(JSC::DFG::ObjectAllocationSinkingPhase::createMaterialize):
(JSC::DFG::ObjectAllocationSinkingPhase::populateMaterialize):

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGPromotedHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGPromotedHeapLocation.h:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validateCPS):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • tests/stress/function-sinking-no-double-allocate.js: Added.

(call):
(.f):
(sink):

  • tests/stress/function-sinking-osrexit.js: Added.

(.g):
(sink):

  • tests/stress/function-sinking-put.js: Added.

(.g):
(sink):

LayoutTests:

Add a new test in JSRegress to check function sinking is being
performed.

  • js/regress/script-tests/sink-function.js: Added.

(foo.f1):
(foo.f2):
(foo.f3):
(foo.f4):
(foo.f5):
(foo.f6):
(foo.f7):
(foo.f8):
(foo.f9):
(foo.f10):
(foo.f11):
(foo.f12):
(foo.f13):
(foo.f14):
(foo.f15):
(foo.f16):
(foo.f17):
(foo.f18):
(foo.f19):
(foo):

19:13 Changeset [183234] by darin@apple.com
  • 90 edits
    1 delete in trunk

Another round of removing use of OwnPtr, PassOwnPtr, and deleteOwnedPtr
https://bugs.webkit.org/show_bug.cgi?id=144090

Reviewed by Anders Carlsson.

Source/WebCore:

  • Modules/encryptedmedia/CDMPrivateMediaPlayer.h: Removed unneeded include.
  • Modules/navigatorcontentutils/NavigatorContentUtils.h: Removed include of

RefCountedSupplement.h.

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
Pass data using rvalue references, and use new/delete to pass it across
threads, rather than using PassOwnPtr.

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h: Pass data

in an rvalue reference instead of PassOwnPtr.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveBinaryData): Take an rvalue reference
instead of a PassOwnPtr.

  • Modules/websockets/WebSocket.h: Ditto.
  • Modules/websockets/WebSocketChannel.cpp: Ditto.

(WebCore::WebSocketChannel::processFrame): Ditto.

  • Modules/websockets/WebSocketChannelClient.h:

(WebCore::WebSocketChannelClient::didReceiveBinaryData): Ditto.

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
Ditto.

  • Modules/websockets/WorkerThreadableWebSocketChannel.h: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Removed RefCountedSupplement.h.
  • loader/cocoa/DiskCacheMonitorCocoa.mm:

(WebCore::DiskCacheMonitor::monitorFileBackingStoreCreation): Fixed comment
to not mention adoptPtr.

  • page/make_settings.pl:

(generateInternalSettingsHeaderFile): Removed include of RefCountedSupplement.h.

  • platform/ColorChooserClient.h: Removed unneded include.
  • platform/ContextMenuItem.h: Ditto.
  • platform/RefCountedSupplement.h: Removed.
  • platform/ScrollAnimator.cpp: Removed unneeded include.
  • platform/ScrollAnimatorNone.h: Ditto.
  • platform/ThreadGlobalData.cpp: Added now-needed include of PassOwnPtr.h.
  • platform/graphics/GlyphMetricsMap.h: Ditto.
  • platform/graphics/MediaPlayer.h: Ditto.
  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h: Ditto.
  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: Ditto.
  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Ditto.
  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h: Ditto.
  • platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h: Ditto.
  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h: Ditto.
  • platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Ditto.
  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer): Use make_unique instead of adoptPtr.

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::getData): Return a RefPtr instead of a PassRefPtr.

  • platform/graphics/cg/ImageBufferDataCG.h: Streamlined the header a bit,

use unique_ptr instead of OwnPtr and RefPtr instead of PassRefPtr.

  • platform/graphics/cocoa/IOSurface.h: Use unique_ptr instead of OwnPtr.
  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::ensureGraphicsContext): Use make_unique instead of adoptPtr.

  • platform/graphics/egl/GLContextEGL.cpp: Removed unneeded includes.
  • platform/graphics/filters/FilterOperation.h: Ditto.
  • platform/graphics/harfbuzz/HarfBuzzShaper.h: Ditto.
  • platform/ios/DeviceMotionClientIOS.h: Ditto.
  • platform/ios/DeviceOrientationClientIOS.h: Ditto.
  • platform/ios/LegacyTileCache.h: Use unique_ptr instead of OwnPtr.
  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::LegacyTileCache): Use make_unique instead of
a create function, and also get rid of unneeded initialization to null.
(WebCore::LegacyTileCache::commitScaleChange): Ditto.

  • platform/ios/LegacyTileGrid.h: Made constructor public and got rid of create

function. Made constructor take a reference to the tile cache, and make both
tileCache() and m_tileCache be references too.

  • platform/ios/LegacyTileGrid.mm:

(WebCore::LegacyTileGrid::LegacyTileGrid): Updated to use reference.
(WebCore::LegacyTileGrid::visibleRect): Ditto.
(WebCore::LegacyTileGrid::tileByteSize) Ditto.:
(WebCore::LegacyTileGrid::dropDistantTiles): Ditto.
(WebCore::LegacyTileGrid::updateTileOpacity): Ditto.
(WebCore::LegacyTileGrid::updateTileBorderVisibility): Ditto.
(WebCore::LegacyTileGrid::updateHostLayerSize): Ditto.
(WebCore::LegacyTileGrid::invalidateTiles): Ditto.
(WebCore::LegacyTileGrid::shouldUseMinimalTileCoverage): Ditto.
(WebCore::LegacyTileGrid::tileDistance2): Ditto.
(WebCore::LegacyTileGrid::createTiles): Ditto.

  • platform/ios/LegacyTileGridTile.mm:

(WebCore::LegacyTileGridTile::LegacyTileGridTile): Ditto.
(WebCore::LegacyTileGridTile::invalidateRect): Ditto.
(WebCore::LegacyTileGridTile::showBorder): Ditto.

  • platform/ios/LegacyTileLayer.mm:

(-[LegacyTileHostLayer renderInContext:]): Ditto.
(-[LegacyTileLayer layoutSublayers]): Ditto.
(-[LegacyTileLayer drawInContext:]): Ditto.

  • platform/ios/LegacyTileLayerPool.h: Removed unneeded include.
  • platform/ios/ScrollAnimatorIOS.mm: Ditto.
  • platform/mac/ScrollAnimatorMac.mm: Ditto.
  • platform/mac/WebVideoFullscreenController.h: Ditto.
  • platform/network/BlobData.cpp: Ditto.
  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::ResourceHandle): Use make_unique instead of adoptPtr.

  • platform/network/ResourceHandle.h: Use unique_ptr instead of OwnPtr.
  • platform/network/ResourceHandleInternal.h: Added now-needed include.
  • platform/network/ResourceResponseBase.h: Removed unneeded includes and

tweaked formatting a bit.

  • platform/network/SynchronousLoaderClient.h: Removed the create function and

the private constructor. Used data member initialize to make the default
empty constructor automatically get generated (and be public now).

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::formFinishFinalizationOnMainThread): Use delete instead of adoptPtr
to delete the context argument.

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::defaultNetworkStorageSession): Return a unique_ptr& instead of an OwnPtr&.
(WebCore::NetworkStorageSession::switchToNewTestingSession): Use make_unique
instead of adoptPtr.
(WebCore::NetworkStorageSession::defaultStorageSession): Ditto.

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::platformLoadResourceSynchronously): Use a
SynchronousLoaderClient on the stack instead of putting one on the heap with adoptPtr.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::platformLoadResourceSynchronously): Ditto.

  • platform/text/TextCodec.h: Removed unneeded include.
  • platform/win/CursorWin.cpp: Ditto.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects): Use move instead of release since
we are using RefPtr&& instead of PassRefPtr.

  • rendering/RenderLayerFilterInfo.cpp:

(WebCore::RenderLayer::FilterInfo::setRenderer): Use RefPtr&& instead of PassRefPtr.
(WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients): Streamlined to use
modern for loops and auto.
(WebCore::RenderLayer::FilterInfo::removeReferenceFilterClients): Ditto.

  • rendering/RenderLayerFilterInfo.h: Streamlined code and removed some stuff that

I think is unneeded on iOS; there is no unused private field and I suspect the problem
that led to the warning is gone. Deleted friending of deleteOwnedPtr.

  • rendering/RenderLayerMaskImageInfo.cpp: Removed unneeded includes. Moved private

client classes in here from the header and made them members of MaskImageInfo.
Streamlined them a bit in other ways.
(WebCore::RenderLayer::MaskImageInfo::getIfExists): Use nullptr.
(WebCore::RenderLayer::MaskImageInfo::MaskImageInfo): Use member initialization
and also pass the layer in rather than the MaskImageInfo.
(WebCore::RenderLayer::MaskImageInfo::notifyFinished): Deleted. Moved the code
into the SVGDocumentClient.
(WebCore::RenderLayer::MaskImageInfo::imageChanged): Deleted. Moved the code into
the ImageClient.
(WebCore::RenderLayer::MaskImageInfo::updateMaskImageClients): Streamlined a bit
to use a for loop.
(WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients): Ditto.

  • rendering/RenderLayerMaskImageInfo.h: Reduced unneeded includes. Got rid of

definitions of private member classes here in the header; they can be in the cpp
file instead. Also cut down from three classes to two, and gave the classes less
redundant names since they are already members of MaskImageInfo. Removed some
unneeded functions and friending of deleteOwnedPtr.

  • testing/InternalSettings.cpp: Got rid of comment about RefCountedSupplement

since no code anywhere was using it, so not using it here was not remarkable.

Source/WebKit/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::FullscreenVideoController):
(FullscreenVideoController::exitFullscreen):

  • FullscreenVideoController.h:
  • Plugins/PluginView.h:
  • Plugins/PluginViewWin.cpp:

(WebCore::PluginView::wndProc):

  • WebCoreSupport/AcceleratedCompositingContext.h:
  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::WebChromeClient):

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::WebFrameLoaderClient):

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorClient::highlight):

  • WebCoreSupport/WebInspectorClient.h:
  • WebElementPropertyBag.cpp:

(WebElementPropertyBag::WebElementPropertyBag):

  • WebElementPropertyBag.h:
  • WebFrame.h:
  • WebHistoryItem.cpp:
  • WebNodeHighlight.cpp:
  • WebNotificationCenter.cpp:

(WebNotificationCenter::WebNotificationCenter):

  • WebNotificationCenter.h:

Use make_unique and unique_ptr instead of adoptPtr and OwnPtr.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm: Removed unneeded include.
19:08 Changeset [183233] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Adopt Object.assign and improve its display in Console
https://bugs.webkit.org/show_bug.cgi?id=144135

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-04-23
Reviewed by Darin Adler.

  • UserInterface/Models/NativeFunctionParameters.js:
18:16 Changeset [183232] by rniwa@webkit.org
  • 11 edits
    1 add in trunk/Websites/perf.webkit.org

Perf dashboard should automatically detect regressions
https://bugs.webkit.org/show_bug.cgi?id=141443

Reviewed by Anders Carlsson.

Added a node.js script detect-changes.js to detect potential regressions and progressions
on the graphs tracked on v2 dashboards.

  • init-database.sql: Added analysis_strategies table and task_segmentation and task_test_range

columns to analysis_tasks to keep the segmentation and test range selection strategies used
to create an analysis task.

  • public/api/analysis-tasks.php:

(format_task): Include task_segmentation and analysis_tasks in the results.

  • public/include/json-header.php:

(remote_user_name): Returns null when the privileged API is authenticated as a slave instead
of a CSRF prevention token.
(should_authenticate_as_slave): Added.
(ensure_privileged_api_data_and_token_or_slave): Added. Authenticate as a slave if slaveName
and slavePassword are specified. Since detect-changes.js and other slaves are not susceptible
to a CSRF attack, we don't need to check a CSRF token.

  • public/privileged-api/create-analysis-task.php:

(main): Use ensure_privileged_api_data_and_token_or_slave to let detect-changes.js create new
analysis task. Also add or find segmentation and test range selection strategies if specified.

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

(main): Use ensure_privileged_api_data_and_token_or_slave.

  • public/privileged-api/generate-csrf-token.php:
  • public/v2/app.js:

(App.Pane._computeMovingAverageAndOutliers): _executeStrategy has been moved to Statistics.

  • public/v2/data.js: Export Measurement, RunsData, TimeSeries. Used in detect-changes.js.

(Array.prototype.find): Added a polyfill to be used in node.js.
(RunsData.fetchRuns):
(RunsData.pathForFetchingRuns): Extracted from fetchRuns. Used in detect-changes.js.
(RunsData.createRunsDataInResponse): Extracted from App.Manifest._formatFetchedData to use it
in detect-changes.js.
(RunsData.unitFromMetricName): Ditto.
(RunsData.isSmallerBetter): Ditto.
(RunsData.prototype._timeSeriesByTimeInternal): Added secondaryTime to sort points when commit
times are identical.
(TimeSeries): When commit times are identical, order points based on build time. This is needed
for when we trigger two builds at two different OS versions with the same WebKit revision since
OS versions don't change the commit times.
(TimeSeries.prototype.findPointByIndex): Added.
(TimeSeries.prototype.rawValues): Added.

  • public/v2/js/statistics.js:

(Statistics.TestRangeSelectionStrategies.[0]): Use the 99% two-sided probability as claimed in the
description of this strategy instead of the default probability. Also fixed a bug that debugging
code was referring to non-existent variables.
(Statistics.executeStrategy): Moved from App.Pane (app.js).

  • public/v2/manifest.js:

(App.Manifest._formatFetchedData): Various code has been extracted into RunsData in data.js to be
used in detect-changes.js.

  • tools/detect-changes.js: Added. The script fetches the manifest JSON, analyzes each graph in

the v2 dashboards, and creates an analysis task for the latest regression or progression detected.
It also schedules an A/B testing if possible and notifies another server; e.g. to send an email.
(main): Loads the settings JSON specified in the argument.
(fetchManifestAndAnalyzeData): The main loop that periodically wakes up to do the analysis.
(mapInOrder): Executes callback sequentially (i.e. blocking) on each item in the array.
(configurationsForTesting): Finds every (platform, metric) pair to analyze in the v2 dashbaords,
and computes various values for when statistically significant changes are detected later.
(analyzeConfiguration): Finds potential regressions and progression in the last X days where X
is the specified maximum number of days using the specified strategies. Sort the resultant ranges
in chronological order and create a new analysis task for the very last change we detected. We'll
eventually create an analysis task for all detected changes since we're repeating the analysis in
fetchManifestAndAnalyzeData after some time.
(computeRangesForTesting): Fetch measured values and compute ranges to test using the specified
segmentation and test range selection strategies. Once ranges are found, find overlapping analysis
tasks as they need to be filtered out in analyzeConfiguration to avoid creating multiple analysis
tasks for the same range (e.g. humans may create one before the script gets to do it).
(createAnalysisTaskAndNotify): Create a new analysis task for the specified range, trigger an A/B
testing if available, and notify another server with a HTML message as specified.
(findStrategyByLabel):
(changeTypeForRange): A change is a regression if values are getting larger in a smaller-is-better
test or values are getting smaller in a larger-is-better test and vice versa.
(summarizeRange): Create a human readable string that summarizes the change detected. e.g.
"Potential 3.2% regression detected between 2015-04-20 12:00 and 17:00".
(formatTimeRange):
(getJSON):
(postJSON):
(postNotification): Recursively replaces $title and $massage in the specified JSON template.
(instantiateNotificationTemplate):
(fetchJSON):

17:23 Changeset [183231] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.2

New tag.

17:07 Changeset [183230] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.1

New tag.

16:43 Changeset [183229] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Add a wrapper around the hosted AVPlayerLayer to intercept -setBounds:
https://bugs.webkit.org/show_bug.cgi?id=144129

Reviewed by Simon Fraser.

When passing the hosted AVPlayerLayer to the fullscreen controller, the new superlayer will
resize the hosted layer with a call to -setBounds:. But because this is a hosted layer, the
bonuds change has no effect. Instead, wrap the CALayerHost in another CALayer whose job it is
to intercept -setBounds: in the same way that WebAVVideoLayer did. In fact, we should just use
that wrapper class inside WebAVVideoLayer as well, to avoid duplicating code.

Drive-by Fix: Null-check m_videoElement in setVideoLayerFrame().

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

(-[WebCALayerHostWrapper setVideoSublayer:]):
(-[WebCALayerHostWrapper videoSublayer]):
(-[WebCALayerHostWrapper setBounds:]): Moved from WebAVVideoLayer.
(-[WebCALayerHostWrapper resolveBounds]): Ditto.
(-[WebAVVideoLayer setBounds:]): Moved to WebCALayerHostWrapper.
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): Create the wrapper.
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal): Clear the wrapper.
(-[WebAVVideoLayer resolveBounds]): Deleted. Moved to WebCALayerHostWrapper.

  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setVideoLayerFrame): Null-check m_videoElement.

16:18 Changeset [183228] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Quick Look preview popover is not dismissed on scroll in Mail
https://bugs.webkit.org/show_bug.cgi?id=144119
<rdar://problem/19752045>

Reviewed by Anders Carlsson.

  • UIProcess/API/mac/WKView.mm:

(-[WKView renewGState]):
If we have a TextIndicator, dismiss all content relative child windows
on renewGState, not just the TextIndicator itself.

This will fix cases like Mail, where WebKit isn't driving the scrolling,
and we have no way (except renewGState) to know that scrolling is happening.

16:13 Changeset [183227] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Yellow highlight has gray background color when invoking Lookup on an address in a Google Maps drop down
https://bugs.webkit.org/show_bug.cgi?id=138737
<rdar://problem/18904429>

Reviewed by Simon Fraser.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):
Other RenderObjects don't paint box decorations in the selection painting phase,
so RenderReplaced probably shouldn't either. This fixes the case where, when doing
selection-only painting of a bit of text over top of a RenderReplaced, the RenderReplaced
would paint its background, filling the previously transparent bitmap with an unwanted color.

16:04 Changeset [183226] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test compositing/scrolling/touch-scroll-to-clip.html fails in WK1
https://bugs.webkit.org/show_bug.cgi?id=144127

  • platform/mac-wk1/TestExpectations: Marked it as such.
16:01 Changeset [183225] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Update media timeline controls when video is paused..
https://bugs.webkit.org/show_bug.cgi?id=144122.
<rdar://problem/20422927>

Reviewed by Dean Jackson.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.drawTimelineBackground): Use timelineWidth because offsetWidth is 0 when display: none.
(Controller.prototype.setPlaying): Show controls when pausing.
(Controller.prototype.showControls): Update time and timeline when unhiding controls.

15:54 Changeset [183224] by simon.fraser@apple.com
  • 5 edits in trunk/Source

Changing TiledBacking velocity should schedule a tile revalidation
https://bugs.webkit.org/show_bug.cgi?id=144123

Reviewed by Tim Horton.
Source/WebCore:

Changing the velocity parameters on the TileController affect the computed
coverage rect, so whenever we make a change to velocity data that could
affect the outcome (basically any non-zero old or new velocities),
schedule a layer flush.

  • platform/graphics/TiledBacking.h:

(WebCore::VelocityData::velocityOrScaleIsChanging):

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::setVelocity):

Source/WebKit2:

Drive-by fix: use the FrameView& that we have already.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

15:52 Changeset [183223] by msaboff@apple.com
  • 2 edits in trunk/Tools

lldb macro btjs sometimes can't get a frame description
https://bugs.webkit.org/show_bug.cgi?id=144130

Reviewed by Filip Pizlo.

We look to execute ExecState::describeFrame(). It appears that in some contexts the
debugger can't find ExecState. In those cases, CallFrame works as it is a typedef of
ExecState. Therefore we can fallback to using CallFrame::describeFrame().

  • lldb/lldb_webkit.py:

(btjs):

15:45 Changeset [183222] by mcatanzaro@igalia.com
  • 2 edits in trunk

[GTK] Add more public options
https://bugs.webkit.org/show_bug.cgi?id=144116

Reviewed by Martin Robinson.

Add ENABLE_ICONDATABASE, ENABLE_JIT, and USE_SYSTEM_MALLOC as public options.

  • Source/cmake/OptionsGTK.cmake:
15:43 Changeset [183221] by jer.noble@apple.com
  • 9 edits in trunk

[Mac] Disable QTKit by default on future OS X.
https://bugs.webkit.org/show_bug.cgi?id=144082

Reviewed by Darin Adler.

Source/WebCore:

Settings::gQTKitEnabled defaults to false.

  • page/Settings.cpp:

Source/WebKit/mac:

Default WebKitQTKitEnabledPreferenceKey to NO.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

Source/WebKit2:

QTKitEnabled defaults to false.

  • Shared/WebPreferencesDefinitions.h:

LayoutTests:

Add a required BANDWIDTH field to the alternate playlist.

  • http/tests/media/resources/hls/playlist-with-cookie.m3u8:
15:40 WebInspectorDebugging created by burg@cs.washington.edu
15:40 Changeset [183220] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2][Mac] Tweak the timing curve of the WebKit Fullscreen animation
https://bugs.webkit.org/show_bug.cgi?id=144120

Reviewed by Eric Carlson.

Tweak the curve to ease-in faster when the fullscreen animation duration is short.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(timingFunctionForDuration):
(zoomAnimation):
(maskAnimation):
(fadeAnimation):

15:34 Changeset [183219] by dbates@webkit.org
  • 6 edits in trunk/Source/WebCore

Clean up: Use references instead of pointers in more SVG files
https://bugs.webkit.org/show_bug.cgi?id=144045

Reviewed by Darin Adler.

  • rendering/svg/SVGRootInlineBox.cpp:

(WebCore::SVGRootInlineBox::layoutCharactersInTextBoxes): Pass reference instead of pointer.

  • rendering/svg/SVGTextLayoutEngine.cpp:

(WebCore::SVGTextLayoutEngine::recordTextFragment): Changed parameter textBox from pointer to reference.
(WebCore::SVGTextLayoutEngine::layoutInlineTextBox): Ditto.
(WebCore::SVGTextLayoutEngine::currentVisualCharacterMetrics): Changed parameter textBox from pointer to
reference and made it const since this function does not modify textBox.
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Changed parameters from pointers to references.
Also, removed comma from comment so that it reads well.

  • rendering/svg/SVGTextLayoutEngine.h: Updated declarations for the above functions.
  • rendering/svg/SVGTextLayoutEngineBaseline.cpp:

(WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift): Changed parameter style from pointer to reference.
Added case BS_LENGTH to switch block and removed default case so that the compiler checks that we handle all cases.
Renamed parameter contextElement to context since the name of its data type conveys that it is an element.
(WebCore::SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift): Changed parameter textRenderer from
pointer to reference and removed runtime assertion that textRenderer is non-null (since it well-formed reference
cannot point to a non-existent object).
(WebCore::SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle): Changed parameter style from pointer to reference
removed runtime assertion that style is non-null.

  • rendering/svg/SVGTextLayoutEngineBaseline.h: Updated declarations for the above functions.
15:30 Changeset [183218] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.1

New tag.

15:24 Changeset [183217] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

Make the linter stop complaining by fixing the order of fields in TestExpectations

  • platform/mac/TestExpectations:

Bug number comes first.

15:20 Changeset [183216] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

iOS build fix after r183208.

Unreviewed.

  • UIProcess/ios/WKContentViewInteraction.mm:
15:20 HackingWebInspector edited by burg@cs.washington.edu
(diff)
15:02 Changeset [183215] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: DebuggerSidebarPanel's _callStackContentTreeOutline should suppress filtering
https://bugs.webkit.org/show_bug.cgi?id=144114

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):

15:00 Changeset [183214] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix layering issues with ApplicationCacheFrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=144113

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ApplicationCacheFrameTreeElement.js:

(WebInspector.ApplicationCacheFrameTreeElement.prototype.updateTitles):
(WebInspector.ApplicationCacheFrameTreeElement):

14:58 Changeset [183213] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

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

Made multiple tests flaky (Requested by ap_ on #webkit).

Reverted changeset:

"Memory cache live resources repeatedly purged during
painting"
https://bugs.webkit.org/show_bug.cgi?id=144104
http://trac.webkit.org/changeset/183194

14:56 Changeset [183212] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Make FunctionRareData allocation thread-safe
https://bugs.webkit.org/show_bug.cgi?id=144001

Patch by Basile Clement <basile_clement@apple.com> on 2015-04-23
Reviewed by Mark Lam.

The two things we want to prevent are:

  1. A thread seeing a pointer to a not-yet-fully-created rare data from a JSFunction
  2. A thread seeing a pointer to a not-yet-fully-created Structure from an ObjectAllocationProfile

For 1., only the JS thread can be creating the rare data (in
runtime/CommonSlowPaths.cpp or in dfg/DFGOperations.cpp), so we don't need to
worry about concurrent writes, and we don't need any fences when *reading* the
rare data from the JS thread. Thus we only need a storeStoreFence between the
rare data creation and assignment to m_rareData in
JSFunction::createAndInitializeRareData() to ensure that when the store to
m_rareData is issued, the rare data has been properly created.

For the DFG compilation threads, the only place they can access the
rare data is through JSFunction::rareData(), and so we only need a
loadLoadFence there to ensure that when we see a non-null pointer in
m_rareData, the pointed object will be seen as a fully created
FunctionRareData.

For 2., the structure is created in
ObjectAllocationProfile::initialize() (which appears to be called only by the
JS thread as well, in bytecode/CodeBlock.cpp and on rare data initialization,
which always happen in the JS thread), and read through
ObjectAllocationProfile::structure() and
ObjectAllocationProfile::inlineCapacity(), so following the same reasoning we
put a storeStoreFence in ObjectAllocationProfile::initialize() and a
loadLoadFence in ObjectAllocationProfile::structure() (and change
ObjectAllocationProfile::inlineCapacity() to go through
ObjectAllocationProfile::structure()).

We don't need a fence in ObjectAllocationProfile::clear() because
clearing the structure is already as atomic as it gets.

Finally, notice that we don't care about the ObjectAllocationProfile's
m_allocator as that is only used by ObjectAllocationProfile::initialize() and
ObjectAllocationProfile::clear() that are always run in the JS thread.
ObjectAllocationProfile::isNull() could cause some trouble, but it is
currently only used in the ObjectAllocationProfile::clear()'s ASSERT in the JS
thread. Doing isNull()-style pre-checks would be wrong in any other concurrent
thread anyway.

  • bytecode/ObjectAllocationProfile.h:

(JSC::ObjectAllocationProfile::initialize):
(JSC::ObjectAllocationProfile::structure):
(JSC::ObjectAllocationProfile::inlineCapacity):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::allocateAndInitializeRareData):

  • runtime/JSFunction.h:

(JSC::JSFunction::rareData):
(JSC::JSFunction::allocationStructure): Deleted.
This is no longer used, as all the accesses to the ObjectAllocationProfile go through the rare data.

14:41 WikiStart edited by burg@cs.washington.edu
(diff)
14:33 Changeset [183211] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Missed a button in r182900.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-wireless-playback-picker-button:active):

14:31 Changeset [183210] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Just shift some CSS around for code cleanup purposes.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-panel):
(video::-webkit-media-controls-panel:hover):

14:14 Changeset [183209] by ap@apple.com
  • 7 edits
    1 add in trunk/Source

[iOS] WebKit services should inherit environment variables for home
https://bugs.webkit.org/show_bug.cgi?id=144078
rdar://problem/20571678

Reviewed by Dan Bernstein.

Source/WebCore:

Added an SPI header for a drive-by fix.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/cf/CFBundleSPI.h: Added.

Source/WebKit2:

Pass current environment variables as XPC bootstrap. Also while at it, made
_CFBundleSetupXPCBootstrap not soft linked.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:

(main):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):

Source/WTF:

  • wtf/spi/darwin/XPCSPI.h: Added xpc_copy_bootstrap and xpc_dictionary_apply.
14:03 Changeset [183208] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Support share button.
https://bugs.webkit.org/show_bug.cgi?id=144077
rdar://problem/19772892

Reviewed by Darin Adler.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _share:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _define:]):
(-[WKContentView accessibilityRetrieveSpeakSelectionContent]):
(-[WKContentView moveByOffset:]):
(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
(-[WKContentView accessoryTab:]):
(-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKContentView executeEditCommandWithCallback:]):

13:47 Changeset [183207] by fpizlo@apple.com
  • 17 edits
    3 adds in trunk/Source/JavaScriptCore

DFG should insert Phantoms late using BytecodeKills and block-local OSR availability
https://bugs.webkit.org/show_bug.cgi?id=143735

Reviewed by Geoffrey Garen.

We've always had bugs arising from the fact that we would MovHint something into a local,
and then fail to keep it alive. We would then try to keep things alive by putting Phantoms
on those Nodes that were MovHinted. But this became increasingly tricky. Given the
sophistication of the transformations we are doing today, this approach is just not sound
anymore.

This comprehensively fixes these bugs by having the DFG backend automatically insert
Phantoms just before codegen based on bytecode liveness. To make this practical, this also
makes it much faster to query bytecode liveness.

It's about as perf-neutral as it gets for a change that increases compiler work without
actually optimizing anything. Later changes will remove the old Phantom-preserving logic,
which should then speed us up. I can't really report concrete slow-down numbers because
they are low enough to basically be in the noise. For example, a 20-iteration run of
SunSpider yields "maybe 0.8% slower", whatever that means.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::BytecodeLivenessAnalysis::computeFullLiveness):

  • bytecode/FullBytecodeLiveness.h:

(JSC::FullBytecodeLiveness::getLiveness):

  • bytecode/VirtualRegister.h:

(JSC::VirtualRegister::operator+):
(JSC::VirtualRegister::operator-):

  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllLiveNodesAtTail):
(JSC::DFG::forAllKilledOperands):
(JSC::DFG::forAllKilledNodesAtNodeIndex):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):
(JSC::DFG::Graph::localsLiveInBytecode):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::forAllLocalsLiveInBytecode):
(JSC::DFG::Graph::forAllLiveInBytecode):

  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGMovHintRemovalPhase.cpp:
  • dfg/DFGNodeType.h:
  • dfg/DFGPhantomInsertionPhase.cpp: Added.

(JSC::DFG::performPhantomInsertion):

  • dfg/DFGPhantomInsertionPhase.h: Added.
  • dfg/DFGPlan.cpp:

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

  • dfg/DFGScoreBoard.h:

(JSC::DFG::ScoreBoard::sortFree):
(JSC::DFG::ScoreBoard::assertClear):

  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::buildExitArguments):

  • tests/stress/phantom-inadequacy.js: Added.

(bar):
(baz):
(foo):

13:30 Changeset [183206] by mcatanzaro@igalia.com
  • 3 edits in trunk

[CMake] Some internal variables are not marked as advanced
https://bugs.webkit.org/show_bug.cgi?id=143595

Reviewed by Martin Robinson.

  • Source/cmake/FindFreetype2.cmake: Mark internal options as advanced.
  • Source/cmake/FindHarfBuzz.cmake: Mark HARFBUZZ_ICU_LIBRARIES as advanced.
12:59 Changeset [183205] by mcatanzaro@igalia.com
  • 2 edits in trunk

[GTK] Mark as advanced the build options we don't want to expose
https://bugs.webkit.org/show_bug.cgi?id=143558

Reviewed by Martin Robinson.

Mark various options as private instead of public.

  • Source/cmake/OptionsGTK.cmake:
12:56 Changeset [183204] by commit-queue@webkit.org
  • 18 edits in trunk

Use less memory when compiling content extensions.
https://bugs.webkit.org/show_bug.cgi?id=144051

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-23
Reviewed by Darin Adler and Benjamin Poulain.

Source/WebCore:

No change in functionality, correctness already covered by existing tests.

Before this patch, a DFANode contained a HashSet of transitions.
Large vectors of DFANodes made many small HashSets, which was inefficient use of memory.
We now put all the actions and transitions into one big compact Vector and each node owns ranges in that vector.

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::recursiveMemoryUsed):
(WebCore::ContentExtensions::CombinedURLFilters::memoryUsed):

  • contentextensions/CombinedURLFilters.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::memoryUsed):
(WebCore::ContentExtensions::DFANode::actions):
(WebCore::ContentExtensions::DFANode::transitions):
(WebCore::ContentExtensions::DFANode::fallbackTransitionDestination):
(WebCore::ContentExtensions::DFANode::changeFallbackTransition):
(WebCore::ContentExtensions::DFANode::addFallbackTransition):
(WebCore::ContentExtensions::DFANode::containsTransition):
(WebCore::ContentExtensions::DFANode::kill):
(WebCore::ContentExtensions::DFA::minimize):
(WebCore::ContentExtensions::DFA::DFA): Deleted.
(WebCore::ContentExtensions::DFA::operator=): Deleted.

  • contentextensions/DFA.h:
  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileNodeTransitions):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):

  • contentextensions/DFABytecodeCompiler.h:
  • contentextensions/DFAMinimizer.cpp:

(WebCore::ContentExtensions::DFAMinimizer::minimize):

  • contentextensions/DFAMinimizer.h:
  • contentextensions/DFANode.h:

(WebCore::ContentExtensions::DFANode::isKilled):
(WebCore::ContentExtensions::DFANode::hasFallbackTransition):
(WebCore::ContentExtensions::DFANode::hasActions):
(WebCore::ContentExtensions::DFANode::transitionsLength):
(WebCore::ContentExtensions::DFANode::actionsLength):
(WebCore::ContentExtensions::DFANode::actionsStart):
(WebCore::ContentExtensions::DFANode::setActions):
(WebCore::ContentExtensions::DFANode::setTransitions):
(WebCore::ContentExtensions::DFANode::resetTransitions):
(WebCore::ContentExtensions::DFANode::transitionsStart):
(WebCore::ContentExtensions::DFANode::setHasFallbackTransitionWithoutChangingDFA):

  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::memoryUsed):

  • contentextensions/NFA.h:
  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource):
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate):
(WebCore::ContentExtensions::getOrCreateDFANode):
(WebCore::ContentExtensions::NFAToDFA::convert):

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:

(TestWebKitAPI::countLiveNodes):

12:45 Changeset [183203] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.6.3

New tag.

12:42 Changeset [183202] by mcatanzaro@igalia.com
  • 2 edits in trunk

[CMake] Should be possible for an option to depend on multiple options
https://bugs.webkit.org/show_bug.cgi?id=143839

Reviewed by Martin Robinson.

Use a list instead of a single variable to track the dependencies of each option. Iterate
over the list as many times as necessary to ensure all options are properly disabled.

  • Source/cmake/WebKitFeatures.cmake:
12:25 Changeset [183201] by fpizlo@apple.com
  • 22 edits in trunk/Source/JavaScriptCore

Rename HardPhantom to MustGenerate.

Rubber stamped by Geoffrey Garen.

We are steadily moving towards Phantom just being a backend hack in the DFG. HardPhantom
is more than that; it's a utility for forcing the execution of otherwise killable nodes.
NodeMustGenerate is the flag we use to indicate that something isn't killable. So this
node should just be called MustGenerate.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::run):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::insertMustAdd):

  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGNode.h:

(JSC::DFG::Node::willHaveCodeGenOrOSR):

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • dfg/DFGPhantomCanonicalizationPhase.cpp:

(JSC::DFG::PhantomCanonicalizationPhase::run):

  • dfg/DFGPhantomRemovalPhase.cpp:

(JSC::DFG::PhantomRemovalPhase::run):

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):

11:58 Changeset [183200] by ap@apple.com
  • 2 edits
    2 adds
    1 delete in trunk/LayoutTests

editing/selection/extend-by-character-007.html should pass on OS X 10.10.3.

Updated the results to match what we get in 10.10.3, and marked as passing.

  • editing/selection/extend-by-character-007-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • platform/mac/editing/selection/extend-by-character-007-expected.png: Added.
  • platform/mac/editing/selection/extend-by-character-007-expected.txt: Added.
11:44 Changeset [183199] by commit-queue@webkit.org
  • 9 edits
    4 adds in trunk

Implement Object.assign
https://bugs.webkit.org/show_bug.cgi?id=143980

Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-23
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign

  • builtins/ObjectConstructor.js: Added.

(assign):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ObjectConstructor.cpp:
  • runtime/ObjectConstructor.h:

LayoutTests:

  • js/Object-assign-expected.txt: Added.
  • js/Object-assign.html: Added.
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-assign.js: Added.
  • js/script-tests/Object-getOwnPropertyNames.js:
11:41 Changeset [183198] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

Don't fire a bunch of mouse moveds during scrolling.
https://bugs.webkit.org/show_bug.cgi?id=99940

Reviewed by Simon Fraser.

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
Even for the short interval timer, make sure to cancel and restart it instead of allowing the original to
complete. This has the effect of preventing fake mouse moves from firing until the scroll stops.

11:40 Changeset [183197] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the release build.

  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners): Add an UNUSED_PARAM.

10:59 Changeset [183196] by simon.fraser@apple.com
  • 3 edits in trunk/Source/WebCore

Remove m_isPageTiledBackingLayer data member from GraphicsLayerCA, just use the layer type instead
https://bugs.webkit.org/show_bug.cgi?id=144108

Reviewed by Dean Jackson.

No need for the m_isPageTiledBackingLayer data member. We can just check the layer
type instead.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::initialize):
(WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
(WebCore::GraphicsLayerCA::updateContentsScale):
(WebCore::GraphicsLayerCA::getDebugBorderInfo):
(WebCore::GraphicsLayerCA::requiresTiledLayer):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::isPageTiledBackingLayer):

10:52 Changeset [183195] by beidson@apple.com
  • 10 edits
    2 copies in trunk/Source/WebCore

Content extension with oft-repeated rules can cause slowdown.
rdar://problem/20618511 and https://bugs.webkit.org/show_bug.cgi?id=144010

Reviewed by Alex Christensen.

No new tests (Behavior covered by existing tests).

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::globalDisplayNoneStyleSheet):

Add the String identifier for the extension and the rule action ID to Actions:

  • contentextensions/ContentExtensionRule.cpp:

(WebCore::ContentExtensions::Action::deserialize):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Action::Action):
(WebCore::ContentExtensions::Action::operator==):
(WebCore::ContentExtensions::Action::setExtensionIdentifier):
(WebCore::ContentExtensions::Action::extensionIdentifier):
(WebCore::ContentExtensions::Action::actionID):
(WebCore::ContentExtensions::Action::type): Deleted.

Object to manage a CSSStyleSheet and selectors identified by ID:

  • contentextensions/ContentExtensionStyleSheet.cpp:

(WebCore::ContentExtensions::ContentExtensionStyleSheet::ContentExtensionStyleSheet):
(WebCore::ContentExtensions::ContentExtensionStyleSheet::addDisplayNoneSelector):

  • contentextensions/ContentExtensionStyleSheet.h:

(WebCore::ContentExtensions::ContentExtensionStyleSheet::create):
(WebCore::ContentExtensions::ContentExtensionStyleSheet::styleSheet):

Instead of globbing selectors together into a String and making a new stylesheet,
add new unique selectors to an already existing sheet:

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::displayNoneCSSRule):

  • dom/DocumentStyleSheetCollection.cpp:

(WebCore::DocumentStyleSheetCollection::addDisplayNoneSelector):
(WebCore::DocumentStyleSheetCollection::addContentExtensionUserSheet): Deleted.

  • dom/DocumentStyleSheetCollection.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::addPendingContentExtensionDisplayNoneSelector):
(WebCore::DocumentLoader::addPendingContentExtensionSheet): Deleted.

  • loader/DocumentLoader.h:
10:48 Changeset [183194] by antti@apple.com
  • 4 edits in trunk/Source/WebCore

Memory cache live resources repeatedly purged during painting
https://bugs.webkit.org/show_bug.cgi?id=144104
<rdar://problem/20667695>

Reviewed by Chris Dumez.

On some PLT pages (like nytimes.com) we get into state where painting repeatedly purges live bitmaps.
This slows down page loads significantly.

This might have regressed because improvements in page caching keep more pages and so resources 'live'.

With this path we do all regular cache pruning asynchronously. If memory is really critical
the low memory handling code will still prune synchronously.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::removeClient):
(WebCore::CachedResource::didAccessDecodedData):

prune() -> pruneSoon()

  • loader/cache/MemoryCache.cpp:

Decrease the pruning size target from 0.95 to 0.8 so we don't need to prune so often.

(WebCore::MemoryCache::needsPruning):

Factor into a function.

(WebCore::MemoryCache::prune):
(WebCore::MemoryCache::pruneSoon):

Prune asynchronously.

  • loader/cache/MemoryCache.h:
10:31 Changeset [183193] by mcatanzaro@igalia.com
  • 2 edits in trunk

[CMake] ENABLE_THREADED_COMPOSITOR should not be at the bottom of the options list
https://bugs.webkit.org/show_bug.cgi?id=144103

Reviewed by Martin Robinson.

Just move ENABLE_THREADED_COMPOSITOR so it's alphabetized properly.

  • Source/cmake/WebKitFeatures.cmake:
10:29 Changeset [183192] by mcatanzaro@igalia.com
  • 2 edits in trunk

[GTK] Fixups for ENABLE_CREDENTIAL_STORAGE
https://bugs.webkit.org/show_bug.cgi?id=144102

Reviewed by Martin Robinson.

Use WEBKIT_OPTION_DEFAULT_PORT_VALUE to set ENABLE_CREDENTIAL_STORAGE instead of doing so
manually. Fail the build if libsecret is not found but ENABLE_CREDENTIAL_STORAGE is set.
Also, do not set ENABLE_CREDENTIAL_STORAGE redundantly.

  • Source/cmake/OptionsGTK.cmake:
10:16 Changeset [183191] by cdumez@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, temporarily skip http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html on Windows.

It often crashes on Windows.

  • platform/win/TestExpectations:
09:56 Changeset [183190] by ap@apple.com
  • 2 edits in trunk/Source/WTF

Undo the WTF part of the previous build fix, we don't use private headers in WTF.

  • WTF.xcodeproj/project.pbxproj:
09:53 Changeset [183189] by carlosgc@webkit.org
  • 11 edits in trunk/Source/WebKit2

[UNIX] Do not allow copies of IPC::Attachment
https://bugs.webkit.org/show_bug.cgi?id=144096

Reviewed by Darin Adler.

It ensures that the file descriptor ownership is always correctly
transferred. This way we can remove the dispose() method to
explicitly close the file descriptor and always close it in the
Attachment destructor (unless explicitly transferred to
IPC::Connection or SharedMemory). It simplifies the code and
ensure we don't leak file descriptors.

  • Platform/IPC/ArgumentDecoder.cpp:

(IPC::ArgumentDecoder::~ArgumentDecoder): Remove the code to
explicitly dispose attachments.
(IPC::ArgumentDecoder::removeAttachment): Use WTF::move().

  • Platform/IPC/ArgumentEncoder.cpp:

(IPC::ArgumentEncoder::~ArgumentEncoder): Remove the code to
explicitly dispose attachments.
(IPC::ArgumentEncoder::addAttachment): Use WTF::move().
(IPC::ArgumentEncoder::releaseAttachments): Simplify by using WTF::move().

  • Platform/IPC/ArgumentEncoder.h:
  • Platform/IPC/Attachment.cpp:

(IPC::Attachment::encode): Move a copy of the attachment, and
reset the file descriptor, since the ownership is passed to the encoder.

  • Platform/IPC/Attachment.h: Make copy constructor and assignment

private to not allow public copies. The only copy allowed is done
by Attachment::encode(). Make m_fileDescriptor mutable so that we
can reset it in Attachment::encode() after passing the ownership
to the encoder.

  • Platform/IPC/unix/AttachmentUnix.cpp:

(IPC::Attachment::~Attachment): Close the file descriptor if it
hasn't been released explicitly.
(IPC::Attachment::dispose): Deleted.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage): Do not use AttachmentResourceGuard.
(IPC::Connection::sendOutgoingMessage): Ditto.
(IPC::AttachmentResourceGuard::AttachmentResourceGuard): Deleted.
(IPC::AttachmentResourceGuard::~AttachmentResourceGuard): Deleted.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::Handle::~Handle): Do not call clear().
(WebKit::SharedMemory::Handle::clear): Reset the attachment.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::createInspectorPage): Use WTF::move().

  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
Call releaseFileDescriptor() instead of fileDescritpro() since the
ownership is passed to the connection.

09:08 Changeset [183188] by ap@apple.com
  • 4 edits in trunk/Source

Build fix.

../WebKit2:

  • WebProcess/cocoa/WebProcessCocoa.mm: Correct the case of an include file name.

../WTF:

  • WTF.xcodeproj/project.pbxproj: Make RAMSize.h a private header, now that it's used

from outside WTF.

08:58 Changeset [183187] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, make a suggested change I overlooked in Darin's review of
https://bugs.webkit.org/show_bug.cgi?id=144098

  • dom/Document.cpp:

(WebCore::Document::removePlaybackTargetPickerClient): const auto& -> auto
(WebCore::Document::showPlaybackTargetPicker): Ditto.
(WebCore::Document::playbackTargetPickerClientStateDidChange): Ditto.
(WebCore::Document::playbackTargetAvailabilityDidChange): Ditto.
(WebCore::Document::setPlaybackTarget): Ditto.
(WebCore::Document::setShouldPlayToPlaybackTarget): Ditto.

08:52 Changeset [183186] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Use std::unique_ptr instead of OwnPtr in ThreadGlobalData
https://bugs.webkit.org/show_bug.cgi?id=141950

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-04-23
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • dom/EventNames.h:

(WebCore::EventNames::create):

  • loader/cache/CachedResourceRequestInitiators.h:
  • platform/ThreadGlobalData.cpp:

(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):

  • platform/ThreadGlobalData.h:
08:49 Changeset [183185] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Some media tests assert after r183096
https://bugs.webkit.org/show_bug.cgi?id=144098

Reviewed by Darin Adler.

  • dom/Document.cpp:

(WebCore::Document::removePlaybackTargetPickerClient): Don't assert if the client has already

been removed from the map. This happens when a media element is removed from the document
before its destructor runs and is not an error.

(WebCore::Document::showPlaybackTargetPicker): It is an error to call this after the client

has been removed from the map so leave the assert in a debug build, but return early
so a release build doesn't crash.

(WebCore::Document::playbackTargetPickerClientStateDidChange): Ditto.
(WebCore::Document::playbackTargetAvailabilityDidChange): Use "auto" for the map iterator variable.
(WebCore::Document::setPlaybackTarget): Ditto.
(WebCore::Document::setShouldPlayToPlaybackTarget): Ditto.

  • dom/Document.h: Fix map typedef names.
02:43 Changeset [183184] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix debug build after r183176.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::Handle::decode):
(WebKit::SharedMemory::createHandle):

02:06 Changeset [183183] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

DOM nodes should be allocated with fastMalloc().

Unreviewed. This got lost in the TreeShared merge. :|

  • dom/Node.h:
01:24 Changeset [183182] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

01:22 Changeset [183181] by akling@apple.com
  • 15 edits in trunk/Source

There should only be one way to get the system memory size.
<https://webkit.org/b/144081>

Reviewed by Antti Koivisto.

Source/WebKit/mac:

  • Misc/WebKitSystemBits.h:
  • Misc/WebKitSystemBits.m:

(WebMemorySize): Deleted.

  • WebView/WebView.mm:

(+[WebView _setCacheModel:]):
(roundUpToPowerOf2): Deleted.

Source/WebKit/win:

  • WebView.cpp:

(WebView::setCacheModel):

Source/WebKit2:

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformSetCacheModel):
(WebKit::memorySize): Deleted.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformSetCacheModel):
(WebKit::memorySize): Deleted.

Source/WTF:

Merge all the logic from other RAM size fetcher helpers into WTF's.

Darwin ports now use host_info() instead of sysctl(), since that was the more common way
of doing this.

Also bumped the fallback answer from 128 MB to 512 MB to bring it closer to today's hardware.

Finally, the number is rounded up to the next multiple of 128 MB, to avoid misunderstandings
on some systems where the number returned by the kernel is slightly lower than the marketing
number. Removed the "fudging" that was used in some places, since this fixes that cleanly.

  • wtf/RAMSize.cpp:

(WTF::computeRAMSize):

01:15 Changeset [183180] by bshafiei@apple.com
  • 26 edits
    4 copies in branches/safari-600.7-branch

Merged r181656 and r182985. rdar://problem/20545362&20645491

01:12 Changeset [183179] by cdumez@apple.com
  • 7 edits in trunk/Source

[WK2] WebDiagnosticLoggingClient is leaking
https://bugs.webkit.org/show_bug.cgi?id=144089
<rdar://problem/19706214>

Reviewed by Darin Adler.

WebDiagnosticLoggingClient is leaking. It is constructed inside WebPage
constructor but there is no code destroying it.

This patch adds a new xxxDestroyed() virtual function to
DiagnosticLoggingClient and that is overriden in
WebDiagnosticLoggingClient to call "delete this". This is the same
pattern as for other WK2 clients (e.g. WebFrameLoaderClient,
WebProgressTrackerClient).

Source/WebCore:

  • loader/EmptyClients.h:
  • page/DiagnosticLoggingClient.h:
  • page/MainFrame.cpp:

(WebCore::MainFrame::~MainFrame):

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::mainFrameDestroyed):

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
00:57 Changeset [183178] by antti@apple.com
  • 2 edits in trunk/Source/WebCore

CrashTracer: WebProcess at com.apple.WebCore: WebCore::toScriptElementIfPossible + 4
https://bugs.webkit.org/show_bug.cgi?id=144050
rdar://problem/15534973

Reviewed by Chris Dumez.

We are seeing null Element pointer crashes with this stack:

47 com.apple.WebCore: WebCore::toScriptElementIfPossible + 4 <==
47 com.apple.WebCore: WebCore::ScriptRunner::timerFired + 452
47 com.apple.WebCore: WebCore::ThreadTimers::sharedTimerFiredInternal + 175

The most likely cause seems to be that this code

ASSERT(m_pendingAsyncScripts.contains(scriptElement));
m_scriptsToExecuteSoon.append(m_pendingAsyncScripts.take(scriptElement));

in ScriptRunner::notifyScriptReady fails to find scriptElement and we are left with a null entry in
m_scriptsToExecuteSoon. However I haven't managed to repro this or find the exact path how this
could happen. The related code is fragile with lot of state (in ScriptElement class)
and involves many opportunities for re-entry via scripts.

No repro, no test case.

  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::timerFired):

Paper this over by adding a null check. We could check m_pendingAsyncScripts.take() above
but this also covers possibility this is caused by something else.

00:47 Changeset [183177] by bshafiei@apple.com
  • 17 edits in branches/safari-600.7-branch

Roll out r181656. rdar://problem/20545362

00:28 Changeset [183176] by carlosgc@webkit.org
  • 7 edits in trunk/Source/WebKit2

[UNIX] Simplify the file descriptor handling in SharedMemory
https://bugs.webkit.org/show_bug.cgi?id=144046

Reviewed by Darin Adler.

Simplify the file descriptor handling and clarify its ownership by
using IPC::Attachment in SharedMemory::Handle instead of fd and
size members. SharedMemory::Handle::adoptFromAttachment() has been
renamed as SharedMemory::Handle::adoptAttachment() and receives an
IPC::Attachment. And SharedMemory::Handle::releaseToAttachment()
has been renamed as SharedMemory::Handle::releaseAttachment().

  • Platform/IPC/Attachment.h: Add move constructor and move assigned operator.
  • Platform/IPC/Connection.h:

(IPC::Connection::identifierIsNull): A file descriptor is null
when it's -1 no 0.

  • Platform/IPC/unix/AttachmentUnix.cpp:

(IPC::Attachment::Attachment):
(IPC::Attachment::operator=):
(IPC::Attachment::dispose): Reset the file descriptor after
closing it.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage): Use
SharedMemory::Handle::adoptAttachment() that receives an
IPC::Attachment now.
(IPC::Connection::sendOutgoingMessage): Use
SharedMemory::Handle::releaseAttachment().

  • Platform/SharedMemory.h:
  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::Handle::Handle): Remove initializers for
file descriptor and size members.
(WebKit::SharedMemory::Handle::clear): Dispose the attachment.
(WebKit::SharedMemory::Handle::isNull): Handle is null if the
attachment file descriptor is -1.
(WebKit::SharedMemory::Handle::encode): Use releaseAttachment().
(WebKit::SharedMemory::Handle::decode): Use adoptAttachment().
(WebKit::SharedMemory::Handle::releaseAttachment): Implement it
using move.
(WebKit::SharedMemory::Handle::adoptAttachment): Ditto.
(WebKit::SharedMemory::map): Use
IPC::Attachment::releaseFileDescriptor() instead of manually
changing the member.
(WebKit::SharedMemory::createHandle): Initialize the handle
attachment with the duplicated file descriptor and size.

00:24 Changeset [183175] by simon.fraser@apple.com
  • 4 edits in trunk/Source/WebCore

Use a typedef for TileGrid tile validation policy flags
https://bugs.webkit.org/show_bug.cgi?id=144085

Reviewed by Tim Horton.

Replace 'unsigned' with a typedef for the bitmask of TileValidationPolicyFlags.

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::tileRevalidationTimerFired):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::revalidateTiles):

  • platform/graphics/ca/TileGrid.h:
00:21 Changeset [183174] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Slap Node's reference counting functions with ALWAYS_INLINE stick.

Speculative fix for weird ~3% regression on Speedometer seen after TreeShared
was merged into Node. Since the memory layout didn't change, failure to inline
seems like a possible source of regression.

  • dom/Node.h:

(WebCore::Node::ref):
(WebCore::Node::deref):
(WebCore::Node::hasOneRef):
(WebCore::Node::refCount):

04/22/15:

23:03 Changeset [183173] by simon.fraser@apple.com
  • 7 edits in trunk/Source/WebCore

[iOS] Move computeCoverageRect code from FrameView into TileController
https://bugs.webkit.org/show_bug.cgi?id=144087

Reviewed by Benjamin Poulain.

There is code in four different places that adjusts tiling coverage rect:

  1. LegacyTileCache. This will remain unchanged.
  2. FrameView::computeTileCoverageRect(). This was added to do velocity-based

page tiled coverage expansion for iOS WK2.

  1. TileController::computeTileCoverageRect(): this is used for the page tiles

on Mac.

  1. GraphicsLayerCA::adjustTiledLayerVisibleRect(). This is used by non-page

tiled layers on both iOS and Mac.

This patch reduced this list to 3, coalescing FrameView::computeTileCoverageRect()
and TileController::computeTileCoverageRect(). It removes the rect inflation that
affects the visibleRect passed into rootLayer->flushCompositingState() for iOS,
but the page tiles now do an identical coverage inflation. The visible rect
change does affect visible rect computations for non-page tiled backings, but
a future patch will restore that.

  • page/FrameView.cpp:

(WebCore::FrameView::setScrollVelocity):
(WebCore::FrameView::computeCoverageRect): Deleted.

  • page/FrameView.h:
  • platform/graphics/TiledBacking.h:

(WebCore::VelocityData::VelocityData):

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::setVelocity):
(WebCore::TileController::computeTileCoverageRect):

  • platform/graphics/ca/TileController.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

23:02 Changeset [183172] by darin@apple.com
  • 26 edits in trunk/Source

Remove OwnPtr and PassOwnPtr use from WebKit/cf, WebKit/mac, and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=143943

Reviewed by Anders Carlsson.

Source/WebCore:

  • editing/Editor.cpp:

(WebCore::Editor::insertDictationPhrases): Changed this iOS-only
function to take a Vector<Vector<String>>&& and not involve PassOwnPtr.
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Changed this iOS-only
function to take a Vector<Vector<String>> and not involve PassOwnPtr. Also made
it take a reference rather than a pointer to the element and simplify the code
a bit using modern for loops and auto.

  • editing/Editor.h: Ditto.
  • editing/ios/DictationCommandIOS.cpp:

(WebCore::DictationCommandIOS::DictationCommandIOS): Take
a Vector<Vector<String>>&& instead of a PassOwnPtr.
(WebCore::DictationCommandIOS::~DictationCommandIOS): Deleted. No need to
explicitly define this.
(WebCore::DictationCommandIOS::doApply): Updated to use modern for loop and
work with a Vector<Vector<String>> instead of an OwnPtr.

  • editing/ios/DictationCommandIOS.h: Updated to not use PassOwnPtr and OwnPtr.

Also modernized a bit by using override.

  • platform/network/ios/QuickLook.h: Return an NSURLRequest * instead of a

PassOwnPtr<ResourceRequest> from this iOS-specific function.

  • platform/network/ios/QuickLook.mm:

(WebCore::registerQLPreviewConverterIfNeeded): Ditto.

Source/WebKit/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp: Removed unneeded include.

Source/WebKit/mac:

  • Plugins/Hosted/ProxyInstance.h: Removed unneeded include.
  • Plugins/WebBaseNetscapePluginView.h: Ditto.
  • Plugins/WebNetscapePluginEventHandler.h: Use unique_ptr instead of

PassOwnPtr for the create function. Also tweaked formatting and removed
unneeded forward declaration of CGRect.

  • Plugins/WebNetscapePluginEventHandler.mm:

(WebNetscapePluginEventHandler::create): Changed to use unique_ptr and
make_unique.

  • Plugins/WebNetscapePluginView.h: Use unique_ptr instead of OwnPtr for

the _eventHandler field.

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView destroyPlugin]): Changed code to work with unique_ptr.

  • WebCoreSupport/WebUserMediaClient.mm: Removed unneeded include.
  • WebView/WebDeviceOrientationProviderMock.mm: Changed to use make_unique.
  • WebView/WebDeviceOrientationProviderMockInternal.h: Changed to use unique_ptr.
  • WebView/WebFrame.mm:

(vectorForDictationPhrasesArray): Changed to return Vector<Vector<String>> and
not a PassOwnPtr. Also rewrote to be much simpler, although there is still a
pre-existing problem here where this could put empty vectors into the result,
and I'm pretty sure the client never expects any of the Vector<String> to be empty.
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
Rewrote logic to involve WebCore types a bit less; old code was round tripping
things through WebCore::URL for no obvious reason.

  • WebView/WebFrameInternal.h: Changed vectorForDictationPhrasesArray to return

a Vector<Vector<String>> and not a PassOwnPtr.

  • WebView/WebFullScreenController.h: Removed unneeded include.
  • WebView/WebViewData.h: Changed m_alternativeTextUIController to be a

m_alternativeTextUIController.

  • WebView/WebViewData.mm:

(-[WebViewPrivate init]): Use make_unique to initialize m_alternativeTextUIController.

Source/WebKit2:

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:

Removed unneeded include.

22:56 Changeset [183171] by aestes@apple.com
  • 11 edits in branches/safari-600.6-branch/LayoutTests

Unreviewed Mac gardening for safari-600.6-branch.

  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
  • platform/mac/media/audio-controls-rendering-expected.png:
  • platform/mac/media/audio-controls-rendering-expected.txt:
  • platform/mac/media/controls-strict-expected.png:
  • platform/mac/media/controls-strict-expected.txt:
  • platform/mac/media/video-no-audio-expected.png:
  • platform/mac/media/video-no-audio-expected.txt:
  • platform/mac/platform/mac/fast/text/vertical-no-sideways-expected.png:
  • platform/mac/platform/mac/fast/text/vertical-no-sideways-expected.txt:
22:26 Changeset [183170] by jinwoo7.song@samsung.com
  • 4 edits in trunk/Source/WebCore

Convert OwnPtr to std::unique_ptr in GraphicsContextCairo.cpp
https://bugs.webkit.org/show_bug.cgi?id=144033

Reviewed by Darin Adler.

Use unique_ptr for creating a copy of cairo_path_t and use lambda function
for custom deleter, cairo_path_destroy().

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::drawPathShadow): Use std::unique_ptr instead of OwnPtr.
(WebCore::GraphicsContext::clip): Call cairo_path_destroy() immediately.

  • platform/graphics/cairo/OwnPtrCairo.cpp:

(WTF::deleteOwnedPtr<cairo_path_t>): Deleted. Remove unnecessary deleter anymore.

  • platform/graphics/cairo/OwnPtrCairo.h: Ditto.
22:20 Changeset [183169] by darin@apple.com
  • 29 edits in trunk/Source

Eliminate remaining uses of OwnPtr and PassOwnPtr in WebCore outside the editing and platform directories
https://bugs.webkit.org/show_bug.cgi?id=143949

Reviewed by Andreas Kling.

Source/WebCore:

  • dom/ContainerNode.h: Removed unneeded includes and forward declarations.
  • dom/Document.h: Ditto.
  • dom/DocumentParser.h: Fixed comment to not mention PassOwnPtr.
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::create): Return a Ref instead of a PassRefPtr.
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation): Pass a reference
rather than a pointer to TextTrackRepresentation::create.
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): Return a
RefPtr instead of a PassRefPtr.

  • html/shadow/MediaControlElements.h: Use unique_ptr for m_textTrackRepresentation.

Also fix a couple uses of PassRefPtr.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::DocumentLoader): Use make_unique.
(WebCore::DocumentLoader::addAllArchiveResources): Ditto.
(WebCore::DocumentLoader::addArchiveResource): Ditto.
(WebCore::DocumentLoader::clearArchiveResources): Set to nullptr instead of calling clear.
(WebCore::DocumentLoader::startLoadingMainResource): Use make_unique.

  • loader/DocumentLoader.h: Made m_archiveResourceCollection and

m_applicationCacheHost use unique_ptr.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData): Use delete here instead
of using OwnPtr to do the deletion. Matches the other code nearby.

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::disassociateDocumentLoader): Handle case where the host is
null; this happens during the DocumentLoader destruction process since unique_ptr sets itself
to null before it destroys the object it points to and OwnPtr does not.

  • loader/cocoa/DiskCacheMonitorCocoa.mm:

(WebCore::DiskCacheMonitor::monitorFileBackingStoreCreation): Use delete instead of adoptPtr
to delete a raw pointer.
(WebCore::DiskCacheMonitor::DiskCacheMonitor): Use unique_ptr instead of OwnPtr.

  • page/DragController.h: Removed some unneeded forward declarations and changed the

create function to return unique_ptr.

  • platform/LayoutUnit.h: Removed wtf_ceil workaround hack here. Not sure why we ever did it

this way!

  • platform/graphics/FontCascade.cpp:

(WTF::deleteOwnedPtr<WebCore::TextLayout>): Deleted.
(WebCore::FontCascade::createLayout): Changed to return a unique_ptr.
(WebCore::FontCascade::deleteLayout): Deleted.

  • platform/graphics/FontCascade.h: Made the above changes.
  • platform/graphics/ImageBuffer.h: Changed copyImage to return a RefPtr instead of a PassRefPtr.
  • platform/graphics/TextTrackRepresentation.cpp:

(WebCore::TextTrackRepresentation::create): Use make_unique and return a unique_ptr.

  • platform/graphics/TextTrackRepresentation.h: Removed unneeded includes and forward declarations

and made create return a unique_ptr.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::copyImage): Changed to return a RefPtr.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::copyImage): Changed to return a RefPtr.

  • platform/graphics/ios/TextTrackRepresentationIOS.h: Use reference instead of pointer,

made more things private.

  • platform/graphics/ios/TextTrackRepresentationIOS.mm:

(TextTrackRepresentation::create): Use make_unique.
(TextTrackRepresentationIOS::TextTrackRepresentationIOS): Take a reference.

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::FontCascade::createLayout): Return a unique_ptr with a custom destruction function.
The custom destruction function eliminates the need to put TextLayout in a visible header.
(WebCore::FontCascade::deleteLayout): Deleted. Use a lambda instead.
(WebCore::roundCGFloat): Deleted. Old fashioned way to deal with multiple floating point sizes.
Just use std::round instead.
(WebCore::ceilCGFloat): Deleted. Same as above. Just use std::ceil instead.
(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Use std::round and std::ceil.

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderTextInfo::RenderTextInfo): Deleted. Can compile constructor and destructor
now thanks to use of unique_ptr with a custom deleter.
(WebCore::RenderTextInfo::~RenderTextInfo): Deleted. Ditto.
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange): Updated for RenderTextInfo data member
name change.

  • rendering/RenderView.h: Removed unneeded include.
  • rendering/line/BreakingContext.h: Removed unneeded include.

(WebCore::BreakingContext::handleOutOfFlowPositioned): Updated for RenderTextInfo data member
name change.
(WebCore::BreakingContext::handleFloat): Ditto.
(WebCore::BreakingContext::handleReplaced): Ditto.
(WebCore::BreakingContext::handleText): Ditto.
(WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord): Ditto.

  • rendering/line/LineBreaker.h: Made the RenderTextInfo struct more like a struct by taking

off all the m_ prefixes from the data member names. Initialized all the values in the struct
to defaults so we don't need an explicit constructor. We also don't need an explicit destructor
any more due to use of a unique_ptr with a deleter.

Source/WTF:

  • wtf/MathExtras.h:

(wtf_ceil): Deleted. This was a workaround for a bug that was introduced in Leopard and
fixed in Snow Leopard <rdar://problem/6286405>, so we don't need the workaround any more.

21:38 Changeset [183168] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebCore

Volume slider appears/doesn't appear at the wrong times.
https://bugs.webkit.org/show_bug.cgi?id=144072.
<rdar://problem/20576145>

Reviewed by Dean Jackson.

Set background divs to match volume box dimensions.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-volume-slider-container-background):
(audio::-webkit-media-controls-volume-slider-container-tint):

Draw the volume slider immediately on mousing over the mute box.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createControls):
(Controller.prototype.handleMuteBoxOver):

21:31 Changeset [183167] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac][MediaSource] Crash when SourceBuffer::provideMediaData() is called re-entrantly.
https://bugs.webkit.org/show_bug.cgi?id=144023

Reviewed by Darin Adler.

Partially revert r183097 (as it was not sufficient to protect against re-entrancy). Instead,
protect against re-entrancy in provideMediaData() directly by removing the first sample
from the TrackBuffer's decodeQueue at a time. If provideMediaData() is called re-entrantly,
or if any other method which modifies the decodeQueue is called from inside
provideMediaData, no iterators will be invalidated.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):

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

(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples):

19:55 Changeset [183166] by bshafiei@apple.com
  • 4 edits in tags/Safari-601.1.28.1/Source/WebCore

Merged r183153. rdar://problem/20578301

19:53 Changeset [183165] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.28.1/Source

Versioning.

19:51 Changeset [183164] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.28.1

New tag.

19:40 Changeset [183163] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix debug build.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::performSubstitutionForEdge):

19:36 Changeset [183162] by fpizlo@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Nodes should have an optional epoch field
https://bugs.webkit.org/show_bug.cgi?id=144084

Reviewed by Ryosuke Niwa and Mark Lam.

This makes it easier to do epoch-based analyses on nodes. I plan to do just that in
https://bugs.webkit.org/show_bug.cgi?id=143735. Currently the epoch field is not yet
used.

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::canonicalizeGetLocalFor):

  • dfg/DFGCSEPhase.cpp:
  • dfg/DFGEpoch.h:

(JSC::DFG::Epoch::fromUnsigned):
(JSC::DFG::Epoch::toUnsigned):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::clearReplacements):
(JSC::DFG::Graph::clearEpochs):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::performSubstitutionForEdge):

  • dfg/DFGNode.h:

(JSC::DFG::Node::Node):
(JSC::DFG::Node::replaceWith):
(JSC::DFG::Node::replacement):
(JSC::DFG::Node::setReplacement):
(JSC::DFG::Node::epoch):
(JSC::DFG::Node::setEpoch):

  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

19:29 Changeset [183161] by mark.lam@apple.com
  • 9 edits
    2 adds in trunk/Source/JavaScriptCore

Fix assertion failure and race condition in Options::dumpSourceAtDFGTime().
https://bugs.webkit.org/show_bug.cgi?id=143898

Reviewed by Filip Pizlo.

CodeBlock::dumpSource() will access SourceCode strings in a way that requires
ref'ing of the underlying StringImpls. This is unsafe to do from arbitrary
compilation threads because StringImpls are not thread safe. As a result, we get
an assertion failure when we run with JSC_dumpSourceAtDFGTime=true on a debug
build.

This patch fixes the issue by only collecting the CodeBlock (and associated info)
into a DeferredSourceDump record while compiling, and stashing it away in a
deferredSourceDump list in the DeferredCompilationCallback object to be dumped
later.

When compilation is done, the callback object will be notified that
compilationDidComplete(). We will dump the SourceCode strings from there.
Since compilationDidComplete() is guaranteed to only be called on the thread
doing JS execution, it is safe to access the SourceCode strings there and ref
their underlying StringImpls as needed.

(JSC::DeferredCompilationCallback::compilationDidComplete):
(JSC::DeferredCompilationCallback::sourceDumpInfo):
(JSC::DeferredCompilationCallback::dumpCompiledSources):

  • bytecode/DeferredCompilationCallback.h:
  • bytecode/DeferredSourceDump.cpp: Added.

(JSC::DeferredSourceDump::DeferredSourceDump):
(JSC::DeferredSourceDump::dump):

  • bytecode/DeferredSourceDump.h: Added.
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseCodeBlock):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

19:16 Changeset [183160] by zalan@apple.com
  • 151 edits
    4 adds in trunk

Create RenderRubyText for <rt> only when the parent renderer is a RenderRuby.
https://bugs.webkit.org/show_bug.cgi?id=144035
rdar://problem/20604467

Reviewed by Darin Adler.

This patch extends HTMLElement::createElementRenderer()
with the render tree insertion point so that we can create different type
of renderers based on the render tree context.

Source/WebCore:

Test: fast/ruby/ruby-rt-with-region-crash.html

  • CMakeLists.txt:
  • Modules/plugins/PluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.h:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::Element::createElementRenderer):

  • dom/Element.h:
  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::createElementRenderer):

  • html/HTMLAppletElement.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::createElementRenderer):

  • html/HTMLAttachmentElement.h:
  • html/HTMLBRElement.cpp:

(WebCore::HTMLBRElement::createElementRenderer):

  • html/HTMLBRElement.h:
  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::createElementRenderer):

  • html/HTMLButtonElement.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createElementRenderer):

  • html/HTMLCanvasElement.h:
  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::createElementRenderer):

  • html/HTMLDetailsElement.h:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createElementRenderer):

  • html/HTMLElement.h:
  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::createElementRenderer):

  • html/HTMLFieldSetElement.h:
  • html/HTMLFrameElement.cpp:

(WebCore::HTMLFrameElement::createElementRenderer):

  • html/HTMLFrameElement.h:
  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::createElementRenderer):

  • html/HTMLFrameSetElement.h:
  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::createElementRenderer):

  • html/HTMLIFrameElement.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::createElementRenderer):

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

(WebCore::HTMLInputElement::createElementRenderer):

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

(WebCore::HTMLMediaElement::parseAttribute):

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

(WebCore::HTMLMeterElement::createElementRenderer):

  • html/HTMLMeterElement.h:
  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::createElementRenderer):

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

(WebCore::HTMLPlugInImageElement::createElementRenderer):

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

(WebCore::HTMLProgressElement::createElementRenderer):

  • html/HTMLProgressElement.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::createElementRenderer):

  • html/HTMLSelectElement.h:
  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::createElementRenderer):

  • html/HTMLSummaryElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::createElementRenderer):

  • html/HTMLTextAreaElement.h:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createElementRenderer):

  • html/HTMLVideoElement.h:
  • html/HTMLWBRElement.cpp:

(WebCore::HTMLWBRElement::createElementRenderer):

  • html/HTMLWBRElement.h:
  • html/RubyElement.cpp:

(WebCore::RubyElement::createElementRenderer):

  • html/RubyElement.h:
  • html/RubyTextElement.cpp:

(WebCore::RubyTextElement::createElementRenderer):

  • html/RubyTextElement.h:
  • html/shadow/DetailsMarkerControl.cpp:

(WebCore::DetailsMarkerControl::createElementRenderer):

  • html/shadow/DetailsMarkerControl.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTimelineContainerElement::createElementRenderer):
(WebCore::MediaControlVolumeSliderContainerElement::createElementRenderer):
(WebCore::MediaControlTextTrackContainerElement::createElementRenderer):

  • html/shadow/MediaControlElements.h:
  • html/shadow/MeterShadowElement.cpp:

(WebCore::MeterInnerElement::createElementRenderer):

  • html/shadow/MeterShadowElement.h:
  • html/shadow/ProgressShadowElement.cpp:

(WebCore::ProgressInnerElement::createElementRenderer):

  • html/shadow/ProgressShadowElement.h:
  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::createElementRenderer):
(WebCore::SliderContainerElement::createElementRenderer):

  • html/shadow/SliderThumbElement.h:
  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerContainer::createElementRenderer):
(WebCore::TextControlInnerTextElement::createElementRenderer):

  • html/shadow/TextControlInnerElements.h:
  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::createElementRenderer):

  • html/shadow/mac/ImageControlsButtonElementMac.h:
  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElementMac::createElementRenderer):

  • html/shadow/mac/ImageControlsRootElementMac.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::createElementRenderer):

  • html/track/VTTCue.h:
  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::createElementRenderer):

  • mathml/MathMLInlineContainerElement.h:
  • mathml/MathMLMathElement.cpp:

(WebCore::MathMLMathElement::createElementRenderer):

  • mathml/MathMLMathElement.h:
  • mathml/MathMLMencloseElement.cpp:

(WebCore::MathMLMencloseElement::createElementRenderer):

  • mathml/MathMLMencloseElement.h:
  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::createElementRenderer):

  • mathml/MathMLSelectElement.h:
  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::createElementRenderer):

  • mathml/MathMLTextElement.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::clone):

  • rendering/RenderElement.cpp:
  • rendering/RenderRuby.h:

(WebCore::isRuby):

  • style/RenderTreePosition.cpp: Added.

(WebCore::RenderTreePosition::computeNextSibling):
(WebCore::RenderTreePosition::invalidateNextSibling):
(WebCore::RenderTreePosition::previousSiblingRenderer):
(WebCore::RenderTreePosition::nextSiblingRenderer):
(WebCore::RenderTreePosition::isRendererReparented):

  • style/RenderTreePosition.h: Added.

(WebCore::RenderTreePosition::RenderTreePosition):
(WebCore::RenderTreePosition::parent):
(WebCore::RenderTreePosition::canInsert):
(WebCore::RenderTreePosition::insert):

  • style/StyleResolveTree.cpp:

(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
(WebCore::Style::textRendererIsNeeded):
(WebCore::Style::RenderTreePosition::parent): Deleted.
(WebCore::Style::isRendererReparented): Deleted.
(WebCore::Style::nextSiblingRenderer): Deleted.
(WebCore::Style::RenderTreePosition::RenderTreePosition): Deleted.
(WebCore::Style::RenderTreePosition::canInsert): Deleted.
(WebCore::Style::RenderTreePosition::insert): Deleted.
(WebCore::Style::RenderTreePosition::computeNextSibling): Deleted.
(WebCore::Style::RenderTreePosition::invalidateNextSibling): Deleted.
(WebCore::Style::previousSiblingRenderer): Deleted.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::createElementRenderer):

  • svg/SVGAElement.h:
  • svg/SVGAltGlyphElement.cpp:

(WebCore::SVGAltGlyphElement::createElementRenderer):

  • svg/SVGAltGlyphElement.h:
  • svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::createElementRenderer):

  • svg/SVGCircleElement.h:
  • svg/SVGClipPathElement.cpp:

(WebCore::SVGClipPathElement::createElementRenderer):

  • svg/SVGClipPathElement.h:
  • svg/SVGDefsElement.cpp:

(WebCore::SVGDefsElement::createElementRenderer):

  • svg/SVGDefsElement.h:
  • svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::createElementRenderer):

  • svg/SVGEllipseElement.h:
  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::createElementRenderer):

  • svg/SVGFilterElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::createElementRenderer):

  • svg/SVGFilterPrimitiveStandardAttributes.h:
  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::createElementRenderer):

  • svg/SVGForeignObjectElement.h:
  • svg/SVGGElement.cpp:

(WebCore::SVGGElement::createElementRenderer):

  • svg/SVGGElement.h:
  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::createElementRenderer):

  • svg/SVGGraphicsElement.h:
  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::createElementRenderer):

  • svg/SVGImageElement.h:
  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::createElementRenderer):

  • svg/SVGLinearGradientElement.h:
  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::createElementRenderer):

  • svg/SVGMarkerElement.h:
  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::createElementRenderer):

  • svg/SVGMaskElement.h:
  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::createElementRenderer):

  • svg/SVGPathElement.h:
  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::createElementRenderer):

  • svg/SVGPatternElement.h:
  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::createElementRenderer):

  • svg/SVGRadialGradientElement.h:
  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::createElementRenderer):

  • svg/SVGRectElement.h:
  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::createElementRenderer):

  • svg/SVGSVGElement.h:
  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::createElementRenderer):

  • svg/SVGStopElement.h:
  • svg/SVGSwitchElement.cpp:

(WebCore::SVGSwitchElement::createElementRenderer):

  • svg/SVGSwitchElement.h:
  • svg/SVGSymbolElement.cpp:

(WebCore::SVGSymbolElement::createElementRenderer):

  • svg/SVGSymbolElement.h:
  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::createElementRenderer):

  • svg/SVGTRefElement.h:
  • svg/SVGTSpanElement.cpp:

(WebCore::SVGTSpanElement::createElementRenderer):

  • svg/SVGTSpanElement.h:
  • svg/SVGTextElement.cpp:

(WebCore::SVGTextElement::createElementRenderer):

  • svg/SVGTextElement.h:
  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::createElementRenderer):

  • svg/SVGTextPathElement.h:
  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::createElementRenderer):

  • svg/SVGUseElement.h:

LayoutTests:

  • fast/ruby/ruby-rt-with-region-crash-expected.txt: Added.
  • fast/ruby/ruby-rt-with-region-crash.html: Added.
19:15 Changeset [183159] by mcatanzaro@igalia.com
  • 8 edits in trunk

[CMake] Clean up JSC JIT options
https://bugs.webkit.org/show_bug.cgi?id=143998

Reviewed by Filip Pizlo.

.:

  • Source/cmake/OptionsEfl.cmake: Remove handling of ENABLE_LLINT_C_LOOP and preprocessor define for ENABLE_FTL_NATIVE_CALL_INLINING.
  • Source/cmake/OptionsMac.cmake: Remove override of ENABLE_LLINT_C_LOOP
  • Source/cmake/WebKitFeatures.cmake: Remove ENABLE_LLINT_C_LOOP. Add ENABLE_DFG_JIT and ENABLE_FTL_NATIVE_CALL_INLINING. Specify proper dependencies for these features.
  • Source/cmakeconfig.h.cmake: Remove ENABLE_LLINT_C_LOOP and add ENABLE_DFG_JIT.

Tools:

  • Scripts/build-jsc: Do not use -ENABLE_LLINT_C_LOOP on CMake ports.
  • Scripts/webkitperl/FeatureList.pm: Remove ENABLE_LLINT_C_LOOP.
19:14 Changeset [183158] by bfulgham@apple.com
  • 21 edits in trunk/Source

VisibleSelection should only accept Range by reference
https://bugs.webkit.org/show_bug.cgi?id=144047

Reviewed by Tim Horton.

Source/WebCore:

Update VisibleSelection to expect a Range reference argument, rather than a
Range*. Also update all uses of VisibleSelection to pass a reference instead
of a pointer.

No change in behavior, so new tests.

  • editing/Editor.cpp:

(WebCore::Editor::selectionForCommand):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::transpose):
(WebCore::Editor::findString):
(WebCore::Editor::rangeOfString):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectedRange):

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::SpellingCorrectionCommand):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::VisibleSelection):

  • editing/VisibleSelection.h:
  • editing/mac/EditorMac.mm:

(WebCore::Editor::replaceNodeFromPasteboard):

  • page/DragController.cpp:

(WebCore::selectElement):

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):

  • rendering/SelectionSubtreeRoot.cpp:

(WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):

Source/WebKit/mac:

Update all uses of VisibleSelection to pass a Range reference instead
of a Range pointer.

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::imageForCurrentSharingServicePickerItem):

  • WebView/WebFrame.mm:

(-[WebFrame _selectNSRange:]):

Source/WebKit2:

Update all uses of VisibleSelection to pass a Range reference instead
of a Range pointer.

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::renderedImage):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::getImageForFindMatch):
(WebKit::FindController::selectFindMatch):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::setCompositionAsync):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::insertDictatedTextAsync):

19:12 Changeset [183157] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Audio controls should render with a black background.
https://bugs.webkit.org/show_bug.cgi?id=144074.
<rdar://problem/20596939>

Reviewed by Darin Adler.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel-background-container):
(audio::-webkit-media-controls-panel .volume-box):

19:11 Changeset [183156] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Inline media control icons scale down when video is too small.
https://bugs.webkit.org/show_bug.cgi?id=144073.
<rdar://problem/20659451>

Reviewed by Darin Adler.

Just make sure the buttons use min-width.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-rewind-button):
(audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-panel .mute-box):
(video::-webkit-media-controls-volume-max-button):
(audio::-webkit-media-controls-wireless-playback-picker-button):
(audio::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-fullscreen-button):

16:28 Changeset [183155] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Add new optimized fullscreen delegate methods
https://bugs.webkit.org/show_bug.cgi?id=144071

Reviewed by Eric Carlson.

AVPlayerViewController requires three new delegate methods to be implemented by WebKit which
notify the delegates exactly when the owning view will enter and leave fullscreen mode. One
of the delegate methods (-enterOptimizedFullScreenModeRedirectingVideoToLayer:) gives the
delegate an opportunity to move the video sublayer into a new CALayer. The matching delegate
(-leaveOptimizedFullScreenMode), allows us to return our sublayer back to its original parent.
The third delegate (-isOptimizedFullscreenPossible) is required so the AVPlayerViewController
knows whether to allow a standard -> optimized fullscreen transition.

Drive-by fix: initialize ivars at declaration time.

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

(-[WebAVPlayerController isOptimizedFullscreenPossible]):
(-[WebAVVideoLayer enterOptimizedFullScreenModeRedirectingVideoToLayer:]):
(-[WebAVVideoLayer leaveOptimizedFullScreenMode]):
(WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit):
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal):
(+[WebAVPlayerController keyPathsForValuesAffectingPlayingOnExternalScreen]): Deleted.

16:23 Changeset [183154] by bfulgham@apple.com
  • 5 edits in trunk/LayoutTests

Context menu doesn't account for selection semantics

16:22 Changeset [183153] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Caret does not line up with text when using the system font
https://bugs.webkit.org/show_bug.cgi?id=144076
<rdar://problem/20578301>

Reviewed by Enrica Casucci.

Determining caret locations often uses the complex text codepath, which means
the complex text codepath must know about custom tracking.

This regression is due to r182512.

Note that this patch is a short-term solution until I can solve the bigger issue of
having two CTFontRefs and using each in their proper place.

No new tests because there is no way to robustly test the system font.

  • platform/graphics/Font.h:

(WebCore::Font::hasCustomTracking):

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::canUseFastGlyphAdvanceGetter):
(WebCore::Font::platformWidthForGlyph):
(WebCore::hasCustomTracking): Deleted.

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::getCFStringAttributes):

16:19 Changeset [183152] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

Add WK_ARRAY and WK_SET annotations
https://bugs.webkit.org/show_bug.cgi?id=144075
rdar://problem/19417770

Reviewed by Dan Bernstein.

  • Shared/API/Cocoa/WKFoundation.h:
  • UIProcess/API/Cocoa/WKBackForwardList.h:
  • UIProcess/API/Cocoa/WKUserContentController.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.h:
  • mac/postprocess-framework-headers.sh:
16:02 Changeset [183151] by bfulgham@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test fix after r183138.

  • editing/selection/context-menu-text-selection-lookup-expected.txt: The wrong

expectations were committed.

15:59 Changeset [183150] by ap@apple.com
  • 6 edits
    4 copies
    1 add in trunk/LayoutTests

Update results for two CSS tests affected by new fonts in OS X 10.10.3.

  • platform/mac-mavericks/css2.1: Added.
  • platform/mac-mavericks/css2.1/t1202-counter-04-b-expected.png: Copied from LayoutTests/platform/mac/css2.1/t1202-counter-04-b-expected.png.
  • platform/mac-mavericks/css2.1/t1202-counter-04-b-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t1202-counter-04-b-expected.txt.
  • platform/mac-mavericks/css2.1/t1202-counters-04-b-expected.png: Copied from LayoutTests/platform/mac/css2.1/t1202-counters-04-b-expected.png.
  • platform/mac-mavericks/css2.1/t1202-counters-04-b-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t1202-counters-04-b-expected.txt.
  • platform/mac/TestExpectations:
  • platform/mac/css2.1/t1202-counter-04-b-expected.png:
  • platform/mac/css2.1/t1202-counter-04-b-expected.txt:
  • platform/mac/css2.1/t1202-counters-04-b-expected.png:
  • platform/mac/css2.1/t1202-counters-04-b-expected.txt:
15:57 Changeset [183149] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.7-branch

Merge r182835. rdar://problem/20645249

15:46 Changeset [183148] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/text/emoji.html passes on OS X 10.10.3 and higher.

  • platform/mac/TestExpectations: Mark it as such.
15:43 Changeset [183147] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit/mac

[Mac] Device picker menu is positioned incorrectly in WK1
https://bugs.webkit.org/show_bug.cgi?id=144049
<rdar://problem/20493101>

Reviewed by Dean Jackson.

  • WebView/WebView.mm:

(-[WebView _showPlaybackTargetPicker:location:hasVideo:]): Mouse location is already in

window coordinates so don't call convertRect:toView:nil.

15:43 Changeset [183146] by dburkart@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebKit2

Merge r181580 for rdar://problem/20545393.

15:41 Changeset [183145] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebKit2

Merge r182746. rdar://problem/20645260

15:41 Changeset [183144] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.7-branch/Source/WebKit2

Merge r182084. rdar://problem/20557359

15:34 Changeset [183143] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebCore

Merge r182076. rdar://problem/20545378

15:28 Changeset [183142] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebKit2

Merge r181991. rdar://problem/20545332

15:25 Changeset [183141] by benjamin@webkit.org
  • 5 edits
    3 adds in trunk

Implement String.codePointAt()
https://bugs.webkit.org/show_bug.cgi?id=143934

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch adds String.codePointAt() as defined by ES6.
I opted for a C++ implementation for now.

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::codePointAt):
(JSC::stringProtoFuncCodePointAt):

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/string-code-point-at.js: Added.

(objectWithCustomToString.toString):
(objectThrowingOnToString.toString):
(objectCountingToString.toString):
(testLeadSurrogateOutOfBounds):
(testLeadSurrogateAsLastCharacter):
(testTrailSurrogateOutOfbounds):
(testAccessNullInString):
(testNormalCombinationOfSurrogates):

  • js/string-code-point-at-expected.txt: Added.
  • js/string-code-point-at.html: Added.
15:17 Changeset [183140] by bfulgham@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix after r183136.

  • WebProcess/WebPage/mac/WebPageMac.mm: Correct capitalization of

'HTMLPluginImageElement.h' -> 'HTMLPlugInImageElement.h'

15:17 Changeset [183139] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebKit2

Merge r181812. rdar://problem/20557289

15:10 Changeset [183138] by bfulgham@apple.com
  • 7 edits
    2 adds in trunk

Context menu doesn't account for selection semantics
https://bugs.webkit.org/show_bug.cgi?id=143958
<rdar://problem/19735706>

Reviewed by Tim Horton.

Source/WebCore:

Before using the default word-only selection for context menus, check with the
lookup service to see if we can get a semantically appropriate selection.

  • editing/EditingBehavior.h:

(WebCore::EditingBehavior::shouldSelectBasedOnDictionaryLookup): Added, so that we can
behavior correctly when using non-Mac editing behavior.

  • editing/mac/DictionaryLookup.mm:

(WebCore::rangeForDictionaryLookupAtHitTestResult): Modified to honor standard WebKit
behavior when hit testing at end-of-line/end-of-paragraph, etc.

  • page/EventHandler.cpp:

(WebCore::EventHandler::shouldAppendTrailingWhitespace): New helper function to share code.
(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup): Added.
(WebCore::EventHandler::selectClosestContextualWordFromMouseEvent): Added.
(WebCore::EventHandler::selectClosestContextualWordOrLinkFromMouseEvent): Renamed from selectClosestWordOrLinkFromMouseEvent.
Have this call the new 'selectClosestContextualWordFromMouseEvent' instead of the vanilla 'selectClosestWordFromMouseEvent'.

  • page/EventHandler.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup): Added.

LayoutTests:

  • editing/selection/context-menu-text-selection-lookup-expected.txt: Added.
  • editing/selection/context-menu-text-selection-lookup.html: Added.
14:41 Changeset [183137] by aestes@apple.com
  • 2 edits in branches/safari-600.6-branch/LayoutTests

Rebaseline cross-frame-access-call-expected.txt on safari-600.6-branch.

  • http/tests/security/cross-frame-access-call-expected.txt: Get rid of the line numbers.
14:23 Changeset [183136] by bfulgham@apple.com
  • 24 edits
    2 adds in trunk

Source/WebCore:
[Mac] Extend action menus to support PDF
https://bugs.webkit.org/show_bug.cgi?id=143895
<rdar://problem/19003333>

Reviewed by Tim Horton.

Tested by TestWebKitAPI ActionMenus.mm.

Add a new dictionary lookup method to support PDF Selections. This code replicates the
DOM Range-based logic used for HTML documents, but does so using the PDFKit API and
its support types.

  • Configurations/Base.xcconfig: Add PDFKit include path for build.
  • editing/mac/DictionaryLookup.h:
  • editing/mac/DictionaryLookup.mm:

(WebCore::expandSelectionByCharacters): Helper function for PDF support.
(WebCore::dictionaryLookupForPDFSelection): Added.

Source/WebKit/mac:
Extend action menus to support PDF
https://bugs.webkit.org/show_bug.cgi?id=143895
<rdar://problem/19003333>

Reviewed by Tim Horton.

Prevent a crash when someone attempts to invoke an action menu on a PDF hosted
in a WK1 view.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController performHitTestAtPoint:]): Handle WebPDFView as well as
the WebHTMLView case.

  • WebView/WebDocument.h:
  • WebView/WebHTMLView.h:
  • WebView/WebHTMLView.mm:

(-[WebHTMLView _frame]):

  • WebView/WebHTMLViewInternal.h:
  • WebView/WebPDFView.h:
  • WebView/WebPDFView.mm:

(-[WebPDFView _frame]): Added.

Source/WebKit2:
Extend action menus to support PDF
https://bugs.webkit.org/show_bug.cgi?id=143895
<rdar://problem/19003333>

Reviewed by Tim Horton.

If the mouse pointer is over a PDF, try to provide a relevant action menu for whatever
content is under the mouse. For now, we only support copying text and handling URLs.

If no text is selected, use the dictionary lookup service to find a semantically appropriate
selection underneath the mouse. This is consistent with how normal text is treated in pure HTML
views. If some text is already selected, and the mouse is over the existing selection, continue
using the selected text. Otherwise, discard the old selection and select the most appropriate
region under the mouse pointer.

  • Shared/API/c/WKActionMenuTypes.h: Add PDF menu option.
  • Shared/WebMouseEvent.cpp: Recognize mouse force events as valid mouse events.
  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForPDF]): Add simply copy text option.
(-[WKActionMenuController _defaultMenuItems]): Recognize PDFs and add relevant action
menu entries.

  • WebProcess/Plugins/Netscape/NetscapePlugin.h: Provide stub for new method.
  • WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Expose 'rectsForSelectionInLayerSpace',

'rectsForAnnotationInLayoutSpace', 'layout', and 'currentPage'.

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

(WebKit::PDFPlugin::getSelectionForWordAtPoint): Added.
(WebKit::PDFPlugin::existingSelectionContainsPoint): Added.
(WebKit::PDFPlugin::lookupTextAtLocation): Added.

  • WebProcess/Plugins/Plugin.h: Add declaration for new 'getSelectionForWordAtPoint' method.
  • WebProcess/Plugins/PluginProxy.h: Provide stub for new method.
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::getSelectionForWordAtPoint): Added.
(WebKit::PluginView::existingSelectionContainsPoint): Added.
(WebKit::PluginView::lookupTextAtLocation): Added.

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation): Update to support PDF documents and retrieve
relevant content to support later action menu handling.

Tools:
[Mac] Extend action menus to support PDF
https://bugs.webkit.org/show_bug.cgi?id=143895
<rdar://problem/19003333>

Reviewed by Tim Horton.

Reactivate the action menu tests, and add a new PDF-based test to make sure that selection
of PDF content works.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new 'test.pdf' resource to bundle.
  • TestWebKitAPI/Tests/WebKit2/action-menu-targets.html: Update with a new PDF pane.
  • TestWebKitAPI/Tests/WebKit2/test.pdf: Added.
  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenus.mm:

(-[ActionMenusTestWKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:userData:]):
Update to support PDF tests.
(TestWebKitAPI::windowPointForTarget): Add new target for PDF test.
(TestWebKitAPI::waitForPDFToLoad): New helper function to avoid starting test before the PDF is available.

14:22 Changeset [183135] by aestes@apple.com
  • 2 edits in branches/safari-600.6-branch/LayoutTests

Rebaseline video-controls-live-stream-expected.txt on safari-600.6-branch.

  • platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:

The -webkit-media-controls-panel-composited-parent line is no longer present on trunk, either.

14:12 Changeset [183134] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: clicking Timelines tree view nodes should not change the current content view
https://bugs.webkit.org/show_bug.cgi?id=132202

Patch by Matt Baker <mattbaker@apple.com> on 2015-04-22
Reviewed by Brian Burg.

TimelineSidebarPanel now prevents timeline views from switching to another content view while the content
browser is showing the TimelineRecordingContentView. Code responsible for creating and updating the tree
element close button, which was duplicated in multiple derived TimelineView classes, has been moved to the
TimelineView base class.

  • UserInterface/Views/LayoutTimelineView.js:

Updated name of location column, which was broken in a recent patch.
(WebInspector.LayoutTimelineView.prototype.treeElementDeselected):
(WebInspector.LayoutTimelineView.prototype.treeElementSelected):
Added overrides of new base class methods to handle view-specific highlight logic.
(WebInspector.LayoutTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.LayoutTimelineView.prototype._treeElementSelected): Deleted.
(WebInspector.LayoutTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked): Deleted.
Removed tree element close button logic.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.NetworkTimelineView.prototype.treeElementSelected):
Added overrides of new base class methods.
(WebInspector.NetworkTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.NetworkTimelineView.prototype._treeElementSelected): Deleted.
Removed tree element close button logic.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.RenderingFrameTimelineView.prototype.treeElementSelected):
Added overrides of new base class methods.

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype.get data):
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
Removed unused Name column and added "go to" button to the Domain column to show the selected resource.

  • UserInterface/Views/ScriptTimelineView.js:

(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.ScriptTimelineView.prototype.treeElementSelected):
Added overrides of new base class methods.
(WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
(WebInspector.ScriptTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.ScriptTimelineView.prototype._treeElementSelected): Deleted.
(WebInspector.ScriptTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked): Deleted.
Removed tree element close button logic.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
Prevent navigating to a different content view when showing the TimelineRecordingContentView.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.showContentViewForTreeElement):
(WebInspector.TimelineView.prototype.treeElementDeselected):
(WebInspector.TimelineView.prototype.treeElementSelected):
Tree element selection handlers are now protected methods, which derived classes may override as needed.
(WebInspector.TimelineView.prototype.needsLayout):
(WebInspector.TimelineView.prototype._closeStatusButtonClicked):
(WebInspector.TimelineView.prototype._updateTreeElementWithCloseButton):
Encapsulated logic related to close button creation and behavior.

14:01 Changeset [183133] by jeremyj-wk@apple.com
  • 2 edits in trunk/LayoutTests

Expect failure on windows for treeitem-child-exposed test.
https://bugs.webkit.org/show_bug.cgi?id=144070

Unreviewed.

Mark accessibility/treeitem-child-exposed.html as failing on windows.

  • platform/win/TestExpectations:
13:55 Changeset [183132] by matthew_hanson@apple.com
  • 17 edits in branches/safari-600.7-branch

Merged r181656. <rdar://problem/20545362>

13:55 Changeset [183131] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebCore

Merge r180520. rdar://problem/20545427

13:55 Changeset [183130] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.7-branch/Source/WebCore

Merge r179850. rdar://problem/20545362

13:52 Changeset [183129] by zalan@apple.com
  • 7 edits
    4 adds in trunk/Source/WebCore

Move render ruby initialization logic from RenderElement::createFor() to *::createElementRenderer()
https://bugs.webkit.org/show_bug.cgi?id=144058

Reviewed by Darin Adler.

No change in functionality.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLTagNames.in:
  • html/RubyElement.cpp: Added.

(WebCore::RubyElement::RubyElement):
(WebCore::RubyElement::create):
(WebCore::RubyElement::createElementRenderer):

  • html/RubyElement.h: Added.
  • html/RubyTextElement.cpp: Added.

(WebCore::RubyTextElement::RubyTextElement):
(WebCore::RubyTextElement::create):
(WebCore::RubyTextElement::createElementRenderer):

  • html/RubyTextElement.h: Added.
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createFor):

13:44 Changeset [183128] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

SparseArrayEntry's write barrier owner should be the SparseArrayValueMap.
https://bugs.webkit.org/show_bug.cgi?id=144067

Reviewed by Michael Saboff.

Currently, there are a few places where the JSObject that owns the
SparseArrayValueMap is designated as the owner of the SparseArrayEntry
write barrier. This is a bug and can result in the GC collecting the
SparseArrayEntry even though it is being referenced by the
SparseArrayValueMap. This patch fixes the bug.

  • runtime/JSObject.cpp:

(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::putIndexedDescriptor):

  • tests/stress/sparse-array-entry-update-144067.js: Added.

(useMemoryToTriggerGCs):
(foo):

13:39 Changeset [183127] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebCore

Show correct wireless play placard on iOS.
<rdar://problem/20656596>

Copy wireless player placard code from r182631 to iOS.

  • Modules/mediacontrols/mediaControlsiOS.css:

(audio::-webkit-media-controls-wireless-playback-status):
(audio::-webkit-media-controls-wireless-playback-text):
(audio::-webkit-media-controls-wireless-playback-text-top):
(audio::-webkit-media-controls-wireless-playback-text-bottom):
(audio::-webkit-media-controls-wireless-playback-status.small):
(audio::-webkit-media-controls-wireless-playback-text-top.small):
(audio::-webkit-media-controls-wireless-playback-text-bottom.small):

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.createControls):
(ControllerIOS.prototype.configureInlineControls):

13:37 Changeset [183126] by ap@apple.com
  • 2 edits in trunk/Source/WTF

[Mac] In nightlies and local builds, WebKit services can get terminated under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=144052
rdar://problem/19754404

Build fix. Landing a forward declaration that should have been part of the original patch.

  • wtf/spi/darwin/XPCSPI.h:
13:15 WebKitGTK/2.4.x edited by mcatanzaro@igalia.com
Propose r181074 for 2.4.9 (diff)
13:13 Changeset [183125] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebKit2

Merge r174288. rdar://problem/20368461

13:05 Changeset [183124] by mark.lam@apple.com
  • 16 edits
    1 add in trunk/Source/JavaScriptCore

Give the heap object iterators the ability to return early.
https://bugs.webkit.org/show_bug.cgi?id=144011

Reviewed by Michael Saboff.

JSDollarVMPrototype::isValidCell() uses a heap object iterator to validate
candidate cell pointers, and, when in use, is called a lot more often than
the normal way those iterators are used. As a result, I see my instrumented
VM killed with a SIGXCPU (CPU time limit exceeded). This patch gives the
callback functor the ability to tell the iterators to return early when the
functor no longer needs to continue iterating. With this, my instrumented
VM is useful again for debugging.

Since heap iteration is not something that we do in a typical fast path,
I don't expect this to have any noticeable impact on performance.

I also renamed ObjectAddressCheckFunctor to CellAddressCheckFunctor since
it checks JSCell addresses, not just JSObjects.

(JSC::LoggingFunctor::operator()):

  • heap/Heap.cpp:

(JSC::Zombify::visit):
(JSC::Zombify::operator()):

  • heap/HeapStatistics.cpp:

(JSC::StorageStatistics::visit):
(JSC::StorageStatistics::operator()):

  • heap/HeapVerifier.cpp:

(JSC::GatherLiveObjFunctor::visit):
(JSC::GatherLiveObjFunctor::operator()):

  • heap/MarkedBlock.cpp:

(JSC::SetNewlyAllocatedFunctor::operator()):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::forEachCell):
(JSC::MarkedBlock::forEachLiveCell):
(JSC::MarkedBlock::forEachDeadCell):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::forEachLiveCell):
(JSC::MarkedSpace::forEachDeadCell):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::TypeRecompiler::visit):
(Inspector::TypeRecompiler::operator()):

  • runtime/IterationStatus.h: Added.
  • runtime/JSGlobalObject.cpp:
  • runtime/VM.cpp:

(JSC::StackPreservingRecompiler::visit):
(JSC::StackPreservingRecompiler::operator()):

  • tools/JSDollarVMPrototype.cpp:

(JSC::CellAddressCheckFunctor::CellAddressCheckFunctor):
(JSC::CellAddressCheckFunctor::operator()):
(JSC::JSDollarVMPrototype::isValidCell):
(JSC::ObjectAddressCheckFunctor::ObjectAddressCheckFunctor): Deleted.
(JSC::ObjectAddressCheckFunctor::operator()): Deleted.

12:33 Changeset [183123] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit2

Update AirPlay sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=144062
<rdar://problem/19869448>

Reviewed by Alexey Proskuryakov.

  • WebProcess/com.apple.WebProcess.sb.in: Remove obsolete rules.
12:02 Changeset [183122] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove an unused index argument from Sidebar.removeSidebarPanel
https://bugs.webkit.org/show_bug.cgi?id=144054

Reviewed by Darin Adler.

  • UserInterface/Views/Sidebar.js:
12:02 Changeset [183121] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] In nightlies and local builds, WebKit services can get terminated under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=144052
rdar://problem/19754404

Reviewed by Darin Adler.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:

(main): Make XPC transaction tracking work again after a re-exec.

12:01 Changeset [183120] by mcatanzaro@igalia.com
  • 2 edits in trunk

[CMake] Use lowercase for local variables in macros
https://bugs.webkit.org/show_bug.cgi?id=144059

Reviewed by Martin Robinson.

Convert some variable names to lowercase.

  • Source/cmake/WebKitFeatures.cmake:
12:00 Changeset [183119] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix an exception preventing switching timelines
https://bugs.webkit.org/show_bug.cgi?id=144053

Reviewed by Darin Adler.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeElement.prototype.select): Store treeOutline in a local so
we have a reference to it when we go to reset processingSelectionChange.
The calls to onselect was removing the tree element from the outline, causing
"delete this.treeOutline.processingSelectionChange" to throw an exception.
This patch changes the delete to a set to false for good measure too.

12:00 Changeset [183118] by mcatanzaro@igalia.com
  • 2 edits
    1 add in trunk

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

Inadvertently deleted a file... (Requested by mcatanzaro on
#webkit).

Reverted changeset:

"[CMake] Use lowercase for local variables in macros"
https://bugs.webkit.org/show_bug.cgi?id=144059
http://trac.webkit.org/changeset/183116

Patch by Commit Queue <commit-queue@webkit.org> on 2015-04-22

11:58 Changeset [183117] by utatane.tea@gmail.com
  • 3 edits
    6 adds in trunk/Source/JavaScriptCore

Set? should be properly executed in JS builtins
https://bugs.webkit.org/show_bug.cgi?id=143996

Reviewed by Geoffrey Garen.

Currently, all assignments in builtins JS code is compiled into put_by_val_direct.
However,

  1. Some functions (like Array.from) needs Set?. (but it is now compiled into put_by_val_direct, DefineOwnProperty?).
  2. It's different from the default JS behavior.

In this patch, we implement the bytecode intrinsic emitting put_by_val_direct and use it explicitly.
And dropping the current hack for builtins.

  • builtins/Array.prototype.js:

(filter):
(map):
(find):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitPutByVal):

  • tests/stress/array-fill-put-by-val.js: Added.

(shouldThrow):
(.set get array):

  • tests/stress/array-filter-put-by-val-direct.js: Added.

(shouldBe):
(.set get var):

  • tests/stress/array-find-does-not-lookup-twice.js: Added.

(shouldBe):
(shouldThrow):
(.get shouldBe):

  • tests/stress/array-from-put-by-val-direct.js: Added.

(shouldBe):
(.set get var):

  • tests/stress/array-from-set-length.js: Added.

(shouldBe):
(ArrayLike):
(ArrayLike.prototype.set length):
(ArrayLike.prototype.get length):

  • tests/stress/array-map-put-by-val-direct.js: Added.

(shouldBe):
(.set get var):

11:52 Changeset [183116] by mcatanzaro@igalia.com
  • 2 edits
    1 delete in trunk

[CMake] Use lowercase for local variables in macros
https://bugs.webkit.org/show_bug.cgi?id=144059

Reviewed by Martin Robinson.

Convert some variable names to lowercase.

  • Source/cmake/WebKitFeatures.cmake:
11:33 Changeset [183115] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Rollout part of r182263 that broke inline media controls on iOS.
<rdar://problem/20654260>

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handlePanelTransitionEnd):
(Controller.prototype.setPlaying):
(Controller.prototype.showControls):
(Controller.prototype.hideControls):

10:41 Changeset [183114] by eric.carlson@apple.com
  • 5 edits in trunk/Source

Unreviewed post-review clean up after r183096.

Source/WebCore:

  • Modules/mediasession/WebMediaSessionManagerClient.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:

Source/WebKit/mac:

  • WebView/WebMediaPlaybackTargetPicker.h:
10:39 Changeset [183113] by commit-queue@webkit.org
  • 11 edits in trunk/Source/JavaScriptCore

Don't de-allocate FunctionRareData
https://bugs.webkit.org/show_bug.cgi?id=144000

Patch by Basile Clement <basile_clement@apple.com> on 2015-04-22
Reviewed by Michael Saboff.

A function rare data (containing most notably its allocation profile) is currently
freed and re-allocated each time the function's prototype is cleared.
This is not optimal as it means we are invalidating the watchpoint and recompiling the
scope each time the prototype is cleared.

This makes it so that a single rare data is reused, clearing the underlying
ObjectAllocationProfile instead of throwing away the whole rare data on
.prototype updates.

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::create):
(JSC::FunctionRareData::finishCreation):

  • runtime/FunctionRareData.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::allocateAndInitializeRareData):
(JSC::JSFunction::initializeRareData):

10:39 Changeset [183112] by carlosgc@webkit.org
  • 2 edits in trunk/Tools

Unreviewed. Do not run GTK+ user media unit tests when ENABLE_MEDIA_STREAM is disabled.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:

(beforeAll):
(testWebViewAudioOnlyUserMediaPermissionRequests):

10:36 Changeset [183111] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

AX: WebKit does not expose text fields inside tree views.
https://bugs.webkit.org/show_bug.cgi?id=142196

Patch by Nan Wang <nanwang1101@yahoo.com> on 2015-04-22
Reviewed by Chris Fleizach.

Source/WebCore:

The problem is that any object in a tree which is not a static text
or treeitem will be ignored. Fixed it by exposing the children of treeitem.

Test: accessibility/treeitem-child-exposed.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isAllowedChildOfTree):

LayoutTests:

Tests for treeitem’s children’s accessibility.
Also fixed the search predicate test for treeitem,
the static text is the second child of treeitem and
list marker is the first child.

  • accessibility/treeitem-child-exposed-expected.txt: Added.
  • accessibility/treeitem-child-exposed.html: Added.
  • platform/mac/accessibility/search-predicate-expected.txt:
  • platform/mac/accessibility/search-predicate.html:
10:29 Changeset [183110] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

09:40 Changeset [183109] by mcatanzaro@igalia.com
  • 2 edits in trunk

[CMake] Features list should print dots every other row
https://bugs.webkit.org/show_bug.cgi?id=143832

Reviewed by Martin Robinson.

Discount private options when determining whether to print dots on a given row of the
features list. Also, simplify the logic by using only one for loop, and fix a couple errors
(inverted use of SHOULD_PRINT_DOTS, one use of the renamed variable SHOULD_PRINT_POINTS that
wasn't noticed because it only affects the first line, and use of the variable name as a
string in a conditional.)

  • Source/cmake/WebKitFeatures.cmake:
09:30 WebKitGTK/2.4.x edited by jan.steffens@gmail.com
(diff)
09:13 Changeset [183108] by aestes@apple.com
  • 2 edits in branches/safari-600.6-branch/LayoutTests

Tests added in r174489 have image and text differences in safari-600.5-branch
https://bugs.webkit.org/show_bug.cgi?id=144044

08:55 Changeset [183107] by youenn.fablet@crf.canon.fr
  • 17 edits
    1 copy
    2 adds in trunk

[Streams API] Implement ReadableStreamController
https://bugs.webkit.org/show_bug.cgi?id=143608

Reviewed by Benjamin Poulain.

Source/WebCore:

Introducing ReadableStreamController, an abstraction to manage JS source stream queues.
This new interface is not exposed to JS scripts as specified, using NoInterfaceObject.

A controller is created at the time a ReadableJSStream is started and it is owned by it.
The controller may outlive the stream but as its reference will be reset, the calls to
its methods would result in exceptions.

The constructor is not implemented yet.

Change covered by existing tests and rebased expectations.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make: Added ReadableStreamController.idl related files.
  • Modules/streams/ReadableStreamController.h: Added.
  • Modules/streams/ReadableStreamController.idl: Added.
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp: Added ReadableStreamController.idl related files.
  • bindings/js/JSReadableStreamControllerCustom.cpp: Added.
  • bindings/js/ReadableStreamJSSource.cpp:
  • bindings/js/ReadableStreamJSSource.h: Removed custom controller implementation.

LayoutTests:

Updated expectations as more tests are passed.
ReadableStreamController constructor tests fail due to the custom constructor being not implemented yet.
Added a test to ensure that calling a controller method when its stream is collected is throwing an error.

  • streams/readable-stream.html:
  • streams/readable-stream-expected.txt:
  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/brand-checks-expected.txt:
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:
08:55 Changeset [183106] by aestes@apple.com
  • 2 edits in branches/safari-600.6-branch/LayoutTests

Tests added in r178380 have image differences in safari-600.5-branch
https://bugs.webkit.org/show_bug.cgi?id=144043

08:28 Changeset [183105] by zandobersek@gmail.com
  • 57 edits in trunk/Source/WebKit2

[WK2] Have API::Array creation methods return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=143933

Reviewed by Darin Adler.

API::Array::create() and API::Array::createStringArray() should return Ref<> objects
as the return values are never null. It's up to the caller to implicitly convert the
returned objects to RefPtr<> if so required. All the call-sites have been updated to
reflect that.

  • Shared/API/APIArray.cpp:

(API::Array::create):
(API::Array::createStringArray):
(API::Array::copy):

  • Shared/API/APIArray.h:
  • Shared/API/APIDictionary.cpp:

(API::Dictionary::keys):

  • Shared/API/APIDictionary.h:
  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(ensureObjectStream):

  • Shared/API/c/WKArray.cpp:

(WKArrayCreate):
(WKArrayCreateAdoptingValues):

  • Shared/API/c/WKContextMenuItem.cpp:

(WKContextMenuCopySubmenuItems):

  • Shared/API/c/WKDictionary.cpp:

(WKDictionaryCopyKeys):

  • Shared/API/c/WKMutableArray.cpp:

(WKMutableArrayCreate):

  • Shared/Cocoa/WKNSDictionary.mm:

(-[WKNSDictionary keyEnumerator]):

  • Shared/SecurityOriginData.cpp:

(WebKit::performAPICallbackWithSecurityOriginDataVector):

  • Shared/WebContextMenuItem.cpp:

(WebKit::WebContextMenuItem::submenuItemsAsAPIArray):

  • Shared/WebContextMenuItem.h:
  • Shared/WebOpenPanelParameters.cpp:

(WebKit::WebOpenPanelParameters::acceptMIMETypes):
(WebKit::WebOpenPanelParameters::selectedFileNames):

  • Shared/WebOpenPanelParameters.h:
  • UIProcess/API/C/WKBackForwardListRef.cpp:

(WKBackForwardListCopyBackListWithLimit):
(WKBackForwardListCopyForwardListWithLimit):

  • UIProcess/API/C/WKGrammarDetail.cpp:

(WKGrammarDetailCopyGuesses):

  • UIProcess/API/C/WKOpenPanelParameters.cpp:

(WKOpenPanelParametersCopyAcceptedMIMETypes):
(WKOpenPanelParametersCopySelectedFileNames):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageContextMenuClient):
(WKPageCopyRelatedPages):

  • UIProcess/API/Cocoa/WKBackForwardList.mm:

(-[WKBackForwardList backList]):
(-[WKBackForwardList forwardList]):

  • UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:

(createWKArray):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):

  • UIProcess/API/gtk/WebKitBackForwardList.cpp:

(webkit_back_forward_list_get_back_list_with_limit):
(webkit_back_forward_list_get_forward_list_with_limit):

  • UIProcess/API/gtk/WebKitFileChooserRequest.cpp:

(webkit_file_chooser_request_get_mime_types):
(webkit_file_chooser_request_get_mime_types_filter):
(webkit_file_chooser_request_select_files):

  • UIProcess/API/gtk/WebKitNotificationProvider.cpp:

(WebKitNotificationProvider::notificationCloseCallback):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::populateCopyOfNotificationPermissions):

  • UIProcess/Notifications/WebNotificationProvider.cpp:

(WebKit::WebNotificationProvider::clearNotifications):

  • UIProcess/Plugins/WebPluginSiteDataManager.cpp:

(WebKit::WebPluginSiteDataManager::didGetSitesWithData):

  • UIProcess/StatisticsRequest.cpp:

(WebKit::StatisticsRequest::completedRequest):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::backList):
(WebKit::WebBackForwardList::forwardList):
(WebKit::WebBackForwardList::backListAsAPIArrayWithLimit):
(WebKit::WebBackForwardList::forwardListAsAPIArrayWithLimit):

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

(WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies):

  • UIProcess/WebDatabaseManagerProxy.cpp:

(WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
(WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):

  • UIProcess/WebGrammarDetail.cpp:

(WebKit::WebGrammarDetail::guesses):

  • UIProcess/WebGrammarDetail.h:
  • UIProcess/WebKeyValueStorageManager.cpp:

(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):

  • UIProcess/WebMediaCacheManagerProxy.cpp:

(WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache):

  • UIProcess/WebOriginDataManagerProxy.cpp:

(WebKit::WebOriginDataManagerProxy::didGetOrigins):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFindStringMatches):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]):
(-[WKFileUploadPanel presentWithParameters:resultListener:]):

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

(-[WKWebProcessPlugInFrame childFrames]):

  • WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp:

(WKBundleBackForwardListItemCopyChildren):

  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:

(WKBundleFrameCopyChildFrames):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageCopyTrackedRepaintRects):

  • WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:

(WebKit::InjectedBundleBackForwardListItem::children):

  • WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h:
  • WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:

(WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems):

  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:

(WebKit::InjectedBundlePageFormClient::didAssociateFormControls):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::findLargestFrameInFrameSet):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::childFrames):

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

(WebKit::WebPage::trackedRepaintRects):

  • WebProcess/WebPage/WebPage.h:
08:25 Changeset [183104] by mcatanzaro@igalia.com
  • 6 edits in trunk

[CMake] Require specifying visibility of WebKit options
https://bugs.webkit.org/show_bug.cgi?id=143831

Reviewed by Alex Christensen.

  • Source/cmake/OptionsEfl.cmake: Specify all options as PUBLIC
  • Source/cmake/OptionsGTK.cmake: Specify all options as PUBLIC
  • Source/cmake/OptionsMac.cmake: Specify all options as PRIVATE
  • Source/cmake/OptionsWindows.cmake: Specify all options as PUBLIC
  • Source/cmake/WebKitFeatures.cmake: Require specifying options as PUBLIC or PRIVATE. Remove WEBKIT_OPTION_DEFINE_PUBLIC and WEBKIT_OPTION_PRIVATE_PORT_VALUE. Specify all cross-platform options as PRIVATE.
08:05 Changeset [183103] by mcatanzaro@igalia.com
  • 2 edits in trunk/Tools

Add myself to watchlist
https://bugs.webkit.org/show_bug.cgi?id=144041

Reviewed by Alex Christensen.

Add myself watching CMake, GtkWebKit2PublicAPI, SoupNetwork, and WebKitGTKTranslations.

  • Scripts/webkitpy/common/config/watchlist:
05:18 Changeset [183102] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Gardening 21st April.
https://bugs.webkit.org/show_bug.cgi?id=143982.

Unreviewed.

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-04-22

  • platform/gtk/TestExpectations:
05:13 Changeset [183101] by carlosgc@webkit.org
  • 2 edits in trunk/Tools

[GTK] MiniBrowser should use NetworkProcess by default
https://bugs.webkit.org/show_bug.cgi?id=143948

Reviewed by Sergio Villar Senin.

Use WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES by default
unless MINIBROWSER_SINGLEPROCESS environment variable is present.

  • MiniBrowser/gtk/main.c:

(main):

03:31 Changeset [183100] by rego@igalia.com
  • 9 edits in trunk/Source/WebCore

Rename hasOverride{Height,Width}() to hasOverrideLogicalContent{Height,Width}()
https://bugs.webkit.org/show_bug.cgi?id=143984

Reviewed by Darin Adler.

This patch is renaming these LayoutBox methods, because of their names
don't match with the getters and setters, which is confusing. Specially
now that we also have hasOverrideContainingBlockLogical{Height,Width}().

No new tests (this is just a refactoring).

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::updateRubyForJustifiedText):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasOverrideLogicalContentHeight):
(WebCore::RenderBox::hasOverrideLogicalContentWidth):
(WebCore::RenderBox::overrideLogicalContentWidth):
(WebCore::RenderBox::overrideLogicalContentHeight):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::availableLogicalHeightUsing):

  • rendering/RenderBox.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::contentWidthForChild):
(WebCore::contentHeightForChild):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):

  • rendering/RenderRubyBase.cpp:

(WebCore::RenderRubyBase::adjustInlineDirectionLineBounds):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):

04/21/15:

23:46 Changeset [183099] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

23:44 Changeset [183098] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.28

New tag.

22:10 Changeset [183097] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac][MediaSource] Crash when SourceBuffer::provideMediaData() is called re-entrantly.
https://bugs.webkit.org/show_bug.cgi?id=144023

Reviewed by Eric Carlson.

Fixes non-deterministic crash in media/media-source/media-source-stalled-holds-sleep-assertion.html.

Platform changes have introduced a re-entrancy to provideMediaData(). Calling
SourceBufferPrivate::enqueueSample() can result in a re-entrant call back into
SourceBuffer::provideMediaData(). To protect against this, wrap the client call
from SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples() to
SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples() in a dispatch_async() to the
main thread. This gives the original provideMediaData() a chance to finish before the next
one begins.

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

(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples):

21:06 Changeset [183096] by eric.carlson@apple.com
  • 51 edits
    3 copies
    2 moves
    3 adds in trunk/Source

[Mac] Use one playback target for all web processes
https://bugs.webkit.org/show_bug.cgi?id=144009

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateWirelessPlaybackStatus): Drive-by fix to show controls when

we show the placeholder image.

Instead of having each Page/Document pair manage access to the playback target for the videos
in a web process, put all of the logic into a new class - WebMediaSessionManager. A singleton
instance talks to the target picker and manages video element access for all web processes.
All playback target logic was removed from Document, Page, and MediaSessionManager.

  • Modules/mediasession: Added.
  • Modules/mediasession/WebMediaSessionManager.cpp: Added.

(WebCore::ClientState::ClientState):
(WebCore::flagsAreSet):
(WebCore::WebMediaSessionManager::WebMediaSessionManager):
(WebCore::WebMediaSessionManager::~WebMediaSessionManager):
(WebCore::WebMediaSessionManager::addPlaybackTargetPickerClient):
(WebCore::WebMediaSessionManager::removePlaybackTargetPickerClient):
(WebCore::WebMediaSessionManager::removeAllPlaybackTargetPickerClients):
(WebCore::WebMediaSessionManager::showPlaybackTargetPicker):
(WebCore::WebMediaSessionManager::clientStateDidChange):
(WebCore::WebMediaSessionManager::setPlaybackTarget):
(WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange):
(WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring):
(WebCore::WebMediaSessionManager::taskTimerFired):
(WebCore::WebMediaSessionManager::find):
(WebCore::WebMediaSessionManager::forEachClient):

  • Modules/mediasession/WebMediaSessionManager.h: Added.
  • Modules/mediasession/WebMediaSessionManagerClient.h: Added.

(WebCore::WebMediaSessionManagerClient::~WebMediaSessionManagerClient):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::mediaState): Replaces isPlayingAudio.
(WebCore::AudioContext::isPlayingAudio): Deleted.

  • Modules/webaudio/AudioContext.h:
  • WebCore.xcodeproj/project.pbxproj: Added new files.
  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::addAudioProducer): Take a MediaProducer instead of an AudioProducer.
(WebCore::Document::removeAudioProducer):
(WebCore::Document::updateIsPlayingMedia):
(WebCore::nextPlaybackTargetClientContextId):
(WebCore::Document::addPlaybackTargetPickerClient):
(WebCore::Document::removePlaybackTargetPickerClient):
(WebCore::Document::showPlaybackTargetPicker):
(WebCore::Document::playbackTargetPickerClientStateDidChange):
(WebCore::Document::playbackTargetAvailabilityDidChange):
(WebCore::Document::setPlaybackTarget):
(WebCore::Document::setShouldPlayToPlaybackTarget):
(WebCore::Document::configurePlaybackTargetMonitoring): Deleted.
(WebCore::Document::requiresPlaybackTargetRouteMonitoring): Deleted.
(WebCore::Document::didChoosePlaybackTarget): Deleted.

  • dom/Document.h:

(WebCore::Document::mediaState):
(WebCore::Document::isPlayingAudio): Deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::registerWithDocument):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::parseAttribute):

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

(WebCore::HTMLMediaSession::registerWithDocument):
(WebCore::HTMLMediaSession::unregisterWithDocument):
(WebCore::HTMLMediaSession::showPlaybackTargetPicker):
(WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):
(WebCore::HTMLMediaSession::setPlaybackTarget):
(WebCore::HTMLMediaSession::externalOutputDeviceAvailableDidChange):
(WebCore::HTMLMediaSession::setShouldPlayToPlaybackTarget):
(WebCore::HTMLMediaSession::mediaStateDidChange):
(WebCore::HTMLMediaSession::didChoosePlaybackTarget): Deleted.
(WebCore::HTMLMediaSession::requiresPlaybackTargetRouteMonitoring): Deleted.
(WebCore::HTMLMediaSession::startPlayingToPlaybackTarget): Deleted.
(WebCore::HTMLMediaSession::stopPlayingToPlaybackTarget): Deleted.

  • html/HTMLMediaSession.h:
  • page/AudioProducer.h: Removed.
  • page/ChromeClient.h:
  • page/MediaProducer.h: Copied from Source/WebCore/page/AudioProducer.h.

(WebCore::MediaProducer::~MediaProducer):
(WebCore::AudioProducer::~AudioProducer): Deleted.

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::updateIsPlayingMedia):
(WebCore::Page::addPlaybackTargetPickerClient):
(WebCore::Page::removePlaybackTargetPickerClient):
(WebCore::Page::showPlaybackTargetPicker):
(WebCore::Page::playbackTargetPickerClientStateDidChange):
(WebCore::Page::setPlaybackTarget):
(WebCore::Page::playbackTargetAvailabilityDidChange):
(WebCore::Page::setShouldPlayToPlaybackTarget):
(WebCore::Page::playbackTarget): Deleted.
(WebCore::Page::didChoosePlaybackTarget): Deleted.
(WebCore::Page::configurePlaybackTargetMonitoring): Deleted.

  • page/Page.h:

(WebCore::Page::mediaState):
(WebCore::Page::isPlayingAudio): Deleted.
(WebCore::Page::hasWirelessPlaybackTarget): Deleted.

  • platform/audio/MediaSession.h:

(WebCore::MediaSession::isPlayingToWirelessPlaybackTarget):
(WebCore::MediaSession::requiresPlaybackTargetRouteMonitoring):
(WebCore::MediaSessionClient::setShouldPlayToPlaybackTarget):
(WebCore::MediaSession::startPlayingToPlaybackTarget): Deleted.
(WebCore::MediaSession::stopPlayingToPlaybackTarget): Deleted.
(WebCore::MediaSessionClient::startPlayingToPlaybackTarget): Deleted.
(WebCore::MediaSessionClient::stopPlayingToPlaybackTarget): Deleted.

  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::sessionWillBeginPlayback):
(WebCore::MediaSessionManager::sessionCanLoadMedia):
(WebCore::MediaSessionManager::sessionShouldBeginPlayingToWirelessPlaybackTarget): Deleted.

  • platform/audio/MediaSessionManager.h:
  • platform/graphics/MediaPlaybackTargetClient.h: Copied from Source/WebCore/platform/graphics/MediaPlaybackTargetPickerClient.h.

(WebCore::MediaPlaybackTargetClient::~MediaPlaybackTargetClient):
(WebCore::MediaPlaybackTargetPickerClient::~MediaPlaybackTargetPickerClient): Deleted.

  • platform/graphics/MediaPlaybackTargetPicker.cpp:

(WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker):
(WebCore::MediaPlaybackTargetPicker::startingMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPicker::stopMonitoringPlaybackTargets):

  • platform/graphics/MediaPlaybackTargetPicker.h:
  • platform/graphics/MediaPlaybackTargetPickerClient.h: Removed.
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayer::startPlayingToPlaybackTarget): Deleted.
(WebCore::MediaPlayer::stopPlayingToPlaybackTarget): Deleted.

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

(WebCore::MediaPlayerPrivateInterface::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateInterface::startPlayingToPlaybackTarget): Deleted.
(WebCore::MediaPlayerPrivateInterface::stopPlayingToPlaybackTarget): Deleted.

  • platform/graphics/avfoundation/WebMediaSessionManagerMac.cpp: Added.

(WebCore::WebMediaSessionManagerMac::singleton):
(WebCore::WebMediaSessionManagerMac::WebMediaSessionManagerMac):
(WebCore::WebMediaSessionManagerMac::~WebMediaSessionManagerMac):
(WebCore::WebMediaSessionManagerMac::targetPicker):

  • platform/graphics/avfoundation/WebMediaSessionManagerMac.h: Added.
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::currentDeviceDidChange):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateAVFoundationObjC::startPlayingToPlaybackTarget): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::stopPlayingToPlaybackTarget): Deleted.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::togglePlayingToPlaybackTarget): Deleted.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::startPlayingToPlaybackTarget): Deleted.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::stopPlayingToPlaybackTarget): Deleted.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateQTKit::togglePlayingToPlaybackTarget): Deleted.
(WebCore::MediaPlayerPrivateQTKit::startPlayingToPlaybackTarget): Deleted.
(WebCore::MediaPlayerPrivateQTKit::stopPlayingToPlaybackTarget): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::isPagePlayingAudio):

Source/WebKit/mac:

Update to use WebMediaSessionManager for playback target management.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::addPlaybackTargetPickerClient):
(WebChromeClient::removePlaybackTargetPickerClient):
(WebChromeClient::showPlaybackTargetPicker):
(WebChromeClient::playbackTargetPickerClientStateDidChange):
(WebChromeClient::startingMonitoringPlaybackTargets): Deleted.
(WebChromeClient::stopMonitoringPlaybackTargets): Deleted.

  • WebView/WebMediaPlaybackTargetPicker.h:
  • WebView/WebMediaPlaybackTargetPicker.mm:

(WebMediaPlaybackTargetPicker::addPlaybackTargetPickerClient):
(WebMediaPlaybackTargetPicker::removePlaybackTargetPickerClient):
(WebMediaPlaybackTargetPicker::showPlaybackTargetPicker):
(WebMediaPlaybackTargetPicker::playbackTargetPickerClientStateDidChange):
(WebMediaPlaybackTargetPicker::setPlaybackTarget):
(WebMediaPlaybackTargetPicker::externalOutputDeviceAvailableDidChange):
(WebMediaPlaybackTargetPicker::setShouldPlayToPlaybackTarget):
(WebMediaPlaybackTargetPicker::invalidate):
(WebMediaPlaybackTargetPicker::startingMonitoringPlaybackTargets): Deleted.
(WebMediaPlaybackTargetPicker::stopMonitoringPlaybackTargets): Deleted.
(WebMediaPlaybackTargetPicker::didChoosePlaybackTarget): Deleted.
(WebMediaPlaybackTargetPicker::targetPicker): Deleted.

  • WebView/WebView.mm:

(-[WebView _addPlaybackTargetPickerClient:]):
(-[WebView _removePlaybackTargetPickerClient:]):
(-[WebView _showPlaybackTargetPicker:location:hasVideo:]):
(-[WebView _playbackTargetPickerClientStateDidChange:state:]):
(-[WebView _showPlaybackTargetPicker:hasVideo:]): Deleted.
(-[WebView _startingMonitoringPlaybackTargets]): Deleted.
(-[WebView _stopMonitoringPlaybackTargets]): Deleted.

  • WebView/WebViewInternal.h:

Source/WebKit2:

Every WebPageProxy uses the WebMediaSessionManager singleton to talk to the playback target
picker.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::isPlayingMediaDidChange):
(WebKit::WebPageProxy::addPlaybackTargetPickerClient):
(WebKit::WebPageProxy::removePlaybackTargetPickerClient):
(WebKit::WebPageProxy::showPlaybackTargetPicker):
(WebKit::WebPageProxy::playbackTargetPickerClientStateDidChange):
(WebKit::WebPageProxy::setPlaybackTarget):
(WebKit::WebPageProxy::externalOutputDeviceAvailableDidChange):
(WebKit::WebPageProxy::setShouldPlayToPlaybackTarget):
(WebKit::WebPageProxy::devicePickerProxy): Deleted.
(WebKit::WebPageProxy::startingMonitoringPlaybackTargets): Deleted.
(WebKit::WebPageProxy::stopMonitoringPlaybackTargets): Deleted.
(WebKit::WebPageProxy::didChoosePlaybackTarget): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isPlayingAudio):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::mediaSessionManager):
(WebKit::PageClientImpl::createPlaybackTargetPicker): Deleted.

  • UIProcess/mac/WebMediaSessionManagerMac.cpp: Added.

(WebKit::WebMediaSessionManagerMac::singleton):
(WebKit::WebMediaSessionManagerMac::WebMediaSessionManagerMac):
(WebKit::WebMediaSessionManagerMac::~WebMediaSessionManagerMac):
(WebKit::WebMediaSessionManagerMac::targetPicker):

  • UIProcess/mac/WebMediaSessionManagerMac.h: Added.
  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::isPlayingMediaDidChange):
(WebKit::WebChromeClient::addPlaybackTargetPickerClient):
(WebKit::WebChromeClient::removePlaybackTargetPickerClient):
(WebKit::WebChromeClient::showPlaybackTargetPicker):
(WebKit::WebChromeClient::playbackTargetPickerClientStateDidChange):
(WebKit::WebChromeClient::startingMonitoringPlaybackTargets): Deleted.
(WebKit::WebChromeClient::stopMonitoringPlaybackTargets): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::playbackTargetSelected):
(WebKit::WebPage::playbackTargetAvailabilityDidChange):
(WebKit::WebPage::setShouldPlayToPlaybackTarget):

20:50 Changeset [183095] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix 32-bit. Forgot to make this simple change to 32_64 as well.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

20:38 Changeset [183094] by fpizlo@apple.com
  • 27 edits
    1 add in trunk/Source/JavaScriptCore

DFG should allow Phantoms after terminals
https://bugs.webkit.org/show_bug.cgi?id=126778

Reviewed by Mark Lam.

It's important for us to be able to place liveness-marking nodes after nodes that do
things. These liveness-marking nodes are nops. Previously, we disallowed such nodes after
terminals. That made things awkward, especially for Switch and Branch, which may do
things that necessitate liveness markers (for example they might want to use a converted
version of a value rather than the value that was MovHinted). We previously made this
work by disallowing certain optimizations on Switch and Branch, which was probably a bad
thing.

This changes our IR to allow for the terminal to not be the last node in a block. Asking
for the terminal involves a search. DFG::validate() checks that the nodes after the
terminal are liveness markers that have no effects or checks.

This is perf-neutral but will allow more optimizations in the future. It will also make
it cleaner to fix https://bugs.webkit.org/show_bug.cgi?id=143735.

  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::replaceTerminal):

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::findTerminal):
(JSC::DFG::BasicBlock::terminal):
(JSC::DFG::BasicBlock::insertBeforeTerminal):
(JSC::DFG::BasicBlock::numSuccessors):
(JSC::DFG::BasicBlock::successor):
(JSC::DFG::BasicBlock::successorForCondition):
(JSC::DFG::BasicBlock::successors):
(JSC::DFG::BasicBlock::last): Deleted.
(JSC::DFG::BasicBlock::takeLast): Deleted.
(JSC::DFG::BasicBlock::insertBeforeLast): Deleted.
(JSC::DFG::BasicBlock::SuccessorsIterable::SuccessorsIterable): Deleted.
(JSC::DFG::BasicBlock::SuccessorsIterable::iterator::iterator): Deleted.
(JSC::DFG::BasicBlock::SuccessorsIterable::iterator::operator*): Deleted.
(JSC::DFG::BasicBlock::SuccessorsIterable::iterator::operator++): Deleted.
(JSC::DFG::BasicBlock::SuccessorsIterable::iterator::operator==): Deleted.
(JSC::DFG::BasicBlock::SuccessorsIterable::iterator::operator!=): Deleted.
(JSC::DFG::BasicBlock::SuccessorsIterable::begin): Deleted.
(JSC::DFG::BasicBlock::SuccessorsIterable::end): Deleted.

  • dfg/DFGBasicBlockInlines.h:

(JSC::DFG::BasicBlock::appendNonTerminal):
(JSC::DFG::BasicBlock::replaceTerminal):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::linkBlock):
(JSC::DFG::ByteCodeParser::parseCodeBlock):

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::convertToJump):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):

  • dfg/DFGCommon.h:

(JSC::DFG::NodeAndIndex::NodeAndIndex):
(JSC::DFG::NodeAndIndex::operator!):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupBlock):
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::injectTypeConversionsInBlock):
(JSC::DFG::FixupPhase::clearPhantomsAtEnd): Deleted.

  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllLiveNodesAtTail):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::terminalsAreValid):
(JSC::DFG::Graph::dumpBlockHeader):

  • dfg/DFGGraph.h:
  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::mergeToSuccessors):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):
(JSC::DFG::LICMPhase::attemptHoist):

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

(JSC::DFG::Node::SuccessorsIterable::SuccessorsIterable):
(JSC::DFG::Node::SuccessorsIterable::iterator::iterator):
(JSC::DFG::Node::SuccessorsIterable::iterator::operator*):
(JSC::DFG::Node::SuccessorsIterable::iterator::operator++):
(JSC::DFG::Node::SuccessorsIterable::iterator::operator==):
(JSC::DFG::Node::SuccessorsIterable::iterator::operator!=):
(JSC::DFG::Node::SuccessorsIterable::begin):
(JSC::DFG::Node::SuccessorsIterable::end):
(JSC::DFG::Node::successors):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::determineMaterializationPoints):
(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints):
(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields):

  • dfg/DFGPhantomRemovalPhase.cpp:

(JSC::DFG::PhantomRemovalPhase::run):

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::detectPeepHoleBranch):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStaticExecutionCountEstimationPhase.cpp:

(JSC::DFG::StaticExecutionCountEstimationPhase::run):

  • dfg/DFGTierUpCheckInjectionPhase.cpp:

(JSC::DFG::TierUpCheckInjectionPhase::run):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):

  • tests/stress/closure-call-exit.js: Added.

(foo):

19:46 Changeset [183093] by andersca@apple.com
  • 13 edits in trunk/Source/WebKit2

WKWebsiteDataStore doesn't track and remove IndexedDB databases
https://bugs.webkit.org/show_bug.cgi?id=144032
rdar://problem/20242856

Reviewed by Tim Horton.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:
  • Shared/WebsiteData/WebsiteDataTypes.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

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

  • UIProcess/Databases/DatabaseProcessProxy.cpp:

(WebKit::generateCallbackID):
(WebKit::DatabaseProcessProxy::~DatabaseProcessProxy):
(WebKit::DatabaseProcessProxy::fetchWebsiteData):
(WebKit::DatabaseProcessProxy::deleteWebsiteData):
(WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::DatabaseProcessProxy::didClose):
(WebKit::DatabaseProcessProxy::didFetchWebsiteData):
(WebKit::DatabaseProcessProxy::didDeleteWebsiteData):
(WebKit::DatabaseProcessProxy::didDeleteWebsiteDataForOrigins):

  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Databases/DatabaseProcessProxy.messages.in:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):

19:37 Changeset [183092] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Use String.prototype.startsWith in more places
https://bugs.webkit.org/show_bug.cgi?id=144025

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-04-21
Reviewed by Timothy Hatcher.

  • UserInterface/Models/Gradient.js:
  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):

19:30 Changeset [183091] by rniwa@webkit.org
  • 2 edits
    77 adds in trunk/PerformanceTests

Add JetStream to PerformanceTests
https://bugs.webkit.org/show_bug.cgi?id=144024

Rubber-stamped by Filip Pizlo.

  • JetStream: Added.
  • JetStream/JetStream-Logo.png: Added.
  • JetStream/JetStream-Logo@2x.png: Added.
  • JetStream/JetStream.css: Added.
  • JetStream/JetStreamDriver.js: Added.
  • JetStream/LICENSE.txt: Added.
  • JetStream/LLVM-test-suite-LICENSE.txt: Added.
  • JetStream/Octane: Added.
  • JetStream/Octane/base.js: Added.
  • JetStream/Octane/code-load.js: Added.
  • JetStream/Octane2: Added.
  • JetStream/Octane2/base.js: Added.
  • JetStream/Octane2/box2d.js: Added.
  • JetStream/Octane2/code-load.js: Added.
  • JetStream/Octane2/crypto.js: Added.
  • JetStream/Octane2/deltablue.js: Added.
  • JetStream/Octane2/earley-boyer.js: Added.
  • JetStream/Octane2/gbemu-part1.js: Added.
  • JetStream/Octane2/gbemu-part2.js: Added.
  • JetStream/Octane2/mandreel.js: Added.
  • JetStream/Octane2/navier-stokes.js: Added.
  • JetStream/Octane2/pdfjs.js: Added.
  • JetStream/Octane2/raytrace.js: Added.
  • JetStream/Octane2/regexp.js: Added.
  • JetStream/Octane2/richards.js: Added.
  • JetStream/Octane2/run.js: Added.
  • JetStream/Octane2/splay.js: Added.
  • JetStream/Octane2/typescript-compiler.js: Added.
  • JetStream/Octane2/typescript-input.js: Added.
  • JetStream/Octane2/typescript.js: Added.
  • JetStream/Octane2/zlib-data.js: Added.
  • JetStream/Octane2/zlib.js: Added.
  • JetStream/Octane2Setup.js: Added.
  • JetStream/OctaneSetup.js: Added.
  • JetStream/README: Added.
  • JetStream/Reference.js: Added.
  • JetStream/SimpleSetup.js: Added.
  • JetStream/SunSpiderSetup.js: Added.
  • JetStream/Swoosh.png: Added.
  • JetStream/Swoosh@2x.png: Added.
  • JetStream/TestingSetup.js: Added.
  • JetStream/create.rb: Added.
  • JetStream/docs: Added.
  • JetStream/docs/JetStreamBlogPost.html: Added.
  • JetStream/in-depth-TEMPLATE.html: Added.
  • JetStream/index-TEMPLATE.html: Added.
  • JetStream/simple: Added.
  • JetStream/simple/bigfib.cpp: Added.
  • JetStream/simple/bigfib.cpp.js: Added.
  • JetStream/simple/container.cpp: Added.
  • JetStream/simple/container.cpp.js: Added.
  • JetStream/simple/dry.c: Added.
  • JetStream/simple/dry.c.js: Added.
  • JetStream/simple/float-mm.c: Added.
  • JetStream/simple/float-mm.c.js: Added.
  • JetStream/simple/gcc-loops.cpp: Added.
  • JetStream/simple/gcc-loops.cpp.js: Added.
  • JetStream/simple/hash-map.js: Added.
  • JetStream/simple/n-body.c: Added.
  • JetStream/simple/n-body.c.js: Added.
  • JetStream/simple/quicksort.c: Added.
  • JetStream/simple/quicksort.c.js: Added.
  • JetStream/simple/towers.c: Added.
  • JetStream/simple/towers.c.js: Added.
  • JetStream/sunspider: Added.
  • JetStream/sunspider/3d-cube.js: Added.
  • JetStream/sunspider/3d-raytrace.js: Added.
  • JetStream/sunspider/base64.js: Added.
  • JetStream/sunspider/cordic.js: Added.
  • JetStream/sunspider/crypto-aes.js: Added.
  • JetStream/sunspider/crypto-md5.js: Added.
  • JetStream/sunspider/crypto-sha1.js: Added.
  • JetStream/sunspider/date-format-tofte.js: Added.
  • JetStream/sunspider/date-format-xparb.js: Added.
  • JetStream/sunspider/n-body.js: Added.
  • JetStream/sunspider/regex-dna.js: Added.
  • JetStream/sunspider/tagcloud.js: Added.
18:17 Changeset [183090] by andersca@apple.com
  • 2 edits
    3 adds in trunk/Source/WebKit2

Add module maps for WebKit
https://bugs.webkit.org/show_bug.cgi?id=144026
rdar://problem/19665428

Reviewed by Dan Bernstein.

  • Configurations/WebKit.xcconfig:
  • Modules/OSX.modulemap: Added.
  • Modules/iOS.modulemap: Added.
17:51 Changeset [183089] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] When computing visible rects for tiling, stop searching at UIWindows
https://bugs.webkit.org/show_bug.cgi?id=144022
<rdar://problem/18327227>

Reviewed by Simon Fraser.

[WAKWindow _visibleRectRespectingMasksToBounds:] computes a visible rect which we use
to determine which tiles to create. We do this by finding the frame of the _hostLayer,
and then walking up the CALayer hierarchy converting each rect into its parent's
coordinate system (all the while clipping to bounds if necessary). This walk up the
layer hierarchy should stop at a layer associated with a UIWindow.

  • platform/ios/wak/WAKWindow.mm:

(-[WAKWindow _visibleRectRespectingMasksToBounds:]):

17:38 Changeset [183088] by jinwoo7.song@samsung.com
  • 4 edits in trunk

[Cairo] Implement Path::addPath
https://bugs.webkit.org/show_bug.cgi?id=130580

Reviewed by Dirk Schulze.

Source/WebCore:

Add support for addPath method for ports using cairo.
This patch is originally authored by Jae Hyun Park <jaepark@webkit.org>.

Test: fast/canvas/canvas-path-addPath.html

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::addPath): Implement addPath for cairo.

LayoutTests:

Enable addPath testcase in EFL port.

  • platform/efl/TestExpectations:
17:24 Changeset [183087] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the iOS build.

  • platform/spi/cg/CoreGraphicsSPI.h:
17:14 Changeset [183086] by lforschler@apple.com
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebKit2

Merge r182162

2015-03-30 Enrica Casucci <enrica@apple.com>

[iOS] WebContent crashing at WebCore: WebCore::Range::collectSelectionRects.
https://bugs.webkit.org/show_bug.cgi?id=143234
<rdar://problem/18571345>

Reviewed by Tim Horton.

This is a speculative fix that adds a null check before referencing the range.
In both places where the check has been added the range returned by the call
that should create it could be null.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):

17:13 Changeset [183085] by commit-queue@webkit.org
  • 6 edits
    4 adds in trunk

SVGAnimateElementBase::calculateAnimatedValue() asserts when reinserting an SVG animating element within the same animation limits
https://bugs.webkit.org/show_bug.cgi?id=143994

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-04-21
Reviewed by Simon Fraser.

Source/WebCore:

Make sure the SVG animation variables are reset cleanly such that if the
animation restarts it can rebuild its limit values reliably and correctly.

Tests: svg/animations/crash-reinsert-animate-length-same-limits.svg

svg/animations/crash-reinsert-animate-transform-same-limits.svg

  • svg/SVGAnimateElementBase.h:
  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::resetAnimatedPropertyType):
Call the base class resetAnimatedPropertyType() from the derived class.

  • svg/SVGAnimationElement.h:
  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::resetAnimatedPropertyType):
Make resetAnimatedPropertyType() virtual. The implementation of the base
class of this function resets the values of the animation limits. When
updateAnimation() is called, it will be forced to recalculate the animation
limits by calling calculateFromAndToValues() even if the limits have not
changed.

LayoutTests:

  • svg/animations/crash-reinsert-animate-length-same-limits-expected.txt: Added.
  • svg/animations/crash-reinsert-animate-length-same-limits.svg: Added.
  • svg/animations/crash-reinsert-animate-transform-same-limits-expected.txt: Added.
  • svg/animations/crash-reinsert-animate-transform-same-limits.svg: Added.

Make sure when removing an SVG animating element and reinserting it back
within the same animation length or transform limits, we do not crash.

17:04 Changeset [183084] by jinwoo7.song@samsung.com
  • 7 edits
    2 adds in trunk/LayoutTests

[EFL] Unreviewed gardening

Update test expectations for failing tests.

  • platform/efl/fast/multicol/span/span-as-immediate-columns-child-expected.png: Rebaseline after r177774.
  • platform/efl/fast/multicol/span/span-as-immediate-columns-child-expected.txt: Ditto.
  • platform/efl/fast/repaint/selection-ruby-rl-expected.txt: Added. Ditto.
  • platform/efl/fast/text/decorations-with-text-combine-expected.png:
  • platform/efl/fast/text/decorations-with-text-combine-expected.txt:
  • platform/efl/mathml/opentype/horizontal-expected.txt: Rebaseline after r174540.
  • platform/efl/svg/text/textPathBoundsBug-expected.png: Rebaselined after r177774.
  • platform/efl/svg/text/textPathBoundsBug-expected.txt: Added. Ditto.
16:25 Changeset [183083] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Long pause under _takeViewSnapshot when screen updates are disabled
https://bugs.webkit.org/show_bug.cgi?id=144017
<rdar://problem/20548397>

Reviewed by Simon Fraser.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):
Use CGSHWCaptureWindowList, for snapshotting that doesn't block on
the next commit, and can succeed while screen updates are disabled
without blocking.

  • platform/spi/cg/CoreGraphicsSPI.h:

Add some SPI.

16:23 Changeset [183082] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

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

broke a bunch of tests, bfulgham is going to try again
(Requested by thorton on #webkit).

Reverted changeset:

"Context menu doesn't account for selection semantics"
https://bugs.webkit.org/show_bug.cgi?id=143958
http://trac.webkit.org/changeset/183077

16:20 Changeset [183081] by cdumez@apple.com
  • 9 edits in trunk/Source

[WK2][NetworkCache] Better account of resource revalidations in efficacy logging
https://bugs.webkit.org/show_bug.cgi?id=144014

Reviewed by Antti Koivisto.

Source/WebCore:

Add additional diagnostic logging key for network cache efficacy
logging.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::needsRevalidationKey):

  • page/DiagnosticLoggingKeys.h:

Source/WebKit2:

Better account of resource revalidations in efficacy logging.
Prevously, resources that were in the cache but needed revalidation
were counted as retrieval successes, which is not entirely accurate.

We now distinguish "is in the cache and is directly usable" from
"is in the cache but needs revalidation". We also log how many of these
revalidations are successful.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponseAsync):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::update):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry):
(WebKit::NetworkCache::Statistics::recordRevalidationSuccess):

  • NetworkProcess/cache/NetworkCacheStatistics.h:
16:07 Changeset [183080] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] Framework header postprocessing should respect additional definitions
https://bugs.webkit.org/show_bug.cgi?id=144018

Reviewed by Anders Carlsson.

  • mac/postprocess-framework-headers.sh: Read definitons from

/usr/local/include/WebKitAdditions/Scripts/postprocess-framework-headers-definitions, and
have them take precedence over OSX_VERSION and IOS_VERSION and supply additional options to
sed.

15:48 Changeset [183079] by lforschler@apple.com
  • 1 edit in branches/safari-600.1.4.16-branch/Source/WebCore/platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp

Fix debug builds after r183050.

15:29 Changeset [183078] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

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

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToPhantomNewObject):
Was not properly marking NodeMustGenerate when converting.

15:01 Changeset [183077] by bfulgham@apple.com
  • 4 edits in trunk/Source/WebCore

Context menu doesn't account for selection semantics
https://bugs.webkit.org/show_bug.cgi?id=143958
<rdar://problem/19735706>

Reviewed by Tim Horton.

Before using the default word-only selection, check with the
lookup service to see if we can get a semantically appropriate
selection.

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):
(WebCore::EventHandler::selectClosestWordFromHitTestResult):

  • page/EventHandler.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):

13:55 Changeset [183076] by fpizlo@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

DFG Call/ConstructForwardVarargs fails to restore the stack pointer
https://bugs.webkit.org/show_bug.cgi?id=144007

Reviewed by Mark Lam.

We were conditioning the stack pointer restoration on isVarargs, but we also need to do it
if isForwardVarargs.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • tests/stress/varargs-then-slow-call.js: Added.

(foo):
(bar):
(fuzz):
(baz):

13:37 Changeset [183075] by gyuyoung.kim@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening on 22th April

Mark 3 compositing tests to image only failure. Additionally move
wrong categorized 2 tests to a correct place.

  • platform/efl/TestExpectations:
13:32 Changeset [183074] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Get rid of an unneeded function from LoaderNSURLExtras.mm
https://bugs.webkit.org/show_bug.cgi?id=144003

Reviewed by Chris Dumez.

Just use Vector::contains instead of vectorContainsString.

  • loader/mac/LoaderNSURLExtras.mm:

(suggestedFilenameWithMIMEType):
(vectorContainsString): Deleted.

13:23 Changeset [183073] by commit-queue@webkit.org
  • 18 edits in trunk/Source/JavaScriptCore

Remove AllocationProfileWatchpoint node
https://bugs.webkit.org/show_bug.cgi?id=143999

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

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCellOperand):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):

  • runtime/JSFunction.h:

(JSC::JSFunction::rareData):
(JSC::JSFunction::allocationProfileWatchpointSet): Deleted.

13:16 Changeset [183072] by fpizlo@apple.com
  • 13 edits
    4 adds in trunk/Source/JavaScriptCore

MovHint should be a strong use
https://bugs.webkit.org/show_bug.cgi?id=143734

Reviewed by Geoffrey Garen.

This disables any DCE that assumes equivalence between DFG IR uses and bytecode uses. Doing
so is a major step towards allowing more fancy DFG transformations and also probably fixing
some bugs.

Just making MovHint a strong use would also completely disable DCE. So we mitigate this by
introducing a MovHint removal phase that runs in FTL.

This is a slight slowdown on Octane/gbemu, but it's basically neutral on suite averages.

(JSC::InlineCallFrame::dumpInContext):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::fixupBlock):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::createDumpList):

  • dfg/DFGEpoch.cpp: Added.

(JSC::DFG::Epoch::dump):

  • dfg/DFGEpoch.h: Added.

(JSC::DFG::Epoch::Epoch):
(JSC::DFG::Epoch::first):
(JSC::DFG::Epoch::operator!):
(JSC::DFG::Epoch::next):
(JSC::DFG::Epoch::bump):
(JSC::DFG::Epoch::operator==):
(JSC::DFG::Epoch::operator!=):

  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGMovHintRemovalPhase.cpp: Added.

(JSC::DFG::performMovHintRemoval):

  • dfg/DFGMovHintRemovalPhase.h: Added.
  • dfg/DFGNodeType.h:
  • dfg/DFGPlan.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • runtime/Options.h:
13:06 Changeset [183071] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

Use grep instead of any in prepare-ChangeLog, to avoid Windows compatibility issues.

Unreviewed build fix.

  • Scripts/prepare-ChangeLog:

(get_function_line_ranges_for_cpp):
Use grep instead of any to determine if a string is an element of an array.

12:30 Changeset [183070] by andersca@apple.com
  • 10 edits in trunk

Fix block signatures
https://bugs.webkit.org/show_bug.cgi?id=144002

Reviewed by Andreas Kling.

Source/WebKit2:

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

(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):

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

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

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _highlightLinkAnnotation:forDuration:completionHandler:]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _processMediaInfoDictionaries:successBlock:failureBlock:]):
(-[WKFileUploadPanel _processMediaInfoDictionaries:atIndex:processedResults:processedImageCount:processedVideoCount:successBlock:failureBlock:]):
(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

11:50 Changeset [183069] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

REGRESSION (r182899): icloud.com crashes
https://bugs.webkit.org/show_bug.cgi?id=143960

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

  • runtime/JSFunction.h:

(JSC::JSFunction::allocationStructure):

  • tests/stress/dfg-rare-data.js: Added.

(F): Regression test

11:01 Changeset [183068] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

PDFs still don't snapshot properly in iOS Safari
https://bugs.webkit.org/show_bug.cgi?id=143976
<rdar://problem/18283459>

Reviewed by Anders Carlsson.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didLayoutForCustomContentProvider):

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

(-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]):
Inform the client that we've passed all reasonable layout milestones
as soon as the custom content provider has been handed its data.
WKPDFView, the only custom content provider, synchronously lays out
its subviews upon initial receipt of data, so this works fine for it.
This ensures that clients that normally depend on layout milestones firing
won't break when a custom content view is installed.

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
Fall back to renderInContext: if the custom content view is not parented
when a snapshot is requested.

10:57 Changeset [183067] by msaboff@apple.com
  • 5 edits
    3 adds in trunk

Crash in JSC::Interpreter::execute
https://bugs.webkit.org/show_bug.cgi?id=142625

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

We need to keep the FunctionExecutables in the code block for the eval flavor of
Interpreter::execute() in order to create the scope used to eval.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettisonFunctionDeclsAndExprs): Deleted.

  • bytecode/CodeBlock.h:
  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::registerFrozenValues):

LayoutTests:

New regression test.

  • js/regress-142625-expected.txt: Added.
  • js/regress-142625.html: Added.
  • js/script-tests/regress-142625.js: Added.
10:11 Changeset [183066] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Merged WKBackForwardListItem’s Internal category into the class extension in WKBackForwardListItemInternal.h.

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKBackForwardListItem.mm:

(-[WKBackForwardListItem _item]):
(-[WKBackForwardListItem _apiObject]):

  • UIProcess/API/Cocoa/WKBackForwardListItemInternal.h:
10:08 WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
09:18 Changeset [183065] by cdumez@apple.com
  • 23 edits in trunk/Source

Make Vector(const Vector<T, otherCapacity, otherOverflowBehaviour>&) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=143970

Reviewed by Darin Adler.

Make Vector(const Vector<T, otherCapacity, otherOverflowBehaviour>&)
constructor explicit as it copies the vector and it is easy to call it
by mistake.

Source/JavaScriptCore:

  • bytecode/UnlinkedInstructionStream.cpp:

(JSC::UnlinkedInstructionStream::UnlinkedInstructionStream):

  • bytecode/UnlinkedInstructionStream.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::lower):

Source/WebCore:

  • Modules/indexeddb/IDBDatabaseBackend.cpp:

(WebCore::IDBDatabaseBackend::setIndexKeys):
(WebCore::IDBDatabaseBackend::setIndexesReady):

  • Modules/indexeddb/IDBDatabaseBackend.h:
  • Modules/indexeddb/IDBServerConnection.h:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasClasses):

  • cssjit/StackAllocator.h:

(WebCore::StackAllocator::push):
(WebCore::StackAllocator::pop):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridIterator::nextGridItem):
(WebCore::RenderGrid::GridIterator::isEmptyAreaEnough):

  • rendering/style/SVGRenderStyle.cpp:

(WebCore::SVGRenderStyle::paintTypesForPaintOrder):

  • rendering/style/SVGRenderStyle.h:
  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::fillStrokeMarkers):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paint):

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendLigatureGlyphs):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:

(WebKit::WebIDBServerConnection::setIndexKeys):

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:

Source/WTF:

  • wtf/RefCountedArray.h:

(WTF::RefCountedArray::RefCountedArray):

  • wtf/Vector.h:
09:16 Changeset [183064] by cdumez@apple.com
  • 10 edits in trunk/Source/WebCore

Use ASSERT_WITH_SECURITY_IMPLICATION() for NoEventDispatchAssertion
https://bugs.webkit.org/show_bug.cgi?id=143971

Reviewed by Darin Adler.

Use ASSERT_WITH_SECURITY_IMPLICATION() for NoEventDispatchAssertion as
firing JS events can cause arbitrary JS execution which often leads to
security bugs when event firing is forbidden. For e.g. firing events
from ActiveDOMObject::suspend() means JS can construct or destroy
ActiveDOMObjects while we are iterating over them.

  • dom/ContainerNode.cpp:

(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):

  • dom/ContainerNodeAlgorithms.h:

(WebCore::ChildNodeInsertionNotifier::notify):

  • dom/Document.cpp:

(WebCore::Document::dispatchWindowEvent):
(WebCore::Document::dispatchWindowLoadEvent):

  • dom/Element.cpp:

(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • dom/Node.cpp:

(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchDOMActivateEvent):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForPageCache):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
(WebCore::ScriptExecutionContext::willDestroyActiveDOMObject):

  • dom/WebKitNamedFlow.cpp:

(WebCore::WebKitNamedFlow::dispatchRegionOversetChangeEvent):

08:58 WebKitGTK/Roadmap edited by clopez@igalia.com
(diff)
08:56 WebKitGTK/Roadmap edited by clopez@igalia.com
(diff)
08:51 Changeset [183063] by darin@apple.com
  • 9 edits in trunk/Source

Remove some stray uses of OwnPtr and PassOwnPtr in WTF (outside of the template definitions and traits)
https://bugs.webkit.org/show_bug.cgi?id=143944

Reviewed by Andreas Kling.

Source/WebCore:

  • editing/ios/DictationCommandIOS.h: Added now-needed include of PassOwnPtr.h.

Source/WTF:

  • wtf/FilePrintStream.h: Removed unneeded include.
  • wtf/HashTable.h: Fixed class template name in comment.
  • wtf/HashTraits.h: Removed unneeded forward declaration.
  • wtf/ListHashSet.h: Removed unneeded includes.
  • wtf/ThreadingWin.cpp: Removed unneeded includes.

(WTF::wtfThreadEntryPoint): Changed code to use unique_ptr.
(WTF::createThreadInternal): Changed code to use make_unique and release.

  • wtf/efl/RunLoopEfl.cpp: Removed unneeded includes.
06:01 Changeset [183062] by nvasilyev@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Make formatted nodes more consistent with formatted objects
https://bugs.webkit.org/show_bug.cgi?id=142159

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeOutline.css:

(.dom-tree-outline ol):
Keep indentation exactly two spaces of Menlo.

(.dom-tree-outline li):
(.dom-tree-outline li.parent):
(.dom-tree-outline li .html-tag.close):
(.dom-tree-outline li.parent::before):
(.dom-tree-outline:focus li.parent.selected::before):
(.dom-tree-outline li.parent.expanded::before):
(.dom-tree-outline:focus li.parent.expanded.selected::before):

  • UserInterface/Views/FormattedValue.css:

(.formatted-node > .dom-tree-outline ol):
Keep indentation exactly two spaces of Menlo.

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property > .disclosure-button):
Disclosure triangle is 13 by 13 pixels. Having it in the middle of 16 by 16
pixels block makes it look bloory on non-retina screen, because:
(16 - 13) / 2 = 1.5px. Replacing 16 with 15 fixes the problem.

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):

03:11 Changeset [183061] by lforschler@apple.com
  • 12 edits
    6 copies in branches/safari-600.1.4.16-branch

Merged r180110. rdar://problem/20623662

02:57 Changeset [183060] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] jhbuild should not use a branch for openwebrtc
https://bugs.webkit.org/show_bug.cgi?id=143981

Patch by Philippe Normand <pnormand@igalia.com> on 2015-04-21
Reviewed by Carlos Garcia Campos.

  • gtk/jhbuild.modules:
02:24 Changeset [183059] by lforschler@apple.com
  • 3 edits
    2 copies in branches/safari-600.1.4.16-branch

Merged r182835. rdar://problem/20623652

00:30 Changeset [183058] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r181409. rdar://problem/20623647

00:27 Changeset [183057] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.16-branch/LayoutTests

Merged r182299. rdar://problem/20623641

00:25 Changeset [183056] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebKit2

Merged r182285. rdar://problem/20623641

00:23 Changeset [183055] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch

Merged r182284. rdar://problem/20623641

00:21 Changeset [183054] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-600.1.4.16-branch

Merged r182051. rdar://problem/20623637

Note: See TracTimeline for information about the timeline view.