{"push_id":646856676,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"4201c478ad3192acbbe2219e4c990d44ff757867","before":"4622034af0a984ef69dae63250069bb971684533","commits":[{"sha":"73d993e3dc6ca8ba503131870f809b8b21f2b169","author":{"email":"ede5d8c27b7232d58457a69f3744a7714b0dc4d7@apple.com","name":"antti@apple.com"},"message":"Network Cache: Disk cache getting filled by YouTube video data\nhttps://bugs.webkit.org/show_bug.cgi?id=144259\n\nReviewed by Darin Adler.\n\nSource/WebCore:\n\nMSE media is loaded via XHR and tends to eventually fill the cache.\n\nYouTube serves the media chunks cacheable, however they are rarely (if ever) reused.\nWe can reduce disk writes and keep more useful resources around by not caching them\n\nTest: http/tests/cache/disk-cache/disk-cache-media.html\n\n* loader/DocumentLoader.cpp:\n(WebCore::DocumentLoader::startLoadingMainResource):\n\n    Set the requester.\n\n* loader/cache/CachedRawResource.cpp:\n(WebCore::CachedRawResource::CachedRawResource):\n* page/DiagnosticLoggingKeys.cpp:\n(WebCore::DiagnosticLoggingKeys::streamingMedia):\n* page/DiagnosticLoggingKeys.h:\n* platform/network/ResourceRequestBase.cpp:\n(WebCore::ResourceRequestBase::adopt):\n(WebCore::ResourceRequestBase::copyData):\n(WebCore::equalIgnoringHeaderFields):\n* platform/network/ResourceRequestBase.h:\n(WebCore::ResourceRequestBase::requester):\n(WebCore::ResourceRequestBase::setRequester):\n\n    Add requester type to the request object. Currently this is main resource, xhr or unspecified.\n\n(WebCore::ResourceRequestBase::encodeWithoutPlatformData):\n(WebCore::ResourceRequestBase::decodeWithoutPlatformData):\n* platform/network/cf/ResourceRequest.h:\n(WebCore::ResourceRequest::deprecatedSetMainResourceRequest): Deleted.\n(WebCore::ResourceRequest::deprecatedIsMainResourceRequest): Deleted.\n\n    Replace this iOS only field with shared mechanism.\n\n* platform/network/ios/QuickLook.mm:\n(WebCore::QuickLookHandle::create):\n* xml/XMLHttpRequest.cpp:\n(WebCore::XMLHttpRequest::createRequest):\n\n    Set the requester.\n\nSource/WebKit2:\n\nMSE media is loaded via XHR and tends to eventually fill the cache.\n\nYouTube serves the media chunks cacheable, however they are rarely (if ever) reused.\nWe can reduce disk writes and keep more useful resources around by not caching them\n\n* NetworkProcess/NetworkResourceLoader.cpp:\n(WebKit::NetworkResourceLoader::didReceiveResponseAsync):\n(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):\n* NetworkProcess/cache/NetworkCache.cpp:\n(WebKit::NetworkCache::makeStoreDecision):\n\n    Don't store if the requester is XHR and response has video or audio content type.\n\n* NetworkProcess/cache/NetworkCache.h:\n* NetworkProcess/cache/NetworkCacheStatistics.cpp:\n(WebKit::NetworkCache::storeDecisionToDiagnosticKey):\n* Shared/Network/NetworkResourceLoadParameters.cpp:\n(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):\n(WebKit::NetworkResourceLoadParameters::encode):\n(WebKit::NetworkResourceLoadParameters::decode):\n* Shared/Network/NetworkResourceLoadParameters.h:\n\n    The requester type is now part of the ResourceRequest, no need for separate parameter.\n\n* Shared/mac/WebCoreArgumentCodersMac.mm:\n(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):\n(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):\n* WebProcess/Network/WebResourceLoadScheduler.cpp:\n(WebKit::WebResourceLoadScheduler::scheduleLoad):\n\nLayoutTests:\n\n* http/tests/cache/disk-cache/disk-cache-media-expected.txt: Added.\n* http/tests/cache/disk-cache/disk-cache-media.html: Added.\n* http/tests/cache/disk-cache/resources/cache-test.js:\n(generateTestURL):\n\n\n\ngit-svn-id: http://svn.webkit.org/repository/webkit/trunk@183467 268f45cc-cd09-0410-ab3c-d52691b4dbfc","distinct":true,"url":"https://api.github.com/repos/WebKit/webkit/commits/73d993e3dc6ca8ba503131870f809b8b21f2b169"},{"sha":"ac49c8b00cbcc4d6773093a20e6c259cc27e7275","author":{"email":"0c14cefec9476562948d928ef34b7e5bc72c4a13@apple.com","name":"timothy@apple.com"},"message":"Web Inspector: Add new tab button to make it easy to bring a closed tab back\nhttps://bugs.webkit.org/show_bug.cgi?id=144297\n\nReviewed by Joseph Pecoraro.\n\n* Localizations/en.lproj/localizedStrings.js:\n* UserInterface/Base/Main.js:\n(WebInspector.contentLoaded):\n(WebInspector.isTabTypeAllowed):\n(WebInspector._tabContentViewForType):\n(WebInspector._rememberOpenTabs):\n(WebInspector._updateNewTabButtonState):\n(WebInspector._newTabItemClicked):\n(WebInspector.isNewTabWithTypeAllowed):\n(WebInspector.createNewTab):\n(WebInspector.activateExtraDomains):\n(WebInspector._restoreCookieForOpenTabs):\n(WebInspector._saveCookieForOpenTabs):\n(WebInspector._isTabTypeAllowed): Deleted.\n* UserInterface/Images/NewTab.svg: Added.\n* UserInterface/Images/NewTabPlus.svg:\n* UserInterface/Main.html:\n* UserInterface/Views/NewTabContentView.css: Added.\n(.new-tab.tab.content-view):\n(.new-tab.tab.content-view > .tab-item):\n(.new-tab.tab.content-view > .tab-item.disabled):\n(.new-tab.tab.content-view > .tab-item > .box):\n(.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):\n(.new-tab.tab.content-view > .tab-item > .box > img):\n(.new-tab.tab.content-view > .tab-item > label):\n* UserInterface/Views/NewTabContentView.js: Added.\n(WebInspector.NewTabContentView):\n(WebInspector.NewTabContentView.prototype.get type):\n(WebInspector.NewTabContentView.prototype._createNewTab):\n* UserInterface/Views/TabBar.css:\n(.tab-bar > .item:not(.disabled).selected):\n(.tab-bar > .item.new-tab-button:not(.disabled):hover):\n(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover + .item):\n(.tab-bar > .item.disabled > .icon):\n(.tab-bar > .item.new-tab-button:not(.disabled):hover > .icon):\n(.tab-bar > .item.selected): Deleted.\n(.tab-bar > .item.new-tab-button:hover): Deleted.\n(.tab-bar:not(.animating) > .item:not(.selected):hover + .item): Deleted.\n(.tab-bar > .item.new-tab-button:hover > .icon): Deleted.\n* UserInterface/Views/TabBar.js:\n(WebInspector.TabBar.prototype.set selectedTabBarItem):\n(WebInspector.TabBar.prototype._handleMouseDown):\n* UserInterface/Views/TabBarItem.js:\n(WebInspector.TabBarItem.prototype.get disabled):\n(WebInspector.TabBarItem.prototype.set disabled):\n* UserInterface/Views/TabBrowser.js:\n(WebInspector.TabBrowser):\n(WebInspector.TabBrowser.prototype.addTabForContentView):\n(WebInspector.TabBrowser.prototype.showTabForContentView):\n(WebInspector.TabBrowser.prototype.closeTabForContentView):\n\ngit-svn-id: http://svn.webkit.org/repository/webkit/trunk@183468 268f45cc-cd09-0410-ab3c-d52691b4dbfc","distinct":true,"url":"https://api.github.com/repos/WebKit/webkit/commits/ac49c8b00cbcc4d6773093a20e6c259cc27e7275"},{"sha":"4201c478ad3192acbbe2219e4c990d44ff757867","author":{"email":"a82ad16292c9f3b890b7b13c336ff95f6bd02623@webkit.org","name":"commit-queue@webkit.org"},"message":"Web Inspector: add a separate overview for the Rendering Frames timeline\nhttps://bugs.webkit.org/show_bug.cgi?id=144245\n\nPatch by Matt Baker <mattbaker@apple.com> on 2015-04-28\nReviewed by Timothy Hatcher.\n\nThe Timelines tab now supports two view modes, labeled \"Timelines\" and \"Rendering Frames\", with each mode\nhaving a seperate timeline overview and selected range. The Timelines mode displays the original time-based\ngraphs (Network, Layout, and Script), and switching to the Rendering Frames mode displays a frames graph\nwith a timeline ruler which shows frame indices.\n\nIf the rendering frames timeline is supported by the backend, a navigation bar is added to the timelines\nsidebar with controls for switching between view modes. In addition to user-triggered view mode changes, the\ntimelines sidebar will automatically change the current view mode in response to content view changes that\nare triggered elsewhere in the UI (for example, when a timeline that does not belong to the current view\nmode is selected via the navigation path).\n\n* UserInterface/Controllers/TimelineManager.js:\n(WebInspector.TimelineManager.prototype.get activeRecording): Deleted.\n(WebInspector.TimelineManager.prototype.get recordings): Deleted.\nRemoved unused code.\n\n* UserInterface/Main.html:\nNew files.\n\n* UserInterface/Models/RenderingFrameTimelineRecord.js:\n(WebInspector.RenderingFrameTimelineRecord):\n(WebInspector.RenderingFrameTimelineRecord.resetFrameIndex):\n(WebInspector.RenderingFrameTimelineRecord.prototype.get frameIndex):\n(WebInspector.RenderingFrameTimelineRecord.prototype.get frameNumber):\n* UserInterface/Models/TimelineRecording.js:\n(WebInspector.TimelineRecording.prototype.reset):\nFrame number is now derived from frame index.\n\n* UserInterface/Views/LinearTimelineOverview.js:\n(WebInspector.LinearTimelineOverview):\n(WebInspector.LinearTimelineOverview.prototype.canShowTimeline):\nNew overview class for time-based timeline graphs.\n\n* UserInterface/Views/RenderingFrameDetailsSidebarPanel.js:\n(WebInspector.RenderingFrameDetailsSidebarPanel):\n(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.updateRangeSelection):\n(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._getSelectedRecords):\nChanged type of selected range from time to frame indices.\n\n* UserInterface/Views/RenderingFrameTimelineOverview.js:\n(WebInspector.RenderingFrameTimelineOverview.this.timelineRuler.formatLabelCallback):\n(WebInspector.RenderingFrameTimelineOverview):\n(WebInspector.RenderingFrameTimelineOverview.prototype.canShowTimeline):\nNew overview class for frame-based timeline graphs.\n\n* UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:\n(.timeline-overview > .graphs-container > .timeline-overview-graph.rendering-frame):\n* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:\n(WebInspector.RenderingFrameTimelineOverviewGraph):\n(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):\nUpdated to use frame index ruler and removed frame combining logic.\n\n* UserInterface/Views/RenderingFrameTimelineView.js:\n(WebInspector.RenderingFrameTimelineView):\nIncreased column widths.\n\n* UserInterface/Views/TimelineOverview.css:\n(.timeline-overview > .graphs-container):\n(body.mac-platform.legacy .timeline-overview > .graphs-container):\nUpdated for new ruler height.\n\n* UserInterface/Views/TimelineOverview.js:\n(WebInspector.TimelineOverview):\n(WebInspector.TimelineOverview.prototype.get secondsPerPixel):\n(WebInspector.TimelineOverview.prototype.set secondsPerPixel):\n(WebInspector.TimelineOverview.prototype.get visibleDuration):\n(WebInspector.TimelineOverview.prototype.set selectionDuration):\n(WebInspector.TimelineOverview.prototype.updateLayout):\n(WebInspector.TimelineOverview.prototype.get timelineRuler):\n(WebInspector.TimelineOverview.prototype.canShowTimeline):\n(WebInspector.TimelineOverview.prototype._handleScrollEvent):\n(WebInspector.TimelineOverview.prototype._handleWheelEvent):\n(WebInspector.TimelineOverview.prototype._timelineRemoved):\n(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):\n(WebInspector.TimelineOverview.prototype.set currentTime): Deleted.\n(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded): Deleted.\n(WebInspector.TimelineOverview.prototype._needsLayout): Deleted.\nConverted to base class. Derived classes provide settings and permitted timeline types.\n\n* UserInterface/Views/TimelineRecordFrame.css:\n(.timeline-record-frame):\n(.timeline-record-frame > .frame):\n(.timeline-record-frame > .frame > .duration):\n(.timeline-record-frame > .frame > .duration.timeline-record-type-network):\n(.timeline-record-frame > .frame > .duration.timeline-record-type-layout):\n(.timeline-record-frame > .frame > .duration.timeline-record-type-script):\n(.timeline-record-frame > .frame > .duration:last-child): Deleted.\nNew graph frames styles.\n\n* UserInterface/Views/TimelineRecordFrame.js:\n(WebInspector.TimelineRecordFrame):\n(WebInspector.TimelineRecordFrame.prototype.get record):\n(WebInspector.TimelineRecordFrame.prototype.set record):\n(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):\n(WebInspector.TimelineRecordFrame.prototype.get element): Deleted.\nUpdated to use frame index ruler.\nRemoved dropped frames and frame combining logic.\n\n* UserInterface/Views/TimelineRecordingContentView.js:\n(WebInspector.TimelineRecordingContentView):\n(WebInspector.TimelineRecordingContentView.prototype.shown):\n(WebInspector.TimelineRecordingContentView.prototype.hidden):\n(WebInspector.TimelineRecordingContentView.prototype.updateLayout):\n(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):\n(WebInspector.TimelineRecordingContentView.prototype._updateTimes):\n(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):\n(WebInspector.TimelineRecordingContentView.prototype._getRenderingFrameTimeline):\n(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):\n(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):\n(WebInspector.TimelineRecordingContentView.prototype._recordingReset):\n(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):\n(WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView): Deleted.\n(WebInspector.TimelineRecordingContentView.prototype.goForward): Deleted.\n(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters): Deleted.\n(WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange): Deleted.\n(WebInspector.TimelineRecordingContentView.prototype._update): Deleted.\n(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused): Deleted.\n(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed): Deleted.\n(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated): Deleted.\nMaintains two timeline overviews, switching between them based on the current content view.\nUpdated tree element filtering to support both overview rulers.\n\n* UserInterface/Views/TimelineRuler.css:\n(.timeline-ruler > .header):\n(body.mac-platform.legacy .timeline-ruler > .header):\n(.timeline-ruler > .header > .divider > .label):\n(.timeline-ruler > .selection-drag):\n(body.mac-platform.legacy .timeline-ruler > .selection-drag):\n(.timeline-ruler > .selection-handle):\n(body.mac-platform.legacy .timeline-ruler > .selection-handle):\n(.timeline-ruler > .header > .divider): Deleted.\n(.timeline-ruler > .selection-drag:active): Deleted.\nUpdated for new ruler height.\n\n* UserInterface/Views/TimelineRuler.js:\n(WebInspector.TimelineRuler):\n(WebInspector.TimelineRuler.prototype.set formatLabelCallback):\n(WebInspector.TimelineRuler.prototype.updateLayout):\n(WebInspector.TimelineRuler.prototype._formatDividerLabelText):\n(WebInspector.TimelineRuler.prototype.set allowsClippedLabels): Deleted.\n(WebInspector.TimelineRuler.prototype._updateSelection): Deleted.\nAdded ability to customize label formatting.\n\n* UserInterface/Views/TimelineSidebarPanel.css:\n(.panel.timeline .navigation-bar.timelines-view):\n(.sidebar > .panel.navigation.timeline > .title-bar):\n(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):\n(.sidebar > .panel.navigation.timeline > .title-bar.timelines):\n(.sidebar > .panel.navigation.timeline > .navigation-bar-container):\n(.sidebar > .panel.navigation.timeline > .navigation-bar-container > .navigation-bar):\n(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):\n(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):\n(.sidebar > .panel.navigation.timeline > .timelines-content):\n(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):\n(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)):\n(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.\n(body.window-inactive .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.\nUpdated for new navigation bar and ruler height.\n\n* UserInterface/Views/TimelineSidebarPanel.js:\n(WebInspector.TimelineSidebarPanel):\n(WebInspector.TimelineSidebarPanel.prototype.get viewMode):\n(WebInspector.TimelineSidebarPanel.prototype.canShowTimeline):\n(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):\n(WebInspector.TimelineSidebarPanel.get this):\n(WebInspector.TimelineSidebarPanel._timelineAdded.set this):\nAdded support for two view modes: Timelines and Rendering Frames.\n\n* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:\n* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:\nNew files.\n\ngit-svn-id: http://svn.webkit.org/repository/webkit/trunk@183469 268f45cc-cd09-0410-ab3c-d52691b4dbfc","distinct":true,"url":"https://api.github.com/repos/WebKit/webkit/commits/4201c478ad3192acbbe2219e4c990d44ff757867"}]}