WebKit-https.git
6 years ago[GTK] Windowed plugins visibility doesn't work
carlosgc@webkit.org [Wed, 25 Jun 2014 10:38:28 +0000 (10:38 +0000)]
[GTK] Windowed plugins visibility doesn't work
https://bugs.webkit.org/show_bug.cgi?id=131487

Reviewed by Anders Carlsson.

Implement plugins visibility changes and add a new message to
notify the UI process when a windowed plugin is shown/hidden to
show/hide the plugin widget.

* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::visibilityDidChange): Add
implementation to notify the plugin about visibility change.
(WebKit::PluginControllerProxy::windowedPluginVisibilityDidChange):
Send WindowedPluginVisibilityDidChange to the plugin proxy.
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginControllerProxy.messages.in: Add VisibilityDidChange message.
* UIProcess/WebPageProxy.h: Add windowedPluginVisibilityDidChange
to handle WindowedPluginVisibilityDidChange message.
* UIProcess/WebPageProxy.messages.in: Add WindowedPluginVisibilityDidChange message.
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::windowedPluginVisibilityDidChange):
* UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::createPluginContainer): Do not show the
plugins by default.
(WebKit::WebPageProxy::windowedPluginVisibilityDidChange): Show or hide the plugin widget.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::NetscapePlugin): Initialize m_isVisible.
(WebKit::NetscapePlugin::visibilityDidChange): Add visible parameter and save it in m_isVisible
member, calling platformVisibilityDidChange() only when it has actually changed.
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformVisibilityDidChange): Notify the controller about visibility change.
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginController.h:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::visibilityDidChange): Send VisibilityDidChange message to the plugin controller proxy.
(WebKit::PluginProxy::windowedPluginVisibilityDidChange): Notify the controller about visibility change.
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginProxy.messages.in: Add WindowedPluginVisibilityDidChange message.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::didInitializePlugin): Also call viewVisibilityDidChange() when the plugin is initialized.
(WebKit::PluginView::setParentVisible): Override this Widget method to update the plugin visibility when parent
widget is shown/hidden.
(WebKit::PluginView::viewVisibilityDidChange): Pass visible parameter to visibilityDidChange().
(WebKit::PluginView::windowedPluginVisibilityDidChange): Send WindowedPluginVisibilityDidChange message to the UI process.
* WebProcess/Plugins/PluginView.h:

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

6 years ago[GTK] Some of DOM bindings macros are misnamed
commit-queue@webkit.org [Wed, 25 Jun 2014 06:54:48 +0000 (06:54 +0000)]
[GTK] Some of DOM bindings macros are misnamed
https://bugs.webkit.org/show_bug.cgi?id=121543

Patch by Tomas Popela <tpopela@redhat.com> on 2014-06-24
Reviewed by Carlos Garcia Campos.

As we are using WebKitDOM as a namespace we should unify all type macros
to have WEBKIT_DOM_TYPE prefix instead of WEBKIT_TYPE_DOM. Also add
more exceptions to decamelize function in GObject bindings generator
to fix the names of bindings for BR, HR, UL, OL, DL and LI elements.

Source/WebCore:
* bindings/gobject/GObjectEventListener.cpp:
(WebCore::GObjectEventListener::handleEvent):
* bindings/gobject/WebKitDOMEventTarget.h:
* bindings/gobject/WebKitDOMNodeFilter.h:
* bindings/gobject/WebKitDOMObject.h:
* bindings/gobject/webkitdom.symbols:
* bindings/scripts/CodeGeneratorGObject.pm:
(decamelize):
(GetParentGObjType):
(GenerateProperty):
(GenerateHeader):
(GenerateCFile):
(GenerateEventTargetIface):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
(WebKit::wrapFloat64Array):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
(WebKit::wrapTestActiveDOMObject):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(WebKit::wrapTestCallback):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
(WebKit::wrapTestCustomNamedGetter):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
(WebKit::wrapTestEventConstructor):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(WebKit::wrapTestEventTarget):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
(WebKit::wrapTestException):
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp:
(WebKit::wrapTestGenerateIsReachable):
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(WebKit::wrapTestInterface):
(webkit_dom_test_interface_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
(WebKit::wrapTestMediaQueryListListener):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
(WebKit::wrapTestNamedConstructor):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(WebKit::wrapTestNode):
* bindings/scripts/test/GObject/WebKitDOMTestNode.h:
* bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp:
(WebKit::wrapTestNondeterministic):
* bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(WebKit::wrapTestObj):
(webkit_dom_test_obj_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
(WebKit::wrapTestOverloadedConstructors):
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
(WebKit::wrapTestSerializedScriptValueInterface):
(webkit_dom_test_serialized_script_value_interface_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
(WebKit::wrapTestTypedefs):
(webkit_dom_test_typedefs_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
* bindings/scripts/test/GObject/WebKitDOMattribute.cpp:
(WebKit::wrapattribute):
* bindings/scripts/test/GObject/WebKitDOMattribute.h:
* bindings/scripts/test/GObject/WebKitDOMreadonly.cpp:
(WebKit::wrapreadonly):
* bindings/scripts/test/GObject/WebKitDOMreadonly.h:

Tools:
* TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:
* gtk/webkitdom.py:
(WebKitDOMDocGeneratorSections._dom_class_decamelize):
(WebKitDOMDocGeneratorSections.write_section):

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

6 years agoAdd support routines to provide descriptive JavaScript backtraces
msaboff@apple.com [Wed, 25 Jun 2014 06:45:50 +0000 (06:45 +0000)]
Add support routines to provide descriptive JavaScript backtraces
https://bugs.webkit.org/show_bug.cgi?id=134278

Reviewed by Mark Lam.

* interpreter/CallFrame.cpp:
(JSC::CallFrame::dump):
(JSC::CallFrame::describeFrame):
* interpreter/CallFrame.h:
* runtime/JSCJSValue.cpp:
(JSC::JSValue::dumpForBacktrace):
* runtime/JSCJSValue.h:

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

6 years agoRun the FastMalloc scavenger thread on iOS as well.
akling@apple.com [Wed, 25 Jun 2014 06:44:36 +0000 (06:44 +0000)]
Run the FastMalloc scavenger thread on iOS as well.
<https://webkit.org/b/134287>
<rdar://problem/17446198>

Reviewed by Gavin Barraclough.

* wtf/FastMalloc.cpp:

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

6 years ago[EFL] Install Latin Modern Math on the bots
fred.wang@free.fr [Wed, 25 Jun 2014 06:31:21 +0000 (06:31 +0000)]
[EFL] Install Latin Modern Math on the bots
https://bugs.webkit.org/show_bug.cgi?id=134153

Reviewed by Gyuyoung Kim.

* efl/jhbuild.modules: Switch back to https://github.com/ for the webkitgtk-test-fonts.

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

6 years agoTools: [EFL] [GTK] Use Latin Modern Math in the jhbuild environments.
fred.wang@free.fr [Wed, 25 Jun 2014 04:56:32 +0000 (04:56 +0000)]
Tools: [EFL] [GTK] Use Latin Modern Math in the jhbuild environments.
https://bugs.webkit.org/show_bug.cgi?id=134153

Reviewed by Martin Robinson.

* efl/jhbuild.modules: Use webkitgtk-test-fonts.git instead of the zip archive and upgrade to 0.0.5.
* gtk/jhbuild.modules: Upgrade webkitgtk-test-fonts to 0.0.5.

LayoutTests: [EFL] [GTK] Update the MathML test references.
https://bugs.webkit.org/show_bug.cgi?id=134153

Reviewed by Martin Robinson.

We update the GTK references after the move to Latin Modern Math.

* mathml/presentation/bug95015-expected.html: hide the base X since it is causing antialiasing diff.
* mathml/presentation/bug95015.html: ditto
* platform/efl/TestExpectations: enable some tests again (the references must be updated).
* platform/gtk/TestExpectations: enable OpenType MATH test again, mark mo-stacked-glyphs as failing.
* platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.txt: update reference.
* platform/gtk/mathml/presentation/mo-stretch-expected.png: ditto
* platform/gtk/mathml/presentation/mo-stretch-expected.txt: ditto
* platform/gtk/mathml/presentation/roots-expected.png: ditto
* platform/gtk/mathml/presentation/roots-expected.txt: ditto

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

6 years agoUnreviewed, rolling out r170414.
commit-queue@webkit.org [Wed, 25 Jun 2014 04:30:40 +0000 (04:30 +0000)]
Unreviewed, rolling out r170414.
https://bugs.webkit.org/show_bug.cgi?id=134291

the patch added a test that fails on almost every Mac tester
(Requested by rniwa on #webkit).

Reverted changeset:

"Tiles on bottom of screen are not always allocated when
necessary"
https://bugs.webkit.org/show_bug.cgi?id=134272
http://trac.webkit.org/changeset/170414

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

6 years agoWeb Inspector: clicking "Show All Nodes" button throws TypeError
jonowells@apple.com [Wed, 25 Jun 2014 03:13:23 +0000 (03:13 +0000)]
Web Inspector: clicking "Show All Nodes" button throws TypeError
https://bugs.webkit.org/show_bug.cgi?id=133701

Reviewed by Timothy Hatcher.

The method used for isEventWithinDisclosureTriangle needs to consider the possibility that the
targeted TreeElement isn't contained within the visible DOM, for instance in the case of the
"Show All Nodes" button immediately after it is pressed.

* UserInterface/Views/TreeOutline.js:
(TreeElement.prototype.isEventWithinDisclosureTriangle): Check to make sure TreeElement node is in the visible DOM.

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

6 years agoUnreviewed, update my speciality.
gyuyoung.kim@samsung.com [Wed, 25 Jun 2014 01:28:40 +0000 (01:28 +0000)]
Unreviewed, update my speciality.

* Scripts/webkitpy/common/config/contributors.json:

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

6 years agoTiles on bottom of screen are not always allocated when necessary
mmaxfield@apple.com [Wed, 25 Jun 2014 01:25:23 +0000 (01:25 +0000)]
Tiles on bottom of screen are not always allocated when necessary
https://bugs.webkit.org/show_bug.cgi?id=134272

Reviewed by Simon Fraser.

Source/WebCore:
The initial visibleRect is in the coordinate of the root layer, so its origin
is at the top left of the view. The initial rect we were using doesn't
include the contents inset, so it was too short, which was causing tiles near
the bottom of the screen to not always be allocated if the tile threshold was
close to the bottom of the view. Instead, we want to include the contents
inset size so the visible rect includes the entire view.
GraphicsLayerCA::recursiveCommitChanges() takes care of mapping and cropping
the visible rect into the tiled layer's coordinate system, at which point it
is used for visible tile logic.

Test: platform/mac-wk2/tiled-drawing/visible-rect-content-inset.html

* platform/graphics/ca/TileCoverageMap.cpp:
(WebCore::TileCoverageMap::update):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

LayoutTests:
Apply a content inset, then dump visible rects.

* platform/mac-wk2/tiled-drawing/visible-rect-content-inset-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/visible-rect-content-inset.html: Added.

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

6 years agoInlineTextBox's m_len can be an unsigned (rather than an unsigned short)
mmaxfield@apple.com [Wed, 25 Jun 2014 01:19:25 +0000 (01:19 +0000)]
InlineTextBox's m_len can be an unsigned (rather than an unsigned short)
https://bugs.webkit.org/show_bug.cgi?id=134173

Reviewed by Daniel Bates.

After Zalan's talks with Kling, it seems that the simple line layout code
might alleviate the need for the space savings in InlineTextBox. Given this,
it would be beneficial to be a little more safe by using unsigneds throughout.

For example, we have code like "void setLen(unsigned len) { m_len = len; }"
which might silently break if given particular inputs.

No new tests because there is no behavior change.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::isSelected):
(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::selectionStartEnd):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::computeRectForReplacementMarker):
* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::truncation):
* rendering/RenderTextLineBoxes.cpp:
(WebCore::ellipsisRectForBox):

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

6 years agoAX: Remove tight platform expectation coupling form roles-exposed layout test.
samuel_white@apple.com [Wed, 25 Jun 2014 00:56:17 +0000 (00:56 +0000)]
AX: Remove tight platform expectation coupling form roles-exposed layout test.
https://bugs.webkit.org/show_bug.cgi?id=134123

Reviewed by Chris Fleizach.

Don't enforce platform specific differences in the test itself. This is what the various expectation files are for.

* accessibility/roles-exposed-expected.txt:
* accessibility/roles-exposed.html:
* platform/mac-mountainlion/accessibility/roles-exposed-expected.txt:
* platform/mac/accessibility/roles-exposed-expected.txt:

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

6 years agoSpeculative 32-bit Mac build fix after r170402.
rniwa@webkit.org [Wed, 25 Jun 2014 00:53:24 +0000 (00:53 +0000)]
Speculative 32-bit Mac build fix after r170402.

* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::advanceByCombiningCharacterSequence):

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

6 years ago[Win] Remove some out-of-date stuff from our instructions.
bfulgham@apple.com [Wed, 25 Jun 2014 00:36:53 +0000 (00:36 +0000)]
[Win] Remove some out-of-date stuff from our instructions.
https://bugs.webkit.org/show_bug.cgi?id=134282

Reviewed by Tim Horton.

* building/build.html: Remove reference to "Platform SDK" which we don't manuall
install anymore (it's part of Visual Studio 2013).
* building/tools.html: We no longer need QuickTime SDK, QuickTime Player, or
the DirectX SDK.

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

6 years ago[iOS][WK2] We should not start potential tap activation unless the tap gesture recogn...
benjamin@webkit.org [Wed, 25 Jun 2014 00:18:45 +0000 (00:18 +0000)]
[iOS][WK2] We should not start potential tap activation unless the tap gesture recognizer succeed
https://bugs.webkit.org/show_bug.cgi?id=134277
<rdar://problem/17439973>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-24
Reviewed by Anders Carlsson.

* UIProcess/ios/WKSyntheticClickTapGestureRecognizer.m:
(-[WKSyntheticClickTapGestureRecognizer setState:]):
We were calling the _gestureRecognizedAction even for failure states. The potential activation work
is not light on the Web Process, we should not start if we don't care about the result.

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

6 years ago[iOS][WK2] Adopt the C API of UIWebTouchEventsGestureRecognizer for touch event mapping
benjamin@webkit.org [Wed, 25 Jun 2014 00:15:25 +0000 (00:15 +0000)]
[iOS][WK2] Adopt the C API of UIWebTouchEventsGestureRecognizer for touch event mapping
https://bugs.webkit.org/show_bug.cgi?id=134234

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-24
Reviewed by Tim Horton.

The C API is more efficient and expose properties we will need for other patches. This patch moves from
getting each value independently on UIWebTouchEventsGestureRecognizer to the single structure exposed
by _UIWebTouchEvent.

* Shared/NativeWebTouchEvent.h:
* Shared/ios/NativeWebTouchEventIOS.mm:
(WebKit::convertTouchPhase):
(WebKit::extractWebTouchPoint):
(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _webTouchEventsRecognized:]):

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

6 years agoWK1 WebFrameNetworkingContext cleanup: do not instanciate an empty NSString to create...
benjamin@webkit.org [Wed, 25 Jun 2014 00:13:04 +0000 (00:13 +0000)]
WK1 WebFrameNetworkingContext cleanup: do not instanciate an empty NSString to create an empty WTF::String
https://bugs.webkit.org/show_bug.cgi?id=134222

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-24
Reviewed by Andreas Kling.

* WebCoreSupport/WebFrameNetworkingContext.mm:
(WebFrameNetworkingContext::sourceApplicationIdentifier):

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

6 years ago[iOS]: WK2 Inspector Node Highlighting
commit-queue@webkit.org [Tue, 24 Jun 2014 23:50:07 +0000 (23:50 +0000)]
[iOS]: WK2 Inspector Node Highlighting
https://bugs.webkit.org/show_bug.cgi?id=134257

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-06-24
Reviewed by Timothy Hatcher.

Source/WebCore:
Some clients want to get highlights with the scroll applied,
others do not. Provide a CoordinateSpace param to be used for
getting a highlight (only used on iOS).

* WebCore.exp.in:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::getHighlight):
* inspector/InspectorController.h:
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::getHighlight):
(WebCore::buildObjectForRendererFragments):
* inspector/InspectorOverlay.h:
(WebCore::Highlight::Highlight):
* testing/Internals.cpp:
(WebCore::Internals::inspectorHighlightRects):

Source/WebKit/mac:
* WebInspector/WebNodeHighlightView.mm:
(-[WebNodeHighlightView layoutSublayers:]):

Source/WebKit2:
* Scripts/webkit2/messages.py:
(struct_or_class):
(headers_for_type):
* Shared/WebCoreArgumentCoders.h:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Highlight>::encode):
(IPC::ArgumentCoder<Highlight>::decode):
Add a way to encode a WebCore::Highlight struct.

* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _showInspectorHighlight:WebCore::]):
(-[WKWebView _hideInspectorHighlight]):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showInspectorHighlight):
(WebKit::PageClientImpl::hideInspectorHighlight):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::showInspectorHighlight):
(WebKit::WebPageProxy::hideInspectorHighlight):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::highlight):
(WebKit::WebInspectorClient::hideHighlight):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::showInspectorHighlight):
(WebKit::WebPage::hideInspectorHighlight):
Send web process highlight / hideHighlight messages up to
the UIProcess so it can highlight in the WKContentView.
Pass up a WebCore::Highlight in Document coordinates.

* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKInspectorHighlightView initWithFrame:]):
(-[WKInspectorHighlightView dealloc]):
(-[WKInspectorHighlightView _removeAllLayers]):
(-[WKInspectorHighlightView _createLayers:]):
(findIntersectionOnLineBetweenPoints):
(quadIntersection):
(layerPathWithHole):
(layerPath):
(-[WKInspectorHighlightView _layoutForNodeHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView update:]):
Reuse the WebKit1 code to turn highlight float quads into CAShapeLayers.

(-[WKContentView _showInspectorHighlight:WebCore::]):
(-[WKContentView _hideInspectorHighlight]):
Show and hide the highlight view with the respective WebCore::Highlight.

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

6 years ago[MSE][Mac] Uncaught exception when deallocating AVSampleBufferDisplayLayer
jer.noble@apple.com [Tue, 24 Jun 2014 23:39:15 +0000 (23:39 +0000)]
[MSE][Mac] Uncaught exception when deallocating AVSampleBufferDisplayLayer
https://bugs.webkit.org/show_bug.cgi?id=134281

Reviewed by Brent Fulgham.

AVSampleBufferDisplayLayer is throwing an exception from its -dealloc method because KVO observers exist
at the time of dealloc. Remove the observer for outputObscuredDueToInsufficientExternalProtection inside
-stopObservingLayer.

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVSampleBufferErrorListener stopObservingLayer:]):

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

6 years agoWKContextHistoryClient::didNavigateWithNavigationData is passed incorrect URL when...
mrowe@apple.com [Tue, 24 Jun 2014 23:33:55 +0000 (23:33 +0000)]
WKContextHistoryClient::didNavigateWithNavigationData is passed incorrect URL when history.pushState is used
<https://webkit.org/b/134271> / <rdar://problem/16270167>

Reviewed by Brady Eidson.

Source/WebCore:
Tests: http/tests/globalhistory/history-delegate-pushstate.html
       http/tests/globalhistory/history-delegate-replacestate.html

* page/History.cpp:
(WebCore::History::stateObjectAdded): Call HistoryController after updating the document's URL so that the
URL will reflect the destination of the navigation when FrameLoaderClient::updateGlobalHistory is called.

LayoutTests:
* http/tests/globalhistory/history-delegate-pushstate-expected.txt: Added.
* http/tests/globalhistory/history-delegate-pushstate.html: Added.
* http/tests/globalhistory/history-delegate-replacestate-expected.txt: Added.
* http/tests/globalhistory/history-delegate-replacestate.html: Added.

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

6 years agoSimplify decodeLegacySessionState
andersca@apple.com [Tue, 24 Jun 2014 23:33:03 +0000 (23:33 +0000)]
Simplify decodeLegacySessionState
https://bugs.webkit.org/show_bug.cgi?id=134280

Reviewed by Andreas Kling.

There's no need to use a LegacySessionStateDecoder object with a single member,
just make all functions static and only export a single entry point; decodeLegacySessionState.

No functionality change, just moving code around.

* UIProcess/API/C/WKSessionStateRef.cpp:
(WKSessionStateCreateFromData):
* UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::decodeSessionHistoryEntryData):
(WebKit::decodeSessionHistoryEntry):
(WebKit::decodeSessionHistoryEntries):
(WebKit::decodeV0SessionHistory):
(WebKit::decodeV1SessionHistory):
(WebKit::decodeSessionHistory):
(WebKit::decodeLegacySessionState):
(WebKit::LegacySessionStateDecoder::LegacySessionStateDecoder): Deleted.
(WebKit::LegacySessionStateDecoder::~LegacySessionStateDecoder): Deleted.
(WebKit::LegacySessionStateDecoder::decodeSessionState): Deleted.
(WebKit::LegacySessionStateDecoder::decodeSessionHistory): Deleted.
(WebKit::LegacySessionStateDecoder::decodeV0SessionHistory): Deleted.
(WebKit::LegacySessionStateDecoder::decodeV1SessionHistory): Deleted.
(WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntries): Deleted.
(WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntry): Deleted.
(WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntryData): Deleted.
* UIProcess/mac/LegacySessionStateCoding.h:

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

6 years agoadvanceByCombiningCharacterSequence() can be simplified
mmaxfield@apple.com [Tue, 24 Jun 2014 23:32:31 +0000 (23:32 +0000)]
advanceByCombiningCharacterSequence() can be simplified
https://bugs.webkit.org/show_bug.cgi?id=133591

Reviewed by Dean Jackson.

Use U16_NEXT() because it already does what we're trying to do.

No new tests because there is no behavior change.

* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::advanceByCombiningCharacterSequence):

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

6 years agoEnable GAMEPAD in the Mac build, but disabled at runtime.
beidson@apple.com [Tue, 24 Jun 2014 23:17:22 +0000 (23:17 +0000)]
Enable GAMEPAD in the Mac build, but disabled at runtime.
https://bugs.webkit.org/show_bug.cgi?id=134255

Reviewed by Dean Jackson.

Source/JavaScriptCore:
* Configurations/FeatureDefines.xcconfig:

* runtime/JSObject.h: Export JSObject::removeDirect() to allow disabling
  functions at runtime.

Source/WebCore:
No new tests (No changes to a tested config).

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Add the ability to have a function be EnabledAtRuntime by
  removing such functions from the prototype if they are disabled.

Change the three new objects and the one new function to be EnabledAtRuntime
* Modules/gamepad/Gamepad.idl:
* Modules/gamepad/GamepadButton.idl:
* Modules/gamepad/GamepadEvent.idl:
* Modules/gamepad/NavigatorGamepad.idl:

Add a RuntimeEnabledFeature for Gamepads:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setGamepadsEnabled):
(WebCore::RuntimeEnabledFeatures::gamepadsEnabled):

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:
* Configurations/FeatureDefines.xcconfig:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences gamepadsEnabled]):
(-[WebPreferences setGamepadsEnabled:]):
* WebView/WebPreferencesPrivate.h:

* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:
* Configurations/FeatureDefines.xcconfig:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetGamepadsEnabled):
(WKPreferencesGetGamepadsEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

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

6 years agoCSS JIT: Add positionInRootFragments to SelectorFragment
utatane.tea@gmail.com [Tue, 24 Jun 2014 22:56:41 +0000 (22:56 +0000)]
CSS JIT: Add positionInRootFragments to SelectorFragment
https://bugs.webkit.org/show_bug.cgi?id=133609

Reviewed by Benjamin Poulain.

Some non-backtrack-related predicates use relationToRightFragment information
to decide whether checkingContext->elementStyle should be refered.
To make it works correctly, add the positionInRootFragments field to SelectorFragment.
When positionInRootFragments == Rightmost and relationToRightFragment == Rightmost,
we should see checkingContext->elementStyle.

Source/WebCore:
Test: fast/selectors/first-child-update-with-renderer.html

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::shouldUseRenderStyleFromCheckingContext):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):

LayoutTests:
* fast/selectors/first-child-update-with-renderer-expected.txt: Added.
* fast/selectors/first-child-update-with-renderer.html: Added.

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

6 years ago[Fullscreen][Mac] WKView is not firstResponder after entering fullscreen mode
jer.noble@apple.com [Tue, 24 Jun 2014 22:38:34 +0000 (22:38 +0000)]
[Fullscreen][Mac] WKView is not firstResponder after entering fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=134270

Reviewed by Jon Honeycutt.

The WebCoreFullScreenWindow's firstResponder is reset when the full screen animation completes and
the window's style is changed to a fullscreen style. Save the firstResponder, and if it's still in
the window's view hierarchy after the style changes, reset it to the firstResponder.

* platform/mac/WebCoreFullScreenWindow.mm:
(-[WebCoreFullScreenWindow setStyleMask:]):

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

6 years ago[MSE][Mac] Pass AVSampleBufferDisplayLayer HDCP status through to EME
jer.noble@apple.com [Tue, 24 Jun 2014 22:33:38 +0000 (22:33 +0000)]
[MSE][Mac] Pass AVSampleBufferDisplayLayer HDCP status through to EME
https://bugs.webkit.org/show_bug.cgi?id=134221

Reviewed by Eric Carlson.

Pass the outputObscuredDueToInsufficientExternalProtection property of AVSampleBufferDisplayLayer
as an error to the associated MediaKeySession object.

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVSampleBufferErrorListener invalidate]):
(-[WebAVSampleBufferErrorListener beginObservingLayer:]):
(-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):

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

6 years agoAdd support for v0 legacy decoding
andersca@apple.com [Tue, 24 Jun 2014 22:32:33 +0000 (22:32 +0000)]
Add support for v0 legacy decoding
https://bugs.webkit.org/show_bug.cgi?id=134275

Reviewed by Andreas Kling.

* Shared/SessionState.h:
* UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::LegacySessionStateDecoder::decodeV0SessionHistory):
(WebKit::LegacySessionStateDecoder::decodeV1SessionHistory):

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

6 years agoAdd SPI for clearing an entire back-forward list
andersca@apple.com [Tue, 24 Jun 2014 22:24:23 +0000 (22:24 +0000)]
Add SPI for clearing an entire back-forward list
https://bugs.webkit.org/show_bug.cgi?id=134274

Reviewed by Dan Bernstein.

Add -[WKBackForwardList _clear] which only clears the back-forward items, and
change -[WKBackForwardList _removeAllItems] to remove all items including the current one.

* UIProcess/API/Cocoa/WKBackForwardList.mm:
(-[WKBackForwardList _removeAllItems]):
(-[WKBackForwardList _clear]):
* UIProcess/API/Cocoa/WKBackForwardListPrivate.h:
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::removeAllItems):
* UIProcess/WebBackForwardList.h:

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

6 years agoAdd iOS specific frame state member variables
andersca@apple.com [Tue, 24 Jun 2014 22:02:54 +0000 (22:02 +0000)]
Add iOS specific frame state member variables
https://bugs.webkit.org/show_bug.cgi?id=134268

Reviewed by Andreas Kling.

* Shared/SessionState.cpp:
(WebKit::FrameState::encode):
(WebKit::FrameState::decode):
* Shared/SessionState.h:
* UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::HistoryEntryDataDecoder::operator>>):
(WebKit::decodeBackForwardTreeNode):
* WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toFrameState):
(WebKit::applyFrameState):

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

6 years agoUse unsigneds instead of ints for indexes into a string in text layout code
mmaxfield@apple.com [Tue, 24 Jun 2014 21:04:15 +0000 (21:04 +0000)]
Use unsigneds instead of ints for indexes into a string in text layout code
https://bugs.webkit.org/show_bug.cgi?id=133592

Reviewed by Zalan Bujtas.

Migrate much of the text-handling code to use unsigneds for indexes into a string.

No new tests because there is no behavior change.

* WebCore.exp.in:
* platform/graphics/Font.cpp:
(WebCore::Font::drawText):
(WebCore::Font::drawEmphasisMarks):
(WebCore::Font::adjustSelectionRectForText):
(WebCore::computeUnderlineType):
* platform/graphics/Font.h:
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::getGlyphsAndAdvancesForSimpleText):
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawEmphasisMarksForSimpleText):
(WebCore::Font::drawGlyphBuffer):
(WebCore::Font::drawEmphasisMarks):
(WebCore::Font::adjustSelectionRectForSimpleText):
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::size):
(WebCore::GlyphBuffer::glyphs):
(WebCore::GlyphBuffer::advances):
(WebCore::GlyphBuffer::fontDataAt):
(WebCore::GlyphBuffer::advanceAt):
(WebCore::GlyphBuffer::offsetAt):
(WebCore::GlyphBuffer::reverse):
(WebCore::GlyphBuffer::offsetInString):
(WebCore::GlyphBuffer::swap):
* platform/graphics/GraphicsContext.cpp:
(WebCore::TextRunIterator::atEnd):
* platform/graphics/Latin1TextIterator.h:
(WebCore::Latin1TextIterator::Latin1TextIterator):
(WebCore::Latin1TextIterator::currentCharacter):
* platform/graphics/SimpleFontData.h:
* platform/graphics/SurrogatePairAwareTextIterator.cpp:
(WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):
* platform/graphics/SurrogatePairAwareTextIterator.h:
(WebCore::SurrogatePairAwareTextIterator::currentCharacter):
* platform/graphics/TextRun.h:
(WebCore::TextRun::length):
(WebCore::TextRun::charactersLength):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::glyphDataForCharacter):
(WebCore::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::advance):
(WebCore::WidthIterator::advanceOneCharacter):
* platform/graphics/WidthIterator.h:
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
(WebCore::Font::adjustSelectionRectForComplexText):
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::setNormalizedBuffer):
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::adjustSelectionRectForComplexText):
(WebCore::Font::getGlyphsAndAdvancesForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs):
* platform/graphics/win/FontCGWin.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::adjustSelectionRectForComplexText):
(WebCore::Font::getGlyphsAndAdvancesForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
* platform/graphics/wince/FontWinCE.cpp:
(WebCore::Font::drawGlyphs):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
(WebCore::Font::selectionRectForComplexText):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::isSelected):
(WebCore::InlineTextBox::selectionState):
(WebCore::adjustCharactersAndLengthForHyphen):
(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::selectionStartEnd):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::computeRectForReplacementMarker):
(WebCore::InlineTextBox::paintCompositionUnderline):
(WebCore::InlineTextBox::positionForOffset):
(WebCore::InlineTextBox::constructTextRun):
* rendering/InlineTextBox.h:
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::getStringToRender):
* rendering/RenderCombineText.h:
* rendering/svg/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::positionForOffset):
(WebCore::SVGInlineTextBox::localSelectionRect):
(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
(WebCore::SVGInlineTextBox::paintText):
* rendering/svg/SVGInlineTextBox.h:
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair):
(WebCore::SVGTextMetricsBuilder::advance):
* rendering/svg/SVGTextQuery.cpp:
(WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
(WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
(WebCore::SVGTextQuery::subStringLengthCallback):
(WebCore::SVGTextQuery::startPositionOfCharacterCallback):
(WebCore::SVGTextQuery::endPositionOfCharacterCallback):
(WebCore::SVGTextQuery::rotationOfCharacterCallback):
(WebCore::SVGTextQuery::extentOfCharacterCallback):
(WebCore::SVGTextQuery::characterNumberAtPositionCallback):
* rendering/svg/SVGTextQuery.h:
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
* rendering/svg/SVGTextRunRenderingContext.h:
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::applySVGGlyphSelection):
* svg/SVGFontData.h:

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

6 years agoWeb Inspector: TypeError when hovering over "Show All Nodes" button in the Dom Tree...
jonowells@apple.com [Tue, 24 Jun 2014 20:59:51 +0000 (20:59 +0000)]
Web Inspector: TypeError when hovering over "Show All Nodes" button in the Dom Tree inspector
https://bugs.webkit.org/show_bug.cgi?id=133699

Reviewed by Geoffrey Garen.

The call to element._createTooltipForNode() was failing because element was sometimes not a
DOMTreeOutline but rather only a TreeElement (in the case of the "Show All Nodes" button specifically).
A check for type fixes this issue.

* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._onmousemove): Check for presence of _createTooltipForNode.

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

6 years agoiOS WebKit2: block selection tends to prefer block to single words even when the...
enrica@apple.com [Tue, 24 Jun 2014 20:45:00 +0000 (20:45 +0000)]
iOS WebKit2: block selection tends to prefer block to single words even when the page is zoomed.
https://bugs.webkit.org/show_bug.cgi?id=134267
<rdar://problem/17138059>

Reviewed by Benjamin Poulain.

When trying to find the best selection match for the position where the tap occurs,
we need to take into account the page scale. This patch applies the scale factor
to the selection rect before comparing it with the desired size.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):

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

6 years agoAdd code to convert HistoryItem to PageState
andersca@apple.com [Tue, 24 Jun 2014 20:40:59 +0000 (20:40 +0000)]
Add code to convert HistoryItem to PageState
https://bugs.webkit.org/show_bug.cgi?id=134263

Reviewed by Andreas Kling.

* WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toHTTPBody):
(WebKit::toFrameState):
(WebKit::toPageState):
* WebProcess/WebCoreSupport/SessionStateConversion.h:

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

6 years agoREGRESSION (r169703): Invalid cast in JSC::asGetterSetter / JSC::JSObject::defineOwnN...
mhahnenberg@apple.com [Tue, 24 Jun 2014 20:29:27 +0000 (20:29 +0000)]
REGRESSION (r169703): Invalid cast in JSC::asGetterSetter / JSC::JSObject::defineOwnNonIndexProperty
https://bugs.webkit.org/show_bug.cgi?id=134046

Reviewed by Filip Pizlo.

* runtime/GetterSetter.h:
(JSC::asGetterSetter):
* runtime/JSObject.cpp:
(JSC::JSObject::defineOwnNonIndexProperty): We need to check for a CustomGetterSetter here as well as
a normal GetterSetter. If we encounter a CustomGetterSetter, we delete it, create a new normal GetterSetter,
and insert it like normal. We also need to check for CustomAccessors when checking for unconfigurable properties.

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

6 years ago[iOS WebKit2] Disable screen font substitution by default.
akling@apple.com [Tue, 24 Jun 2014 20:18:15 +0000 (20:18 +0000)]
[iOS WebKit2] Disable screen font substitution by default.
<https://webkit.org/b/134266>
<rdar://problem/17427740>

Just like OS X >= 10.9, screen font substitution should be disabled
by default in WebKit2 for iOS.

Reviewed by Anders Carlsson.

* Shared/WebPreferencesDefinitions.h:

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

6 years agoUnreviewed build fix.
eric.carlson@apple.com [Tue, 24 Jun 2014 19:59:58 +0000 (19:59 +0000)]
Unreviewed build fix.

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Cast variadic argument to int.

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

6 years ago[Win] MSVC mishandles enums in bitfields
bfulgham@apple.com [Tue, 24 Jun 2014 19:49:25 +0000 (19:49 +0000)]
[Win] MSVC mishandles enums in bitfields
https://bugs.webkit.org/show_bug.cgi?id=134237

Reviewed by Michael Saboff.

Replace uses of enum types in bit fields with unsigned to
avoid losing a bit to hold the sign value. This can result
in Windows interpreting the value of the field improperly.

../JavaScriptCore:
* bytecode/StructureStubInfo.h:
* parser/Nodes.h:

../WebCore:
* loader/ResourceLoaderOptions.h:
* platform/network/ResourceRequestBase.h:
* platform/network/cf/ResourceResponse.h:
* rendering/RenderLayer.h:
* rendering/RenderMarquee.h:

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

6 years agoTry to fix build.
antti@apple.com [Tue, 24 Jun 2014 19:38:01 +0000 (19:38 +0000)]
Try to fix build.

* WebCore.exp.in: Remove duplicate export, this should be in the iOS section only.

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

6 years ago[Mac] process raw VTT in-band captions
eric.carlson@apple.com [Tue, 24 Jun 2014 19:35:47 +0000 (19:35 +0000)]
[Mac] process raw VTT in-band captions
https://bugs.webkit.org/show_bug.cgi?id=134178

Reviewed by Jer Noble.

* CMakeLists.txt: Add ISOVTTCue.cpp|h.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.

* html/track/BufferedLineReader.h:
(WebCore::BufferedLineReader::reset): New, empty the input buffer.

Make it possible to process WebVTT captions.
* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::parser): Allocate, if necessary, and return a WebVTT parser.
(WebCore::InbandGenericTextTrack::parseWebVTTCueData): Pass a cue to the parser.
(WebCore::InbandGenericTextTrack::parseWebVTTFileHeader): Pass a VTT file header to the parser.
(WebCore::InbandGenericTextTrack::newCuesParsed): Parser callback.
(WebCore::InbandGenericTextTrack::newRegionsParsed): Ditto.
(WebCore::InbandGenericTextTrack::fileFailedToParse): Ditto.
* html/track/InbandGenericTextTrack.h:

* html/track/InbandTextTrack.h:

* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::parser): New, parser accessor.
(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): New, parse VTT data in an ISOWebVTTCue
    object.
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Cleanup.
(WebCore::InbandWebVTTTextTrack::newRegionsParsed): Implement.
(WebCore::InbandWebVTTTextTrack::fileFailedToParse): Change the error message.
* html/track/InbandWebVTTTextTrack.h:

* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::TextTrackCueGenericBoxElement): Change cue parameter
    from a pointer to a reference.
(WebCore::TextTrackCueGeneric::createDisplayTree): Ditto.

* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::create): Change cue parameter from a pointer to a reference.
(WebCore::VTTCueBox::VTTCueBox): Ditto.
(WebCore::VTTCueBox::getCue): Return a reference.
(WebCore::VTTCueBox::applyCSSProperties): m_cue is a reference, not a pointer.
(WebCore::VTTCue::create): New, create a VTTCue from WebVTTCueData.
(WebCore::VTTCue::VTTCue): New, internal constructor that takes a WebVTTCueData.
(WebCore::VTTCue::initialize): New, shared constructor initialization.
(WebCore::VTTCue::createDisplayTree): m_cue is a reference, not a pointer.
(WebCore::VTTCue::markFutureAndPastNodes): Ditto.
(WebCore::VTTCue::setCueSettings): Ditto.
* html/track/VTTCue.h:
(WebCore::VTTCueBox::create): Deleted.
(WebCore::VTTCue::create): Deleted.

* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parseFileHeader): New. Reset the line reader buffer and parser state,
    call the parser.
(WebCore::WebVTTParser::parseCueData): Create a cue from ISOWebVTTCue.
(WebCore::WebVTTParser::collectTimingsAndSettings): Return immediately if the string is empty.
(WebCore::WebVTTParser::collectTimeStamp): Ditto.
* html/track/WebVTTParser.h:
(WebCore::WebVTTCueData::originalStartTime): New.
(WebCore::WebVTTCueData::setOriginalStartTime): New.
(WebCore::WebVTTCueData::WebVTTCueData):

* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::getNewCues): Cleanup, use the new VTTCue::create.

Parse ISO WebVTT cue boxes.
* platform/graphics/ISOVTTCue.cpp: Added.
(WebCore::ISOBox::ISOBox):
(WebCore::ISOBox::peekType):
(WebCore::ISOBox::peekLength):
(WebCore::ISOBox::peekString):
(WebCore::vttCueBoxType):
(WebCore::vttIdBoxType):
(WebCore::vttSettingsBoxType):
(WebCore::vttPayloadBoxType):
(WebCore::vttCurrentTimeBoxType):
(WebCore::vttCueSourceIDBoxType):
(WebCore::ISOWebVTTCue::boxType):
(WebCore::ISOWebVTTCue::ISOWebVTTCue):
* platform/graphics/ISOVTTCue.h: Added.
(WebCore::ISOBox::boxHeaderSize):
(WebCore::ISOBox::length):
(WebCore::ISOBox::type):
(WebCore::ISOWebVTTCue::presentationTime):
(WebCore::ISOWebVTTCue::duration):
(WebCore::ISOWebVTTCue::sourceID):
(WebCore::ISOWebVTTCue::id):
(WebCore::ISOWebVTTCue::originalStartTime):
(WebCore::ISOWebVTTCue::settings):
(WebCore::ISOWebVTTCue::cueText):

* platform/graphics/InbandTextTrackPrivateClient.h:
(WebCore::InbandTextTrackPrivateClient::parseWebVTTFileHeader): New.

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Add a cue format parameter.
(WebCore::InbandTextTrackPrivateAVF::processCue): Call processNativeSamples.
(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Add logging. Minor cleanup.
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): New, process an array of
    CMSampleBuffers, create ISOWebVTTCue from the sample data.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:

* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
(WebCore::InbandTextTrackPrivateAVCF::InbandTextTrackPrivateAVCF):
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:
(WebCore::InbandTextTrackPrivateAVCF::create):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::processMediaSelectionOptions):
(WebCore::LegibleOutputData::LegibleOutputData):
(WebCore::AVFWrapper::processCue):
(WebCore::AVFWrapper::legibleOutputCallback):

* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
(WebCore::InbandTextTrackPrivateAVFObjC::create): Add a cue format parameter.
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
(WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC): Ditto.

* platform/graphics/avfoundation/InbandTextTrackPrivateLegacyAVFObjC.cpp:
(WebCore::InbandTextTrackPrivateLegacyAVFObjC::InbandTextTrackPrivateLegacyAVFObjC): Pass cue
    format to base class.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Improve logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Don't leak an NSDictionary.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Don't process media selection
    options until we have tracks.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass native samples as well as
    attributed strings to track.
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
* platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:
(WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):

* platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:
(WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):

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

6 years agoAdd PageState to HistoryItem conversion code
andersca@apple.com [Tue, 24 Jun 2014 19:18:49 +0000 (19:18 +0000)]
Add PageState to HistoryItem conversion code
https://bugs.webkit.org/show_bug.cgi?id=134259

Reviewed by Andreas Kling.

Source/WebKit2:
* Shared/SessionState.h:
* UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::decodeBackForwardTreeNode):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/SessionStateConversion.cpp: Added.
(WebKit::toFormData):
(WebKit::applyFrameState):
(WebKit::toHistoryItem):
* WebProcess/WebCoreSupport/SessionStateConversion.h: Added.

Source/WTF:
* wtf/Optional.h:
(WTF::Optional::valueOr):

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

6 years agoOnly flush layers when the exposed rect actually changes
antti@apple.com [Tue, 24 Jun 2014 19:09:11 +0000 (19:09 +0000)]
Only flush layers when the exposed rect actually changes
https://bugs.webkit.org/show_bug.cgi?id=134248

Reviewed by Anders Carlsson.

Source/WebCore:
* WebCore.exp.in:

Source/WebKit2:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):

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

6 years agoRemove references to "Shader.h" which doesn't currently exist in the project.
beidson@apple.com [Tue, 24 Jun 2014 18:23:10 +0000 (18:23 +0000)]
Remove references to "Shader.h" which doesn't currently exist in the project.

Rubberstamped by Andreas Kling.

* WebCore.xcodeproj/project.pbxproj:

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

6 years ago[iOS] DOMWindow::outerWidth and outerHeight don't return useful values, so return 0.
mhock@apple.com [Tue, 24 Jun 2014 17:44:48 +0000 (17:44 +0000)]
[iOS] DOMWindow::outerWidth and outerHeight don't return useful values, so return 0.
Also, revert r169281.
https://bugs.webkit.org/show_bug.cgi?id=134233
<rdar://problem/17060183>

Reviewed by Benjamin Poulain.

Source/WebCore:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::outerHeight):
(WebCore::DOMWindow::outerWidth):

Source/WebKit2:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::windowFrame): Deleted.
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::convertToUserSpace):

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

6 years agoFixed the iOS build after r170358.
mitz@apple.com [Tue, 24 Jun 2014 17:29:11 +0000 (17:29 +0000)]
Fixed the iOS build after r170358.

* WebView/WebView.mm:
(kit):

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

6 years agoInitialize WKWebViewConfiguration properties to their default values.
commit-queue@webkit.org [Tue, 24 Jun 2014 17:24:17 +0000 (17:24 +0000)]
Initialize WKWebViewConfiguration properties to their default values.
https://bugs.webkit.org/show_bug.cgi?id=134216

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-06-24
Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
add -init method to initialize _mediaPlaybackRequiresUserAction and _mediaPlaybackAllowsAirPlay.

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

6 years agoDon't set AudioSession active while interrupted.
commit-queue@webkit.org [Tue, 24 Jun 2014 17:20:36 +0000 (17:20 +0000)]
Don't set AudioSession active while interrupted.
https://bugs.webkit.org/show_bug.cgi?id=134239

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

To activate the AudioSession there must be a session with audio or video
and being playing or paused.

* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::hasActive): added
(WebCore::MediaSessionManager::beginInterruption): updateSessionState
(WebCore::MediaSessionManager::sessionWillBeginPlayback): updateSessionState
* platform/audio/MediaSessionManager.h: declare hasActive()
* platform/audio/mac/MediaSessionManagerMac.cpp:
(MediaSessionManager::updateSessionState): use hasActive()

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

6 years agoAdd missing semicolon.
andersca@apple.com [Tue, 24 Jun 2014 17:18:26 +0000 (17:18 +0000)]
Add missing semicolon.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateVisibleContentRects]):

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

6 years agoRemove unused history visit code from WebHistoryItem
andersca@apple.com [Tue, 24 Jun 2014 17:17:27 +0000 (17:17 +0000)]
Remove unused history visit code from WebHistoryItem
https://bugs.webkit.org/show_bug.cgi?id=134201

Reviewed by Sam Weinig.

* History/HistoryPropertyList.h:
* History/HistoryPropertyList.mm:
(HistoryPropertyListWriter::HistoryPropertyListWriter):
(HistoryPropertyListWriter::writeHistoryItem):
* History/WebHistory.mm:
(-[WebHistoryPrivate visitedURL:withTitle:]):
(-[WebHistoryPrivate addItem:discardDuplicate:]):
(-[WebHistory _visitedURL:withTitle:method:wasFailure:]):
(-[WebHistoryPrivate visitedURL:withTitle:increaseVisitCount:]): Deleted.
(-[WebHistory _visitedURL:withTitle:method:wasFailure:increaseVisitCount:]): Deleted.
* History/WebHistoryInternal.h:
* History/WebHistoryItem.mm:
(-[WebHistoryItem copyWithZone:]):
(-[WebHistoryItem initFromDictionaryRepresentation:]):
(-[WebHistoryItem _visitedWithTitle:]):
(-[WebHistoryItem setVisitCount:]): Deleted.
(-[WebHistoryItem _mergeAutoCompleteHints:]): Deleted.
(-[WebHistoryItem _visitedWithTitle:increaseVisitCount:]): Deleted.
(-[WebHistoryItem _recordInitialVisit]): Deleted.
(timeToDay): Deleted.
(-[WebHistoryItem _padDailyCountsForNewVisit:]): Deleted.
(-[WebHistoryItem _collapseDailyVisitsToWeekly]): Deleted.
(-[WebHistoryItem _recordVisitAtTime:increaseVisitCount:]): Deleted.
(-[WebHistoryItem _setLastVisitedTimeInterval:]): Deleted.
* History/WebHistoryItemInternal.h:
* History/WebHistoryItemPrivate.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::updateGlobalHistory):

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

6 years agoREGRESSION(r170336): Crash in HTMLMediaElement::seekTimerFired()
jer.noble@apple.com [Tue, 24 Jun 2014 17:05:09 +0000 (17:05 +0000)]
REGRESSION(r170336): Crash in HTMLMediaElement::seekTimerFired()
https://bugs.webkit.org/show_bug.cgi?id=134253

Rubber-stamped by Eric Carlson.

Now that seekWithTolerance() has been split up into an asyncronous section, the null-checks in seekWithTolerance()
need to be re-performed in seekTimerFired(), in case the m_player has been cleared between when the seek was initiated
and when the asynchronous section is performed.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::seekTimerFired):

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

6 years agoUnreviewed, update my list of email addresses.
mahesh.kulkarni@nokia.com [Tue, 24 Jun 2014 16:47:33 +0000 (16:47 +0000)]
Unreviewed, update my list of email addresses.

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

6 years ago[Win] Clean up and refactor WinLauncher
bfulgham@apple.com [Tue, 24 Jun 2014 16:18:53 +0000 (16:18 +0000)]
[Win] Clean up and refactor WinLauncher
https://bugs.webkit.org/show_bug.cgi?id=134209

Reviewed by Tim Thorton.

Relanding r170339 and r170340 with correct WinLauncher.h file.

* WinLauncher/Common.cpp: Copied from WinLauncher/WinLauncher.cpp.
(PrintView):
(ToggleMenuItem):
(WndProc):
(BackButtonProc):
(ForwardButtonProc):
(loadURL):
(shouldUseFullDesktop): Deleted.
(SimpleEventListener::SimpleEventListener): Deleted.
(SimpleEventListener::handleEvent): Deleted.
(WinLauncherWebHost::updateAddressBar): Deleted.
(WinLauncherWebHost::didFailProvisionalLoadWithError): Deleted.
(WinLauncherWebHost::QueryInterface): Deleted.
(WinLauncherWebHost::AddRef): Deleted.
(WinLauncherWebHost::Release): Deleted.
(updateMenuItemForHistoryItem): Deleted.
(showLastVisitedSites): Deleted.
(WinLauncherWebHost::didFinishLoadForFrame): Deleted.
(resizeSubViews): Deleted.
(setToDefaultPreferences): Deleted.
(wWinMain): Deleted.
(MyRegisterClass): Deleted.
(LaunchInspector): Deleted.
(NavigateForwardOrBackward): Deleted.
(NavigateToHistory): Deleted.
* WinLauncher/DOMDefaultImpl.cpp: Copied from WinLauncher/DOMDefaultImpl.h.
(DOMEventListener::Release):
(WebScriptObject::WebScriptObject): Deleted.
(WebScriptObject::~WebScriptObject): Deleted.
(WebScriptObject::throwException): Deleted.
(WebScriptObject::callWebScriptMethod): Deleted.
(WebScriptObject::evaluateWebScript): Deleted.
(WebScriptObject::removeWebScriptKey): Deleted.
(WebScriptObject::stringRepresentation): Deleted.
(WebScriptObject::webScriptValueAtIndex): Deleted.
(WebScriptObject::setWebScriptValueAtIndex): Deleted.
(WebScriptObject::setException): Deleted.
(DOMEventListener::throwException): Deleted.
(DOMEventListener::callWebScriptMethod): Deleted.
(DOMEventListener::evaluateWebScript): Deleted.
(DOMEventListener::removeWebScriptKey): Deleted.
(DOMEventListener::stringRepresentation): Deleted.
(DOMEventListener::webScriptValueAtIndex): Deleted.
(DOMEventListener::setWebScriptValueAtIndex): Deleted.
(DOMEventListener::setException): Deleted.
(DOMEventListener::handleEvent): Deleted.
* WinLauncher/DOMDefaultImpl.h:
(WebScriptObject::QueryInterface): Deleted.
(WebScriptObject::AddRef): Deleted.
(WebScriptObject::Release): Deleted.
(DOMObject::QueryInterface): Deleted.
(DOMEventListener::QueryInterface): Deleted.
(DOMEventListener::AddRef): Deleted.
(DOMEventListener::Release): Deleted.
* WinLauncher/WinLauncher.cpp:
(WinLauncher::WinLauncher):
(WinLauncher::init):
(WinLauncher::prepareViews):
(WinLauncher::setFrameLoadDelegate):
(WinLauncher::setUIDelegate):
(WinLauncher::setAccessibilityDelegate):
(WinLauncher::mainFrame):
(WinLauncher::seedInitialDefaultPreferences):
(WinLauncher::setToDefaultPreferences):
(updateMenuItemForHistoryItem):
(WinLauncher::showLastVisitedSites):
(WinLauncher::launchInspector):
(WinLauncher::navigateForwardOrBackward):
(WinLauncher::navigateToHistory):
(WinLauncher::goBack):
(WinLauncher::goForward):
(WinLauncher::loadURL):
(shouldUseFullDesktop): Deleted.
(SimpleEventListener::SimpleEventListener): Deleted.
(SimpleEventListener::handleEvent): Deleted.
(WinLauncherWebHost::updateAddressBar): Deleted.
(WinLauncherWebHost::didFailProvisionalLoadWithError): Deleted.
(WinLauncherWebHost::QueryInterface): Deleted.
(WinLauncherWebHost::AddRef): Deleted.
(WinLauncherWebHost::Release): Deleted.
(showLastVisitedSites): Deleted.
(WinLauncherWebHost::didFinishLoadForFrame): Deleted.
(resizeSubViews): Deleted.
(subclassForLayeredWindow): Deleted.
(computeFullDesktopFrame): Deleted.
(DllMain): Deleted.
(getAppDataFolder): Deleted.
(setToDefaultPreferences): Deleted.
(setCacheFolder): Deleted.
(createCrashReport): Deleted.
(wWinMain): Deleted.
(MyRegisterClass): Deleted.
(AbortProc): Deleted.
(getPrinterDC): Deleted.
(initDocStruct): Deleted.
(PrintView): Deleted.
(ToggleMenuItem): Deleted.
(LaunchInspector): Deleted.
(NavigateForwardOrBackward): Deleted.
(NavigateToHistory): Deleted.
(WndProc): Deleted.
(EditProc): Deleted.
(BackButtonProc): Deleted.
(ForwardButtonProc): Deleted.
(About): Deleted.
(loadURL): Deleted.
(dllLauncherEntryPoint): Deleted.
* WinLauncher/WinLauncher.h:
(WinLauncher::standardPreferences):
(WinLauncher::privatePreferences):
(WinLauncher::hasWebView):
(WinLauncher::usesLayeredWebView):
(WinLauncherWebHost::WinLauncherWebHost): Deleted.
(WinLauncherWebHost::didStartProvisionalLoadForFrame): Deleted.
(WinLauncherWebHost::didReceiveServerRedirectForProvisionalLoadForFrame): Deleted.
(WinLauncherWebHost::didCommitLoadForFrame): Deleted.
(WinLauncherWebHost::didReceiveTitle): Deleted.
(WinLauncherWebHost::didChangeIcons): Deleted.
(WinLauncherWebHost::didReceiveIcon): Deleted.
(WinLauncherWebHost::didFailLoadWithError): Deleted.
(WinLauncherWebHost::didChangeLocationWithinPageForFrame): Deleted.
(WinLauncherWebHost::willPerformClientRedirectToURL): Deleted.
(WinLauncherWebHost::didCancelClientRedirectForFrame): Deleted.
(WinLauncherWebHost::willCloseFrame): Deleted.
(WinLauncherWebHost::windowScriptObjectAvailable): Deleted.
(WinLauncherWebHost::didClearWindowObject): Deleted.
* WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj:
* WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj.filters:
* WinLauncher/WinLauncherReplace.h:
(processCrashReport):
* WinLauncher/WinLauncherWebHost.cpp: Copied from WinLauncher/WinLauncher.cpp.
(WinLauncherWebHost::updateAddressBar):
(WinLauncherWebHost::QueryInterface):
(WinLauncherWebHost::AddRef):
(WinLauncherWebHost::Release):
(WinLauncherWebHost::didFinishLoadForFrame):
(shouldUseFullDesktop): Deleted.
(updateMenuItemForHistoryItem): Deleted.
(showLastVisitedSites): Deleted.
(resizeSubViews): Deleted.
(subclassForLayeredWindow): Deleted.
(computeFullDesktopFrame): Deleted.
(DllMain): Deleted.
(getAppDataFolder): Deleted.
(setToDefaultPreferences): Deleted.
(setCacheFolder): Deleted.
(createCrashReport): Deleted.
(wWinMain): Deleted.
(MyRegisterClass): Deleted.
(AbortProc): Deleted.
(getPrinterDC): Deleted.
(initDocStruct): Deleted.
(PrintView): Deleted.
(ToggleMenuItem): Deleted.
(LaunchInspector): Deleted.
(NavigateForwardOrBackward): Deleted.
(NavigateToHistory): Deleted.
(WndProc): Deleted.
(EditProc): Deleted.
(BackButtonProc): Deleted.
(ForwardButtonProc): Deleted.
(About): Deleted.
(loadURL): Deleted.
(dllLauncherEntryPoint): Deleted.
* WinLauncher/WinLauncherWebHost.h: Copied from WinLauncher/WinLauncher.h.
(WinLauncherWebHost::WinLauncherWebHost):
(WinLauncherWebHost::didStartProvisionalLoadForFrame):
(WinLauncherWebHost::didReceiveServerRedirectForProvisionalLoadForFrame):
(WinLauncherWebHost::didCommitLoadForFrame):
(WinLauncherWebHost::didReceiveTitle):
(WinLauncherWebHost::didChangeIcons):
(WinLauncherWebHost::didReceiveIcon):
(WinLauncherWebHost::didFailLoadWithError):
(WinLauncherWebHost::didChangeLocationWithinPageForFrame):
(WinLauncherWebHost::willPerformClientRedirectToURL):
(WinLauncherWebHost::didCancelClientRedirectForFrame):
(WinLauncherWebHost::willCloseFrame):
(WinLauncherWebHost::windowScriptObjectAvailable):
(WinLauncherWebHost::didClearWindowObject):
* WinLauncher/WinMain.cpp: Copied from WinLauncher/WinLauncher.cpp.
(wWinMain):
(MyRegisterClass):
(shouldUseFullDesktop): Deleted.
(SimpleEventListener::SimpleEventListener): Deleted.
(SimpleEventListener::handleEvent): Deleted.
(WinLauncherWebHost::updateAddressBar): Deleted.
(WinLauncherWebHost::didFailProvisionalLoadWithError): Deleted.
(WinLauncherWebHost::QueryInterface): Deleted.
(WinLauncherWebHost::AddRef): Deleted.
(WinLauncherWebHost::Release): Deleted.
(updateMenuItemForHistoryItem): Deleted.
(showLastVisitedSites): Deleted.
(WinLauncherWebHost::didFinishLoadForFrame): Deleted.
(resizeSubViews): Deleted.
(subclassForLayeredWindow): Deleted.
(computeFullDesktopFrame): Deleted.
(DllMain): Deleted.
(getAppDataFolder): Deleted.
(setToDefaultPreferences): Deleted.
(setCacheFolder): Deleted.
(createCrashReport): Deleted.
(AbortProc): Deleted.
(getPrinterDC): Deleted.
(initDocStruct): Deleted.
(PrintView): Deleted.
(ToggleMenuItem): Deleted.
(LaunchInspector): Deleted.
(NavigateForwardOrBackward): Deleted.
(NavigateToHistory): Deleted.
(WndProc): Deleted.
(EditProc): Deleted.
(BackButtonProc): Deleted.
(ForwardButtonProc): Deleted.
(About): Deleted.
(loadURL): Deleted.
(dllLauncherEntryPoint): Deleted.

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

6 years agoFix unused parameter warnings if inspector is disabled
commit-queue@webkit.org [Tue, 24 Jun 2014 16:18:52 +0000 (16:18 +0000)]
Fix unused parameter warnings if inspector is disabled
https://bugs.webkit.org/show_bug.cgi?id=134244

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-06-24
Reviewed by Zalan Bujtas.

Source/WebCore:
No new tests, no behavior change.

* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::startProfiling):
(WebCore::InspectorInstrumentation::stopProfiling):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):

Source/WebKit2:
* WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
(WKBundleInspectorShow):
(WKBundleInspectorClose):
(WKBundleInspectorEvaluateScriptForTest):
(WKBundleInspectorSetPageProfilingEnabled):

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

6 years ago[MSE] Add null-check in sourceBufferPrivateAppendComplete().
jer.noble@apple.com [Tue, 24 Jun 2014 16:14:34 +0000 (16:14 +0000)]
[MSE] Add null-check in sourceBufferPrivateAppendComplete().
https://bugs.webkit.org/show_bug.cgi?id=133230

Reviewed by Eric Carlson.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Bail early if the
    SourceBuffer has been removed from the MediaSource.

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

6 years ago[iOS] getsectdata() is deprecated and we use it in DRT
mmaxfield@apple.com [Tue, 24 Jun 2014 16:05:11 +0000 (16:05 +0000)]
[iOS] getsectdata() is deprecated and we use it in DRT
https://bugs.webkit.org/show_bug.cgi?id=134122

Reviewed by Alexey Proskuryakov.

Migrate to using magic linker symbols.

No tests because there should be no behavior change

* DumpRenderTree/mac/DumpRenderTree.mm:
(activateFontsIOS):

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

6 years agoWKWebView doesn't respect -[UIScrollView contentInset]
andersca@apple.com [Tue, 24 Jun 2014 14:38:17 +0000 (14:38 +0000)]
WKWebView doesn't respect -[UIScrollView contentInset]
https://bugs.webkit.org/show_bug.cgi?id=134230
<rdar://problem/17429107>

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setHasCustomContentView:loadedMIMEType:WTF::]):
Call initWithFrame and pass the WKWebView along.

(-[WKWebView _adjustedContentOffset:]):
New helper method that takes a content offset as a CGPoint and offsets it by the computed content inset.

(-[WKWebView _computedContentInset]):
New helper method that returns the _obscuredInsets, or if it's zero, the scroll view's content inset.

(-[WKWebView _processDidExit]):
Use _computedContentInset.

(-[WKWebView _didCommitLayerTree:WebKit::]):
use _computedContentInset.

(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]):
Use _computedContentInset.

(-[WKWebView _scrollToContentOffset:WebCore::]):
Use _computedContentInset.

(-[WKWebView _updateVisibleContentRects]):
If we have a custom content view, call web_computedContentInsetDidChange.

(-[WKWebView _setObscuredInsets:]):
Don't call web_setObscuredInsets: if we have a custom content view.

* UIProcess/API/Cocoa/WKWebViewInternal.h:
Add new methods.

* UIProcess/Cocoa/WKWebViewContentProvider.h:
Add new methods.

* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_initWithFrame:webView:]):
Set the _webView and _scrollView ivars.

(-[WKPDFView _offsetForPageNumberIndicator]):
Get the computed content offset from the WKWebView.

(-[WKPDFView web_computedContentInsetDidChange]):
Update the page indicator.

(-[WKPDFView initWithFrame:]): Deleted.
(-[WKPDFView web_setObscuredInsets:]): Deleted.

* UIProcess/ios/WKScrollView.mm:
(-[WKScrollView setContentInset:]):
Call _updateVisibleContentRects.

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

6 years agoUnreviewed, rolling out r170337.
commit-queue@webkit.org [Tue, 24 Jun 2014 14:24:05 +0000 (14:24 +0000)]
Unreviewed, rolling out r170337.
https://bugs.webkit.org/show_bug.cgi?id=134250

caused 3 layout tests to crash on debug. (Requested by zalan
on #webkit).

Reverted changeset:

"Use unsigneds instead of ints for indexes into a string in
text layout code"
https://bugs.webkit.org/show_bug.cgi?id=133592
http://trac.webkit.org/changeset/170337

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

6 years agoSource/WebCore: [ATK] Don't ignore links rendered as blocks.
commit-queue@webkit.org [Tue, 24 Jun 2014 11:09:22 +0000 (11:09 +0000)]
Source/WebCore: [ATK] Don't ignore links rendered as blocks.
https://bugs.webkit.org/show_bug.cgi?id=130941

Patch by Jarek Czekalski <jarekczek@poczta.onet.pl> on 2014-06-24
Reviewed by Mario Sanchez Prada.

* /m/usr/src/webkit-trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(WebCore::AccessibilityObject::objectFocusedAndCaretOffsetUnignored): Don't ignore links
when they are renderered with display:block.

LayoutTests: [ATK] Extended the test for accessibility of text inside "span" block in "a" block
with the tests for caret movements in these cases.
https://bugs.webkit.org/show_bug.cgi?id=130941

Patch by Jarek Czekalski <jarekczek@poczta.onet.pl> on 2014-06-24
Reviewed by Mario Sanchez Prada.

* platform/gtk/accessibility/text-in-span-block-in-a-block-expected.txt:
* platform/gtk/accessibility/text-in-span-block-in-a-block.html:
Added testing for text-caret-moved signal. Added one more "a" element to the set.

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

6 years agoREGRESSION(r170235): Remove incorrect ifdef guard
commit-queue@webkit.org [Tue, 24 Jun 2014 11:02:42 +0000 (11:02 +0000)]
REGRESSION(r170235): Remove incorrect ifdef guard
https://bugs.webkit.org/show_bug.cgi?id=134246

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-06-24
Reviewed by Csaba Osztrogonác.

* WebView/WebView.mm:
(-[WebView _visibilityState]):

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

6 years agoName moving. Unreviewed.
jfernandez@igalia.com [Tue, 24 Jun 2014 10:09:22 +0000 (10:09 +0000)]
Name moving. Unreviewed.

* Scripts/webkitpy/common/config/contributors.json:

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

6 years agoRemove EFL WK1 watch category
gyuyoung.kim@samsung.com [Tue, 24 Jun 2014 09:22:00 +0000 (09:22 +0000)]
Remove EFL WK1 watch category
https://bugs.webkit.org/show_bug.cgi?id=134231

Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/common/config/watchlist: Removed EFL WK1 category.

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

6 years agoUnreviewed. Update GObject DOM bindings test results after r170351.
carlosgc@webkit.org [Tue, 24 Jun 2014 09:15:21 +0000 (09:15 +0000)]
Unreviewed. Update GObject DOM bindings test results after r170351.

* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:

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

6 years ago[EFL] Merge efl-wk2 and efl test expectations files
m.pakula@samsung.com [Tue, 24 Jun 2014 09:02:18 +0000 (09:02 +0000)]
[EFL] Merge efl-wk2 and efl test expectations files
https://bugs.webkit.org/show_bug.cgi?id=134245

Unreviewed gardening after removing WebKit1.

* platform/efl-wk2/TestExpectations: An empty file left, as deleting it may break flakiness dashboard.
* platform/efl/TestExpectations: Merged with platform/efl-wk2/TestExpectations.

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

6 years ago[JavaScriptCore] Enable concurrent JIT on EFL.
llango.u-szeged@partner.samsung.com [Tue, 24 Jun 2014 08:36:34 +0000 (08:36 +0000)]
[JavaScriptCore] Enable concurrent JIT on EFL.
https://bugs.webkit.org/show_bug.cgi?id=134242

Reviewed by Csaba Osztrogonác.

* wtf/Platform.h:

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

6 years ago[ATK] Remove some unused code from DumpRenderTree
k.czech@samsung.com [Tue, 24 Jun 2014 08:09:21 +0000 (08:09 +0000)]
[ATK] Remove some unused code from DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=134191

Reviewed by Chris Fleizach.

DumpRenderTree's accessibility code could be removed since GTK and EFL has stopped supporting WK1.

* DumpRenderTree/atk/AccessibilityCallbacks.h: Removed.
* DumpRenderTree/atk/AccessibilityCallbacksAtk.cpp: Removed.
* DumpRenderTree/atk/AccessibilityControllerAtk.cpp: Removed.
* DumpRenderTree/atk/AccessibilityNotificationHandlerAtk.cpp: Removed.
* DumpRenderTree/atk/AccessibilityNotificationHandlerAtk.h: Removed.
* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp: Removed.

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

6 years agoUnreviewed. Fix GTK+ build after r170309.
carlosgc@webkit.org [Tue, 24 Jun 2014 07:14:43 +0000 (07:14 +0000)]
Unreviewed. Fix GTK+ build after r170309.

Skip functions returning arrays in GObject DOM bindings.

* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction):

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

6 years agoDrop the cross organizational support requirement from reviewer nomination policy
rniwa@webkit.org [Tue, 24 Jun 2014 06:55:21 +0000 (06:55 +0000)]
Drop the cross organizational support requirement from reviewer nomination policy
https://bugs.webkit.org/show_bug.cgi?id=134240

Reviewed by Gyuyoung Kim.

Removed.

* coding/commit-review-policy.html:

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

6 years ago[EFL][WK2] Search field is not shown properly on doing ctrl+f on Minibrowser.
commit-queue@webkit.org [Tue, 24 Jun 2014 06:34:21 +0000 (06:34 +0000)]
[EFL][WK2] Search field is not shown properly on doing ctrl+f on Minibrowser.
https://bugs.webkit.org/show_bug.cgi?id=134025

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-06-23
Reviewed by Gyuyoung Kim.

Use EVAS_HINT_FILL in evas_object_size_hint_align_set() api.

* MiniBrowser/efl/main.c:
(window_create):

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

6 years agoUnreviewed, fix build warning.
ljaehun.lim@samsung.com [Tue, 24 Jun 2014 06:15:25 +0000 (06:15 +0000)]
Unreviewed, fix build warning.

Source/WebKit2/WebProcess/WebPage/DrawingArea.h:117:18: warning: unused parameter ‘wantsDidUpdateViewState’ [-Wunused-parameter]

* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::viewStateDidChange):

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

6 years ago[EFL] Replace RefPtr<Evas_Object> with UniquePtrEfl
ryuan.choi@samsung.com [Tue, 24 Jun 2014 06:12:02 +0000 (06:12 +0000)]
[EFL] Replace RefPtr<Evas_Object> with UniquePtrEfl
https://bugs.webkit.org/show_bug.cgi?id=134236

Reviewed by Gyuyoung Kim.

Source/WebCore:
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
(WebCore::RenderThemeEfl::loadTheme):
(WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
* platform/efl/RenderThemeEfl.h:
* platform/graphics/efl/CairoUtilitiesEfl.cpp:
(WebCore::evasObjectFromCairoImageSurface):
* platform/graphics/efl/CairoUtilitiesEfl.h:
* platform/graphics/efl/ImageEfl.cpp:
(WebCore::BitmapImage::getEvasObject):

Source/WebKit2:
* PlatformEfl.cmake:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::updateCursor):
* UIProcess/API/efl/EwkView.h:
* UIProcess/API/efl/SnapshotImageGL.cpp:
* UIProcess/API/efl/ewk_favicon_database.cpp:
(ewk_favicon_database_icon_get):
* UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp: Removed.

Source/WTF:
Although there are ref/unref for Evas_Object, it's bit odd so we should call evas_object_del to destroy it.
So, this patch replaced RefPtr<Evas_Object> with UniquePtrEfl for the simplicity.

* wtf/PlatformEfl.cmake: Removed RefPtrEfl.cpp from source list.
* wtf/efl/RefPtrEfl.cpp: Removed.
* wtf/efl/RefPtrEfl.h: Removed.

Tools:
* ImageDiff/efl/ImageDiff.cpp:
(calculateDifference):
(printImageDifferences):
(readImageFromStdin):
(main):

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

6 years agoRolling out r170340 and r170339.
dbates@webkit.org [Tue, 24 Jun 2014 05:45:54 +0000 (05:45 +0000)]
Rolling out r170340 and r170339.

Changeset r170339 broke the Apple Windows Debug and Release builds.

Reverted changesets:

"[Win] Build fix after r134209"
http://trac.webkit.org/changeset/170340

"[Win] Clean up and refactor WinLauncher"
https://bugs.webkit.org/show_bug.cgi?id=134209
http://trac.webkit.org/changeset/170339

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

6 years agoChapter forward/backward should seek to beginning/end.
commit-queue@webkit.org [Tue, 24 Jun 2014 04:38:17 +0000 (04:38 +0000)]
Chapter forward/backward should seek to beginning/end.
https://bugs.webkit.org/show_bug.cgi?id=134225

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

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController seekChapterBackward:]): forwards to -seekToBeginning
(-[WebAVPlayerController seekChapterForward:]): forwards to -seekToEnd

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

6 years ago[iOS][WK2] REGRESSION (r169324): Page jumps to top when you type into a text field
dbates@webkit.org [Tue, 24 Jun 2014 04:12:58 +0000 (04:12 +0000)]
[iOS][WK2] REGRESSION (r169324): Page jumps to top when you type into a text field
https://bugs.webkit.org/show_bug.cgi?id=134219
<rdar://problem/17279113>

Reviewed by Benjamin Poulain.

Fixes an issue where typing into a text field may cause a noticeable jump to the top of
the page.

Currently when updating the visual content rectangles we always constrain the scroll offset
(s_x, s_y) such that 0 <= s_x <= "content width" - "visible width" and 0 <= s_y <= "content height" - "visible height".
However the UIProcess may want to scroll the page by an offset outside of this range to
create a visually pleasing result. In particular, on iOS we may scroll the page slightly
outside of this range (e.g. s_y > 0 = "content height" - "visible height") when a form
control is focused so as to be consistent with platform convention.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects): Temporarily disable content edge constraint when
updating scroll offset.

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

6 years ago[Mac] Don't draw focus rings if we are animating controls
dino@apple.com [Tue, 24 Jun 2014 02:24:12 +0000 (02:24 +0000)]
[Mac] Don't draw focus rings if we are animating controls
https://bugs.webkit.org/show_bug.cgi?id=134232
<rdar://problem/17381121>

Reviewed by Tim Horton.

Controls in native apps do not draw their focus rings as they
animate (in Yosemite). Turn this off for WebKit too. It turns
out that when we were drawing them, they were in the wrong
place anyway.

Since we don't animate controls when testing, we can't really test this.

* platform/mac/ThemeMac.mm:
(WebCore::paintToggleButton): Only draw the focus ring if the
NSButtonCell is not animating.

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

6 years ago[ATK] Remove some unnecessary code from WebKitAccessibleWrapperAtk
k.czech@samsung.com [Tue, 24 Jun 2014 02:18:39 +0000 (02:18 +0000)]
[ATK] Remove some unnecessary code from WebKitAccessibleWrapperAtk
https://bugs.webkit.org/show_bug.cgi?id=134193

Reviewed by Gyuyoung Kim.

It was used along with DRT. Since we have stopped support WK1/DRT, it won't be needed.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetFocusedElement): Deleted.
* accessibility/atk/WebKitAccessibleWrapperAtk.h:

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

6 years ago<rdar://problem/17413374> [iOS] Application cache size per origin is not limited
mitz@apple.com [Tue, 24 Jun 2014 01:23:08 +0000 (01:23 +0000)]
<rdar://problem/17413374> [iOS] Application cache size per origin is not limited
https://bugs.webkit.org/show_bug.cgi?id=134229

Reviewed by Anders Carlsson.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess): Set the default quota per origin to the same
value it is set in Legacy WebKit.

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

6 years ago[Win] Build fix after r134209
bfulgham@apple.com [Tue, 24 Jun 2014 00:56:43 +0000 (00:56 +0000)]
[Win] Build fix after r134209

* WinLauncher/WinMain.cpp: Must include the resources file
before Common.cpp.

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

6 years ago[Win] Clean up and refactor WinLauncher
bfulgham@apple.com [Tue, 24 Jun 2014 00:51:58 +0000 (00:51 +0000)]
[Win] Clean up and refactor WinLauncher
https://bugs.webkit.org/show_bug.cgi?id=134209

Reviewed by Tim Horton.

Make WinLauncher a class, and move all non-class driver functions
into "Common.cpp" and "WinMain.cpp". These files are distinct
to allow some internal tools to reuse the code in 'Common'.

* WinLauncher/Common.cpp: Added. Consists of code moved from
'WinLauncher.cpp' that can be reused for other tools.
(subclassForLayeredWindow):
(computeFullDesktopFrame):
(DllMain):
(getAppDataFolder):
(setCacheFolder):
(createCrashReport):
(AbortProc):
(getPrinterDC):
(initDocStruct):
(PrintView):
(ToggleMenuItem):
(WndProc):
(EditProc):
(BackButtonProc):
(ForwardButtonProc):
(About):
(loadURL):
(dllLauncherEntryPoint):
* WinLauncher/DOMDefaultImpl.cpp: Copied from WinLauncher/DOMDefaultImpl.h.
(DOMEventListener::Release):
(WebScriptObject::WebScriptObject): Deleted.
(WebScriptObject::~WebScriptObject): Deleted.
(WebScriptObject::throwException): Deleted.
(WebScriptObject::callWebScriptMethod): Deleted.
(WebScriptObject::evaluateWebScript): Deleted.
(WebScriptObject::removeWebScriptKey): Deleted.
(WebScriptObject::stringRepresentation): Deleted.
(WebScriptObject::webScriptValueAtIndex): Deleted.
(WebScriptObject::setWebScriptValueAtIndex): Deleted.
(WebScriptObject::setException): Deleted.
(DOMEventListener::throwException): Deleted.
(DOMEventListener::callWebScriptMethod): Deleted.
(DOMEventListener::evaluateWebScript): Deleted.
(DOMEventListener::removeWebScriptKey): Deleted.
(DOMEventListener::stringRepresentation): Deleted.
(DOMEventListener::webScriptValueAtIndex): Deleted.
(DOMEventListener::setWebScriptValueAtIndex): Deleted.
(DOMEventListener::setException): Deleted.
(DOMEventListener::handleEvent): Deleted.
* WinLauncher/DOMDefaultImpl.h:
(WebScriptObject::QueryInterface): Deleted.
(WebScriptObject::AddRef): Deleted.
(WebScriptObject::Release): Deleted.
(DOMObject::QueryInterface): Deleted.
(DOMEventListener::QueryInterface): Deleted.
(DOMEventListener::AddRef): Deleted.
(DOMEventListener::Release): Deleted.
* WinLauncher/WinLauncher.cpp: Converted stand-alone implementation
into a C++ class and removed WinAPI code.
(WinLauncher::WinLauncher):
(WinLauncher::init):
(WinLauncher::prepareViews):
(WinLauncher::setFrameLoadDelegate):
(WinLauncher::setUIDelegate):
(WinLauncher::setAccessibilityDelegate):
(WinLauncher::mainFrame):
(WinLauncher::seedInitialDefaultPreferences):
(WinLauncher::setToDefaultPreferences):
(updateMenuItemForHistoryItem):
(WinLauncher::showLastVisitedSites):
(WinLauncher::launchInspector):
(WinLauncher::navigateForwardOrBackward):
(WinLauncher::navigateToHistory):
(WinLauncher::goBack):
(WinLauncher::goForward):
(WinLauncher::loadURL):
(shouldUseFullDesktop): Deleted.
(SimpleEventListener::SimpleEventListener): Deleted.
(SimpleEventListener::handleEvent): Deleted.
(WinLauncherWebHost::updateAddressBar): Deleted.
(WinLauncherWebHost::didFailProvisionalLoadWithError): Deleted.
(WinLauncherWebHost::QueryInterface): Deleted.
(WinLauncherWebHost::AddRef): Deleted.
(WinLauncherWebHost::Release): Deleted.
(showLastVisitedSites): Deleted.
(WinLauncherWebHost::didFinishLoadForFrame): Deleted.
(resizeSubViews): Deleted.
(subclassForLayeredWindow): Deleted.
(computeFullDesktopFrame): Deleted.
(DllMain): Deleted.
(getAppDataFolder): Deleted.
(setToDefaultPreferences): Deleted.
(setCacheFolder): Deleted.
(createCrashReport): Deleted.
(wWinMain): Deleted.
(MyRegisterClass): Deleted.
(AbortProc): Deleted.
(getPrinterDC): Deleted.
(initDocStruct): Deleted.
(PrintView): Deleted.
(ToggleMenuItem): Deleted.
(LaunchInspector): Deleted.
(NavigateForwardOrBackward): Deleted.
(NavigateToHistory): Deleted.
(WndProc): Deleted.
(EditProc): Deleted.
(BackButtonProc): Deleted.
(ForwardButtonProc): Deleted.
(About): Deleted.
(loadURL): Deleted.
(dllLauncherEntryPoint): Deleted.
* WinLauncher/WinLauncher.h: Removed.
* WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj:
* WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj.filters:
* WinLauncher/WinLauncherReplace.h:
(processCrashReport):
* WinLauncher/WinLauncherWebHost.cpp: Added.
(SimpleEventListener::SimpleEventListener):
(SimpleEventListener::handleEvent):
(WinLauncherWebHost::updateAddressBar):
(WinLauncherWebHost::didFailProvisionalLoadWithError):
(WinLauncherWebHost::QueryInterface):
(WinLauncherWebHost::AddRef):
(WinLauncherWebHost::Release):
(WinLauncherWebHost::didFinishLoadForFrame):
* WinLauncher/WinLauncherWebHost.h: Copied from WinLauncher/WinLauncher.h.
Moved WinLauncherWebHost implementation from WinLauncher.cpp into
its own set of files.
(WinLauncherWebHost::WinLauncherWebHost):
(WinLauncherWebHost::didStartProvisionalLoadForFrame):
(WinLauncherWebHost::didReceiveServerRedirectForProvisionalLoadForFrame):
(WinLauncherWebHost::didCommitLoadForFrame):
(WinLauncherWebHost::didReceiveTitle):
(WinLauncherWebHost::didChangeIcons):
(WinLauncherWebHost::didReceiveIcon):
(WinLauncherWebHost::didFailLoadWithError):
(WinLauncherWebHost::didChangeLocationWithinPageForFrame):
(WinLauncherWebHost::willPerformClientRedirectToURL):
(WinLauncherWebHost::didCancelClientRedirectForFrame):
(WinLauncherWebHost::willCloseFrame):
(WinLauncherWebHost::windowScriptObjectAvailable):
(WinLauncherWebHost::didClearWindowObject):
* WinLauncher/WinMain.cpp: Added. This consists of code from
WinLauncher that is unique to the WinLauncher utility, and is
not part of the WinLauncher class.
(wWinMain):
(MyRegisterClass):

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

6 years agoUnreviewed, EFL build fix after r170330.
ryuan.choi@samsung.com [Tue, 24 Jun 2014 00:49:59 +0000 (00:49 +0000)]
Unreviewed, EFL build fix after r170330.

* WebProcess/WebPage/WebPage.cpp: Guard WKStringCF.h with PLATFORM(COCOA) macro.

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

6 years agoUse unsigneds instead of ints for indexes into a string in text layout code
mmaxfield@apple.com [Tue, 24 Jun 2014 00:29:44 +0000 (00:29 +0000)]
Use unsigneds instead of ints for indexes into a string in text layout code
https://bugs.webkit.org/show_bug.cgi?id=133592

Reviewed by Zalan Bujtas.

Migrate much of the text-handling code to use unsigneds for indexes into a string.

No new tests because there is no behavior change.

* WebCore.exp.in:
* platform/graphics/Font.cpp:
(WebCore::Font::drawText):
(WebCore::Font::drawEmphasisMarks):
(WebCore::Font::adjustSelectionRectForText):
(WebCore::computeUnderlineType):
* platform/graphics/Font.h:
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::getGlyphsAndAdvancesForSimpleText):
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawEmphasisMarksForSimpleText):
(WebCore::Font::drawGlyphBuffer):
(WebCore::Font::drawEmphasisMarks):
(WebCore::Font::adjustSelectionRectForSimpleText):
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::size):
(WebCore::GlyphBuffer::glyphs):
(WebCore::GlyphBuffer::advances):
(WebCore::GlyphBuffer::fontDataAt):
(WebCore::GlyphBuffer::advanceAt):
(WebCore::GlyphBuffer::offsetAt):
(WebCore::GlyphBuffer::reverse):
(WebCore::GlyphBuffer::offsetInString):
(WebCore::GlyphBuffer::swap):
* platform/graphics/GraphicsContext.cpp:
(WebCore::TextRunIterator::atEnd):
* platform/graphics/Latin1TextIterator.h:
(WebCore::Latin1TextIterator::Latin1TextIterator):
(WebCore::Latin1TextIterator::currentCharacter):
* platform/graphics/SimpleFontData.h:
* platform/graphics/SurrogatePairAwareTextIterator.cpp:
(WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):
* platform/graphics/SurrogatePairAwareTextIterator.h:
(WebCore::SurrogatePairAwareTextIterator::currentCharacter):
* platform/graphics/TextRun.h:
(WebCore::TextRun::length):
(WebCore::TextRun::charactersLength):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::glyphDataForCharacter):
(WebCore::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::advance):
(WebCore::WidthIterator::advanceOneCharacter):
* platform/graphics/WidthIterator.h:
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
(WebCore::Font::adjustSelectionRectForComplexText):
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::setNormalizedBuffer):
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::adjustSelectionRectForComplexText):
(WebCore::Font::getGlyphsAndAdvancesForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs):
* platform/graphics/win/FontCGWin.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::adjustSelectionRectForComplexText):
(WebCore::Font::getGlyphsAndAdvancesForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
* platform/graphics/wince/FontWinCE.cpp:
(WebCore::Font::drawGlyphs):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
(WebCore::Font::selectionRectForComplexText):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::isSelected):
(WebCore::InlineTextBox::selectionState):
(WebCore::adjustCharactersAndLengthForHyphen):
(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::selectionStartEnd):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::computeRectForReplacementMarker):
(WebCore::InlineTextBox::paintCompositionUnderline):
(WebCore::InlineTextBox::positionForOffset):
(WebCore::InlineTextBox::constructTextRun):
* rendering/InlineTextBox.h:
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::getStringToRender):
* rendering/RenderCombineText.h:
* rendering/svg/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::positionForOffset):
(WebCore::SVGInlineTextBox::localSelectionRect):
(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
(WebCore::SVGInlineTextBox::paintText):
* rendering/svg/SVGInlineTextBox.h:
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair):
(WebCore::SVGTextMetricsBuilder::advance):
* rendering/svg/SVGTextQuery.cpp:
(WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
(WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
(WebCore::SVGTextQuery::subStringLengthCallback):
(WebCore::SVGTextQuery::startPositionOfCharacterCallback):
(WebCore::SVGTextQuery::endPositionOfCharacterCallback):
(WebCore::SVGTextQuery::rotationOfCharacterCallback):
(WebCore::SVGTextQuery::extentOfCharacterCallback):
(WebCore::SVGTextQuery::characterNumberAtPositionCallback):
* rendering/svg/SVGTextQuery.h:
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
* rendering/svg/SVGTextRunRenderingContext.h:
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::applySVGGlyphSelection):
* svg/SVGFontData.h:

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

6 years agoHTMLMediaElement seek algorithm should allow cancelling previous seeks.
jer.noble@apple.com [Tue, 24 Jun 2014 00:08:25 +0000 (00:08 +0000)]
HTMLMediaElement seek algorithm should allow cancelling previous seeks.
https://bugs.webkit.org/show_bug.cgi?id=134116

Reviewed by Eric Carlson.

Source/WebCore:
Test: media/video-seek-double.html

Fulfill the requirement of the §4.7.14.9 seeking algorithm to do steps 5+ asynchronously and cancel
previous instances of the algorithm.

For the html/ parts of the algorithm, implement this by adding a seek timer, which when fired will
issue steps 5-12. MediaPlayerPrivateAVFoundation will already coalesce multiple seek operations, so nothing
additional needs be done there.  However, MediaPlayerPrivateMediaSourceAVFObjC needs to implement the same
pending seek logic in case additional seeks were issued after the html/ algorithm reached step 12.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize the new m_seekTimer.
(WebCore::HTMLMediaElement::parseAttribute): Clear the seek timer.
(WebCore::HTMLMediaElement::seekInternal): Differentiate between DOM seeks and internal seeks.
(WebCore::HTMLMediaElement::seekWithTolerance:) Split into the seekTimerFired() method.
(WebCore::HTMLMediaElement::seekTimerFired:) Added, split from seekWithTolerance().
* html/HTMLMediaElement.h:
* html/MediaController.cpp:
(MediaController::bringElementUpToSpeed): Call seekInternal().
(WebCore::HTMLMediaElement::PendingSeek::PendingSeek): Added convenience struct for storing seek requests.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::PendingSeek::PendingSeek): Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Modify the time jumped
    handler to not clear the m_seeking flag if another seek request is pending.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):

LayoutTests:
* media/video-seek-double-expected.txt: Added.
* media/video-seek-double.html: Added.

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

6 years ago[WK2] Use the page background color instead of white when swipe snapshots were purged...
timothy_horton@apple.com [Tue, 24 Jun 2014 00:03:15 +0000 (00:03 +0000)]
[WK2] Use the page background color instead of white when swipe snapshots were purged (134218)
https://bugs.webkit.org/show_bug.cgi?id=134218
<rdar://problem/17426454>

Reviewed by Benjamin Poulain.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateScrollViewBackground]):
(-[WKWebView WebKit::]):
* UIProcess/API/mac/WKView.mm:
(-[WKView _takeViewSnapshot]):
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::shouldUseSnapshotForSize):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::retrieveSnapshotForItem): Deleted.
* UIProcess/mac/ViewSnapshotStore.h:
Store a color along with each snapshot.
Set the background color of the swipe snapshot layer accordingly.

* WebCore.exp.in:

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

6 years agoAdd -[WKBackForwardList _removeAllItems]
andersca@apple.com [Mon, 23 Jun 2014 23:56:51 +0000 (23:56 +0000)]
Add -[WKBackForwardList _removeAllItems]
https://bugs.webkit.org/show_bug.cgi?id=134227
<rdar://problem/17291623>

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKBackForwardList.mm:
(-[WKBackForwardList _removeAllItems]):
* UIProcess/API/Cocoa/WKBackForwardListPrivate.h: Added.
* WebKit2.xcodeproj/project.pbxproj:

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

6 years ago[iOS] remove InbandTextTrackPrivateAVFIOS
eric.carlson@apple.com [Mon, 23 Jun 2014 23:45:01 +0000 (23:45 +0000)]
[iOS] remove InbandTextTrackPrivateAVFIOS
https://bugs.webkit.org/show_bug.cgi?id=134220

Reviewed by Benjamin Poulain.

* WebCore.xcodeproj/project.pbxproj: Remove references to InbandTextTrackPrivateAVFIOS.

* platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h: Removed.
* platform/graphics/ios/InbandTextTrackPrivateAVFIOS.mm: Removed.

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

6 years agoUnreviewed, rolling out r170323.
commit-queue@webkit.org [Mon, 23 Jun 2014 23:17:00 +0000 (23:17 +0000)]
Unreviewed, rolling out r170323.
https://bugs.webkit.org/show_bug.cgi?id=134224

lots of build breakage (Requested by bradeeoh on #webkit).

Reverted changeset:

"[Mac] process raw VTT in-band captions"
https://bugs.webkit.org/show_bug.cgi?id=134178
http://trac.webkit.org/changeset/170323

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

6 years ago<rdar://problem/17413498> [Cocoa] Expose WebPreferences::offlineWebApplicationCacheEn...
mitz@apple.com [Mon, 23 Jun 2014 23:16:09 +0000 (23:16 +0000)]
<rdar://problem/17413498> [Cocoa] Expose WebPreferences::offlineWebApplicationCacheEnabled
https://bugs.webkit.org/show_bug.cgi?id=134217

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _offlineApplicationCacheIsEnabled]):
(-[WKPreferences _setOfflineApplicationCacheIsEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Added _offlineWebApplicationCacheIsEnabled
property.

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

6 years agoAdd SPI for Injected Bundle to provide user agent for a given URL.
commit-queue@webkit.org [Mon, 23 Jun 2014 23:15:10 +0000 (23:15 +0000)]
Add SPI for Injected Bundle to provide user agent for a given URL.
https://bugs.webkit.org/show_bug.cgi?id=133562

Patch by Grant Kennell <gkennell@apple.com> on 2014-06-23
Reviewed by Sam Weinig.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
  Added delegate method to WebProcess PluIn protocol to provide UserAgent per URL.
* WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h:
  Added new typedef for function pointer for this new delegate call.
  Added new version (V8) of bundle loader client struct containing
  a function pointer of that new type.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(userAgentForURL): Makes delegate call with the new method.
(setUpPageLoaderClient): Sets the struct's new function pointer to the new method.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::userAgentForURL):
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::userAgent):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::userAgent): Began using the new API to ask for user agent
  instead of simply returning what had been stored.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::userAgent): Deleted.

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

6 years agoUnreviewed, rolling out r170324.
commit-queue@webkit.org [Mon, 23 Jun 2014 23:13:42 +0000 (23:13 +0000)]
Unreviewed, rolling out r170324.
https://bugs.webkit.org/show_bug.cgi?id=134223

lots of build breakage (Requested by bradeeoh on #webkit).

Reverted changeset:

"Unreviewed, revert an unintentional change committed with
r170323."
http://trac.webkit.org/changeset/170324

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

6 years agoFix release build
jpfau@apple.com [Mon, 23 Jun 2014 23:12:27 +0000 (23:12 +0000)]
Fix release build

* Modules/indexeddb/IDBTransactionCoordinator.cpp:
(WebCore::IDBTransactionCoordinator::canRunTransaction):

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

6 years agoDatabase process crashes when multiple transactions attempt to run at once
jpfau@apple.com [Mon, 23 Jun 2014 22:38:47 +0000 (22:38 +0000)]
Database process crashes when multiple transactions attempt to run at once
https://bugs.webkit.org/show_bug.cgi?id=134139

Reviewed by David Kilzer.

Source/WebCore:
Ensure that only one transaction can be running at a time.

Test: storage/indexeddb/transaction-overlapping.html

* Modules/indexeddb/IDBTransactionCoordinator.cpp:
(WebCore::IDBTransactionCoordinator::canRunTransaction):

LayoutTests:
* storage/indexeddb/transaction-overlapping-expected.txt: Added.
* storage/indexeddb/transaction-overlapping.html: Added.

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

6 years ago[iOS][wk2] Don't use view snapshots if the destination layer is a different size
timothy_horton@apple.com [Mon, 23 Jun 2014 22:12:49 +0000 (22:12 +0000)]
[iOS][wk2] Don't use view snapshots if the destination layer is a different size
https://bugs.webkit.org/show_bug.cgi?id=134210
<rdar://problem/17369463>

Reviewed by Benjamin Poulain.

* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
Only use the view snapshot if the snapshot is the same (in device space) size
as the layer it's going to be put into, and only if the device scale factor is
the same as it was when the snapshot was taken.

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

6 years ago[iOS][WK2] Make the state restore from HistoryItem more precise and reliable
benjamin@webkit.org [Mon, 23 Jun 2014 22:05:47 +0000 (22:05 +0000)]
[iOS][WK2] Make the state restore from HistoryItem more precise and reliable
https://bugs.webkit.org/show_bug.cgi?id=134150

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-23
Reviewed by Tim Horton.

Source/WebCore:
The two biggest changes for WebCore are:
-Store everything we need to handle changes of ViewportConfiguration on HistoryItem.
-Store the exposedRect with floating point coordinates.

* WebCore.exp.in:
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
We cannot determine a good scroll position from the WebProcess because the obscured insets can change
arbitrarily in the UIProcess. When we scroll here from the WebProcess, we would force an invalid position
to the UIProcess with the next layer tree update.

To avoid any problem, we prohibit scrolling when restoring the focus appearance.

* history/HistoryItem.cpp:
(WebCore::encodeRect):
(WebCore::encodeSize):
(WebCore::HistoryItem::encodeBackForwardTreeNode):
(WebCore::decodeRect):
(WebCore::decodeSize):
(WebCore::HistoryItem::decodeBackForwardTree):
* history/HistoryItem.h:
(WebCore::HistoryItem::exposedContentRect):
(WebCore::HistoryItem::setExposedContentRect):
(WebCore::HistoryItem::unobscuredContentRect):
(WebCore::HistoryItem::setUnobscuredContentRect):
(WebCore::HistoryItem::minimumLayoutSizeInScrollViewCoordinates):
(WebCore::HistoryItem::setMinimumLayoutSizeInScrollViewCoordinates):
(WebCore::HistoryItem::contentSize):
(WebCore::HistoryItem::setContentSize):
(WebCore::HistoryItem::exposedContentPosition): Deleted.
(WebCore::HistoryItem::setExposedContentPosition): Deleted.
* loader/HistoryController.cpp:
(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
* page/FrameView.h:
* platform/ScrollView.h:
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::exposedContentRect):
(WebCore::ScrollView::setExposedContentRect):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::didChangeVisibleRect):

Source/WebKit2:
This patch make several little improvements to improve how we restore the visible content rect and scale
from the HistoryItem.

The biggest architectural change is that the exposed rect is now restored on the UIProcess instead of the WebProcess,
this ensure we restore the same position regardless of any modification of obscured areas.

* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::lastLayerTreeTransactionId):
(WebKit::WebPage::updateVisibleContentRects):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
A race between the UIProcess and the WebProcess could cause the viewport of the next page to be influenced by updates
of the previous page. To avoid that, VisibleContentRectUpdateInfo keeps track of the last transaction seen at the time
of the update.

The WebProcess updates the size and scale of the content through layer tree updates. If an update was generated for a layer tree
update of the old page, none of the information is valid for the current content. Since the UIProcess drives the state in case of conflicts,
the WebProcess was updating the scale of the current page based on incorrect information.

To avoid the problems, we save the layer tree transaction ID when we commit a new page. Only updates after that transaction are useful
for the current page.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processDidExit]):
(withinEpsilon):
(changeContentOffsetBoundedInValidRange):
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _restorePageStateToExposedRect:WebCore::scale:]):
(-[WKWebView _restorePageStateToUnobscuredCenter:WebCore::scale:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::restorePageState):
(WebKit::PageClientImpl::restorePageCenterAndScale):
Restoring the state is now done by WKWebView. The state is only updated on the next layer tree commit,
this is done to avoid any jumping if the page has scrolled since we tried to restore its state.

Both update path end up calling _updateVisibleContentRects. This is because the update on the WebProcess
never sets the ScrollPosition (because it does not know the current state of the obscured insets). Pushing
a new VisibleContentRect will nicely udpates the exposed rect, scroll position, fixed elements, etc.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::restorePageState):
(WebKit::WebPageProxy::restorePageCenterAndScale):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
(WebKit::RemoteLayerTreeDrawingAreaProxy::lastCommittedLayerTreeTransactionID):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
* WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
(WebKit::WebFrameLoaderClient::saveViewStateToItem):
(WebKit::WebFrameLoaderClient::restoreViewState):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
Get rid of m_obscuredTopInset. It was a bad idea. The UIProcess updates the obscured insets a lot during
page load, the value we used to restore the scroll position was frequently stale.

(WebKit::WebPage::userHasChangedPageScaleFactor): Deleted.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::savePageState):
(WebKit::scaleAfterViewportWidthChange):
(WebKit::relativeCenterAfterContentSizeChange):
(WebKit::adjustExposedRectForNewScale):
Extract this out of dynamicViewportSizeUpdate(). It is useful to adjust the exposed rect when restoring a HistoryItem
to a ViewportConfiguration that is different from when it was saved.

(WebKit::WebPage::restorePageState):
There are two variations of restorePage:
1) If the viewport configuration is compatible, restore the exact scale and position of the page.
2) Otherwise, restore the scale and position similarily to dynamicViewportSizeUpdate().

(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::adjustExposedRectForBoundedScale):
(WebKit::RemoteLayerTreeDrawingArea::currentTransactionID):
Expose the transactionID for the race issue on VisibleRectUpdate.

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):
Store the exposed rect in floating point coordinates. This makes it possible to restore that exact
position when needed.

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

6 years agoUnreviewed, revert an unintentional change committed with r170323.
eric.carlson@apple.com [Mon, 23 Jun 2014 22:04:02 +0000 (22:04 +0000)]
Unreviewed, revert an unintentional change committed with r170323.

* UIProcess/API/Cocoa/WKBackForwardList.mm:

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

6 years ago[Mac] process raw VTT in-band captions
eric.carlson@apple.com [Mon, 23 Jun 2014 21:56:30 +0000 (21:56 +0000)]
[Mac] process raw VTT in-band captions
https://bugs.webkit.org/show_bug.cgi?id=134178

Reviewed by NOBODY (OOPS!).

* CMakeLists.txt: Add ISOVTTCue.cpp|h.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.

* html/track/BufferedLineReader.h:
(WebCore::BufferedLineReader::reset): New, empty the input buffer.

Make it possible to process WebVTT captions.
* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::parser): Allocate, if necessary, and return a WebVTT parser.
(WebCore::InbandGenericTextTrack::parseWebVTTCueData): Pass a cue to the parser.
(WebCore::InbandGenericTextTrack::parseWebVTTFileHeader): Pass a VTT file header to the parser.
(WebCore::InbandGenericTextTrack::newCuesParsed): Parser callback.
(WebCore::InbandGenericTextTrack::newRegionsParsed): Ditto.
(WebCore::InbandGenericTextTrack::fileFailedToParse): Ditto.
* html/track/InbandGenericTextTrack.h:

* html/track/InbandTextTrack.h:

* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::parser): New, parser accessor.
(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): New, parse VTT data in an ISOWebVTTCue
    object.
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Cleanup.
(WebCore::InbandWebVTTTextTrack::newRegionsParsed): Implement.
(WebCore::InbandWebVTTTextTrack::fileFailedToParse): Change the error message.
* html/track/InbandWebVTTTextTrack.h:

* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::TextTrackCueGenericBoxElement): Change cue parameter
    from a pointer to a reference.
(WebCore::TextTrackCueGeneric::createDisplayTree): Ditto.

* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::create): Change cue parameter from a pointer to a reference.
(WebCore::VTTCueBox::VTTCueBox): Ditto.
(WebCore::VTTCueBox::getCue): Return a reference.
(WebCore::VTTCueBox::applyCSSProperties): m_cue is a reference, not a pointer.
(WebCore::VTTCue::create): New, create a VTTCue from WebVTTCueData.
(WebCore::VTTCue::VTTCue): New, internal constructor that takes a WebVTTCueData.
(WebCore::VTTCue::initialize): New, shared constructor initialization.
(WebCore::VTTCue::createDisplayTree): m_cue is a reference, not a pointer.
(WebCore::VTTCue::markFutureAndPastNodes): Ditto.
(WebCore::VTTCue::setCueSettings): Ditto.
* html/track/VTTCue.h:
(WebCore::VTTCueBox::create): Deleted.
(WebCore::VTTCue::create): Deleted.

* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parseFileHeader): New. Reset the line reader buffer and parser state,
    call the parser.
(WebCore::WebVTTParser::parseCueData): Create a cue from ISOWebVTTCue.
(WebCore::WebVTTParser::collectTimingsAndSettings): Return immediately if the string is empty.
(WebCore::WebVTTParser::collectTimeStamp): Ditto.
* html/track/WebVTTParser.h:
(WebCore::WebVTTCueData::originalStartTime): New.
(WebCore::WebVTTCueData::setOriginalStartTime): New.
(WebCore::WebVTTCueData::WebVTTCueData):

* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::getNewCues): Cleanup, use the new VTTCue::create.

* platform/graphics/InbandTextTrackPrivateClient.h:
(WebCore::InbandTextTrackPrivateClient::parseWebVTTFileHeader): New.

Parse ISO WebVTT cue boxes.
* platform/graphics/ISOVTTCue.cpp: Added.
(WebCore::ISOBox::ISOBox):
(WebCore::ISOBox::peekType):
(WebCore::ISOBox::peekLength):
(WebCore::ISOBox::peekString):
(WebCore::vttCueBoxType):
(WebCore::vttIdBoxType):
(WebCore::vttSettingsBoxType):
(WebCore::vttPayloadBoxType):
(WebCore::vttCurrentTimeBoxType):
(WebCore::vttCueSourceIDBoxType):
(WebCore::ISOWebVTTCue::boxType):
(WebCore::ISOWebVTTCue::ISOWebVTTCue):
* platform/graphics/ISOVTTCue.h: Added.
(WebCore::ISOBox::boxHeaderSize):
(WebCore::ISOBox::length):
(WebCore::ISOBox::type):
(WebCore::ISOWebVTTCue::presentationTime):
(WebCore::ISOWebVTTCue::duration):
(WebCore::ISOWebVTTCue::sourceID):
(WebCore::ISOWebVTTCue::id):
(WebCore::ISOWebVTTCue::originalStartTime):
(WebCore::ISOWebVTTCue::settings):
(WebCore::ISOWebVTTCue::cueText):

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Add a cue format parameter.
(WebCore::InbandTextTrackPrivateAVF::processCue): Call processNativeSamples.
(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Add logging. Minor cleanup.
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): New, process an array of
    CMSampleBuffers, create ISOWebVTTCue from the sample data.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:

* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
(WebCore::InbandTextTrackPrivateAVFObjC::create): Add a cue format parameter.
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
(WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC): Ditto.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Improve logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Don't leak an NSDictionary.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Don't process media selection
    options until we have tracks.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass native samples as well as
    attributed strings to track.
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
* platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:
(WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):

* platform/graphics/avfoundation/InbandTextTrackPrivateLegacyAVFObjC.cpp:
(WebCore::InbandTextTrackPrivateLegacyAVFObjC::InbandTextTrackPrivateLegacyAVFObjC): Pass cue
    format to base class.

* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
(WebCore::InbandTextTrackPrivateAVCF::InbandTextTrackPrivateAVCF): Ditto.
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:

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

6 years agoPolicy delegate methods should use CompletionHandlerCallChecker
andersca@apple.com [Mon, 23 Jun 2014 21:40:06 +0000 (21:40 +0000)]
Policy delegate methods should use CompletionHandlerCallChecker
https://bugs.webkit.org/show_bug.cgi?id=134215

Reviewed by Dan Bernstein.

* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

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

6 years agoDon't use the WK prefix for internal C++ types
andersca@apple.com [Mon, 23 Jun 2014 21:33:34 +0000 (21:33 +0000)]
Don't use the WK prefix for internal C++ types
https://bugs.webkit.org/show_bug.cgi?id=134214

Reviewed by Dan Bernstein.

* Shared/AssistedNodeInformation.cpp:
(WebKit::OptionItem::encode):
(WebKit::OptionItem::decode):
(WebKit::WKOptionItem::encode): Deleted.
(WebKit::WKOptionItem::decode): Deleted.
* Shared/AssistedNodeInformation.h:
(WebKit::OptionItem::OptionItem):
(WebKit::AssistedNodeInformation::AssistedNodeInformation):
(WebKit::WKOptionItem::WKOptionItem): Deleted.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
(-[WKContentView inputView]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView _updateAccessory]):
(-[WKContentView textInputTraits]):
(-[WKContentView assistedNodeSelectOptions]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
(-[WKContentView _stopAssistingNode]):
* UIProcess/ios/forms/WKFormInputControl.mm:
(-[WKDateTimePicker initWithView:datePickerMode:]):
(-[WKFormInputControl initWithView:]):
* UIProcess/ios/forms/WKFormSelectControl.h:
* UIProcess/ios/forms/WKFormSelectControl.mm:
(adjustedFontSize):
* UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKOptionPickerCell initWithOptionItem:]):
(-[WKOptionGroupPickerCell initWithOptionItem:]):
(-[WKMultipleSelectPicker initWithView:]):
(-[WKMultipleSelectPicker pickerView:viewForRow:forComponent:reusingView:]):
(-[WKMultipleSelectPicker pickerView:row:column:checked:]):
(-[WKSelectSinglePicker pickerView:attributedTitleForRow:forComponent:]):
(-[WKSelectSinglePicker pickerView:didSelectRow:inComponent:]):
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController initWithView:hasGroups:]):
(-[WKSelectTableViewController tableView:numberOfRowsInSection:]):
(-[WKSelectTableViewController tableView:titleForHeaderInSection:]):
(-[WKSelectTableViewController populateCell:withItem:]):
(-[WKSelectTableViewController findItemIndexAt:]):
(-[WKSelectTableViewController findItemAt:]):
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectTableViewController tableView:didSelectRowAtIndexPath:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):

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

6 years ago[Cocoa] No way to grant storage quotas for web application cache
mitz@apple.com [Mon, 23 Jun 2014 21:32:43 +0000 (21:32 +0000)]
[Cocoa] No way to grant storage quotas for web application cache
https://bugs.webkit.org/show_bug.cgi?id=134213

Reviewed by Anders Carlsson.

* UIProcess/API/APIUIClient.h:
(API::UIClient::reachedApplicationCacheOriginQuota): Added this new client function, with
a default implementation that calls the completion handler with the current quota.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Declared a new delegate method.

* UIProcess/API/Cocoa/_WKSecurityOrigin.mm:
(-[_WKSecurityOrigin _initWithSecurityOrigin:WebCore::]): Changed the parameter into a const
reference, since we copy it.
* UIProcess/API/Cocoa/_WKSecurityOriginInternal.h:

* UIProcess/Cocoa/UIDelegate.h: Override API::UIClient::reachedApplicationCacheOriginQuota.
Added flag to m_delegateMethods struct for new delegate method.
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate): Set new flag in m_delegateMethods struct.
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota): Updated for change in
_WKSecurityOrigin initializer.
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota): Added. Calls the new
delegate method.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reachedApplicationCacheOriginQuota): Added. Forwards the message to
the UI client.
* UIProcess/WebPageProxy.h:

* UIProcess/WebPageProxy.messages.in: Added ReachedApplicationCacheOriginQuota message.

* WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
(API::InjectedBundle::PageUIClient::didReachApplicationCacheOriginQuota): Changed the return
type to bool, indicating whether the client handled the callback.

* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
(WebKit::InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota): Return the
appropriate value.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): If the bundle client didn’t
handle the callback, send a message the the UI process, and update the quota with the reply.

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

6 years ago[wk2] Synchronously wait a short time for a layer tree update after bringing a web...
timothy_horton@apple.com [Mon, 23 Jun 2014 21:32:03 +0000 (21:32 +0000)]
[wk2] Synchronously wait a short time for a layer tree update after bringing a web view in-window
https://bugs.webkit.org/show_bug.cgi?id=134189

Reviewed by Simon Fraser.

Make the old behavior of -[WKView endDeferringViewInWindowChangesSync] the default; synchronously wait
for a fraction of a second when a page that was previously in-window but currently isn't comes back in-window,
until new content is painted (or we hit a timeout).

* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::waitForDidUpdateViewState):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateViewState):
Delegate waitForDidUpdateViewState to the DrawingAreaProxys, because behavior is very dependent on them.

* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
Implement waitForDidUpdateViewState for the RemoteLayerTree; it waits for CommitLayerTree.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::updateViewState):
(WebKit::WebPageProxy::viewStateDidChange):
(WebKit::WebPageProxy::dispatchViewStateChange):
(WebKit::WebPageProxy::waitForDidUpdateViewState):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
(WebKit::WebPageProxy::viewSize): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::didUpdateViewState):
* UIProcess/API/mac/WKView.mm:
(-[WKView endDeferringViewInWindowChangesSync]):
Always waitForDidUpdateViewState when a page that was previously in-window but currently isn't comes back in-window.

* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::viewStateDidChange):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setViewState):
(WebKit::WebPage::didUpdateViewStateTimerFired): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
(WebKit::RemoteLayerTreeDrawingArea::viewStateDidChange):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::viewStateDidChange):
(WebKit::TiledCoreAnimationDrawingArea::didUpdateViewStateTimerFired):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::didUpdateViewStateTimerFired): Deleted.
Delegate sending of didUpdateViewState to the DrawingAreas (RemoteLayerTreeDrawingArea won't send it,
    because the UI process waits for CommitLayerTree instead).

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

6 years ago[MSE][Mac] Crash in SourceBuffer::sourceBufferPrivateDidReceiveRenderingError()
jer.noble@apple.com [Mon, 23 Jun 2014 21:27:59 +0000 (21:27 +0000)]
[MSE][Mac] Crash in SourceBuffer::sourceBufferPrivateDidReceiveRenderingError()
https://bugs.webkit.org/show_bug.cgi?id=134211

Reviewed by Eric Carlson.

Null-check m_source before dereferencing, as the SourceBuffer may have been removed
from its MediaSource before this error was received.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError):

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

6 years ago[iOS][wk2] Ensure that layers are marked volatile before allowing the process to...
timothy_horton@apple.com [Mon, 23 Jun 2014 21:12:00 +0000 (21:12 +0000)]
[iOS][wk2] Ensure that layers are marked volatile before allowing the process to suspend
https://bugs.webkit.org/show_bug.cgi?id=134004
<rdar://problem/17186342>

Reviewed by Simon Fraser.

WebKit tries to make layers volatile when unparented, but sometimes isn't given
a chance to do so before the process gets suspended, so we end up with lots of
non-volatile surfaces that should really be volatile.

* Shared/mac/RemoteLayerBackingStoreCollection.h:
* Shared/mac/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileImmediately):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatileImmediatelyIfPossible):
Add markAllBackingStoreVolatileImmediatelyIfPossible, which tries to mark *all*
buffers of *all* backing store, (live and unreachable), (front, back, and secondary),
volatile right away. It returns false if any buffer isn't marked volatile (because it was in-use).

* UIProcess/ios/ProcessThrottler.h:
* UIProcess/ios/ProcessThrottler.mm:
(WebKit::ProcessThrottler::updateAssertion):
(WebKit::ProcessThrottler::processReadyToSuspend):
(WebKit::ProcessThrottler::didCancelProcessSuspension):
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::sendCancelProcessWillSuspend):
(WebKit::WebProcessProxy::didCancelProcessSuspension):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
If the UI process is waiting for the Web process to confirm that it can suspend
and something happens (the view is reparented) that cancels the suspension, inform
the Web process that this happened, so that it can cancel any cleanup that might still be taking place.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
If a view goes in-window, dispatch the view state change immediately without delay,
to minimize the latency between coming in-window and being ready to go.

* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::markLayersVolatileImmediatelyIfPossible):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
Schedule a flush when we change the root layer; otherwise, we can end up
detaching the root layer but changing nothing else, and never committing that change.

(WebKit::RemoteLayerTreeDrawingArea::markLayersVolatileImmediatelyIfPossible):

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::processWillSuspend):
(WebKit::WebProcess::cancelProcessWillSuspend):
(WebKit::WebProcess::markAllLayersVolatileIfPossible):
(WebKit::WebProcess::processSuspensionCleanupTimerFired):
When the UI process is going to suspend the process, it sends us ProcessWillSuspend,
and defers the suspension until we send a ProcessReadyToSuspend back.
Delay ProcessReadyToSuspend until all layers in our process have been marked volatile.
We'll keep trying every 20ms until they're all volatile. For safety, the UI process will eventually
stop waiting for us, but the volatility change is usually applied successfully within the first
or second timer callback.

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

6 years agoReduce synchronous layout triggered by JavaScript-based media controls
commit-queue@webkit.org [Mon, 23 Jun 2014 21:01:19 +0000 (21:01 +0000)]
Reduce synchronous layout triggered by JavaScript-based media controls
https://bugs.webkit.org/show_bug.cgi?id=134208

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-06-23
Reviewed by Eric Carlson.

Avoid always querying the offsetWidth and offsetHeight of the timeline
by only calculating these values when the timeline may change size.
Also avoid doing work in a few cases where properties did not
actually change.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller):

(Controller.prototype.setNeedsTimelineMetricsUpdate):
(Controller.prototype.updateTimelineMetricsIfNeeded):
Only update the timeline metrics when they may have changed.

(Controller.prototype.updateControls):
(Controller.prototype.handleTimelineMouseMove):
(Controller.prototype.progressFillStyle):
(Controller.prototype.showControls):
(Controller.prototype.addControls):
Mark timeline metrics need update based on various UI changes.

(Controller.prototype.setStatusHidden):
Only do work if the hidden status changed.
Mark timeline metrics need update if the timeline is changed.

(Controller.prototype.updateProgress):
Use cached timeline metrics instead of always querying offsetWidth/offsetHeight.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS):
(ControllerIOS.prototype.updateControls):

(ControllerIOS.prototype.updateProgress):
Use cached timeline metrics instead of always querying offsetWidth/offsetHeight.

(ControllerIOS.prototype.handleWirelessPlaybackChange):
Mark timeline metrics need update as button may have changed.

(ControllerIOS.prototype.handleWirelessTargetAvailableChange):
Only do work if the availability changed.
Mark timeline metrics need update as a new button may have appeared.

(ControllerIOS.prototype.set pageScaleFactor):
Only do work if the page scale factor changed.

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