Timeline



Aug 9, 2014:

9:34 PM Changeset in webkit [172375] by Brian Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: TimelineManager should reuse empty recordings
https://bugs.webkit.org/show_bug.cgi?id=135749

Reviewed by Timothy Hatcher.

Check whether the recording is empty before creating a new one.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._loadNewRecording):

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording.prototype.isEmpty):
(WebInspector.TimelineRecording.prototype.unloaded):

6:04 PM Changeset in webkit [172374] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r172301): Combined phone number highlight doesn't appear if rich content is selected and we have no rich content services
https://bugs.webkit.org/show_bug.cgi?id=135785
<rdar://problem/17969843>

Reviewed by Brady Eidson.

  • WebProcess/WebPage/mac/ServicesOverlayController.mm:

(WebKit::ServicesOverlayController::drawSelectionHighlight):
We can't early return in the rich-content-but-no-rich-services case
if we have telephone numbers in the selection, because we want to offer
them up in the combined menu.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

If we end up with no menu, because there were no services available,
make a fresh one that we can fill with combined telephone number items.

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

Subpixel rendering: Transforms on non-compositing layers leave bits behind when the box boundaries changes.
https://bugs.webkit.org/show_bug.cgi?id=135786

Reviewed by Simon Fraser.

Since we don't control the transformed context painting's snapping strategy, our best bet to fully
include the transformed box when requesting for repaint is to use enclosing.
Pixelsnapping doesn't work here for all cases. For example, a scaled box at 0.8px can be anti-aliased painted
both at 0.5px and 1px, while with pixelsnapping we'd expect it to be painted starting from 1px;

Source/WebCore:

Test: fast/repaint/hidpi-transform-on-subpixel-repaintrect.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeRectForRepaint): enclose the result of the transform.

LayoutTests:

  • fast/repaint/hidpi-transform-on-subpixel-repaintrect-expected.txt: Added.
  • fast/repaint/hidpi-transform-on-subpixel-repaintrect.html: Added.

Aug 8, 2014:

11:50 PM Changeset in webkit [172372] by mark.lam@apple.com
  • 17 edits in trunk/Source

REGRESSION: Inspector crashes when debugger is paused and injected scripts access window.screen().
<https://webkit.org/b/135656>

Not reviewed.

Rolling out r170680 which was merged to ToT in r172129.

Source/JavaScriptCore:

  • debugger/Debugger.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::scope):
(JSC::DebuggerCallFrame::evaluate):
(JSC::DebuggerCallFrame::invalidate):

  • debugger/DebuggerCallFrame.h:
  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::DebuggerScope):
(JSC::DebuggerScope::finishCreation):
(JSC::DebuggerScope::visitChildren):
(JSC::DebuggerScope::className):
(JSC::DebuggerScope::getOwnPropertySlot):
(JSC::DebuggerScope::put):
(JSC::DebuggerScope::deleteProperty):
(JSC::DebuggerScope::getOwnPropertyNames):
(JSC::DebuggerScope::defineOwnProperty):
(JSC::DebuggerScope::next): Deleted.
(JSC::DebuggerScope::invalidateChain): Deleted.
(JSC::DebuggerScope::isWithScope): Deleted.
(JSC::DebuggerScope::isGlobalScope): Deleted.
(JSC::DebuggerScope::isFunctionScope): Deleted.

  • debugger/DebuggerScope.h:

(JSC::DebuggerScope::create):
(JSC::DebuggerScope::Iterator::Iterator): Deleted.
(JSC::DebuggerScope::Iterator::get): Deleted.
(JSC::DebuggerScope::Iterator::operator++): Deleted.
(JSC::DebuggerScope::Iterator::operator==): Deleted.
(JSC::DebuggerScope::Iterator::operator!=): Deleted.
(JSC::DebuggerScope::isValid): Deleted.
(JSC::DebuggerScope::jsScope): Deleted.
(JSC::DebuggerScope::begin): Deleted.
(JSC::DebuggerScope::end): Deleted.

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::scopeType):
(Inspector::JSJavaScriptCallFrame::scopeChain):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::scopeChain):

  • inspector/ScriptDebugServer.cpp:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::debuggerScopeStructure): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::isWithScope): Deleted.

  • runtime/JSScope.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::attachDebugger):

7:37 PM Changeset in webkit [172371] by g.czajkowski@samsung.com
  • 2 edits in trunk/Source/WebKit2

[EFL] Do not initialize g_type in WebProcessMain::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=135700

Reviewed by Gyuyoung Kim.

Inspired by r171788.
Glib since 2.36 itself initializes g_type_init.

  • WebProcess/efl/WebProcessMainEfl.cpp:
6:14 PM Changeset in webkit [172370] by Simon Fraser
  • 2 edits in trunk/Tools

Unbreak webkitpy unit tests by checking for the existence of the image diff template
file before trying to open it (as the tests do for results.html).

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.write_image_diff_files):

6:12 PM Changeset in webkit [172369] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix for 32-bit.

  • UIProcess/mac/ServicesController.mm:

(WebKit::ServicesController::ServicesController):
Don't dynamically refresh services in 32-bit apps. It's not possible
to write a 32-bit app with the Modern API, so this doesn't matter.

5:23 PM Changeset in webkit [172368] by Simon Fraser
  • 3 edits
    2 adds in trunk

Load the layout test result image diff HTML from a file, rather than having it inline in webkitpy
https://bugs.webkit.org/show_bug.cgi?id=135780

Reviewed by Dan Bates.

Tools:

Pull the HTML for the image diff file into a separate file, for easier hackability.

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.write_image_diff_files):

LayoutTests:

Add image-diff-template.html and expected result (crazy, but this is what we do
for results.html too).

  • fast/harness/image-diff-template-expected.txt: Added.
  • fast/harness/image-diff-template.html: Added.
5:00 PM Changeset in webkit [172367] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Implement long mouse press over links. Part of 135257 - Add long mouse press gesture.
https://bugs.webkit.org/show_bug.cgi?id=135476

Patch by Peyton Randolph <prandolph@apple.com> on 2014-08-08
Reviewed by Tim Horton.

  • page/EventHandler.cpp:

(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear): Clear long press state.
(WebCore::EventHandler::handleMousePressEvent): Start the long-press if the mouse press is a left
mouse press over a link.
(WebCore::EventHandler::eventMayStartDrag): We cannot start a drag if we've recognized a long press.
(WebCore::EventHandler::handleMouseReleaseEvent):
If we didn't recognize a long press, cancel the long press.
(WebCore::EventHandler::beginTrackingPotentialLongMousePress):
Begin the long mouse press by kicking off a timer. If the timer fires before the long press is
cancelled, the long press is recognized.
(WebCore::EventHandler::recognizeLongMousePress): Added. Trigger the long-press and disable other
actions like dragging.
(WebCore::EventHandler::cancelTrackingPotentialLongMousePress): Added. Cancel the long press by
clearing related state.
(WebCore::EventHandler::clearLongMousePressState): Added. Clear long press state.
(WebCore::EventHandler::handleLongMousePressMouseMovedEvent): Added. Cancel the long press if
the mouse moves outside a specified hysteresis interval.
(WebCore::EventHandler::handleMouseMoveEvent): Ask handleLongMousePressMouseMovedEvent whether to
return early and not update hovers, cursors, drags, etc.
(WebCore::EventHandler::dragHysteresisExceeded): Factor out the hysteresis bounds check into
mouseHysteresisExceeded().
(WebCore::EventHandler::handleDrag): Cancel long press upon starting drag.
(WebCore::EventHandler::mouseHysteresisExceeded): Added. General hysteresis function that takes an
arbitrary mouse movement threshold. Factored out from dragHysteresisExceeded.

  • page/EventHandler.h:
4:27 PM Changeset in webkit [172366] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit2

[mac] Dynamically update serviceability when the set of services changes
https://bugs.webkit.org/show_bug.cgi?id=135738
<rdar://problem/17533459>

Reviewed by Brady Eidson.

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcess):
Adopt the new universal refreshExistingServices.

(WebKit::WebContext::refreshExistingServices): Deleted.

  • UIProcess/WebContext.h:

Remove WebContext::refreshExistingServices; there's no need for it.

  • UIProcess/mac/ServicesController.h:
  • UIProcess/mac/ServicesController.mm:

Fix the build with only public headers by including NSSharingService.h itself.
Place the NSSharingServicePicker (Details) category outside the #ifdef.
Forward-declare and possibly import NSExtension SPI.

(WebKit::ServicesController::ServicesController):
Register a callback to be notified whenever the set of services changes.
When this occurs, call refreshExistingServices. We let refreshExistingServices
coalesce updates because these notifications can come in small batches.

(WebKit::ServicesController::refreshExistingServices):
Dispatch changes in service availability to all processes in all contexts.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):
Adjust the referenced rdar:// and call ServicesController::refreshExistingServices
instead of the now-removed WebContext:: variant. We can't remove this
yet because our services state can still be stale because NSServiceSharingPicker
can still sometimes lie about the current service state immediately after a change occurs;
once that is fixed, we should get rid of this as well as the refresh in Web Process creation.

4:24 PM Changeset in webkit [172365] by Simon Fraser
  • 3 edits
    3 adds in trunk

[WK2] Scrolling does not work inside nested frames
https://bugs.webkit.org/show_bug.cgi?id=135775
<rdar://problem/17959896>

Reviewed by Tim Horton.

Source/WebCore:

r169733 added an "isMainFrame" check in AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged.
However we have to rebuild the non-fast-scrollable region when any subframe changes,
even a deeply nested one. So always rebuild it, starting from the root frame.

Fixes scrolling on nested framesets like http://www.opengl.org/sdk/docs/man3/.

Test: platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):

LayoutTests:

Nested frameset test that dumps the scrolling tree.

  • platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/frames/resources/frameset-frame.html: Added.
4:15 PM Changeset in webkit [172364] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Clients that request the selection services menu after WebKit2 will get one with different metrics than otherwise
https://bugs.webkit.org/show_bug.cgi?id=135765
<rdar://problem/17962180>

Reviewed by Brady Eidson.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):
The menu is cached between clients, but we make adjustments to it.
We should copy it before adjusting.

4:14 PM Changeset in webkit [172363] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.4.9

Re-create tag part 2.

4:13 PM Changeset in webkit [172362] by matthew_hanson@apple.com
  • 1 delete in tags/Safari-600.1.4.9

Re-create tag part 1.

4:09 PM Changeset in webkit [172361] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.4.9

Re-create tag part 2.

4:08 PM Changeset in webkit [172360] by matthew_hanson@apple.com
  • 1 delete in tags/Safari-600.1.4.9

Re-create tag part 1.

3:49 PM Changeset in webkit [172359] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.1.4-branch/Source

Versioning.

3:45 PM Changeset in webkit [172358] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.4.9/safari-600.1.4-branch

New Tag

2:12 PM Changeset in webkit [172357] by Bem Jones-Bey
  • 12 edits in trunk/Source/WebCore

[CSS Shapes] Refactor getExcludedIntervals since only one LineSegment is ever returned
https://bugs.webkit.org/show_bug.cgi?id=135757

Reviewed by Zoltan Horvath.

The interface for getExcludedIntervals was designed when shape-inside
was still a thing, and it was possible for a line in a shape to have
multiple segments. shape-outside can only have one segment per line,
so this refactors the code to simplify and reflect that reality.

No new test, no behavior change.

  • rendering/shapes/BoxShape.cpp:

(WebCore::BoxShape::getExcludedInterval):
(WebCore::BoxShape::getExcludedIntervals): Deleted.

  • rendering/shapes/BoxShape.h:
  • rendering/shapes/PolygonShape.cpp:

(WebCore::PolygonShape::getExcludedInterval):
(WebCore::PolygonShape::getExcludedIntervals): Deleted.

  • rendering/shapes/PolygonShape.h:
  • rendering/shapes/RasterShape.cpp:

(WebCore::RasterShape::getExcludedInterval):
(WebCore::RasterShape::getExcludedIntervals): Deleted.

  • rendering/shapes/RasterShape.h:
  • rendering/shapes/RectangleShape.cpp:

(WebCore::RectangleShape::getExcludedInterval):
(WebCore::RectangleShape::getExcludedIntervals): Deleted.

  • rendering/shapes/RectangleShape.h:
  • rendering/shapes/Shape.h:

(WebCore::LineSegment::LineSegment):

  • rendering/shapes/ShapeOutsideInfo.cpp:

(WebCore::ShapeOutsideInfo::logicalLeftOffset):
(WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
(WebCore::ShapeOutsideInfo::computeSegmentsForLine): Deleted.

  • rendering/shapes/ShapeOutsideInfo.h:
1:59 PM Changeset in webkit [172356] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.4.9

New Tag.

1:21 PM Changeset in webkit [172355] by Brian Burg
  • 6 edits in trunk/Source

Web Inspector: add debugging flag to InspectorTest for unbuffered logging to stderr
https://bugs.webkit.org/show_bug.cgi?id=135726

Reviewed by Timothy Hatcher.

Source/WebCore:

Add a bridge so that InspectorTest can synchronously log to the console.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::unbufferedLog): Added.

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

Source/WebInspectorUI:

Added a flag for debugging inspector tests which will synchronously log messages.
This avoids failure modes that prevent logging from being added to the test page.

  • UserInterface/Base/Test.js:

(InspectorTest.debugLog):
(InspectorTest.addResult):

1:09 PM Changeset in webkit [172354] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4-branch/Source

Versioning.

1:04 PM Changeset in webkit [172353] by mark.lam@apple.com
  • 2 edits in trunk/Tools

Gardening: fix Windows build after r172259.

Not reviewed.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::addMockSpeechInputResult): Deleted.
(TestRunner::setMockSpeechInputDumpRect): Deleted.
(TestRunner::startSpeechInput): Deleted.

1:00 PM Changeset in webkit [172352] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: When Switching Recordings, the UI datagrids do not update to match selection
https://bugs.webkit.org/show_bug.cgi?id=135764

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-08
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineSidebarPanel.js:

When changing the activeContentView trigger an update of the datagrids by
re-applying the filter, which will be different now that the view is different.

12:53 PM Changeset in webkit [172351] by roger_fong@apple.com
  • 6 edits in trunk

Adjustments to CueBox CSS Width calculations.
https://bugs.webkit.org/show_bug.cgi?id=135759
<rdar://problem/17954473>.

Reviewed by Eric Carlson.

This is a followup patch that addresses some of the test failures caused by r172224.
These tests were skipped in r172253.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize):
Tell the cue boxes that they need to be updated when the font size specified in the user prefs changes.

Cap width to 100%, calculate max-width in percentages instead of pixels.

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):

(WebCore::VTTCue::setFontSize):
Remove some unnecessary code that doesn't actually work.
Make sure to tell cuebox that it needs to be updated.

Unskip tests media/track/track-cue-rendering-horizontal.html and media/track/track-cue-rendering-rtl.html.

12:33 PM Changeset in webkit [172350] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception opening Web Inspector - TypeError: undefined is not a function - candidateObjectCookie.every
https://bugs.webkit.org/show_bug.cgi?id=135762

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-08
Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
Fix a typo, the wrong object was being used.

12:20 PM Changeset in webkit [172349] by commit-queue@webkit.org
  • 4 edits in trunk

make clean does not work in OpenSource, fails in WebKitLibraries
https://bugs.webkit.org/show_bug.cgi?id=135734

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-08
Reviewed by David Kilzer.

Tools:

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

Add a --clean switch that removes possible WebKitSystemInterface
and LLVM libraries and headers that may have been copied to the
product directory.

WebKitLibraries:

  • Makefile:

Add a "clean" target that runs copy-webkitlibraries-to-product-dir
with the new --clean switch.

11:55 AM Changeset in webkit [172348] by Simon Fraser
  • 20 edits in trunk/Source/WebCore

Clean up image subsampling code, make it less iOS-specific
https://bugs.webkit.org/show_bug.cgi?id=134916

Reviewed by Dean Jackson.

Compile the image subsampling code on both Mac and iOS, and make it more platform
neutral in general. Add a setting to allow it to be enabled on Mac for testing.

The most significant changes are in ImageSourceCG and BitmapImageCG. CG's ImageSource
is no longer stateful with respect to subsampling; its functions take a SubsamplingLevel
when appropriate. CG's BitmapImage now determines which level of subsampling to use
for a given frame, storing the subsampling level in the frame data. It can replace
an aggressively subsampled frame with a less subsampled frame if necessary.

To reduce the chances of subsampling affecting rendering, BitmapImage::size() now
always returns the non-subsampled size; subsampling is strictly internal to BitmapImage.
BitmapImage::draw() takes care of scaling the srcRect for subsampled images.

iOS had a code path that enabled caching of frame metadata in BitmapImage without
actually decoding the frame; make this cross-platform.

Fix a couple of issues in the original pathc: remove a log, and ImageSource::allowSubsamplingOfFrameAtIndex()
return false.

  • WebCore.exp.in: Changed signature for GraphicsContext::drawNativeImage().
  • WebCore.xcodeproj/project.pbxproj: Added ImageSource.cpp, which is not built

for Cocoa but useful for reference.

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::imageSizeForRenderer): Remove iOS-specific subsampling code.
(WebCore::CachedImage::createImage): Call setAllowSubsampling() on the image if we
can get to Settings (m_loader is null for image documents).
(WebCore::CachedImage::currentFrameKnownToBeOpaque): This forced decode always
caused creation of the non-subsampled image, so remove it. There's no reason to
eagerly decode the frame here.

  • loader/cache/CachedImage.h: Fix comment.
  • page/Settings.cpp: Add defaultImageSubsamplingEnabled, true for iOS and false for Mac.
  • page/Settings.in: Added imageSubsamplingEnabled.
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage): Init some more things. Default m_allowSubsampling to
true for iOS to catch images created in code paths where we can't get to Settings.
(WebCore::BitmapImage::haveFrameAtIndex): Handy helper.
(WebCore::BitmapImage::cacheFrame): Now takes the subsampling level and whether to cache
just metadata, or also the frame.
(WebCore::BitmapImage::didDecodeProperties): No need to store originalSize.
(WebCore::BitmapImage::updateSize): When we get the size for the first time, call
determineMinimumSubsamplingLevel() to choose a reasonable subsampling level which takes
platform-specific limits into account.
(WebCore::BitmapImage::dataChanged): Comment.
(WebCore::BitmapImage::ensureFrameIsCached): Take ImageFrameCaching into account.
(WebCore::BitmapImage::frameAtIndex): Choose a subsampling level given the scale,
then determine if we can use the currently cached frame, or whether we should resample.
(WebCore::BitmapImage::frameIsCompleteAtIndex): Caching m_isComplete is now done when caching
frame metadata.
(WebCore::BitmapImage::frameDurationAtIndex):
(WebCore::BitmapImage::frameHasAlphaAtIndex): The 'true' return is the safe return value.
(WebCore::BitmapImage::frameOrientationAtIndex): Caching m_orientation is now done when caching
frame metadata.
(WebCore::BitmapImage::cacheFrameInfo): Deleted.
(WebCore::BitmapImage::originalSize): Deleted.
(WebCore::BitmapImage::originalSizeRespectingOrientation): Deleted.
(WebCore::BitmapImage::currentFrameSize): Deleted.
(WebCore::BitmapImage::ensureFrameInfoIsCached): Deleted.

  • platform/graphics/BitmapImage.h:

(WebCore::FrameData::FrameData):

  • platform/graphics/GraphicsContext.h: No need to pass a scale param now.
  • platform/graphics/ImageSource.cpp: Non-Cocoa changes.

(WebCore::ImageSource::subsamplingLevelForScale):
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageSource::size):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::createFrameAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):

  • platform/graphics/ImageSource.h: No longer stores subsampling state.

(WebCore::ImageSource::isSubsampled): Deleted.

  • platform/graphics/cairo/BitmapImageCairo.cpp:

(WebCore::BitmapImage::determineMinimumSubsamplingLevel):

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::FrameData::clear):
(WebCore::BitmapImage::BitmapImage): Init more members.
(WebCore::BitmapImage::determineMinimumSubsamplingLevel): Choose a minimum subsampling
level for the platform (subsample until the image area falls under a threshold).
(WebCore::BitmapImage::checkForSolidColor): Don't bother decoding frames if the image
is not 1x1. Also take care not to decode a non-subsampled image.
(WebCore::BitmapImage::draw): The actual bug fix is here; remove logic that
computed srcRectForCurrentFrame from m_size and m_originalSize; for some callers
srcRect was computed using the pre-subsampled size, and for others it was the subsampled size.
Instead, scale srcRect by mapping between the non-subsampled size, and the size of the CGImageRef
which is affected by subsampling.
(WebCore::BitmapImage::copyUnscaledFrameAtIndex):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage): Remove #ifdeffed code.
(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage): No more weird scaling!

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::draw):

  • platform/graphics/cg/ImageSourceCG.cpp:

(WebCore::ImageSource::ImageSource):
(WebCore::createImageSourceOptions): Helper that always returns a new CFDictionaryRef.
(WebCore::imageSourceOptions): If not subsampling, return the cached CFDictionaryRef, otherwise
make a new options dict and return it.
(WebCore::ImageSource::subsamplingLevelForScale): Helper that returns a subsampling level
between 0 and 3 given a scale.
(WebCore::ImageSource::isSizeAvailable): SkipMetadata is a default value for the param now.
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex): We turn off subsampling for progressive
JPEGs because of a bug, so need this to know if a frame should be subsampled.
(WebCore::ImageSource::frameSizeAtIndex): The looping to find a subsampling level is now in BitmapImageCG.
(WebCore::ImageSource::orientationAtIndex):
(WebCore::ImageSource::size): Always use a subsampling level of 0 for size().
(WebCore::ImageSource::getHotSpot):
(WebCore::ImageSource::repetitionCount):
(WebCore::ImageSource::createFrameAtIndex): The caller mapped a scale to a level.
(WebCore::ImageSource::frameDurationAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
(WebCore::ImageSource::imageSourceOptions): Deleted.
(WebCore::ImageSource::originalSize): Deleted.

  • platform/graphics/mac/ImageMac.mm:

(WebCore::BitmapImage::invalidatePlatformData): 0 -> nullptr

  • platform/graphics/wince/ImageWinCE.cpp:

(WebCore::BitmapImage::determineMinimumSubsamplingLevel):

11:28 AM Changeset in webkit [172347] by Lucas Forschler
  • 4 edits
    4 deletes in branches/safari-600.1-branch

Merged r172332.

11:13 AM Changeset in webkit [172346] by achristensen@apple.com
  • 16 edits in trunk

Progress towards using CMake on Mac.
https://bugs.webkit.org/show_bug.cgi?id=135662

Reviewed by Laszlo Gombos.

  • CMakeLists.txt:

.:

Mavericks has a flex version of "flex 2.5.35 Apple(flex-31)" which CMake doesn't like on Mac.

  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Added features that are needed by the Mac port.

  • Source/cmake/OptionsMac.cmake:

Enable CSS_IMAGE_SET based on FeatureDefines.h.
Disable the FTL with CMake for now.

  • Source/cmake/OptionsEFL.cmake:
  • Source/cmake/OptionsGTK.cmake:

Enable subpixel layout to not conflict with FeatureDefines.h

Source/WebCore:

Added necessary include directories and idls.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:

Moved ImageSource.cpp and image-decoders to platform CMake files because they are not used on mac.

  • PlatformMac.cmake:

Corrected some sources.

  • config.h:

Added workaround for not using prefix headers with CMake.

  • platform/graphics/ANGLEWebKitBridge.h:

Compile fix to find ANGLE headers while using CMake.

  • platform/graphics/FormatConverter.h:
  • platform/mac/NSScrollerImpDetails.h:

Removed unnecessary config.h includes.

10:41 AM Changeset in webkit [172345] by Simon Fraser
  • 3 edits in trunk

Undo some erroneous changes to the Xcode scheme files from r172259.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
9:19 AM Changeset in webkit [172344] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Services overlay dropdown is often in the wrong place with zoomed pages or horizontal scrolling
https://bugs.webkit.org/show_bug.cgi?id=135755
<rdar://problem/17907752>

Reviewed by Brady Eidson.

  • WebProcess/WebPage/mac/ServicesOverlayController.mm:

(WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight):
(WebKit::ServicesOverlayController::maybeCreateSelectionHighlight):
DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection adjusts the
location of the button based on the visible rect, trying to keep the button visible.

We're handing it the wrong visible rect, though, not taking scrolling into account.

This leads to pages that scroll horizontally showing the button on the left
even if there's space for it on the right, or sometimes not showing it at all.

Instead, provide the actual main FrameView visible rect; the same coordinate
space that the highlight rects are provided in.

9:18 AM Changeset in webkit [172343] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Additional items added to selection services menus are misaligned
https://bugs.webkit.org/show_bug.cgi?id=135747
<rdar://problem/17933167>

Reviewed by Brady Eidson.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):
Use NSSharingServicePickerStyleRollover for the rollover image services menu;
use NSSharingServicePickerStyleTextSelection for the selection services menu.

Set NSMenu's showsStateColumn to YES for selection services menus, so that
other items added to the menu line up correctly.

Remove an unncessary .get()

5:57 AM Changeset in webkit [172342] by g.czajkowski@samsung.com
  • 7 edits in trunk/Source/WebKit2

[EFL] Remove unnecessary ewk_private.h includes
https://bugs.webkit.org/show_bug.cgi?id=135753

Reviewed by Gyuyoung Kim.

Neither the below file uses the functionality from ewk_private.h.

  • UIProcess/API/efl/ewk_context.cpp:
  • UIProcess/API/efl/ewk_context_menu_item.cpp:
  • UIProcess/API/efl/ewk_cookie_manager.cpp:
  • UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
  • UIProcess/API/efl/ewk_popup_menu_item.cpp:
  • UIProcess/API/efl/ewk_view.cpp:
2:31 AM Changeset in webkit [172341] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Do not use GtkWindow:resize-grip-visible with recent GTK+ versions
https://bugs.webkit.org/show_bug.cgi?id=135699

Reviewed by Philippe Normand.

Resize grips support have been removed from GTK+ since 3.13.4, the
API has been deprecated and does nothing.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetToplevelOnScreenWindow):
(resizeWebKitWebViewBaseFromAllocation):

1:17 AM Changeset in webkit [172340] by zandobersek@gmail.com
  • 4 edits in trunk

[CMake] Drop the required version of CMake down to 2.8.8
https://bugs.webkit.org/show_bug.cgi?id=135713

Reviewed by Alex Christensen.

.:

  • CMakeLists.txt: Require CMake 2.8.8.

Source/WebCore:

  • CMakeLists.txt: Use set_property() to set INCLUDE_DIRECTORIES for

the ANGLESupport library. This avoids using target_include_directories()
which requires CMake 2.8.11.

1:09 AM Changeset in webkit [172339] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

commit-log-message has extra blank line at the top of pre-populated message
https://bugs.webkit.org/show_bug.cgi?id=135744

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-08
Reviewed by Csaba Osztrogonác.

Do not add a blank leading line in single ChangeLog commit messages.

  • Scripts/commit-log-editor:

(createCommitMessage):

  • Scripts/webkitpy/common/checkout/checkout_unittest.py:

(test_commit_message_for_one_reviewed_changelog):
(test_commit_message_for_one_rollout_changelog):

12:46 AM Changeset in webkit [172338] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer][1.4] Caps negotiation failure in playback pipeline
https://bugs.webkit.org/show_bug.cgi?id=135607

Reviewed by Carlos Garcia Campos.

Ensure the capsfilters used in front of interleave negotiate their
caps correctly with audioconvert which requires audio buffers with
interleaved layout.

No new tests, existing webaudio tests will cover this change once
we bump our JHBuild moduleset to GStreamer 1.4.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(getGStreamerMonoAudioCaps):

12:05 AM Changeset in webkit [172337] by Brian Burg
  • 5 edits in trunk/Source/WebInspectorUI

REGRESSION(r172094): timeline views are blank after reloading in some situations
https://bugs.webkit.org/show_bug.cgi?id=135742

Reviewed by Timothy Hatcher.

Address various bugs that cause the wrong timeline content views to appear when
starting a recording by reloading the inspected page. Fix other small oversights
that were encountered in the sidebar-based view state restoration code.

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording.prototype.saveIdentityToCookie): Add a dummy implementation.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
This code erroneously matches any tree element whose represented object's
saveIdentityToCookie function produces an empty cookie.

  • UserInterface/Views/TimelineContentView.js:

(WebInspector.TimelineContentView.prototype._showTimelineView): Add an assertion
that will find mismatches between represented objects of the TimelineContentView
and TimelineViews.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Don't call
the superclass's implementation, since we do not want to perform a relaxed match
against any of our tree elements. The only thing that can be restored across reopen
is a selected timeline tree element, which is already handled by this override.

Note: See TracTimeline for information about the timeline view.