WebKit-https.git
6 years agoFix the 32-bit build.
timothy_horton@apple.com [Thu, 4 Dec 2014 21:10:49 +0000 (21:10 +0000)]
Fix the 32-bit build.

* UIProcess/API/mac/WKView.mm:
(-[WKView _setTextIndicator:fadeOut:animationCompletionHandler:]):

* WebView/WebView.mm:
(-[WebView _setTextIndicator:fadeOut:animationCompletionHandler:]):

* page/mac/TextIndicatorWindow.h:
* page/mac/TextIndicatorWindow.mm:
(WebCore::TextIndicatorWindow::setTextIndicator):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176811 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTextIndicator::createWithSelectionInFrame does synchronous IPC in WebKit2
timothy_horton@apple.com [Thu, 4 Dec 2014 19:58:14 +0000 (19:58 +0000)]
TextIndicator::createWithSelectionInFrame does synchronous IPC in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139252
<rdar://problem/19140827>

Reviewed by Anders Carlsson.

It turns out contentsToScreen requires sync IPC in Mac WebKit2, which we
really don't want to be doing here (especially since the UI process will often
be sitting in waitForAndDispatchImmediately waiting for didPerformActionMenuHitTest).

Go back to keeping TextIndicator rects in "window" coordinates and do the conversion
in each of the WebKits instead of trying to share that code.

* WebCore.exp.in:
* page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::TextIndicator::TextIndicator):
* page/TextIndicator.h:
(WebCore::TextIndicator::selectionRectInWindowCoordinates):
(WebCore::TextIndicator::textBoundingRectInWindowCoordinates):
(WebCore::TextIndicator::selectionRectInScreenCoordinates): Deleted.
(WebCore::TextIndicator::textBoundingRectInScreenCoordinates): Deleted.
Go back to keeping the rects in "window" coordinates.

* page/mac/TextIndicatorWindow.h:
* page/mac/TextIndicatorWindow.mm:
(-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
(WebCore::TextIndicatorWindow::setTextIndicator):
Let callers pass in the contentRect instead of trying to share the code
to compute it, since it needs to be different for legacy and modern WebKit.

* WebView/WebView.mm:
(-[WebView _setTextIndicator:fadeOut:animationCompletionHandler:]):
Adjust to the WebCore changes.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
* UIProcess/API/mac/WKView.mm:
(-[WKView _setTextIndicator:fadeOut:animationCompletionHandler:]):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
(WebKit::FindController::drawRect):
Adjust to the WebCore changes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176810 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSimplify StorageManager callback functions
andersca@apple.com [Thu, 4 Dec 2014 19:39:48 +0000 (19:39 +0000)]
Simplify StorageManager callback functions
https://bugs.webkit.org/show_bug.cgi?id=139257

Reviewed by Antti Koivisto.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getOrigins):
(WebKit::StorageManager::getStorageDetailsByOrigin):
(WebKit::callCallbackFunction): Deleted.
(WebKit::StorageManager::getOriginsInternal): Deleted.
(WebKit::StorageManager::getStorageDetailsByOriginInternal): Deleted.
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
(WebKit::didGetKeyValueStorageOrigins): Deleted.
(WebKit::didGetStorageDetailsByOrigin): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176806 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix cast-align warning in StringImpl.h
ossy@webkit.org [Thu, 4 Dec 2014 19:22:35 +0000 (19:22 +0000)]
Fix cast-align warning in StringImpl.h
https://bugs.webkit.org/show_bug.cgi?id=139222

Reviewed by Anders Carlsson.

* wtf/text/StringImpl.h:
(WTF::StringImpl::tailPointer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSerialization of MapData object provides unsafe access to internal types
ddkilzer@apple.com [Thu, 4 Dec 2014 18:31:47 +0000 (18:31 +0000)]
Serialization of MapData object provides unsafe access to internal types
https://bugs.webkit.org/show_bug.cgi?id=138653

Patch by Oliver Hunt <oliver@apple.com> on 2014-12-04
Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Converting these ASSERTs into RELEASE_ASSERTs, as it is now obvious
that despite trying hard to be safe in all cases it's simply to easy
to use an iterator in an unsafe state.

* runtime/MapData.h:
(JSC::MapData::const_iterator::key):
(JSC::MapData::const_iterator::value):

Source/WebCore:

We now keep the value portion of the key/value pair in MapData as a
separate stack. This allows us to maintain the spec semantic of
"atomic" serialisation of the key/value pair without retaining the
use of a potentially invalid iterator.

* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176803 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoURTBF after r176794.
ossy@webkit.org [Thu, 4 Dec 2014 17:41:51 +0000 (17:41 +0000)]
URTBF after r176794.

* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::fileCreationTime):
(WebKit::fileModificationTime):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176802 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/security/mixedContent/about-blank-iframe-in-main-frame.html fails unless...
ap@apple.com [Thu, 4 Dec 2014 17:18:14 +0000 (17:18 +0000)]
http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html fails unless certain other tests run before it
https://bugs.webkit.org/show_bug.cgi?id=139243

Reviewed by Anders Carlsson.

We didn't get WKPageLoaderClient calls in secondary windows, so we didn't have a
chance to allow untrusted certificates.

* WebKitTestRunner/TestController.cpp: (WTR::TestController::createOtherPage):
Set up more client objects for secondary windows. We may be able to share some of the
code with main view creation function, but it's not exactly the same (notably, we
do not focus a secondary window when it's done loading).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[SVG Masking] Add support for referencing <mask> elements from -webkit-mask-image
stavila@adobe.com [Thu, 4 Dec 2014 17:05:12 +0000 (17:05 +0000)]
[SVG Masking] Add support for referencing <mask> elements from -webkit-mask-image
https://bugs.webkit.org/show_bug.cgi?id=139092

Reviewed by Simon Fraser.

This patch improves the -webkit-mask-image property by allowing it to reference
a <mask> element defined in an inline or external SVG document.
Up until now, each image to be used as a mask consisted of a FillLayer object
whose m_image member represented the mask. Now, in order to accomodate
<mask> elements referenced by a fragment identifier (e.g. file.svg#mask1)
a new class was created (MaskImageOperation) and added as a member of the
FillLayer. As such, from now on, all FillLayer objects used for masking will
store the masking information in this new member.
When parsing the -webkit-mask-image property (or the -webkit-mask shorthand)
a new MaskImageOperation object is created for each image. If the value represents
an external URL, a pending SVG document will be created which will be loaded
during the phase that loads the pending resources. When the download is complete,
the MaskImageOperation is notified by the CachedSVGDocument class and checks if
the received download is a valid SVG and the requested fragment identifier
actually exists and identifies a <mask> element. If it does, that element's
renderer (of type RenderSVGResourceMasker) will be used when painting the mask layers.
Otherwise, the MaskImageOperation class will use the already downloaded data
buffer to create a CachedImage from it and use that instead, basically emulating
the previous behavior, when only images were accepted. This ensures that all existing
behavior, like painting entire SVGs, painting normal images (e.g. PNG/JPG), painting
generated images (e.g. linear-gradient) works as it did before.

No new tests required, this patch doesn't change any current functionality.
It only adds support for referencing <mask> elements for the -webkit-mask-image
property. This is sub-part 1 of the bigger patch https://bugs.webkit.org/show_bug.cgi?id=129682.

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSValue.cpp:
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::isWebKitCSSResourceValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::createMaskImageOperations):
* css/StyleResolver.h:
(WebCore::StyleResolver::State::maskImagesWithPendingSVGDocuments):
* css/WebKitCSSResourceValue.cpp: Added.
(WebCore::WebKitCSSResourceValue::WebKitCSSResourceValue):
(WebCore::WebKitCSSResourceValue::customCSSText):
(WebCore::WebKitCSSResourceValue::isCSSValueNone):
* css/WebKitCSSResourceValue.h: Added.
(WebCore::WebKitCSSResourceValue::create):
(WebCore::WebKitCSSResourceValue::innerValue):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::addCachedResource):
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedSVGDocument.cpp:
(WebCore::CachedSVGDocument::CachedSVGDocument):
(WebCore::CachedSVGDocument::finishLoading):
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedSVGDocumentReference.cpp:
(WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::load):
* loader/cache/CachedSVGDocumentReference.h:
* page/FrameView.cpp:
(WebCore::FrameView::isSVGDocument):
* page/FrameView.h:
* page/Page.cpp:
(WebCore::Page::createPageFromBuffer):
* page/Page.h:
* platform/ScrollView.h:
(WebCore::ScrollView::isSVGDocument):
* platform/graphics/MaskImageOperation.cpp: Added.
(WebCore::MaskImageOperation::create):
(WebCore::MaskImageOperation::MaskImageOperation):
(WebCore::MaskImageOperation::~MaskImageOperation):
(WebCore::MaskImageOperation::isCSSValueNone):
(WebCore::MaskImageOperation::cssValue):
(WebCore::MaskImageOperation::isMaskLoaded):
(WebCore::MaskImageOperation::setRenderLayerImageClient):
(WebCore::MaskImageOperation::addRendererImageClient):
(WebCore::MaskImageOperation::removeRendererImageClient):
(WebCore::MaskImageOperation::getOrCreateCachedSVGDocumentReference):
(WebCore::MaskImageOperation::notifyFinished): This is the method that gets called when the document has finished
downloading and checks if it can find a valid <mask> element.
(WebCore::MaskImageOperation::drawMask):
(WebCore::MaskImageOperation::getSVGMasker):
* platform/graphics/MaskImageOperation.h: Added.
* rendering/RenderBoxModelObject.cpp: The BackgroundImageGeometry class was moved out of RenderBoxModelObject in
order to be used as a parameter for other methods. This was necessary to avoid having methods with very many parameters.
(WebCore::BackgroundImageGeometry::setNoRepeatX):
(WebCore::BackgroundImageGeometry::setNoRepeatY):
(WebCore::BackgroundImageGeometry::useFixedAttachment):
(WebCore::BackgroundImageGeometry::clip):
(WebCore::BackgroundImageGeometry::relativePhase):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatX): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatY): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::useFixedAttachment): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::clip): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::relativePhase): Deleted.
* rendering/RenderBoxModelObject.h:
(WebCore::BackgroundImageGeometry::BackgroundImageGeometry):
(WebCore::BackgroundImageGeometry::destOrigin):
(WebCore::BackgroundImageGeometry::setDestOrigin):
(WebCore::BackgroundImageGeometry::destRect):
(WebCore::BackgroundImageGeometry::setDestRect):
(WebCore::BackgroundImageGeometry::phase):
(WebCore::BackgroundImageGeometry::setPhase):
(WebCore::BackgroundImageGeometry::tileSize):
(WebCore::BackgroundImageGeometry::setTileSize):
(WebCore::BackgroundImageGeometry::spaceSize):
(WebCore::BackgroundImageGeometry::setSpaceSize):
(WebCore::BackgroundImageGeometry::setPhaseX):
(WebCore::BackgroundImageGeometry::setPhaseY):
(WebCore::BackgroundImageGeometry::setHasNonLocalGeometry):
(WebCore::BackgroundImageGeometry::hasNonLocalGeometry):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::BackgroundImageGeometry): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::destOrigin): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestOrigin): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::destRect): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestRect): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::phase): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhase): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::tileSize): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setTileSize): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseX): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseY): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setHasNonLocalGeometry): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::hasNonLocalGeometry): Deleted.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
* rendering/RenderLayer.h:
* rendering/RenderLayerMaskImageInfo.cpp: Added.
(WebCore::RenderLayer::MaskImageInfo::layerToMaskMap): Returns a static map that links MaskImageInfo objects to RenderLayers.
(WebCore::RenderLayer::MaskImageInfo::getIfExists): Returns the MaskImageInfo associated with a specific RenderLayer.
(WebCore::RenderLayer::MaskImageInfo::get): Returns the MaskImageInfo associated with a specific RenderLayer (creates it if necessary).
(WebCore::RenderLayer::MaskImageInfo::remove): Removes the MaskImageInfo associated with a specific RenderLayer.
(WebCore::RenderLayer::MaskImageInfo::MaskImageInfo):
(WebCore::RenderLayer::MaskImageInfo::~MaskImageInfo):
(WebCore::RenderLayer::MaskImageInfo::notifyFinished): Gets called when the SVG document finished loading, triggers repaint.
(WebCore::RenderLayer::MaskImageInfo::imageChanged): Gets called when the image object changed, triggers repaint.
(WebCore::RenderLayer::MaskImageInfo::updateMaskImageClients): Goes through all mask layers and sets image/SVG clients.
Updates list of internal and external SVG references.
(WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients): Removes all image/SVG clients and clears lists of internal and external SVG references.
* rendering/RenderLayerMaskImageInfo.h: Added.
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderSVGResourceMasker):
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator==):
(WebCore::FillLayer::cullEmptyLayers):
(WebCore::FillLayer::hasNonEmptyMaskImage):
(WebCore::FillLayer::imagesAreLoaded):
* rendering/style/FillLayer.h:
(WebCore::FillLayer::maskImage):
(WebCore::FillLayer::imageOrMaskImage):
(WebCore::FillLayer::setMaskImage):
(WebCore::FillLayer::clearMaskImage):
(WebCore::FillLayer::hasMaskImage):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applySVGMask):
(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawMaskForRenderer):
* rendering/svg/RenderSVGResourceMasker.h:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::createElementRenderer):
(WebCore::SVGMaskElement::addClientRenderLayer):
(WebCore::SVGMaskElement::removeClientRenderLayer):
* svg/SVGMaskElement.h:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::setCachedDocument):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdd a way to delete local storage origins modified after a given date
andersca@apple.com [Thu, 4 Dec 2014 16:35:29 +0000 (16:35 +0000)]
Add a way to delete local storage origins modified after a given date
https://bugs.webkit.org/show_bug.cgi?id=139249

Reviewed by Tim Horton.

Also change LocalStorageDatabaseTracker to hold on to WTF::Optional time_t values
instead of treating missing values as zero.

* UIProcess/LocalStorageDetails.h:
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::fileCreationTime):
(WebKit::fileModificationTime):
(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::details):
* UIProcess/Storage/LocalStorageDatabaseTracker.h:
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::didGetStorageDetailsByOrigin):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176794 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r176789.
commit-queue@webkit.org [Thu, 4 Dec 2014 14:09:57 +0000 (14:09 +0000)]
Unreviewed, rolling out r176789.
https://bugs.webkit.org/show_bug.cgi?id=139255

Broke the non Mac-WK2 builds (Requested by stavila on
#webkit).

Reverted changeset:

"Remove isSpecifiedFont boolean from FontDescription"
https://bugs.webkit.org/show_bug.cgi?id=139233
http://trac.webkit.org/changeset/176789

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176790 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove isSpecifiedFont boolean from FontDescription
antti@apple.com [Thu, 4 Dec 2014 11:50:26 +0000 (11:50 +0000)]
Remove isSpecifiedFont boolean from FontDescription
https://bugs.webkit.org/show_bug.cgi?id=139233

Reviewed by Andreas Kling.

It is barely used.

* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyInheritFontFamily):
(WebCore::StyleBuilderCustom::applyValueFontFamily):
* platform/graphics/FontDescription.cpp:
(WebCore::genericFamiliesSet):
(WebCore::FontDescription::hasGenericFirstFamily):

    Add a function to test for generic families.

* platform/graphics/FontDescription.h:
(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::setTextRenderingMode):
(WebCore::FontDescription::operator==):
(WebCore::FontDescription::isSpecifiedFont): Deleted.
(WebCore::FontDescription::setIsSpecifiedFont): Deleted.
* rendering/RenderText.cpp:
(WebCore::RenderText::computeUseBackslashAsYenSymbol):

    This is the only client.
    Figure out the equivalent information dynamically if needed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[EFL][WebGL] Remove junk webgl layout tests from TestExpectations
evab.u-szeged@partner.samsung.com [Thu, 4 Dec 2014 10:18:31 +0000 (10:18 +0000)]
[EFL][WebGL] Remove junk webgl layout tests from TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=139253

Reviewed by Gyuyoung Kim.

* platform/efl/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176788 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agocan not find cairo-gl.h when build webkit with gtk on ubuntu 14.04
berto@igalia.com [Thu, 4 Dec 2014 10:10:36 +0000 (10:10 +0000)]
can not find cairo-gl.h when build webkit with gtk on ubuntu 14.04
https://bugs.webkit.org/show_bug.cgi?id=136576

Reviewed by Carlos Garcia Campos.

CMake should complain if Accelerated 2D Canvas is explicitly
enabled but cairo-gl is not found.

* Source/cmake/OptionsGTK.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[EFL][WK2] Add ewk API to allow accepting a specific TLS certificate for a specific...
pmolnar.u-szeged@partner.samsung.com [Thu, 4 Dec 2014 09:23:28 +0000 (09:23 +0000)]
[EFL][WK2] Add ewk API to allow accepting a specific TLS certificate for a specific host
https://bugs.webkit.org/show_bug.cgi?id=131160

Reviewed by Gyuyoung Kim.

* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::allowSpecificHTTPSCertificateForHost):
(ewk_context_tls_certificate_for_host_allow):
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/ewk_context_private.h:
* UIProcess/API/efl/tests/test_ewk2_ssl.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdd a sample plugin to demonstrate the mute plugin API.
adachan@apple.com [Thu, 4 Dec 2014 06:42:38 +0000 (06:42 +0000)]
Add a sample plugin to demonstrate the mute plugin API.
https://bugs.webkit.org/show_bug.cgi?id=139231

Reviewed by Anders Carlsson.

* NetscapeMuteAPIPlugin/AudioPlayer.h: Added.
* NetscapeMuteAPIPlugin/AudioPlayer.mm: Added.
(-[AudioPlayer initWithURL:]):
(-[AudioPlayer dealloc]):
(-[AudioPlayer isReadyToPlay]):
(-[AudioPlayer isPlaying]):
(-[AudioPlayer setPlaying:]):
(-[AudioPlayer isMuted]):
(-[AudioPlayer setMuted:]):
(-[AudioPlayer observeValueForKeyPath:ofObject:change:context:]):
* NetscapeMuteAPIPlugin/English.lproj/InfoPlist.strings: Added.
* NetscapeMuteAPIPlugin/Info.plist: Added.
* NetscapeMuteAPIPlugin/MenuHandler.h: Added.
* NetscapeMuteAPIPlugin/MenuHandler.m: Added.
(-[MenuHandler _play:]):
(-[MenuHandler _pause:]):
(-[MenuHandler validateUserInterfaceItem:]):
(-[MenuHandler initWithAudioPlayer:]):
(-[MenuHandler dealloc]):
(-[MenuHandler menu]):
* NetscapeMuteAPIPlugin/NetscapeMuteAPIPlugin.xcodeproj/project.pbxproj: Added.
* NetscapeMuteAPIPlugin/main.m: Added.
(-[PluginObject initWithNPP:audioURL:]):
(-[PluginObject dealloc]):
(-[PluginObject menuHandler]):
(-[PluginObject isPlayingAudio]):
(-[PluginObject isMuted]):
(-[PluginObject setMuted:]):
(-[PluginObject readyStateDidChangeForAudioPlayer:]):
(-[PluginObject mutedStateDidChangeForAudioPlayer:]):
(-[PluginObject playStateDidChangeForAudioPlayer:]):
(-[PluginObject _invalidateDisplayString]):
(NP_Initialize):
(NP_GetEntryPoints):
(NP_Shutdown):
(NPP_New):
(NPP_Destroy):
(NPP_SetWindow):
(NPP_NewStream):
(NPP_DestroyStream):
(NPP_WriteReady):
(NPP_Write):
(NPP_StreamAsFile):
(NPP_Print):
(handleDraw):
(invalidatePlugin):
(handleMouseEvent):
(NPP_HandleEvent):
(NPP_URLNotify):
(NPP_GetValue):
(NPP_SetValue):
* NetscapeMuteAPIPlugin/test.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUse std::unique_ptr instead of PassOwnPtr|OwnPtr for Pasteboard
commit-queue@webkit.org [Thu, 4 Dec 2014 03:02:57 +0000 (03:02 +0000)]
Use std::unique_ptr instead of PassOwnPtr|OwnPtr for Pasteboard
https://bugs.webkit.org/show_bug.cgi?id=139019

Patch by Joonghun Park <jh718.park@samsung.com> on 2014-12-03
Reviewed by Darin Adler.

No new tests, no behavior changes.

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::DataTransfer):
* dom/DataTransfer.h:
* editing/Editor.cpp:
(WebCore::Editor::dispatchCPPEvent):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::createDraggingDataTransfer):
* platform/Pasteboard.h:
* platform/efl/PasteboardEfl.cpp:
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createPrivate):
(WebCore::Pasteboard::createForDragAndDrop):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForGlobalSelection):
(WebCore::Pasteboard::createPrivate):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create): Deleted.
* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createPrivate):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createPrivate):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create): Deleted.
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createPrivate):
(WebCore::Pasteboard::createForDragAndDrop):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176780 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove JavaScriptCore/dfg to std::unique_ptr
gyuyoung.kim@samsung.com [Thu, 4 Dec 2014 02:52:51 +0000 (02:52 +0000)]
Move JavaScriptCore/dfg to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=139169

Reviewed by Filip Pizlo.

Use std::unique_ptr<>|std::make_unique<> in JavaScriptCore/dfg directory.

* dfg/DFGBasicBlock.h:
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::JITCompiler):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compileFunction):
(JSC::DFG::JITCompiler::linkFunction):
* dfg/DFGJITCompiler.h:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::cancel):
* dfg/DFGPlan.h:
* dfg/DFGSlowPathGenerator.h:
* dfg/DFGWorklist.h:
* ftl/FTLFail.cpp:
(JSC::FTL::fail):
* ftl/FTLState.cpp:
(JSC::FTL::State::State):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176779 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Some webgl conformance tests crash.
roger_fong@apple.com [Thu, 4 Dec 2014 02:43:19 +0000 (02:43 +0000)]
Unreviewed. Some webgl conformance tests crash.
<rdar://problem/19136723>
* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176778 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoImplement action menus for tel: URLs
timothy_horton@apple.com [Thu, 4 Dec 2014 02:32:40 +0000 (02:32 +0000)]
Implement action menus for tel: URLs
https://bugs.webkit.org/show_bug.cgi?id=139240
<rdar://problem/19115662>

Reviewed by Anders Carlsson.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForDataDetectableLink]):
Make sure to use the newly created currentActionContext... everywhere.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176777 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Add 1.0.3 conformance tests. Remove unused webgl test resource files.
roger_fong@apple.com [Thu, 4 Dec 2014 02:32:40 +0000 (02:32 +0000)]
Unreviewed. Add 1.0.3 conformance tests. Remove unused webgl test resource files.
* platform/mac/TestExpectations: Skipping 1.0.3 tests until we are at least somewhat conformant.
* webgl/1.0.3: Added.
* webgl/resources/webgl_test_files: Removed

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoImplement action menus for tel: URLs
timothy_horton@apple.com [Thu, 4 Dec 2014 02:28:57 +0000 (02:28 +0000)]
Implement action menus for tel: URLs
https://bugs.webkit.org/show_bug.cgi?id=139240
<rdar://problem/19115662>

Reviewed by Anders Carlsson.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForDataDetectableLink]):
Make sure to use the newly created currentActionContext.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176775 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoGet rid of FrameLoaderClient::dispatchWillRequestResource
benjamin@webkit.org [Thu, 4 Dec 2014 02:06:38 +0000 (02:06 +0000)]
Get rid of FrameLoaderClient::dispatchWillRequestResource
https://bugs.webkit.org/show_bug.cgi?id=139235

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-12-03
Reviewed by Alexey Proskuryakov.

It is useless.

* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::dispatchWillRequestResource): Deleted.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176772 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION (r176479): DFG ASSERTION beneath emitOSRExitCall running Kraken/imaging...
msaboff@apple.com [Thu, 4 Dec 2014 01:59:40 +0000 (01:59 +0000)]
REGRESSION (r176479): DFG ASSERTION beneath emitOSRExitCall running Kraken/imaging-gaussian-blur.js.ftl-no-cjit-osr-validation and other tests
https://bugs.webkit.org/show_bug.cgi?id=139246

Reviewed by Geoffrey Garen.

* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::buildExitArguments):
The DFG_ASSERT that checks liveness at exit time doesn't properly
handle the case where the local is not available at OSR exit time,
but the local is live in the bytecode.  This now happens with the
allocated scope register when we are compiling for FTLForOSREntryMode
due to DCE done when the control flow was changed and a new entrypoint
was added in the OSR entrypoint creation phase.  Therefore we silence
the assert when compiling for FTLForOSREntryMode.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: Missing getter, clients never see DragToAdjustController is enabled
commit-queue@webkit.org [Thu, 4 Dec 2014 01:40:21 +0000 (01:40 +0000)]
Web Inspector: Missing getter, clients never see DragToAdjustController is enabled
https://bugs.webkit.org/show_bug.cgi?id=139228

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-12-03
Reviewed by Simon Fraser.

* UserInterface/Controllers/DragToAdjustController.js:
(WebInspector.DragToAdjustController.prototype.get enabled):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176770 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r176457.
commit-queue@webkit.org [Thu, 4 Dec 2014 01:31:37 +0000 (01:31 +0000)]
Unreviewed, rolling out r176457.
https://bugs.webkit.org/show_bug.cgi?id=139247

More iOS breakage (Requested by andersca on #webkit).

Reverted changeset:

"Fix iOS build."
http://trac.webkit.org/changeset/176457

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176769 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoList markers in RTL languages do not draw the first character.
mmaxfield@apple.com [Thu, 4 Dec 2014 01:30:07 +0000 (01:30 +0000)]
List markers in RTL languages do not draw the first character.
https://bugs.webkit.org/show_bug.cgi?id=139244

Reviewed by Simon Fraser.

Source/WebCore:

Off-by-one error when reversing the string (from LTR to RTL)

Test: fast/lists/rtl-marker.html

* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):

LayoutTests:

* fast/lists/rtl-marker-expected.html: Added.
* fast/lists/rtl-marker.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176768 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago<input> elements get whitespace action menu instead of editable text menu
bdakin@apple.com [Thu, 4 Dec 2014 01:06:52 +0000 (01:06 +0000)]
<input> elements get whitespace action menu instead of editable text menu
https://bugs.webkit.org/show_bug.cgi?id=139241
-and corresponding-
rdar://problem/19072083

Reviewed by Sam Weinig.

Source/WebCore:

Since we will hit test form controls as form controls, we need a new function to
determine if the hit point is over text inside that form control or not.
* WebCore.exp.in:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::isOverTextInsideFormControlElement):
* rendering/HitTestResult.h:

Source/WebKit/mac:

We should disallow shadow content in the hit test. This is the default and it is
how context menus behave. We originally wanted to text inside shadow content so
that we could find the text, but the new function I added to HitTestResult will
allow that.
* WebView/WebActionMenuController.mm:
(-[WebActionMenuController performHitTestAtPoint:]):

Adjust to the fact that we don’t hit test shadow content any more.
(-[WebActionMenuController focusAndSelectHitTestResult]):

Offer the text menus for text inside form controls.
(-[WebActionMenuController _defaultMenuItems]):

Source/WebKit2:

Add isOverTextInsideFormControlElement to WebHitTestResult.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
* Shared/WebHitTestResult.h:
(WebKit::WebHitTestResult::isOverTextInsideFormControlElement):

Offer the text menus for text inside form controls.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItems]):

We should disallow shadow content in the hit test. This is the default and it is
how context menus behave. We originally wanted to text inside shadow content so
that we could find the text, but the new function I added to HitTestResult will
allow that.
* WebProcess/WebPage/mac/WebPageMac.mm:

Adjust to the fact that we don’t hit test shadow content any more.
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::lookupTextAtLocation):
(WebKit::WebPage::focusAndSelectLastActionMenuHitTestResult):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r176489.
commit-queue@webkit.org [Thu, 4 Dec 2014 00:51:02 +0000 (00:51 +0000)]
Unreviewed, rolling out r176489.
https://bugs.webkit.org/show_bug.cgi?id=139242

More iOS breakage (Requested by andersca on #webkit).

Reverted changeset:

"Unreviewed, iOS build fix after r176452."
http://trac.webkit.org/changeset/176489

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoImplement action menus for tel: URLs
timothy_horton@apple.com [Thu, 4 Dec 2014 00:33:07 +0000 (00:33 +0000)]
Implement action menus for tel: URLs
https://bugs.webkit.org/show_bug.cgi?id=139240
<rdar://problem/19115662>

Reviewed by Anders Carlsson.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForDataDetectableLink]):
Rename this function as it will work for both mailto and tel URLs.
Adjust it to use contextForView:.

(-[WebActionMenuController webView:willHandleMouseDown:]):
(-[WebActionMenuController prepareForMenu:withEvent:]):
(-[WebActionMenuController didCloseMenu:withEvent:]):
(-[WebActionMenuController _defaultMenuItems]):
Don't check the menu type when going to interact with _currentActionContext.
We'll only have a _currentActionContext if we have a data detected item,
and there are multiple menu types that end up using DDActionContext.

* WebView/WebUIDelegatePrivate.h:
Add a new type.

* Shared/API/c/WKActionMenuTypes.h:
Add a new type.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
Rename this function as it will work for both mailto and tel URLs.
Adjust it to use contextForView:.

(-[WKActionMenuController _clearActionMenuState]):
(-[WKActionMenuController menuNeedsUpdate:]):
(-[WKActionMenuController _defaultMenuItems]):
Don't check the menu type when going to interact with _currentActionContext.
We'll only have a _currentActionContext if we have a data detected item,
and there are multiple menu types that end up using DDActionContext.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176763 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r176452 and r176559.
andersca@apple.com [Thu, 4 Dec 2014 00:16:38 +0000 (00:16 +0000)]
Unreviewed, rolling out r176452 and r176559.
https://bugs.webkit.org/show_bug.cgi?id=139239

Broke iOS (Requested by andersca on #webkit).

Reverted changesets:

"Remove alignment code from IPC coders"
https://bugs.webkit.org/show_bug.cgi?id=138963
http://trac.webkit.org/changeset/176452

"[WK2] SecComp buildfix after r176452"
https://bugs.webkit.org/show_bug.cgi?id=139081
http://trac.webkit.org/changeset/176559

Patch by Commit Queue <commit-queue@webkit.org> on 2014-12-03

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176762 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed gardening.
cdumez@apple.com [Thu, 4 Dec 2014 00:00:30 +0000 (00:00 +0000)]
Unreviewed gardening.

Land expected result for fast/dom/timer-throttle-on-scrolling-iframe-away.html
that was missing in r176729.

* fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176761 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Remove 1.0.1 and experimental 1.0.3 WebGL conformance tests to make way...
roger_fong@apple.com [Wed, 3 Dec 2014 23:53:30 +0000 (23:53 +0000)]
Unreviewed. Remove 1.0.1 and experimental 1.0.3 WebGL conformance tests to make way for official 1.0.3 tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176759 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/misc/authentication-redirect tests use the same authentication realm
ap@apple.com [Wed, 3 Dec 2014 23:39:41 +0000 (23:39 +0000)]
http/tests/misc/authentication-redirect tests use the same authentication realm
https://bugs.webkit.org/show_bug.cgi?id=139225

Land custom results for WebKit2, because the format of output is different there.

* platform/wk2/http/tests/misc/authentication-redirect-3: Added.
* platform/wk2/http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt: Copied from LayoutTests/http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176757 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemoved the global parser arena
ggaren@apple.com [Wed, 3 Dec 2014 23:23:56 +0000 (23:23 +0000)]
Removed the global parser arena
https://bugs.webkit.org/show_bug.cgi?id=139236

Reviewed by Sam Weinig.

Simplifies parser lifetime logic.

There's no need to keep a global arena. We can create a new arena
each time we parse.

* bytecompiler/BytecodeGenerator.h: Global replace to pass around a
ParserArena instead of VM*, since the VM no longer owns the arena.
(JSC::BytecodeGenerator::parserArena):

* bytecompiler/NodesCodegen.cpp: Ditto.
(JSC::ArrayNode::toArgumentList):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
* parser/ASTBuilder.h: Ditto.
(JSC::ASTBuilder::ASTBuilder):
(JSC::ASTBuilder::createSourceElements):
(JSC::ASTBuilder::createCommaExpr):
(JSC::ASTBuilder::createLogicalNot):
(JSC::ASTBuilder::createUnaryPlus):
(JSC::ASTBuilder::createVoid):
(JSC::ASTBuilder::thisExpr):
(JSC::ASTBuilder::createResolve):
(JSC::ASTBuilder::createObjectLiteral):
(JSC::ASTBuilder::createArray):
(JSC::ASTBuilder::createNumberExpr):
(JSC::ASTBuilder::createString):
(JSC::ASTBuilder::createBoolean):
(JSC::ASTBuilder::createNull):
(JSC::ASTBuilder::createBracketAccess):
(JSC::ASTBuilder::createDotAccess):
(JSC::ASTBuilder::createSpreadExpression):
(JSC::ASTBuilder::createRegExp):
(JSC::ASTBuilder::createNewExpr):
(JSC::ASTBuilder::createConditionalExpr):
(JSC::ASTBuilder::createAssignResolve):
(JSC::ASTBuilder::createFunctionExpr):
(JSC::ASTBuilder::createFunctionBody):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createArguments):
(JSC::ASTBuilder::createArgumentsList):
(JSC::ASTBuilder::createProperty):
(JSC::ASTBuilder::createPropertyList):
(JSC::ASTBuilder::createElementList):
(JSC::ASTBuilder::createFormalParameterList):
(JSC::ASTBuilder::createClause):
(JSC::ASTBuilder::createClauseList):
(JSC::ASTBuilder::createFuncDeclStatement):
(JSC::ASTBuilder::createBlockStatement):
(JSC::ASTBuilder::createExprStatement):
(JSC::ASTBuilder::createIfStatement):
(JSC::ASTBuilder::createForLoop):
(JSC::ASTBuilder::createForInLoop):
(JSC::ASTBuilder::createForOfLoop):
(JSC::ASTBuilder::createEmptyStatement):
(JSC::ASTBuilder::createVarStatement):
(JSC::ASTBuilder::createEmptyVarExpression):
(JSC::ASTBuilder::createReturnStatement):
(JSC::ASTBuilder::createBreakStatement):
(JSC::ASTBuilder::createContinueStatement):
(JSC::ASTBuilder::createTryStatement):
(JSC::ASTBuilder::createSwitchStatement):
(JSC::ASTBuilder::createWhileStatement):
(JSC::ASTBuilder::createDoWhileStatement):
(JSC::ASTBuilder::createLabelStatement):
(JSC::ASTBuilder::createWithStatement):
(JSC::ASTBuilder::createThrowStatement):
(JSC::ASTBuilder::createDebugger):
(JSC::ASTBuilder::createConstStatement):
(JSC::ASTBuilder::appendConstDecl):
(JSC::ASTBuilder::combineCommaNodes):
(JSC::ASTBuilder::createDeconstructingAssignment):
(JSC::ASTBuilder::Scope::Scope):
(JSC::ASTBuilder::createNumber):
(JSC::ASTBuilder::makeTypeOfNode):
(JSC::ASTBuilder::makeDeleteNode):
(JSC::ASTBuilder::makeNegateNode):
(JSC::ASTBuilder::makeBitwiseNotNode):
(JSC::ASTBuilder::makeMultNode):
(JSC::ASTBuilder::makeDivNode):
(JSC::ASTBuilder::makeModNode):
(JSC::ASTBuilder::makeAddNode):
(JSC::ASTBuilder::makeSubNode):
(JSC::ASTBuilder::makeLeftShiftNode):
(JSC::ASTBuilder::makeRightShiftNode):
(JSC::ASTBuilder::makeURightShiftNode):
(JSC::ASTBuilder::makeBitOrNode):
(JSC::ASTBuilder::makeBitAndNode):
(JSC::ASTBuilder::makeBitXOrNode):
(JSC::ASTBuilder::makeFunctionCallNode):
(JSC::ASTBuilder::makeBinaryNode):
(JSC::ASTBuilder::makeAssignNode):
(JSC::ASTBuilder::makePrefixNode):
(JSC::ASTBuilder::makePostfixNode):

* parser/NodeConstructors.h: Ditto.
(JSC::ParserArenaFreeable::operator new):
(JSC::ParserArenaDeletable::operator new):
(JSC::ParserArenaRefCounted::ParserArenaRefCounted):

* parser/Nodes.cpp: Ditto.
(JSC::ScopeNode::ScopeNode):
(JSC::ProgramNode::ProgramNode):
(JSC::ProgramNode::create):
(JSC::EvalNode::EvalNode):
(JSC::EvalNode::create):
(JSC::FunctionBodyNode::FunctionBodyNode):
(JSC::FunctionBodyNode::create):

* parser/Nodes.h: Ditto.
(JSC::ScopeNode::parserArena):

* parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseProperty): The parser now owns its own
arena, and transfers ownership of its contents when invoking the ScopeNode
constructor.

* parser/Parser.h:
(JSC::Parser<LexerType>::parse): No need to explicitly reset the arena,
since its lifetime is tied to the parser's lifetime now.

* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createProperty):
(JSC::SyntaxChecker::createGetterOrSetterProperty):

* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h: The point of the patch: no more global.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176756 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSet a visited link store when creating a simple WebView
andersca@apple.com [Wed, 3 Dec 2014 23:01:36 +0000 (23:01 +0000)]
Set a visited link store when creating a simple WebView
https://bugs.webkit.org/show_bug.cgi?id=139234
<rdar://problem/19132978>

Reviewed by Sam Weinig.

* WebView/WebView.mm:
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176755 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoThe parser should allocate all pieces of the AST
ggaren@apple.com [Wed, 3 Dec 2014 21:54:53 +0000 (21:54 +0000)]
The parser should allocate all pieces of the AST
https://bugs.webkit.org/show_bug.cgi?id=139230

Reviewed by Oliver Hunt.

This is a step toward a 14% parsing speedup.

Previously, allocation was split between the parser and certain node
constructor functions. This made for some duplicated code and circular
dependencies.

* parser/ASTBuilder.h:
(JSC::ASTBuilder::createGetterOrSetterProperty): No need to pass through
the VM, since our callee no longer needs to allocate anything.

(JSC::ASTBuilder::createProperty): Allocate the identifier for our
callee, since that is simpler than requiring our callee to notice that
we didn't do so, and do it for us.

(JSC::ASTBuilder::createForInLoop): Allocate the DeconstructingAssignmentNode
for our callee, since that is simpler than requiring our callee to notice
that we didn't do so, and do it for us.

Also, reuse some code instead of duplicating it.

(JSC::ASTBuilder::createForOfLoop): Ditto.

(JSC::ASTBuilder::createArrayPattern):
(JSC::ASTBuilder::createObjectPattern):
(JSC::ASTBuilder::createBindingLocation): No need to pass through a VM
pointer, since our callee no longer needs to allocate anything.

(JSC::ASTBuilder::createBreakStatement): Deleted.
(JSC::ASTBuilder::createContinueStatement): Deleted.

* parser/NodeConstructors.h:
(JSC::PropertyNode::PropertyNode):
(JSC::DeconstructionPatternNode::DeconstructionPatternNode):
(JSC::ArrayPatternNode::ArrayPatternNode):
(JSC::ArrayPatternNode::create):
(JSC::ObjectPatternNode::ObjectPatternNode):
(JSC::ObjectPatternNode::create):
(JSC::BindingNode::create):
(JSC::BindingNode::BindingNode):
(JSC::ContinueNode::ContinueNode): Deleted.
(JSC::BreakNode::BreakNode): Deleted.
(JSC::EnumerationNode::EnumerationNode): Deleted.
(JSC::ForInNode::ForInNode): Deleted.
(JSC::ForOfNode::ForOfNode): Deleted. Deleted a bunch of special cases
that don't exist anymore, now that the parser allocates all pieces of
the AST unconditionally.

* parser/Nodes.h: Ditto.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseBreakStatement):
(JSC::Parser<LexerType>::parseContinueStatement): Allocate the null
identifier for our callee, since that is simpler than requiring our
callee to notice that we didn't do so, and do it for us.

(JSC::Parser<LexerType>::parseProperty):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createProperty): No need to pass through a VM
pointer, since our callee no longer needs to allocate anything.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176754 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoKeyboard input should be disabled in the preview popover
timothy_horton@apple.com [Wed, 3 Dec 2014 21:53:36 +0000 (21:53 +0000)]
Keyboard input should be disabled in the preview popover
https://bugs.webkit.org/show_bug.cgi?id=139219
<rdar://problem/19052381>

Reviewed by Anders Carlsson.

Make sure that keyboard input, Quick Look, etc. are blocked in preview popovers
and WKThumbnailViews. Also block the fake mouseMove events that originate in
the Web process upon scrolling, because we were missing those despite blocking
ordinary mouseMove events.

* page/ChromeClient.h:
(WebCore::ChromeClient::shouldDispatchFakeMouseMoveEvents):
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
Allow ChromeClient to disable the dispatch of "fake" mouseMove events
that happens during scrolling.

* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
Rename _ignoresNonWheelMouseEvents to _ignoresNonWheelEvents, because it will
apply not only to mouse events but also key events, Quick Look events, menu
preparation events, swipe events, etc.

Add _ignoresAllEvents, which means the same thing as _ignoresNonWheelEvents
with the addition of ignoring scrollWheel events.

(-[WKView scrollWheel:]):
(-[WKView swipeWithEvent:]):
(-[WKView mouseMoved:]):
(-[WKView mouseDown:]):
(-[WKView mouseUp:]):
(-[WKView mouseDragged:]):
Adjust to the new name.

(-[WKView performKeyEquivalent:]):
(-[WKView keyUp:]):
(-[WKView keyDown:]):
(-[WKView flagsChanged:]):
(-[WKView quickLookWithEvent:]):
(-[WKView prepareForMenu:withEvent:]):
(-[WKView willOpenMenu:withEvent:]):
(-[WKView didCloseMenu:withEvent:]):
Block all of these events as well as those we were previously blocking.

(-[WKView _setIgnoresAllEvents:]):
(-[WKView _setIgnoresNonWheelMouseEvents:]):
(-[WKView _setIgnoresNonWheelEvents:]):
(-[WKView _ignoresNonWheelEvents]):
(-[WKView _ignoresAllEvents]):
* UIProcess/API/mac/WKViewInternal.h:
Adjust to the new names and the addition of ignoresAllEvents.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKPagePreviewViewController loadView]):
Adjust to the new name.

(-[WKActionMenuController prepareForMenu:withEvent:]):
Move bailing from prepareForMenu: up to WKView.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _ignoresNonWheelMouseEvents]): Deleted.
(-[WKWebView _setIgnoresNonWheelMouseEvents:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
Adjust to the new name (without "mouse" in it).

* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _viewWasUnparented]):
(-[_WKThumbnailView _viewWasParented]):
Explicitly tell WKView to disable event handling while thumbnailed,
instead of having WKView special-case thumbnail views internally.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents):
* UIProcess/WebPageProxy.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::shouldDispatchFakeMouseMoveEvents):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::shouldDispatchFakeMouseMoveEvents):
(WebKit::WebPage::setShouldDispatchFakeMouseMoveEvents):
* WebProcess/WebPage/WebPage.messages.in:
Plumb shouldDispatchFakeMouseMoveEvents from the UI process to the Web process
and through to WebKit2's ChromeClient implementation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176753 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/misc/authentication-redirect tests use the same authentication realm
ap@apple.com [Wed, 3 Dec 2014 21:45:34 +0000 (21:45 +0000)]
http/tests/misc/authentication-redirect tests use the same authentication realm
https://bugs.webkit.org/show_bug.cgi?id=139225

Reviewed by Tim Horton.

* http/tests/misc/authentication-redirect-1/resources/auth-then-redirect.php:
* http/tests/misc/authentication-redirect-2/resources/auth-then-redirect.php:
* http/tests/misc/authentication-redirect-3/resources/auth-then-redirect-with-url-credentials.php:
* http/tests/misc/authentication-redirect-3/resources/auth-then-redirect.php:
Use different realms.

* http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt:
This test's results no longer depend on previous tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176752 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove genericFamily enum from FontDescription
antti@apple.com [Wed, 3 Dec 2014 21:01:36 +0000 (21:01 +0000)]
Remove genericFamily enum from FontDescription
https://bugs.webkit.org/show_bug.cgi?id=139207

Reviewed by Andreas Kling.

We use predefined AtomicStrings for generic families. The side enum adds no information.

* css/CSSFontSelector.cpp:
(WebCore::resolveGenericFamily):
(WebCore::CSSFontSelector::getFontData):

    Match the existing quirk where the default font can be replaced by @font-face rule but user generic families can't.

(WebCore::CSSFontSelector::resolvesFamilyFor):
(WebCore::fontDataForGenericFamily): Deleted.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyFontFamily::applyInheritValue):
(WebCore::ApplyPropertyFontFamily::applyInitialValue):
(WebCore::ApplyPropertyFontFamily::applyValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::checkForGenericFamilyChange):

    Remove the explicit monospace check, earlier useFixedDefaultSize check is equivalent.

(WebCore::StyleResolver::initializeFontStyle):
* platform/graphics/FontDescription.h:
(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::useFixedDefaultSize):
(WebCore::FontDescription::setWeight):
(WebCore::FontDescription::equalForTextAutoSizing):
(WebCore::FontDescription::operator==):
(WebCore::FontDescription::genericFamily): Deleted.
(WebCore::FontDescription::setGenericFamily): Deleted.
* platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::controlFont):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):

    Reset the lineheight unconditionally for buttons.
    This always happened before because the explicitly set generic family made the font compare false.

* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::systemFont):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::systemFont):
(WebCore::RenderThemeMac::setFontFromControlSize):
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):

    Resolve document style for final value immediately as it can't be affected by @font-face rules.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176751 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoASSERTION: RenderMultiColumnFlowThread::processPossibleSpannerDescendant() when colum...
zalan@apple.com [Wed, 3 Dec 2014 20:53:49 +0000 (20:53 +0000)]
ASSERTION: RenderMultiColumnFlowThread::processPossibleSpannerDescendant() when column spanner's parent is not a RenderBlockFlow.
https://bugs.webkit.org/show_bug.cgi?id=139188
rdar://problem/18502182

Reviewed by David Hyatt.

This patch ensures that the validation check for spanner in isValidColumnSpanner() is in synch
with the expectation in RenderMultiColumnFlowThread::processPossibleSpannerDescendant().
(descendant's parent is expected to be a RenderBlockFlow)

Source/WebCore:

Test: fast/multicol/svg-content-as-column-spanner-crash.html

* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::isValidColumnSpanner):

LayoutTests:

* fast/multicol/svg-content-as-column-spanner-crash-expected.txt: Added.
* fast/multicol/svg-content-as-column-spanner-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176750 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[TexMap] Redundant method in GraphicsLayerTextureMapper.
commit-queue@webkit.org [Wed, 3 Dec 2014 20:37:54 +0000 (20:37 +0000)]
[TexMap] Redundant method in GraphicsLayerTextureMapper.
https://bugs.webkit.org/show_bug.cgi?id=138005

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-12-03
Reviewed by Alex Christensen.

The TextureMapperLayer method descendantsOrSelfHaveRunningAnimations() can be used
instead of the GraphicsLayerTextureMapper method startedAnimation().

Source/WebCore:

* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::addAnimation):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:

Source/WebKit/win:

* WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::startedAnimation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176748 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove ENABLE_UI_PROCESS_STORAGE define, it's always 1.
andersca@apple.com [Wed, 3 Dec 2014 20:30:18 +0000 (20:30 +0000)]
Remove ENABLE_UI_PROCESS_STORAGE define, it's always 1.

Rubber-stamped by Beth Dakin.

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::localStorageNamespace):
(WebKit::WebPlatformStrategies::transientLocalStorageNamespace):
(WebKit::WebPlatformStrategies::sessionStorageNamespace):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176739 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSubtitle menu should only appear when useful.
commit-queue@webkit.org [Wed, 3 Dec 2014 20:03:06 +0000 (20:03 +0000)]
Subtitle menu should only appear when useful.
https://bugs.webkit.org/show_bug.cgi?id=139133

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-12-03
Reviewed by Eric Carlson.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController hasLegibleMediaSelectionOptions]): only enable when there are non default options.
(-[WebAVPlayerController hasAudioMediaSelectionOptions]): only enable when there is more than one option.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176734 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUse an @autoreleasepool instead of NSAutoreleasePool.
andersca@apple.com [Wed, 3 Dec 2014 19:59:27 +0000 (19:59 +0000)]
Use an @autoreleasepool instead of NSAutoreleasePool.

Rubber-stamped by Tim Horton.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176733 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAX: [ATK] Inline text elements with accessible object attributes and/or event handler...
jdiggs@igalia.com [Wed, 3 Dec 2014 19:51:28 +0000 (19:51 +0000)]
AX: [ATK] Inline text elements with accessible object attributes and/or event handlers are not exposed
https://bugs.webkit.org/show_bug.cgi?id=139071

Reviewed by Chris Fleizach.

Source/WebCore:

Adds a new InlineRole accessibility role type for non-focusable inline
elements which have an event handler or attribute suggesting possible
inclusion by the platform. This is mapped to ATK_ROLE_STATIC for GTK and
EFL. On the Mac, it is currently ignored to preserve existing behavior.

Added new test cases to the existing roles-exposed.html test.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsDatetimeAttribute): Added.
* accessibility/AccessibilityObject.h: Added InlineRole.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole): Handle InlineRole.
* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Include InlineRole objects.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore InlineRole objects.
* html/HTMLTagNames.in: Added 'time'.

Tools:

Add string value for ATK_ROLE_STATIC in roleToString.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

LayoutTests:

* accessibility/roles-exposed.html: New test cases added.
* platform/efl/accessibility/roles-exposed-expected.txt: Updated for new test cases.
* platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new test cases.
* platform/mac-mavericks/accessibility/roles-exposed-expected.txt: Updated for new test cases.
* platform/mac-mountainlion/accessibility/roles-exposed-expected.txt: Updated for new test cases.
* platform/mac/accessibility/roles-exposed-expected.txt: Updated for new test cases.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdd layout test for DOM timer throttling in iframe scrolled out of viewport
cdumez@apple.com [Wed, 3 Dec 2014 19:16:52 +0000 (19:16 +0000)]
Add layout test for DOM timer throttling in iframe scrolled out of viewport
https://bugs.webkit.org/show_bug.cgi?id=138884

Reviewed by Andreas Kling.

Add a layout test to test that a repeating DOM timer inside an iframe
get throttled if the iframe is scrolled out of the viewport.

* fast/dom/resources/timer-throttling-iframe.html: Added.
* fast/dom/timer-throttle-on-scrolling-iframe-away.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176729 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION(r176687): Caused webkit2 test assertion failure crashes in WebKit::WebPage...
mitz@apple.com [Wed, 3 Dec 2014 19:08:53 +0000 (19:08 +0000)]
REGRESSION(r176687): Caused webkit2 test assertion failure crashes in WebKit::WebPage::willStartDrag()
https://bugs.webkit.org/show_bug.cgi?id=139224

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mouseEventSyncForTesting): Wait for the UI process to start dragging if
needed before handling the event.

LayoutTests:

* platform/wk2/TestExpectations: Unskip the tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoVersioning.
bshafiei@apple.com [Wed, 3 Dec 2014 18:56:41 +0000 (18:56 +0000)]
Versioning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176727 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoGardening: updating some tests as skips instead of crashes.
mark.lam@apple.com [Wed, 3 Dec 2014 18:33:14 +0000 (18:33 +0000)]
Gardening: updating some tests as skips instead of crashes.
<https://webkit.org/b/139224>

Not reviewed.

* platform/wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176726 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac] Hang when calling -[AVAsset resolvedURL].
jer.noble@apple.com [Wed, 3 Dec 2014 18:01:32 +0000 (18:01 +0000)]
[Mac] Hang when calling -[AVAsset resolvedURL].
https://bugs.webkit.org/show_bug.cgi?id=139223

Reviewed by Eric Carlson.

On a particularly slow-loading site, a call to -[AVAsset resolvedURL] can take an arbitrarily long
time. Treat this AVAsset property similar to other "metadata" properties, and check the load status
of the property before requesting it.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin): Check the load state of -resolvedURL.
(WebCore::MediaPlayerPrivateAVFoundationObjC::resolvedURL): Ditto.
(WebCore::assetMetadataKeyNames): Add @"resolvedURL".

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176725 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[GTK] outdated comment
commit-queue@webkit.org [Wed, 3 Dec 2014 17:55:11 +0000 (17:55 +0000)]
[GTK] outdated comment
https://bugs.webkit.org/show_bug.cgi?id=137801

Patch by Michael Catanzaro <mcatanzaro@igalia.com> on 2014-12-03
Reviewed by Carlos Garcia Campos.

Remove a comment that is no longer correct.

* NetworkProcess/gtk/NetworkProcessMainGtk.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176724 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoGardening: marking some tests as crashes.
mark.lam@apple.com [Wed, 3 Dec 2014 17:50:50 +0000 (17:50 +0000)]
Gardening: marking some tests as crashes.
<https://webkit.org/b/139224>

Not reviewed.

* platform/wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176723 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoURTBF after r176721 to fix ENABLE(CSS_DEVICE_ADAPTATION) build.
ossy@webkit.org [Wed, 3 Dec 2014 15:26:39 +0000 (15:26 +0000)]
URTBF after r176721 to fix ENABLE(CSS_DEVICE_ADAPTATION) build.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseViewportProperty):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176722 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove 'display' CSS property to the new StyleBuilder
cdumez@apple.com [Wed, 3 Dec 2014 14:46:15 +0000 (14:46 +0000)]
Move 'display' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=139218

Reviewed by Antti Koivisto.

Move 'display' CSS property to the new StyleBuilder.

No new tests, no behavior change.

* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyDisplay::isValidDisplayValue): Deleted.
(WebCore::ApplyPropertyDisplay::applyInheritValue): Deleted.
(WebCore::ApplyPropertyDisplay::applyInitialValue): Deleted.
(WebCore::ApplyPropertyDisplay::applyValue): Deleted.
(WebCore::ApplyPropertyDisplay::createHandler): Deleted.
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::isValidDisplayValue):
(WebCore::StyleBuilderCustom::applyInheritDisplay):
(WebCore::StyleBuilderCustom::applyValueDisplay):
* css/makeprop.pl:
Add support for passing multiple values for Custom option, e.g.:
'Custom=Inherit|Value'. This was useful as we did not need custom
code for display's initial value.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176721 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoModernize the CSSParser code
cdumez@apple.com [Wed, 3 Dec 2014 14:21:24 +0000 (14:21 +0000)]
Modernize the CSSParser code
https://bugs.webkit.org/show_bug.cgi?id=139209

Reviewed by Antti Koivisto.

Modernize the CSSParser code by:
- Using more references instead of pointers
- Using nullptr instead of 0

No new tests, no behavior change.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176719 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agocheck-webkit-style is confused by ternary expression inside first member initializer
commit-queue@webkit.org [Wed, 3 Dec 2014 13:32:01 +0000 (13:32 +0000)]
check-webkit-style is confused by ternary expression inside first member initializer
https://bugs.webkit.org/show_bug.cgi?id=136442

Patch by Renato Nagy <rnagy@inf.u-szeged.hu> on 2014-12-03
Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_member_initialization_list):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176718 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[GTK] [JHBuild] gst-plugins-bad fails to build if the GNUStep libraries are installed.
clopez@igalia.com [Wed, 3 Dec 2014 12:20:55 +0000 (12:20 +0000)]
[GTK] [JHBuild] gst-plugins-bad fails to build if the GNUStep libraries are installed.
https://bugs.webkit.org/show_bug.cgi?id=139220

Reviewed by Philippe Normand.

* gtk/jhbuild.modules:
* gtk/patches/gst-plugins-bad-remove-gnustep-support.patch: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176717 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove unused JSC runtime options
ossy@webkit.org [Wed, 3 Dec 2014 11:34:18 +0000 (11:34 +0000)]
Remove unused JSC runtime options
https://bugs.webkit.org/show_bug.cgi?id=133070

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-12-03
Reviewed by Csaba Osztrogonác.

Source/JavaScriptCore:

* runtime/Options.h:

Tools:

* Scripts/run-jsc-stress-tests:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[iOS] REGRESSION (r176622): WebCore fails to link
ddkilzer@apple.com [Wed, 3 Dec 2014 11:12:02 +0000 (11:12 +0000)]
[iOS] REGRESSION (r176622): WebCore fails to link

Speculative fix for the following build failure:

    Ld WebCore
    Undefined symbols for architecture armv7s:
      "__ZN3JSC10IdentifierC1EPNS_9ExecStateERKN3WTF12AtomicStringE", referenced from:
          __ZN7WebCoreL24createAccelerationObjectEPKNS_16DeviceMotionData12AccelerationEPN3JSC9ExecStateE in JSDeviceMotionEventCustom.o

* bindings/js/JSDeviceMotionEventCustom.cpp: Include
<runtime/IdentifierInlines.h> to define missing symbol.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176715 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Media] Audio content shouldn't have fullscreen buttons, even if in a video element
dino@apple.com [Wed, 3 Dec 2014 10:09:06 +0000 (10:09 +0000)]
[Media] Audio content shouldn't have fullscreen buttons, even if in a video element
https://bugs.webkit.org/show_bug.cgi?id=139200
<rdar://problem/18914506>

Reviewed by Eric Carlson.

Source/WebCore:

An audio-only resource, even if loaded into a <video> element, should not
present the fullscreen or optimised fullscreen controls. This includes a
MediaDocument, which is always a <video> element. We can detect this by
examining the length of the videoTracks property as our content loads.

Test: media/audio-as-video-fullscreen.html

* Modules/mediacontrols/mediaControlsApple.js:
(Controller): Initialize a hasVisualMedia to false.
(Controller.prototype.handleReadyStateChange): If we see a videoTrack, hasVisualMedia is now true.
(Controller.prototype.updateFullscreenButtons): Merge the updateFullscreenButton and
updateOptimizedFullscreenButton methods into this single spot, and check for
hasVisualMedia.
(Controller.prototype.updateFullscreenButton): Deleted.
(Controller.prototype.updateOptimizedFullscreenButton): Deleted.

* Modules/mediacontrols/mediaControlsBase.js: Do the same for the other ports.

LayoutTests:

Loads an audio file via the video element and checks if the
fullscreen button is visible.

* media/audio-as-video-fullscreen-expected.txt: Added.
* media/audio-as-video-fullscreen.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMissing support for innerHTML on SVGElement
dino@apple.com [Wed, 3 Dec 2014 10:08:41 +0000 (10:08 +0000)]
Missing support for innerHTML on SVGElement
https://bugs.webkit.org/show_bug.cgi?id=136903

Unreviewed followup from r176630. Minor style nits that I missed in my review.

* dom/Element.h: Remove unnecessary parameter name.
* html/parser/HTMLTreeBuilder.cpp: Whitespace cleanup.
(WebCore::HTMLTreeBuilder::adjustedCurrentStackItem):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[EFL] Add subtle crypto to the build system
evab.u-szeged@partner.samsung.com [Wed, 3 Dec 2014 09:25:10 +0000 (09:25 +0000)]
[EFL] Add subtle crypto to the build system
https://bugs.webkit.org/show_bug.cgi?id=138612

Reviewed by Csaba Osztrogonác.

.:

* Source/cmake/OptionsEfl.cmake:

Source/WebCore:

It is obvious to make Efl use GnuTLS as well,
and since there seems no reason why to separate
Efl and Gtk implementations from each other, I
also propose renaming the gtk directory and file
suffixes to gnutls.

No new tests needed.

* PlatformEfl.cmake:
* PlatformGTK.cmake:
* crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmAES_CBCGtk.cpp.
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
* crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmAES_KWGtk.cpp.
(WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt):
* crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmHMACGtk.cpp.
(WebCore::getGnutlsDigestAlgorithm):
(WebCore::calculateSignature):
(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
* crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSAES_PKCS1_v1_5Gtk.cpp.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
* crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSASSA_PKCS1_v1_5Gtk.cpp.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
* crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSA_OAEPGtk.cpp.
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
* crypto/gnutls/CryptoAlgorithmRegistryGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRegistryGtk.cpp.
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
* crypto/gnutls/CryptoDigestGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoDigestGtk.cpp.
(WebCore::CryptoDigest::CryptoDigest):
(WebCore::CryptoDigest::~CryptoDigest):
(WebCore::CryptoDigest::create):
(WebCore::CryptoDigest::addBytes):
(WebCore::CryptoDigest::computeHash):
* crypto/gnutls/CryptoKeyRSAGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoKeyRSAGtk.cpp.
(WebCore::CryptoKeyRSA::CryptoKeyRSA):
(WebCore::CryptoKeyRSA::create):
(WebCore::CryptoKeyRSA::~CryptoKeyRSA):
(WebCore::CryptoKeyRSA::restrictToHash):
(WebCore::CryptoKeyRSA::isRestrictedToHash):
(WebCore::CryptoKeyRSA::keySizeInBits):
(WebCore::CryptoKeyRSA::buildAlgorithmDescription):
(WebCore::CryptoKeyRSA::exportData):
(WebCore::CryptoKeyRSA::generatePair):
* crypto/gnutls/SerializedCryptoKeyWrapGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/SerializedCryptoKeyWrapGtk.cpp.
(WebCore::getDefaultWebCryptoMasterKey):
(WebCore::wrapSerializedCryptoKey):
(WebCore::unwrapSerializedCryptoKey):
* crypto/keys/CryptoKeyRSA.h:

Tools:

* Scripts/webkitperl/FeatureList.pm:

LayoutTests:

* platform/efl/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176712 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLittle cleanup of the default stylesheet
benjamin@webkit.org [Wed, 3 Dec 2014 06:36:21 +0000 (06:36 +0000)]
Little cleanup of the default stylesheet
https://bugs.webkit.org/show_bug.cgi?id=139168

Reviewed by Antti Koivisto.

Source/WebCore:

The default stylesheet has a lot of historical junk that need cleaning. This patch addresses
only the bits that do not change behaviors and have positive perf and readability impact.

I have limited :matches() to attributes for now. The idea is to only target
simple selectors that are not used for filtering by the collectors.
We should eventually clean up more cases, one thing at a time.

Tests: fast/css/map-tag-default-display.html
       fast/selectors/map-tag-default-display.html

* css/html.css:
(map): Deleted.
map was explicitely setting its display to inline. Remove that since it is the default.

(head): Deleted.
(meta): Deleted.
(title): Deleted.
(link): Deleted.
(style): Deleted.
(script): Deleted.
(div): Deleted.
(layer): Deleted.
(article, aside, footer, header, hgroup, main, nav, section): Deleted.
(address): Deleted.
(head, link, meta, script, style, title):
(address, article, aside, div, footer, header, hgroup, layer, main, nav, section):
Group the standard blocks in a single rule.

(input:matches([type="hidden"], [type="image"], [type="file"])):
(input:matches([type="radio"], [type="checkbox"])):
(input:matches([type="button"], [type="submit"], [type="reset"])):
(input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button):
(input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::-webkit-file-upload-button:active, button:active):
(input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]:active::-webkit-file-upload-button, button:active):
(input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled):
(input:matches([type="checkbox"], [type="radio"]):checked):
(input:matches([type="checkbox"], [type="radio"]):checked:disabled):
(select:matches([size], [multiple], [size][multiple])):
(select:matches([size="0"], [size="1"])):
(input[type="hidden"], input[type="image"], input[type="file"]): Deleted.
(input[type="radio"], input[type="checkbox"]): Deleted.
(input[type="button"], input[type="submit"], input[type="reset"]): Deleted.
(input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button): Deleted.
(input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]::-webkit-file-upload-button:active, button:active): Deleted.
(input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active): Deleted.
(input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled): Deleted.
(input[type="checkbox"]:checked, input[type="radio"]:checked): Deleted.
(input[type="checkbox"]:checked:disabled, input[type="radio"]:checked:disabled): Deleted.
(select[size][multiple]): Deleted.
(select[size="1"]): Deleted.
Group every selector lists that only differentiates complex selectors through attributes
into a simple complex selector with :matches().

LayoutTests:

Test the default display type of <map> since it is not longer explicitely set.

* fast/css/map-tag-default-display-expected.html: Added.
* fast/css/map-tag-default-display.html: Added.
* fast/selectors/map-tag-default-display-expected.txt: Added.
* fast/selectors/map-tag-default-display.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176711 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoNew perf dashboard's chart UI is buggy
rniwa@webkit.org [Wed, 3 Dec 2014 04:17:32 +0000 (04:17 +0000)]
New perf dashboard's chart UI is buggy
https://bugs.webkit.org/show_bug.cgi?id=139214

Reviewed by Chris Dumez.

The bugginess was caused by weird interactions between charts and panes. Rewrote the code to fix it.

Superfluous selectionChanged and domainChanged "event" actions were removed from the interactive chart
component. This is not how Ember.js components should interact to begin with. The component now exposes
selectedPoints and always updates selection instead of sharedSelection.

* public/v2/app.js:
(App.ChartsController.present): Added. We can't call Date.now() in various points in our code as that
would lead to infinite mutual recursions since X-axis domain values wouldn't match up.
(App.ChartsController.updateSharedDomain): This function was completely useless. The overview's start
and end time should be completely determined by "since" and the present time.
(App.ChartsController._startTimeChanged): Ditto.
(App.ChartsController._scheduleQueryStringUpdate):
(App.ChartsController._updateQueryString): Set "zoom" only if it's different from the shared domain.

(App.domainsAreEqual): Moved from InteractiveChartComponent._xDomainsAreSame.

(App.PaneController.actions.createAnalysisTask): Use selectedPoints property set by the chart.
(App.PaneController.actions.overviewDomainChanged): Removed; only needed to call updateSharedDomain.
(App.PaneController.actions.rangeChanged): Removed. _showDetails (renamed to _updateDetails) directly
observes the changes to selectedPoints property as it gets updated by the main chart.
(App.PaneController._overviewSelectionChanged): This was previously a dead code. Now it's used again
with a bug fix. When the overview selection is cleared, we use the same domain in the main chart and
the overview chart.
(App.PaneController._sharedDomainChanged): Fixed a but that it erroneously updates the overview domain
when domain arrays aren't identical. This was causing a subtle race with other logic.
(App.PaneController._sharedZoomChanged): Ditto. Also don't set mainPlotDomain here as any changes to
overviewSelection will automatically propagate to the main plot's domain as they're aliased.
(App.PaneController._currentItemChanged): Merged into _updateDetails (renamed from _showDetails).
(App.PaneController._updateDetails): Previously, this function took points and inspected _hasRange to
see if those two points correspond to a range or a single data point. Rewrote all that logic by
directly observing selectedPoints and currentItem properties instead of taking points and relying on
an instance variable, which was a terrible API.
(App.PaneController._updateCanAnalyze): Use selectedPoints property. Since this property is only set
when the main plot has a selected range, we don't have to check this._hasRange anymore.

(App.InteractiveChartComponent._updateDomain): No longer sends domainChanged "event" action.
(App.InteractiveChartComponent._sharedSelectionChanged): Removed. This is a dead code.
(App.InteractiveChartComponent._updateSelection):
(App.InteractiveChartComponent._xDomainsAreSame): Moved to App.domainsAreEqual.
(App.InteractiveChartComponent._setCurrentSelection): Update the selection only if needed. Also set
selectedPoints property.

(App.AnalysisTaskController._fetchedRuns):
(App.AnalysisTaskController._rootChangedForTestSet):

* public/v2/index.html:
Removed non-functional sharedSelection and superfluous selectionChanged and domainChanged actions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176710 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRolling out r176592, r176603, r176616, and r176705 until build and perf issues are...
mark.lam@apple.com [Wed, 3 Dec 2014 04:14:49 +0000 (04:14 +0000)]
Rolling out r176592, r176603, r176616, and r176705 until build and perf issues are resolved.
https://bugs.webkit.org/show_bug.cgi?id=138821

Not reviewed.

Source/JavaScriptCore:

* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::visitChildren):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitComplexPopScopes):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
* ftl/FTLAbbreviations.h:
(JSC::FTL::mdNode):
(JSC::FTL::buildCall):
* llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
* parser/Parser.h:
(JSC::Scope::Scope):
* runtime/JSArray.cpp:
(JSC::JSArray::setLengthWithArrayStorage):
(JSC::JSArray::sortCompactedVector):
* tools/ProfileTreeNode.h:
(JSC::ProfileTreeNode::dumpInternal):
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::matchCharacterClass):

Source/WebCore:

* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserializeString):
* editing/TextIterator.cpp:
(WebCore::SearchBuffer::isBadMatch):
* page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::buildSelectionHighlight):
* platform/graphics/SegmentedFontData.cpp:
(WebCore::SegmentedFontData::fontDataForCharacter):
(WebCore::SegmentedFontData::containsCharacter):
(WebCore::SegmentedFontData::isLoading):
* platform/graphics/WOFFFileFormat.cpp:
(WebCore::convertWOFFToSfnt):
* platform/graphics/cairo/GradientCairo.cpp:
(WebCore::Gradient::platformGradient):
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::clearFrameBufferCache):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintFillLayers):
* rendering/style/GridResolvedPosition.cpp:
(WebCore::firstNamedGridLineBeforePosition):
(WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
* svg/SVGFontElement.cpp:
(WebCore::kerningForPairOfStringsAndGlyphs):
* svg/SVGPathByteStream.h:
(WebCore::SVGPathByteStream::append):
* xml/XPathNodeSet.h:
(WebCore::XPath::NodeSet::begin):
(WebCore::XPath::NodeSet::end):

Source/WTF:

* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* WTF.xcodeproj/project.pbxproj:
* wtf/IndexedIterator.h: Removed.
* wtf/RefCountedArray.h:
(WTF::RefCountedArray::RefCountedArray):
* wtf/Vector.h:
(WTF::Vector::Vector):
(WTF::Vector::begin):
(WTF::Vector::end):
(WTF::OverflowHandler>::Vector):
(WTF::=):
(WTF::OverflowHandler>::fill):
(WTF::OverflowHandler>::expandCapacity):
(WTF::OverflowHandler>::tryExpandCapacity):
(WTF::OverflowHandler>::resize):
(WTF::OverflowHandler>::shrink):
(WTF::OverflowHandler>::grow):
(WTF::OverflowHandler>::reserveCapacity):
(WTF::OverflowHandler>::tryReserveCapacity):
(WTF::OverflowHandler>::shrinkCapacity):
(WTF::OverflowHandler>::append):
(WTF::OverflowHandler>::tryAppend):
(WTF::OverflowHandler>::appendSlowCase):
(WTF::OverflowHandler>::uncheckedAppend):
(WTF::OverflowHandler>::appendVector):
(WTF::OverflowHandler>::insert):
(WTF::OverflowHandler>::insertVector):
(WTF::OverflowHandler>::remove):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176709 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix build break EFL port since r176696
gyuyoung.kim@samsung.com [Wed, 3 Dec 2014 03:14:08 +0000 (03:14 +0000)]
Fix build break EFL port since r176696
https://bugs.webkit.org/show_bug.cgi?id=139215

Unreviewed, build fix for EFL port.

* storage/StorageNamespaceProvider.h: Include SecurityOriginHash.h from WebCore/page directory.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176708 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDon't block menu highlighting when presenting a page preview
conrad_shultz@apple.com [Wed, 3 Dec 2014 02:57:05 +0000 (02:57 +0000)]
Don't block menu highlighting when presenting a page preview
https://bugs.webkit.org/show_bug.cgi?id=139217

Reviewed by Tim Horton.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _previewURLFromActionMenu:]):
Defer popover presentation to the next turn of the runloop.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176707 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAX: [ATK] Table captions and table rows are missing from the accessible hierarchy
jdiggs@igalia.com [Wed, 3 Dec 2014 02:02:36 +0000 (02:02 +0000)]
AX: [ATK] Table captions and table rows are missing from the accessible hierarchy
https://bugs.webkit.org/show_bug.cgi?id=139005

Reviewed by Chris Fleizach.

Source/WebCore:

Expose table captions and rows via ATK. Accomplishing the former is done
by role mapping and inclusion of the object as a child of the table for
ATK. Accomplishing the latter was mostly a matter of deleting all the ATK
platform code that had been forcing rows to be ignored. Because captions
are not being exposed on the Mac, they are now explicitly being ignored
for that platform.

Tests: accessibility/aria-table-hierarchy.html
       accessibility/table-hierarchy.html

* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole): Added CaptionRole.
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren): Include non-ignored captions as table children.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetNChildren): Removed special handling for tables.
(webkitAccessibleRefChild): Removed special handling for tables.
(webkitAccessibleGetIndexInParent): Removed special handling for table cells.
(atkRole): Corrected broken mapping for RowRole.
(getNChildrenForTable): Deleted.
(getChildForTable): Deleted.
(getIndexInParentForCellInRow): Deleted.
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore captions as table children.

Tools:

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
Add mapping for ATK_ROLE_CAPTION to roleToString

LayoutTests:

* accessibility/aria-table-hierarchy.html: Added.
* accessibility/roles-exposed.html: Removed comment pointing to this bug.
* accessibility/table-hierarchy.html: Added.
* platform/efl/accessibility/aria-table-hierarchy-expected.txt: Added.
* platform/efl/accessibility/roles-exposed-expected.txt: Updated to reflect new behavior.
* platform/efl/accessibility/table-detection-expected.txt: Updated to reflect new behavior.
* platform/efl/accessibility/table-hierarchy-expected.txt: Added.
* platform/efl/accessibility/table-roles-hierarchy-expected.txt: Added.
* platform/efl/accessibility/table-with-rules-expected.txt: Updated to reflect new behavior.
* platform/gtk/accessibility/aria-table-hierarchy-expected.txt: Updated to reflect new behavior.
* platform/gtk/accessibility/aria-table-hierarchy.html: Removed (made into a shared test).
* platform/gtk/accessibility/caret-offsets-expected.txt: Updated to reflect new behavior.
* platform/gtk/accessibility/caret-offsets.html: Modified to handle inclusion of rows.
* platform/gtk/accessibility/roles-exposed-expected.txt: Updated to reflect new behavior.
* platform/gtk/accessibility/table-detection-expected.txt: Updated to reflect new behavior.
* platform/gtk/accessibility/table-hierarchy-expected.txt: Updated to reflect new behavior.
* platform/gtk/accessibility/table-hierarchy.html: Removed (made into a shared test).
* platform/gtk/accessibility/table-roles-hierarchy-expected.txt: Added.
* platform/gtk/accessibility/table-with-rules-expected.txt: Updated to reflect new behavior.
* platform/gtk/accessibility/text-for-range-table-cells.html: Updated to reflect new behavior.
* platform/mac/accessibility/aria-table-hierarchy-expected.txt: Added.
* platform/mac/accessibility/table-hierarchy-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176706 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix IOS builds.
oliver@apple.com [Wed, 3 Dec 2014 02:01:42 +0000 (02:01 +0000)]
Fix IOS builds.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176705 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove empty directories
weinig@apple.com [Wed, 3 Dec 2014 01:52:18 +0000 (01:52 +0000)]
Remove empty directories

Reviewed by Anders Carlsson.

* Source: Removed.
* Source/WebKit: Removed.
* Source/WebKit/mac: Removed.
* Source/WebKit/mac/Resources: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176704 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix the build.
timothy_horton@apple.com [Wed, 3 Dec 2014 01:44:53 +0000 (01:44 +0000)]
Fix the build.

* UIProcess/mac/WebContextMac.mm:
* WebCoreSupport/WebFrameLoaderClient.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176703 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago<rdar://problem/18441138> [iOS] Text selection in WKWebView with WKSelectionGranulari...
mitz@apple.com [Wed, 3 Dec 2014 00:59:06 +0000 (00:59 +0000)]
<rdar://problem/18441138> [iOS] Text selection in WKWebView with WKSelectionGranularityCharacter only works in the most recent WKWebView to load
https://bugs.webkit.org/show_bug.cgi?id=139211

Reviewed by Anders Carlsson.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView becomeFirstResponder]): Override to activate the text selection for when
becoming first resopnder.
(-[WKContentView resignFirstResponder]): Deactiavte the text selection when resigning first
responder. This ensures that if another WKWebView becomes first responder, and it uses
block selection, we don’t end up with two active selection views.
(-[WKContentView useSelectionAssistantWithMode:]): Only activate the text selection if this
is the first responder. This ensures that loading content into a non-first-responder
WKWebView doesn‘t deactivate the text selection in the current first responder.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176701 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoChange CallFrame::globalThisValue() to not use CallFrame::scope()
msaboff@apple.com [Wed, 3 Dec 2014 00:49:19 +0000 (00:49 +0000)]
Change CallFrame::globalThisValue() to not use CallFrame::scope()
https://bugs.webkit.org/show_bug.cgi?id=139202

Reviewed by Mark Lam.

Changed to use the globalThis() on the globalObject associated with the
callee.  Moved the inline definition to JSGlobalObject.h instead of
including JSGlobalObject.h in JSScope.h.  Also moved it as JSScope
objects are no longer involved in getting the value.

* runtime/JSGlobalObject.h:
(JSC::ExecState::globalThisValue):
* runtime/JSScope.h:
(JSC::ExecState::globalThisValue): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176700 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: CSS Minification breaks some selectors with colons
commit-queue@webkit.org [Wed, 3 Dec 2014 00:39:34 +0000 (00:39 +0000)]
Web Inspector: CSS Minification breaks some selectors with colons
https://bugs.webkit.org/show_bug.cgi?id=139206

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-12-02
Reviewed by Simon Fraser.

Do not remove spaces preceeding colons, as they may change the semantics
of selectors with colon prefixes (e.g. "a :not(b)").

At the same time, we can strip spaces around "!" characters, for example
a space is not required before "!important" priority.

* Scripts/cssmin.py:
(cssminify):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176699 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/appcache/main-resource-fallback-for-network-error-crash.html can break...
ap@apple.com [Wed, 3 Dec 2014 00:33:29 +0000 (00:33 +0000)]
http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
https://bugs.webkit.org/show_bug.cgi?id=139149

Reviewed by Anders Carlsson.

Source/WebCore:

* WebCore.exp.in: Added ApplicationCache::deleteAllCaches.

* loader/appcache/ApplicationCache.h:
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::deleteAllCaches): Added.

* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::getManifestURLs): Removed logging. It is OK to
have this function called when there is no database file.

* loader/appcache/ApplicationCacheStorage.h: Renamed manifestURLs to getManifestURLs,
because WebKit style.

Source/WebKit/mac:

This changes API behavior. I think that it's OK, because existing behavior made no sense.
We used to delete caches from disk, but they were still active in memory. Now we also
obsolete them in memory, so documents that use a cache still work, but new ones don't
pick one up.

* WebCoreSupport/WebApplicationCache.mm:
(+[WebApplicationCache setMaximumSize:]): Changing maximum on-disk size doesn't
need to delete in-momry caches too. Keep existing behavior.
(+[WebApplicationCache deleteAllApplicationCaches]): Use the new WebCore function
that properly deletes caches.

Source/WebKit2:

This changes API behavior. I think that it's OK, because existing behavior made no sense.
We used to delete caches from disk, but they were still active in memory. Now we also
obsolete them in memory, so documents that use a cache still work, but new ones don't
pick one up.

* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::deleteAllEntries): Use the new WebCore function
that properly deletes caches.

Tools:

WebKit2 already cleared application caches between runs (although it wasn't entirely
effective without WebCore changes in this patch).

* DumpRenderTree/mac/DumpRenderTree.mm: (runTest): Clear applicaiton caches between runs.

* DumpRenderTree/win/DumpRenderTree.cpp: (runTest): Ditto (unfortunately, this
function is not implemented on Windows, see below).

* DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::clearAllApplicationCaches):
Ameded a FIXME.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176698 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove a SnowLeopard-era quirk for QuickLook
timothy_horton@apple.com [Wed, 3 Dec 2014 00:32:33 +0000 (00:32 +0000)]
Remove a SnowLeopard-era quirk for QuickLook
https://bugs.webkit.org/show_bug.cgi?id=139208
<rdar://problem/19121822>

Reviewed by Alexey Proskuryakov.

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::subresourceCachePolicy):
* loader/FrameLoaderClient.h:
* platform/mac/QuickLookMac.h: Removed.
* platform/mac/QuickLookMac.mm: Removed.

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::needsQuickLookResourceCachingQuirks): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::needsQuickLookResourceCachingQuirks): Deleted.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176697 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoBegin stubbing out a StorageNamespaceProvider class
andersca@apple.com [Wed, 3 Dec 2014 00:30:17 +0000 (00:30 +0000)]
Begin stubbing out a StorageNamespaceProvider class
https://bugs.webkit.org/show_bug.cgi?id=139203

Reviewed by Tim Horton.

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Add new files.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::localStorage):
If the page has a storage namespace provider, get the local storage from it.

* page/Page.cpp:
(WebCore::Page::Page):
Move the storage namespace provider from the configuration.

(WebCore::Page::setStorageNamespaceProvider):
Add a setter. This will be used by setGroupName.

* page/Page.h:
(WebCore::Page::storageNamespaceProvider):
Add a getter.

* page/PageConfiguration.cpp:
* page/PageConfiguration.h:
Add a storage namespace provider member.

* storage/StorageNamespaceProvider.cpp:
(WebCore::StorageNamespaceProvider::StorageNamespaceProvider):
(WebCore::StorageNamespaceProvider::~StorageNamespaceProvider):
(WebCore::StorageNamespaceProvider::addPage):
(WebCore::StorageNamespaceProvider::removePage):
(WebCore::StorageNamespaceProvider::localStorageNamespace):
(WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):
* storage/StorageNamespaceProvider.h:
Stub out a storage namespace provider class.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176696 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLoading Lookup causes http/tests/cache/post-redirect-get.php to fail
timothy_horton@apple.com [Tue, 2 Dec 2014 23:41:23 +0000 (23:41 +0000)]
Loading Lookup causes http/tests/cache/post-redirect-get.php to fail
https://bugs.webkit.org/show_bug.cgi?id=139204
<rdar://problem/19120929>

Reviewed by Anders Carlsson.

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _showDictionaryLookupPopup:]):
* WebView/WebViewData.h:
Work around this by delaying the softlinking (and setting up the notification
observer) until we actually need it. There's still an underlying bug, but
this will fix the test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176695 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMore build fixing.
bdakin@apple.com [Tue, 2 Dec 2014 22:05:33 +0000 (22:05 +0000)]
More build fixing.

* platform/spi/mac/QuickLookMacSPI.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176694 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoYet another build fix.
bdakin@apple.com [Tue, 2 Dec 2014 21:53:06 +0000 (21:53 +0000)]
Yet another build fix.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForLink]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176693 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAnother build fix.
bdakin@apple.com [Tue, 2 Dec 2014 21:47:05 +0000 (21:47 +0000)]
Another build fix.

* platform/spi/mac/NSMenuSPI.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176692 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoBuild fix.
bdakin@apple.com [Tue, 2 Dec 2014 21:36:48 +0000 (21:36 +0000)]
Build fix.

Source/WebKit/mac:

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForLink]):

Source/WebKit2:

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForLink]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176691 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSource/WebKit/mac:
bdakin@apple.com [Tue, 2 Dec 2014 21:31:48 +0000 (21:31 +0000)]
Source/WebKit/mac:
More build fixing.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForLink]):

Source/WebKit2:
More build fix.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForLink]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176690 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSpeculative build fix.
bdakin@apple.com [Tue, 2 Dec 2014 21:20:19 +0000 (21:20 +0000)]
Speculative build fix.

* platform/spi/mac/QuickLookMacSPI.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176689 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSpeculative build fix.
bdakin@apple.com [Tue, 2 Dec 2014 21:12:16 +0000 (21:12 +0000)]
Speculative build fix.

* platform/spi/mac/QuickLookMacSPI.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176688 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION: Dragging selected text changes the selection
mitz@apple.com [Tue, 2 Dec 2014 21:00:07 +0000 (21:00 +0000)]
REGRESSION: Dragging selected text changes the selection
https://bugs.webkit.org/show_bug.cgi?id=139110

Reviewed by Simon Fraser.

After it sent the UI process the message to start dragging, the Web process handled mouse
move events that had already been in flight, interpreting them as a drag to start a new
selection. This is fixed by ignoring any mouse events received after asking the UI process
to start dragging.

* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setDragImage): Send the new DidStartDrag message back to the Web
process, so that it stops ignoring mouse events.

* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::startDrag): Call the new WebPage::willStartDrag, so that it starts
ignoring mouse events.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize new member variable.
(WebKit::WebPage::mouseEvent): Don’t handle the event if we have asked the UI process to
start dragging.

* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::willStartDrag): Added. Sets new member variable m_isStartingDrag to true.
(WebKit::WebPage::didStartDrag): Added. Handles the message from the UI process by setting
m_isStartingDrag back to false.

* WebProcess/WebPage/WebPage.messages.in: Added DidStartDrag.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176687 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove more Windows cruft
andersca@apple.com [Tue, 2 Dec 2014 20:53:40 +0000 (20:53 +0000)]
Remove more Windows cruft
https://bugs.webkit.org/show_bug.cgi?id=139189

Reviewed by Andreas Kling.

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::createNetworkingContext):
* WebCoreSupport/WebFrameNetworkingContext.h:
(WebFrameNetworkingContext::create):
(WebFrameNetworkingContext::WebFrameNetworkingContext):
(WebFrameNetworkingContext::userAgent): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176686 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, fix typo introduced in r176673.
eric.carlson@apple.com [Tue, 2 Dec 2014 20:50:52 +0000 (20:50 +0000)]
Unreviewed, fix typo introduced in r176673.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176685 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoShould use standardQuickLookMenuItem for apps that don't implement customizations
bdakin@apple.com [Tue, 2 Dec 2014 20:36:08 +0000 (20:36 +0000)]
Should use standardQuickLookMenuItem for apps that don't implement customizations
https://bugs.webkit.org/show_bug.cgi?id=139193
-and corresponding-
rdar://problem/18944696

Reviewed by Anders Carlsson.

Source/WebCore:

New SPI headers.
* WebCore.xcodeproj/project.pbxproj:
* platform/spi/mac/NSMenuSPI.h: Added.
* platform/spi/mac/QuickLookMacSPI.h: Added.

Source/WebKit/mac:

Use [NSMenuItem standardQuickLookMenuItem].
* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForLink]):

Delegate methods to set up the standardQuickLookMenuItem.
(-[WebActionMenuController menuItem:viewAtScreenPoint:]):
(-[WebActionMenuController menuItem:previewItemAtPoint:]):
(-[WebActionMenuController menuItem:preferredEdgeForPoint:]):

Remove all of the old QLPreviewBubble code.
(-[WebActionMenuController _createActionMenuItemForTag:]):
(-[WebActionMenuController _quickLookURLFromActionMenu:]): Deleted.

Source/WebKit2:

New SPI will allow clients to opt-out of the standardQuickLookMenuItem. By
default, opt in.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _shouldUseStandardQuickLookPreview]):
* UIProcess/mac/WKActionMenuController.mm:

Use [NSMenuItem standardQuickLookMenuItem] unless the client has requested
otherwise.
(-[WKActionMenuController _defaultMenuItemsForLink]):

Delegate methods to set up the standardQuickLookMenuItem.
(-[WKActionMenuController menuItem:viewAtScreenPoint:]):
(-[WKActionMenuController menuItem:previewItemAtPoint:]):
(-[WKActionMenuController menuItem:preferredEdgeForPoint:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176684 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoGeneralize PageActivityAssertionToken
barraclough@apple.com [Tue, 2 Dec 2014 20:30:17 +0000 (20:30 +0000)]
Generalize PageActivityAssertionToken
https://bugs.webkit.org/show_bug.cgi?id=139106

Reviewed by Sam Weinig.

Source/WebCore:

PageActivityAssertionToken is a RAII mechanism implementing a counter, used by PageThrottler
to count user visible activity in progress on the page (currently page load and media playback).
Use of an RAII type is prevents a number of possible errors, including double counting a single
media element, or failing to decrement the count after a media element has been deallocated.

The current implementation has a number of drawbacks that have been addressed by this refactoring:
 - specific to single use in PageThrottler class - not reusable.
 - incomplete encapsulation - the counter and WeakPtrFactory that comprise the current implementation
   are not encapsulated (are in the client type, PageThrottler).
 - tokens are not shared - PageActivityAssertionToken instances are managed by std::unique, every
   increment requires an object allocation.
 - redundancy - the current implementation uses a WeakPtr to safely reference the PageThrottler, this
   is internally implemented using a reference counted type, resulting in two counters being
   incremented (one in the PageActivityAssertionToken, one in the PageThrottler).

In the reimplementation:
 - a callback is provided via a lambda function, which allows for easy reuse without a lot of
   boilerplate code.
 - the counter, callback and ownership of the otherwise weakly-owned token is encapsulated within the
   RefCounter type.
 - a single count within RefCounter::Count stores the counter value, and also manage the lifetime
   of this object.
 - standard RefPtrs are used to manage references to the RefCounter::Count.

* WebCore.xcodeproj/project.pbxproj:
    - removed PageActivityAssertionToken.cpp/.h
* html/HTMLMediaElement.cpp:
    - removed PageActivityAssertionToken.h
* html/HTMLMediaElement.h:
    - std::unique_ptr<PageActivityAssertionToken> -> RefPtr<RefCounter::Count>
* loader/FrameLoader.cpp:
    - removed PageActivityAssertionToken.h
* loader/FrameLoader.h:
    - std::unique_ptr<PageActivityAssertionToken> -> RefPtr<RefCounter::Count>
* loader/SubresourceLoader.cpp:
    - removed PageActivityAssertionToken.h
* loader/SubresourceLoader.h:
    - removed class PageActivityAssertionToken
* page/Page.cpp:
    - removed PageActivityAssertionToken.h
(WebCore::Page::Page):
    - removed Page* parameter to PageThrottler
* page/Page.h:
    - removed class PageActivityAssertionToken
* page/PageActivityAssertionToken.cpp: Removed.
* page/PageActivityAssertionToken.h: Removed.
    - removed PageActivityAssertionToken.cpp/.h
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
    - removed m_page, m_weakPtrFactory, m_activityCount; added m_pageActivityCounter.
(WebCore::PageThrottler::mediaActivityToken):
    - std::unique_ptr<PageActivityAssertionToken> -> PassRefPtr<RefCounter::Count>
(WebCore::PageThrottler::pageLoadActivityToken):
    - std::unique_ptr<PageActivityAssertionToken> -> PassRefPtr<RefCounter::Count>
(WebCore::PageThrottler::pageActivityCounterValueDidChange):
    - merged functionality of incrementActivityCount/decrementActivityCount
(WebCore::PageThrottler::incrementActivityCount): Deleted.
    - see pageActivityCounterValueDidChange
(WebCore::PageThrottler::decrementActivityCount): Deleted.
    - see pageActivityCounterValueDidChange
* page/PageThrottler.h:
(WebCore::PageThrottler::weakPtr): Deleted.
    - no longer required; this functionality is now encapsulated within RefCounter.

Source/WTF:

PageActivityAssertionToken is a RAII mechanism implementing a counter, used by PageThrottler
to count user visible activity in progress on the page (currently page load and media playback).
Use of an RAII type is prevents a number of possible errors, including double counting a single
media element, or failing to decrement the count after a media element has been deallocated.

The current implementation has a number of drawbacks that have been addressed by this refactoring:
 - specific to single use in PageThrottler class - not reusable.
 - incomplete encapsulation - the counter and WeakPtrFactory that comprise the current implementation
   are not encapsulated (are in the client type, PageThrottler).
 - tokens are not shared - PageActivityAssertionToken instances are managed by std::unique, every
   increment requires an object allocation.
 - redundancy - the current implementation uses a WeakPtr to safely reference the PageThrottler, this
   is internally implemented using a reference counted type, resulting in two counters being
   incremented (one in the PageActivityAssertionToken, one in the PageThrottler).

In the reimplementation:
 - a callback is provided via a lambda function, which allows for easy reuse without a lot of
   boilerplate code.
 - the counter, callback and ownership of the otherwise weakly-owned token is encapsulated within the
   RefCounter type.
 - a single count within RefCounter::Count stores the counter value, and also manage the lifetime
   of this object.
 - standard RefPtrs are used to manage references to the RefCounter::Count.

* WTF.xcodeproj/project.pbxproj:
    - added RefCounter.cpp/.h
* wtf/RefCounter.cpp: Added.
(WTF::RefCounter::Count::ref):
    - increment the counter.
(WTF::RefCounter::Count::deref):
    - decrement the counter, and delete as necessary.
(WTF::RefCounter::RefCounter):
    - create a RefCounter::Count.
(WTF::RefCounter::~RefCounter):
    - eagerly delete the Counter if it has no references, otherwise let it be deleted on last deref.
* wtf/RefCounter.h: Added.
(WTF::RefCounter::Count::Count):
    - initialize count to 0.
(WTF::RefCounter::RefCounter):
    - takes a lambda to be called when the value changes.
(WTF::RefCounter::count):
    - reference the counter (and in doing so increment the count).
(WTF::RefCounter::value):
    - access the current value of the counter.

Tools:

Add an API test for WTF::RefCounter.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WTF/RefCounter.cpp: Added.
(TestWebKitAPI::TEST):
    - added RefCounter test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176683 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAlways show the arrow for text selection services
timothy_horton@apple.com [Tue, 2 Dec 2014 19:49:34 +0000 (19:49 +0000)]
Always show the arrow for text selection services
https://bugs.webkit.org/show_bug.cgi?id=139191
<rdar://problem/18903995>

Reviewed by Anders Carlsson.

* platform/spi/mac/DataDetectorsSPI.h:
* page/mac/ServicesOverlayController.mm:
Move a few things to DataDetectorsSPI.h.

(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
(WebCore::ServicesOverlayController::buildSelectionHighlight):
Make use of the real DDHighlightStyle names.
Add DDHighlightStyleButtonShowAlways for selection services.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176682 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix the build.
timothy_horton@apple.com [Tue, 2 Dec 2014 19:40:45 +0000 (19:40 +0000)]
Fix the build.

* WebView/WebViewData.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176681 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoImplement Lookup transition from selection for Legacy WebKit
timothy_horton@apple.com [Tue, 2 Dec 2014 19:38:05 +0000 (19:38 +0000)]
Implement Lookup transition from selection for Legacy WebKit
https://bugs.webkit.org/show_bug.cgi?id=139180
<rdar://problem/19067172>

Reviewed by Beth Dakin.

* WebView/DictionaryPopupInfo.h: Added.
Split DictionaryPopupInfo out into its own file.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _lookupText:]):
Hand the DictionaryPopupInfo to WebView, which will show the TextIndicator and invoke Lookup.

(performDictionaryLookupForSelection):
(performDictionaryLookupForRange):
Plumb the transition style through these helpers.
Create a TextIndicator from the selection range.

* WebView/WebHTMLView.mm:
(-[WebHTMLView _lookUpInDictionaryFromMenu:]):
Make use of TextIndicator (and DictionaryPopupInfo, and the new
_showDictionaryLookupPopup on WebView) to add a transition from blue
when performing Lookup from the context menu.

(-[WebHTMLView quickLookWithEvent:]):
Remove our TextIndicator whenever a normal three-finger-tap event
comes through, as it will have its own indication.

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _dictionaryLookupPopoverWillClose:]):
Register for the LUNotificationPopoverWillClose notification and remove
our TextIndicator when it is called, just like in WebKit2.
Deregistration is already handled in _close.

(-[WebView _showDictionaryLookupPopup:]):
Just like WebKit2, show our TextIndicator and tell Lookup not to show its own,
if the relevant API is available.

* WebView/WebViewInternal.h:

* WebKit.xcodeproj/project.pbxproj:
Add mac/WebView/DictionaryPopupInfo.h.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176680 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTextIndicator can get stuck (especially if we don't get LUNotificationPopoverWillClos...
timothy_horton@apple.com [Tue, 2 Dec 2014 19:34:27 +0000 (19:34 +0000)]
TextIndicator can get stuck (especially if we don't get LUNotificationPopoverWillClose when we should)
https://bugs.webkit.org/show_bug.cgi?id=139175
<rdar://problem/19072236>

Reviewed by Beth Dakin.

* UIProcess/API/mac/WKView.mm:
(-[WKView scrollWheel:]):
(-[WKView mouseDown:]):
Work around <rdar://problem/19086993> by always explicitly clearing the
active text indicator in mouseDown: and scrollWheel:.
This way, even if you manage to get a text indicator that outlives the
Look Up popover (or find-in-page, or whatever), it will be dismissed
by clicking or scrolling the view.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176678 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac, iOS] Crash log application information contains latest main frame URL instead...
ap@apple.com [Tue, 2 Dec 2014 19:30:58 +0000 (19:30 +0000)]
[Mac, iOS] Crash log application information contains latest main frame URL instead of test URL
https://bugs.webkit.org/show_bug.cgi?id=139174

Reviewed by Simon Fraser.

* DumpRenderTree/TestRunner.cpp:
* DumpRenderTree/TestRunner.h:
Renamed testPathOrURL to testURL, because this variable always contains a URL.

* DumpRenderTree/mac/DumpRenderTree.mm:
(sizeWebViewForCurrentTest): Updated for testPathOrURL renaming.
(testPathFromURL): Moved from FrameLoadDelegate.mm.
(runTest): Set crash reporter information here, as we know the exact test URL.

* DumpRenderTree/mac/FrameLoadDelegate.mm:
(-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): Don't set crash
reporter information here.

* DumpRenderTree/mac/ResourceLoadDelegate.mm:
* DumpRenderTree/mac/TestRunnerMac.mm:
Updated for testPathOrURL renaming.

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didStartProvisionalLoadForFrame): WebProcess doesn't know
test URL until load starts, so save it into TestRunner now. A new TestRunner object
is created for each test.

* WebKitTestRunner/InjectedBundle/TestRunner.h:
(WTR::TestRunner::testURL):
(WTR::TestRunner::setTestURL):
Make TestRunner know the test name. For now, it's good enough to have it once load
starts, but if we ever need it earlier, we can send it with BeginTest message.

* WebKitTestRunner/InjectedBundle/cocoa/InjectedBundlePageCocoa.mm:
(WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame):
Use test URL, not currently loading URL for CrashReporter.

* WebKitTestRunner/cocoa/CrashReporterInfo.mm:
(WTR::setCrashReportApplicationSpecificInformationToURL): Added a space after colon
(WebKit1 already had it right).

* DumpRenderTree/win/DumpRenderTree.cpp:
(sizeWebViewForCurrentTest):
(runTest):
* DumpRenderTree/win/ResourceLoadDelegate.cpp:
(ResourceLoadDelegate::willSendRequest):
Changed Windows DumpRenderTree to also use URL in TestRunner.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176677 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFixes inline cache fast path accessing nonexistant getters.
mmirman@apple.com [Tue, 2 Dec 2014 19:27:23 +0000 (19:27 +0000)]
Fixes inline cache fast path accessing nonexistant getters.
<rdar://problem/18416918>
https://bugs.webkit.org/show_bug.cgi?id=136961

Reviewed by Filip Pizlo.

Fixes a bug in inline caching where getters would have been able to
modify the property they are getting during
building the inline cache and then accessing that
property through the inline cache site causing a recursive
inline cache building and allowing the fast path of the cache to
try to load a getter for the property that no longer exists.

* jit/JITOperations.cpp: Switched use of get to getPropertySlot.
* runtime/JSCJSValue.h:
added getPropertySlot for when you don't want to perform the get quite yet but want
to fill out the slot.
* runtime/JSCJSValueInlines.h: Added implementation for getPropertySlot
(JSC::JSValue::get): changed to simply call getPropertySlot
(JSC::JSValue::getPropertySlot): added.
* tests/stress/recursive_property_redefine_during_inline_caching.js: Added test case for bug.
(test):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176676 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix iOS build.
andersca@apple.com [Tue, 2 Dec 2014 19:26:48 +0000 (19:26 +0000)]
Fix iOS build.

* WebCore.exp.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176675 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCrash when setting 'flex' CSS property to 'calc(2 * 3) calc(2 * 3)'
cdumez@apple.com [Tue, 2 Dec 2014 19:15:33 +0000 (19:15 +0000)]
Crash when setting 'flex' CSS property to 'calc(2 * 3) calc(2 * 3)'
https://bugs.webkit.org/show_bug.cgi?id=139162

Reviewed by Darin Adler.

Source/WebCore:

Add support for calculated values in 'flex' CSS property.
Previously, those did not work in release builds, and were hitting
an assertion in debug builds.

Test: fast/css/flex-calculated-value.html

* css/CSSParser.cpp:
(WebCore::CSSParser::validCalculationUnit):
Do not call RefPtr::release() as we are not interested in the return
value. Assign nullptr to the member instead.

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillPositionComponent):
(WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
(WebCore::CSSParser::parseFontWeight):
(WebCore::CSSParser::parsedDouble):
(WebCore::CSSParser::colorIntFromValue):
(WebCore::CSSParser::parseColorParameters):
(WebCore::CSSParser::parseHSLParameters):
(WebCore::CSSParser::parseFlex):
* css/CSSParser.h:

LayoutTests:

Add layout test for calculated value support for 'flex' CSS property.

* fast/css/flex-calculated-value-expected.txt: Added.
* fast/css/flex-calculated-value.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176674 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix logging typo
eric.carlson@apple.com [Tue, 2 Dec 2014 19:04:13 +0000 (19:04 +0000)]
Fix logging typo
https://bugs.webkit.org/show_bug.cgi?id=139182

Reviewed by Alexey Proskuryakov.

No new tests, only logging code is changed.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Don't use %f to log a string.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176673 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoGet rid of the WinINet based network implementation
andersca@apple.com [Tue, 2 Dec 2014 19:02:20 +0000 (19:02 +0000)]
Get rid of the WinINet based network implementation
https://bugs.webkit.org/show_bug.cgi?id=139187

Reviewed by Andreas Kling.

This code was only used by the Windows CE port. Now it's unused.

* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/win/AuthenticationChallenge.h: Removed.
* platform/network/win/CookieJarWin.cpp: Removed.
* platform/network/win/CredentialStorageWin.cpp: Removed.
* platform/network/win/ProxyServerWin.cpp: Removed.
* platform/network/win/ResourceError.h: Removed.
* platform/network/win/ResourceHandleWin.cpp: Removed.
* platform/network/win/ResourceRequest.h: Removed.
* platform/network/win/ResourceResponse.h: Removed.
* platform/network/win/SocketStreamError.h: Removed.
* platform/network/win/SocketStreamHandle.h: Removed.
* platform/network/win/SocketStreamHandleWin.cpp: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176672 268f45cc-cd09-0410-ab3c-d52691b4dbfc