Timeline



Oct 30, 2014:

9:25 PM Changeset in webkit [175406] by Darin Adler
  • 76 edits
    5 deletes in trunk/Source

Eliminate ResourceBuffer and use SharedBuffer directly instead
https://bugs.webkit.org/show_bug.cgi?id=138174

Reviewed by Antti Koivisto.

Source/WebCore:

Refactoring, with test coverage across many existing tests.

  • CMakeLists.txt: Deleted ResourceBuffer.cpp.
  • WebCore.exp.in: Removed ResourceBuffer-related symbols, and updated symbol

for one function that used to take a PassRefPtr but now takes a reference instead.

  • WebCore.vcxproj/WebCore.vcxproj: Deleted ResourceBuffer.cpp/.h.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Deleted ResourceBuffer.mm/.cpp/.h.
  • bindings/objc/DOMUIKitExtensions.mm:

(-[DOMHTMLImageElement dataRepresentation:]): Use SharedBuffer directly.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::writeImageToPasteboard): Ditto.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::writeImageToPasteboard): Ditto.

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::updateDuringParsing): Use SharedBuffer directly, and
also pass a reference only if non-null rather than passing a pointer.
(WebCore::ImageDocument::finishedParsing): Ditto. Added a missing null check.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent): Use SharedBuffer directly.
(WebCore::InspectorPageAgent::mainResourceContent): Ditto.

  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::didFinishLoading): Ditto.
(WebCore::InspectorResourceAgent::didFailLoading): Ditto.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::mainResourceData): Use SharedBuffer directly,
and use the copy function rather than a hand-written alternative.
(WebCore::DocumentLoader::maybeCreateArchive): Ditto.
(WebCore::DocumentLoader::mainResource): Ditto.
(WebCore::DocumentLoader::subresource): Ditto.
(WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Ditto.

  • loader/DocumentLoader.h: Changed mainResourceData to return a

PassRefPtr<SharedBuffer>. Would be better if it returned a SharedBuffer&,
but it currently returns a newly created buffer when there is substitute
data and can also return null, even though many callers assume it will not!

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::dataReceived): Removed call to unused client
function bufferReceived.
(WebCore::MediaResourceLoader::notifyFinished): Removed unused buffer
argument to client function loadFinished.

  • loader/ResourceBuffer.cpp: Removed.
  • loader/ResourceBuffer.h: Removed.
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::addDataOrBuffer): Use SharedBuffer directly.

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::resourceData): Use SharedBuffer.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse): Use SharedBuffer.
(WebCore::SubresourceLoader::didReceiveDataOrBuffer): Ditto.

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::processNewCueData): Use SharedBuffer.

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::finishedLoadingMainResource): Ditto.

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create): Ditto.

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::finishLoading): Use SharedBuffer.

  • loader/cache/CachedCSSStyleSheet.h: Ditto.
  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::finishLoading): Ditto.
(WebCore::CachedFont::ensureCustomFontData): Ditto.

  • loader/cache/CachedFont.h: Ditto.
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::didAddClient): Use SharedBuffer.
(WebCore::CachedImage::didRemoveClient): Ditto.
(WebCore::CachedImage::addIncrementalDataBuffer): Ditto. Changed to take
a reference rather than a pointer.
(WebCore::CachedImage::addDataBuffer): Ditto. Also added call through
to base class and changed to take a reference rather than a pointer.
(WebCore::CachedImage::addData): Ditto. Also added call through to base class.
(WebCore::CachedImage::finishLoading): Ditto.

  • loader/cache/CachedImage.h: Ditto. Also changed the type of some bit fields

to be unsigned instead of unsigend char.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::calculateIncrementalDataChunk): Use SharedBuffer.
(WebCore::CachedRawResource::addDataBuffer): Ditto. Changed to take
a reference rather than a pointer.
(WebCore::CachedRawResource::addData): Ditto.
(WebCore::CachedRawResource::finishLoading): Ditto.
(WebCore::CachedRawResource::canReuse): Ditto.

  • loader/cache/CachedRawResource.h: Ditto.
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource): Reordered data members due to change
in header.
(WebCore::CachedResource::addDataBuffer): Changed argument type.
(WebCore::CachedResource::finishLoading): Ditto.
(WebCore::CachedResource::didAddClient): Refactored to eliminate one extra hash
table lookup by using the return value from the remove function.
(WebCore::CachedResource::addClientToSet): Use std::make_unique directly instead
of using a function named "schedule" to allocate the callback object.
(WebCore::CachedResource::Callback::Callback): Changed function and data member
name.
(WebCore::CachedResource::Callback::cancel): Ditto.
(WebCore::CachedResource::Callback::timerFired): Ditto.
(WebCore::CachedResource::tryReplaceEncodedData): Changed to take a SharedBuffer&.

  • loader/cache/CachedResource.h: Changed types to use SharedBuffer. Also made most

data members and one function member private instead of protected. Also renamed the
CachedResource::CachedResourceCallback function CachedResource::Callback and moved
its definition out of the CachedResource class definition.

  • loader/cache/CachedResourceClient.h: Removed unneeded include.
  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::finishLoading): Use SharedBuffer.

  • loader/cache/CachedSVGDocument.h: Ditto. Made data members private.
  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::finishLoading): Use SharedBuffer.

  • loader/cache/CachedScript.h: Ditto. Also fixed indenting and removed unneeded

forward declaration.

  • loader/cache/CachedTextTrack.cpp:

(WebCore::CachedTextTrack::updateData): Added, so that finishLoading does not
call addDataBuffer.
(WebCore::CachedTextTrack::addDataBuffer): Take SharedBuffer, call updateData.
(WebCore::CachedTextTrack::finishLoading): Ditto.

  • loader/cache/CachedTextTrack.h: Take out unneeded explicit override of the

destructor. Updated for above changes.

  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::finishLoading): Updated to use SharedBuffer.

  • loader/cache/CachedXSLStyleSheet.h: Took out unneeded includes, made everything

private rather than protected. Added an explicit virtual constructor so we can
compile without knowing how to ref/deref TextResourceDecoder.

  • loader/cf/SubresourceLoaderCF.cpp:

(WebCore::SubresourceLoader::didReceiveDataArray): Updated to use SharedBuffer
and to call addDataBuffer only if there is a new data buffer.

  • loader/cocoa/DiskCacheMonitorCocoa.h: Use SharedBuffer& instead of PassRefPtr.
  • loader/cocoa/DiskCacheMonitorCocoa.mm:

(WebCore::DiskCacheMonitor::DiskCacheMonitor): Ditto.
(WebCore::DiskCacheMonitor::resourceBecameFileBacked): Ditto.

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::notifyFinished): Use SharedBuffer* instead of
RefPtr<ResourceBuffer>.

  • loader/mac/ResourceBuffer.mm: Removed.
  • loader/mac/ResourceLoaderMac.mm:

(WebCore::ResourceLoader::didReceiveDataArray): Use SharedBuffer.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::clear): Use a modern for loop.
(WebCore::SharedBuffer::copy): Return a PassRef instead of a PassRefPtr, since
this never returns null. Use modern for loops.
(WebCore::SharedBuffer::copyBufferAndClear): Use a modern for loop.

  • platform/SharedBuffer.h: Changed copy to return PassRef instead of PassRefPtr.

Changed tryReplaceContentsWithPlatformBuffer to take a reference rather than
a pointer.

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer): Take a reference
instead of a pointer.

  • platform/graphics/PlatformMediaResourceLoader.h: Removed unused function

bufferReceived and unneeded buffer argument from loadFinished. Also marked the
constructor explicit.

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

Removed include of ResourceBuffer.h.

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

(WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Use
SharedBuffer directly.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::loadFinished): Updated for change to
PlatformMediaResourceLoaderClient.

  • platform/mac/PasteboardMac.mm: Removed include of ResourceBuffer.h.
  • platform/soup/SharedBufferSoup.cpp: Removed unused, unneeded

tryReplaceContentsWithPlatformBuffer function.

Source/WebKit/mac:

  • WebView/WebDataSource.mm:

(-[WebDataSource data]): Use SharedBuffer directly.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): Ditto.

Source/WebKit/win:

  • WebDataSource.cpp:

(WebDataSource::data): Use SharedBuffer directly.
(WebDataSource::subresourceForURL): Ditto.

Source/WebKit2:

  • CMakeLists.txt: Removed WebResourceBuffer.cpp.
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::sendBuffer): Use a reference instead of pointer.

  • NetworkProcess/NetworkResourceLoader.h: Ditto.
  • NetworkProcess/mac/NetworkDiskCacheMonitor.h: Ditto.
  • NetworkProcess/mac/NetworkDiskCacheMonitor.mm:

(WebKit::NetworkDiskCacheMonitor::resourceBecameFileBacked): Ditto.

  • NetworkProcess/mac/NetworkResourceLoaderMac.mm:

(WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer): Ditto.

  • Shared/WebResourceBuffer.cpp: Removed.
  • Shared/WebResourceBuffer.h: Removed.
  • WebKit2.xcodeproj/project.pbxproj: Removed WebResourceBuffer.cpp/h.
  • WebProcess/Network/NetworkProcessConnection.cpp: Removed unneeded includes.

(WebKit::NetworkProcessConnection::didCacheResource): Use a reference instead
of a pointer.

  • WebProcess/Network/WebResourceLoadScheduler.cpp: Removed unneeded include.
  • WebProcess/Network/WebResourceLoader.cpp: Ditto.
  • WebProcess/Network/WebResourceLoader.h: Ditto.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: Ditto.

(WebKit::WebFrameLoaderClient::finishedLoading): Use SharedBuffer directly.

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::source): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInMainFrame): Refactored to make the relationship
between the buffer and the DataReference clearer and to avoid having a long-lived
DataReference pointing to an underlying buffer with unclear lifetime.
(WebKit::WebPage::getContentsAsString): Ditto.
(WebKit::WebPage::getSelectionAsWebArchiveData): Ditto.
(WebKit::WebPage::getMainResourceDataOfFrame): Ditto. Also use SharedBuffer directly.
(WebKit::WebPage::getResourceDataFromFrame): Ditto.
(WebKit::WebPage::getWebArchiveOfFrame): Ditto.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::containingLinkElement): Use elementLineage.
(WebKit::WebPage::performActionOnElement): Use references and SharedBuffer.
ALso did a bit of other cleanup in here.
(WebKit::isAssistableElement): Take Element& instead of Node*, since that's what
the caller has.
(WebKit::nextAssistableElement): Changed name to match what the function does.
Added an obviously-missing check on the startNode argument. Updated for change
to isAssistableElement above. Take a Page& instead of a Page*.
(WebKit::hasAssistableElement): Changed name to match what the function does.
Updated for change to nextAssistableElement above. Took out incorrect comparison
of a C++ pointer to the Objective-C object pointer nil. Take a Page& instead of a Page*.
(WebKit::WebPage::focusNextAssistedNode): Updated for above changes.
(WebKit::WebPage::getAssistedNodeInformation): Updated for above changes.

7:37 PM Changeset in webkit [175405] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move border-image-source / -webkit-mask-box-image-source to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138209

Reviewed by Andreas Kling.

Move border-image-source / -webkit-mask-box-image-source CSS properties
from DeprecatedStyleBuilder to the new StyleBuilder so that they are
now generated from CSSPropertyNames.in.

No new tests, no behavior change.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyBorderImageSource::applyValue): Deleted.
(WebCore::ApplyPropertyBorderImageSource::createHandler): Deleted.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertBorderImageSource):

7:02 PM WebKitGTK/KeepingTheTreeGreen edited by yoon@igalia.com
(diff)
6:16 PM Changeset in webkit [175404] by timothy_horton@apple.com
  • 12 edits in branches/safari-600.3-branch/Source/WebKit2

Merge r175376 and r175390. <rdar://problem/18742297>

6:03 PM Changeset in webkit [175403] by timothy_horton@apple.com
  • 10 edits in branches/safari-600.3-branch

Merge r175160. <rdar://problem/18742297>

5:40 PM Changeset in webkit [175402] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed Windows build fix after r175391.

Export a couple of symbols.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
5:26 PM Changeset in webkit [175401] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

bisect-builds should support WebKit clients other than Safari
https://bugs.webkit.org/show_bug.cgi?id=138225

This patch adds support for bisecting WebKit nightly builds with clients other than Safari.

The -a / --application optional argument allows the user to specify which application (or application bundle)
should be run against the WebKit nightly builds.

Reviewed by David Kilzer.

  • Scripts/bisect-builds:

Swap out $safariPath for the more general $applicationPath
Leave --safari-path as a commandline option for backwards compatibility
(mountAndRunNightly):
Use File::Spec->cat correctly (one directory per argument)
Use open --wait-apps instead of running the target application directly

5:18 PM Changeset in webkit [175400] by jer.noble@apple.com
  • 14 edits in trunk/Source

[EME] Add Setting for accessing storage location for MediaKeys data
https://bugs.webkit.org/show_bug.cgi?id=138147

Reviewed by Brady Eidson.

Source/WebCore:

Allow MediaPlayerPrivateAVFoundationObjC to query for the MediaKeys storage directory
by piping that request down from WebKit and WebKit2 into Settings.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaKeysStorageDirectory): Get the location from Settings and

append the current origin.

  • html/HTMLMediaElement.h:
  • page/Settings.h:

(WebCore::Settings::setMediaKeysStorageDirectory): Simple setter.
(WebCore::Settings::mediaKeysStorageDirectory): Simple accessor.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::mediaKeysStorageDirectory): Pass through to m_client.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerMediaKeysStorageDirectory): Default implementation.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession): Fetch the location from MediaPlayer.
(WebCore::sessionStorageDirectory): Deleted.

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Set default location.
(-[WebPreferences mediaKeysStorageDirectory]): Simple accessor.
(-[WebPreferences setMediaKeysStorageDirectory:]): Simple setter.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Pass location from WebPreferences into Settings.

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Pass from WebMediaKeyStorageManager into Settings.

5:16 PM Changeset in webkit [175399] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Layout Test http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=138072

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-10-30
Reviewed by Alexey Proskuryakov.

  • http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html:
4:57 PM Changeset in webkit [175398] by dburkart@apple.com
  • 2 edits in trunk/Source/WebKit2

Workaround for <rdar://problem/18830639>

Unreviewed.

4:53 PM Changeset in webkit [175397] by dburkart@apple.com
  • 50 edits in trunk

<rdar://problem/18821260> Prepare for the mysterious future

Reviewed by Lucas Forschler.

4:50 PM Changeset in webkit [175396] by saambarati1@gmail.com
  • 6 edits in trunk/Source/JavaScriptCore

AST Nodes should keep track of their end offset
https://bugs.webkit.org/show_bug.cgi?id=138143

Reviewed by Filip Pizlo.

AST nodes nodes now have an int property for their end text
offsets. This change lays some foundational work that will be
needed in profiling which basic blocks have executed.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::setEndOffset):

  • parser/Nodes.h:

(JSC::Node::endOffset):
(JSC::Node::setEndOffset):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseExpression):
(JSC::Parser<LexerType>::parseProperty):

  • parser/Parser.h:

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

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

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

Short-circuit repaints with empty rects
https://bugs.webkit.org/show_bug.cgi?id=138234

Reviewed by Zalan Bujtas.

Repaints with an empty rectangle are common enough that it's worth
short-circuiting them.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::repaintUsingContainer):

4:24 PM Changeset in webkit [175394] by roger_fong@apple.com
  • 2 edits
    1 add in trunk/LayoutTests

[Windows] More text rebaselining.

  • platform/win/TestExpectations:
  • platform/win/fast/text/tatechuyoko-expected.txt: Added.
4:18 PM Changeset in webkit [175393] by adachan@apple.com
  • 2 edits in trunk/Source/WebKit

Attempt to fix the Windows build after r175384.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
4:10 PM Changeset in webkit [175392] by roger_fong@apple.com
  • 15 edits
    1 add in trunk/LayoutTests

[Windows] Text rebaselining after r175384.

  • platform/win/css1/box_properties/margin_right-expected.txt:
  • platform/win/css1/box_properties/padding-expected.txt:
  • platform/win/css1/box_properties/padding_left-expected.txt:
  • platform/win/css1/box_properties/padding_right-expected.txt:
  • platform/win/css1/box_properties/padding_top-expected.txt:
  • platform/win/css1/font_properties/font-expected.txt:
  • platform/win/css1/formatting_model/vertical_formatting-expected.txt:
  • platform/win/css1/text_properties/text_transform-expected.txt:
  • platform/win/fast/css/empty-pseudo-class-expected.txt:
  • platform/win/fast/css/first-child-pseudo-class-expected.txt:
  • platform/win/fast/css/only-child-pseudo-class-expected.txt:
  • platform/win/fast/dom/HTMLProgressElement/progress-element-expected.txt: Added.
  • platform/win/fast/forms/targeted-frame-submission-expected.txt:
  • platform/win/fast/table/append-cells2-expected.txt:
  • platform/win/tables/mozilla/bugs/45621-expected.txt:
4:08 PM Changeset in webkit [175391] by Chris Dumez
  • 21 edits in trunk/Source/WebCore

Clean up virtual functions in css/
https://bugs.webkit.org/show_bug.cgi?id=138230

Reviewed by Benjamin Poulain.

Clean up virtual functions in css/ by:

  • Making virtual functions final when possible
  • Making classes final when possible
  • Using 'override' when appropriate
  • Explicitly marking functions / destructors as virtual when they are inherently virtual
  • Making isXXX() virtual functions private on XXX classes to avoid unnecessary type checks

No new tests, no behavior change.

  • WebCore.exp.in:
  • css/CSSBasicShapes.h:
  • css/CSSCharsetRule.h:
  • css/CSSComputedStyleDeclaration.h:
  • css/CSSCrossfadeValue.h:
  • css/CSSFilterImageValue.h:
  • css/CSSFontFaceLoadEvent.h:
  • css/CSSFontFaceRule.h:
  • css/CSSFontFaceSource.h:
  • css/CSSImportRule.h:
  • css/CSSMediaRule.h:
  • css/CSSPageRule.h:
  • css/CSSRuleList.h:

(WebCore::StaticCSSRuleList::ref): Deleted.
(WebCore::StaticCSSRuleList::styleSheet): Deleted.
(WebCore::StaticCSSRuleList::length): Deleted.
(WebCore::StaticCSSRuleList::item): Deleted.
(WebCore::LiveCSSRuleList::ref): Deleted.
(WebCore::LiveCSSRuleList::deref): Deleted.
(WebCore::LiveCSSRuleList::length): Deleted.
(WebCore::LiveCSSRuleList::item): Deleted.
(WebCore::LiveCSSRuleList::styleSheet): Deleted.

  • css/CSSStyleRule.h:
  • css/CSSSupportsRule.h:
  • css/CSSUnknownRule.h:
  • css/FontLoader.h:
  • css/PropertySetCSSStyleDeclaration.h:

(WebCore::PropertySetCSSStyleDeclaration::parentElement):

  • css/WebKitCSSKeyframeRule.h:
  • css/WebKitCSSViewportRule.h:
4:03 PM Changeset in webkit [175390] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the iOS build.

  • WebProcess/WebPage/WebPage.messages.in:
3:44 PM Changeset in webkit [175389] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

Enable bmalloc in 32bit builds
https://bugs.webkit.org/show_bug.cgi?id=138232

Reviewed by Andreas Kling.

Seems to work fine.

  • wtf/FastMalloc.cpp:
3:37 PM Changeset in webkit [175388] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Long spins under rangeExpandedAroundPosition on Yahoo Mail
https://bugs.webkit.org/show_bug.cgi?id=138223
<rdar://problem/18819547>

Reviewed by Enrica Casucci.

  • WebCore.exp.in:

Export some things.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::rangeExpandedAroundPositionByCharacters):
Reimplement rangeExpandedAroundPosition to operate on characters instead of lines,
and to use Position. Moving VisiblePositions by line can be very expensive in some cases,
and for generating lookup/Data Detectors context, we don't care about that kind of precision.
This makes this function ~1000x faster when it hits on a row in the Yahoo Mail message list.

(WebKit::WebPage::performDictionaryLookupAtLocation):
(WebKit::scanForDataDetectedItems):
Adopt the new rangeExpandedAroundPositionByCharacters, expanding 250 characters
before and after, which roughly matches what we were usually getting going by line,
and is a reasonable amount of context for these operations.

3:33 PM Changeset in webkit [175387] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.25.2

New tag.

3:30 PM Changeset in webkit [175386] by bshafiei@apple.com
  • 4 edits in branches/safari-600.1.25-branch/Source/WebCore

Merged r175347. rdar://problem/18786900

3:09 PM Changeset in webkit [175385] by commit-queue@webkit.org
  • 25 edits
    3 copies
    7 adds in trunk/Source/JavaScriptCore

Web Inspector: Generate ObjC inspector protocol types and alternate dispatcher interfaces
https://bugs.webkit.org/show_bug.cgi?id=138048

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-10-30
Reviewed by Brian Burg.

Generate Objective-C interfaces for inspector protocol types, command, and event dispatchers.
This is very much like the InspectorProtocolTypes, BackendDispatchers, and FrontendDispatchers,
but with an ObjC spin on things.

The private API that clients would use is all encapsulated in RWIProtocol.h. It includes the
types interfaces, command handler protocol, and event dispatcher interface. Where possible the
API uses real enums, which hides the raw protocol enum strings from clients.

Inspector protocol types are, like InspectorProtocolObjects, built on top of an InspectorObject.
This offers the flexibilty of adding arbitrary key/values using the RWIProtocolJSONObject
interface, which may be required for certain protocol objects like "Network.Headers" which
have no fields, but expect arbitrary properties to be added.

Command handler protocols always have two callbacks. An error callback and a success callback.
The signature is very much like BackendDispatchers. In parameters are passed directly to
the selectors, and out parameters are defined by the success callback. It will be the client's
responsibility to call either of these callbacks to complete handling of a request.

Event dispatcher interfaces are straight forward, just packaging up the arguments and sending
the message to the frontend.

ObjC <-> Protocol conversion happens in each of the generated files. In type getters / setters,
in commands parameters and event parameters. For this to work we generate conversion helpers
for all enums, ObjC enum <-> protocol strings. For NSArray <-> InspectorArray there are some
static helpers to do the conversions. We do lose some type safety in these conversions.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • inspector/scripts/codegen/init.py:
  • inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py:

(AlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):

  • inspector/scripts/codegen/generate_backend_dispatcher_header.py:

(BackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains.AlternateInspector):
(BackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
(BackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):

  • inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:

(BackendDispatcherImplementationGenerator._generate_handler_class_destructor_for_domain):
(BackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):

  • inspector/scripts/codegen/generate_frontend_dispatcher_header.py:

(FrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):

  • inspector/scripts/codegen/generate_frontend_dispatcher_implementation.py:

(FrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):

  • inspector/scripts/codegen/generate_objective_c.py: Added.

(join_type_and_name):
(strip_comment_markers):
(remove_duplicate_from_str):
(ObjCTypeCategory):
(ObjCTypeCategory.category_of_type):
(ObjCGenerator):
(ObjCGenerator.identifier_to_objc_identifier):
(ObjCGenerator.objc_identifier_to_identifier):
(ObjCGenerator.should_generate_domain_types_filter):
(ObjCGenerator.should_generate_domain_types_filter.should_generate_domain_types):
(ObjCGenerator.should_generate_domain_command_handler_filter):
(ObjCGenerator.should_generate_domain_command_handler_filter.should_generate_domain_command_handler):
(ObjCGenerator.should_generate_domain_event_dispatcher_filter):
(ObjCGenerator.should_generate_domain_event_dispatcher_filter.should_generate_domain_event_dispatcher):
(ObjCGenerator.objc_name_for_type):
(ObjCGenerator.objc_enum_name_for_anonymous_enum_declaration):
(ObjCGenerator.objc_enum_name_for_anonymous_enum_member):
(ObjCGenerator.objc_enum_name_for_anonymous_enum_parameter):
(ObjCGenerator.objc_enum_name_for_non_anonymous_enum):
(ObjCGenerator.variable_name_prefix_for_domain):
(ObjCGenerator.objc_accessor_type_for_raw_name):
(ObjCGenerator.objc_type_for_raw_name):
(ObjCGenerator.objc_class_for_raw_name):
(ObjCGenerator.protocol_type_for_raw_name):
(ObjCGenerator.protocol_type_for_type):
(ObjCGenerator.objc_class_for_type):
(ObjCGenerator.objc_accessor_type_for_member):
(ObjCGenerator.objc_accessor_type_for_member_internal):
(ObjCGenerator.objc_type_for_member):
(ObjCGenerator.objc_type_for_member_internal):
(ObjCGenerator.objc_type_for_param):
(ObjCGenerator.objc_type_for_param_internal):
(ObjCGenerator.objc_protocol_export_expression_for_variable):
(ObjCGenerator.objc_protocol_import_expression_for_member):
(ObjCGenerator.objc_protocol_import_expression_for_parameter):
(ObjCGenerator.objc_protocol_import_expression_for_variable):
(ObjCGenerator.objc_to_protocol_expression_for_member):
(ObjCGenerator.protocol_to_objc_expression_for_member):
(ObjCGenerator.objc_setter_method_for_member):
(ObjCGenerator.objc_setter_method_for_member_internal):
(ObjCGenerator.objc_getter_method_for_member):
(ObjCGenerator.objc_getter_method_for_member_internal):

  • inspector/scripts/codegen/generate_objective_c_backend_dispatcher_header.py: Copied from Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py.

(ObjectiveCBackendDispatcherHeaderGenerator):
(ObjectiveCBackendDispatcherHeaderGenerator.output_filename):
(ObjectiveCBackendDispatcherHeaderGenerator.domains_to_generate):
(ObjectiveCBackendDispatcherHeaderGenerator.generate_output):
(ObjectiveCBackendDispatcherHeaderGenerator._generate_objc_forward_declarations):
(ObjectiveCBackendDispatcherHeaderGenerator._generate_objc_forward_declarations_for_domains):
(ObjectiveCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain):
(ObjectiveCBackendDispatcherHeaderGenerator._generate_objc_handler_declaration_for_command):

  • inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py: Added.

(ObjectiveCConfigurationImplementationGenerator):
(ObjectiveCConfigurationImplementationGenerator.init):
(ObjectiveCConfigurationImplementationGenerator.output_filename):
(ObjectiveCConfigurationImplementationGenerator.domains_to_generate):
(ObjectiveCConfigurationImplementationGenerator.generate_output):
(ObjectiveCConfigurationImplementationGenerator._generate_handler_implementation_for_domain):
(ObjectiveCConfigurationImplementationGenerator._generate_handler_implementation_for_command):
(ObjectiveCConfigurationImplementationGenerator._generate_success_block_for_command):
(ObjectiveCConfigurationImplementationGenerator._generate_conversions_for_command):
(ObjectiveCConfigurationImplementationGenerator._generate_invocation_for_command):

  • inspector/scripts/codegen/generate_objective_c_configuration_header.py: Copied from Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py.

(ObjectiveCConfigurationHeaderGenerator):
(ObjectiveCConfigurationHeaderGenerator.output_filename):
(ObjectiveCConfigurationHeaderGenerator.generate_output):
(ObjectiveCConfigurationHeaderGenerator._generate_configuration_interface_for_domains):
(ObjectiveCConfigurationHeaderGenerator._generate_properties_for_domain):

  • inspector/scripts/codegen/generate_objective_c_configuration_implementation.py: Added.

(ObjectiveCBackendDispatcherImplementationGenerator):
(ObjectiveCBackendDispatcherImplementationGenerator.init):
(ObjectiveCBackendDispatcherImplementationGenerator.output_filename):
(ObjectiveCBackendDispatcherImplementationGenerator.generate_output):
(ObjectiveCBackendDispatcherImplementationGenerator._generate_configuration_implementation_for_domains):
(ObjectiveCBackendDispatcherImplementationGenerator._generate_ivars):
(ObjectiveCBackendDispatcherImplementationGenerator._generate_dealloc):
(ObjectiveCBackendDispatcherImplementationGenerator._generate_handler_setter_for_domain):
(ObjectiveCBackendDispatcherImplementationGenerator._generate_event_dispatcher_getter_for_domain):

  • inspector/scripts/codegen/generate_objective_c_conversion_helpers.py: Added.

(add_whitespace_separator):
(ObjectiveCConversionHelpersGenerator):
(ObjectiveCConversionHelpersGenerator.init):
(ObjectiveCConversionHelpersGenerator.output_filename):
(ObjectiveCConversionHelpersGenerator.domains_to_generate):
(ObjectiveCConversionHelpersGenerator.generate_output):
(ObjectiveCConversionHelpersGenerator._generate_enum_conversion_functions):
(ObjectiveCConversionHelpersGenerator._generate_anonymous_enum_conversion_for_declaration):
(ObjectiveCConversionHelpersGenerator._generate_anonymous_enum_conversion_for_member):
(ObjectiveCConversionHelpersGenerator._generate_anonymous_enum_conversion_for_parameter):
(ObjectiveCConversionHelpersGenerator._generate_enum_objc_to_protocol_string):
(ObjectiveCConversionHelpersGenerator._generate_enum_from_protocol_string):

  • inspector/scripts/codegen/generate_objective_c_frontend_dispatcher_implementation.py: Added.

(ObjectiveCFrontendDispatcherImplementationGenerator):
(ObjectiveCFrontendDispatcherImplementationGenerator.init):
(ObjectiveCFrontendDispatcherImplementationGenerator.output_filename):
(ObjectiveCFrontendDispatcherImplementationGenerator.domains_to_generate):
(ObjectiveCFrontendDispatcherImplementationGenerator.generate_output):
(ObjectiveCFrontendDispatcherImplementationGenerator._generate_event_dispatcher_implementations):
(ObjectiveCFrontendDispatcherImplementationGenerator._generate_event):
(ObjectiveCFrontendDispatcherImplementationGenerator._generate_event_signature):
(ObjectiveCFrontendDispatcherImplementationGenerator._generate_event_out_parameters):

  • inspector/scripts/codegen/generate_objective_c_header.py: Added.

(add_whitespace_separator):
(ObjectiveCHeaderGenerator):
(ObjectiveCHeaderGenerator.init):
(ObjectiveCHeaderGenerator.output_filename):
(ObjectiveCHeaderGenerator.generate_output):
(ObjectiveCHeaderGenerator._generate_forward_declarations):
(ObjectiveCHeaderGenerator._generate_enums):
(ObjectiveCHeaderGenerator._generate_types):
(ObjectiveCHeaderGenerator._generate_anonymous_enum_for_declaration):
(ObjectiveCHeaderGenerator._generate_anonymous_enum_for_member):
(ObjectiveCHeaderGenerator._generate_anonymous_enum_for_parameter):
(ObjectiveCHeaderGenerator._generate_enum):
(ObjectiveCHeaderGenerator._generate_enum.NS_ENUM):
(ObjectiveCHeaderGenerator._generate_type_interface):
(ObjectiveCHeaderGenerator._generate_init_method_for_required_members):
(ObjectiveCHeaderGenerator._generate_member_property):
(ObjectiveCHeaderGenerator._generate_command_protocols):
(ObjectiveCHeaderGenerator._generate_single_command_protocol):
(ObjectiveCHeaderGenerator._callback_block_for_command):
(ObjectiveCHeaderGenerator._generate_event_interfaces):
(ObjectiveCHeaderGenerator._generate_single_event_interface):

  • inspector/scripts/codegen/generate_objective_c_internal_header.py: Copied from Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py.

(ObjectiveCTypesInternalHeaderGenerator):
(ObjectiveCTypesInternalHeaderGenerator.output_filename):
(ObjectiveCTypesInternalHeaderGenerator.generate_output):
(ObjectiveCTypesInternalHeaderGenerator._generate_event_dispatcher_private_interfaces):

  • inspector/scripts/codegen/generate_objective_c_types_implementation.py: Added.

(add_whitespace_separator):
(ObjectiveCTypesImplementationGenerator):
(ObjectiveCTypesImplementationGenerator.init):
(ObjectiveCTypesImplementationGenerator.output_filename):
(ObjectiveCTypesImplementationGenerator.domains_to_generate):
(ObjectiveCTypesImplementationGenerator.generate_output):
(ObjectiveCTypesImplementationGenerator.generate_type_implementations):
(ObjectiveCTypesImplementationGenerator.generate_type_implementation):
(ObjectiveCTypesImplementationGenerator._generate_init_method_for_required_members):
(ObjectiveCTypesImplementationGenerator._generate_setter_for_member):
(ObjectiveCTypesImplementationGenerator._generate_getter_for_member):

  • inspector/scripts/codegen/generate_protocol_types_header.py:

(ProtocolTypesHeaderGenerator._generate_forward_declarations):
(_generate_typedefs_for_domain):
(_generate_builders_for_domain):

  • inspector/scripts/codegen/generator.py:

(Generator.wrap_with_guard_for_domain):
(Generator):
(Generator.wrap_with_guard):

  • inspector/scripts/codegen/generator_templates.py:

(AlternateInspector):
(ObjCInspector):

  • inspector/scripts/codegen/models.py:

(Framework.fromString):
(Frameworks):

  • inspector/scripts/generate-inspector-protocol-bindings.py:

(generate_from_specification):

  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/expected/same-type-id-different-domain.json-result:
  • inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
3:06 PM Changeset in webkit [175384] by adachan@apple.com
  • 12 edits
    2 adds in trunk

The Page's muted setting should not affect the HTMLMediaElement's 'muted' IDL attribute.
https://bugs.webkit.org/show_bug.cgi?id=138215

Reviewed by Eric Carlson.

Source/WebCore:

Add m_muted in Page to keep track of the Page's muted state. Change AudioProducer::setMuted()
to pageMutedStateDidChange(). When that method is called, the AudioProducer is supposed to
update its muted state again taking the Page's muted state into account.

Add HTMLMediaElement::effectiveMuted(), which returns the effective muted state of the
HTMLMediaElement, taking the Page's muted state into account.

Test: media/video-muted-after-setting-page-muted-state.html

  • dom/Document.cpp:

(WebCore::Document::pageMutedStateDidChange):
(WebCore::Document::setMuted): Deleted.

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMuted):
Set the MediaPlayer's muted state to the result of effectiveMuted() rather than m_muted.
(WebCore::HTMLMediaElement::updateVolume):
Ditto, and also make sure the MediaController's muted state does not override the Page's
muted state.
(WebCore::HTMLMediaElement::updatePlayState):
Set the MediaPlayer's muted state to the result of effectiveMuted() rather than muted().
(WebCore::HTMLMediaElement::pageMutedStateDidChange):
Call updateVolume(), which will update the MediaPlayer's muted state.
(WebCore::HTMLMediaElement::effectiveMuted):
Figure out the muted value taking Page's muted state into account.

  • html/HTMLMediaElement.h:
  • page/AudioProducer.h:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::setMuted):
Update m_muted, and only iterate through the frames' documents to call pageMutedStateDidChange()
if m_muted changes.

  • page/Page.h:

(WebCore::Page::isMuted):

  • testing/Internals.cpp:

(WebCore::Internals::setPageMuted):
Expose a way to set the Page's muted state in Internals for testing.

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

LayoutTests:

  • media/video-muted-after-setting-page-muted-state-expected.txt: Added.
  • media/video-muted-after-setting-page-muted-state.html: Added.
2:39 PM Changeset in webkit [175383] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Use references in calculateMinimumPageHeight() for non-optional arguments
https://bugs.webkit.org/show_bug.cgi?id=138231

Reviewed by Dean Jackson.

No new tests because there is no behavior change.

  • rendering/RenderBlockFlow.cpp:

(WebCore::calculateMinimumPageHeight):
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):

2:35 PM Changeset in webkit [175382] by jpfau@apple.com
  • 2 edits in trunk/Source/WTF

ASSERT(!m_deletionHasBegun) in RefCounted.h should be ASSERT_WITH_SECURITY_IMPLICATION
https://bugs.webkit.org/show_bug.cgi?id=138141

Reviewed by Alexey Proskuryakov.

  • wtf/RefCounted.h:

(WTF::RefCountedBase::ref):
(WTF::RefCountedBase::relaxAdoptionRequirement):
(WTF::RefCountedBase::derefBase):
(WTF::adopted):

2:30 PM Changeset in webkit [175381] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move -webkit-border-image / -webkit-mask-box-image to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138207

Reviewed by Andreas Kling.

Move -webkit-border-image / -webkit-mask-box-image CSS properties to
the new StyleBuilder so that they are now generated from
CSSPropertyNames.in.

No new tests, no behavior change.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyBorderImage::applyValue): Deleted.
(WebCore::ApplyPropertyBorderImage::createHandler): Deleted.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertBorderImage):
(WebCore::StyleBuilderConverter::convertBorderMask):

2:25 PM Changeset in webkit [175380] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Optimize HTMLVideoElement / HTMLAudioElement type checks a bit
https://bugs.webkit.org/show_bug.cgi?id=138202

Reviewed by Benjamin Poulain.

Optimize HTMLVideoElement / HTMLAudioElement type checks a bit by:

  1. Using is<HTMLMediaElement>() instead of
(is<HTMLVideoElement>()
is<HTMLAudioElement>()) if the caller is

interested in both video and audio elements. This is faster because
it ends up doing:

  • virtual call to Element::isMediaElement()

instead of

  • Node::isHTMLElement() + virtual call to HTMLElement::isHTMLUnknownElement() + 2 * HTMLElement::hasTagName()
  1. Updating HTMLVideoElement / HTMLAudioElement type traits specializations to:
    • Avoid doing any virtual function call if the input type is an HTMLMediaElement (which is common in the code base).
    • Speed up check if the input is an Element by doing:
      • virtual call to Element::isMediaElement() + HTMLElement::hasTagName()
      instead of
      • Node::isHTMLElement() + virtual call to !HTMLElement::isHTMLUnknownElement() + HTMLElement::hasTagName()
      The speed stays the same if the input is a Node or an HTMLElement.

No new tests, no behavior change.

  • css/CSSDefaultStyleSheets.cpp:

(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):

  • dom/make_names.pl:

(defaultTagPropertyHash):
(printTypeHelpers):

  • html/HTMLAudioElement.h:

(isType):

  • html/HTMLImageLoader.cpp:
  • html/HTMLTagNames.in:
  • html/HTMLVideoElement.h:

(isType):

  • page/ChromeClient.h:
2:17 PM Changeset in webkit [175379] by mmaxfield@apple.com
  • 3 edits
    1 add in trunk/Source/WebCore

Migrate ComplexTextControllerCoreText to use SPI instead of WKSI
https://bugs.webkit.org/show_bug.cgi?id=138228

Reviewed by Simon Fraser.

No new tests because there is no behavior change.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

  • platform/spi/cocoa/CoreTextSPI.h: Added.
2:00 PM Changeset in webkit [175378] by beidson@apple.com
  • 4 edits
    2 adds in trunk

IndexedDB is deleting data when a PK is shared amongst two objectStores
rdar://problem/18479306 and https://bugs.webkit.org/show_bug.cgi?id=137154

Reviewed by Jer Noble.

Source/WebKit2:

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::v1RecordsTableSchema): Store away the v1 schema for introspection into the database.
(WebKit::v2RecordsTableSchema): Add utility methods to get the v2 schema with different Table names.
(WebKit::createOrMigrateRecordsTableIfNecessary): Check to see if the Records table exists with

the correct schema. If it is the v1 schema, then migrate the data to a new v2 table, drop the v1
table, then slide the new table into place.

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::ensureValidRecordsTable): Make sure the Records table

exists and is v2, and then make sure the uniqueness index exists.

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata): Don’t bother creating

the Records table here as it will have already been established earlier.

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:

LayoutTests:

  • storage/indexeddb/primary-key-unique-to-objectstore-expected.txt: Added.
  • storage/indexeddb/primary-key-unique-to-objectstore.html: Added.
1:57 PM Changeset in webkit [175377] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

Update safariVersion to safariVersionString
https://bugs.webkit.org/show_bug.cgi?id=138193

The preceding change updated safariVersion to safariVersionString for the "4 Public Beta" check in OS X 10.5.x,
but it should have also been done for the "4 Public Beta" check in OS X 10.4.x.

Rubber-stamped by David Kilzer.

  • Scripts/bisect-builds:

(makeNightlyList):
Compare safariVersionString to a string literal, instead of safariVersion.

12:38 PM Changeset in webkit [175376] by Beth Dakin
  • 12 edits in trunk/Source/WebKit2

Implement action menus for text
https://bugs.webkit.org/show_bug.cgi?id=138220
-and corresponding-
rdar://problem/18742297

Reviewed by Tim Horton.

Two new types of actions for the two text actions.

  • Shared/API/c/WKActionMenuItemTypes.h:

One new type of menu.

  • Shared/API/c/WKActionMenuTypes.h:

Pass willOpenMenu on to the WKActionMenuController.

  • UIProcess/API/mac/WKView.mm:

(-[WKView willOpenMenu:withEvent:]):

Two new WebPageProxy functions that will pass messages along to the web process.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::selectLookupTextAtLocation):

  • UIProcess/WebPageProxy.h:

At willOpenMenu time, text menus should select text so that it is clear what the
menu actions will apply to.

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

Menu items for text menus.
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController _defaultMenuItemsForText]):
(-[WKActionMenuController _copyText:]):
(-[WKActionMenuController _lookupText:]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(imageForResource:name::if):

New messages to the web process.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Re-factor performDictionaryLookupAtLocation() to re-use the code that finds the
Range for the dictionary lookup. That code now lives in
rangeForDictionaryLookupAtHitTestResult() and can be used by
performDictionaryLookupAtLocation() and our new function
selectLookupTextAtLocation().

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::rangeForDictionaryLookupAtHitTestResult):
(WebKit::WebPage::performDictionaryLookupAtLocation):

Since the action menu text is always selected, when the lookup action is chosen,
we can just lookup the current selection.
(WebKit::WebPage::performDictionaryLookupOfCurrentSelection):

Uses the new function rangeForDictionaryLookupAtHitTestResult() to get a lookup
range and then select it.
(WebKit::WebPage::selectLookupTextAtLocation):

12:04 PM Changeset in webkit [175375] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

Add diagnostic logging to track page loads.
https://bugs.webkit.org/show_bug.cgi?id=138205
<rdar://problem/18173017>

Reviewed by Jer Noble.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Log page load success or failure.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::pageLoadedKey): New.

  • page/DiagnosticLoggingKeys.h:
11:48 AM Changeset in webkit [175374] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

When a client certificate is rejected, Safari says the website didn’t accept the certificate “unknown” instead of naming the certificate
https://bugs.webkit.org/show_bug.cgi?id=138216

Reviewed by Alexey Proskuryakov.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::typeFromCFTypeRef): Remove no-longer-necessary platform guards around SecIdentityRef.
(IPC::encode): Ditto.
(IPC::decode): Ditto.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceError>::encodePlatformData): If NSErrorClientCertificateChainKey
is present in the error’s userInfo dictionary, assert that it’s an array of identities and
certificates, and include it in the filtered dictionary.

10:39 AM Changeset in webkit [175373] by jer.noble@apple.com
  • 2 edits
    2 copies
    3 adds in trunk/LayoutTests

Unreviewed gardening; rebaseline two media/ tests.

  • platform/mac-mavericks/media/controls-after-reload-expected.txt: Added.
  • platform/mac-mavericks/media/controls-styling-expected.txt:
  • platform/mac-mountainlion/media/controls-after-reload-expected.txt: Added.
  • platform/mac-mountainlion/media/controls-styling-expected.txt: Copied from LayoutTests/platform/mac-mavericks/media/controls-styling-expected.txt.
  • platform/mac-wk1/media/controls-styling-expected.txt: Copied from LayoutTests/platform/mac-mavericks/media/controls-styling-expected.txt.
9:01 AM Changeset in webkit [175372] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed assertion fix.

RegExpCachedResult::m_reified is now the dedicated member that knows whether
the result was reified into an array or not. Check that instead of m_result
which is now single-purpose.

  • runtime/RegExpCachedResult.cpp:

(JSC::RegExpCachedResult::setInput):

6:45 AM Changeset in webkit [175371] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Minibrowser : Add window fullscreen support for Minibrowser
https://bugs.webkit.org/show_bug.cgi?id=137775

Patch by Rohit Kumar <kumar.rohit@samsung.com> on 2014-10-30
Reviewed by Carlos Garcia Campos.

  • MiniBrowser/gtk/BrowserWindow.c:

(toggleFullScreen): Callback to toggle window fullscreen on pressing F11 key.
(browser_window_init):

3:07 AM WebKitGTK/2.4.x edited by berto@igalia.com
(diff)
1:53 AM Changeset in webkit [175370] by Philippe Normand
  • 6 edits in trunk/Source/WebCore

[GStreamer] Video resolution changes trigger a crash in the TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=137065

Reviewed by Gustavo Noronha Silva.

Switch to GstSample for buffer+caps communication between the
video sink and the player. Using a single object type for this
avoid issues where the caps might not correctly describe the
buffer contents anymore, for example when the video resolution is
changed.

  • platform/graphics/gstreamer/ImageGStreamer.h: Use GstSample

instead of GstBuffer+GstCaps.
(WebCore::ImageGStreamer::createImage):

  • platform/graphics/gstreamer/ImageGStreamerCairo.cpp: Ditto.

(ImageGStreamer::ImageGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::mediaPlayerPrivateRepaintCallback): The repaint signal
now uses a GstSample instead of a GstBuffer.
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
Store the current sample instead of a buffer. Also renamed the
mutex protecting access to the sample.
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase): Ditto.
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize): Return
early if no sample is available. The caps used to get the video
size are store in the sample.
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Use
GstSample instead of GstBuffer.
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): Ditto.
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp: Now store a

GstSample internally. Also removed the now useless current-caps property.
(_WebKitVideoSinkPrivate::_WebKitVideoSinkPrivate): Renamed the
mutex protecting access to the sample.
(_WebKitVideoSinkPrivate::~_WebKitVideoSinkPrivate): Ditto.
(webkit_video_sink_init): Disable last-sample in basesink since we
already store one in our sink anyway.
(webkitVideoSinkTimeoutCallback): Switch to GstSample.
(webkitVideoSinkRender): Ditto.
(unlockSampleMutex): Ditto.
(webkitVideoSinkUnlock): Ditto.
(webkitVideoSinkUnlockStop): Ditto.
(webkitVideoSinkStop): Ditto!
(webkitVideoSinkStart): Ditto.
(webkit_video_sink_class_init): Drop current-caps property.
(webkitVideoSinkGetProperty): Deleted.
(unlockBufferMutex): Deleted.

1:02 AM Changeset in webkit [175369] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

FormDataBuilder should not use Document
https://bugs.webkit.org/show_bug.cgi?id=138172

Reviewed by Alexey Proskuryakov.

It's only used by encodingFromAcceptCharset() to fallback to
document input encoding. That method is only used by
FormSubmission::create(), so it could be moved as a static
function to FormSubmission.cpp.

  • loader/FormSubmission.cpp:

(WebCore::encodingFromAcceptCharset):
(WebCore::FormSubmission::create):

  • platform/network/FormDataBuilder.cpp:

(WebCore::FormDataBuilder::encodingFromAcceptCharset): Deleted.

  • platform/network/FormDataBuilder.h:
12:37 AM Changeset in webkit [175368] by bshafiei@apple.com
  • 3 edits
    2 copies in tags/Safari-601.1.6

Merged r175312. rdar://problem/18808163

Oct 29, 2014:

10:02 PM Changeset in webkit [175367] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

CommitQueue and EWS should reject any patches that result in consistent test
failures that aren't present on the tree.
https://bugs.webkit.org/show_bug.cgi?id=138184

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2014-10-29
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/models/test_results.py:

Adds a simple hashing function to allow for set operations to handle
TestResult objects properly.
(TestResult.hash):

  • Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:

Adds one unit test, and modifies others to agree with the notion that
patches that introduce new test failures (but also have flakyness)
should be rejected rather than spin.
(MockCommitQueue.report_flaky_tests):
(CommitQueueTaskTest._run_and_expect_patch_analysis_result):
(test_double_flaky_test_failure):
(test_two_flaky_tests):
(test_very_flaky_patch):
(test_very_flaky_patch_with_some_tree_redness):
(test_different_test_failures):
(test_different_test_failures_with_some_tree_redness):
(test_different_test_failures_with_some_tree_redness_and_some_fixes):
(test_mildly_flaky_patch):
(test_mildly_flaky_patch_with_some_tree_redness):

  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

Makes PatchAnalysisTask reject said patches.
(PatchAnalysisTask._test_patch):

9:53 PM Changeset in webkit [175366] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

WinCairoRequirements.zip cannot be downloaded from dropbox
https://bugs.webkit.org/show_bug.cgi?id=138113

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-10-29
Reviewed by Alexey Proskuryakov.

  • Scripts/update-webkit-dependency: Removing --sslv3 option from curl
8:54 PM Changeset in webkit [175365] by akling@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

Use plain JSArray for RegExp matches instead of a lazily populated custom object.
<https://webkit.org/b/138191>

Reviewed by Geoffrey Garen.

We're already offering two RegExp matching APIs, one that collects subpattern
matches (exec), and one that simply tests for a match (test).
Given that, it was pretty overkill to lazily populate the resulting array of
matches, since the user could simply use test() if they didn't need them.

This allows the JIT to generate better code for RegExp match arrays, and also
enables some fast paths in the JSC runtime that check if an object isJSArray().

Looks like ~1.5% improvement on Octane/regexp according to run-jsc-benchmarks.

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

  • runtime/JSArray.h:

(JSC::createArrayButterflyWithExactLength): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/RegExpCachedResult.cpp:

(JSC::RegExpCachedResult::visitChildren):
(JSC::RegExpCachedResult::lastResult):
(JSC::RegExpCachedResult::leftContext):
(JSC::RegExpCachedResult::rightContext):

  • runtime/RegExpCachedResult.h:

(JSC::RegExpCachedResult::RegExpCachedResult):
(JSC::RegExpCachedResult::record):
(JSC::RegExpCachedResult::input):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::getBackref):
(JSC::RegExpConstructor::getLastParen):
(JSC::RegExpConstructor::getLeftContext):
(JSC::RegExpConstructor::getRightContext):

  • runtime/RegExpMatchesArray.cpp:

(JSC::createRegExpMatchesArray):
(JSC::RegExpMatchesArray::RegExpMatchesArray): Deleted.
(JSC::RegExpMatchesArray::create): Deleted.
(JSC::RegExpMatchesArray::finishCreation): Deleted.
(JSC::RegExpMatchesArray::visitChildren): Deleted.
(JSC::RegExpMatchesArray::reifyAllProperties): Deleted.
(JSC::RegExpMatchesArray::reifyMatchProperty): Deleted.
(JSC::RegExpMatchesArray::leftContext): Deleted.
(JSC::RegExpMatchesArray::rightContext): Deleted.

  • runtime/RegExpMatchesArray.h:

(JSC::RegExpMatchesArray::createStructure): Deleted.
(JSC::RegExpMatchesArray::reifyAllPropertiesIfNecessary): Deleted.
(JSC::RegExpMatchesArray::reifyMatchPropertyIfNecessary): Deleted.
(JSC::RegExpMatchesArray::getOwnPropertySlot): Deleted.
(JSC::RegExpMatchesArray::getOwnPropertySlotByIndex): Deleted.
(JSC::RegExpMatchesArray::put): Deleted.
(JSC::RegExpMatchesArray::putByIndex): Deleted.
(JSC::RegExpMatchesArray::deleteProperty): Deleted.
(JSC::RegExpMatchesArray::deletePropertyByIndex): Deleted.
(JSC::RegExpMatchesArray::getOwnPropertyNames): Deleted.
(JSC::RegExpMatchesArray::defineOwnProperty): Deleted.
(JSC::isRegExpMatchesArray): Deleted.

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::exec):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncMatch):

8:36 PM Changeset in webkit [175364] by dburkart@apple.com
  • 5 edits in branches/safari-600.3-branch/Source

Bump versioning.

8:27 PM Changeset in webkit [175363] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

ASSERTION NOT REACHED because RenderStyle::setWordSpacing() does not handle a Length value of type 'Calculated'.
https://bugs.webkit.org/show_bug.cgi?id=138054.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-10-29
Reviewed by Zalan Bujtas.

Source/WebCore:

A Length of type 'Calculated' can be generated from blending two lengths of
different types. Setting the wordSpacing of the render style should be handled
correctly when the type of the new value is 'Calculated'.

Tests: css3/calculated-word-spacing.html.

Add a case for setting the render style wordSpacing to a <length> of type 'Calculated'.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setWordSpacing):

LayoutTests:

Ensure the render style's wordSpacing can be set correctly when the type of
the new value is 'Calculated'. The 'Calculated' Length value can result from
blending two Length values of different types. And these two Length values
are defined in two consecutive css animation key frames.

  • css3/calculated-word-spacing-expected.txt: Added.
  • css3/calculated-word-spacing.html: Added.
7:29 PM Changeset in webkit [175362] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Fix Type Dependency Issues
https://bugs.webkit.org/show_bug.cgi?id=125664

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-10-29
Reviewed by Brian Burg.

Now that all JSON protocol files are processed together again
in r174892, we can remove the duplicated types which were only
needed when the domains were split.

  • inspector/protocol/Console.json:
  • inspector/protocol/Runtime.json:
6:18 PM Changeset in webkit [175361] by commit-queue@webkit.org
  • 9 edits in trunk/Source

[CoordinatedGraphics] Use modern for-loops
https://bugs.webkit.org/show_bug.cgi?id=138168

Patch by Hunseop Jeong <Hunseop Jeong> on 2014-10-29
Reviewed by Andreas Kling.

No new tests as there is no change in functionality.

Source/WebCore:

  • platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: Use a modern for loop.

(WebCore::CompositingCoordinator::renderNextFrame):
(WebCore::CompositingCoordinator::paintToSurface):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Use a modern for loop.

(WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect):
(WebCore::CoordinatedGraphicsLayer::flushCompositingState):
(WebCore::CoordinatedGraphicsLayer::syncChildren):
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::findFirstDescendantWithContentsRecursively):
(WebCore::CoordinatedGraphicsLayer::updateContentBuffersIncludingSubLayers):

  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: Use a modern for loop.

(WebCore::CoordinatedImageBacking::updateVisibilityIfNeeded):

Source/WebKit2:

  • UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp: Use a modern for loop.

(WebCore::CoordinatedBackingStore::texture):
(WebCore::CoordinatedBackingStore::paintTilesToTextureMapper):

  • UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp: Use a modern for loop.

(WebKit::CoordinatedDrawingAreaProxy::incorporateUpdate):

  • UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: Use a modern for loop.

(WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
(WebCore::CoordinatedGraphicsScene::createLayers): changed the name of argument to be equal with deleteLayer().
(WebCore::CoordinatedGraphicsScene::deleteLayers):
(WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::syncUpdateAtlases):
(WebCore::CoordinatedGraphicsScene::syncImageBackings):
(WebCore::CoordinatedGraphicsScene::commitSceneState):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp: Use a modern for loop.

(WebKit::shouldPaintBoundsRect):
(WebKit::CoordinatedDrawingArea::display):

6:06 PM Changeset in webkit [175360] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed, EFL build fix since r175349.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::didRemoveItem): Use PLATFORM(COCOA) for setSnapshot().

5:49 PM Changeset in webkit [175359] by dburkart@apple.com
  • 1 copy in tags/Safari-600.3.2

Tagging Safari-600.3.2

5:16 PM Changeset in webkit [175358] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Final-ize more of TextFieldInputType's virtual functions
https://bugs.webkit.org/show_bug.cgi?id=138194

Reviewed by Andreas Kling.

Final-ize more of TextFieldInputType's virtual functions for
performance.

No new tests, no behavior change.

  • html/TextFieldInputType.h:
5:13 PM Changeset in webkit [175357] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

bisect-builds should filter out nightlies that predate the introduction of an OS X operating system
https://bugs.webkit.org/show_bug.cgi?id=138193

This patch restricts the set of nightles to bisect to only those nightlies that ship with frameworks
for the target OS (only support for OS X Yosemite, Mavericks and Mountain Lion was added.)

It also does a bit of refactoring, including distinguishing between versions and version strings and
saving versions to local variables instead of using eval in each conditional.

Reviewed by David Kilzer.

  • Scripts/bisect-builds:

(makeNightlyList):
Restrict the set of nightlies to r174650 and above when running Yosemite.
Restrict the set of nightlies to r157846 and above when running Mavericks.
Restrict the set of nightlies to r122421 and above when running Mountain Lion.

4:33 PM Changeset in webkit [175356] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Skip compositing/regions/propagate-region-box-shadow-border-padding-for-video.html which
asserts in Debug.

  • platform/mac/TestExpectations:
4:28 PM Changeset in webkit [175355] by Chris Dumez
  • 18 edits in trunk/Source/WebCore

Clean up virtual functions in inspector/
https://bugs.webkit.org/show_bug.cgi?id=138190

Reviewed by Andreas Kling.

Clean up virtual functions in inspector/ by:

  • Making virtual functions final when possible
  • Making classes final when possible
  • Explicitly marking functions / destructors as virtual when they are inherently virtual
  • Making isXXX() virtual functions private on XXX classes to avoid unnecessary type checks

No new tests, no behavior change.

  • inspector/InspectorApplicationCacheAgent.h:

(WebCore::InspectorApplicationCacheAgent::~InspectorApplicationCacheAgent): Deleted.

  • inspector/InspectorCSSAgent.h:
  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorDOMDebuggerAgent.h:
  • inspector/InspectorDOMStorageAgent.h:
  • inspector/InspectorDatabaseAgent.h:
  • inspector/InspectorFrontendClientLocal.h:
  • inspector/InspectorIndexedDBAgent.h:
  • inspector/InspectorLayerTreeAgent.h:
  • inspector/InspectorPageAgent.h:
  • inspector/InspectorReplayAgent.h:
  • inspector/InspectorResourceAgent.h:
  • inspector/InspectorStyleSheet.h:
  • inspector/InspectorTimelineAgent.h:
  • inspector/InspectorWorkerAgent.h:
  • inspector/PageConsoleAgent.h:
  • inspector/WorkerInspectorController.h:
4:18 PM Changeset in webkit [175354] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merge r175353. rdar://problem/18817803

4:13 PM Changeset in webkit [175353] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Null deref under performActionMenuHitTestAtLocation
https://bugs.webkit.org/show_bug.cgi?id=138197
<rdar://problem/18817803>

Reviewed by Beth Dakin.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::scanForDataDetectedItems):
Null-check the expanded range.

4:02 PM Changeset in webkit [175352] by akling@apple.com
  • 7 edits in trunk/Source/WebCore

Generalize dirtying of parent's line boxes when taking a renderer out of tree.
<https://webkit.org/b/138152>

Reviewed by Antti Koivisto.

Instead of calling dirtyLinesFromChangedChild() when certain types of renderers
are about to be destroyed, always do this in RenderElement::willBeRemovedFromTree().

This is part of an effort to make render tree teardown less incomprehensible.

We still don't bother at all if we're in the process of tearing down the entire
render tree, since that would be a waste of time.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::willBeDestroyed):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::willBeDestroyed):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::willBeRemovedFromTree):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::willBeDestroyed):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::willBeDestroyed): Deleted.

  • rendering/RenderReplaced.h:
3:59 PM Changeset in webkit [175351] by adachan@apple.com
  • 11 edits in trunk/Source

Implement WKPageSetMuted(bool).
https://bugs.webkit.org/show_bug.cgi?id=138158

Reviewed by Anders Carlsson.

Source/WebCore:

  • WebCore.exp.in:
  • page/Page.h:

Source/WebKit2:

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetMuted):

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

(WebKit::WebPageProxy::setMuted):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setMuted):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
3:43 PM Changeset in webkit [175350] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebCore

Add a missing symbol to fix the build after the merge of r175335. rdar://problem/18709436

3:34 PM Changeset in webkit [175349] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Clear ViewSnapshots when back/forward list items are removed from their list
https://bugs.webkit.org/show_bug.cgi?id=138188
<rdar://problem/18817001>

Reviewed by Tim Horton.

Ideally we should remove the WebBackForwardListItem objects as well, but this is a somewhat safer fix.

Change all the "remove item" codepaths to call WebBackForwardList::didRemoveItem and have it clear out the snapshot.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::pageClosed):
(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::removeAllItems):
(WebKit::WebBackForwardList::clear):
(WebKit::WebBackForwardList::didRemoveItem):

  • UIProcess/WebBackForwardList.h:
3:01 PM Changeset in webkit [175348] by Antti Koivisto
  • 7 edits
    2 adds in trunk/Source/WebCore

Notify Settings object when its Page object goes away.
https://bugs.webkit.org/show_bug.cgi?id=138183
rdar://problem/18786900

Patch by Alexey Proskuryakov <ap@apple.com> on 2014-10-29
Reviewed by Andreas Kling.

I could not make a test for this issue.

  • page/Page.cpp:

(WebCore::Page::~Page):

  • page/Settings.cpp:

(WebCore::setImageLoadingSettings):
(WebCore::Settings::Settings):
(WebCore::Settings::setTextAutosizingEnabled):
(WebCore::Settings::setTextAutosizingWindowSizeOverride):
(WebCore::Settings::setTextAutosizingFontScaleFactor):
(WebCore::Settings::setMediaTypeOverride):
(WebCore::Settings::setScriptEnabled):
(WebCore::Settings::setUserStyleSheetLocation):
(WebCore::Settings::setMinDOMTimerInterval):
(WebCore::Settings::minDOMTimerInterval):
(WebCore::Settings::domTimerAlignmentInterval):
(WebCore::Settings::setUsesPageCache):
(WebCore::Settings::setScreenFontSubstitutionEnabled):
(WebCore::Settings::setFontRenderingMode):
(WebCore::Settings::setDNSPrefetchingEnabled):
(WebCore::Settings::setStorageBlockingPolicy):
(WebCore::Settings::setBackgroundShouldExtendBeyondPage):
(WebCore::Settings::setScrollingPerformanceLoggingEnabled):
(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
(WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled):
(WebCore::Settings::setFontFallbackPrefersPictographs):

  • page/Settings.h:

(WebCore::Settings::pageDestroyed):

2:59 PM Changeset in webkit [175347] by ap@apple.com
  • 4 edits in trunk/Source/WebCore

Notify Settings object when its Page object goes away.
https://bugs.webkit.org/show_bug.cgi?id=138183
rdar://problem/18786900

Reviewed by Andreas Kling.

I could not make a test for this issue.

  • page/Page.cpp:

(WebCore::Page::~Page):

  • page/Settings.cpp:

(WebCore::setImageLoadingSettings):
(WebCore::Settings::Settings):
(WebCore::Settings::setTextAutosizingEnabled):
(WebCore::Settings::setTextAutosizingWindowSizeOverride):
(WebCore::Settings::setTextAutosizingFontScaleFactor):
(WebCore::Settings::setMediaTypeOverride):
(WebCore::Settings::setScriptEnabled):
(WebCore::Settings::setUserStyleSheetLocation):
(WebCore::Settings::setMinDOMTimerInterval):
(WebCore::Settings::minDOMTimerInterval):
(WebCore::Settings::domTimerAlignmentInterval):
(WebCore::Settings::setUsesPageCache):
(WebCore::Settings::setScreenFontSubstitutionEnabled):
(WebCore::Settings::setFontRenderingMode):
(WebCore::Settings::setDNSPrefetchingEnabled):
(WebCore::Settings::setStorageBlockingPolicy):
(WebCore::Settings::setBackgroundShouldExtendBeyondPage):
(WebCore::Settings::setScrollingPerformanceLoggingEnabled):
(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
(WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled):
(WebCore::Settings::setFontFallbackPrefersPictographs):

  • page/Settings.h:

(WebCore::Settings::pageDestroyed):

2:32 PM WebKitGTK/KeepingTheTreeGreen edited by ltilve@igalia.com
(diff)
2:32 PM Changeset in webkit [175346] by commit-queue@webkit.org
  • 129 edits
    2 adds in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Rebaseline after 175259.

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2014-10-29

  • platform/gtk/css1/basic/containment-expected.txt:
  • platform/gtk/css1/basic/contextual_selectors-expected.txt:
  • platform/gtk/css1/basic/grouping-expected.txt:
  • platform/gtk/css1/basic/id_as_selector-expected.txt:
  • platform/gtk/css1/basic/inheritance-expected.txt:
  • platform/gtk/css1/box_properties/border-expected.txt:
  • platform/gtk/css1/box_properties/border_bottom_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_bottom_width-expected.txt:
  • platform/gtk/css1/box_properties/border_bottom_width_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_color-expected.txt:
  • platform/gtk/css1/box_properties/border_color_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_left-expected.txt:
  • platform/gtk/css1/box_properties/border_left_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_left_width-expected.txt:
  • platform/gtk/css1/box_properties/border_left_width_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_right-expected.txt:
  • platform/gtk/css1/box_properties/border_right_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_right_width-expected.txt:
  • platform/gtk/css1/box_properties/border_right_width_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_style-expected.txt:
  • platform/gtk/css1/box_properties/border_style_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_top_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_top_width-expected.txt:
  • platform/gtk/css1/box_properties/border_top_width_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_width-expected.txt:
  • platform/gtk/css1/box_properties/border_width_inline-expected.txt:
  • platform/gtk/css1/box_properties/clear-expected.txt:
  • platform/gtk/css1/box_properties/clear_float-expected.txt:
  • platform/gtk/css1/box_properties/float-expected.txt:
  • platform/gtk/css1/box_properties/float_elements_in_series-expected.txt:
  • platform/gtk/css1/box_properties/float_margin-expected.txt:
  • platform/gtk/css1/box_properties/height-expected.txt:
  • platform/gtk/css1/box_properties/margin-expected.txt:
  • platform/gtk/css1/box_properties/margin_bottom-expected.txt:
  • platform/gtk/css1/box_properties/margin_bottom_inline-expected.txt:
  • platform/gtk/css1/box_properties/margin_inline-expected.txt:
  • platform/gtk/css1/box_properties/margin_left-expected.txt:
  • platform/gtk/css1/box_properties/margin_left_inline-expected.txt:
  • platform/gtk/css1/box_properties/margin_right-expected.txt:
  • platform/gtk/css1/box_properties/margin_right_inline-expected.txt:
  • platform/gtk/css1/box_properties/margin_top-expected.txt:
  • platform/gtk/css1/box_properties/margin_top_inline-expected.txt:
  • platform/gtk/css1/box_properties/padding-expected.txt:
  • platform/gtk/css1/box_properties/padding_bottom-expected.txt:
  • platform/gtk/css1/box_properties/padding_bottom_inline-expected.txt:
  • platform/gtk/css1/box_properties/padding_inline-expected.txt:
  • platform/gtk/css1/box_properties/padding_left-expected.txt:
  • platform/gtk/css1/box_properties/padding_left_inline-expected.txt:
  • platform/gtk/css1/box_properties/padding_right-expected.txt:
  • platform/gtk/css1/box_properties/padding_right_inline-expected.txt:
  • platform/gtk/css1/box_properties/padding_top-expected.txt:
  • platform/gtk/css1/box_properties/padding_top_inline-expected.txt:
  • platform/gtk/css1/box_properties/width-expected.txt:
  • platform/gtk/css1/cascade/cascade_order-expected.txt:
  • platform/gtk/css1/cascade/important-expected.txt:
  • platform/gtk/css1/classification/display-expected.txt:
  • platform/gtk/css1/classification/list_style-expected.txt:
  • platform/gtk/css1/classification/list_style_image-expected.txt:
  • platform/gtk/css1/classification/list_style_position-expected.txt:
  • platform/gtk/css1/classification/list_style_type-expected.txt:
  • platform/gtk/css1/classification/white_space-expected.txt:
  • platform/gtk/css1/color_and_background/background-expected.txt:
  • platform/gtk/css1/color_and_background/background_attachment-expected.txt:
  • platform/gtk/css1/color_and_background/background_color-expected.txt:
  • platform/gtk/css1/color_and_background/background_image-expected.txt:
  • platform/gtk/css1/color_and_background/background_position-expected.txt:
  • platform/gtk/css1/color_and_background/background_repeat-expected.txt:
  • platform/gtk/css1/color_and_background/color-expected.txt:
  • platform/gtk/css1/conformance/forward_compatible_parsing-expected.txt:
  • platform/gtk/css1/font_properties/font-expected.txt:
  • platform/gtk/css1/font_properties/font_family-expected.txt:
  • platform/gtk/css1/font_properties/font_size-expected.txt:
  • platform/gtk/css1/font_properties/font_style-expected.txt:
  • platform/gtk/css1/font_properties/font_variant-expected.txt:
  • platform/gtk/css1/font_properties/font_weight-expected.txt:
  • platform/gtk/css1/formatting_model/canvas-expected.txt:
  • platform/gtk/css1/formatting_model/floating_elements-expected.txt:
  • platform/gtk/css1/formatting_model/height_of_lines-expected.txt:
  • platform/gtk/css1/formatting_model/replaced_elements-expected.txt:
  • platform/gtk/css1/formatting_model/vertical_formatting-expected.txt:
  • platform/gtk/css1/pseudo/anchor-expected.txt:
  • platform/gtk/css1/pseudo/firstletter-expected.txt:
  • platform/gtk/css1/pseudo/firstline-expected.txt:
  • platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/gtk/css1/text_properties/letter_spacing-expected.txt:
  • platform/gtk/css1/text_properties/line_height-expected.txt:
  • platform/gtk/css1/text_properties/text_align-expected.txt:
  • platform/gtk/css1/text_properties/text_decoration-expected.txt:
  • platform/gtk/css1/text_properties/text_indent-expected.txt:
  • platform/gtk/css1/text_properties/text_transform-expected.txt:
  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/css1/text_properties/word_spacing-expected.txt:
  • platform/gtk/css1/units/color_units-expected.txt:
  • platform/gtk/css1/units/length_units-expected.txt:
  • platform/gtk/css1/units/percentage_units-expected.txt:
  • platform/gtk/css1/units/urls-expected.txt:
  • platform/gtk/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
  • platform/gtk/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
  • platform/gtk/fast/css/empty-pseudo-class-expected.txt:
  • platform/gtk/fast/css/first-child-pseudo-class-expected.txt:
  • platform/gtk/fast/css/last-child-pseudo-class-expected.txt:
  • platform/gtk/fast/css/only-child-pseudo-class-expected.txt:
  • platform/gtk/fast/forms/targeted-frame-submission-expected.txt:
  • platform/gtk/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/gtk/fast/html/listing-expected.txt:
  • platform/gtk/fast/invalid/junk-data-expected.txt:
  • platform/gtk/fast/invalid/missing-end-tag-expected.txt:
  • platform/gtk/fast/loader/text-document-wrapping-expected.txt:
  • platform/gtk/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
  • platform/gtk/fast/parser/xhtml-alternate-entities-expected.txt:
  • platform/gtk/fast/table/border-collapsing/004-expected.txt:
  • platform/gtk/fast/text/whitespace/001-expected.txt: Added.
  • platform/gtk/fast/text/whitespace/013-expected.txt:
  • platform/gtk/fast/text/whitespace/014-expected.txt:
  • platform/gtk/fast/text/whitespace/022-expected.txt: Added.
  • platform/gtk/fast/text/whitespace/024-expected.txt:
  • platform/gtk/fast/text/whitespace/030-expected.txt:
  • platform/gtk/fast/xsl/xslt-extra-content-at-end-expected.txt:
  • platform/gtk/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
  • platform/gtk/svg/custom/junk-data-expected.txt:
  • platform/gtk/svg/custom/missing-xlink-expected.txt:
  • platform/gtk/svg/custom/use-font-face-crash-expected.txt:
  • platform/gtk/svg/hixie/error/012-expected.txt:
  • platform/gtk/tables/mozilla/bugs/45621-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug139524-2-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
2:13 PM Changeset in webkit [175345] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Remove invalid float from RootInlineBox.
https://bugs.webkit.org/show_bug.cgi?id=137707

Reviewed by Antti Koivisto.

In certain cases, floating boxes get attached to the last (root) inline box.
When this particular floating box gets destroyed, it also needs to be detached
from the last inline box.
Source/WebCore:

  1. Introduce RootInlineBox::removeFloat() (vs. RootInlineBox::appendFloat())
  2. Ensure that it is called when the floating box is being destroyed.

Test: fast/inline/crash-when-inline-box-has-invalid-float.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::removeFloatingObject):
(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout): During style recalc, while
tearing down the render tree, we can get to a state where a block element has both inline and block children.
It happens when the style change on an element makes sibling anonymous block wrappers detached.
In that case the markAllDescendantsWithFloatsForLayout() call does not get propagated down on the
block child elements as we return early at the childrenInline() check.

  • rendering/RootInlineBox.h:

(WebCore::RootInlineBox::removeFloat):

LayoutTests:

  • fast/inline/crash-when-inline-box-has-invalid-float-expected.txt: Added.
  • fast/inline/crash-when-inline-box-has-invalid-float.html: Added.
2:04 PM Changeset in webkit [175344] by rakuco@webkit.org
  • 2 edits in trunk

[GTK] Bump libsoup's minimum version to 2.42.0.
https://bugs.webkit.org/show_bug.cgi?id=138086

Reviewed by Martin Robinson.

The SOUP_CHECK_VERSION macro was added in libsoup 2.41.1, and the
soup-version.h header was added to soup.h in 2.41.4, which then becomes
the minimum version required to build the port these days.

In addition, since the autotools build system required 2.42.0 before
being retired, require the same version here. Version 2.42.0 was also
recommended in
https://lists.webkit.org/pipermail/webkit-gtk/2013-March/001387.html.

  • Source/cmake/OptionsGTK.cmake:
2:00 PM Changeset in webkit [175343] by Antti Koivisto
  • 7 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, rolling out r175342.

a file ended up in a wrong directory

Reverted changeset:

"Factor cache validity computation functions out of
CachedResource"
https://bugs.webkit.org/show_bug.cgi?id=138156
http://trac.webkit.org/changeset/175342

1:54 PM Changeset in webkit [175342] by Antti Koivisto
  • 7 edits
    2 adds in trunk/Source/WebCore

Factor cache validity computation functions out of CachedResource
https://bugs.webkit.org/show_bug.cgi?id=138156

Reviewed by Andreas Kling.

These can be used to implement cache logic on WebKit level.

  • CMakeLists.txt:
  • WebCore.exp.in:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/CacheValidation.cpp: Added.

(WebCore::computeCurrentAge):
(WebCore::computeFreshnessLifetimeForHTTPFamily):
(WebCore::updateRedirectChainStatus):
(WebCore::redirectChainAllowsReuse):

  • loader/CacheValidation.h: Added.

(WebCore::RedirectChainCacheStatus::RedirectChainCacheStatus):

  • loader/cache/CachedResource.cpp:

(WebCore::updateResponseHeadersAfterRevalidation):
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::isExpired):
(WebCore::CachedResource::freshnessLifetime):
(WebCore::CachedResource::willSendRequest):
(WebCore::CachedResource::updateResponseAfterRevalidation):
(WebCore::CachedResource::redirectChainAllowsReuse):
(WebCore::currentAge): Deleted.

  • loader/cache/CachedResource.h:
1:48 PM Changeset in webkit [175341] by matthew_hanson@apple.com
  • 13 edits in branches/safari-600.3-branch/Source/WebKit2

Rollout r174369. <rdar://problem/18640842>

1:26 PM Changeset in webkit [175340] by matthew_hanson@apple.com
  • 16 edits
    2 copies
    1 delete in branches/safari-600.3-branch

Merge r175335. rdar://problem/18709436

1:24 PM Changeset in webkit [175339] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Hide the 'Add to Photos' item if it isn't available
https://bugs.webkit.org/show_bug.cgi?id=138182
<rdar://problem/18814999>

Reviewed by Beth Dakin.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _canAddImageToPhotos]):
(-[WKActionMenuController _addImageToPhotos:]):
Factor _canAddImageToPhotos out of _addImageToPhotos:, and use it in
_defaultMenuItemsForImage to avoid including the menu item in the first place.

12:53 PM WebKitGTK/KeepingTheTreeGreen edited by ltilve@igalia.com
(diff)
12:08 PM Changeset in webkit [175338] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Rename WebPageProxy::activeActionMenuHitTestResult to lastMouseMoveHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=138137
<rdar://problem/18798257>

Reviewed by Anders Carlsson.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::mouseDidMoveOverElement):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::lastMouseMoveHitTestResult):
(WebKit::WebPageProxy::activeActionMenuHitTestResult): Deleted.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForLink]):
(-[WKActionMenuController _openURLFromActionMenu:]):
(-[WKActionMenuController _addToReadingListFromActionMenu:]):
(-[WKActionMenuController _quickLookURLFromActionMenu:]):
(-[WKActionMenuController _saveImageToDownloads:]):
(imageForResource:name::if):
(-[WKActionMenuController _updateActionMenuItems]):
Rename to the more accurate and general name.

12:01 PM Changeset in webkit [175337] by Lucas Forschler
  • 2 edits in branches/safari-600.3-branch/Source/WebKit/mac

Fix the branch pre-Yosemite build by moving an #if to encompass the whole file.

  • Misc/WebSharingServicePickerController.mm:
11:56 AM Changeset in webkit [175336] by adachan@apple.com
  • 6 edits in trunk/Source/WebCore

Add API to mute/unmute a page.
https://bugs.webkit.org/show_bug.cgi?id=138150

Reviewed by Eric Carlson.

No new tests, since it's difficult to test whether the Page has indeed been muted.

  • dom/Document.cpp:

(WebCore::Document::setMuted):
Go through each AudioProducer and call setMuted() on it.

  • dom/Document.h:
  • page/AudioProducer.h:

Add setMuted(bool). HTMLMediaElement, the only derived class of AudioProducer so far,
has already implemented setMuted().

  • page/Page.cpp:

(WebCore::Page::setMuted):
Go through all its frames and call setMuted() on each frame's Document.

  • page/Page.h:
11:48 AM Changeset in webkit [175335] by timothy_horton@apple.com
  • 19 edits
    2 adds
    1 delete in trunk

Implement action menus for data detected items
https://bugs.webkit.org/show_bug.cgi?id=138178
<rdar://problem/18709436>

Reviewed by Anders Carlsson.

  • WebCore.exp.in:

Export a symbol from Position that we need.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/mac/DataDetectorsSPI.h:

Add a combined SPI header for all of the random bits of DataDetectors that we use.

  • Shared/API/c/WKActionMenuTypes.h:

Add a new type.

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):

  • Shared/WebHitTestResult.h:

(WebKit::WebHitTestResult::isTextNode):
Determine, store, encode, and decode whether or not the hit node is a text node.

  • Shared/mac/ActionMenuHitTestResult.h:
  • Shared/mac/ActionMenuHitTestResult.mm: Renamed from Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp.

(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Make ActionMenuHitTestResult an Obj-C++ file.
Store, encode, and decode (securely!) a DDActionContext and FloatRect
representing the bounding box of the data detected item, if any.

  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:context:configuration:webView:]):
(-[WKView willOpenMenu:withEvent:]): Deleted.
Stop using willOpenMenu; we'll use NSMenuDelegate's menuNeedsUpdate: instead.
Hook up WKActionMenuController as our action menu's delegate.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController prepareForMenu:withEvent:]):
Call _updateActionMenuItems *after* we've adjusted _state, so that it
can depend on the value being correct.

(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController didPerformActionMenuHitTest:]):
Move menu updating to menuNeedsUpdate for more accurate timing.

(_updateActionMenuItems):
When building the menu, if we have a text node that is not a link,
and hit a data detected item, retrieve the menu from the DDActionContext.
If we have nothing, make sure to reset _type, and if the final hit-test
is still pending, build a menu with a dummy item.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::performActionMenuHitTestAtLocation): Moved to WebPageMac.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::rangeExpandedAroundPosition):
Factor this out of performDictionaryLookupAtLocation.

(WebKit::WebPage::performDictionaryLookupAtLocation):
Make use of rangeExpandedAroundPosition.

(WebKit::scanForDataDetectedItems):
Expand to four lines of context around the hit point.
Convert that range to plain text, and feed it to DataDetectors.
Find the result that intersects the hit point, and make a DDActionContext
for it. Also, store the bounding box of the first quad of the detected
text, to provide to Data Detectors as a hint for UI placement.

(WebKit::WebPage::performActionMenuHitTestAtLocation):
If the hit node is a text node, call scanForDataDetectedItems and
store the resultant DDActionContext and bounding rect on our
ActionMenuHitTestResult for transfer to the UI process.

  • WebKitSystemInterface.h:
  • libWebKitSystemInterfaceMavericks.a:
  • libWebKitSystemInterfaceMountainLion.a:
  • libWebKitSystemInterfaceYosemite.a:

Update WebKitSystemInterface.

11:22 AM Changeset in webkit [175334] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit2

[iOS] iPad: Occasional <select> crashes attempting to scroll to non-existing row 0 in viewWillAppear
https://bugs.webkit.org/show_bug.cgi?id=138165

Reviewed by David Kilzer.

This is a speculative fix for a crash attempting to scroll to a row in a
select picker on iPad. In these cases we are trying to scroll to the first
row of the first section, but no such row appears to exist. I was unable
to reproduce the issue, but if it is happening we should be able to protect
safely protect against crashing.

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectTableViewController viewWillAppear:]):
Protect against trying to scroll to a section/row that does not exist
by pre-checking that the section/row is valid.

10:53 AM Changeset in webkit [175333] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[EME] NULL-dereference crash in MediaKeys::setMediaElement().
https://bugs.webkit.org/show_bug.cgi?id=138177

Reviewed by Eric Carlson.

NULL-check m_mediaElement->player() before using. It may have been cleared if the HTMLMediaElement
has previously had stop() called.

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::setMediaElement):

10:53 AM Changeset in webkit [175332] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[EME] MediaKeySession resources persist across page reloads
https://bugs.webkit.org/show_bug.cgi?id=138176

Reviewed by Eric Carlson.

MediaKeySession is an ActiveDOMObject, so when told to stop() by our execution context,
close() the session, releasing all our resources.

  • Modules/encryptedmedia/MediaKeySession.h:
10:53 AM Changeset in webkit [175331] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[EME][Mac] MediaKeySession type "keyrelease" is ignored.
https://bugs.webkit.org/show_bug.cgi?id=138175

Reviewed by Eric Carlson.

To indicate that they would like to recevie expired session confirmation messages, clients
will create a MediaKeySession with a type parameter of "keyrelease". The code which validates
this type needs to be updated to recognize "keyrelease" as a valid type.

Also, the code which validates update() requests needs to allow updates containing the string
"acknowledged", so that clients can request the confirmation messages be discarded.

  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType):

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

(WebCore::CDMSessionMediaSourceAVFObjC::update):

10:41 AM Changeset in webkit [175330] by adachan@apple.com
  • 7 edits in trunk/Source/WebCore

Remove MediaSessionClient::hasMediaCharacteristics() and MediaSessionClient::mediaStateDidChange().
https://bugs.webkit.org/show_bug.cgi?id=138153

Reviewed by Jer Noble.

After http://trac.webkit.org/changeset/175273, Document no longer keeps a set of MediaSessions
and it doesn't need to query each MediaSession for its characteristics and play state.
MediaSessionClient::hasMediaCharacteristics() is no longer needed and MediaSessionClient::mediaStateDidChange()
can be removed if HTMLMediaElement calls Document::updateIsPlayingAudio() after m_playing has changed.

No new tests, no behavior change.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updatePlayState):
Call setPlaying() rather than setting m_playing directly.
(WebCore::HTMLMediaElement::setPlaying):
Update m_playing. If it has changed, call Document::updateIsPlayingAudio().
(WebCore::HTMLMediaElement::setPausedInternal):
Call setPlaying() rather than setting m_playing directly.
(WebCore::HTMLMediaElement::isPlayingAudio):
Call isPlaying() directly rather than checking the MediaSession's state.

  • html/HTMLMediaElement.h:
  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::setState):
MediaSessionClient::mediaStateDidChange() has been removed.
(WebCore::MediaSession::hasMediaCharacteristics): Deleted.

  • platform/audio/MediaSession.h:

(WebCore::MediaSessionClient::mediaStateDidChange): Deleted.

  • platform/audio/ios/AudioDestinationIOS.h:
  • platform/audio/mac/AudioDestinationMac.h:
10:16 AM Changeset in webkit [175329] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Update Mavericks results after https://bugs.webkit.org/show_bug.cgi?id=137275
(Speed up line parsing for simple line layout)

  • platform/mac-mavericks/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
8:09 AM Changeset in webkit [175328] by Chris Dumez
  • 100 edits in trunk/Source/WebCore

Clean up virtual functions in html/
https://bugs.webkit.org/show_bug.cgi?id=138166

Reviewed by Andreas Kling.

Clean up virtual functions in html/ by:

  • Making virtual functions final when possible
  • Making classes final when possible
  • Using 'override' when appropriate
  • Explicitly marking functions / destructors as virtual when they are inherently virtual
  • Dropping virtual destructors when the class does not have subclasses and mark the class as final, to get rid of unnecessary vtables
  • Making isXXX() virtual functions private on XXX classes to avoid unnecessary type checks
  • De-virtualizing some functions that do not need to be virtual
  • Dropping final for virtual functions in classes already marked as final

No new tests, no behavior change.

  • html/ButtonInputType.h:
  • html/CheckboxInputType.h:
  • html/ColorInputType.h:
  • html/DOMSettableTokenList.h:
  • html/DateInputType.h:
  • html/DateTimeInputType.h:
  • html/DateTimeLocalInputType.h:
  • html/EmailInputType.h:
  • html/FTPDirectoryDocument.h:
  • html/HTMLAnchorElement.h:
  • html/HTMLDetailsElement.cpp:
  • html/HTMLFormControlElement.h:
  • html/HTMLFormControlsCollection.h:
  • html/HTMLFrameElement.h:
  • html/HTMLFrameElementBase.h:
  • html/HTMLFrameOwnerElement.h:
  • html/HTMLInputElement.h:
  • html/HTMLMarqueeElement.h:
  • html/HTMLMediaElement.h:
  • html/HTMLMediaSession.h:

(WebCore::HTMLMediaSession::requiresPlaybackTargetRouteMonitoring): Deleted.

  • html/HTMLMeterElement.h:
  • html/HTMLNameCollection.h:
  • html/HTMLObjectElement.h:
  • html/HTMLOptGroupElement.h:
  • html/HTMLOptionElement.h:
  • html/HTMLSpanElement.h:
  • html/HTMLStyleElement.h:
  • html/HTMLSummaryElement.cpp:
  • html/HTMLSummaryElement.h:
  • html/HTMLUnknownElement.h:
  • html/HTMLVideoElement.h:
  • html/HiddenInputType.h:
  • html/ImageInputType.h:
  • html/MediaKeyEvent.h:
  • html/MonthInputType.h:
  • html/NumberInputType.h:
  • html/PasswordInputType.h:
  • html/PublicURLManager.h:
  • html/RadioInputType.h:
  • html/ResetInputType.h:
  • html/SubmitInputType.h:
  • html/TelephoneInputType.h:
  • html/TextInputType.h:
  • html/TimeInputType.h:
  • html/URLInputType.h:
  • html/WeekInputType.h:
  • html/canvas/ANGLEInstancedArrays.h:
  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/DOMPath.h:
  • html/canvas/EXTShaderTextureLOD.h:
  • html/canvas/EXTTextureFilterAnisotropic.h:
  • html/canvas/OESElementIndexUint.h:
  • html/canvas/OESStandardDerivatives.h:
  • html/canvas/OESTextureFloat.h:
  • html/canvas/OESTextureFloatLinear.h:
  • html/canvas/OESTextureHalfFloat.h:
  • html/canvas/OESTextureHalfFloatLinear.h:
  • html/canvas/OESVertexArrayObject.h:
  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLCompressedTextureATC.h:
  • html/canvas/WebGLCompressedTexturePVRTC.h:
  • html/canvas/WebGLCompressedTextureS3TC.h:
  • html/canvas/WebGLContextAttributes.h:
  • html/canvas/WebGLContextEvent.h:
  • html/canvas/WebGLDebugRendererInfo.h:
  • html/canvas/WebGLDebugShaders.h:
  • html/canvas/WebGLDepthTexture.h:
  • html/canvas/WebGLDrawBuffers.h:
  • html/canvas/WebGLFramebuffer.h:

(WebCore::WebGLFramebuffer::isFramebuffer): Deleted.

  • html/canvas/WebGLLoseContext.h:
  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLSharedObject.h:

(WebCore::WebGLSharedObject::isFramebuffer): Deleted.

  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLVertexArrayObjectOES.h:

(WebCore::WebGLVertexArrayObjectOES::isVertexArray): Deleted.

  • html/shadow/ImageControlsRootElement.h:
  • html/shadow/InsertionPoint.h:
  • html/shadow/MediaControlElementTypes.h:
  • html/shadow/MediaControlElements.h:
  • html/shadow/MediaControls.h:
  • html/shadow/MediaControlsApple.h:
  • html/shadow/SpinButtonElement.h:
  • html/track/AudioTrack.h:
  • html/track/AudioTrackList.h:
  • html/track/DataCue.h:

(WebCore::DataCue::cueType): Deleted.

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandGenericTextTrack.h:
  • html/track/InbandTextTrack.h:
  • html/track/InbandWebVTTTextTrack.h:
  • html/track/LoadableTextTrack.h:
  • html/track/TextTrackList.h:
  • html/track/TrackEvent.h:
  • html/track/VTTCue.h:

(WebCore::VTTCueBox::setFontSizeFromCaptionUserPrefs):

  • html/track/VTTRegion.h:
  • html/track/VideoTrack.h:
  • html/track/VideoTrackList.h:
  • html/track/WebVTTParser.h:

(WebCore::WebVTTCueData::~WebVTTCueData): Deleted.

3:45 AM Changeset in webkit [175327] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] build-webkit should try harder to avoid re-running cmake
https://bugs.webkit.org/show_bug.cgi?id=137949

Reviewed by Martin Robinson.

  • Scripts/webkitdirs.pm:

(shouldRemoveCMakeCache): Don't remove CMakeCache unconditionally for EFL.
(generateBuildSystemFromCMakeProject): Comment fix after r174681.

1:59 AM Changeset in webkit [175326] by Lucas Forschler
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175256. rdar://problem/18798121

1:57 AM Changeset in webkit [175325] by Lucas Forschler
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175238. rdar://problem/18797743

1:54 AM Changeset in webkit [175324] by Lucas Forschler
  • 4 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r175229. rdar://problem/18451638

1:51 AM Changeset in webkit [175323] by Lucas Forschler
  • 6 edits
    1 copy in branches/safari-600.3-branch/Source/WebKit2

Merged r175193. rdar://problem/18451638

1:49 AM Changeset in webkit [175322] by Lucas Forschler
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175190. <rdar://problem/18767397>

1:47 AM Changeset in webkit [175321] by Lucas Forschler
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175187. rdar://problem/18767859

1:44 AM Changeset in webkit [175320] by Lucas Forschler
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175185. rdar://problem/18758758

1:42 AM Changeset in webkit [175319] by Lucas Forschler
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175184. rdar://problem/18758758

1:40 AM Changeset in webkit [175318] by Lucas Forschler
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175181. rdar://problem/18758758

1:37 AM Changeset in webkit [175317] by Lucas Forschler
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175180. rdar://problem/18758758

1:33 AM Changeset in webkit [175316] by Lucas Forschler
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175179. rdar://problem/18758758

1:30 AM Changeset in webkit [175315] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-600.3-branch/Source/WebKit2

Merged r175178. rdar://problem/18758758

1:30 AM Changeset in webkit [175314] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: growthShare > 0 in WebCore::RenderGrid::distributeSpaceToTracks
https://bugs.webkit.org/show_bug.cgi?id=137772

Reviewed by Andreas Kling.

Source/WebCore:

We're hitting the ASSERTION because if the number of tracks an
item spans does greatly exceed the available logical space, then
the result of the division availableLogicalSpace/numberOfTracks is
truncated to 0. So the ASSERTION was theoretically right because
the result has to be always >0 (as the dividend > 0) but the fact
that the result is a LayoutUnit forces us to accept 0 as a valid
outcome of the operation.

Test: fast/css-grid-layout/tracks-number-greatly-exceeding-available-size-crash.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::distributeSpaceToTracks):

LayoutTests:

  • fast/css-grid-layout/tracks-number-greatly-exceeding-available-size-crash-expected.txt: Added.
  • fast/css-grid-layout/tracks-number-greatly-exceeding-available-size-crash.html: Added.
1:00 AM Changeset in webkit [175313] by Lucas Forschler
  • 2 edits in branches/safari-600.3-branch/Source/WTF

Partial merge of r172749. rdar://problem/18757166

12:58 AM Changeset in webkit [175312] by Chris Dumez
  • 3 edits
    2 adds in trunk

Crash in CachedRawResource::canReuse() when reloading http://dnd.wizards.com/dungeons-and-dragons/story
https://bugs.webkit.org/show_bug.cgi?id=138164

Reviewed by Andreas Kling.

Source/WebCore:

This patch fixes a crash when reloading the following URL:
http://dnd.wizards.com/dungeons-and-dragons/story

We were crashing in CachedRawResource::canReuse() because header.key
would sometimes be a null String and we would call
HashMap::get(nullString).

The real issue was that header.key was null in the first place, which
means that even though the HTTPHeaderMap iterator is valid, it->key
is a null String, which should never happen. There was a bug in the
HTTPHeaderMapConstIterator() constructor that would cause the
iterator key/value pair to not get initialized if the HTTPHeaderMap
contained *only* uncommon HTTP headers. This patch updates the
constructor so that we fall back to updating the key/value from the
uncommon header map, if we failed to initialized from the common
header map (because it was empty).

Test: http/tests/cache/xhr-uncommon-header.html

  • platform/network/HTTPHeaderMap.h:

(WebCore::HTTPHeaderMap::HTTPHeaderMapConstIterator::HTTPHeaderMapConstIterator):

LayoutTests:

Add a layout test that does XHR loads from cache with only uncommon
HTTP headers to reproduce a crash in CachedRawResource::canReuse()
when iterating over a HTTPHeaderMap that had uncommon HTTP headers
but no common ones.

  • http/tests/cache/xhr-uncommon-header-expected.txt: Added.
  • http/tests/cache/xhr-uncommon-header.html: Added.
12:54 AM Changeset in webkit [175311] by Lucas Forschler
  • 12 edits
    3 copies
    1 add in branches/safari-600.3-branch/Source

Merged r175147. rdar://problem/18757166

12:18 AM Changeset in webkit [175310] by Lucas Forschler
  • 9 edits in branches/safari-600.3-branch

Merged r172542. rdar://problem/18757166

Note: See TracTimeline for information about the timeline view.