ChangeLog-2013-04-24 [plain text]
2013-04-24 Claudio Saavedra <csaavedra@igalia.com>
Build break after r149004
https://bugs.webkit.org/show_bug.cgi?id=115091
Reviewed by Csaba Osztrogonác.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::pageBackgroundTransparencyChanged):
(WebKit): Add dummy method for new virtual method.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
(LayerTreeHostGtk): Ditto.
2013-04-23 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Build break after r149004
https://bugs.webkit.org/show_bug.cgi?id=115066
Reviewed by Tim Horton.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::pageBackgroundTransparencyChanged):
Added dummy method for new virtual method.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost): Ditto.
2013-04-23 Simon Fraser <simon.fraser@apple.com>
Turn off tiled drawing in the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=115064
Reviewed by Tim Horton.
We get little benefit from making the Web Inspector use tiled drawing;
it doesn't scroll the main frame, so doesn't benefit from the ScrollingCoordinator.
Not using tiled drawing also means that we won't make compositing
layers for position: -webkit-sticky, which avoids a number of issues
with compositing layer proliferation in the inspector.
Also turn off accelerated drawing, since that pref will force a single
compositing layer.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::createInspectorPageGroup):
* UIProcess/mac/WebInspectorProxyMac.mm:
2013-04-23 Simon Fraser <simon.fraser@apple.com>
When the web page transparency changes, DrawingAreaImpl needs to know about it
https://bugs.webkit.org/show_bug.cgi?id=115062
Reviewed by Tim Horton.
The non-composited contents layer owned by LayerTreeHostMac needs to
be marked as opaque or not depending on whether the WebPage draws
a background (or transparent background). It computed this at creation,
but did not dynamically update the state. Fix it so it does.
This fixes cases of garbage pixels in the Web Inspector toolbar area
in some configurations.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::pageBackgroundTransparencyChanged):
* WebProcess/WebPage/DrawingAreaImpl.h:
(DrawingAreaImpl):
* WebProcess/WebPage/LayerTreeHost.h:
* WebProcess/WebPage/mac/LayerTreeHostMac.h:
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::pageBackgroundTransparencyChanged):
2013-04-23 Anders Carlsson <andersca@apple.com>
REGRESSION(r148922): Crash opening web archives or loading web pages
https://bugs.webkit.org/show_bug.cgi?id=115061
<rdar://problem/13714228>
Reviewed by Sam Weinig.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
Calling ResourceLoader::didReceiveResponse can cause the WebResourceLoader object to go away,
so protect it here and guard against a null core loader.
2013-04-23 Tim Horton <timothy_horton@apple.com>
Web process crashes at WebPage::determinePrimarySnapshottedPlugInTimerFired + 8
https://bugs.webkit.org/show_bug.cgi?id=115056
<rdar://problem/13719543>
Reviewed by Simon Fraser.
Stop the primary plugin detection timer if the WebPage is torn down.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
2013-04-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add webkit_uri_request_get_http_headers to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=112160
Reviewed by Andreas Kling.
It allows to load requests with custom headers, or to update the
headers of a request before being sent to the server in the
WebKitWebPage::send-request callback.
* UIProcess/API/gtk/WebKitURIRequest.cpp:
(_WebKitURIRequestPrivate): Add SoupMessageHeaders.
(webkit_uri_request_get_http_headers): Return the HTTP headers of
the request as a SoupMessageHeaders if the request is HTTP. A new
SoupMessageHeaders is created on demand using the existing headers
of the request.
(webkitURIRequestGetResourceRequest): Instead of returning a const
reference of the internal ResourceRequest, set a request passed as
a reference and update its HTTP headers using the
SoupMessageHeaders if present.
* UIProcess/API/gtk/WebKitURIRequest.h:
* UIProcess/API/gtk/WebKitURIRequestPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_load_request): Update to the new
webkitURIRequestGetResourceRequest API.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add
webkit_uri_request_get_http_headers symbol.
* UIProcess/API/gtk/tests/TestLoaderClient.cpp:
(testWebPageURI):
(testURIRequestHTTPHeaders):
(serverCallback):
(beforeAll):
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(willSendRequestForFrame): Update to the new
webkitURIRequestGetResourceRequest API.
2013-04-23 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2] Make EFL WKView API shareable between ports
https://bugs.webkit.org/show_bug.cgi?id=114734
Reviewed by Anders Carlsson.
EFL-independent part of WKView API (and its implementation) is now
shareable between ports that use Coordinated Graphics and put to
CoordinatedGraphics folders.
* PlatformEfl.cmake:
* UIProcess/API/C/CoordinatedGraphics/WKView.cpp: Renamed from Source/WebKit2/UIProcess/API/C/efl/WKView.cpp.
(WKViewCreate):
(WKViewInitialize):
(WKViewGetSize):
(WKViewSetSize):
(WKViewSetViewClient):
(WKViewIsFocused):
(WKViewSetIsFocused):
(WKViewIsVisible):
(WKViewSetIsVisible):
(WKViewGetContentScaleFactor):
(WKViewSetContentScaleFactor):
(WKViewGetContentPosition):
(WKViewSetContentPosition):
(WKViewSetUserViewportTranslation):
(WKViewUserViewportToContents):
(WKViewPaintToCurrentGLContext):
(WKViewGetPage):
(WKViewSetDrawsBackground):
(WKViewGetDrawsBackground):
(WKViewSetDrawsTransparentBackground):
(WKViewGetDrawsTransparentBackground):
(WKViewSetThemePath):
(WKViewSuspendActiveDOMObjectsAndAnimations):
(WKViewResumeActiveDOMObjectsAndAnimations):
(WKViewSetShowsAsSource):
(WKViewGetShowsAsSource):
(WKViewExitFullScreen):
* UIProcess/API/C/CoordinatedGraphics/WKView.h: Renamed from Source/WebKit2/UIProcess/API/C/efl/WKView.h.
* UIProcess/API/C/efl/WKViewEfl.cpp: Added.
(WKViewPaintToCairoSurface):
(WKViewCreateSnapshot):
* UIProcess/API/C/efl/WKViewEfl.h: Added.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/efl/EwkView.h:
* UIProcess/CoordinatedGraphics/WebView.cpp: Renamed from Source/WebKit2/UIProcess/efl/WebView.cpp.
(WebKit):
(WebKit::WebView::WebView):
(WebKit::WebView::~WebView):
(WebKit::WebView::initialize):
(WebKit::WebView::setSize):
(WebKit::WebView::setFocused):
(WebKit::WebView::setVisible):
(WebKit::WebView::setUserViewportTranslation):
(WebKit::WebView::userViewportToContents):
(WebKit::WebView::paintToCurrentGLContext):
(WebKit::WebView::setThemePath):
(WebKit::WebView::setDrawsBackground):
(WebKit::WebView::drawsBackground):
(WebKit::WebView::setDrawsTransparentBackground):
(WebKit::WebView::drawsTransparentBackground):
(WebKit::WebView::suspendActiveDOMObjectsAndAnimations):
(WebKit::WebView::resumeActiveDOMObjectsAndAnimations):
(WebKit::WebView::setShowsAsSource):
(WebKit::WebView::showsAsSource):
(WebKit::WebView::exitFullScreen):
(WebKit::WebView::initializeClient):
(WebKit::WebView::didChangeContentsSize):
(WebKit::WebView::transformFromScene):
(WebKit::WebView::transformToScene):
(WebKit::WebView::coordinatedGraphicsScene):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::dipSize):
(WebKit::WebView::createDrawingAreaProxy):
(WebKit::WebView::setViewNeedsDisplay):
(WebKit::WebView::displayView):
(WebKit::WebView::scrollView):
(WebKit::WebView::viewSize):
(WebKit::WebView::isViewWindowActive):
(WebKit::WebView::isViewFocused):
(WebKit::WebView::isViewVisible):
(WebKit::WebView::isViewInWindow):
(WebKit::WebView::processDidCrash):
(WebKit::WebView::didRelaunchProcess):
(WebKit::WebView::pageClosed):
(WebKit::WebView::toolTipChanged):
(WebKit::WebView::setCursor):
(WebKit::WebView::setCursorHiddenUntilMouseMoves):
(WebKit::WebView::registerEditCommand):
(WebKit::WebView::clearAllEditCommands):
(WebKit::WebView::canUndoRedo):
(WebKit::WebView::executeUndoRedo):
(WebKit::WebView::screenToWindow):
(WebKit::WebView::windowToScreen):
(WebKit::WebView::doneWithKeyEvent):
(WebKit::WebView::doneWithTouchEvent):
(WebKit::WebView::createPopupMenuProxy):
(WebKit::WebView::createContextMenuProxy):
(WebKit::WebView::createColorChooserProxy):
(WebKit::WebView::setFindIndicator):
(WebKit::WebView::enterAcceleratedCompositingMode):
(WebKit::WebView::exitAcceleratedCompositingMode):
(WebKit::WebView::updateAcceleratedCompositingMode):
(WebKit::WebView::didCommitLoadForMainFrame):
(WebKit::WebView::didFinishLoadingDataForCustomRepresentation):
(WebKit::WebView::customRepresentationZoomFactor):
(WebKit::WebView::setCustomRepresentationZoomFactor):
(WebKit::WebView::flashBackingStoreUpdates):
(WebKit::WebView::findStringInCustomRepresentation):
(WebKit::WebView::countStringMatchesInCustomRepresentation):
(WebKit::WebView::updateTextInputState):
(WebKit::WebView::handleDownloadRequest):
(WebKit::WebView::convertToDeviceSpace):
(WebKit::WebView::convertToUserSpace):
(WebKit::WebView::didChangeViewportProperties):
(WebKit::WebView::pageDidRequestScroll):
(WebKit::WebView::didRenderFrame):
(WebKit::WebView::pageTransitionViewportReady):
* UIProcess/CoordinatedGraphics/WebView.h: Renamed from Source/WebKit2/UIProcess/efl/WebView.h.
(WebCore):
(WebKit):
(WebView):
(WebKit::WebView::size):
(WebKit::WebView::isFocused):
(WebKit::WebView::isVisible):
(WebKit::WebView::setContentScaleFactor):
(WebKit::WebView::contentScaleFactor):
(WebKit::WebView::setContentPosition):
(WebKit::WebView::contentPosition):
(WebKit::WebView::pageRef):
(WebKit::WebView::page):
* UIProcess/CoordinatedGraphics/WebViewClient.cpp: Renamed from Source/WebKit2/UIProcess/efl/WebViewClient.cpp.
(WebKit):
(WebKit::WebViewClient::viewNeedsDisplay):
(WebKit::WebViewClient::didChangeContentsSize):
(WebKit::WebViewClient::webProcessCrashed):
(WebKit::WebViewClient::webProcessDidRelaunch):
(WebKit::WebViewClient::didChangeContentsPosition):
(WebKit::WebViewClient::didRenderFrame):
(WebKit::WebViewClient::didCompletePageTransition):
(WebKit::WebViewClient::didChangeViewportAttributes):
(WebKit::WebViewClient::didChangeTooltip):
* UIProcess/CoordinatedGraphics/WebViewClient.h: Renamed from Source/WebKit2/UIProcess/efl/WebViewClient.h.
(WebCore):
(WebKit):
* UIProcess/efl/WebViewEfl.cpp: Added.
(WebKit):
(WebKit::WebView::create):
(WebKit::WebViewEfl::WebViewEfl):
(WebKit::WebViewEfl::setEwkView):
(WebKit::WebViewEfl::paintToCairoSurface):
(WebKit::WebViewEfl::createPopupMenuProxy):
(WebKit::WebViewEfl::createContextMenuProxy):
(WebKit::WebViewEfl::setCursor):
(WebKit::WebViewEfl::updateTextInputState):
(WebKit::WebViewEfl::handleDownloadRequest):
* UIProcess/efl/WebViewEfl.h: Added.
(WebKit):
(WebViewEfl):
(WebKit::WebViewEfl::ewkView):
2013-04-23 Antoine Quint <graouts@apple.com>
Initial advance of text runs should be taken into account
https://bugs.webkit.org/show_bug.cgi?id=114949
Reviewed by Darin Adler.
Adding support for new method CTRunGetInitialAdvance in WebKitSystemInterface.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2013-04-23 Noam Rosenthal <noam@webkit.org>
[Coordinated Graphics] Remove the lockAnimations code path
https://bugs.webkit.org/show_bug.cgi?id=114899
Remove locking/unlocking animations and checks for the lock state.
The animation locking has been tested to create not-so-smooth animations,
while the use case where the composited animations run out of sync from
the non-composited animations is very rare and unnoticeable.
Reviewed by Benjamin Poulain.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::flushPendingLayerChanges):
(WebKit::CoordinatedLayerTreeHost::performScheduledLayerFlush):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2013-04-22 Sam Weinig <sam@webkit.org>
Need WebKit SPI to detect whether a page contains form controls
<rdar://problem/13686661>
https://bugs.webkit.org/show_bug.cgi?id=115003
Reviewed by Beth Dakin.
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
(WKBundleFrameContainsAnyFormControls):
* WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::containsAnyFormControls):
* WebProcess/WebPage/WebFrame.h:
2013-04-22 Alexey Proskuryakov <ap@apple.com>
[Mac] REGRESSION (r142806): "Just Leaking" Console errors on launch
https://bugs.webkit.org/show_bug.cgi?id=115002
<rdar://problem/13254212>
Reviewed by Sam Weinig.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm:
(WebKit::BootstrapMain): Added an autorelease pool for code that uses Objective-C.
2013-04-22 Anders Carlsson <andersca@apple.com>
Web process should decide when to continue main resource loads
https://bugs.webkit.org/show_bug.cgi?id=114995
Reviewed by Sam Weinig.
Main resource loads can be converted to downloads, so we need the ability to let the web process decide when
to continue loading after a response has been received.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
For non-main resources, just call continueDidReceiveResponse directly; there's no need to ping-pong to the web process in that case.
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
Just call ResourceHandle::continueDidReceiveResponse.
* NetworkProcess/NetworkResourceLoader.messages.in:
Add ContinueDidReceiveResponse message.
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::SchedulableLoader):
Initialize m_isLoadingMainResource.
* NetworkProcess/SchedulableLoader.h:
(WebKit::SchedulableLoader::isLoadingMainResource):
Add getter.
(SchedulableLoader):
Move m_shouldClearReferrerOnHTTPSToHTTPRedirect next to the rest of the booleans.
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
(NetworkResourceLoadParameters):
Add isMainResource flag.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad):
Pass the cached resource to scheduleLoad.
(WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad):
Pass null to scheduleLoad.
(WebKit::WebResourceLoadScheduler::scheduleLoad):
Initialize isMainResource.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
If this is a main resource load, send back a ContinueDidReceiveResponse message.
2013-04-22 Tim Horton <timothy_horton@apple.com>
Plugin Snapshotting: Don't consume insane amounts of time detecting the primary plugin
https://bugs.webkit.org/show_bug.cgi?id=114994
<rdar://problem/13696269>
Reviewed by Anders Carlsson.
On some pages, we currently waste a lot of time on every subframe load
and every addPluginView doing primary plugin detection. This patch
attempts to address this via a few minor changes:
- Only allow detection after the main frame's didFinishLoad comes, instead of the first subframe.
- Only explicitly detect on the main frame's didFinishLoad (not subframes).
- Coalesce calls to determinePrimarySnapshottedPlugIn from both addPluginView
(in case JS is adding lots of plugins in a loop) and didFinishLoad.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::addPluginView): Coalesce calls to determinePrimarySnapshottedPlugIn.
(WebKit::WebPage::didFinishLoad):
Coalesce calls to determinePrimarySnapshottedPlugIn.
Bail on subframe loads, we're only interested in the main frame being complete.
(WebKit::WebPage::determinePrimarySnapshottedPlugInTimerFired):
Call determinePrimarySnapshottedPlugIn.
* WebProcess/WebPage/WebPage.h:
Add m_determinePrimarySnapshottedPlugInTimer and determinePrimarySnapshottedPlugInTimerFired
2013-04-22 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13334446> [Mac] Tweak sandbox profiles.
Reviewed by Anders Carlsson.
Unbreak Lion, which doesn't provide detailed control over IPC.
* WebProcess/com.apple.WebProcess.sb.in:
2013-04-22 Martin Robinson <mrobinson@igalia.com>
[GTK] Enable introspection always for developer builds
https://bugs.webkit.org/show_bug.cgi?id=114983
Reviewed by Gustavo Noronha Silva.
* GNUmakefile.am: Make warnings during gir scanning cause the build to fail. Eliminate
warnings about deprecated API that the g-ir-scanner uses when generating
the scanner program. Use --quiet.
2013-04-22 Anders Carlsson <andersca@apple.com>
Make it easier to extend NetworkResourceLoadParameters
https://bugs.webkit.org/show_bug.cgi?id=114992
Reviewed by Sam Weinig.
Turn NetworkResourceLoadParameters into a struct which matches all our other parameter classes in WebKit2. Fill in the struct manually
instead of having a constructor with 9 parameters.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::SchedulableLoader):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
(NetworkResourceLoadParameters):
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
2013-04-22 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Support unlocking encrypted PDFs
https://bugs.webkit.org/show_bug.cgi?id=114938
<rdar://problem/12872888>
Reviewed by Alexey Proskuryakov and Oliver Hunt.
If we try to load an encrypted PDF, we need to provide a sane mechanism
through which the user can provide the password. Add a slightly-below-center
password field to match PDFKit's normal behavior.
* WebKit2.xcodeproj/project.pbxproj: Add PDFPluginPasswordField.{h,mm}
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Add attemptToUnlockWithPassword:
* WebProcess/Plugins/PDF/PDFPlugin.h:
Add createPasswordEntryForm, attemptToUnlockPDF, m_passwordField.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(annotationStyle): Make #annotationContainer a flexbox that centers its contents.
This won't affect the normal absolutely-positioned form fields, but the inline
password field will be centered vertically and horizontally.
(WebKit::PDFPlugin::pdfDocumentDidLoad):
If the document is locked when loaded, create a password field.
(WebKit::PDFPlugin::createPasswordEntryForm):
Create a PDFPluginPasswordField and attach it to the document.
(WebKit::PDFPlugin::attemptToUnlockPDF):
Try to unlock the PDF with the given password. If this succeeds, remove
the password field and relayout the scroll view.
(WebKit::PDFPlugin::calculateSizes):
Make the document 0x0 if it is locked, preventing scrolling.
(WebKit::PDFPlugin::handleMouseEvent):
Don't pass mouse events to PDFLayerController while it is locked,
as it has no useful events to provide, and will try to present a
dialog asking for the password if we let a click through.
* WebProcess/Plugins/PDF/PDFPluginAnnotation.h:
(WebKit::PDFPluginAnnotation::eventListener): Added.
* WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::handleEvent):
Move event-handling code here from PDFPluginAnnotationEventListener::handleEvent
so that subclasses can override this instead of having to have their own
event listeners (this is also why we now expose eventListener()).
(WebKit::PDFPluginAnnotation::PDFPluginAnnotationEventListener::handleEvent):
Forward the event to our owning PDFPluginAnnotation.
* WebProcess/Plugins/PDF/PDFPluginPasswordField.h: Added.
(WebKit::PDFPluginPasswordField::PDFPluginPasswordField):
* WebProcess/Plugins/PDF/PDFPluginPasswordField.mm: Added.
(WebKit::PDFPluginPasswordField::create):
(WebKit::PDFPluginPasswordField::~PDFPluginPasswordField):
Unregister for keyup.
(WebKit::PDFPluginPasswordField::createAnnotationElement):
Register for keyup, and set our element's class to "password".
(WebKit::PDFPluginPasswordField::updateGeometry):
Added. Override updateGeometry and do nothing, as the password field
has a geometry defined by CSS instead of by the PDF content.
(WebKit::PDFPluginPasswordField::handleEvent):
If the enter/return key is pressed, attempt to unlock the PDF. Also,
we do not call either of our superclass' implementations of handleEvent,
because blurring the password field should not destroy it, and tabbing
between fields has no relevance when there can only be one field.
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h:
(WebKit::PDFPluginTextAnnotation::PDFPluginTextAnnotationEventListener):
Removed. We now share our superclass' event listener.
(WebKit::PDFPluginTextAnnotation::textAnnotation): Const.
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::~PDFPluginTextAnnotation):
PDFPluginTextAnnotation no longer has its own event listener,
so there's nothing left to clear here. Just make sure to unregister
our event from PDFPluginAnnotation's shared event listener!
(WebKit::PDFPluginTextAnnotation::createAnnotationElement):
Ensure that we can create a PDFPluginTextAnnotation with a null annotation.
(WebKit::PDFPluginTextAnnotation::commit): Use value().
(WebKit::PDFPluginTextAnnotation::value):
Factor retrieving the value of the form control out of commit().
(WebKit::PDFPluginTextAnnotation::handleEvent):
Call up to PDFPluginAnnotation's handler so that defocus destroys the annotation.
2013-04-22 Anders Carlsson <andersca@apple.com>
Slow/beachballing when using the find bar on a page with plug-ins
https://bugs.webkit.org/show_bug.cgi?id=114990
<rdar://problem/12832313>
Reviewed by Tim Horton.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::notifyWidget):
Call shouldCreateTransientPaintingSnapshot().
(WebKit::PluginView::shouldCreateTransientPaintingSnapshot):
Don't create a painting snapshot if we're asked to paint the find indicator.
* WebProcess/Plugins/PluginView.h:
Add new member function.
2013-04-22 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13334446> [Mac] Tweak sandbox profiles.
Reviewed by Sam Weinig.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* WebProcess/com.apple.WebProcess.sb.in:
2013-04-22 Anders Carlsson <andersca@apple.com>
Don't kill our XPC services in response to memory pressure
https://bugs.webkit.org/show_bug.cgi?id=114985
<rdar://problem/13229217>
Reviewed by Mark Rowe.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
Call xpc_transaction_begin() so we'll never be killed by the kernel when there's memory pressure;
we prefer to manage our own lifetime thank you very much!
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::platformInitialize):
Remove call to disable sudden termination.
2013-04-22 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13681842> [Mac] Tweak WebProcess sandbox profile to use
system-graphics function when available.
Reviewed by Sam Weinig.
* WebProcess/com.apple.WebProcess.sb.in:
2013-04-22 Zan Dobersek <zdobersek@igalia.com>
[GTK] Set up libPlatform.la
https://bugs.webkit.org/show_bug.cgi?id=114168
Reviewed by Martin Robinson.
* GNUmakefile.am: Add the new libPlatform.la library to the libwebkitgtk library. Link the WebKitPluginProcess
executable against libPlatform.la as well.
2013-04-22 Sam Weinig <sam@webkit.org>
Hard code plug-in sandbox profile lookup directories and move
the profiles to WebKit2.
Reviewed by Anders Carlsson.
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
(WebKit::PluginProcessMainDelegate::getExtraInitializationData):
* PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
(WebKit::PluginServiceInitializerDelegate::getExtraInitializationData):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::platformGetLaunchOptions):
Stop passing the sandbox-profile-directory-path to the plug-in process.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::loadSandboxProfileForDirectory):
(WebKit::loadSandboxProfile):
(WebKit::PluginProcess::initializeSandbox):
Hard code the plug-in sandbox profile lookup to only look in the WebKit2 bundle
and /System/Library/Sandbox/Profiles/.
* Resources/PlugInSandboxProfiles: Added.
Add profiles.
* WebKit2.xcodeproj/project.pbxproj:
Copy the profiles to the bundle.
2013-04-15 Jer Noble <jer.noble@apple.com>
Refactor creation of the full screen window into an (overridable) method.
https://bugs.webkit.org/show_bug.cgi?id=110369
Reviewed by Eric Carlson.
Add a new WKView method -(NSWindow)createFullScreenWindow which can be overridden
by subclasses to provide custom full screen windows to the WKFullScreenWindowController.
* UIProcess/API/mac/WKView.mm:
(-[WKView fullScreenWindowController]):
(-[WKView createFullScreenWindow]):
* UIProcess/API/mac/WKViewPrivate.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:]):
2013-04-22 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add webkit_web_context_set_disk_cache_directory to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=111848
Reviewed by Anders Carlsson.
This allow applications to set a custom directory for the disk
cache.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_disk_cache_directory):
* UIProcess/API/gtk/WebKitWebContext.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
* UIProcess/API/gtk/tests/TestMain.cpp:
(removeNonEmptyDirectory):
(main): Use a different temporary disk cache directory for every
test.
2013-04-22 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Soup disk cache should respect the diskCacheDirectory from the process initial parameters
https://bugs.webkit.org/show_bug.cgi?id=111845
Reviewed by Anders Carlsson.
Move the cache initialization to platformInitializeWebProcess() to
create the cache using the directory received from the UI
process. This allows to add public API to set a different disk
cache directory from the UI process.
* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::platformDefaultDiskCacheDirectory): Return
default disk cache directory.
* UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::platformDefaultDiskCacheDirectory): Ditto.
* WebProcess/efl/WebProcessMainEfl.cpp:
(WebKit::WebProcessMainEfl): Remove soup cache initialization.
* WebProcess/gtk/WebProcessMainGtk.cpp:
(WebKit::WebProcessMainGtk): Ditto.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess): Initialize
soup cache.
2013-04-22 Krzysztof Wolanski <k.wolanski@samsung.com>:
[WK2] Fix build warning when GESTURE_EVENTS is ON.
https://bugs.webkit.org/show_bug.cgi?id=114812
Reviewed by Andreas Kling.
Handle GestureSingleTap in the event type switch.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformHandleMouseEvent):
2013-04-21 Carlos Garcia Campos <cgarcia@igalia.com>
[WebKit2] Plugins without a MIME Type fail to load
https://bugs.webkit.org/show_bug.cgi?id=112834
Reviewed by Benjamin Poulain.
The problem is that when the plugin is created and the MIME Type
is empty, since the MIME Type guessed in the UI process using the
plugin extension is not passed to the WebProcess, when the plugin
is instantiated, the value of NPMIMEType parameter passed to
NPP_New is NULL, and NPERR_INVALID_INSTANCE_ERROR is returned.
GetPluginPath message has been renamed to FindPlugin, since it
doesn't only return the path but also the new MIME Type and load
policy.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findPlugin): Receive an output newMIMEType
parameter that is passed to PluginModuleInfo::findPlugin() so that
in case of guessing the MIME Type, the new one is passed back to
the WebProcess.
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::createPlugin): Pass the MIME Type
from the parameters to WebPage::createPlugin.
(WebKit::WebFrameLoaderClient::recreatePlugin): Pass a newMIMEType
parameter to WebPage::createPlugin.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin): Add newMIMEType out parameter and
pass it to the FindPlugin message.
(WebKit::WebPage::canPluginHandleResponse): Pass newMIMEType to
FindPlugin message.
* WebProcess/WebPage/WebPage.h:
(WebPage):
2013-04-21 Carlos Garcia Campos <cgarcia@igalia.com>
Widget should not depend on AXObjectCache
https://bugs.webkit.org/show_bug.cgi?id=114514
Reviewed by Chris Fleizach.
Update to API changes.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::createScrollbar):
* WebProcess/Plugins/PDF/SimplePDFPlugin.mm:
(WebKit::SimplePDFPlugin::createScrollbar):
(WebKit::SimplePDFPlugin::destroyScrollbar):
2013-04-20 Manuel Rego Casasnovas <rego@igalia.com>
[GTK] Fix unit test webkit2/WebKitFindController/hide
https://bugs.webkit.org/show_bug.cgi?id=89810
Reviewed by Carlos Garcia Campos.
The test had some hacks in order to compare a page with highlighted
results after using the find command with the original page. Now it uses
the snapshots API that allows to make the test simpler and more
reliable.
* UIProcess/API/gtk/tests/TestMain.h:
(Test::cairoSurfacesEqual): Moved helper function to compare two cairo
surfaces from TestWebKitWebView.
(Test):
* UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
(testFindControllerHide): Modify test to use snapshots.
* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(testWebViewSnapshot): Move basic snapshop methods to WebViewTest to
share them with TestWebKitFindController test.
* UIProcess/API/gtk/tests/WebViewTest.cpp:
(WebViewTest::WebViewTest): Initialize cairo surface.
(WebViewTest::~WebViewTest): Destroy cairo surface.
(onSnapshotReady): Callback to set the cairo surface when the snapshot
is ready.
(WebViewTest::getSnapshotAndWaitUntilReady): Method that takes a
snapshot and returns the cairo surface when it is ready.
* UIProcess/API/gtk/tests/WebViewTest.h: Add new method headers and
attribute for the cairo surface.
2013-04-19 Jer Noble <jer.noble@apple.com>
Unreviewed, revert r148782. It was not reviewed by a WebKit2 owner.
* PluginProcess/mac/PluginProcessShim.mm:
* Shared/mac/CookieStorageShim.cpp: Removed.
* Shared/mac/CookieStorageShim.h: Removed.
* Shared/mac/CookieStorageShimLibrary.cpp: Removed.
* Shared/mac/CookieStorageShimLibrary.h: Removed.
* Shared/mac/DYLDInterpose.h: Removed.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::addDYLDEnvironmentAdditions):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
(WebKit::WebContentProcessMainDelegate::doPreInitializationWork):
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
* WebProcess/mac/SecItemShimLibrary.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
2013-04-19 Jer Noble <jer.noble@apple.com>
WWDC session videos don’t play at developer.apple.com
https://bugs.webkit.org/show_bug.cgi?id=114858
Reviewed by Eric Carlson.
AVFoundation uses CFNetwork to store and retrieve cookies from the global store.
However, in the case where network access happens in the NetworkProcess, session
cookies are stored in-memory, and are not accessable in the WebProcess. Until such
a time as AVFoundation can provide an API which would allow us to provide cookies
for a specific request, we will interpose the CFNetwork method which they use to
retrieve the cookie string from the cookie store for their pending request.
Duplicate the previous SecItemShim target to a new, WebProcessShim target. This
target includes the SecItemShim functionality, but will add a new shim for cookie
retrieval:
* Shared/mac/CookieStorageShimLibrary.h: Added
(CookieStorageShimCallbacks):
* Shared/mac/CookieStorageShimLibrary.cpp: Added.
(WebKit::ShimProtector::ShimProtector): A simple stack-based counter class.
(WebKit::ShimProtector::~ShimProtector):
(WebKit::ShimProtector::count):
(WebKit::shimCFHTTPCookieStorageCopyRequestHeaderFieldsForURL): Interpose
the CFNetwork call, and pass to the registered callback.
(WebKit::WebKitCookieStorageShimInitialize): Register the callbacks.
Add a helper singleton class which will talk to the shim through the
registered callbacks:
* Shared/mac/CookieStorageShim.h: Added
(WebKit::CookieStorageShim::CookieStorageShim):
* Shared/mac/CookieStorageShim.cpp: Added.
(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL): Pass the request
over to the NetworkProcess.
(WebKit::CookieStorageShim::shared): Simple singleton.
(WebKit::CookieStorageShim::initialize): Call the library initializer.
Initialize the shim only when the WebProcess is delegating network loading
to the NetworkProcess:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Rename the WebProcess's shim from SecItemShim -> WebProcessShim:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::addDYLDEnvironmentAdditions):
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
(WebKit::WebContentProcessMainDelegate::doPreInitializationWork):
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):
As the DYLD_INTERPOSE macro is used in multiple files now, put it in its
own header:
* Shared/mac/DYLDInterpose.h: Added.
* PluginProcess/mac/PluginProcessShim.mm:
* WebProcess/mac/SecItemShimLibrary.mm:
Add new files to the project:
* WebKit2.xcodeproj/project.pbxproj:
2013-04-19 Brady Eidson <beidson@apple.com>
Add JoinExistingSession to the WebContext XPC.
<rdar://problem/13541540> and https://bugs.webkit.org/show_bug.cgi?id=114882
Reviewed by Sam Weinig.
This fixes <keygen> and maybe other things.
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
2013-04-19 Martin Robinson <mrobinson@igalia.com>
[GTK] JSCore.gir.in has a few problems
https://bugs.webkit.org/show_bug.cgi?id=114710
Reviewed by Philippe Normand.
* GNUmakefile.am: Updated to reflect new location of JavaScriptCore gir file. Share the
same autotools data task as the WebKit1 and JavaScriptCore gir installations.
2013-04-19 Noam Rosenthal <noam@webkit.org>
[Texmap] Implementation for pattern compositing
https://bugs.webkit.org/show_bug.cgi?id=109588
Reviewed by Allan Sandfeld Jensen.
Serialize the two new properties from CoordinatedGraphicsLayer to CoordinatedGraphicsScene.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
Encode/decode the new tiling properties.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
Enable pattern compositing for coordinated graphics.
This is needed since we don't want to enable pattern compositing for
WebKit1 yet.
2013-04-18 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Update PDFLayerController's scale factors earlier
https://bugs.webkit.org/show_bug.cgi?id=114843
Reviewed by Simon Fraser.
Inform PDFLayerController of the initial page/device scale factors so that
it renders at the correct scale the first time, instead of first rendering
at 1x and then flashing to 2x (on 2x devices).
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::pdfDocumentDidLoad):
2013-04-18 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Hook up the search-in-Spotlight menu item
https://bugs.webkit.org/show_bug.cgi?id=114837
<rdar://problem/13583591>
Reviewed by Mark Rowe.
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h:
Add performSpotlightSearch: delegate callback.
* WebProcess/Plugins/PDF/PDFPlugin.h:
(WebKit::PDFPlugin::performSpotlightSearch):
Add performSpotlightSearch() PDFPlugin method.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFLayerControllerDelegate performSpotlightSearch:]): Hand the search string to PDFPlugin.
(WebKit::PDFPlugin::performSpotlightSearch): Hand the search string to WebPageProxy.
2013-04-18 Anders Carlsson <andersca@apple.com>
Dispatch local storage events
https://bugs.webkit.org/show_bug.cgi?id=114838
Reviewed by Beth Dakin.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::dispatchEvents):
Pass 0 as the storage area ID if the event originally comes from another process.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
Gather all the frames for which we want to dispatch events.
2013-04-18 Anders Carlsson <andersca@apple.com>
Use the page group id from the UI process as the local storage namespace ID
https://bugs.webkit.org/show_bug.cgi?id=114836
Reviewed by Beth Dakin.
The WebCore PageGroup identifier is different across processes, so use the one given to us by the UI process.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
* WebProcess/WebPage/WebPageGroupProxy.h:
(WebKit::WebPageGroupProxy::corePageGroup):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::webPageGroup):
* WebProcess/WebProcess.h:
2013-04-18 Tim Horton <timothy_horton@apple.com>
Add a synchronous version of WKView endDeferringViewInWindowChanges
https://bugs.webkit.org/show_bug.cgi?id=114780
<rdar://problem/12821901>
Reviewed by Simon Fraser.
Add new WKView SPI, endDeferringViewInWindowChangesSync, which synchronously
(though with a 250 ms timeout) does the work required to reparent a WKView
without flashing white.
* UIProcess/API/mac/WKView.mm:
(-[WKView beginDeferringViewInWindowChanges]):
(-[WKView endDeferringViewInWindowChanges]):
Make begin/endDeferringViewInWindowChanges not allow nested deferrals,
as we don't need them, and they complicate synchronous-end a lot.
(-[WKView endDeferringViewInWindowChangesSync]):
Add a sync version of endDeferringViewInWindowChanges which waits
for DidUpdateInWindowState.
(-[WKView isDeferringViewInWindowChanges]):
* UIProcess/API/mac/WKViewPrivate.h: Add endDeferringViewInWindowChangesSync.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::waitForDidUpdateInWindowState):
Add waitForDidUpdateInWindowState(), which blocks for
250ms or until the WebProcess reparents all of its layers and spins
the runloop once, to prevent flashing when parenting a WKView.
If we've already timed out waiting for the WebProcess, don't block, as
it's probably quite busy and is likely to time out again.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isInWindow): Added.
(WebKit::WebPageProxy::waitForDidUpdateInWindowState): Added.
(WebKit::WebPageProxy::didUpdateInWindowState): Added.
* UIProcess/WebPageProxy.messages.in: Add DidUpdateInWindowState()
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didUpdateInWindowStateTimerFired): Send DidUpdateInWindowState to WebPageProxy.
(WebKit::WebPage::setIsInWindow): When setIsInWindow completes, TileController
tiles have been reparented, and the TiledCoreAnimationDrawingArea has
reconnected the layer tree to the context, start a 0-delay runloop timer
to allow painting and layer flushing to finish; when the timer fires,
we'll send the UIProcess a DidUpdateInWindowState so it can stop blocking.
* WebProcess/WebPage/WebPage.h:
(WebPage): Add didUpdateInWindowStateTimerFired and m_sendDidUpdateInWindowStateTimer.
2013-04-18 Anders Carlsson <andersca@apple.com>
StorageManager should keep track of local storage namespaces
https://bugs.webkit.org/show_bug.cgi?id=114831
Reviewed by Beth Dakin.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
Add the local storage namespace, and security origin as member variables.
(StorageManager::LocalStorageNamespace):
New class that represents a local storage namespace.
(WebKit::StorageManager::StorageArea::~StorageArea):
If this storage area belongs to a local storage namespace, notify it that we've been destroyed.
(WebKit::StorageManager::StorageArea::clone):
Assert that we don't have a local storage namespace.
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
If we already have a storage area for the given security origin, return it. Otherwise, create a new storage area.
Note that LocalStorageNamespace does not hold strong references to its StorageArea objects; they are being kept alive
by a mapping inside the StorageManager.
(WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea):
Remove the storage area from the map. If there are no more areas, remove the namespace from the manager.
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
StorageArea::create now takes the security origin.
(WebKit::StorageManager::createLocalStorageMap):
Get (or create) the right local storage namespace and then create a storage area.
2013-04-17 Geoffrey Garen <ggaren@apple.com>
Renamed JSGlobalData to VM
https://bugs.webkit.org/show_bug.cgi?id=114777
Reviewed by Phil Pizlo.
* Shared/linux/WebMemorySamplerLinux.cpp:
(WebKit::WebMemorySampler::sampleWebKit):
* Shared/mac/WebMemorySampler.mac.mm:
(WebKit::WebMemorySampler::sampleWebKit):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::javaScriptObjectsCount):
* WebProcess/Plugins/Netscape/JSNPMethod.cpp:
(WebKit::JSNPMethod::finishCreation):
* WebProcess/Plugins/Netscape/JSNPMethod.h:
(WebKit::JSNPMethod::create):
(JSNPMethod):
(WebKit::JSNPMethod::createStructure):
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::JSNPObject):
(WebKit::JSNPObject::finishCreation):
(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::callObject):
(WebKit::JSNPObject::callConstructor):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::getOwnPropertyNames):
(WebKit::JSNPObject::propertyGetter):
* WebProcess/Plugins/Netscape/JSNPObject.h:
(WebKit::JSNPObject::create):
(WebKit::JSNPObject::createStructure):
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::create):
(WebKit::NPJSObject::initialize):
* WebProcess/Plugins/Netscape/NPJSObject.h:
(JSC):
(NPJSObject):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::getOrCreateNPObject):
(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
(WebKit::NPRuntimeObjectMap::evaluate):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
(JSC):
(NPRuntimeObjectMap):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::windowScriptNPObject):
(WebKit::PluginView::pluginElementNPObject):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInMainFrame):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getWebCoreStatistics):
2013-04-18 Anders Carlsson <andersca@apple.com>
Differentiate between creating local storage maps and session storage maps
https://bugs.webkit.org/show_bug.cgi?id=114823
Reviewed by Beth Dakin.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
* UIProcess/Storage/StorageManager.h:
* UIProcess/Storage/StorageManager.messages.in:
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
2013-04-18 Anders Carlsson <andersca@apple.com>
StorageAreaMaps should not assume that a zero storage namespace ID is used for local storage
https://bugs.webkit.org/show_bug.cgi?id=114822
Reviewed by Beth Dakin.
Store the storage type directly in the storage area map.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
* WebProcess/Storage/StorageAreaMap.h:
(WebKit::StorageAreaMap::storageType):
2013-04-18 Anders Carlsson <andersca@apple.com>
Begin fleshing out UI side local storage
https://bugs.webkit.org/show_bug.cgi?id=114820
Reviewed by Beth Dakin.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
* WebProcess/Storage/StorageNamespaceImpl.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::localStorageNamespace):
2013-04-18 Sam Weinig <sam@webkit.org>
Fix spelling I thought I had fixed.
* UIProcess/API/mac/WKBrowsingContextGroup.mm:
(-[WKBrowsingContextGroup initWithIdentifier:]):
2013-04-18 Sam Weinig <sam@webkit.org>
WebKit should not write WKPreferences to app user defaults when using the ObjC API
<rdar://problem/13593578>
https://bugs.webkit.org/show_bug.cgi?id=114821
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKBrowsingContextGroup.mm:
(-[WKBrowsingContextGroup initWithIdentifier:]):
Use a identifier-less preferences for the ObjC-API. I think we will probably want this
to be the default for the C-API at some point as well, but Safari currently uses this
behavior.
2013-04-17 Anders Carlsson <andersca@apple.com>
Change storage factory functions to take a PageGroup and Page respectively
https://bugs.webkit.org/show_bug.cgi?id=114776
Reviewed by Beth Dakin.
Update for WebCore changes.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::localStorageNamespace):
(WebKit::WebPlatformStrategies::sessionStorageNamespace):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):
2013-04-18 Timothy Hatcher <timothy@apple.com>
Remove an ASSERT that is causing flakeyness in Debug builds.
https://webkit.org/b/113020
Reviewed by Jessie Berlin.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::open): Removed ASSERT(m_createdInspectorPage).
2013-04-18 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add WebKitWebPage::send-request signal to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=83681
Reviewed by Anders Carlsson.
Add WebKitWebPage::send-request signal emitted in willSendRequest
callback to allow web process extensions to modify requests before
they are sent or cancel the resource load.
This patch makes WebKitURIRequest and WebKitURIResponse objects
shareable between UI process and web extensions APIs. Since both
APIs force single header includes, the WebKitDefines.h header has
been split moving the forward declarations specific to the UI
process API to a new file WebKitForwardDeclarations.h. This way we
can also share the WebKitDefines.h header and remove the
WebKitWebExtensionDefines.h header used in the web extensions API.
* GNUmakefile.list.am: Add new files to compilation.
* UIProcess/API/gtk/WebKitContextMenu.h: Include WebKitForward.h.
* UIProcess/API/gtk/WebKitContextMenuItem.h: Ditto.
* UIProcess/API/gtk/WebKitDefines.h: Remove forward declarations.
* UIProcess/API/gtk/WebKitDownload.h: Include WebKitForward.h.
* UIProcess/API/gtk/WebKitFindController.h: Ditto.
* UIProcess/API/gtk/WebKitForwardDeclarations.h: Added. Contains
the forward declarations moved from WebKitDefines.h.
* UIProcess/API/gtk/WebKitPrintOperation.h: Include WebKitForward.h.
* UIProcess/API/gtk/WebKitURIRequest.cpp:
(webkitURIRequestSetProperty): Use webkit_uri_request_set_uri() to
set the new URI.
(webkit_uri_request_class_init): Make URI property construct
instead of construct-only, since it can be updated once
constructed. It should never be NULL, so set default value to
about:blank instad of NULL.
(webkit_uri_request_set_uri): New public method to set the URI of
the WebKitURIRequest.
* UIProcess/API/gtk/WebKitURIRequest.h: Allow to include this file
from webkit-web-extension.h.
* UIProcess/API/gtk/WebKitURIResponse.h: Ditto.
* UIProcess/API/gtk/WebKitURISchemeRequest.h: Include
WebKitForward.h.
* UIProcess/API/gtk/WebKitWebView.h: Ditto.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add
webkit_uri_request_set_uri.
* UIProcess/API/gtk/tests/TestResources.cpp:
(testWebResourceSendRequest):
(serverCallback):
(beforeAll):
* UIProcess/API/gtk/tests/WebExtensionTest.cpp:
(sendRequestCallback):
(pageCreatedCallback):
* UIProcess/API/gtk/webkit2marshal.list:
* WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.h: Include
WebKitDefines.h instead of WebKitWebExtensionDefines.h.
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(willSendRequestForFrame): Emit WebKitWebPage::send-request and
return early if the load is cancelled.
(webkit_web_page_class_init): Add WebKitWebPage::send-request
signal.
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h: Include
WebKitDefines.h instead of WebKitWebExtensionDefines.h.
* WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:
2013-04-18 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[WK2] CoordinatedGraphicsLayerState is a struct, not a class
https://bugs.webkit.org/show_bug.cgi?id=108855
Reviewed by Andreas Kling.
Fixes the forward declaration which takes CoordinatedGraphicsLayerState
as a class.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(WebCore):
2013-04-18 Krzysztof Wolanski <k.wolanski@samsung.com>:
[EFL][WK2] Change inadequate return value in method setDone().
https://bugs.webkit.org/show_bug.cgi?id=114806
Reviewed by Andreas Kling.
Fix possible warning in EFL port: no return statement in function returning non-void.
Change return value from bool to void in method setDone().
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
(EWK2UnitTest::CallbackDataTimer::setDone):
2013-04-18 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[WK2][EFL] Text Checker's settings refactor
https://bugs.webkit.org/show_bug.cgi?id=111713
Reviewed by Andreas Kling.
Use WK2's TextCheckerState object as the store for the text checker settings.
It's shared between the client (Ewk API part) and WebProcess (read only).
Thanks to it, we don't have to keep any additional structure with
the settings on ewk side.
In the consistency with WKTextChecker C API, move the Ewk's text checker settings APIs
to the ewk_text_checker.h/cpp. They're not connected to Ewk_View/Ewk_Settings object to
keep them in ewk_setting.h/cpp.
Introduce a new class to implement WKTextCheckerClient callbacks to call spelling
methods through WK2 C API.
The main purpose of this change is to detach text checker initialization from ewk_context.
* PlatformEfl.cmake:
Add a new files to the build.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::EwkContext):
Detach the text checker initialization from context.
There might be more than default context.
There is one text checker object per application.
* UIProcess/API/efl/ewk_settings.cpp:
* UIProcess/API/efl/ewk_settings.h:
Remove the text checker settings.
* UIProcess/API/efl/ewk_text_checker.cpp:
Add the text checker settings to the ewk_text_checker.h/cpp
(convertLanguagesToEinaList):
Add helper function to convert Vector's values to Eina_List.
(clientCallbacks):
Add the client callback responsible for the continuous spell checking
setting change to the struct.
(ewk_text_checker_continuous_spell_checking_enabled_set):
Do not call the client's callback responsible for the setting
change unless WebKit changes the setting (trough the context
'Check Spelling While Typing' option).
* UIProcess/API/efl/ewk_text_checker.h:
Adjust APIs name to the ewk_text_checker syntax.
Update the documentation according to the changes.
* UIProcess/API/efl/ewk_text_checker_private.h:
(ClientCallbacks):
Move ClientCallbacks structure to TextCheckerClientEfl.
The client callbacks (Ewk API) have to be accessible in WKTextCheckerClient callbacks
to choose what implementation will be used - the client's (if definied) or Enchant impl.
* UIProcess/API/efl/tests/test_ewk2_text_checker.cpp:
Update the unit tests according to the APIs change.
Update the test responsible for the notification about the setting change
according to changes in 'ewk_text_checker_continuous_spell_checking_enabled_set'.
* UIProcess/efl/TextCheckerClientEfl.cpp: Added.
Implement WKTextCheckerClient callbacks.
(TextCheckerClientEfl::TextCheckerClientEfl):
(TextCheckerClientEfl::instance):
Allow to get and create TextCheckerClientEfl object.
(TextCheckerClientEfl::isContinuousSpellCheckingEnabled):
Get the setting value based on WK2 C API.
(TextCheckerClientEfl::ensureSpellCheckingLanguage):
Load the default languages if user didn't specify any.
(TextCheckerClientEfl::updateSpellCheckingLanguages):
(TextCheckerClientEfl::languagesUpdateTimerFired):
(TextCheckerClientEfl::availableSpellCheckingLanguages):
(TextCheckerClientEfl::loadedSpellCheckingLanguages):
(TextCheckerClientEfl::availableSpellCheckingLanguages):
(TextCheckerClientEfl::loadedSpellCheckingLanguages):
Provide support for languages.
(TextCheckerClientEfl::spellCheckingSettingChangeTimerFired):
(TextCheckerClientEfl::callContinuousSpellCheckingChangeCallbackAsync):
Notify the client about the setting change.
(TextCheckerClientEfl::isContinuousSpellCheckingEnabledCallback):
(TextCheckerClientEfl::setContinuousSpellCheckingEnabledCallback):
(TextCheckerClientEfl::uniqueSpellDocumentTagCallback):
(TextCheckerClientEfl::closeSpellDocumentWithTagCallback):
(TextCheckerClientEfl::checkSpellingOfStringCallback):
(TextCheckerClientEfl::guessesForWordCallback):
(TextCheckerClientEfl::learnWordCallback):
(TextCheckerClientEfl::ignoreWordCallback):
WKTextCheckerClient callbacks implementation.
* UIProcess/efl/TextCheckerClientEfl.h: Added.
(TextCheckerClientEfl):
(TextCheckerClientEfl::clientCallbacks):
Return the client callbacks to be used in ewk_text_checker.cpp.
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit::TextChecker::state):
Initialize the TextCheckerState's members to false.
(WebKit::TextChecker::setContinuousSpellCheckingEnabled):
Set the default language if user didn't specify any.
Notify the client about the setting change.
This method is called when context menu 'Check Spelling While Typing'
option has been toggled.
(WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged):
Set the default language if user didn't specify any.
Called by WKTextChecker's API.
2013-04-18 Manuel Rego Casasnovas <rego@igalia.com>
[GTK][WK2] Add WebKitWebPage::webkit_web_page_get_uri to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=111288
Reviewed by Anders Carlsson.
Add new property URI to WebKitWebPage providing a method
webkit_web_page_get_uri to get it and the signal "notify::uri" to
monitor changes in the URI.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Include new method in
GTK+ doc.
* UIProcess/API/gtk/tests/TestLoaderClient.cpp:
(testWebPageURI):
(beforeAll):
(afterAll): Add test to check that WebKitWebPage URI matches with
WebKitWebView value. The tests is listening for changes in WebKitWebPage
URI via D-Bus and checks that value is the same than WebKitWebView URI.
It also checks that the order of the URIs in a redirection is right.
When the test finishes the signals are disconnected properly.
* UIProcess/API/gtk/tests/WebExtensionTest.cpp:
(uriChangedCallback):
(pageCreatedCallback): Add new D-Bus signal "URIChanged" connected to
"notify::uri" signal of WebKitWebPage.
* UIProcess/API/gtk/tests/WebKitTestBus.cpp:
(WebKitTestBus::getOrCreateConnection): Rename method connection() to
getOrCreateConnection().
(WebKitTestBus::createProxy): Use the new method name.
* UIProcess/API/gtk/tests/WebKitTestBus.h:
(WebKitTestBus::connection): Add public getter for m_connection.
(WebKitTestBus): Add private method header getOrCreateConnection().
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(_WebKitWebPagePrivate): Add new URI attribute.
(webkitWebPageSetURI): Method to set the URI and emit the "notify:uri"
signal if it has changed.
(didStartProvisionalLoadForFrame): At this point it use the unreachable
URL from provisional document loader if any. Otherwise, it uses the URL
from provisional document loader.
(didReceiveServerRedirectForProvisionalLoadForFrame): In the case of
redirections it works like for didStartProvisionalLoadForFrame getting
the unreachable URL if any.
(didSameDocumentNavigationForFrame): In this case it gets the URL from
the document loader.
(webkitWebPageGetProperty): Add code related to URI property.
(webkit_web_page_class_init): Add bits related to URI property.
(webkitWebPageCreate): Implement callbacks to monitor URI changes.
(webkit_web_page_get_uri): Return URI attribute.
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h: Add new method
header.
2013-04-18 Xan Lopez <xan@igalia.com>
[GTK] When the WebProcess crashes, a signal should be emitted
https://bugs.webkit.org/show_bug.cgi?id=105180
Emit a "web-process-crashed" signal when the WebProcess crashes. This
is useful, for example, to show an error page in a web browser
like Chrome does.
Reviewed Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(processDidCrash):
(attachLoaderClientToView):
* UIProcess/API/gtk/WebKitWebContextPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_class_init):
(webkitWebViewWebProcessCrashed):
* UIProcess/API/gtk/tests/TestWebExtensions.cpp:
(testWebExtensionGetTitle):
(webProcessCrashedCallback):
(testWebKitWebViewProcessCrashed):
(beforeAll):
* UIProcess/API/gtk/tests/WebExtensionTest.cpp:
(methodCallCallback):
2013-04-18 Kenneth Rohde Christiansen <kenneth@webkit.org>
[EFL][WK2] Add tooltip API to the WKView client
https://bugs.webkit.org/show_bug.cgi?id=111563
Reviewed by Andreas Kling.
Add tooltip to the barebone Tizen C API, and implement
the method so that the EFL API keeps working.
* UIProcess/API/C/efl/WKView.h:
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::didChangeTooltip):
(WebKit):
(WebKit::ViewClientEfl::ViewClientEfl):
* UIProcess/efl/ViewClientEfl.h:
(ViewClientEfl):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::toolTipChanged):
* UIProcess/efl/WebViewClient.cpp:
(WebKit::WebViewClient::didChangeTooltip):
(WebKit):
* UIProcess/efl/WebViewClient.h:
2013-04-17 Joone Hur <joone.hur@intel.com>
[EFL][AC] m_pendingSurfaceResize needs to be guarded by USE(ACCELERATED_COMPOSITING)
https://bugs.webkit.org/show_bug.cgi?id=114770
AC related code is guarded by USE(ACCELERATED_COMPOSITING) in order to build
WebKitEfl with no-tiled-backing-store(r147792), but m_pendingSurfaceResize is
not included. This patch allows m_pendingSurfaceResize to be guarded by
USE(ACCELERATED_COMPOSITING).
Reviewed by Simon Fraser.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::displayTimerFired):
(EwkView::handleEvasObjectCalculate):
* UIProcess/API/efl/EwkView.h:
(EwkView):
2013-04-17 Anders Carlsson <andersca@apple.com>
The storage manager should know the local storage directory
https://bugs.webkit.org/show_bug.cgi?id=114765
Reviewed by Beth Dakin.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::create):
(WebKit::StorageManager::setLocalStorageDirectory):
(WebKit::StorageManager::setLocalStorageDirectoryInternal):
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::setLocalStorageDirectory):
* UIProcess/WebContext.h:
2013-04-17 Joone Hur <joone.hur@intel.com>
[EFL][AC] MiniBrowser starts with a black empty view before painting a web page
https://bugs.webkit.org/show_bug.cgi?id=103745
Reviewed by Kenneth Rohde Christiansen.
Evas paints empty evas objects before rendering a web page, so it shows
a black empty view for a moment. This patch prevents from painting the empty
evas objects until a GL surface is ready for rendering.
* UIProcess/API/efl/EwkView.cpp:
(showEvasObjectsIfNeeded):
(EwkView::displayTimerFired):
(EwkView::handleEvasObjectShow):
2013-04-16 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add webkit_web_page_get_id() to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=111938
Reviewed by Anders Carlsson.
Add API to the web extensions API to get the identifier of a web
page.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
* UIProcess/API/gtk/tests/WebExtensionTest.cpp:
(methodCallCallback): Check the page ID matches the one returned
by webkit_web_page_get_id().
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkit_web_page_get_id):
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h:
2013-04-16 Anders Carlsson <andersca@apple.com>
Clone storage namespaces for window.open
https://bugs.webkit.org/show_bug.cgi?id=114703
Reviewed by Sam Weinig.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::clone):
New helper function for cloning a storage area.
(WebKit::StorageManager::StorageArea::setItem):
Correctly handle the copy-on-write feature of StorageMap if it has multiple storage areas pointing to it.
(WebKit::StorageManager::StorageArea::removeItem):
Ditto.
(WebKit::StorageManager::SessionStorageNamespace::cloneTo):
Add cloned storage areas.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::copy):
Create a new session storage namespace for the new page.
2013-04-16 Beth Dakin <bdakin@apple.com>
Need a new layout milestone to notify bundle clients when the header has been
flushed
https://bugs.webkit.org/show_bug.cgi?id=114706
-and corresponding-
<rdar://problem/13657284>
Reviewed by Simon Fraser.
Make this new LayoutMilestone private at the API layer.
* Shared/API/c/WKPageLoadTypes.h:
* Shared/API/c/WKPageLoadTypesPrivate.h: Added.
Handle the new milestone.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toWKLayoutMilestones):
(WebKit::toLayoutMilestones):
New file to make the milestone private.
* WebKit2.xcodeproj/project.pbxproj:
Add or remove the DidFirstFlushForHeaderLayer millstone based on whether we just
added or removed a header.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setHeaderLayerWithHeight):
2013-04-16 Ryosuke Niwa <rniwa@webkit.org>
Another EFL build fix.
* WebProcess/WebPage/efl/WebPageEfl.cpp:
2013-04-15 Sam Weinig <sam@webkit.org>
Remove more #includes from Frame.h
https://bugs.webkit.org/show_bug.cgi?id=114642
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/WebPage/WebFrame.cpp:
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebPage/qt/WebPageQt.cpp:
2013-04-16 Timothy Hatcher <timothy@apple.com>
Make resizing the docked Web Inspector stay in sync with the inspected view.
https://webkit.org/b/114682
Reviewed by Joseph Pecoraro.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
Disable screen updates to make sure the layers for both views resize in sync.
2013-04-15 Anders Carlsson <andersca@apple.com>
Remove unneeded headers from ScriptExecutionContext.h
https://bugs.webkit.org/show_bug.cgi?id=114631
Reviewed by Alexey Proskuryakov.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
* WebProcess/WebPage/PageOverlay.cpp:
2013-04-16 Maciej Stachowiak <mjs@apple.com>
Remove even yet still more traces of v8
https://bugs.webkit.org/show_bug.cgi?id=114693
Reviewed by Anders Carlsson.
* Scripts/generate-forwarding-headers.pl: Remove v8 from list of platforms.
2013-04-16 Alexey Proskuryakov <ap@apple.com>
Remove unused AlternativeTextClient::dismissDictationAlternativeUI
https://bugs.webkit.org/show_bug.cgi?id=114598
Reviewed by Ryosuke Niwa.
* UIProcess/API/mac/PageClientImpl.h:
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::dictationAlternatives):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebAlternativeTextClient.h:
* WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:
2013-04-16 Claudio Saavedra <csaavedra@igalia.com>
[GTK][WK2] Add API to retrieve a snapshot from a webview
https://bugs.webkit.org/show_bug.cgi?id=98270
Reviewed by Anders Carlsson.
This adds the GTK+ API necessary to retrieve a snapshot from a
webview asynchronously. The API uses the injected bundle
internally to get the snapshot from the WebProcess.
* UIProcess/API/gtk/WebKitError.cpp:
(webkit_snapshot_error_quark): Add snapshot API related error
quark.
* UIProcess/API/gtk/WebKitError.h: Add snapshot error handling.
* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
(didReceiveWebViewMessageFromInjectedBundle): Handle the new
"DidGetSnapshot" message.
* UIProcess/API/gtk/WebKitPrivate.h: Add SnapshotRegion enum.
* UIProcess/API/gtk/WebKitWebView.cpp:
(_WebKitWebViewPrivate): Add a map for the snapshot results.
(GetSnapshotAsyncData):
(webKitWebViewDidReceiveSnapshot):
(webKitSnapshotRegionToSnapshotRegion): Helper method for casting
the region option enumeration.
(generateSnapshotCallbackID): Method to generate unique callback
ids.
(webkit_web_view_get_snapshot):
(webkit_web_view_get_snapshot_finish): New snapshotting API.
* UIProcess/API/gtk/WebKitWebView.h: Ditto.
* UIProcess/API/gtk/WebKitWebViewPrivate.h: Add the private method
to handle a received snapshot.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add the new API
bits.
* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(cairoSurfacesEqual): Add helper to compare cairo_surface_t
structs.
(testWebViewSnapshot): New test.
(beforeAll): Add the new test.
* UIProcess/API/gtk/tests/WebViewTest.cpp:
(WebViewTest::selectAll): Add method to help test snapshots
including selection.
* UIProcess/API/gtk/tests/WebViewTest.h: Ditto
* WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:
(didReceiveMessageToPage): Ditto.
(webkitWebExtensionCreate): Register method above.
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkitWebPageDidReceiveMessage): Add this method. It
handles the new message "GetSnapshot".
* WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h:
Add method above.
2013-04-16 Timothy Hatcher <timothy@apple.com>
Create full rects for the inspector and inspected views when
adjusting to an inspected view frame change.
This ensures switching dock sides restores the inspected view
and inspector to fill the parent's bounds.
https://webkit.org/b/114666
rdar://problem/13660796
Reviewed by Joseph Pecoraro.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
2013-04-16 Balazs Kelemen <kbalazs@webkit.org>
Initialize logging channels for web processes
https://bugs.webkit.org/show_bug.cgi?id=114621
Reviewed by Sam Weinig.
Use InitializeWebKit2 for initializing the web and plugin processes.
It handles initializing the logging channels and it's better to have
shared core for this. For the plugin process now we always create
a RunLoop object which is not necessary with the -scanPlugin argument
but it shouldn't be a problem.
* PluginProcess/qt/PluginProcessMainQt.cpp:
(WebKit::PluginProcessMain):
* PluginProcess/unix/PluginProcessMainUnix.cpp:
(WebKit::PluginProcessMainUnix):
* WebProcess/efl/WebProcessMainEfl.cpp:
(WebKit::WebProcessMainEfl):
* WebProcess/gtk/WebProcessMainGtk.cpp:
(WebKit::WebProcessMainGtk):
* WebProcess/qt/WebProcessMainQt.cpp:
(WebKit::WebProcessMainQt):
2013-04-16 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[EFL][WK2] Add an API for getting context menu item's parent menu
https://bugs.webkit.org/show_bug.cgi?id=107510
Reviewed by Kenneth Rohde Christiansen.
Added parent menu support and API for Ewk_Context_Menu_Item, to
allow selecting context menus using Elementary widgets.
Context menu unit test updated with new function.
* UIProcess/API/efl/ewk_context_menu.cpp:
(EwkContextMenu::EwkContextMenu):
* UIProcess/API/efl/ewk_context_menu_item.cpp:
(EwkContextMenuItem::EwkContextMenuItem):
(ewk_context_menu_item_parent_menu_get):
* UIProcess/API/efl/ewk_context_menu_item.h:
* UIProcess/API/efl/ewk_context_menu_item_private.h:
(EwkContextMenuItem::create):
(EwkContextMenuItem::parentMenu):
(EwkContextMenuItem::setParentMenu):
(EwkContextMenuItem):
* UIProcess/API/efl/tests/test_ewk2_context_menu.cpp:
(showContextMenu):
2013-04-16 Andreas Kling <akling@apple.com>
Fix release builds with !LOG_DISABLED.
* Platform/mac/Logging.mac.mm:
2013-04-16 Manuel Rego Casasnovas <rego@igalia.com>
[GTK][EFL] Remove deprecated libsoup API usage
https://bugs.webkit.org/show_bug.cgi?id=104894
Reviewed by Philippe Normand.
Remove LIBSOUP_USE_UNSTABLE_REQUEST_API and only include
libsoup/soup.h.
* WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.h:
* WebProcess/efl/WebProcessMainEfl.cpp:
* WebProcess/gtk/WebProcessMainGtk.cpp:
* WebProcess/soup/WebKitSoupRequestGeneric.h:
* WebProcess/soup/WebProcessSoup.cpp:
* WebProcess/soup/WebSoupRequestManager.cpp:
(WebKit::WebSoupRequestManager::registerURIScheme): Remove requester and
use method soup_session_add_feature_by_type().
2013-04-15 Dean Jackson <dino@apple.com>
Plugins that resize might need to be snapshotted.
https://bugs.webkit.org/show_bug.cgi?id=102157
<rdar://problem/12696259>
Reviewed by Tim Horton.
Allow a running plugin to be snapshotted. All this
means is that we start the snapshot timer again.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::beginSnapshottingRunningPlugin): Restart
the timer.
* WebProcess/Plugins/PluginView.h: Virtual method declaration.
2013-04-15 Seokju Kwon <seokju.kwon@gmail.com>
[EFL][WK2] build fix after r148434
https://bugs.webkit.org/show_bug.cgi?id=114647
Reviewed by Benjamin Poulain.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::showContextMenu):
2013-04-15 Jer Noble <jer.noble@apple.com>
After switching to another space and back, video races to catch up with audio
https://bugs.webkit.org/show_bug.cgi?id=114634
Reviewed by Tim Horton.
In Mountain Lion and previous, report that a view is "not visible" when its window
is not in the active space. This causes us to notify AVFoundation that its CAImageQueues
will not be serviced and results in not having the "catch up" behavior when returning
to the browser's space.
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::isViewVisible):
2013-04-15 Seulgi Kim <seulgikim@company100.net>
Schedule rendering at regular interval (60fps)
https://bugs.webkit.org/show_bug.cgi?id=114617
Reviewed by Martin Robinson.
Schedule rendering reguarly regardless of the time taken to render a
frame. Otherwise, next flush delayed by the amount of the rendering
time.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
(WebKit::LayerTreeHostGtk::layerFlushTimerFired):
(WebKit::LayerTreeHostGtk::flushAndRenderLayers):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2013-04-15 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[EFL][WK2] Use C API in ewk_context_menu
https://bugs.webkit.org/show_bug.cgi?id=109698
Reviewed by Andreas Kling.
EFL port unlike others does not handle context menus inside WebKit but exposes an API:
ewk_context_menu and ewk_context_menu_item, and leaves context menu to application.
Currently EFL port's context menu API uses internal C++ classes, while it should use WK2 C API,
to avoid violating layering.
This patch changes EFL context menu API to use only WK2 C API.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::showContextMenu):
* UIProcess/API/efl/EwkView.h:
(WebKit):
(EwkView):
* UIProcess/API/efl/ewk_context_menu.cpp:
(EwkContextMenu::EwkContextMenu):
(EwkContextMenu::contextMenuItemSelected):
(ewk_context_menu_item_select):
(getWKTagFromEwkAction):
* UIProcess/API/efl/ewk_context_menu_item.cpp:
(EwkContextMenuItem::EwkContextMenuItem):
(getEwkActionFromWKTag):
* UIProcess/API/efl/ewk_context_menu_item.h:
* UIProcess/API/efl/ewk_context_menu_item_private.h:
(EwkContextMenuItem::create):
(EwkContextMenuItem):
* UIProcess/API/efl/ewk_context_menu_private.h:
(EwkContextMenu::create):
(EwkContextMenu):
* UIProcess/efl/ContextMenuClientEfl.cpp:
(showContextMenu):
(hideContextMenu):
(ContextMenuClientEfl::ContextMenuClientEfl):
* UIProcess/efl/ContextMenuClientEfl.h:
(WebKit::ContextMenuClientEfl::view):
* UIProcess/efl/WebContextMenuProxyEfl.cpp:
(WebKit::WebContextMenuProxyEfl::showContextMenu):
(WebKit::WebContextMenuProxyEfl::hideContextMenu):
* UIProcess/efl/WebContextMenuProxyEfl.h:
(WebContextMenuProxyEfl):
2013-04-15 Balazs Kelemen <kbalazs@webkit.org>
[CoordGfx] Background color should not be part of GraphicsLayerState
https://bugs.webkit.org/show_bug.cgi?id=113785
Reviewed by Andreas Kling.
Page background is independent from layer state, send it to the UI
as soon as possible.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::setBackgroundColor):
2013-04-15 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[WK2] Add new callbacks and a function for WebKit2 context menu API
https://bugs.webkit.org/show_bug.cgi?id=111552
Reviewed by Anders Carlsson.
Add contextMenuHide and contextMenuShow callbacks to WKPageContextMenuClient
and WKPageContextMenuSelected API so context menus can be handled outside
WebKit. API version of this client was bumped so older client version still
can be used
* Shared/APIClientTraits.cpp:
(WebKit):
* Shared/APIClientTraits.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSelectContextMenuItem):
* UIProcess/API/C/WKPage.h:
* UIProcess/API/gtk/WebKitContextMenuClient.cpp:
(attachContextMenuClientToView):
* UIProcess/WebPageContextMenuClient.cpp:
(WebKit::WebPageContextMenuClient::getContextMenuFromProposedMenu):
(WebKit::WebPageContextMenuClient::showContextMenu):
(WebKit):
(WebKit::WebPageContextMenuClient::hideContextMenu):
* UIProcess/WebPageContextMenuClient.h:
(WebPageContextMenuClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/efl/ContextMenuClientEfl.cpp:
(ContextMenuClientEfl::ContextMenuClientEfl):
2013-04-14 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Regression(r148274): Broke rendering in the browser
https://bugs.webkit.org/show_bug.cgi?id=114593
Reviewed by Anders Carlsson.
r148274 added a new "didChangeViewportAttributes" callback to
WKView but did not hook it up in ViewClientEfl. This patch
fixes this and makes rendering work again in the browser.
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::ViewClientEfl):
2013-04-14 Andreas Kling <akling@apple.com>
Move CSSOM classes to using MutableStylePropertySet over StylePropertySet.
<http://webkit.org/b/114581>
Reviewed by Anders Carlsson.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::shouldApplyStyle):
2013-04-14 Christophe Dumez <ch.dumez@sisa.samsung.com>
Unreviewed build fix for WebKit2 EFL after r148373 due to missing
header includes.
* UIProcess/InspectorServer/efl/WebInspectorServerEfl.cpp:
* UIProcess/efl/InputMethodContextEfl.cpp:
2013-04-13 Sam Weinig <sam@webkit.org>
Add ObjC API for setting initialization data for the WKWebProcessPlugIn
https://bugs.webkit.org/show_bug.cgi?id=103846
Reviewed by Darin Adler.
* UIProcess/API/mac/WKProcessGroup.h:
Adds a new optional processGroupWillCreateConnectionToWebProcessPlugIn: method for the WKProcessGroupDelegate protocol,
which allows the user to pass (via an autoreleased return value) initialization data to the web process plugin.
* UIProcess/API/mac/WKProcessGroup.mm:
(getInjectedBundleInitializationUserData):
(setUpInectedBundleClient):
(-[WKProcessGroup initWithInjectedBundleURL:]):
(-[WKProcessGroup dealloc]):
Use the existing WKContextInjectedBundleClient infrastructure to pass the initialization data to the bundle
via the new ObjCObjectGraph APIObject.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
Adds webProcessPlugIn:initializeWithObject: to the WKWebProcessPlugIn protocol, replacing webProcessPlugInInitialize:.
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::load):
Pass the initialization data to the web process plugin.
2013-04-13 Sam Weinig <sam@webkit.org>
Attempt Build Fix.
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
2013-04-12 Sam Weinig <sam@webkit.org>
Make Frame's ScriptController an OwnPtr and remove the #include
https://bugs.webkit.org/show_bug.cgi?id=114105
Reviewed by Dean Jackson.
* Shared/WebHitTestResult.cpp:
* Shared/WebHitTestResult.h:
* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
* UIProcess/WebContext.h:
* UIProcess/WebPageProxy.h:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/Storage/StorageAreaImpl.cpp:
* WebProcess/Storage/StorageAreaMap.cpp:
* WebProcess/WebPage/WebFrame.cpp:
* WebProcess/WebPage/WebPage.cpp:
2013-04-13 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix after r148311.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(resizeWebKitWebViewBaseFromAllocation): Passing IntSize() as the scroll offset
argument to the DrawingAreaProxy::setSize method.
2013-04-12 Gavin Barraclough <barraclough@apple.com>
Add private interface to WKView to asynchronously update the drawing area size
https://bugs.webkit.org/show_bug.cgi?id=114549
Reviewed by Simon Fraser.
This will allow a client using the WKView to resize the contents without blocking waiting for the web process to repaint.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setDrawingAreaSize:]):
- if the new size of teh drawing area does not match the frame size, position it according to the contentAnchor.
(-[WKView updateLayer]):
- Don't let a subsequent frame size change block on a prior async resize.
(-[WKView forceAsyncDrawingAreaSizeUpdate:]):
- resize the drawing area asynchronously, even if frame size udpates are disabled.
(-[WKView waitForAsyncDrawingAreaSizeUpdate]):
- wait for asynchronous updates to complete.
* UIProcess/API/mac/WKViewPrivate.h:
- declare new methods.
* UIProcess/DrawingAreaProxy.cpp:
(WebKit):
* UIProcess/DrawingAreaProxy.h:
(DrawingAreaProxy):
(WebKit::DrawingAreaProxy::waitForPossibleGeometryUpdate):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
(TiledCoreAnimationDrawingAreaProxy):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
- pass timeout for waitForPossibleGeometryUpdate as a parameter.
2013-04-12 Jessie Berlin <jberlin@apple.com>
32-bit build fix.
* UIProcess/API/mac/WKView.mm:
(-[WKView setFrameSize:]):
2013-04-12 Jeffrey Pfau <jpfau@apple.com>
Query directly for cache partition names
https://bugs.webkit.org/show_bug.cgi?id=114538
Reviewed by David Kilzer.
Call back into WebKitSystemInterface to ask it for the cache
partition names instead of trying to figure them out.
* WebProcess/ResourceCache/WebResourceCacheManager.cpp:
(WebKit::WebResourceCacheManager::getCacheOrigins):
(WebKit):
(WebKit::WebResourceCacheManager::returnCacheOrigins):
* WebProcess/ResourceCache/WebResourceCacheManager.h:
(WebResourceCacheManager):
* WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp:
(WebKit::WebResourceCacheManager::cfURLCacheHostNames):
(WebKit):
(WebKit::WebResourceCacheManager::cfURLCacheHostNamesWithCallback):
2013-04-12 Gavin Barraclough <barraclough@apple.com>
Build fix - too soon!
* UIProcess/API/mac/WKViewPrivate.h:
2013-04-12 Gavin Barraclough <barraclough@apple.com>
Build fix - too soon!
* UIProcess/API/mac/WKView.mm:
(-[WKView setFrameSize:]):
2013-04-12 Adenilson Cavalcanti <cavalcantii@gmail.com>
[WK2] WebPageProxy loadURL() won't work when called just after terminateProcess()
https://bugs.webkit.org/show_bug.cgi?id=110743
Reviewed by Benjamin Poulain.
A call to loadURL() just after terminating WebProcess will fail thanks to
WebPageProxy being in an undefined state since it is in the middle of its own
cleanup after process termination.
To properly fix this, not only WebPageProxy cleanup should be made
at WebProcess termination request, but also WebProcessProxy needs
to only return to its caller after terminating the process and
closing connections. Otherwise, WebPageProxy can even be able to
detect that WebProcess is no longer running, but a call to respawn
the process will fail.
To fix these issues, this patch moves the cleanup code to a shared private function
that is used for both the cases i.e. user termination and real crash. WebProcess
shutdown is done using a new method that ensures that all cleanup was done before
returning.
A last change introduced in this patch is that for user requested termination,
clients are no longer notified of a crash (since it is not a crash).
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::terminateProcess):
(WebKit::WebPageProxy::processDidCrash):
(WebKit):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::userRequestedTerminate):
(WebKit):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
2013-04-12 Gavin Barraclough <barraclough@apple.com>
Add contentAnchor to WKView
http://bugs.webkit.org/show_bug.cgi?id=114469
Currently if you call setFrameSize: while frame size updates are disabled, or if the geometry
update times out, then the previously rendered page content will be rendered anchored to the
top left corner of the frame.
This is appropriate if the frame is being resized from the bottom right corner. In order to
achieve a more desirable appearance if the frame is being resized from another corner we
should allow the corner at which the content anchors to be specified.
Reviewed by Simon Fraser.
* UIProcess/API/mac/WKView.mm:
(-[WKView setFrameSize:]):
- If the content anchor has been set, then updating the frame size moves the origin within the layer.
(-[WKView _setDrawingAreaSize:]):
- Instruct the drawing area to paint at the correct position within the layer.
(-[WKView _setAcceleratedCompositingModeRootLayer:]):
- If the root layer is cleared this implicitly resets any origin position we had set within it.
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
- initialize new data members.
(-[WKView setContentAnchor:]):
(-[WKView contentAnchor]):
- Accessor implementation for @property contentAnchor.
* UIProcess/API/mac/WKViewPrivate.h:
(NS_ENUM):
- Added WKContentAnchor enum type, and @property contentAnchor.
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::setSize):
- Don't suppress geometry updates where the layer poistion has changed.
* UIProcess/DrawingAreaProxy.h:
(DrawingAreaProxy):
- Added m_layerPosition, layerPosition argument to setSize
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
(TiledCoreAnimationDrawingAreaProxy):
- Added m_lastSentLayerPosition
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry):
- Don't suppress geometry updates where the layer poistion has changed.
(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
- Pass layer position in UpdateGeometry message.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::updateGeometry):
- Added layerPosition argument to updateGeometry
* WebProcess/WebPage/DrawingArea.messages.in:
- Added layerPosition argument to updateGeometry
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
- Added layerPosition argument to updateGeometry
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
- Added layerPosition argument to updateGeometry
2013-04-12 Commit Queue <rniwa@webkit.org>
Unreviewed, rolling out r148296 and r148297.
http://trac.webkit.org/changeset/148296
http://trac.webkit.org/changeset/148297
https://bugs.webkit.org/show_bug.cgi?id=114536
Needs more thought (Requested by ap on #webkit).
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2013-04-12 Tim Horton <timothy_horton@apple.com>
REGRESSION (r138858): GIFs don't start playing when they come out of background tabs
https://bugs.webkit.org/show_bug.cgi?id=108864
<rdar://problem/13140489>
Reviewed by Antti Koivisto.
Don't repaint the world when animations resume; instead, FrameView
will cause all animated images to repaint. This line also had no effect for
TiledCoreAnimationDrawingArea, which does not implement setNeedsDisplay.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::resumeActiveDOMObjectsAndAnimations):
2013-04-12 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13334446> [Mac] Tweak sandbox profile.
Apply a post-landing review comment.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2013-04-12 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13334446> [Mac] Tweak sandbox profile.
Reviewed by Jessie Berlin.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2013-04-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Split GtkAuthenticationDialog in two widgets
https://bugs.webkit.org/show_bug.cgi?id=103644
Reviewed by Xan Lopez.
* GNUmakefile.list.am: Add new files to compilation.
* UIProcess/API/gtk/WebKit2GtkAuthenticationDialog.cpp: Removed.
* UIProcess/API/gtk/WebKit2GtkAuthenticationDialog.h: Removed.
* UIProcess/API/gtk/WebKitAuthenticationDialog.cpp: Added.
(webkitAuthenticationDialogAuthenticate): Use the
AuthenticationChallengeProxy to authenticate and destroy the dialog.
(okButtonClicked): Call webkitAuthenticationDialogAuthenticate()
with the credential.
(cancelButtonClicked): Call
webkitAuthenticationDialogAuthenticate() with a NULL credential to
continue without credential.
(webkitAuthenticationDialogInitialize): Build the UI.
(webkitAuthenticationDialogDraw): Draw a background.
(webkitAuthenticationDialogMap): Grab default button.
(webkitAuthenticationDialogConstructed): Create a GtkStyleContext
with the GtkWindow path to draw the widget background like a real
dialog.
(webkit_authentication_dialog_class_init):
(webkitAuthenticationDialogNew): Create a new
WebKitAuthenticationDialog widget.
* UIProcess/API/gtk/WebKitAuthenticationDialog.h: Added.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewHandleAuthenticationChallenge): Create a
WebKitAuthenticationDialog widget and pass add it to the
container.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(_WebKitWebViewBasePrivate): Updated to use the widget directly.
(webkitWebViewChildIsInternalWidget): Ditto.
(webkitWebViewBaseAddAuthenticationDialog): Ditto.
(webkitWebViewBaseCancelAuthenticationDialog): Ditto.
(webkitWebViewBaseContainerRemove): Ditto.
(webkitWebViewBaseContainerForall): Ditto.
(resizeWebKitWebViewBaseFromAllocation): Ditto.
(webkitWebViewBaseFocus): Ditto.
(webkitWebViewBaseDestroy): Destroy the auth widget is present.
(webkit_web_view_base_class_init): Add implementation for
GtkWidgetClass::destroy.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
2013-04-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Web Process crash when the UI process finishes too early
https://bugs.webkit.org/show_bug.cgi?id=112729
Reviewed by Anders Carlsson.
The problem is when creating the GSocket in the WorkQeue for the
socket descriptor. GLib considers a programmer error to create a
GSocket providing an invalid socket and finishes the process with
g_error(). We are actually providing a valid socket when creating
the GSocket, but it can be invalidated by the worker thread while
the GSocket is being created. This is because
registerEventSourceHandler is called from the main thread and
unregisterEventSourceHandler can be called from the worker
thread. We are currently registering two event handlers, one to
read data from the socket and another one to close the CoreIPC
connection when the socket connection is broken. Every event
source registered uses its own GSocket (even if the file
descriptor is actually the same), so that when the UI process
finishes too early, the first event handler can be executed in the
worker thread, closing the socket descriptor, while the main
thread is creating the GSocket for the second one.
We don't really need to use a separate event handler to monitor
the connection, because GSocket always notifies when condition is
G_IO_HUP and G_IO_ERR even if they haven't been explicitly set in
g_socket_create_source(). We can register socket event sources
differently, providing also a function to be called when the
connection is closed, using a single socket and the same even source.
* Platform/CoreIPC/unix/ConnectionUnix.cpp:
(CoreIPC::Connection::platformInvalidate):
(CoreIPC::Connection::open): Register a single socket event
handler providing also a function to be called when the connection
is closed.
* Platform/WorkQueue.h:
(WorkQueue):
* Platform/gtk/WorkQueueGtk.cpp: The EventSource class has been
split, moving everyting specific to socket event source to a
derived class SocketEventSource.
(WorkQueue::EventSource::EventSource):
(WorkQueue::EventSource::performWork):
(WorkQueue::EventSource::performWorkOnce):
(WorkQueue::EventSource::performWorkOnTermination):
(WorkQueue::EventSource::deleteEventSource):
(WorkQueue::EventSource):
(WorkQueue::SocketEventSource):
(WorkQueue::SocketEventSource::SocketEventSource):
(WorkQueue::SocketEventSource::cancel):
(WorkQueue::SocketEventSource::didClose):
(WorkQueue::SocketEventSource::checkCondition):
(WorkQueue::SocketEventSource::eventCallback):
(WorkQueue::registerSocketEventHandler):
(WorkQueue::unregisterSocketEventHandler):
(WorkQueue::dispatchOnSource):
2013-04-12 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13126204> [Mac] Tweak sandbox profile.
Reviewed by Anders Carlsson.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* WebProcess/com.apple.WebProcess.sb.in:
2013-04-12 Manuel Rego Casasnovas <rego@igalia.com>
[GTK][WK2] Add document-loaded signal to WebKitWebPage
https://bugs.webkit.org/show_bug.cgi?id=110614
Reviewed by Carlos Garcia Campos.
Add a new signal document-loaded to WebKitWebPage that will be emitted
when the DOM document has been loaded for the main frame.
* UIProcess/API/gtk/tests/TestWebExtensions.cpp:
(documentLoadedCallback):
(testDocumentLoadedSignal):
(beforeAll): Add test for document-loaded signal.
* UIProcess/API/gtk/tests/WebExtensionTest.cpp:
(documentLoadedCallback):
(pageCreatedCallback):
(methodCallCallback): Add new D-Bus signal DocumentLoaded in order to
test document-loaded signal.
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkit_web_page_class_init):
(webkitWebPageCreate): Add document-loaded signal and emit it when
didFinishDocumentLoadForFrame is called.
2013-04-12 Hanyee Kim <choco@company100.net>
[GTK] Webkit fails to build webkit2gtk-tests-resources.gresource.
https://bugs.webkit.org/show_bug.cgi?id=114485
Reviewed by Martin Robinson.
Generating webkit2gtk-tests-resources.gresource can be failed due to
the non-existing target directory.
We need to make target directory before generating it.
* UIProcess/API/gtk/tests/GNUmakefile.am:
2013-04-12 Andreas Kling <akling@apple.com>
REGRESSION(r145869): Right-click on SWF contents displays the context menu at the wrong place.
<http://webkit.org/b/113836>
<rdar://problem/13587624>
Reviewed by Anders "Wesley Crusher" Carlsson.
Mac plugins expect flipped-Y screen coordinates, while DOM APIs speak in unflipped coordinates,
and we were mixing them up in the window frame caching optimization.
Solve this by having the UIProcess send both flipped and unflipped window frames to the WebProcess.
The flipped frame is passed on to plugins, and the unflipped frame is used for window.screenX/Y etc.
* UIProcess/API/mac/WKView.mm:
(-[WKView _updateWindowAndViewFrames]):
No need to retrieve the window frame here as WebPageProxy::windowAndViewFramesChanged() will
always override it anyway.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::windowAndViewFramesChanged):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::windowRect):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::windowAndViewFramesChanged):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::windowFrameInUnflippedScreenCoordinates):
* WebProcess/WebPage/WebPage.messages.in:
2013-04-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] WebView: Add callbacks to the WKViewClient to handle page viewport update
https://bugs.webkit.org/show_bug.cgi?id=110463
Reviewed by Anders Carlsson.
* UIProcess/efl/ViewClientEfl.h:
(ViewClientEfl):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::didChangeViewportProperties):
* UIProcess/efl/WebViewClient.cpp:
(WebKit::WebViewClient::didChangeViewportAttributes):
(WebKit):
* UIProcess/efl/WebViewClient.h:
Added didChangeViewportAttributes callback to the WKViewClient to
handle page viewport updates.
* CMakeLists.txt:
* Shared/API/c/WKBase.h:
* Shared/APIObject.h:
* UIProcess/API/C/WKAPICast.h:
(WebKit):
* UIProcess/API/C/WKViewportAttributes.cpp: Added.
(WKViewportAttributesGetTypeID):
* UIProcess/API/C/WKViewportAttributes.h: Added.
* UIProcess/API/C/efl/WKView.h:
* UIProcess/WebViewportAttributes.cpp: Added.
(WebKit):
(WebKit::WebViewportAttributes::WebViewportAttributes):
(WebKit::WebViewportAttributes::~WebViewportAttributes):
* UIProcess/WebViewportAttributes.h: Added.
(WebKit):
(WebViewportAttributes):
(WebKit::WebViewportAttributes::create):
(WebKit::WebViewportAttributes::originalAttributes):
(WebKit::WebViewportAttributes::type):
Added WKViewportAttributesRef - WK2 C API object that is wrapping
WebCore::ViewportAttributes structure and is passed in didChangeViewportAttributes
WKViewClient callback.
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::didChangeViewportAttributes):
(WebKit):
Added implementaion of didChangeViewportAttributes WKViewClient
callback so that existing EFL WK2 funtionality is kept.
2013-04-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] The style of visited links doesn't change in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=112175
Reviewed by Benjamin Poulain.
The problem is that visited links were not tracked by the web
process. There's a web process initial parameter to set whether
web process should track visited links or not and it's disabled by
default.
* UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::platformInitializeWebProcess): Always set
shouldTrackVisitedLinks to true.
2013-04-11 Tim Horton <timothy_horton@apple.com>
REGRESSION (r146956): ASSERTion failure: WebKit::WebProcess::pageWillLeaveWindow
https://bugs.webkit.org/show_bug.cgi?id=114481
<rdar://problem/13534784>
Reviewed by Simon Fraser.
Inform the WebProcess of WebPages which are already in a window when created.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
2013-04-11 Anders Carlsson <andersca@apple.com>
Add support for clearing storage areas
https://bugs.webkit.org/show_bug.cgi?id=114479
Reviewed by Beth Dakin.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::StorageArea):
Store the quota size so we can recreate the underlying StorageMap when clearing.
(WebKit::StorageManager::StorageArea::clear):
Create a new storage map and dispatch events.
(WebKit::StorageManager::clear):
Find the right storage area and call clear.
* UIProcess/Storage/StorageManager.messages.in:
Add Clear message.
* WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::clear):
Call the storage map.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::clear):
Reset the cached values and send a clear message.
(WebKit::StorageAreaMap::resetValues):
New helper function.
(WebKit::StorageAreaMap::didClear):
New stub.
* WebProcess/Storage/StorageAreaMap.messages.in:
Add DidClear message.
2013-04-11 Beth Dakin <bdakin@apple.com>
WebKit should set the header and footer layers' contentsScale when the device
scale factor changes
https://bugs.webkit.org/show_bug.cgi?id=114471
-and corresponding-
<rdar://problem/13621288>
Reviewed by Simon Fraser.
Update the header and footer contentsScale when the device scale factor has
changed.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setDeviceScaleFactor):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::updateHeaderAndFooterLayersForDeviceScaleChange):
2013-04-11 Anders Carlsson <andersca@apple.com>
Implement removing storage area items
https://bugs.webkit.org/show_bug.cgi?id=114472
Reviewed by Beth Dakin.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
(WebKit::StorageManager::StorageArea::setItem):
Rename connection to sourceConnection.
(WebKit::StorageManager::StorageArea::removeItem):
Remove the item from the map and dispatch events if needed.
(WebKit::StorageManager::removeItem):
Find the right storage area, remove the item and send back a DidRemoveItem message.
* UIProcess/Storage/StorageManager.messages.in:
Add RemoveItem message.
* WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::removeItem):
Call StorageAreaMap::removeItem.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::removeItem):
Send a RemoveItem message to the storage manager.
(WebKit::StorageAreaMap::didRemoveItem):
Add empty stub.
* WebProcess/Storage/StorageAreaMap.messages.in:
Add DidRemoveItem message.
2013-04-11 Tim Horton <timothy_horton@apple.com>
InjectedBundleNodeHandle::imageForRect doesn't respect device scale factor or highlighting option
https://bugs.webkit.org/show_bug.cgi?id=114466
<rdar://problem/13508513>
Reviewed by Simon Fraser.
Respect the device scale factor when creating the snapshot image.
Clear the snapshot image before drawing into it.
Respect SnapshotOptionsExcludeSelectionHighlighting.
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::imageForRect):
2013-04-11 Commit Queue <rniwa@webkit.org>
Unreviewed, rolling out r148034, r148052, r148097, and
r148194.
http://trac.webkit.org/changeset/148034
http://trac.webkit.org/changeset/148052
http://trac.webkit.org/changeset/148097
http://trac.webkit.org/changeset/148194
https://bugs.webkit.org/show_bug.cgi?id=114463
broke mutiresolution favicons, among other things (Requested
by thorton on #webkit).
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::setIconDataForIconURL):
* UIProcess/WebIconDatabase.h:
(WebIconDatabase):
* UIProcess/WebIconDatabase.messages.in:
* WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
(WebKit::WebIconDatabaseProxy::setIconDataForIconURL):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::destroy):
2013-04-11 Anders Carlsson <andersca@apple.com>
Implement StorageManager::getValues
https://bugs.webkit.org/show_bug.cgi?id=114461
Reviewed by Beth Dakin.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::items):
(WebKit::StorageManager::getValues):
Return the items from the right storage area.
2013-04-11 Anders Carlsson <andersca@apple.com>
Clean up related storage areas when a connection is destroyed
https://bugs.webkit.org/show_bug.cgi?id=114459
Reviewed by Beth Dakin.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::processWillCloseConnection):
Dispatch invalidateConnectionInternal on the work queue.
(WebKit::StorageManager::createStorageMap):
(WebKit::StorageManager::destroyStorageMap):
Rename m_storageAreas to m_storageAreasByConnection.
(WebKit::StorageManager::invalidateConnectionInternal):
Go over all known storage areas and remove this connection as a listener.
(WebKit::StorageManager::findStorageArea):
Rename m_storageAreas to m_storageAreasByConnection.
* UIProcess/Storage/StorageManager.h:
Rename m_storageAreas to m_storageAreasByConnection.
2013-04-11 Anders Carlsson <andersca@apple.com>
Make StorageAreaMap dispatch session storage events
https://bugs.webkit.org/show_bug.cgi?id=114454
Reviewed by Beth Dakin.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::dispatchStorageEvent):
Depending on the storage area type, call dispatchSessionStorageEvent or dispatchLocalStorageEvent.
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
Enumerate all the frames in our page and dispatch the event to the relevant ones.
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
Add empty stub for now.
2013-04-11 Anders Carlsson <andersca@apple.com>
Implement more logic in StorageAreaMap
https://bugs.webkit.org/show_bug.cgi?id=114451
Reviewed by Alexey Proskuryakov.
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::callMemberFunction):
Add new overload.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::addListener):
(WebKit::StorageManager::StorageArea::removeListener):
These take storage map IDs.
(WebKit::StorageManager::StorageArea::setItem):
Rename storageAreaID to sourceStorageAreaID.
(WebKit::StorageManager::StorageArea::dispatchEvents):
Remove the code that would not dispatch to the source connection, there may still be storage areas interested in those events.
(WebKit::StorageManager::setItem):
This now takes the source storage area ID.
(WebKit::StorageManager::findStorageArea):
This takes a storage map ID.
* UIProcess/Storage/StorageManager.messages.in:
SetItem now takes the source storage area ID as well.
* WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::setItem):
Pass the source frame to StorageAreaMap::setItem.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
Send CreateStorageMap and add the object as a message receiver.
(WebKit::StorageAreaMap::~StorageAreaMap):
Send DestroyStorageMap and remove the object as a message receiver.
(WebKit::StorageAreaMap::length):
(WebKit::StorageAreaMap::key):
(WebKit::StorageAreaMap::item):
(WebKit::StorageAreaMap::contains):
Load values and forward calls to the storage map.
(WebKit::StorageAreaMap::setItem):
This now takes the source frame as well. Update the local storage map and send a SetItem message.
(WebKit::StorageAreaMap::loadValuesIfNeeded):
Get the values from the storage manager.
(WebKit::StorageAreaMap::dispatchStorageEvent):
This now takes the source storage area ID.
* WebProcess/Storage/StorageAreaMap.messages.in:
DispatchStorageEvent now takes the source storage area ID.
2013-04-10 Brady Eidson <beidson@apple.com>
Web/Plugin process deadlock initializing async plugins.
<rdar://problem/13525232> and https://bugs.webkit.org/show_bug.cgi?id=114217
Rubberstamped by Anders Carlsson.
Rollout r147953 and r147968 as we identified other causes for this.
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::createPluginAsynchronously):
* WebProcess/Plugins/PluginProxy.messages.in:
2013-04-11 Alexey Proskuryakov <ap@apple.com>
Remove some ResourceHandle.h includes
https://bugs.webkit.org/show_bug.cgi?id=114416
Reviewed by Ryosuke Niwa.
* WebProcess/Network/NetworkProcessConnection.cpp: Added an include that is now
necessary.
2013-04-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] EventHandler should handle Space and BackSpace
https://bugs.webkit.org/show_bug.cgi?id=114428
Reviewed by Jocelyn Turcotte.
Remove our own handling of space and backspace.
* WebProcess/WebPage/qt/WebPageQt.cpp:
(WebKit::WebPage::performDefaultBehaviorForKeyEvent):
2013-04-11 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed Qt buildfixes after r148147, r148148 and r148154.
* DerivedSources.pri:
* Target.pri:
2013-04-10 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix, fixing the WebKit2 build.
* GNUmakefile.list.am:
2013-04-10 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[WK2] Build warning in didReceiveMessage() generated by messages.py
https://bugs.webkit.org/show_bug.cgi?id=112513
Reviewed by Anders Carlsson.
Legacy receiver makes -Wunused-parameter build warnings. This patch is to fix them.
* Scripts/webkit2/messages.py:
(generate_message_handler):
2013-04-10 Jaehun Lim <ljaehun.lim@samsung.com>
[CMAKE] Build fix after StorageArea refactoring
https://bugs.webkit.org/show_bug.cgi?id=114398
Unreviewed build fix.
Change StorageAreaImpl.messages.in with StorageAreaMap.messages.in.
Add StorageAreaMap.cpp in CMakeLists.txt.
* CMakeLists.txt:
2013-04-10 Anders Carlsson <andersca@apple.com>
Make StorageAreaImpl a wrapper around StorageAreaMap
https://bugs.webkit.org/show_bug.cgi?id=114404
Reviewed by Oliver Hunt.
Prepare for moving all the code that deals with local storage values to StorageAreaMap,
and make StorageAreaImpl a dumb wrapper that simply calls through to the map.
* WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::create):
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::~StorageAreaImpl):
(WebKit::StorageAreaImpl::storageType):
(WebKit::StorageAreaImpl::length):
(WebKit::StorageAreaImpl::key):
(WebKit::StorageAreaImpl::getItem):
(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::contains):
* WebProcess/Storage/StorageAreaImpl.h:
(WebKit::StorageAreaImpl::storageAreaID):
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::generateStorageMapID):
(WebKit::StorageAreaMap::create):
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::storageType):
(WebKit::StorageAreaMap::length):
(WebKit::StorageAreaMap::key):
(WebKit::StorageAreaMap::item):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::contains):
(WebKit::StorageAreaMap::didSetItem):
(WebKit::StorageAreaMap::dispatchStorageEvent):
* WebProcess/Storage/StorageAreaMap.h:
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
* WebProcess/Storage/StorageNamespaceImpl.h:
(StorageNamespaceImpl):
2013-04-10 Anders Carlsson <andersca@apple.com>
Rename StorageManager messages to refer to the StorageMap instead of the StorageArea
https://bugs.webkit.org/show_bug.cgi?id=114401
Reviewed by Ryosuke Niwa.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createStorageMap):
(WebKit::StorageManager::destroyStorageMap):
(WebKit::StorageManager::setItem):
* UIProcess/Storage/StorageManager.h:
* UIProcess/Storage/StorageManager.messages.in:
* WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::~StorageAreaImpl):
2013-04-10 Benjamin Poulain <bpoulain@apple.com>
Mass remove all the empty directories
Rubberstamped by Ryosuke Niwa.
* Platform/CoreIPC/gtk: Removed.
* Platform/CoreIPC/qt: Removed.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32: Removed.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64: Removed.
* PluginProcess/gtk: Removed.
* Shared/API/c/win: Removed.
* Shared/Plugins/Netscape/win: Removed.
* Shared/cg/win: Removed.
* Shared/win: Removed.
* UIProcess/API/C/win: Removed.
* UIProcess/API/gtk/webkit: Removed.
* UIProcess/Launcher/win: Removed.
* UIProcess/Plugins/gtk: Removed.
* UIProcess/Plugins/win: Removed.
* UIProcess/texmap: Removed.
* UIProcess/win: Removed.
* WebProcess/Authentication/mac: Removed.
* WebProcess/Cookies/efl: Removed.
* WebProcess/Cookies/gtk: Removed.
* WebProcess/Downloads/cf/win: Removed.
* WebProcess/Downloads/cfnet: Removed.
* WebProcess/Downloads/curl: Removed.
* WebProcess/Downloads/efl: Removed.
* WebProcess/Downloads/gtk: Removed.
* WebProcess/Downloads/mac: Removed.
* WebProcess/Downloads/qt: Removed.
* WebProcess/Downloads/soup: Removed.
* WebProcess/FullScreen/gtk: Removed.
* WebProcess/FullScreen/mac: Removed.
* WebProcess/FullScreen/qt: Removed.
* WebProcess/FullScreen/win: Removed.
* WebProcess/InjectedBundle/API/c/win: Removed.
* WebProcess/InjectedBundle/win: Removed.
* WebProcess/KeyValueStorage: Removed.
* WebProcess/Network/CustomProtocols/mac: Removed.
* WebProcess/Plugins/Netscape/gtk: Removed.
* WebProcess/Plugins/Netscape/win: Removed.
* WebProcess/WebCoreSupport/win: Removed.
* WebProcess/WebPage/LayerTreeCoordinator: Removed.
* WebProcess/WebPage/ca/mac: Removed.
* WebProcess/WebPage/ca/win: Removed.
* WebProcess/WebPage/win: Removed.
* WebProcess/win: Removed.
* qt/Resources: Removed.
2013-04-10 Jaehun Lim <ljaehun.lim@samsung.com>
[CMAKE] Build fix after r148147, r148148
https://bugs.webkit.org/show_bug.cgi?id=114395
Unreviewed build fix.
Use StorageAreaImpl, StorageNamespaceImpl instead of StorageAreaProxy, StorageNamespaceProxy.
* CMakeLists.txt:
2013-04-10 Anders Carlsson <andersca@apple.com>
Add a stubbed out StorageAreaMap class
https://bugs.webkit.org/show_bug.cgi?id=114392
Reviewed by Andreas Kling.
The intention is that StorageAreaMap is going to take over responsibility for storing the storage values in the
web process, as well as dispatching events. A StorageAreaMap will be shared between multiple StorageAreaImpl objects,
for example if multiple frames with the same origin use local storage.
* DerivedSources.make:
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::dispatchEvents):
(WebKit::StorageManager::setItem):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::~StorageAreaImpl):
* WebProcess/Storage/StorageAreaMap.cpp: Added.
(WebKit):
(WebKit::StorageAreaMap::create):
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
(WebKit::StorageAreaMap::didSetItem):
(WebKit::StorageAreaMap::dispatchStorageEvent):
* WebProcess/Storage/StorageAreaMap.h: Added.
(WebKit):
(StorageAreaMap):
* WebProcess/Storage/StorageAreaMap.messages.in: Renamed from Source/WebKit2/WebProcess/Storage/StorageAreaImpl.messages.in.
2013-04-10 Anders Carlsson <andersca@apple.com>
Rename StorageAreaProxy to StorageAreaImpl.
Rubber-stamped by Beth Dakin.
* DerivedSources.make:
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::dispatchEvents):
(WebKit::StorageManager::setItem):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/StorageAreaImpl.cpp: Renamed from Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp.
* WebProcess/Storage/StorageAreaImpl.h: Renamed from Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h.
* WebProcess/Storage/StorageAreaImpl.messages.in: Renamed from Source/WebKit2/WebProcess/Storage/StorageAreaProxy.messages.in.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
* WebProcess/Storage/StorageNamespaceImpl.h:
(WebKit):
(StorageNamespaceImpl):
2013-04-10 Anders Carlsson <andersca@apple.com>
Rename StorageNamespaceProxy to StorageNamespaceImpl.
Rubber-stamped by Beth Dakin.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::create):
(WebKit::StorageAreaProxy::StorageAreaProxy):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
* WebProcess/Storage/StorageNamespaceImpl.cpp: Renamed from Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.cpp.
* WebProcess/Storage/StorageNamespaceImpl.h: Renamed from Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.h.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::sessionStorageNamespace):
2013-04-10 Tim Horton <timothy_horton@apple.com>
[wk2] Un-pollute TCADA methods with "PageOverlayLayerMap::iterator end"
https://bugs.webkit.org/show_bug.cgi?id=114387
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::paintContents):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
2013-04-10 Tim Horton <timothy_horton@apple.com>
[wk2] REGRESSION: Find highlight does not update when the view is resized
https://bugs.webkit.org/show_bug.cgi?id=114382
<rdar://problem/13599797>
Reviewed by Simon Fraser.
Invalidate the page overlays from TiledCoreAnimationDrawingArea::updateGeometry.
This will have no effect if the page overlay hasn't previously asked to be painted
(as drawsContent will remain false on the layer).
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea): Add invalidateAllPageOverlays.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::invalidateAllPageOverlays): Factor this out of didChangeScrollOffsetForAnyFrame.
(WebKit::TiledCoreAnimationDrawingArea::didChangeScrollOffsetForAnyFrame): Call invalidateAllPageOverlays.
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry): Call invalidateAllPageOverlays.
2013-04-10 Beth Dakin <bdakin@apple.com>
FindBanner matches are offset when the WKView has a header or footer
https://bugs.webkit.org/show_bug.cgi?id=114314
-and corresponding-
<rdar://problem/13522434>
Reviewed by Simon Fraser.
When calculating the matching rects, also adjust to the scroll offset that is
relative to the Document.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::rectsForTextMatches):
2013-04-10 Tobias Mueller <tobiasmue@gnome.org>
Fixed build failure in Plugin.h: FloatPoint was not in namespace WebCore
make[1]: *** Waiting for unfinished jobs....
In file included from Source/WebKit2/PluginProcess/PluginCreationParameters.h:31:0,
from Source/WebKit2/PluginProcess/PluginCreationParameters.cpp:27:
./Source/WebKit2/WebProcess/Plugins/Plugin.h:268:58: error: 'FloatPoint' in namespace 'WebCore' does not name a type
./Source/WebKit2/WebProcess/Plugins/Plugin.h:268:77: error: ISO C++ forbids declaration of 'parameter' with no type [-fpermissive]
cc1plus: warning: unrecognized command line option "-Wno-c++11-extensions" [enabled by default]
make[1]: *** [Source/WebKit2/PluginProcess/libwebkit2gtk_3_0_la-PluginCreationParameters.lo] Error 1
It now passes that make target.
https://bugs.webkit.org/show_bug.cgi?id=111862
Reviewed by Darin Adler.
* WebProcess/Plugins/Plugin.h:
(WebCore): Added FloatPoint to the WebCore namespace
2013-04-08 Anders Carlsson <andersca@apple.com>
Remove unneeded headers from FrameLoader.h
https://bugs.webkit.org/show_bug.cgi?id=114223
Reviewed by Geoffrey Garen.
Include HistoryController.h from WebCore.
* WebProcess/Plugins/PDF/SimplePDFPlugin.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebPage/WebPage.cpp:
2013-04-09 Geoffrey Garen <ggaren@apple.com>
Removed bitrotted TimeoutChecker code
https://bugs.webkit.org/show_bug.cgi?id=114336
Reviewed by Alexey Proskuryakov.
This mechanism hasn't worked for a while.
MarkL is working on a new version of this feature with a distinct
implementation.
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::construct):
(WebKit::NPJSObject::invoke):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::evaluate):
2013-04-09 Mark Rowe <mrowe@apple.com>
<rdar://problem/13617144> WKNavigationData needs to expose the destination of the navigation
Introduce WKNavigationDataCopyNavigationDestinationURL to access the destination of the navigation.
Reviewed by Dan Bernstein.
* UIProcess/API/C/WKNavigationData.cpp:
(WKNavigationDataCopyURL): Add a note about returning the URL from the original request for sake of
backwards-compatibility.
(WKNavigationDataCopyNavigationDestinationURL): Return the URL from our underlying WebNavigationDataStore.
* UIProcess/API/C/WKNavigationData.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::updateGlobalHistory): Store the current URL in to the WebNavigationDataStore
object. WKNavigationData can retrieve the value that we were previously storing here via the originalRequest.
2013-04-09 Mark Rowe <mrowe@apple.com>
<rdar://problem/13617104> WKPageCopySessionState needs to provide more context to the filter callback
Introduce a new value type for WKPageSessionStateFilterCallback that represents the passing
of whole WKBackForwardListItemRefs to the filter callback. This allows clients to consider
more than the original URL of the item when filtering entries from the session state.
Reviewed by Darin Adler.
* UIProcess/API/C/WKPage.cpp:
(WKPageGetSessionBackForwardListItemValueType): Return a static string representing our new value type.
* UIProcess/API/C/WKPage.h:
* UIProcess/cf/WebBackForwardListCF.cpp:
(WebKit::WebBackForwardList::createCFDictionaryRepresentation): Call the filter function with each of the
possible value types in turn, respecting the first false value, if any, that is returned.
2013-04-10 Anton Obzhirov <a.obzhirov@samsung.com>
[GTK] Add support for Page Visibility
https://bugs.webkit.org/show_bug.cgi?id=97324
Reviewed by Sam Weinig.
Added new unittest to test page visibility using GTK Widget visibility API.
* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(testWebViewPageVisibility):
(beforeAll):
* UIProcess/API/gtk/tests/WebViewTest.cpp:
(WebViewTest::showInWindow):
* UIProcess/API/gtk/tests/WebViewTest.h:
2013-04-10 Zan Dobersek <zdobersek@igalia.com>
REGRESSION (r146518): WebKit2APITests/TestInspector is failing
https://bugs.webkit.org/show_bug.cgi?id=113281
Reviewed by Darin Adler.
Changes to the WebInspectorProxy opening processing in r146518 caused the change in how the GTK-specific
WebInspectorProxy code operates, specifically the 'bring-to-front' signal is not emitted anymore when opening the
inspector due to the WebInspectorProxy::bringToFront method now only bringing the inspector window to front if it exists
and opening it (and thus unable to bring it to front) otherwise.
Closing of the inspector through the didClose method is now done immediately after sending the WebInspector::Close()
message to the WebProcess rather than waiting for the WebProcess to communicate back the order of closing. Due to this
the relevant code in the test cases had to be changed to not run the loop but rather just check that the closing was
successful.
(InspectorTest::InspectorTest): Remove the initialization of the now redundant m_quitOnBringToFront member variable.
(InspectorTest::bringToFront): Quit the loop without checking the removed member variable.
(InspectorTest::closed): Do not quit the loop as it is not run anymore.
(InspectorTest::showIdle): A helper method that asynchronously calls the webkit_web_inspector_show method, removing some
unnecessary complexity about under what exact circumstances to quit the loop in open-window/bring-to-front callbacks.
(InspectorTest::show): Replaces the showAndWaitUntilFinished method, adding an idle invocation of the showIdle helper
method and running the loop.
(InspectorTest::close): Formerly closeAndWaitUntilClosed, now does not run the loop anymore as there's no need for it.
(testInspectorDefault): Only the window opening event is now expected upon showing the inspector for the first time.
Adjusting callsites to use InspectorTest::show and InspectorTest::close instead of
InspectorTest::showAndWaitUntilFinished and InspectorTest::showAndWaitUntilFinished.
(CustomInspectorTest::destroyWindow): Formerly destroyWindowAndWaitUntilClosed, the closing is not asynchronous anymore
so the loop is not run.
(testInspectorManualAttachDetach): Only the window opening event is now expected upon showing the inspector for the first time.
Adjusting callsites to use InspectorTest::show and InspectorTest::close instead of
InspectorTest::showAndWaitUntilFinished and InspectorTest::showAndWaitUntilFinished.
(testInspectorCustomContainerDestroyed): Adjusting callsites to use InspectorTest::show and CustomInspectorTest::destroyWindow
instead of InspectorTest::showAndWaitUntilFinished and CustomInspectorTest::destroyWindowAndWaitUntilClosed.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::show): When showing a connected WebInspectorProxy, call the bringToFront method which will
open the inspector if it's not yet visible or bring it to the front otherwise.
2013-04-10 Zan Dobersek <zandobersek@gmail.com>
[GTK][WK2] Implement WebInspectorProxy::platformInspectedWindowWidth
https://bugs.webkit.org/show_bug.cgi?id=113498
Reviewed by Martin Robinson.
The method was introduced in r147004.
* UIProcess/API/gtk/tests/TestInspector.cpp: Specify the gMinimumAttachedInspectorWidth variable, reflecting the value
of WebInspectorProxy::minimumAttachedWidth. Use it as the width to which the inspected view should be resized in
InspectorTest::resizeViewAndAttach.
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformInspectedWindowHeight): Use the gtk_widget_get_allocated_height method to return the
widget height.
(WebKit::WebInspectorProxy::platformInspectedWindowWidth): Newly implemented, similarly uses the
gtk_widget_get_allocated_width method to return the widget width.
2013-04-09 Antoine Quint <graouts@apple.com>
WKFrameIsDisplayingMarkupDocument should return true for Web Archives
https://bugs.webkit.org/show_bug.cgi?id=114291
Reviewed by Dean Jackson.
Also return true for the Web Archive MIME type since a Web Archive
is displaying a markup document by nature.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::isDisplayingMarkupDocument):
2013-04-09 Anders Carlsson <andersca@apple.com>
REGRESSION (r147454): Youtube annotation links to new window broken
https://bugs.webkit.org/show_bug.cgi?id=114242
<rdar://problem/13609940>
Reviewed by Beth Dakin.
Set the current user gesture to "DefinitelyProcessingNewUserGesture" if popups are allowed.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performFrameLoadURLRequest):
2013-04-09 Anders Carlsson <andersca@apple.com>
If we fail to decode a message name, pass the message length as the name
https://bugs.webkit.org/show_bug.cgi?id=114305
<rdar://problem/13605703>
Reviewed by Sam Weinig.
* Platform/CoreIPC/ArgumentDecoder.h:
(CoreIPC::ArgumentDecoder::length):
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::processIncomingMessage):
2013-04-08 Dean Jackson <dino@apple.com>
Don't create another plugin process for restarted plugins
https://bugs.webkit.org/show_bug.cgi?id=114233
Reviewed by Geoff Garen.
A snapshotting plugin starts in a separate process from
regular plugins. This can be a little confusing to users
because they might see two plugin processes. We can set
the minimum life and timeout on the snapshotting process
to much smaller values, since the process doesn't need
to live that long. This will reduce some potential
confusion. Also, since there is another plugin process
running real plugins, it should be paged in if it needs
to restart.
There was, however, a bug in the process management. A
restarted plugin received a special PluginProcess::Type,
so that it could cross fade into the page nicely. This
caused it to start a *third* plugin process. Instead
mark a restarted flag directly on the PluginProxy and
revert back to two process types.
* PluginProcess/PluginProcess.h: Remove TypeRestartedProcess.
* UIProcess/Plugins/PluginProcessProxy.cpp: Add two new
timeout values for snapshotting processes.
(WebKit::PluginProcessProxy::didFinishLaunching): Chose which
of the timeout pairs to use.
* WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:
(WebKit::PluginProxy::pluginLayer): Don't look at the process type, instead
look at the process flag to see if we are restarted.
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::create): Copy the new flag into constructor.
(WebKit::PluginProxy::PluginProxy): Remember the flag.
* WebProcess/Plugins/PluginProxy.h: Add a new m_restartedProcess flag.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin): When we are creating the proxy, separate
the concept of snapshotting and restarting.
2013-04-09 Tim Horton <timothy_horton@apple.com>
[wk2] IconDatabase images should be decoded in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=112524
<rdar://problem/10133914>
Reviewed by Oliver Hunt.
In the interests of keeping decoding of data coming in from the greater Internet
in the WebProcess, move decoding of favicons from the UIProcess to the WebProcess.
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::setIconBitmapForIconURL):
Receive a ShareableBitmap handle from the WebProcess instead of a DataReference.
Use the new setIconBitmapForIconURL IconDatabase method.
* UIProcess/WebIconDatabase.h:
(WebIconDatabase):
Rename setIconDataForIconURL to setIconBitmapForIconURL.
* UIProcess/WebIconDatabase.messages.in: Ditto.
* WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
(WebKit::WebIconDatabaseProxy::setIconDataForIconURL):
In the WebProcess, decode the incoming icon and draw it into a ShareableBitmap.
2013-04-09 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
[EFL] Declare TEST_THEME_DIR in a single place.
https://bugs.webkit.org/show_bug.cgi?id=114285
Reviewed by Anders Carlsson.
* PlatformEfl.cmake: Remove definition of `TEST_THEME_DIR', which is
now defined in OptionsEfl.cmake.
2013-04-09 Rafael Brandao <rafael.lobo@openbossa.org>
[CoordinatedGraphics] serviceScriptedAnimations expects time in seconds
https://bugs.webkit.org/show_bug.cgi?id=112582
Reviewed by Andreas Kling.
We've been exposing different time unit for requestAnimationFrame because
of wrong conversion before serviceScriptedAnimations function calls.
Fixed it to use seconds instead of milliseconds.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::syncDisplayState): Remove unnecessary conversion.
2013-04-09 Michael Brüning <michael.bruning@digia.com>
[Qt][WK2] Remove obsolete QtWebPageFindClient forward declaration from qquickwebview_p.h.
https://bugs.webkit.org/show_bug.cgi?id=114284
Reviewed by Andreas Kling.
The class QtWebPageFindClient was removed in r142073 when the functionality
was folded into QQuickWebViewPrivate.
* UIProcess/API/qt/qquickwebview_p.h:
(WebKit):
2013-04-09 Michael Brüning <michael.bruning@digia.com>
Fix GTK WebKit2 build after r148005.
https://bugs.webkit.org/show_bug.cgi?id=114270
Reviewed by Andreas Kling.
Fix GTK build break that went through the buildbot undetected.
* UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
(webkit_file_chooser_request_get_selected_files):
2013-04-09 Michael Brüning <michael.bruning@digia.com>
[Qt][WK2] Remove direct references to WebPageProxy from QQuickWebPage.
https://bugs.webkit.org/show_bug.cgi?id=112850
Reviewed by Andreas Kling.
Removes direct references to WebPageProxy from QQuickWebPage and prepares the
class for the move to QRawWebView. The access to the device scale factor and
CoordinatedGraphicsScene is provided through QQuickWebViewPrivate, and therefore
accessors to these properties are temporarily added. Eventually, this access will
be provided through QRawWebView when the move is complete.
This also moves the pointer to QtWebPageEventHandler from QQuickWebPagePrivate
to QQuickWebViewPrivate as it is mainly used from there.
* UIProcess/API/qt/qquickwebpage.cpp:
(QQuickWebPagePrivate::QQuickWebPagePrivate):
(QQuickWebPagePrivate::paint):
(QQuickWebPage::updatePaintNode):
* UIProcess/API/qt/qquickwebpage_p.h:
* UIProcess/API/qt/qquickwebpage_p_p.h:
(QQuickWebPagePrivate):
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
(QQuickWebViewPrivate::handleMouseEvent):
(QQuickWebViewPrivate::processDidCrash):
(QQuickWebViewPrivate::coordinatedGraphicsScene):
(QQuickWebViewPrivate::deviceScaleFactor):
(QQuickWebViewPrivate::setIntrinsicDeviceScaleFactor):
(QQuickWebViewFlickablePrivate::onComponentComplete):
(QQuickWebView::keyPressEvent):
(QQuickWebView::keyReleaseEvent):
(QQuickWebView::inputMethodEvent):
(QQuickWebView::focusInEvent):
(QQuickWebView::itemChange):
(QQuickWebView::touchEvent):
(QQuickWebView::wheelEvent):
(QQuickWebView::hoverEnterEvent):
(QQuickWebView::hoverMoveEvent):
(QQuickWebView::hoverLeaveEvent):
(QQuickWebView::dragMoveEvent):
(QQuickWebView::dragEnterEvent):
(QQuickWebView::dragLeaveEvent):
(QQuickWebView::dropEvent):
* UIProcess/API/qt/qquickwebview_p_p.h:
(WebCore):
(WebKit):
(QQuickWebViewPrivate):
2013-04-09 Michael Brüning <michael.bruning@digia.com>
[Qt][WK2] Use C API to enable Navigator Qt Object.
https://bugs.webkit.org/show_bug.cgi?id=112810
Reviewed by Andreas Kling.
Replace the direct reference to the WebPageProxy with use of
C API.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::setNavigatorQtObjectEnabled):
2013-04-09 Michael Brüning <michael.bruning@digia.com>
[WK2] Add C API to copy selected files from WebOpenPanelParameters.
https://bugs.webkit.org/show_bug.cgi?id=112339
Reviewed by Andreas Kling.
Replaces the existing WebOpenPanelParameters::selectedFileNames() method
to return a copy of the selected file names and exposes it through the
C API. This is done in order to reduce the direct use of WebKit2 internal
classes. The implementation is very similar to the one in
WebOpenPanelParameters::acceptMIMETypes().
This also updates the GTK port, which is the other user of selectedFileNames.
* Shared/WebOpenPanelParameters.cpp:
(WebKit::WebOpenPanelParameters::selectedFileNames):
(WebKit):
* Shared/WebOpenPanelParameters.h:
(WebOpenPanelParameters):
* UIProcess/API/C/WKOpenPanelParameters.cpp:
(WKOpenPanelParametersCopySelectedFileNames):
* UIProcess/API/C/WKOpenPanelParameters.h:
* UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
(webkit_file_chooser_request_get_selected_files):
* UIProcess/qt/QtWebPageUIClient.cpp:
(WebKit::QtWebPageUIClient::runOpenPanel):
2013-04-09 Jinwoo Song <jinwoo7.song@samsung.com>
[WK2] Remove build warnings for unused parameters
https://bugs.webkit.org/show_bug.cgi?id=114234
Reviewed by Andreas Kling.
Fix build warnings -Wunused-parameter.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::SessionStorageNamespace::cloneTo):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::requestNetworkingStatistics):
(WebKit::WebContext::pluginInfoStoreDidLoadPlugins):
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::removeItem):
(WebKit::StorageAreaProxy::clear):
(WebKit::StorageAreaProxy::dispatchSessionStorageEvent):
(WebKit::StorageAreaProxy::dispatchLocalStorageEvent):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::didUninstallPageOverlay):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didFinishLoad):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):
2013-04-09 Thiago Marcos P. Santos <thiago.santos@intel.com>
[WK2] Drop WebProcess capabilities on Linux using seccomp filters
https://bugs.webkit.org/show_bug.cgi?id=89875
Reviewed by Maciej Stachowiak.
Introduce the foundations of the SeccompFilter-based sandbox. The
hardening of the WebProcess (and potentially PluginProcess, etc)
works by a combination of the two things:
- Blocking syscalls that are not used, reducing the size of the attack
surface.
- Trapping sensitive syscalls and delegating the execution of these
syscalls to a separated trusted process subject to a set of policies.
The initial implementation traps the open()-family of syscalls on WebKit
EFL's and Qt's WebProcess, but it could be easily used by any Linux port,
since the code is suppose to be Linux-compliant. The list of syscalls handled
by the broker process should definitely grow as we mature the
implementation. Other syscalls needs to be handled to get this sandbox
fully functional, like unlink(), mkdir(), etc.
The broker process should be initialized as early as possible on the
sandboxed process main() function, because it only does a fork(), which
is cheap on Linux. That also aims to minimize the resident memory footprint
of the broker process.
Opening of files for upload and saving downloads is not supported yet,
since it should be handled to the UIProcess in a similar fashion as
the Mac port does.
* PlatformEfl.cmake:
* Shared/linux/SeccompFilters/OpenSyscall.cpp: Added.
(WebKit):
(WebKit::OpenSyscall::createFromOpenatContext):
(WebKit::OpenSyscall::createFromCreatContext):
(WebKit::OpenSyscall::OpenSyscall):
(WebKit::OpenSyscall::setResult):
(WebKit::OpenSyscall::execute):
(WebKit::OpenSyscall::encode):
(WebKit::OpenSyscall::decode):
(WebKit::OpenSyscallResult::OpenSyscallResult):
(WebKit::OpenSyscallResult::~OpenSyscallResult):
(WebKit::OpenSyscallResult::encode):
(WebKit::OpenSyscallResult::decode):
* Shared/linux/SeccompFilters/OpenSyscall.h: Added.
(CoreIPC):
(WebKit):
(OpenSyscall):
(WebKit::OpenSyscall::setPath):
(WebKit::OpenSyscall::setFlags):
(WebKit::OpenSyscall::setMode):
(OpenSyscallResult):
(WebKit::OpenSyscallResult::fd):
(WebKit::OpenSyscallResult::errorNumber):
* Shared/linux/SeccompFilters/SeccompBroker.cpp: Added.
(WebKit):
(SeccompBrokerClient):
(WebKit::sendMessage):
(WebKit::receiveMessage):
(WebKit::SIGSYSHandler):
(WebKit::registerSIGSYSHandler):
(WebKit::SeccompBrokerClient::shared):
(WebKit::SeccompBrokerClient::SeccompBrokerClient):
(WebKit::SeccompBrokerClient::~SeccompBrokerClient):
(WebKit::SeccompBrokerClient::dispatch):
(WebKit::SeccompBrokerClient::handleIfOpeningOnlineCPUCount):
(WebKit::SeccompBroker::launchProcess):
(WebKit::SeccompBroker::initialize):
(WebKit::SeccompBroker::runLoop):
* Shared/linux/SeccompFilters/SeccompBroker.h: Added.
(WebKit):
(SeccompBroker):
(WebKit::SeccompBroker::setSyscallPolicy):
(WebKit::SeccompBroker::SeccompBroker):
* Shared/linux/SeccompFilters/SeccompFilters.cpp: Added.
(WebKit):
(WebKit::SeccompFilters::SeccompFilters):
(WebKit::SeccompFilters::~SeccompFilters):
(WebKit::SeccompFilters::addRule):
(WebKit::SeccompFilters::initialize):
* Shared/linux/SeccompFilters/SeccompFilters.h: Added.
(WebKit):
(SeccompFilters):
(WebKit::SeccompFilters::context):
(WebKit::SeccompFilters::platformInitialize):
* Shared/linux/SeccompFilters/SigactionSyscall.cpp: Added.
(WebKit):
(WebKit::SigactionSyscall::createFromContext):
* Shared/linux/SeccompFilters/SigactionSyscall.h: Added.
(WebKit):
(SigactionSyscall):
* Shared/linux/SeccompFilters/SigprocmaskSyscall.cpp: Added.
(WebKit):
(WebKit::SigprocmaskSyscall::createFromContext):
* Shared/linux/SeccompFilters/SigprocmaskSyscall.h: Added.
(WebKit):
(SigprocmaskSyscall):
* Shared/linux/SeccompFilters/Syscall.cpp: Added.
(WebKit):
(WebKit::Syscall::createFromContext):
(WebKit::Syscall::createFromDecoder):
(WebKit::Syscall::Syscall):
(WebKit::SyscallResult::createFromDecoder):
(WebKit::SyscallResult::SyscallResult):
* Shared/linux/SeccompFilters/Syscall.h: Added.
(CoreIPC):
(WebKit):
(Syscall):
(WebKit::Syscall::~Syscall):
(WebKit::Syscall::type):
(WebKit::Syscall::setContext):
(WebKit::Syscall::context):
(SyscallResult):
(WebKit::SyscallResult::~SyscallResult):
(WebKit::SyscallResult::type):
* Shared/linux/SeccompFilters/SyscallPolicy.cpp: Added.
(WebKit):
(WebKit::removeTrailingSlash):
(WebKit::SyscallPolicy::hasPermissionForPath):
(WebKit::SyscallPolicy::addFilePermission):
(WebKit::SyscallPolicy::addDirectoryPermission):
(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):
* Shared/linux/SeccompFilters/SyscallPolicy.h: Added.
(WebKit):
(SyscallPolicy):
* Target.pri:
* WebKit2.pri:
* WebProcess/efl/SeccompFiltersWebProcessEfl.cpp: Added.
(WebKit):
(WebKit::SeccompFiltersWebProcessEfl::SeccompFiltersWebProcessEfl):
(WebKit::SeccompFiltersWebProcessEfl::platformInitialize):
* WebProcess/efl/SeccompFiltersWebProcessEfl.h: Added.
(WebKit):
(SeccompFiltersWebProcessEfl):
* WebProcess/qt/SeccompFiltersWebProcessQt.cpp: Added.
(WebKit):
(WebKit::SeccompFiltersWebProcessQt::SeccompFiltersWebProcessQt):
(WebKit::SeccompFiltersWebProcessQt::platformInitialize):
* WebProcess/qt/SeccompFiltersWebProcessQt.h: Added.
(WebKit):
(SeccompFiltersWebProcessQt):
* WebProcess/qt/WebProcessQt.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
2013-04-08 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[WK2][EFL] Mark not implemented methods in TextCheckerEfl.
https://bugs.webkit.org/show_bug.cgi?id=112261
Reviewed by Anders Carlsson.
There's no need to call client's methods in TextCheckerEfl.cpp if they are not
implemented. Mark them as not implemented until we provide proper implementation.
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit::TextChecker::isContinuousSpellCheckingAllowed):
(WebKit::TextChecker::setGrammarCheckingEnabled):
(WebKit::TextChecker::grammarCheckingEnabledStateChanged):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::spellingUIIsShowing):
(WebKit::TextChecker::toggleSpellingUIIsShowing):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
2013-04-08 Benjamin Poulain <benjamin@webkit.org>
Remove HTML Notification
https://bugs.webkit.org/show_bug.cgi?id=114231
Reviewed by Ryosuke Niwa.
* Configurations/FeatureDefines.xcconfig:
2013-04-08 Tim Horton <timothy_horton@apple.com>
Don't run primary plugin detection if plugin snapshotting is off
https://bugs.webkit.org/show_bug.cgi?id=114222
<rdar://problem/13603988>
Reviewed by Dean Jackson.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
2013-04-08 Patrick Gansterer <paroga@webkit.org>
[WIN] Remove WebKit2 source code
https://bugs.webkit.org/show_bug.cgi?id=114096
Reviewed by Anders Carlsson.
Remove conditional includes for the windows platform.
* Shared/API/c/WKBase.h:
* UIProcess/API/C/WKAPICast.h:
2013-04-08 Geoffrey Garen <ggaren@apple.com>
Stop #include-ing all of JavaScriptCore in every DOM-related file
https://bugs.webkit.org/show_bug.cgi?id=114220
Reviewed by Sam Weinig.
* Shared/WebCoreArgumentCoders.cpp:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
2013-04-08 Brady Eidson <beidson@apple.com>
Web/Plugin process deadlock initializing async plugins.
<rdar://problem/13525232> and https://bugs.webkit.org/show_bug.cgi?id=114217
Reviewed by Anders Carlsson.
The "Async initialization complete" messages probably don't have to be synchronous.
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::createPluginAsynchronously): Notify of initialization success/failure asynchronously.
* WebProcess/Plugins/PluginProxy.messages.in:
2013-04-08 Anders Carlsson <andersca@apple.com>
Add an async version of ResourceHandle::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=114215
Reviewed by Sam Weinig.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
Send the message and then call continueDidReceiveResponse.
2013-04-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Build Platform as a separate static library
https://bugs.webkit.org/show_bug.cgi?id=114164
Reviewed by Martin Robinson.
This way we reduce a bit the amount of files compiled twice
because of the plugin process.
* GNUmakefile.am:
* GNUmakefile.list.am:
* Platform/gtk/WorkQueueGtk.cpp: Remove unused header.
* Platform/unix/SharedMemoryUnix.cpp: Ditto.
2013-04-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] WebView: Add callbacks to the WKViewClient to remove direct access to page viewport controller
https://bugs.webkit.org/show_bug.cgi?id=110741
Reviewed by Anders Carlsson.
Provided WKViewClient with didRequestScroll, didRenderFrame and didCompletePageTransition
callbacks so that direct access from WebView to page viewport controller is avoided.
Implementation of callbacks is also added to keep the current EFL WK2 functionality.
* UIProcess/API/C/efl/WKView.h:
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::didCommitLoadForFrame):
Moved here code from deleted WebView::didCommitLoad.
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::didChangeContentsPosition):
(WebKit):
(WebKit::ViewClientEfl::didRenderFrame):
(WebKit::ViewClientEfl::didCompletePageTransition):
(WebKit::ViewClientEfl::ViewClientEfl):
* UIProcess/efl/ViewClientEfl.h:
(ViewClientEfl):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::pageDidRequestScroll):
(WebKit::WebView::didRenderFrame):
(WebKit::WebView::pageTransitionViewportReady):
* UIProcess/efl/WebViewClient.cpp:
(WebKit::WebViewClient::didChangeContentsPosition):
(WebKit):
(WebKit::WebViewClient::didRenderFrame):
(WebKit::WebViewClient::didCompletePageTransition):
* UIProcess/efl/WebViewClient.h:
(WebCore):
2013-04-08 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] WebView's interactive property is not fully respected
https://bugs.webkit.org/show_bug.cgi?id=113066
Reviewed by Jocelyn Turcotte.
WK2 sign-off by Benjamin Poulain.
The QML WebView inherits the "interactive" property from Flickable
which is true by default, and disables the interaction with the
Flickable if set to false.
Resulting from the design of the WebView panning and flicking is
disabled by Flickable but to be consistent we also need to disable
double-tap gestures and pinch gestures since they would trigger
scale and position changes.
* UIProcess/qt/PageViewportControllerClientQt.cpp:
(WebKit::PageViewportControllerClientQt::pinchGestureStarted):
(WebKit::PageViewportControllerClientQt::pinchGestureRequestUpdate):
(WebKit::PageViewportControllerClientQt::pinchGestureEnded):
* UIProcess/qt/QtWebPageEventHandler.cpp:
(WebKit::QtWebPageEventHandler::handleDoubleTapEvent):
2013-04-07 David Kilzer <ddkilzer@apple.com>
Remove the rest of SVG_DOM_OBJC_BINDINGS
<http://webkit.org/b/114112>
Reviewed by Geoffrey Garen.
* Configurations/FeatureDefines.xcconfig:
- Remove ENABLE_SVG_DOM_OBJC_BINDINGS macro.
2013-04-06 Geoffrey Garen <ggaren@apple.com>
Try to fix the WebKit2 build.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit):
* NetworkProcess/NetworkResourceLoader.h:
(NetworkResourceLoader): Removed a defunct function.
2013-04-05 Ed Bartosh <bartosh@gmail.com>
[WK2] --no-tiled-backing-store build fails because FloatPoint is not declared
https://bugs.webkit.org/show_bug.cgi?id=113618
Reviewed by Simon Fraser.
* WebProcess/Plugins/Plugin.h: Forward declared FloatPoint
2013-04-05 Geoffrey Garen <ggaren@apple.com>
Made USE(JSC) unconditional
https://bugs.webkit.org/show_bug.cgi?id=114058
Reviewed by Anders Carlsson.
* Shared/linux/WebMemorySamplerLinux.cpp:
(WebKit::WebMemorySampler::sampleWebKit):
* config.h:
2013-04-05 Ed Bartosh <bartosh@gmail.com>
[EFL] --no-tiled-backing-store build fails because of not used #if USE(ACCELERATED_COMPOSITING)
https://bugs.webkit.org/show_bug.cgi?id=113627
Reviewed by Simon Fraser.
Wrapped code with #if USE(ACCELERATED_COMPOSITING) to make it compilable
with --no-tiled-backing-store build option:
* UIProcess/API/C/efl/WKView.cpp:
* UIProcess/API/efl/EvasGLContext.cpp:
* UIProcess/API/efl/EvasGLContext.h:
* UIProcess/API/efl/EvasGLSurface.cpp:
* UIProcess/API/efl/EvasGLSurface.h:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::displayTimerFired):
(EwkView::takeSnapshot):
* UIProcess/API/efl/EwkView.h:
(WebKit):
(EwkView):
* UIProcess/API/efl/SnapshotImageGL.cpp:
* UIProcess/API/efl/SnapshotImageGL.h:
* UIProcess/PageViewportController.cpp:
* UIProcess/PageViewportController.h:
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::didChangeContentsSize):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::didCommitLoad):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::didChangeViewportProperties):
(WebKit::WebView::pageDidRequestScroll):
(WebKit::WebView::didRenderFrame):
(WebKit::WebView::pageTransitionViewportReady):
2013-04-05 Ed Bartosh <bartosh@gmail.com>
[EFL][WK2] --no-tiled-backing-store build fails because of not used #if USE(COORDINATED_GRAPHICS)
https://bugs.webkit.org/show_bug.cgi?id=113629
Reviewed by Simon Fraser.
Wrapped code related to coordinated graphics with #if USE(COORDINATED_GRAPHICS)
* UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp:
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::initialize):
(WebKit):
(WebKit::WebView::paintToCairoSurface):
(WebKit::WebView::updateViewportSize):
2013-04-05 Timothy Hatcher <timothy@apple.com>
Allow the Web Inspector to use WebSQL.
This fixes an exception on load in the Safari Web Inspector.
https://webkit.org/b/114040
rdar://problem/13581422
Reviewed by Anders Carlsson.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::exceededDatabaseQuota): Added.
(WebKit::WebInspectorProxy::platformCreateInspectorPage): Hook up exceededDatabaseQuota.
2013-04-04 Brady Eidson <beidson@apple.com>
Add SPI to get a copy of the context menu at a given point.
<rdar://problem/13450908> and https://bugs.webkit.org/show_bug.cgi?id=113958
Reviewed by Andy Estes.
Add the new accessor:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::contextMenuAtPoint):
* WebProcess/WebPage/WebPage.h:
Expose the new SPI:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCopyContextMenuAtPoint):
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
2013-04-05 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] WebView should own page position and scale factor
https://bugs.webkit.org/show_bug.cgi?id=111075
Reviewed by Andreas Kling.
View content position and content scale factor should belong to WebView
rather than to EwkView as it decreases EwkView usage inside EFL-agnostic
WebView and improves WebView encapsulation.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewGetContentScaleFactor):
(WKViewSetContentScaleFactor):
New WKView API was added to set and get content scale factor.
The view content scale factor is not the same as page scale factor:
it always applies to content but not necessarily applies to the page.
The view content scale factor is calculated by viewport controller
and applies immediately for painting in UI process. Page scale factor
is updated later after the frame is rendered to accomplish the pending
scale change.
(WKViewGetContentPosition):
(WKViewSetContentPosition):
New WKView API was added to set and get content position.
Content position is set in UI units.
* UIProcess/API/C/efl/WKView.h:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/efl/EwkView.h:
(EwkView):
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::setViewportPosition):
(WebKit::PageViewportControllerClientEfl::setPageScaleFactor):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::WebView):
(WebKit::WebView::paintToCairoSurface):
(WebKit::WebView::transformToScene):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::pageDidRequestScroll):
* UIProcess/efl/WebView.h:
(WebKit::WebView::setContentScaleFactor):
(WebKit::WebView::contentScaleFactor):
(WebView):
(WebKit::WebView::setContentPosition):
(WebKit::WebView::contentPosition):
2013-04-05 Alberto Garcia <agarcia@igalia.com>
[GTK][WK2] WebKitLoaderClient: add missing initializers
https://bugs.webkit.org/show_bug.cgi?id=112961
Reviewed by Carlos Garcia Campos.
There are two new attributes: pluginLoadPolicy and pluginDidFail.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(attachLoaderClientToView):
2013-04-05 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Encapsulate view states set-up within WebView
https://bugs.webkit.org/show_bug.cgi?id=110877
Reviewed by Benjamin Poulain.
View states set-up is encapsulated within WebView. This change
reduces both usage of EwkView inside WebView class and usage of
WebPageProxy inside EwkView class.
New WKView API was added so that EwkView can define whether or not
the view is visible and focused.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewIsFocused):
(WKViewSetIsFocused):
(WKViewIsVisible):
(WKViewSetIsVisible):
* UIProcess/API/C/efl/WKView.h:
* UIProcess/API/efl/EwkView.cpp:
(::handleEvent):
(EwkView::handleEvasObjectShow):
(EwkView::handleEwkViewFocusIn):
(EwkView::handleEwkViewFocusOut):
* UIProcess/API/efl/EwkView.h:
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::WebView):
(WebKit::WebView::setFocused):
(WebKit):
(WebKit::WebView::setVisible):
(WebKit::WebView::isViewFocused):
(WebKit::WebView::isViewVisible):
* UIProcess/efl/WebView.h:
(WebKit::WebView::isFocused):
(WebView):
(WebKit::WebView::isVisible):
2013-04-04 KwangYong Choi <ky0.choi@samsung.com>
[EFL][WK2] Add support for getting page contents as string
https://bugs.webkit.org/show_bug.cgi?id=106752
Reviewed by Andreas Kling.
Modified ewk_view_page_contents_get() API to get page contents as string.
EWK_PAGE_CONTENTS_TYPE_STRING is added to Ewk_Page_Contents_Type.
Now, we can use both EWK_PAGE_CONTENTS_TYPE_MHTML and EWK_PAGE_CONTENTS_TYPE_STRING
for getting page contents.
* UIProcess/API/efl/ewk_view.cpp:
(Ewk_Page_Contents_Context):
(ewkViewPageContentsAsMHTMLCallback):
(ewkViewPageContentsAsStringCallback):
(ewk_view_page_contents_get):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(PageContentsAsMHTMLCallback):
(PageContentsAsStringCallback):
(TEST_F):
2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Cairo] Stop passing raw pointers to BitmapImage::create()
https://bugs.webkit.org/show_bug.cgi?id=113945
Reviewed by Martin Robinson.
Pass a smart pointer in to BitmapImage::create() instead of a raw one
for the cairo surface. The factory method prototype was updated for
cairo in r147643.
* Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::createImage):
2013-04-03 Dean Jackson <dino@apple.com>
Expose settings to disable plugin snapshotting autostart and primary detection
https://bugs.webkit.org/show_bug.cgi?id=113918
Reviewed by Tim Horton.
Three new settings: snapshotAllPlugIns, primaryPlugInSnapshotDetectionEnabled and
autostartOriginPlugInSnapshottingEnabled.
These are exposed via WKPreferences (WebKit2 only, since that's the only port actively
using the feature).
* Shared/WebPreferencesStore.h: Add macros for new settings.
* UIProcess/API/C/WKPreferences.cpp: Getters and setters for new settings.
(WKPreferencesSetSnapshotAllPlugIns):
(WKPreferencesGetSnapshotAllPlugIns):
(WKPreferencesSetAutostartOriginPlugInSnapshottingEnabled):
(WKPreferencesGetAutostartOriginPlugInSnapshottingEnabled):
(WKPreferencesSetPrimaryPlugInSnapshotDetectionEnabled):
(WKPreferencesGetPrimaryPlugInSnapshotDetectionEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Forward settings updates.
(WebKit::WebPage::addPluginView): Don't run primary plugin detection if the setting is false.
(WebKit::WebPage::didFinishLoad): Ditto.
2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Cairo] Fix canvas drawing of SVG-based patterns and remove NativeImageCairo
https://bugs.webkit.org/show_bug.cgi?id=113929
Reviewed by Martin Robinson.
Update code now that PassNativeImagePtr is now a typedef to PassRefPtr<cairo_surface_t>
instead of NativeImageCairo*.
* Shared/gtk/ArgumentCodersGtk.cpp:
(CoreIPC::decodeImage):
* UIProcess/API/C/cairo/WKIconDatabaseCairo.cpp:
(WKIconDatabaseTryGetCairoSurfaceForURL):
* UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
(getIconSurfaceSynchronously):
2013-04-04 Sze Howe Koh <szehowe.koh@gmail.com>
[Qt] docs: Fix module name format
https://bugs.webkit.org/show_bug.cgi?id=113209
Reviewed by Jocelyn Turcotte.
Make QDoc-generated documentation follow the conventions at
http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation
* UIProcess/API/qt/qquickwebview.cpp:
2013-04-04 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] WebView should own view size
https://bugs.webkit.org/show_bug.cgi?id=110753
Reviewed by Andreas Kling.
WebView owns view size. WKViewGetSize and WKViewSetSize API
is exposed accordingly. Usage of EFL-specific ewkView inside
toolkit-agnostic WebView class is reduced.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewGetSize):
(WKViewSetSize):
* UIProcess/API/C/efl/WKView.h:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::setDeviceScaleFactor):
(EwkView::size):
(EwkView::deviceSize):
(EwkView::scheduleUpdateDisplay):
(EwkView::handleEvasObjectCalculate):
* UIProcess/API/efl/EwkView.h:
(EwkView):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::setSize):
(WebKit):
(WebKit::WebView::paintToCurrentGLContext):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::viewSize):
(WebKit::WebView::dipSize):
* UIProcess/efl/WebView.h:
(WebView):
(WebKit::WebView::size):
2013-04-03 Anders Carlsson <andersca@apple.com>
Don't try to set the exception port for server connections
https://bugs.webkit.org/show_bug.cgi?id=113910
<rdar://problem/11248925>
Reviewed by Darin Adler.
Treat a SetExceptionPort message to the server connection as an invalid message.
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::Connection::receiveSourceEventHandler):
2013-04-02 Mark Rowe <mrowe@apple.com>
<http://webkit.org/b/113898> Eliminate some code duplication by introducing an array of handlers to register / unregister.
Reviewed by Antti Koivisto.
* UIProcess/mac/WebContextMac.mm:
(OcclusionNotificationHandler): Structure containing the notification name, type and handler.
(WebKit::registerOcclusionNotificationHandlers): Register all of the handlers in the array.
(WebKit::unregisterOcclusionNotificationHandlers): Unregister all of the handlers in the array.
2013-04-02 Mark Rowe <mrowe@apple.com>
Enable process suppression when no windows in the application have drawn recently.
<http://webkit.org/b/113854> / <rdar://problem/13540351>
Reviewed by Darin Adler.
* UIProcess/mac/WebContextMac.mm:
(WebKit::applicationWindowModificationsStarted): Note that modifications are no longer stopped.
(WebKit::applicationWindowModificationsStopped): Note that modifications have stopped.
(WebKit::registerOcclusionNotificationHandlers): Register handlers for the start and stop notifications.
(WebKit::unregisterOcclusionNotificationHandlers): Unregister handlers for the start and stop notifications.
(WebKit::WebContext::canEnableProcessSuppressionForNetworkProcess): Allow suppression if the application is occluded
or the application has not drawn recently.
(WebKit::WebContext::canEnableProcessSuppressionForWebProcess): Ditto.
(WebKit::WebContext::canEnableProcessSuppressionForGlobalChildProcesses): Ditto.
2013-04-03 Dean Jackson <dino@apple.com>
Cross fade into restarted plugin
https://bugs.webkit.org/show_bug.cgi?id=113868
Reviewed by Tim Horton.
Add a new plugin process type that indicates this is a plugin that
has been restarted from snapshotting. On Apple ports, this allows
us to animate the appearance of the plugin so that it crossfades
with the snapshot. Other ports will have to add their own fading.
* PluginProcess/PluginProcess.h: New Type: TypeRestartedProcess.
* WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:
(WebKit::PluginProxy::pluginLayer): When the plugin's CALayer is created, if it
is a restarted plugin, add an opacity animation to fade it in.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin): Mark restarted plugins with the new process type.
2013-04-03 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13564588> Add a temporary workaround for a build failure.
Fix suggested by Mark Rowe.
* Shared/mac/ChildProcessMac.mm:
2013-04-03 Alexey Proskuryakov <ap@apple.com>
[WK2] XMLHttpRequest upload events don't work with NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=113887
Reviewed by Brady Eidson.
Just forward didSendData client call to WebProcess.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didSendData):
(WebKit::NetworkResourceLoader::didCancelAuthenticationChallenge): Tweaked a comment.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didSendData):
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:
2013-04-02 Ryosuke Niwa <rniwa@webkit.org>
Remove code for Mac 10.5 and earlier from WTF and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=113844
Reviewed by Benjamin Poulain.
Removed the code for 10.5 and removed if-def for 10.6.
* Shared/mac/PasteboardTypes.mm:
(WebKit::PasteboardTypes::forEditing):
2013-04-02 Anders Carlsson <andersca@apple.com>
Be more robust against empty message receiver names in incoming messages
https://bugs.webkit.org/show_bug.cgi?id=113833
<rdar://problem/13284433>
Reviewed by Beth Dakin.
Turns out that we either send or receive messages whose receiver names are empty. This leads to bad things when we try to look
up the message receiver name in a hash map since the empty name is used to represent an empty hash map value.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::addWorkQueueMessageReceiverOnConnectionWorkQueue):
Sprinkle assertions.
(CoreIPC::Connection::processIncomingMessage):
If the message receiver name is not valid, make sure to call didReceiveInvalidMessage on the client thread.
(CoreIPC::Connection::dispatchDidReceiveInvalidMessage):
Add new helper function.
2013-04-02 Simon Cooper <scooper@apple.com>
[Mac][WK2] Don’t let plug-ins use System V shared memory
https://bugs.webkit.org/show_bug.cgi?id=113466
<rdar://problem/13159030>
Reviewed, tweaked and landed by Alexey Proskuryakov.
Instead of allowing plug-ins to request System V shm, give them a
temporary but usable alternative if they try to request it.
* PluginProcess/mac/PluginProcessShim.mm:
2013-04-02 Anders Carlsson <andersca@apple.com>
Add WKContextSetInvalidMessageFunction
https://bugs.webkit.org/show_bug.cgi?id=113820
<rdar://problem/12679817>
Reviewed by Tim Horton.
* UIProcess/API/C/WKContext.cpp:
(WKContextSetInvalidMessageFunction):
Call WebContext::didReceiveInvalidMessage.
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::setInvalidMessageCallback):
Set the global variable.
(WebKit::WebContext::didReceiveInvalidMessage):
Construct a message name string and call the invalid message callback.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveInvalidMessage):
Call WebContext::didReceiveInvalidMessage.
2013-04-02 Alexey Proskuryakov <ap@apple.com>
[Mac] Remove WKCreateNSURLConnectionDelegateProxy
https://bugs.webkit.org/show_bug.cgi?id=113810
Reviewed by Anders Carlsson.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2013-04-02 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13551119> [WK2] Crashes in NetworkProcess when canceling loads
https://bugs.webkit.org/show_bug.cgi?id=113803
Reviewed by Darin Adler.
* Shared/Downloads/mac/DownloadMac.mm: (WebKit::Download::startWithHandle):
Just pass nil instead of proxy.
2013-04-02 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2] Remove repeating code in declaration of WK2 API classes
https://bugs.webkit.org/show_bug.cgi?id=112782
Reviewed by Benjamin Poulain.
The following two lines of code had been repeated in every WK2 API
object class:
1) static const Type APIType = SomeAPIType;
2) virtual Type type() const { return APIType; }
This patch introduces template class 'TypedAPIObject' inherited
from WebKit::APIObject and it contains the common functionality.
So the new pattern is that API object classes are inherited from
TypedAPIObject (rather than from WebKit::APIObject directly) passing
the corresponding API object type as a template parameter.
The existing API object classes are modified accordingly to the
proposed pattern.
* Shared/APIObject.h:
(WebKit):
(TypedAPIObject):
(WebKit::TypedAPIObject::~TypedAPIObject):
(WebKit::TypedAPIObject::TypedAPIObject):
* Shared/ImmutableArray.h:
(ImmutableArray):
* Shared/ImmutableDictionary.h:
(ImmutableDictionary):
* Shared/WebArchive.h:
(WebArchive):
* Shared/WebArchiveResource.h:
(WebArchiveResource):
* Shared/WebBackForwardListItem.h:
(WebBackForwardListItem):
* Shared/WebBatteryStatus.h:
(WebBatteryStatus):
* Shared/WebCertificateInfo.h:
* Shared/WebConnection.h:
(WebConnection):
* Shared/WebContextMenuItem.h:
(WebContextMenuItem):
* Shared/WebData.h:
* Shared/WebError.h:
(WebKit::WebError::errorCode):
* Shared/WebGeolocationPosition.h:
(WebGeolocationPosition):
* Shared/WebGeometry.h:
* Shared/WebGraphicsContext.h:
(WebGraphicsContext):
* Shared/WebHitTestResult.h:
* Shared/WebImage.h:
(WebImage):
* Shared/WebNetworkInfo.h:
(WebNetworkInfo):
* Shared/WebNumber.h:
* Shared/WebOpenPanelParameters.h:
(WebOpenPanelParameters):
* Shared/WebRenderLayer.h:
* Shared/WebRenderObject.h:
* Shared/WebSecurityOrigin.h:
* Shared/WebSerializedScriptValue.h:
(WebSerializedScriptValue):
* Shared/WebString.h:
* Shared/WebURL.h:
* Shared/WebURLRequest.h:
(WebURLRequest):
* Shared/WebURLResponse.h:
(WebURLResponse):
* Shared/WebUserContentURLPattern.h:
* Shared/mac/ObjCObjectGraph.h:
* UIProcess/Authentication/AuthenticationChallengeProxy.h:
(AuthenticationChallengeProxy):
* UIProcess/Authentication/AuthenticationDecisionListener.h:
(AuthenticationDecisionListener):
* UIProcess/Authentication/WebCredential.h:
(WebCredential):
* UIProcess/Authentication/WebProtectionSpace.h:
(WebProtectionSpace):
* UIProcess/Downloads/DownloadProxy.h:
(DownloadProxy):
* UIProcess/GeolocationPermissionRequestProxy.h:
(GeolocationPermissionRequestProxy):
* UIProcess/Notifications/NotificationPermissionRequest.h:
(NotificationPermissionRequest):
* UIProcess/Notifications/WebNotification.h:
(WebNotification):
* UIProcess/Notifications/WebNotificationManagerProxy.h:
(WebNotificationManagerProxy):
* UIProcess/Plugins/WebPluginSiteDataManager.h:
(WebPluginSiteDataManager):
* UIProcess/WebApplicationCacheManagerProxy.h:
(WebApplicationCacheManagerProxy):
* UIProcess/WebBackForwardList.h:
(WebBackForwardList):
* UIProcess/WebBatteryManagerProxy.h:
(WebBatteryManagerProxy):
* UIProcess/WebContext.h:
(WebContext):
* UIProcess/WebCookieManagerProxy.h:
(WebCookieManagerProxy):
* UIProcess/WebDatabaseManagerProxy.h:
(WebDatabaseManagerProxy):
* UIProcess/WebEditCommandProxy.h:
(WebEditCommandProxy):
* UIProcess/WebFrameProxy.h:
(WebFrameProxy):
* UIProcess/WebGeolocationManagerProxy.h:
(WebGeolocationManagerProxy):
* UIProcess/WebGrammarDetail.h:
(WebGrammarDetail):
* UIProcess/WebIconDatabase.h:
(WebIconDatabase):
* UIProcess/WebInspectorProxy.h:
(WebInspectorProxy):
* UIProcess/WebKeyValueStorageManagerProxy.h:
(WebKeyValueStorageManagerProxy):
* UIProcess/WebMediaCacheManagerProxy.h:
(WebMediaCacheManagerProxy):
* UIProcess/WebNavigationData.h:
(WebNavigationData):
* UIProcess/WebNetworkInfoManagerProxy.h:
(WebNetworkInfoManagerProxy):
* UIProcess/WebOpenPanelResultListenerProxy.h:
(WebOpenPanelResultListenerProxy):
* UIProcess/WebPageGroup.h:
(WebPageGroup):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::WebPreferences):
* UIProcess/WebPreferences.h:
(WebPreferences):
* UIProcess/WebResourceCacheManagerProxy.h:
(WebResourceCacheManagerProxy):
* UIProcess/WebTextChecker.h:
(WebTextChecker):
* UIProcess/WebVibrationProxy.h:
(WebVibrationProxy):
* UIProcess/efl/WebPopupItemEfl.h:
(WebPopupItemEfl):
* UIProcess/efl/WebView.h:
* UIProcess/soup/WebSoupRequestManagerProxy.h:
(WebSoupRequestManagerProxy):
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
(InjectedBundleNodeHandle):
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
(InjectedBundleRangeHandle):
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
* WebProcess/InjectedBundle/InjectedBundleBackForwardList.h:
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h:
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.h:
(InjectedBundleDOMWindowExtension):
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:
(InjectedBundleNavigationAction):
* WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:
(InjectedBundleScriptWorld):
* WebProcess/WebPage/PageOverlay.h:
(PageOverlay):
* WebProcess/WebPage/WebFrame.h:
(WebFrame):
* WebProcess/WebPage/WebInspector.h:
(WebInspector):
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/WebPageGroupProxy.h:
(WebPageGroupProxy):
2013-04-01 Timothy Hatcher <timothy@apple.com>
Allow changing Web Inspector dock sides without undocking first.
https://webkit.org/b/113661
rdar://problem/13543127
Reviewed by Joseph Pecoraro.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::createInspectorPage): Send AttachedBottom and
AttachedRight messages so InspectorFrontendClientLocal knows which side we
are attached.
(WebKit::WebInspectorProxy::canAttach): If we are already attached, allow
attaching again to allow switching sides.
2013-04-01 Anders Carlsson <andersca@apple.com>
Nor this! (Who reviewed this anyway!)
* WebProcess/Storage/StorageNamespaceProxy.cpp:
(WebKit::StorageNamespaceProxy::storageArea):
2013-04-01 Anders Carlsson <andersca@apple.com>
Didn't mean to commit this!
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
2013-04-01 Alexey Proskuryakov <ap@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=113721
<rdar://problem/13549181> REGRESSION (r146929): HTTP auth credentials not reused during session
Reviewed by Brady Eidson.
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::shouldUseCredentialStorage): Added an override that
we still need. It's not great, but causes no trouble for NetworkProcess.
(WebKit::NetworkResourceLoader::shouldUseCredentialStorageAsync): Implement in
terms of sync version to avoid duplicating logic.
2013-03-05 Anders Carlsson <andersca@apple.com>
Apply changes from storage events locally
https://bugs.webkit.org/show_bug.cgi?id=111502
Reviewed by Sam Weinig.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::StorageAreaProxy):
Store the security origin as a member variable.
(WebKit::StorageAreaProxy::dispatchStorageEvent):
Set the item and call the appropriate event dispatch function.
(WebKit::StorageAreaProxy::dispatchSessionStorageEvent):
(WebKit::StorageAreaProxy::dispatchLocalStorageEvent):
Add stubs.
* WebProcess/Storage/StorageAreaProxy.h:
2013-04-01 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13490123> Sandbox extension tracking is incorrect when restoring a session
https://bugs.webkit.org/show_bug.cgi?id=113709
Reviewed by Anders Carlsson.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad): Added an assertion
to catch extension tracking logic errors that could result in giving an extension to
non-local pages.
(WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad): Just like
below, clearing m_pendingProvisionalSandboxExtension appears incorrect, even though
I am not aware of any scenarios where this happens in practice.
(WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad): The load may
be failing exactly because a new one cancels it, so we shouldn't be preventing
the new one from using its extension.
2013-04-01 Brady Eidson <beidson@apple.com>
SharedMemory release build hardening.
<rdar://problem/13546860> and https://bugs.webkit.org/show_bug.cgi?id=113710
Reviewed by Anders Carlsson.
Successful creation of a memory entry with a size less than the size we requested should be treated
as a failure to create the SharedMemory object.
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::createFromVMBuffer): Early return if the port we get is bogus for our needs.
(WebKit::SharedMemory::createHandle): Ditto.
(WebKit::SharedMemory::create): Guarantee we pass valid input in to mach_vm_map.
2013-03-30 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r147260.
* WebProcess/qt/QtBuiltinBundlePage.cpp:
(WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
2013-03-29 Seokju Kwon <seokju.kwon@gmail.com>
[EFL] Unreviewed build fix after r147251
https://bugs.webkit.org/show_bug.cgi?id=113631
Unreviewed build fix.
Add NETWORK_PROCESS guard.
* UIProcess/WebResourceCacheManagerProxy.cpp:
(WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins):
2013-03-29 Brady Eidson <beidson@apple.com>
Crash when "willSendRequest" causes the ResourceLoader to be cancelled.
<rdar://problem/13531679> and https://bugs.webkit.org/show_bug.cgi?id=113616
Reviewed by Alexey Proskuryakov.
These callbacks to the WebCore ResourceLoader can cause the WebResourceLoader to be destroyed.
A RefPtr<> protector fixes that.
Additionally we can invalidate the WebResourceLoader to avoid unnecessary callbacks to the NetworkProcess.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::remove): Call detachFromCoreLoader() on a removed WebResourceLoader.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::detachFromCoreLoader): Clear out the ResourceLoader pointer.
(WebKit::WebResourceLoader::willSendRequest): Protect this, and don't message back to the NetworkProcess if its not needed.
(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace): Ditto
(WebKit::WebResourceLoader::didReceiveResource): Paranoid hardening - Protect this before delivering the data to the WebCore
ResourceLoader, and null check it before delivering the "didFinishLoader" call.
* WebProcess/Network/WebResourceLoader.h:
2013-03-29 Brady Eidson <beidson@apple.com>
Should never send events to plugins waiting on asynchronous initialization.
<rdar://problem/13538945> and https://bugs.webkit.org/show_bug.cgi?id=113612
Reviewed by Anders Carlsson.
Sending mouse and keyboard events to a plugin in the middle of asynchronous initialization is silly.
A quick audit of the sendSync() messages in PluginProxy suggests the following 8 can just have an early return:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::handleMouseEvent):
(WebKit::PluginProxy::handleWheelEvent):
(WebKit::PluginProxy::handleMouseEnterEvent):
(WebKit::PluginProxy::handleMouseLeaveEvent):
(WebKit::PluginProxy::handleKeyboardEvent):
(WebKit::PluginProxy::handleEditingCommand):
(WebKit::PluginProxy::isEditingCommandEnabled):
(WebKit::PluginProxy::handlesPageScaleFactor):
2013-03-29 Brady Eidson <beidson@apple.com>
Should never send events to plugins waiting on asynchronous initialization.
<rdar://problem/13538945> and https://bugs.webkit.org/show_bug.cgi?id=113612
Reviewed by Anders Carlsson.
Sending mouse and keyboard events to a plugin in the middle of asynchronous initialization is silly.
A quick audit of the sendSync() messages in PluginProxy suggests the following 8 can just have an early return:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::handleMouseEvent):
(WebKit::PluginProxy::handleWheelEvent):
(WebKit::PluginProxy::handleMouseEnterEvent):
(WebKit::PluginProxy::handleMouseLeaveEvent):
(WebKit::PluginProxy::handleKeyboardEvent):
(WebKit::PluginProxy::handleEditingCommand):
(WebKit::PluginProxy::isEditingCommandEnabled):
(WebKit::PluginProxy::handlesPageScaleFactor):
2013-03-29 Alexey Proskuryakov <ap@apple.com>
Expose FeatureObserver data to WebKit clients
https://bugs.webkit.org/show_bug.cgi?id=113613
Reviewed by Sam Weinig.
* Shared/APIClientTraits.cpp:
* Shared/APIClientTraits.h:
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
Added a new injected bundle client call, featuresUsedInPage.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::reportUsedFeatures):
* WebProcess/WebPage/WebPage.h:
Report features used in a page when navigating away, or when closing.
2013-03-29 Brady Eidson <beidson@apple.com>
Crash when "willSendRequest" causes the ResourceLoader to be cancelled.
<rdar://problem/13531679> and https://bugs.webkit.org/show_bug.cgi?id=113616
Reviewed by Alexey Proskuryakov.
These callbacks to the WebCore ResourceLoader can cause the WebResourceLoader to be destroyed.
A RefPtr<> protector fixes that.
Additionally we can invalidate the WebResourceLoader to avoid unnecessary callbacks to the NetworkProcess.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::remove): Call detachFromCoreLoader() on a removed WebResourceLoader.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::detachFromCoreLoader): Clear out the ResourceLoader pointer.
(WebKit::WebResourceLoader::willSendRequest): Protect this, and don't message back to the NetworkProcess if its not needed.
(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace): Ditto
(WebKit::WebResourceLoader::didReceiveResource): Paranoid hardening - Protect this before delivering the data to the WebCore
ResourceLoader, and null check it before delivering the "didFinishLoader" call.
* WebProcess/Network/WebResourceLoader.h:
2013-03-29 Brady Eidson <beidson@apple.com>
Should never send events to plugins waiting on asynchronous initialization.
<rdar://problem/13538945> and https://bugs.webkit.org/show_bug.cgi?id=113612
Reviewed by Anders Carlsson.
Sending mouse and keyboard events to a plugin in the middle of asynchronous initialization is silly.
A quick audit of the sendSync() messages in PluginProxy suggests the following 8 can just have an early return:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::handleMouseEvent):
(WebKit::PluginProxy::handleWheelEvent):
(WebKit::PluginProxy::handleMouseEnterEvent):
(WebKit::PluginProxy::handleMouseLeaveEvent):
(WebKit::PluginProxy::handleKeyboardEvent):
(WebKit::PluginProxy::handleEditingCommand):
(WebKit::PluginProxy::isEditingCommandEnabled):
(WebKit::PluginProxy::handlesPageScaleFactor):
2013-03-29 Brady Eidson <beidson@apple.com>
"Empty cache..." clears the disk cache from each WebProcess.
<rdar://problem/12456652> and https://bugs.webkit.org/show_bug.cgi?id=113603
Reviewed by Sam Weinig.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::terminate): Override ChildProcess::terminate to allow us to finish clearing the cache.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in: Add the ClearCacheForAllOrigins message.
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::clearCacheForAllOrigins): Clear the disk cache.
(WebKit::NetworkProcess::platformTerminate): Wait for the clear to complete.
* UIProcess/WebResourceCacheManagerProxy.cpp:
(WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins): Message the network process, also.
* WebProcess/mac/WebProcessMac.mm:
(WebKit::WebProcess::platformClearResourceCaches): Don't clear the disk cache if we use the network process.
2013-03-28 Brady Eidson <beidson@apple.com>
We leak NetworkConnectionToWebProcess objects.
<rdar://problem/13393118> and https://bugs.webkit.org/show_bug.cgi?id=113551
Reviewed by Anders Carlsson.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose): Remove this from the global set
of NetworkConnectionToWebProcess objects.
2013-03-28 Brady Eidson <beidson@apple.com>
Resources are never revalidated/reloaded if a cached response exists on disk.
<rdar://problem/13479890> and https://bugs.webkit.org/show_bug.cgi?id=113542
Reviewed by Alexey Proskuryakov.
Trying to get a cached resource in didReceiveResponse and then aborting the load
meant we never performed any new loads.
We can check and see if the data is cached data inside didReceiveBuffer, instead.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponse): Don't try for cached resources here.
(WebKit::NetworkResourceLoader::didReceiveData): This callback should never be used.
(WebKit::NetworkResourceLoader::didReceiveBuffer): Try to see if this data objected represents
a file based mmaped buffer.
* NetworkProcess/NetworkResourceLoader.h:
Refactor these utility functions to start from either a CFURLCachedResponse or a SharedBuffer:
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(CFCachedURLResponseGetMemMappedData):
(CFURLCacheIsMemMappedData):
(WebKit::tryGetShareableHandleFromCFData):
(WebKit::NetworkResourceLoader::tryGetShareableHandleFromCFURLCachedResponse):
(WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):
2013-03-28 Tim Horton <timothy_horton@apple.com>
[wk2] REGRESSION (r125500): WebFrameLoaderClient's active m_pluginView can be zeroed by PluginDocuments leaving the page cache
https://bugs.webkit.org/show_bug.cgi?id=113430
<rdar://problem/12729564>
Reviewed by Brady Eidson.
http://trac.webkit.org/changeset/147152 was wrong, and should have been
(as the ChangeLog stated) testing the argument to redirectDataToPlugin,
not the value of m_pluginView.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::redirectDataToPlugin):
2013-03-28 Tim Horton <timothy_horton@apple.com>
[wk2] REGRESSION (r125500): WebFrameLoaderClient's active m_pluginView can be zeroed by PluginDocuments leaving the page cache
https://bugs.webkit.org/show_bug.cgi?id=113430
<rdar://problem/12729564>
Reviewed by Brady Eidson.
Ignore redirectDataToPlugin(0), which is only called from PluginDocument::detach(),
and only after r125500. Otherwise, PluginDocuments that are put into the page cache
but leave later can clear a totally different and legitimate PluginView from the
WebFrameLoaderClient, causing data to be lost and PluginDocument loads to stall.
This restores our behavior to the pre-r125500 state, which should be fine, as we
clear WebFrameLoaderClient's m_pluginView when the load fails or finishes. This
matches the changes made in r125500 for every platform other than Chromium and WebKit2.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::redirectDataToPlugin):
2013-03-28 Tim Horton <timothy_horton@apple.com>
PDFPlugin: shouldUsePDFPlugin can't use pdfLayerControllerClass() because it asserts if it's not available
https://bugs.webkit.org/show_bug.cgi?id=113533
<rdar://problem/13528720>
Reviewed by Simon Fraser.
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::shouldUsePDFPlugin):
Move shouldUsePDFPlugin to WebPageMac, where it belongs, and explicitly look up PDFLayerController
instead of using pdfLayerControllerClass(), which ASSERT()s if it isn't available.
2013-03-28 Brady Eidson <beidson@apple.com>
Reduce PluginProcess lifetime.
<rdar://problem/12465479> and https://bugs.webkit.org/show_bug.cgi?id=113523
Reviewed by Sam Weinig.
Lower the minimum process lifetime from 30 minutes to 2 minutes.
Lower the "shutdown after last plugin goes away" period from 10 minutes to 1 minute.
* UIProcess/Plugins/PluginProcessProxy.cpp:
2013-03-28 Zan Dobersek <zdobersek@igalia.com>
[GTK] Build GTK-specific, non-layer-violating source code into WebCore-independent libPlatformGtk.la
https://bugs.webkit.org/show_bug.cgi?id=112546
Reviewed by Martin Robinson.
* GNUmakefile.am: Reference the platform_webcore_cppflags and GTK, libsecret and libsoup dependencies' cflags amongst the
libPlatformGtk2's CPPFLAGS.
* Scripts/generate-forwarding-headers.pl: Remove the Platform framework from the list of the frameworks to be searched
for forwarding headers, it's at the moment not necessary to be included.
* Shared/gtk/ArgumentCodersGtk.cpp: Adjust the forwarding header for GtkVersioning.h that's been moved back under the
WebCore framework.
* Shared/gtk/WebEventFactory.cpp: Ditto.
* UIProcess/API/gtk/WebKitWebViewBase.cpp: Ditto.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: Ditto.
2013-03-27 Tim Horton <timothy_horton@apple.com>
Unreviewed Qt build fix after http://trac.webkit.org/changeset/147067.
* WebProcess/WebPage/WebPage.cpp:
2013-03-27 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Enable PDFPlugin only if its dependencies exist on the system
https://bugs.webkit.org/show_bug.cgi?id=113372
<rdar://problem/12685301>
Reviewed by Alexey Proskuryakov.
* Shared/mac/PDFKitImports.h: Wrap in #if PLATFORM(MAC).
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin): Use shouldUsePDFPlugin.
(WebKit::WebPage::shouldUsePDFPlugin): If the PDFPlugin setting is enabled but PDFLayerController is not available, don't use PDFPlugin.
* WebProcess/WebPage/WebPage.h:
(WebPage): Add shouldUsePDFPlugin
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformPreferencesDidChange): Use shouldUsePDFPlugin.
2013-03-27 Sam Weinig <sam@webkit.org>
[WebKit2] Need SPI to determine whether a plug-in is blocked
https://bugs.webkit.org/show_bug.cgi?id=113463
Reviewed by Anders Carlsson.
Add new SPI, WKContextCopyPlugInInfoForBundleIdetifier, to get data about a plug-in,
including whether it is blocked by x-protect.
* UIProcess/WebLoaderClient.cpp:
* UIProcess/API/C/WKAPICast.h:
(WebKit::toWKPluginLoadPolicy):
(WebKit::toPluginModuleLoadPolicy):
Move to a shared location.
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextIsPlugInUpdateAvailable):
(WKPlugInInfoPathKey):
(WKPlugInInfoBundleIdentifierKey):
(WKPlugInInfoVersionKey):
(WKPlugInInfoLoadPolicyKey):
(WKPlugInInfoUpdatePastLastBlockedVersionIsKnownAvailableKey):
(WKContextCopyPlugInInfoForBundleIdetifier):
Add new SPI and dictionary keys.
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::findPluginWithBundleIdentifer):
* UIProcess/Plugins/PluginInfoStore.h:
* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::PluginInfoStore::findPluginWithBundleIdentifer):
Add function to lookup plug-ins by bundle identifier.
2013-03-27 Beth Dakin <bdakin@apple.com>
WKBundlePagePrivateMac.h is not being exported
https://bugs.webkit.org/show_bug.cgi?id=113470
-and corresponding-
<rdar://problem/13522909>
Reviewed by Sam Weinig.
Mark it as private instead of project.
* WebKit2.xcodeproj/project.pbxproj:
2013-03-26 Beth Dakin <bdakin@apple.com>
Need WK2 API to give a WebView a header and footer
https://bugs.webkit.org/show_bug.cgi?id=113352
-and corresponding-
<rdar://problem/13383835>
Reviewed by Simon Fraser.
New API allows setting and getting layers for a header and footer.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/c/mac: Added.
* WebProcess/InjectedBundle/API/c/mac/WKBundlePagePrivateMac.h: Added.
* WebProcess/InjectedBundle/API/c/mac/WKBundlePagePrivateMac.mm: Added.
(WKBundlePageGetHeaderLayer):
(WKBundlePageSetHeaderLayer):
(WKBundlePageGetFooterLayer):
(WKBundlePageSetFooterLayer):
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setTopOverhangImage):
(WebKit::WebPage::setBottomOverhangImage):
(WebKit):
(WebKit::WebPage::getHeaderLayer):
(WebKit::WebPage::setHeaderLayerWithHeight):
(WebKit::WebPage::getFooterLayer):
(WebKit::WebPage::setFooterLayerWithHeight):
2013-03-27 Jer Noble <jer.noble@apple.com>
Going full screen and cancelling gets system into a weird state
https://bugs.webkit.org/show_bug.cgi?id=113445
Reviewed by Eric Carlson.
Replace an array of BOOL member variables to track full screen state with a single enum, and
add state tracking for the "waiting to enter" and "waiting to exit" states. Use this new,
more specific enum to be more stringent about the state when responding to WebProcess
messages. Also only set the placeholder view's target once in full screen mode.
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController isFullScreen]): Yes when in full screen, entering full screen,
or waiting to enter full screen.
(-[WKFullScreenWindowController cancelOperation:]): Only requestExitFullScreen() if a watchdog
has not already been made active.
(-[WKFullScreenWindowController enterFullScreen:]): Use the new state variable.
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]): Ditto.
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Ditto. Set the placeholder target.
(-[WKFullScreenWindowController exitFullScreen]): Ditto. Clear the placeholder target.
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]): Ditto.
(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): Ditto.
(-[WKFullScreenWindowController performClose:]): Ditto.
(-[WKFullScreenWindowController close]): Ditto.
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): Ditto.
2013-03-27 Brady Eidson <beidson@apple.com>
Blind attempt at fixing the release build.
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::willCacheResponseAsync):
2013-03-27 Brady Eidson <beidson@apple.com>
Mem mapped resource data improvements.
<rdar://problem/13196481> and https://bugs.webkit.org/show_bug.cgi?id=113422
Reviewed by Alexey Proskuryakov (and looked over by Geoff Garen).
Remove timer-based approach support code:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::abortInProgressLoad):
(WebKit::NetworkResourceLoader::didFinishLoading):
* NetworkProcess/NetworkResourceLoader.h:
Add an object to encapsulate monitoring a resource going in to the disk cache.
It listens for a callback on the cached response indicating it is disk backed
and also sets a timeout so we don't keep the monitor alive and waiting forever.
* NetworkProcess/mac/DiskCacheMonitor.h: Added.
(WebKit::DiskCacheMonitor::destinationID):
(WebKit::DiskCacheMonitor::connectionToWebProcess):
(WebKit::DiskCacheMonitor::resourceRequest):
* NetworkProcess/mac/DiskCacheMonitor.mm: Added.
(CFCachedURLResponseSetBecameFileBackedCallBackBlock):
(WebKit::monitorFileBackingStoreCreation):
(WebKit::DiskCacheMonitor::DiskCachingMonitor):
(WebKit::DiskCacheMonitor::connection):
Refactoring and monitor certain cached responses:
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(CFCachedURLResponseGetMemMappedData):
(WebKit::NetworkResourceLoader::tryGetShareableHandleFromCFURLCachedResponse): Use CFCachedURLResponseGetMemMappedData
to explicitly get an mem-mapped data object.
(WebKit::NetworkResourceLoader::tryGetShareableHandleForResource):
(WebKit::NetworkResourceLoader::willCacheResponseAsync): If the resource is over the minimum
size then set up a disk caching monitor.
* WebKit2.xcodeproj/project.pbxproj:
2013-03-26 Timothy Hatcher <timothy@apple.com>
Add support for dock-to-right of the Web Inspector in the Mac port.
Unfortunately this requires Safari changes, so it is disabled in the nightly builds.
https://webkit.org/b/113341
rdar://problem/10368152
Reviewed by Joseph Pecoraro.
* Resources/Dock.pdf: Removed.
* Resources/DockBottom.pdf: Added.
* Resources/DockRight.pdf: Added.
* Shared/WebPreferencesStore.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::attachBottom):
(WebKit::WebInspectorProxy::attachRight):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::setAttachedWindowWidth):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::canAttach):
* UIProcess/WebInspectorProxy.h:
(WebInspectorProxy):
* UIProcess/WebInspectorProxy.messages.in:
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter attachRight:]):
(-[WKWebInspectorProxyObjCAdapter attachBottom:]):
(-[WKWebInspectorWindow _cursorForResizeDirection:]):
(-[WKWebInspectorWindow _customTitleFrame]):
(WebKit::createDockButton):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorProxy::platformSetAttachedWindowWidth):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
(WebKit::WebInspectorFrontendClient::attachWindow):
(WebKit::WebInspectorFrontendClient::setAttachedWindowWidth):
* WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
(WebInspectorFrontendClient):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::attachBottom):
(WebKit::WebInspector::attachRight):
(WebKit::WebInspector::setAttachedWindowWidth):
(WebKit::WebInspector::attachedBottom):
(WebKit::WebInspector::attachedRight):
(WebKit::WebInspector::detached):
* WebProcess/WebPage/WebInspector.h:
(WebInspector):
* WebProcess/WebPage/WebInspector.messages.in:
2013-03-27 Kondapally Kalyan <kalyan.kondapally@intel.com>
[CoordGfx] Support to share GraphicsSurface flags with client.
https://bugs.webkit.org/show_bug.cgi?id=112982
Reviewed by Noam Rosenthal.
Covered by existing WebGL tests.
This patch adds support to pass GraphicsSurface flags
during it's client creation.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
2013-03-26 Hayato Ito <hayato@chromium.org>
Allow ShadowContents in HitTests by default.
https://bugs.webkit.org/show_bug.cgi?id=113171
Reviewed by Dimitri Glazkov.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::hitTest):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::highlightPotentialActivation):
(WebKit::WebPage::findZoomableAreaForPoint):
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::shouldDelayWindowOrderingEvent):
(WebKit::WebPage::acceptsFirstMouse):
2013-03-26 Tim Horton <timothy_horton@apple.com>
[ca] Tell CA to clean up unused resources if a given WebProcess won't be drawing
https://bugs.webkit.org/show_bug.cgi?id=107539
<rdar://problem/13032692>
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Update WebCoreSystemInterface.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initially move the Page out of the window if necessary;
Page defaults to in-window, which is wrong in many cases - we depend on
Page::isInWindow being accurate to decide whether WebPage::setIsInWindow is actually
a state change or not.
(WebKit::WebPage::setIsInWindow):
* WebProcess/WebProcess.cpp: Inform WebProcess when we go on/off screen.
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::pageDidMoveOnscreen): Keep track of the number of on-screen pages in this process.
(WebKit::WebProcess::pageWillMoveOffscreen): If the number of on-screen pages drops to zero, clean up unused rendering resources.
* WebProcess/WebProcess.h:
2013-03-26 Dean Jackson <dino@apple.com>
When a primary plugin is restarted, also start similar plugins
https://bugs.webkit.org/show_bug.cgi?id=113265
Reviewed by Tim Horton.
Remember the origin of the primary plugin, so that we can
autostart anything that is similar.
* WebProcess/WebCoreSupport/WebPlugInClient.cpp:
(WebKit::WebPlugInClient::WebPlugInClient): Keep a pointer to the WebPage.
(WebKit::WebPlugInClient::shouldAutoStartFromOrigin): Pass the page onto the process.
* WebProcess/WebCoreSupport/WebPlugInClient.h:
(WebPlugInClient): New member variable for the WebPage we were created with.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::determinePrimarySnapshottedPlugIn): Remember the origin information
for the primary plugin.
(WebKit::WebPage::matchesPrimaryPlugIn): Returns true if we're seeing something that
looks like the primary plugin.
* WebProcess/WebPage/WebPage.h: New method matchesPrimaryPlugIn.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin): Check if the page thinks this is
the primary plugin.
* WebProcess/WebProcess.h: Accept a reference to the page in shouldPlugInAutoStartFromOrigin.
2013-03-26 Alexey Proskuryakov <ap@apple.com>
Follow-up to:
<rdar://problem/13194263> Crashes in NetworkProcess due to threading issues
https://bugs.webkit.org/show_bug.cgi?id=113256
Reviewed by Mark Rowe.
* NetworkProcess/NetworkResourceLoader.h: Added some forgotten OVERRIDEs.
2013-03-26 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13194263> Crashes in NetworkProcess due to threading issues
https://bugs.webkit.org/show_bug.cgi?id=113256
Reviewed by Brady Eidson.
Use asynchronous version of ResourceHandle/ResourceHandleClient in NetworkProcess.
We now run WebCore code on main thread, so we can't block it.
* DerivedSources.make:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
* NetworkProcess/NetworkResourceLoader.messages.in: Added.
* WebKit2.xcodeproj/project.pbxproj:
Made NetworkResourceLoader a message receiver. Messages that used to be sync are
now async, and responses need to be sent to the loader.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::willSendRequestAsync): This now happens on main
thread, and thus cannot be sync.
(WebKit::NetworkResourceLoader::continueWillSendRequest): Notify the resource
handle once a response is ready.
(WebKit::NetworkResourceLoader::didSendData): Removed unnecessary WebCore prefixes.
(WebKit::NetworkResourceLoader::didReceiveCachedMetadata): Ditto.
(WebKit::NetworkResourceLoader::wasBlocked): Ditto.
(WebKit::NetworkResourceLoader::cannotShowURL): Ditto.
(WebKit::NetworkResourceLoader::shouldUseCredentialStorageAsync): This function
doesn't call through to WebProcess, so we can keep it synchronous. But we still
need to implement the async version, since that's what ResourceHandle calls.
(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
Made async.
(WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace):
Notify ResourceHandle when response is ready.
(WebKit::NetworkResourceLoader::didReceiveDataArray): Removed unnecessary WebCore prefixes.
(WebKit::NetworkResourceLoader::willCacheResponseAsync): This matches default
implementation, but we are overriding everything to make it clearer what's missing.
(WebKit::NetworkResourceLoader::willStopBufferingData): Removed unnecessary WebCore prefixes.
* NetworkProcess/NetworkResourceLoader.h: Updated to use async client methods.
Keep ResourceRequest around while handling willSendRequest, as we need the original
to recombine the request. Removed CFNet version of willCacheResponse for now,
as we are not using it yet.
* Shared/Authentication/AuthenticationManager.cpp: Assert that methods touching
a global HashMap all run on main thread. Changed generateAuthenticationChallengeID()
to use regular increment, as there is no need to run it from a secondary thread.
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveSyncMessage): We no longer have any
sync messages.
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace):
* WebProcess/Network/WebResourceLoader.messages.in:
Changed to use async messages.
2013-03-26 Tim Horton <timothy_horton@apple.com>
[wk2] Don't send intrinsic content size updates more than once per runloop
https://bugs.webkit.org/show_bug.cgi?id=113258
<rdar://problem/13492038>
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
Only start the zero-delay timer if it's not already active.
2013-03-26 Tony Chang <tony@chromium.org>
Autogenerate the scrollAnimatorEnabled setting in Settings.in
https://bugs.webkit.org/show_bug.cgi?id=113253
Reviewed by James Robinson.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUseFixedLayout): Update call to WebCore to use setScrollAnimatorEnabled(bool).
(WebKit::WebPage::updatePreferences): Update call to WebCore to use setScrollAnimatorEnabled(bool).
2013-03-26 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] Fails to start QtWebProcess.exe if installed in a path containing spaces
https://bugs.webkit.org/show_bug.cgi?id=113328
Reviewed by Jocelyn Turcotte.
Downstream bugreport: https://bugreports.qt-project.org/browse/QTBUG-30249
We use QProcess::start() with a commandline string to start the web process
and the string is treated by QProcess as a whitespace delimeted list of the
command and the arguments, thus we have to escape the path to the process
binaries so that if the path contains spaces we still run the appropriate
command.
* UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
(WebKit::ProcessLauncher::launchProcess):
2013-03-26 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] QML WebView asserts when double clicking a link
https://bugs.webkit.org/show_bug.cgi?id=113329
Reviewed by Jocelyn Turcotte.
Downstream bugreport: https://bugreports.qt-project.org/browse/QTBUG-30288
Remove an erroneous assert which is no longer valid if
mouse gestures are enabled.
* UIProcess/qt/QtWebPageEventHandler.cpp:
(WebKit::QtWebPageEventHandler::handleInputEvent):
2013-03-26 Tim Horton <timothy_horton@apple.com>
[wk2] Don't send intrinsic content size updates more than once per runloop
https://bugs.webkit.org/show_bug.cgi?id=113258
<rdar://problem/13492038>
Reviewed by Anders Carlsson.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
Add a zero-delay timer for intrinsic content size updates.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
Add a zero-delay timer for intrinsic content size updates.
(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
Start our new one-shot zero-delay timer.
(WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeTimerFired):
Inform the WebPage that the intrinsic content size has changed.
2013-03-26 Simon Cooper <scooper@apple.com>
bundle-ids need to be sanitized before using them in filesystem paths
https://bugs.webkit.org/show_bug.cgi?id=113030
<rdar://problem/13300254>
Reviewed by Alexey Proskuryakov.
When choosing / looking for a specialized Sandbox for a Plugin the
bundle-id needs to be sanitized before using it to construct a
filesystem name to look up. The “/“ character should not be allowed
and transformed into something else, in this case a “:”
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::loadSandboxProfile):
2013-03-26 Zeno Albisser <zeno@webkit.org>
[Qt] UIProcess should initialize WebCoreSystemInterface.
https://bugs.webkit.org/show_bug.cgi?id=113300
The WebCoreSystemInterface is necessary to detect supported
mime types on Mac OS. In particular it is needed for download
support.
This patch fixes in particular the previously failing
Qt API qmltest WebViewDownload::test_downloadRequest.
The test was crashing when using QTKit, because functions
in WebCoreSystemInterface could not be resolved on the UIProcess side.
Reviewed by Jocelyn Turcotte.
* UIProcess/qt/WebContextQt.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
2013-03-25 Kent Tamura <tkent@chromium.org>
Rename ENABLE_INPUT_TYPE_DATETIME
https://bugs.webkit.org/show_bug.cgi?id=113254
Reviewed by Kentaro Hara.
Rename ENABLE_INPUT_TYPE_DATETIME to ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE.
Actually I'd like to remove the code, but we shouldn't remove it yet
because we shipped products with it on some platforms.
* Configurations/FeatureDefines.xcconfig:
2013-03-25 Dean Jackson <dino@apple.com>
Cleanup plugin snapshotting autostart decision making
https://bugs.webkit.org/show_bug.cgi?id=113231
Reviewed by Tim Horton.
Two major changes to the way snapshotting plugins may autostart.
The first is that previously WebCore was keeping a hash that
represented the combination of page origin, plugin origin and
mime type. WebKit was responsible for deciding if that particular
hash should autostart. Now, WebKit keeps the hash, and WebCore
just asks us whether the combination of origins and mimetype
should start immediately. You can see this change the in WebPluginClient
and WebProcess APIs.
The second change is that we now keep two types of structures
around to decide whether a plugin should autostart. One is the
existing page + plugin origin combination. The other is simply
the plugin origin, which allows plugins from major providers
to autostart no matter what page they were embedded on.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Encode the new parameter.
(WebKit::WebProcessCreationParameters::decode): Decode the new parameter.
* Shared/WebProcessCreationParameters.h: Also keep a list of strings around.
* UIProcess/API/C/WKContext.cpp:
(WKContextSetPlugInAutoStartOrigins): The C API to send the list of plugin
origins over to the context.
* UIProcess/API/C/WKContext.h:
* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::PlugInAutoStartProvider::addAutoStartOriginHash): Renamed from addAutoStartOrigin.
No functional change other than new names for members.
(WebKit::PlugInAutoStartProvider::autoStartOriginHashesCopy): Ditto.
(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy): Ditto.
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable): Ditto.
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsArray): New method that converts the
incoming ImmutableArray into a Vector of Strings.
(WebKit::PlugInAutoStartProvider::didReceiveUserInteraction): Rename for new members.
* UIProcess/Plugins/PlugInAutoStartProvider.h: Renaming member variables. Adding
some typedefs to clean up code.
(WebKit::PlugInAutoStartProvider::autoStartOrigins): New accessor.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess): Renaming, and copy the new parameter into the process creation.
(WebKit::WebContext::addPlugInAutoStartOriginHash): Renaming.
(WebKit::WebContext::setPlugInAutoStartOriginHashes): Renaming.
(WebKit::WebContext::setPlugInAutoStartOrigins): New method.
* UIProcess/WebContext.h: Adds the new setPlugInAutoStartOrigin method.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::didInitializePlugin): Drive-by fix that was attempting to restart plugins
that were in the process of restarting.
(WebKit::PluginView::pluginDidReceiveUserInteraction): Temporarily suspend update of
expiration time if the user interacts with a plugin.
* WebProcess/WebCoreSupport/WebPlugInClient.cpp:
(WebKit::WebPlugInClient::shouldAutoStartFromOrigin): Renaming.
(WebKit::WebPlugInClient::didStartFromOrigin): Ditto.
* WebProcess/WebCoreSupport/WebPlugInClient.h: Renaming.
* WebProcess/WebProcess.cpp: Drive-by - noticed that we forgot to count seconds in
a timeout threshold.
(WebKit::WebProcess::initializeWebProcess): Also add the list of origins when we initialize.
(WebKit::addCaseFoldedCharacters): Copied from WebCore - adds a String to a hash input.
(WebKit::hashForPlugInOrigin): Copied from WebCore - hashing function.
(WebKit::WebProcess::isPlugInAutoStartOriginHash): Renaming.
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin): Check the list of pure origins first. If
that fails, fall back to the hash list of pairs.
(WebKit::WebProcess::plugInDidStartFromOrigin): Renaming.
(WebKit::WebProcess::didAddPlugInAutoStartOriginHash): Ditto.
(WebKit::WebProcess::resetPlugInAutoStartOriginHashes): Ditto.
(WebKit::WebProcess::plugInDidReceiveUserInteraction): Ditto.
* WebProcess/WebProcess.h: Renaming some methods, but also adding the input of the new
origin-only list.
* WebProcess/WebProcess.messages.in: Renaming a message.
2013-03-25 Maxim Ermilov <maxim.ermilov@canonical.com>
[Qt] Qml WebKit needs preferences to change security knobs
https://bugs.webkit.org/show_bug.cgi?id=111979
Reviewed by Jocelyn Turcotte.
* UIProcess/API/qt/qwebpreferences.cpp:
(QWebPreferencesPrivate::testAttribute):
(QWebPreferencesPrivate::setAttribute):
(QWebPreferences::universalAccessFromFileURLsAllowed):
(QWebPreferences::setUniversalAccessFromFileURLsAllowed):
(QWebPreferences::fileAccessFromFileURLsAllowed):
(QWebPreferences::setFileAccessFromFileURLsAllowed):
* UIProcess/API/qt/qwebpreferences_p.h:
* UIProcess/API/qt/qwebpreferences_p_p.h:
2013-03-23 Geoffrey Garen <ggaren@apple.com>
Added a setting for whether JavaScript markup is enabled
https://bugs.webkit.org/show_bug.cgi?id=112999
Rolled out a line from r146664 that was left over from before I adopted
the Settings.in way of adding a new setting.
Reviewed by Ryosuke Niwa.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): No need
to initialize / override -- Settings.in settings do this automatically.
Also, dydx noticed that this line of code had a typo, and was totaly wrong.
2013-03-21 Kiran Muppala <cmuppala@apple.com>
Add runtime setting for hidden page DOM timer throttling and CSS animation suspension
https://bugs.webkit.org/show_bug.cgi?id=112308
Reviewed by Gavin Barraclough.
Add private preference for enabling/disabling hidden page DOM timer
throttling and CSS animation suspension. The preference should be
enabled by default only on Mac, where WebKit2 is a private API and
hence compatibility is less of a issue.
* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetHiddenPageDOMTimerThrottlingEnabled):
(WKPreferencesGetHiddenPageDOMTimerThrottlingEnabled):
(WKPreferencesSetHiddenPageCSSAnimationSuspensionEnabled):
(WKPreferencesGetHiddenPageCSSAnimationSuspensionEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Allow
WebKitTestRunner to override hiddenPageDOMTimerThrottlingEnabled.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2013-03-22 Tim Horton <timothy_horton@apple.com>
Plugin Snapshotting: Auto-start dominant plugins
https://bugs.webkit.org/show_bug.cgi?id=113111
<rdar://problem/13475726>
Reviewed by Dean Jackson.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::didInitializePlugin):
(WebKit::PluginView::paint):
(WebKit::PluginView::invalidateRect):
(WebKit::PluginView::isAcceleratedCompositingEnabled):
Acknowledge the new "Restarting" DisplayState.
2013-03-21 Jer Noble <jer.noble@apple.com>
After switching to another space and back, video races to catch up with audio
https://bugs.webkit.org/show_bug.cgi?id=113006
Reviewed by Anders Carlsson.
Add an observer for the NSWorkspaceActiveSpaceDidChangeNotification notification, and trigger
a visibility update when that notification is observed.
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]): Unregister the observer.
(-[WKView _activeSpaceDidChange:]): Notify the view that its visibility may have changed.
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): Add the observer.
2013-03-21 Geoffrey Garen <ggaren@apple.com>
Added a setting for whether JavaScript markup is enabled
https://bugs.webkit.org/show_bug.cgi?id=112999
Reviewed by Maciej Stachowiak.
This setting is useful for clients that want protection from script
injection attacks.
* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesGetJavaScriptMarkupEnabled):
(WKPreferencesSetJavaScriptMarkupEnabled):
(WKPreferencesGetJavaScriptEnabled):
* UIProcess/API/C/WKPreferences.h:
* UIProcess/API/mac/WKBrowsingContextGroup.mm:
(-[WKBrowsingContextGroup allowsJavaScriptMarkup]):
(-[WKBrowsingContextGroup setAllowsJavaScriptMarkup:]):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Plumbed through to API.
2013-03-22 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Include the right GL header for GLES2
https://bugs.webkit.org/show_bug.cgi?id=113034
Reviewed by Martin Robinson.
Include GLES2/gl2.h when using GLES2.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
2013-03-22 Timothy Hatcher <timothy@apple.com>
Fix an assert when opening the Web Inspector window for the first time.
rdar://problem/13471765
https://webkit.org/b/113053
Reviewed by Eric Carlson.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createInspectorWindow): Assign m_inspectorWindow
earlier so it is ready for when center is called and windowDidMove: gets called.
2013-03-21 Tim Horton <timothy_horton@apple.com>
[wk2] Page Overlays: Don't create backing store until the client asks us to paint
https://bugs.webkit.org/show_bug.cgi?id=112989
<rdar://problem/13355759>
Reviewed by Anders Carlsson.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::highlight):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll):
Invalidate the entire overlay on installation, to maintain existing behavior
on platforms where the fade-in animation is not performed by invalidating the overlay.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::installPageOverlay):
Don't invalidate the overlay upon installation.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setPageOverlayNeedsDisplay):
Create backing store for the page overlay layer the first time it is painted into.
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
Don't update the size of the page overlay layer unless we intend for it to have backing store.
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
Don't create backing store when we create the page overlay layer.
2013-03-21 Brady Eidson <beidson@apple.com>
If a previously loaded resource is later stored to the disk cache, replace the buffer with MMAP'ed memory.
<rdar://problem/13414154> and https://bugs.webkit.org/show_bug.cgi?id=112943
Reviewed by Geoff Garen.
Add a timer that will try to look up the disk cached buffer for the resource a few seconds after the load
completes and - if the resource is disk backed - send it to the WebProcess for sharing:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::diskCacheTimerFired):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didReceiveData):
(WebKit::NetworkResourceLoader::didFinishLoading):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::tryGetShareableHandleForResource):
Refactor SharedMemory to remove the unnecessary vm_copy and only vm_allocate when an appropriate buffer
doesn't already exist:
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::createFromVMBuffer):
(WebKit::SharedMemory::~SharedMemory):
Give ShareableResource the ability to create a CFDataRef that wraps "this", and return it in a SharedBuffer:
* Shared/ShareableResource.cpp:
(WebKit::shareableResourceDeallocate):
(WebKit::createShareableResourceDeallocator):
(WebKit::ShareableResource::Handle::tryWrapInSharedBuffer):
* Shared/ShareableResource.h:
* Shared/WebCoreArgumentCoders.cpp: Encode/decode the cache partition for ResourceRequest.
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didCacheResource): Lookup the CachedResource in the WebCore memory cache
and try to replace its encoded data with the shared mmap'ed buffer.
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Network/NetworkProcessConnection.messages.in:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResource):
2013-03-21 Tim Horton <timothy_horton@apple.com>
Unreviewed build fix, forgot to stage one file.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::didChangeScrollOffsetForAnyFrame):
(DrawingArea):
2013-03-21 Tim Horton <timothy_horton@apple.com>
[wk2] Page overlays shouldn't dirty the entire layer when flushing if the main frame can't scroll
https://bugs.webkit.org/show_bug.cgi?id=111662
<rdar://problem/13355808>
Reviewed by Dean Jackson.
Instead of setNeedsDisplay()ing the whole page overlay layer every time through
TCADA::flushLayers, do it at scroll time instead. Repainting on scroll is
necessary to keep things painted in the right place when we scroll (the overlay
is fixed to the size of the view), but is quite wasteful in apps that don’t scroll.
This works with threaded scrolling because overlay installation forces us
into main-thread scrolling mode.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::didChangeScrollOffset):
Plumb scroll offset changes through to the drawing area, so it can invalidate the page overlay.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
Add didChangeScrollOffsetForAnyFrame, for WebFrameLoaderClient to call us back when any frame scrolls.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::didChangeScrollOffsetForAnyFrame):
Invalidate the page overlay when any frame scrolls, so that find indicators in subframes are kept in the right place.
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
Stop unconditionally invalidating the page overlay when we flush layers.
2013-03-21 Alexey Proskuryakov <ap@apple.com>
[Mac] Move NSOperationQueue out of NetworkingContext
https://bugs.webkit.org/show_bug.cgi?id=112970
Reviewed by Brady Eidson.
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/mac/RemoteNetworkingContext.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
Tell ResourceHandle to use an operation queue in the new way.
2013-03-21 Timothy Hatcher <timothy@apple.com>
Support connecting the Web Inspector without showing it.
This allows you to get the debugger attached in the background. When a breakpoint is hit
the Inspector will open. This change also reduces some WebProcess messaging by removing
the DidLoadInspectorPage message and stops sending the SetAttachedWindow message on close.
https://bugs.webkit.org/show_bug.cgi?id=112445
Reviewed by Sam Weinig.
* UIProcess/API/C/WKInspector.cpp:
(WKInspectorIsConnected): Added.
(WKInspectorConnect): Added.
(WKInspectorHide): Added.
* UIProcess/API/C/WKInspector.h:
Added new APIs.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
Initialize new state booleans.
(WebKit::WebInspectorProxy::invalidate):
Don't set state booleans that didClose already resets.
(WebKit::WebInspectorProxy::connect): Added.
(WebKit::WebInspectorProxy::show):
Open if we are already connected. Call connect().
(WebKit::WebInspectorProxy::hide): Added.
(WebKit::WebInspectorProxy::close):
Call didClose we can detach or close the window immediately instead of waiting for a
message from the WebProcess.
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
Check for !m_page to match other functions.
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::didLoadInspectorPage):
Removed. Moved logic to open().
(WebKit::WebInspectorProxy::open): Added.
(WebKit::WebInspectorProxy::didClose):
Clear new state booleans. Don't perform work again if already closed. Use platformDetach()
instead of detach() to avoid sending the SetAttachedWindow message.
(WebKit::WebInspectorProxy::bringToFront):
Call open() if we are not visible yet, otherwise platformBringToFront.
* UIProcess/WebInspectorProxy.h:
(WebKit::WebInspectorProxy::isConnected): Added.
* UIProcess/WebInspectorProxy.messages.in: Removed DidLoadInspectorPage.
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformHide): Added stub.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformHide): Added.
* UIProcess/qt/WebInspectorProxyQt.cpp:
(WebKit::WebInspectorProxy::platformHide): Added stub.
* WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
* WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
Removed frontendLoaded().
* WebProcess/WebPage/WebInspector.cpp:
* WebProcess/WebPage/WebInspector.h:
Removed didLoadInspectorPage().
2013-03-21 Alexey Proskuryakov <ap@apple.com>
Build fix.
* NetworkProcess/mac/NetworkResourceLoaderMac.mm: Include CurrentTime.h, as needed
to call currentTime().
2013-03-21 Tim Horton <timothy_horton@apple.com>
Tiled page overlay layers don't create tiles until the first flush after they switch to being tiled
https://bugs.webkit.org/show_bug.cgi?id=112860
<rdar://problem/13468400>
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea): Add storage for m_clipsToExposedRect.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
The page overlay layer will never have children, so we can use flushCompositingState instead of the ForThisLayerOnly variant.
Pass the visible rect of the page overlay layer (computed by intersecting its bounds with the exposed
rect that comes from the WKView) to flushCompositingState; don't bother setting the visible rect manually.
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
Store m_clipsToExposedRect so we can use it in flushLayers.
2013-03-20 Benjamin Poulain <bpoulain@apple.com>
[WK2] Remove VIEW_MODE_CSS_MEDIA from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=112849
Reviewed by Sam Weinig.
The code was added in r137148 for the sole purpose of testing,
and it is not even being properly tested.
Remove the code until someone actually implement the feature in WebKit2.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCanShowMIMEType):
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
(WebPage):
2013-03-20 Zan Dobersek <zdobersek@igalia.com>
[GTK] Build ANGLE sources into a separate library from libWebCore.la
https://bugs.webkit.org/show_bug.cgi?id=112778
Reviewed by Martin Robinson.
* GNUmakefile.am: Add libLevelDB.la to the libwebkit2gtk library if using the OpenGL accelerated backend.
2013-03-20 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] Clean up sanity checks related to gesture recognition
https://bugs.webkit.org/show_bug.cgi?id=112679
Reviewed by Jocelyn Turcotte.
The only callers of the panGestureActive and pinchGestureActive member
functions of the page viewport controller client are event delivery
related sanity check assers, thus they can be replaced by checking
for the corresponding internal states and therefore the superfluous
members can be removed.
Also update other asserts in the page viewport controller client to
be more accurate about the expected states.
* UIProcess/qt/PageViewportControllerClientQt.cpp:
(WebKit::PageViewportControllerClientQt::animateContentRectVisible):
(WebKit::PageViewportControllerClientQt::touchBegin):
(WebKit::PageViewportControllerClientQt::panGestureStarted):
(WebKit::PageViewportControllerClientQt::pinchGestureStarted):
* UIProcess/qt/PageViewportControllerClientQt.h:
(PageViewportControllerClientQt):
* UIProcess/qt/QtWebPageEventHandler.cpp:
(WebKit::QtWebPageEventHandler::handleInputEvent):
2013-03-20 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] Refactor handling of content suspension to properly cover corner cases
https://bugs.webkit.org/show_bug.cgi?id=111751
Reviewed by Jocelyn Turcotte.
The current suspend / resume infrastructure turned out to be insufficient to cover
all corner cases during transitions between gestures of complex gesture chains.
The requirements for robust suspend / resume handling are:
- Keep the content suspended while the user is continuously interacting,
eg. does not lift the finger between transition from a pan to a pinch gesture
and vice versa.
- The content should not be suspended unnecessarily (like for a tap gesture),
only during panning and scroll animation (flick), as well as pinch zoom and scale
animation (also includes double-tap-to-zoom).
- The content should never end up stuck in suspended state after long gesture
chains and continuous interaction.
This patch reintroduces reference counting based suspension in form of a new
ViewportInteractionTracker member class to make it possible to reliably control the
suspend / resume cycles during scrolling and scaling.
During continuous gestures, while the user is interacting, the reference count is
increased without actually suspending the content to prevent resuming unnecessarily
during continuous interaction. At the same time this also assures that the page is
not suspended for simple tap gestures, which was a side-effect of the previous
approach based on update deferrers.
The newly added functionality replaces boolean members that tried to achive the
above requirements.
Additionally this patch also removes the redundant m_hasSuspendedContent member
from the PageViewportController since WebPageProxy already keeps this information.
* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::PageViewportController):
(WebKit::PageViewportController::pageDidRequestScroll):
(WebKit::PageViewportController::updateMinimumScaleToFit):
* UIProcess/PageViewportController.h:
(PageViewportController):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::areActiveDOMObjectsAndAnimationsSuspended):
* UIProcess/qt/PageViewportControllerClientQt.cpp:
(WebKit::PageViewportControllerClientQt::PageViewportControllerClientQt):
(WebKit::PageViewportControllerClientQt::ViewportInteractionTracker::begin):
(WebKit):
(WebKit::PageViewportControllerClientQt::ViewportInteractionTracker::end):
(WebKit::PageViewportControllerClientQt::animateContentRectVisible):
(WebKit::PageViewportControllerClientQt::flickMoveStarted):
(WebKit::PageViewportControllerClientQt::flickMoveEnded):
(WebKit::PageViewportControllerClientQt::pageItemPositionChanged):
(WebKit::PageViewportControllerClientQt::scaleAnimationStateChanged):
(WebKit::PageViewportControllerClientQt::touchBegin):
(WebKit::PageViewportControllerClientQt::touchEnd):
(WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
(WebKit::PageViewportControllerClientQt::pinchGestureStarted):
(WebKit::PageViewportControllerClientQt::pinchGestureRequestUpdate):
(WebKit::PageViewportControllerClientQt::pinchGestureEnded):
(WebKit::PageViewportControllerClientQt::pinchGestureCancelled):
(WebKit::PageViewportControllerClientQt::didChangeContentsSize):
* UIProcess/qt/PageViewportControllerClientQt.h:
(ViewportInteractionTracker):
(WebKit::PageViewportControllerClientQt::ViewportInteractionTracker::ViewportInteractionTracker):
(WebKit::PageViewportControllerClientQt::ViewportInteractionTracker::inProgress):
(PageViewportControllerClientQt):
2013-03-19 Kenneth Rohde Christiansen <kenneth@webkit.org> and Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[EFL][WK2] Separate WebView further from EwkView
https://bugs.webkit.org/show_bug.cgi?id=111591
Reviewed by Caio Marcelo de Oliveira Filho.
Main points are:
- WKView API has no dependency on EFL types
- WebView class does not store the Evas_Object
* UIProcess/API/C/efl/WKView.cpp:
(WKViewCreate):
WKView creation does not require any EFL objects to be passed.
* UIProcess/API/C/efl/WKView.h:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::create):
WKViewRef is passed to EwkView constructor from outside rather than
created inside.
(EwkView::webView):
* UIProcess/API/efl/EwkView.h:
(EwkView):
(EwkView::wkView):
(EwkView::page):
EwkView keeps WKViewRef rather than pointer to WebView class.
* UIProcess/API/efl/ewk_view_private.h: Added.
(EWKViewCreate):
(EWKViewGetWKView):
Added private API to create ewk view evas object and return its WKViewRef.
* UIProcess/API/efl/ewk_view.cpp:
(ewkCreateEvasObject):
(ewk_view_smart_add):
(ewk_view_add):
(ewk_view_add_with_context):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Updated accordingly to the new APIs.
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::WebView):
(WebKit::WebView::create):
(WebKit):
(WebKit::WebView::setEwkView):
(WebKit::WebView::isViewFocused):
(WebKit::WebView::isViewVisible):
* UIProcess/efl/WebView.h:
(WebView):
Implementation of updated WKView API.
2013-03-19 Dean Jackson <dino@apple.com>
Allow PlugIn Snapshotting to be tested
https://bugs.webkit.org/show_bug.cgi?id=98696
Reviewed by Tim Horton.
Use the new maximumPlugInSnapshotAttempts setting rather than a hardcoded
value. At the same time, if this value is 0, then snapshot immediately
(don't wait to get a snapshot and test it).
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::didInitializePlugin): Snapshot immediately if maximum attempts are 0.
(WebKit::PluginView::pluginSnapshotTimerFired): Use setting rather than file local variable.
2013-03-19 Dean Jackson <dino@apple.com>
Restarting a snapshotted plugin should restart all plugins from the same domain on the page
https://bugs.webkit.org/show_bug.cgi?id=112725
Reviewed by Tim Horton.
When we add a plugin domain hash to the list of sites that autostart, we
send a message to our owning process. That message might not return before
another plugin queries if it is in the list. So, before we send the message,
add the current hash to the list with a very small timeout. That way the
response will be to either extend the timeout, or not add the hash (in which
case it will expire soon).
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::addPlugInAutoStartOrigin):
2013-03-19 Zan Dobersek <zdobersek@igalia.com>
[GTK] Fix WebKit2 builds after r146193
https://bugs.webkit.org/show_bug.cgi?id=112700
Reviewed by Martin Robinson.
Apply changes to the LayerTreeHostGtk class that are analogous to changes made in r146193
to the LayerTreeHostMac class, namely introducing a PageOverlayLayersMap and using that as
the source of GraphicsLayer objects that should be operated on, making it possible to
support multiple page overlays.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize):
(WebKit::LayerTreeHostGtk::invalidate):
(WebKit::LayerTreeHostGtk::setNonCompositedContentsNeedDisplay):
(WebKit::LayerTreeHostGtk::setNonCompositedContentsNeedDisplayInRect):
(WebKit::LayerTreeHostGtk::sizeDidChange):
(WebKit::LayerTreeHostGtk::didInstallPageOverlay):
(WebKit::LayerTreeHostGtk::didUninstallPageOverlay):
(WebKit::LayerTreeHostGtk::setPageOverlayNeedsDisplay):
(WebKit::LayerTreeHostGtk::paintContents):
(WebKit::LayerTreeHostGtk::flushPendingLayerChanges):
(WebKit::LayerTreeHostGtk::createPageOverlayLayer):
(WebKit::LayerTreeHostGtk::destroyPageOverlayLayer):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
(LayerTreeHostGtk):
2013-03-19 Tim Horton <timothy_horton@apple.com>
[wk2] Should support multiple page overlays, like the API suggests
https://bugs.webkit.org/show_bug.cgi?id=112505
<rdar://problem/13424796>
Reviewed by Simon Fraser.
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/LayerTreeHost.h:
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::didInstallPageOverlay):
(WebKit::DrawingArea::didUninstallPageOverlay):
(WebKit::DrawingArea::setPageOverlayNeedsDisplay):
(WebKit::DrawingArea::setPageOverlayOpacity):
Add PageOverlay argument.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::didInstallPageOverlay):
(WebKit::DrawingAreaImpl::didUninstallPageOverlay):
(WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay):
(WebKit::DrawingAreaImpl::setPageOverlayOpacity):
Add PageOverlay argument, forward it to LayerTreeHost.
(WebKit::DrawingAreaImpl::display):
Paint all of the PageOverlays that WebPage knows about.
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::setNeedsDisplay):
(WebKit::PageOverlay::fadeAnimationTimerFired):
Pass the relevant PageOverlay into the DrawingArea methods that now take it.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::drawPageOverlay):
Take the PageOverlay to draw as an argument.
(WebKit::WebPage::installPageOverlay):
(WebKit::WebPage::uninstallPageOverlay):
Allow (un)installation of multiple PageOverlays.
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::mouseEventSyncForTesting):
Hit-test PageOverlays in reverse order of installation (most recently installed should be topmost).
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::drawPageOverlay): Take the PageOverlay to draw as an argument.
(WebKit::WebPage::hasPageOverlay): Return true if we have any number of overlays.
(WebKit::WebPage::pageOverlays): Return the whole vector of overlays.
* WebProcess/WebPage/mac/LayerTreeHostMac.h:
Add PageOverlay argument to a few methods.
Add storage for a map of PageOverlay->GraphicsLayers.
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplay):
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplayInRect):
(WebKit::LayerTreeHostMac::sizeDidChange):
(WebKit::LayerTreeHostMac::flushPendingLayerChanges):
Operate on all installed PageOverlays, not just the most recently installed one.
(WebKit::LayerTreeHostMac::didInstallPageOverlay):
(WebKit::LayerTreeHostMac::didUninstallPageOverlay):
Forward the passed-in PageOverlay on to createPageOverlayLayer/destroyPageOverlayLayer.
(WebKit::LayerTreeHostMac::setPageOverlayNeedsDisplay):
Look up the GraphicsLayer for the PageOverlay we need to dirty, and dirty it.
(WebKit::LayerTreeHostMac::paintContents):
Find the PageOverlay corresponding to the GraphicsLayer that we're painting, and ask WebPage to paint it.
While not ideal (crawling the map), the vast majority of the time there will only be one entry.
(WebKit::LayerTreeHostMac::initialize):
Create layers for all of WebPage's active PageOverlays.
(WebKit::LayerTreeHostMac::createPageOverlayLayer):
Stick the newly-created GraphicsLayer into the m_pageOverlays map.
Also, drive-by add support for accelerated overlays and debug borders/repaint counters in overlays.
(WebKit::LayerTreeHostMac::destroyPageOverlayLayer):
Remove the relevant overlay from the m_pageOverlays map and tear it down.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
Add PageOverlay argument to a few methods.
Add storage for a map of PageOverlay->GraphicsLayers.
Add storage for a map of GraphicsLayer->CALayers.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
Pass PageOverlay argument on to createPageOverlayLayer.
(WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
Pass PageOverlay argument on to destroyPageOverlayLayer.
Refrain from re-enabling threaded scrolling if there are still more overlays installed.
(WebKit::TiledCoreAnimationDrawingArea::setPageOverlayNeedsDisplay):
Look up the GraphicsLayer for the PageOverlay we need to dirty, and dirty it.
(WebKit::TiledCoreAnimationDrawingArea::paintContents):
Find the PageOverlay corresponding to the GraphicsLayer that we're painting, and ask WebPage to paint it.
While not ideal (crawling the map), the vast majority of the time there will only be one entry.
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
Operate on all installed PageOverlays, not just the most recently installed one.
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
Stick the newly-created GraphicsLayer into the m_pageOverlays map.
Also, add its platformLayer to our m_pageOverlayPlatformLayers map.
(WebKit::TiledCoreAnimationDrawingArea::destroyPageOverlayLayer):
Remove the relevant overlay from the m_pageOverlays and m_pageOverlayPlatformLayers maps and tear it down.
(WebKit::TiledCoreAnimationDrawingArea::didCommitChangesForLayer):
When we commit changes for the layer, if the GraphicsLayer's backing platform CALayer
has changed out from under us (we have a reference to the previous one in the m_pageOverlayPlatformLayers map),
the GraphicsLayer has probably switched to/from a tiled layer, and we need to swap out the
layer we have inserted into the root layer. We need to keep the layer ordering consistent with
installation order, as well.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::didInstallPageOverlay):
Assert if we try to install more than one page overlay into a CoordinatedLayerTreeHost,
as this patch does not implement multiple overlay support for Coordinated Graphics.
Keep track of the current PageOverlay so that paintContents can hand WebPage the right one.
(WebKit::CoordinatedLayerTreeHost::didUninstallPageOverlay): Remove our reference to the PageOverlay.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayNeedsDisplay): Add unused PageOverlay argument.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayOpacity): Add unused PageOverlay argument.
(WebKit::CoordinatedLayerTreeHost::paintContents): Hand WebPage the PageOverlay we're currently displaying.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost): Add PageOverlay* argument to relevant functions, and storage for m_pageOverlay.
2013-03-19 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146183.
http://trac.webkit.org/changeset/146183
https://bugs.webkit.org/show_bug.cgi?id=112673
Caused a few dozens of editing tests to fail on Mac WK2
(Requested by rniwa on #webkit).
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::didInstallPageOverlay):
(WebKit::CoordinatedLayerTreeHost::didUninstallPageOverlay):
(WebKit::CoordinatedLayerTreeHost::setPageOverlayNeedsDisplay):
(WebKit::CoordinatedLayerTreeHost::setPageOverlayOpacity):
(WebKit::CoordinatedLayerTreeHost::paintContents):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost):
* WebProcess/WebPage/DrawingArea.h:
(WebKit):
(WebKit::DrawingArea::didInstallPageOverlay):
(WebKit::DrawingArea::didUninstallPageOverlay):
(WebKit::DrawingArea::setPageOverlayNeedsDisplay):
(WebKit::DrawingArea::setPageOverlayOpacity):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::didInstallPageOverlay):
(WebKit::DrawingAreaImpl::didUninstallPageOverlay):
(WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay):
(WebKit::DrawingAreaImpl::setPageOverlayOpacity):
(WebKit::DrawingAreaImpl::display):
* WebProcess/WebPage/DrawingAreaImpl.h:
(DrawingAreaImpl):
* WebProcess/WebPage/LayerTreeHost.h:
(LayerTreeHost):
(WebKit::LayerTreeHost::setPageOverlayOpacity):
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::setNeedsDisplay):
(WebKit::PageOverlay::fadeAnimationTimerFired):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::drawPageOverlay):
(WebKit::WebPage::installPageOverlay):
(WebKit::WebPage::uninstallPageOverlay):
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::mouseEventSyncForTesting):
* WebProcess/WebPage/WebPage.h:
(WebKit):
(WebPage):
(WebKit::WebPage::hasPageOverlay):
* WebProcess/WebPage/mac/LayerTreeHostMac.h:
(WebKit):
(LayerTreeHostMac):
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplay):
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplayInRect):
(WebKit::LayerTreeHostMac::sizeDidChange):
(WebKit::LayerTreeHostMac::didInstallPageOverlay):
(WebKit::LayerTreeHostMac::didUninstallPageOverlay):
(WebKit::LayerTreeHostMac::setPageOverlayNeedsDisplay):
(WebKit::LayerTreeHostMac::paintContents):
(WebKit::LayerTreeHostMac::initialize):
(WebKit::LayerTreeHostMac::flushPendingLayerChanges):
(WebKit::LayerTreeHostMac::createPageOverlayLayer):
(WebKit::LayerTreeHostMac::destroyPageOverlayLayer):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
(WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
(WebKit::TiledCoreAnimationDrawingArea::setPageOverlayNeedsDisplay):
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::paintContents):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
(WebKit::TiledCoreAnimationDrawingArea::destroyPageOverlayLayer):
(WebKit::TiledCoreAnimationDrawingArea::didCommitChangesForLayer):
2013-03-18 Tim Horton <timothy_horton@apple.com>
[wk2] Should support multiple page overlays, like the API suggests
https://bugs.webkit.org/show_bug.cgi?id=112505
<rdar://problem/13424796>
Reviewed by Simon Fraser.
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/LayerTreeHost.h:
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::didInstallPageOverlay):
(WebKit::DrawingArea::didUninstallPageOverlay):
(WebKit::DrawingArea::setPageOverlayNeedsDisplay):
(WebKit::DrawingArea::setPageOverlayOpacity):
Add PageOverlay argument.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::didInstallPageOverlay):
(WebKit::DrawingAreaImpl::didUninstallPageOverlay):
(WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay):
(WebKit::DrawingAreaImpl::setPageOverlayOpacity):
Add PageOverlay argument, forward it to LayerTreeHost.
(WebKit::DrawingAreaImpl::display):
Paint all of the PageOverlays that WebPage knows about.
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::setNeedsDisplay):
(WebKit::PageOverlay::fadeAnimationTimerFired):
Pass the relevant PageOverlay into the DrawingArea methods that now take it.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::drawPageOverlay):
Take the PageOverlay to draw as an argument.
(WebKit::WebPage::installPageOverlay):
(WebKit::WebPage::uninstallPageOverlay):
Allow (un)installation of multiple PageOverlays.
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::mouseEventSyncForTesting):
Hit-test PageOverlays in reverse order of installation (most recently installed should be topmost).
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::drawPageOverlay): Take the PageOverlay to draw as an argument.
(WebKit::WebPage::hasPageOverlay): Return true if we have any number of overlays.
(WebKit::WebPage::pageOverlays): Return the whole vector of overlays.
* WebProcess/WebPage/mac/LayerTreeHostMac.h:
Add PageOverlay argument to a few methods.
Add storage for a map of PageOverlay->GraphicsLayers.
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplay):
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplayInRect):
(WebKit::LayerTreeHostMac::sizeDidChange):
(WebKit::LayerTreeHostMac::flushPendingLayerChanges):
Operate on all installed PageOverlays, not just the most recently installed one.
(WebKit::LayerTreeHostMac::didInstallPageOverlay):
(WebKit::LayerTreeHostMac::didUninstallPageOverlay):
Forward the passed-in PageOverlay on to createPageOverlayLayer/destroyPageOverlayLayer.
(WebKit::LayerTreeHostMac::setPageOverlayNeedsDisplay):
Look up the GraphicsLayer for the PageOverlay we need to dirty, and dirty it.
(WebKit::LayerTreeHostMac::paintContents):
Find the PageOverlay corresponding to the GraphicsLayer that we're painting, and ask WebPage to paint it.
While not ideal (crawling the map), the vast majority of the time there will only be one entry.
(WebKit::LayerTreeHostMac::initialize):
Create layers for all of WebPage's active PageOverlays.
(WebKit::LayerTreeHostMac::createPageOverlayLayer):
Stick the newly-created GraphicsLayer into the m_pageOverlayLayers map.
Also, drive-by add support for accelerated overlays and debug borders/repaint counters in overlays.
(WebKit::LayerTreeHostMac::destroyPageOverlayLayer):
Remove the relevant overlay from the m_pageOverlayLayers map and tear it down.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
Add PageOverlay argument to a few methods.
Add storage for a map of PageOverlay->GraphicsLayers.
Add storage for a map of GraphicsLayer->CALayers.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
Pass PageOverlay argument on to createPageOverlayLayer.
(WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
Pass PageOverlay argument on to destroyPageOverlayLayer.
Refrain from re-enabling threaded scrolling if there are still more overlays installed.
(WebKit::TiledCoreAnimationDrawingArea::setPageOverlayNeedsDisplay):
Look up the GraphicsLayer for the PageOverlay we need to dirty, and dirty it.
(WebKit::TiledCoreAnimationDrawingArea::paintContents):
Find the PageOverlay corresponding to the GraphicsLayer that we're painting, and ask WebPage to paint it.
While not ideal (crawling the map), the vast majority of the time there will only be one entry.
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
Operate on all installed PageOverlays, not just the most recently installed one.
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
Stick the newly-created GraphicsLayer into the m_pageOverlayLayers map.
Also, add its platformLayer to our m_pageOverlayPlatformLayers map.
(WebKit::TiledCoreAnimationDrawingArea::destroyPageOverlayLayer):
Remove the relevant overlay from the m_pageOverlayLayers and m_pageOverlayPlatformLayers maps and tear it down.
(WebKit::TiledCoreAnimationDrawingArea::didCommitChangesForLayer):
When we commit changes for the layer, if the GraphicsLayer's backing platform CALayer
has changed out from under us (we have a reference to the previous one in the m_pageOverlayPlatformLayers map),
the GraphicsLayer has probably switched to/from a tiled layer, and we need to swap out the
layer we have inserted into the root layer. We need to keep the layer ordering consistent with
installation order, as well.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::didInstallPageOverlay):
Assert if we try to install more than one page overlay into a CoordinatedLayerTreeHost,
as this patch does not implement multiple overlay support for Coordinated Graphics.
Keep track of the current PageOverlay so that paintContents can hand WebPage the right one.
(WebKit::CoordinatedLayerTreeHost::didUninstallPageOverlay): Remove our reference to the PageOverlay.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayNeedsDisplay): Add unused PageOverlay argument.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayOpacity): Add unused PageOverlay argument.
(WebKit::CoordinatedLayerTreeHost::paintContents): Hand WebPage the PageOverlay we're currently displaying.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost): Add PageOverlay* argument to relevant functions, and storage for m_pageOverlay.
2013-03-18 Sam Weinig <sam@webkit.org>
Need a bundle SPI to generate a snapshot of a specific DOM node (like [DOMNode renderedImage])
<rdar://problem/13148631>
https://bugs.webkit.org/show_bug.cgi?id=110034
Reviewed by Tim Horton.
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
(WKBundleNodeHandleCopySnapshotWithOptions):
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
Add WKBundleNodeHandleCopySnapshotWithOptions function.
* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
* WebProcess/InjectedBundle/API/mac/WKDOMNodePrivate.h:
Fix conversion method between WKDOMNode and WKBundleNodeHandleRef to have the same
name in the header and implementation.
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::imageForRect):
(WebKit):
(WebKit::InjectedBundleNodeHandle::renderedImage):
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
Add implementation of WKBundleNodeHandleCopySnapshotWithOptions.
* Shared/ImageOptions.h:
(WebKit::snapshotOptionsToImageOptions):
* WebProcess/WebPage/WebPage.cpp:
Move snapshotOptionsToImageOptions conversion function to a location where
it can be shared.
2013-03-18 Andreas Kling <akling@apple.com>
[WK2][Mac] Don't consider empty window frames cacheable.
<http://webkit.org/b/112631>
<rdar://problem/13384894>
Reviewed by Anders Carlsson.
If the UI client overrides getWindowFrame() and returns an empty rect, send that over
to the web process and mark it as uncached. This forces the next ChromeClient::windowRect()
call to synchronously retrieve the window frame from the other side.
Fixes an issue with the Mac Web Inspector which uses empty rects to signify that there is
no known window frame yet. In this case, we should not be falling back to the native frame.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::windowAndViewFramesChanged):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::windowAndViewFramesChanged):
2013-03-18 Brady Eidson <beidson@apple.com>
Mac build fix after http://trac.webkit.org/changeset/146088
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::platformDidReceiveResponse):
2013-03-18 Brady Eidson <beidson@apple.com>
NetworkProcess should send vm_copied, mmap'ed memory to WebProcesses when a
resource is already in the disk cache.
<rdar://problem/13414153> and https://bugs.webkit.org/show_bug.cgi?id=112387
Reviewed by Geoff Garen.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::sendAbortingOnFailure):
(WebKit::NetworkResourceLoader::didReceiveResponse): After notifying about the response,
call platformDidReceiveResponse.
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/mac/NetworkResourceLoaderMac.mm: Added.
(WebKit::NetworkResourceLoader::platformDidReceiveResponse): Attempt to pull a filesystem
mmap'ed buffer from the CFNetwork cache and - if it exists - abort the traditional load
and send that to the WebProcess instead.
(WebKit::NetworkResourceLoader:: fileBackedResourceMinimumSize): For now, use the VM page size.
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcess): Set the threshold for what
should be backed by a file on disk instead of stored in the database.
Change SharedMemory to do a vm_copy if a previously existing buffer is being passed in:
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::createWithVMCopy):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::shareableResourceDeallocate):
(WebKit::createShareableResourceDeallocator):
(WebKit::WebResourceLoader::didReceiveResource): Create a special CFDataRef whose buffer is
backed by a ShareableResource to send to the ResourceLoader in one chunk.
* Shared/ShareableResource.h: Fix some comments.
* WebKit2.xcodeproj/project.pbxproj:
2013-03-18 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Fix code wrapping WKPageGroupRef
https://bugs.webkit.org/show_bug.cgi?id=112364
Reviewed by Alexey Proskuryakov.
The patch fixes following problems in EWK2 WKPageGroupRef wrapping
code: firstly it makes sure that there is only one EwkPageGroup
instance per WKPageGroup instance, secondly it allows web page to
to use the default page group (which is implicitly created inside
web context).
* UIProcess/API/C/efl/WKView.cpp:
(createWKView):
Now may pass '0' page group as a WebView creation argument so
that the default page group is used.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::createEvasObject):
* UIProcess/API/efl/EwkView.h:
(EwkView):
Web view should be created before page group, so they are rearranged
inside class declaration.
* UIProcess/API/efl/ewk_page_group.cpp:
(pageGroupMap):
A map to track corresponding EwkPageGroup and WKPageGroup
instances.
(EwkPageGroup::findOrCreateWrapper):
Returns the same EwkPageGroup instance for the same WKPageGroup
instance.
(EwkPageGroup::create):
(EwkPageGroup::EwkPageGroup):
Now there is only one constructor accepting WKPageGroupRef.
(EwkPageGroup::~EwkPageGroup):
* UIProcess/API/efl/ewk_page_group_private.h:
(EwkPageGroup):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
2013-03-17 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Invalid charset encoding using when substituting a misspelled word in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=112517
Reviewed by Alexey Proskuryakov.
The problem is that we are creating the WebContextMenuItemData
with the GtkAction label as UTF-8.
* UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::contextMenuItemActivatedCallback): Use String::fromUTF8()
to convert the GtkAction label to UTF-16.
2013-03-16 Pratik Solanki <psolanki@apple.com>
Disable High DPI Canvas on iOS
https://bugs.webkit.org/show_bug.cgi?id=112511
Reviewed by Joseph Pecoraro.
* Configurations/FeatureDefines.xcconfig:
2013-03-15 Timothy Hatcher <timothy@apple.com>
Disable suppressesIncrementalRendering for the Web Inspector.
This ends up causing the Inspector to show blank for a couple seconds before
it does its first paint. During that time the bare window chrome is showing
when the Inspector's background and other simple elements count be painting.
This causes the Inspector to look like it is loading slower than reality.
https://bugs.webkit.org/show_bug.cgi?id=112300
rdar://problem/13412219
Reviewed by Geoff Garen.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::createInspectorPageGroup): Disable suppressesIncrementalRendering.
2013-03-13 Timothy Hatcher <timothy@apple.com>
Delay creating the Inspector window so we don't cause a CoreIPC deadlock.
Other changes include:
* Create the Inspector WKView at the correct size so it does not need to
resize later when added to the window.
* Update the minimum and initial window sizes to better match the new UI.
* Store the Inspector window frame in WebKit preferences so each page group
can have different saved window frames. Handy for inspecting the Inspector.
https://bugs.webkit.org/show_bug.cgi?id=112300
rdar://problem/13412219
Reviewed by Geoff Garen.
* Shared/WebPreferencesStore.cpp:
(WebKit::defaultValueForKey):
Added FOR_EACH_WEBKIT_STRING_PREFERENCE_NOT_IN_WEBCORE.
* Shared/WebPreferencesStore.h:
(FOR_EACH_WEBKIT_STRING_PREFERENCE_NOT_IN_WEBCORE):
Added. Needed to keep WebPage::updatePreferences for trying to set WebCore::Settings.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::minimumWindowWidth):
(WebKit::WebInspectorProxy::initialWindowWidth):
Bumped the values to work better with the new UI.
* UIProcess/WebInspectorProxy.h:
(WebKit::WebInspectorProxy::windowFrameDidChange):
Added.
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter windowDidMove:]):
(-[WKWebInspectorProxyObjCAdapter windowDidResize:]):
Call WebInspectorProxy::windowFrameDidChange.
(WebKit::WebInspectorProxy::createInspectorWindow):
Use the preferences for the page group to get the window frame.
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Stop calling platformAttach or createInspectorWindow, do it in platformOpen.
(WebKit::WebInspectorProxy::platformOpen):
Call platformAttach or createInspectorWindow here instead.
(WebKit::WebInspectorProxy::windowFrameDidChange):
Added. Store the frame in the page group's preferences.
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
Remove code that called setHidden:. We don't need to do that anymore.
2013-03-15 Zan Dobersek <zdobersek@igalia.com>
[GTK] Enforce the C++11 standard when compiling WebKit2
https://bugs.webkit.org/show_bug.cgi?id=112169
Reviewed by Gustavo Noronha Silva.
With a limited set of supported compilers the WebKit2 source code can now
be built with the C++11 language standard enforced.
* GNUmakefile.am:
* UIProcess/API/gtk/WebKitWebContext.cpp:
(injectedBundleDirectory): Adjust the string literals concatenation, moving away from empty strings
(which C++11 refuses to handle as concatenation operators) and using whitespace instead.
* UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
(WebKit::WebInspectorServer::platformResourceForPath): Ditto.
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::inspectorFilesBasePath): Ditto.
2013-03-15 Nate Chapin <japhet@chromium.org>
Hide MainResourceLoader from the outside world
https://bugs.webkit.org/show_bug.cgi?id=109971
Reviewed by Adam Barth.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::convertMainResourceLoadToDownload):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
(WebFrameLoaderClient):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::convertMainResourceLoadToDownload):
* WebProcess/WebPage/WebFrame.h:
(WebFrame):
2013-03-15 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* helper functions.
https://bugs.webkit.org/show_bug.cgi?id=112401
Reviewed by Stephen Chenney.
to* helper functions are preferred over static_cast calls since they
help to catch bad casts easily on the testing infrastructure.
* Shared/WebRenderObject.cpp:
(WebKit::WebRenderObject::WebRenderObject):
2013-03-15 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Get rid of WebPageProxy::viewWidget() method
https://bugs.webkit.org/show_bug.cgi?id=112289
Reviewed by Alexey Proskuryakov.
Web page should not be aware of platform-specific view.
* UIProcess/API/efl/EwkView.cpp:
(wkPageToEvasObjectMap):
(EwkView::EwkView):
(EwkView::~EwkView):
(EwkView::toEvasObject):
EwkView::toEvasObject() relies on static map rather than on
removed WebPageProxy::viewWidget() method.
* UIProcess/API/efl/EwkView.h:
* UIProcess/API/efl/ewk_text_checker.cpp:
(uniqueSpellDocumentTag):
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate):
Now uses EwkView::toEvasObject().
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/efl/WebPageProxyEfl.cpp:
Removed WebPageProxy::viewWidget() method.
2013-03-14 Andreas Kling <akling@apple.com>
REGRESSION(r145169): [Mac][WK2] http/tests/security/cross-frame-access-put.html fails.
<http://webkit.org/b/111815>
<rdar://problem/13380145>
Reviewed by Anders Carlsson.
Call getWindowFrame() to see if the UI client wants to override the window frame before sending
a WindowAndViewFramesChanged message to the web process.
This fixes a glitch in WTR and the Web Inspector where incorrect window frames were being used.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::windowAndViewFramesChanged):
2013-03-14 Andy Estes <aestes@apple.com>
[WebKit2] Only preprocess sandbox profiles if we're building for the OS X SDK
https://bugs.webkit.org/show_bug.cgi?id=112330
Reviewed by David Kilzer.
We shouldn't preprocess sandbox profiles just because the computer
we're building on is a Mac. We should only do it if we're actually
building for the OS X SDK.
* DerivedSources.make: Check if $PLATFORM_NAME is macosx rather than if
$OS is MACOS.
2013-03-14 Sam Weinig <sam@webkit.org>
Support private browsing on a per-page basis
<rdar://problem/11969491>
Reviewed by Timothy Horton.
Adds WKPageSetOverridePrivateBrowsingEnabled and WKPageGetOverridePrivateBrowsingEnabled.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
(WebPageCreationParameters):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetOverridePrivateBrowsingEnabled):
(WKPageGetOverridePrivateBrowsingEnabled):
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setOverridePrivateBrowsingEnabled):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::overridePrivateBrowsingEnabled):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::setOverridePrivateBrowsingEnabled):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Pipe through.
2013-03-14 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* helper functions.
https://bugs.webkit.org/show_bug.cgi?id=112296
Reviewed by Kentaro Hara.
to* helper functions are preferred over static_cast calls since they
help to catch bad casts easily on the testing infrastructure.
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::elementBounds):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::containsAnyFormElements):
2013-03-14 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL][WK2] Add an API for adding and removing user style sheets from a page group
https://bugs.webkit.org/show_bug.cgi?id=110728
Reviewed by Gyuyoung Kim.
This patch implements EwkPageGroup API to provide the interface of WKPageGroup. Using the EwkPageGroup,
applications may create the views with a page group for the specific identifier. Also, this patch
encapsulates the APIs WKPageGroupAddUserStyleSheet and WKPageGroupRemoveAllUserStyleSheets behind
the EwkPageGroup class for adding and removing user style sheets from a page group. WKArrayCreateWithEinaList()
is added as a generic WKArray creation API from Eina_List.
* PlatformEfl.cmake:
* UIProcess/API/C/efl/WKView.cpp:
(createWKView):
* UIProcess/API/efl/EWebKit2.h:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::createEvasObject):
* UIProcess/API/efl/EwkView.h:
(EwkView::ewkPageGroup):
(EwkView):
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_smart_add):
(ewk_view_page_group_get):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
(EWK2UnitTest::EWK2UnitTestBase::SetUp):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
(EWK2UnitTest::EWK2UnitTestBase::setWebView):
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
2013-03-14 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Improve the handling of mock geolocation, device orientation and motion clients
Reviewed by Tor Arne Vestbø.
The mock versions of these web facing features should be instantiated when
running in DumpRenderTree only. In order for them to work, no extra Qt modules
such as QtLocation are actually needed.
This patch decouples enabling device orientation/motion and geolocation from
the underlying Qt modules and makes them available in developer builds
(!production_build) and backed by mock backends when running in drt.
So if the Qt 5 modules are available, they'll be used (unless drtRun). For
developers the web facing features are always enabled (although requests will
time out) and the mock backends are enabled inside DRT, allowing for the layout
tests to run with less dependencies.
In addition this also enables the mock device motion client, which was
previously never instantiated.
* Target.pri:
* UIProcess/qt/WebContextQt.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
* UIProcess/qt/WebGeolocationProviderQt.cpp:
* WebKit2.pri:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
2013-03-14 Alice Liu <alice.liu@apple.com>
Add to HistoryItem a way to know if its underlying CachedPage has expired.
https://bugs.webkit.org/show_bug.cgi?id=110652
Reviewed by Brady Eidson.
Hook up hasCachedPageExpired in InjectedBundle's BackForwardListItem.
* WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp:
(WKBundleBackForwardListItemHasCachedPageExpired):
* WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h:
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h:
(WebKit::InjectedBundleBackForwardListItem::hasCachedPageExpired):
2013-03-13 Rik Cabanier <cabanier@adobe.com>
create runtime flags for CSS Compositing
https://bugs.webkit.org/show_bug.cgi?id=111818
Reviewed by Ryosuke Niwa.
Added a preference to enable CSS compositing.
* Shared/WebPreferencesStore.h:
(WebKit):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setCSSCompositingEnabled):
(WebKit):
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2013-03-13 Ryosuke Niwa <rniwa@webkit.org>
Threaded HTML Parser is missing feature define flags in all but Chromium port's build files
https://bugs.webkit.org/show_bug.cgi?id=112277
Reviewed by Adam Barth.
* Configurations/FeatureDefines.xcconfig:
2013-03-13 Brady Eidson <beidson@apple.com>
Small ResourceLoader cleanups.
https://bugs.webkit.org/show_bug.cgi?id=112279
Reviewed by Geoff Garen.
Replace the "bool allAtOnce" flag with a descriptive enum to make reading code easier.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveData):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didReceiveResource):
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in: Get rid of the "allAtOnce" flag since it was always false.
2013-03-13 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* functions for document types.
https://bugs.webkit.org/show_bug.cgi?id=112225
Reviewed by Ryosuke Niwa.
* WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm: Remove the redundant helper.
2013-03-13 Zan Dobersek <zdobersek@igalia.com>
[GTK] Build fixes after 145552
https://bugs.webkit.org/show_bug.cgi?id=112267
Reviewed by Gustavo Noronha Silva.
* GNUmakefile.am: Narrow down the dependency CFLAGS list to only ones that are actually needed
to build the platformgtk_sources into libPlatformGtk2.la. At the moment this means only
GTK+-2.0 CFLAGS are used.
2013-03-13 Antoine Quint <graouts@apple.com>
Calling WebInspectorClient::highlight() during a fade-out animation of the PageOverlay won't stop its animation
https://bugs.webkit.org/show_bug.cgi?id=112271
Reviewed by Tim Horton.
Add a new stopFadeOutAnimation() on PageOverlay that we call when
WebInspectorClient::highlight() is called and a page overlay
is already available. This ensures that any fade-out animation
is cleared before proceeding with showing the page overlay
for the new highlight.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::highlight):
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::stopFadeOutAnimation):
(WebKit):
* WebProcess/WebPage/PageOverlay.h:
(PageOverlay):
2013-03-13 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: get rid of hiddenPanels filter
https://bugs.webkit.org/show_bug.cgi?id=112252
Reviewed by Vsevolod Vlasov.
* WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
* WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
(WebInspectorFrontendClient):
2013-03-13 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[WK2][Qt] Regression(145517) WebProcess asserts in debug build on WebKitTestRunner start
https://bugs.webkit.org/show_bug.cgi?id=112223
Reviewed by Simon Hausmann.
We need to only enable the cookie jar and the disk cache conditionally
in the web process since we removed default paths and WKTR doesn't provide
them.
* WebProcess/qt/WebProcessQt.cpp:
(WebKit::WebProcess::platformSetCacheModel):
(WebKit::WebProcess::platformInitializeWebProcess):
2013-03-12 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] ewk_popup_menu_close() does not work as intended
https://bugs.webkit.org/show_bug.cgi?id=110209
Reviewed by Laszlo Gombos.
ewk_popup_menu_close() is called by the browser to notify WebKit that
the popup menu was closed. However, the implementation was calling
EwkView::closePopupMenu() which was asking the browser to close the
popup menu via an Evas smart function. This patch fixes the behavior
and ewk_popup_menu_close() now calls WKPopupMenuListenerSetSelection()
C API so that the WebProcess is notified that the popup menu was
hidden.
* UIProcess/API/efl/ewk_popup_menu.cpp:
(EwkPopupMenu::close):
2013-03-12 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Remove CoordinatedGraphicsLayer::setRootLayer().
https://bugs.webkit.org/show_bug.cgi?id=111835
Reviewed by Luiz Agostini.
Amend CoordinatedLayerTreeHost because
CoordinatedGraphicsLayer::setRootLayer() is removed.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
2013-03-12 Dean Jackson <dino@apple.com>
Primary plugin hit detection needs to run after plugin creation
https://bugs.webkit.org/show_bug.cgi?id=112206
Reviewed by Tim Horton.
On some pages, the plugins are created after the page has loaded, and
thus our heuristic to determine the primary plugin fails. Run this
heuristic more often: after each PluginView is created. It already exits
early if it has found a primary. But we also need to make sure that it
doesn't run before load.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::addPluginView): Run detection when view is added.
(WebKit::WebPage::didFinishLoad): Remember that we have loaded.
(WebKit::WebPage::determinePrimarySnapshottedPlugIn): Look at the PluginViews to see if we have a plugin.
(WebKit::WebPage::resetPrimarySnapshottedPlugIn): Reset both flags.
* WebProcess/WebPage/WebPage.h:
(WebPage): New member variable, m_readyToFindPrimarySnapshottedPlugin.
2013-03-12 Beth Dakin <bdakin@apple.com>
WKView -printOperationWithPrintInfo:forFrame: doesn’t use the print info that is
passed in
https://bugs.webkit.org/show_bug.cgi?id=112212
-and corresponding-
<rdar://problem/12994883>
Reviewed by Anders Carlsson.
We should call [NSPrintOperation printOperationWithView: printInfo:] to use the
printInfo parameter instead of [NSPrintOperation printOperationWithView:] which
will just use the sharedPrintInfo.
* UIProcess/API/mac/WKView.mm:
(-[WKView printOperationWithPrintInfo:forFrame:]):
2013-03-12 Geoffrey Garen <ggaren@apple.com>
Moved RunLoopTimer and SchedulePair to WTF
https://bugs.webkit.org/show_bug.cgi?id=112171
Reviewed by Oliver Hunt.
This will allow us to use timers in lower level primitives without
duplicating all the code.
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
(WebFrameNetworkingContext):
2013-03-12 Zan Dobersek <zdobersek@igalia.com>
[GTK] Remove HILDON_CPPFLAGS and HILDON_CFLAGS references from GNUmakefiles
https://bugs.webkit.org/show_bug.cgi?id=112163
Reviewed by Martin Robinson.
* GNUmakefile.am: The Hildon dependency doesn't exist anymore so there's no need for
references to HILDON_CPPFLAGS and HILDON_CFLAGS.
2013-03-12 Zan Dobersek <zdobersek@igalia.com>
[GTK] Set up the libPlatformGtk.la library
https://bugs.webkit.org/show_bug.cgi?id=111738
Reviewed by Martin Robinson.
* GNUmakefile.am: Reference platformgtk_cppflags variable, libPlatformGtk.la along with webcoregtk_cppflags variable, libWebCoreGtk.la.
Adjust the path to GtkVersioning.c, the file has moved under Source/Platform.
2013-03-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Fix EwkContext class API
https://bugs.webkit.org/show_bug.cgi?id=111706
Reviewed by Alexey Proskuryakov.
* UIProcess/API/C/efl/WKView.cpp:
(createWKView):
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::findOrCreateWrapper):
Renamed from create() as it returns the same instance of EwkContext
for the given WKContextRef if present.
(EwkContext::create):
(EwkContext::defaultContext):
Returns raw pointer rather than PassRefPtr<EwkContext> as ownership
is not transferred.
(ewk_context_default_get):
* UIProcess/API/efl/ewk_context_private.h:
(EwkContext):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
2013-03-12 Zan Dobersek <zdobersek@igalia.com>
[GTK] Enable Web Audio in development builds
https://bugs.webkit.org/show_bug.cgi?id=111831
Reviewed by Philippe Normand.
* GNUmakefile.am: Link the plugin process against libWebCoreModules.la as well.
2013-03-11 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt][WK2] Layer QtDownloadManager on the C API
https://bugs.webkit.org/show_bug.cgi?id=109562
Reviewed by Simon Hausmann.
Signed off for WebKit2 by Benjamin Poulain.
* UIProcess/API/cpp/qt/WKURLQt.cpp:
(WebKit::adoptToQString):
(WebKit):
(WebKit::adoptToQUrl):
* UIProcess/API/cpp/qt/WKURLQt.h:
(WebKit):
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::handleDownloadRequest):
* UIProcess/qt/QtDownloadManager.cpp:
(WebKit::toQtDownloadManager):
(WebKit):
(WebKit::QtDownloadManager::QtDownloadManager):
(WebKit::QtDownloadManager::addDownload):
(WebKit::QtDownloadManager::didReceiveResponse):
(WebKit::QtDownloadManager::didCreateDestination):
(WebKit::QtDownloadManager::didFinishDownload):
(WebKit::QtDownloadManager::didFailDownload):
(WebKit::QtDownloadManager::didReceiveDataForDownload):
* UIProcess/qt/QtDownloadManager.h:
(WebKit):
(QtDownloadManager):
* UIProcess/qt/QtWebContext.cpp:
(WebKit::QtWebContext::QtWebContext):
* UIProcess/qt/QtWebError.cpp:
(WebKit::QtWebError::url):
(WebKit::QtWebError::description):
2013-03-11 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt][WK2] Layer QtWebIconDatabaseClient on the C API
https://bugs.webkit.org/show_bug.cgi?id=109564
Reviewed by Simon Hausmann.
Signed off for WebKit2 by Benjamin Poulain.
* Target.pri:
* UIProcess/API/C/qt/WKIconDatabaseQt.cpp: Added.
(WKIconDatabaseTryGetQImageForURL):
- New API added to get a QImage from the IconDatabase.
Based on WKIconDatabaseCG.h/cpp
* UIProcess/API/C/qt/WKIconDatabaseQt.h: Added.
* UIProcess/API/cpp/qt/WKURLQt.cpp:
(WKURLCreateWithQString):
(WKURLCopyQString):
(WKURLCreateWithQUrl):
(WKURLCopyQUrl):
- The WKUrlRef behind the scene is a WTF::String and encoding it back and forth to
a QUrl can slightly change its string representation. Allow converting a WKUrlRef
to and from a QString to ensure this.
* UIProcess/API/cpp/qt/WKURLQt.h:
* UIProcess/API/qt/qwebiconimageprovider.cpp:
(QWebIconImageProvider::iconURLForPageURLInContext):
- The icon URL isn't accessible form the C API and shouldn't need to be.
Use an ID incremented on each update to trigger an update of the QML Image component.
(QWebIconImageProvider::requestImage):
- The IconDatabase was previously assumed to resize the image to the requested size,
but this parameter is ignored, as stated in a comment in WebIconDatabase::imageForPageURL.
Explicitely do the resize after fetching the original icon to also be able to report
the original size properly to QtQuick.
* UIProcess/API/qt/qwebiconimageprovider_p.h:
* UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml:
- Set the image to load asynchronously to further test the possibility of threading issues
in QtWebIconDatabaseClient::iconImageForPageURL
- Add a few barriers to fix some issues where the load succeeded signal would be wrongly
catched by init() before the next test.
* UIProcess/qt/QtWebContext.cpp:
(WebKit::QtWebContext::QtWebContext):
* UIProcess/qt/QtWebIconDatabaseClient.cpp:
(WebKit):
(WebKit::QtWebIconDatabaseClient::QtWebIconDatabaseClient):
(WebKit::QtWebIconDatabaseClient::~QtWebIconDatabaseClient):
(WebKit::QtWebIconDatabaseClient::updateID):
(WebKit::QtWebIconDatabaseClient::didChangeIconForPageURL):
(WebKit::QtWebIconDatabaseClient::iconImageForPageURL):
- Remove the Mutex. This mutex was useless given that it would only
be locked from a single thread. Since the IconDatabase runs in its own thread,
it already is thread-safe to access.
(WebKit::QtWebIconDatabaseClient::retainIconForPageURL):
(WebKit::QtWebIconDatabaseClient::releaseIconForPageURL):
* UIProcess/qt/QtWebIconDatabaseClient.h:
(QtWebIconDatabaseClient):
* WebKit2.pri:
2013-03-11 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt][WK2] Specify storage paths through the C API
https://bugs.webkit.org/show_bug.cgi?id=111435
Reviewed by Simon Hausmann.
Signed off for WebKit2 by Benjamin Poulain.
The WKIconDatabase should be opened through a call to
WKContextSetIconDatabasePath. To avoid having some paths
returned through WebContext::platformDefault* and some others
through the C API, make sure that all those paths are set
through the C API.
* Shared/qt/QtDefaultDataLocation.cpp: Removed.
* Shared/qt/QtDefaultDataLocation.h: Removed.
* Target.pri:
* UIProcess/Plugins/qt/PluginProcessProxyQt.cpp:
(WebKit::cacheFile):
- This part is left alone behind the C API.
Since PluginProcessProxy have no knowledge of the WebContext
it is rather difficult to fetch a configured directory that
could be used for this purpose (like the disk cache storage).
Hard-code a compatible logic to keep the current behavior.
(WebKit::removeCacheFile):
(WebKit):
(WebKit::readMetaDataFromCacheFile):
(WebKit::writeToCacheFile):
(WebKit::tryReadPluginMetaDataFromCacheFile):
- Update the code to better handle an empty cache file path.
* UIProcess/qt/QtWebContext.cpp:
(WebKit::QtWebContext::defaultContext):
(WebKit::defaultLocation):
(WebKit):
(WebKit::QtWebContext::preparedStoragePath):
* UIProcess/qt/QtWebContext.h:
* UIProcess/qt/QtWebIconDatabaseClient.cpp:
(WebKit::QtWebIconDatabaseClient::QtWebIconDatabaseClient):
* UIProcess/qt/WebContextQt.cpp:
(WebKit::WebContext::applicationCacheDirectory):
(WebKit::WebContext::platformDefaultDatabaseDirectory):
(WebKit::WebContext::platformDefaultIconDatabasePath):
(WebKit::WebContext::platformDefaultLocalStorageDirectory):
(WebKit::WebContext::platformDefaultDiskCacheDirectory):
(WebKit::WebContext::platformDefaultCookieStorageDirectory):
2013-02-14 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] Properly layer QtWebContext on top of the C API
https://bugs.webkit.org/show_bug.cgi?id=108475
Reviewed by Simon Hausmann.
Signed off for WebKit2 by Benjamin Poulain.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
* UIProcess/qt/QtWebContext.cpp:
(WebKit::initializeContextInjectedBundleClient):
(WebKit::QtWebContext::QtWebContext):
(WebKit::QtWebContext::create):
(WebKit::QtWebContext::defaultContext):
* UIProcess/qt/QtWebContext.h:
(WebKit):
(QtWebContext):
(WebKit::QtWebContext::context):
2013-02-14 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt][WK2] Allow QtWebContext to call directly to QQuickWebView with a WKPageRef
https://bugs.webkit.org/show_bug.cgi?id=109829
Reviewed by Allan Sandfeld Jensen.
Signed off for WebKit2 by Benjamin Poulain.
Instead of going through WebPageProxy and PageClient to forward
injected bundle messages received by the context, maintain a static map
of WKPageRef to QQuickWebViewPrivate.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::get):
(QQuickWebViewPrivate::~QQuickWebViewPrivate):
(QQuickWebViewPrivate::initialize):
(QQuickWebViewPrivate::didReceiveMessageFromNavigatorQtObject):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
* UIProcess/API/qt/raw/qrawwebview.cpp:
* UIProcess/API/qt/raw/qrawwebview_p_p.h:
* UIProcess/PageClient.h:
(PageClient):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/qt/QtPageClient.cpp:
* UIProcess/qt/QtPageClient.h:
(QtPageClient):
* UIProcess/qt/QtWebContext.cpp:
(WebKit::didReceiveMessageFromInjectedBundle):
* UIProcess/qt/WebPageProxyQt.cpp:
2013-02-14 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt][WK2] Keep the WebContext alive during the whole application's lifetime
https://bugs.webkit.org/show_bug.cgi?id=109827
Reviewed by Simon Hausmann.
Signed off for WebKit2 by Benjamin Poulain.
The lifetime of the WebContext is difficult to manage because of a circular
reference kept with the WebProcessProxy until it shuts itself down, 60
seconds after the last page is closed. There was some notification
in place to handle this in the upper layer, but having to go through the
C API (done in a following patch) makes this quite awkward.
Keeping the WebContext alive also includes the icon database which is
quite heavy, in the future we should only enable it once the
QQuickWebView::icon property is read.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::QQuickWebViewPrivate):
(QQuickWebViewPrivate::handleDownloadRequest):
(QQuickWebViewPrivate::updateIcon):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
* UIProcess/API/qt/qwebiconimageprovider.cpp:
(QWebIconImageProvider::requestImage):
* UIProcess/qt/QtWebContext.cpp:
(WebKit):
(WebKit::QtWebContext::QtWebContext):
(WebKit::QtWebContext::~QtWebContext):
(WebKit::QtWebContext::create):
(WebKit::QtWebContext::defaultContext):
* UIProcess/qt/QtWebContext.h:
(QtWebContext):
(WebKit::QtWebContext::downloadManager):
(WebKit::QtWebContext::iconDatabase):
* UIProcess/qt/WebContextQt.cpp:
(WebKit::WebContext::platformInvalidateContext):
2013-02-14 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt][WK2] Favor QUrl and QString over WTF::String in the Qt API layer
https://bugs.webkit.org/show_bug.cgi?id=109468
Reviewed by Allan Sandfeld Jensen.
Signed off for WebKit2 by Benjamin Poulain.
In preparation for patches using the C API types in some areas, remove the
usage of WTF::String on the affected line.
Use a QUrl for icon URL to avoid unnecessary conversion.
Use a QString for the page URL to keep it compatible with WebPageProxy and
WebIconDatabase and avoid QUrl parsing.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::_q_onIconChangedForPageURL):
(QQuickWebViewPrivate::updateIcon):
(QQuickWebView::emitUrlChangeIfNeeded):
(QQuickWebView::icon):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
* UIProcess/API/qt/qwebiconimageprovider.cpp:
(QWebIconImageProvider::iconURLForPageURLInContext):
* UIProcess/API/qt/qwebiconimageprovider_p.h:
* UIProcess/qt/QtWebIconDatabaseClient.cpp:
(WebKit::QtWebIconDatabaseClient::iconForPageURL):
(WebKit::QtWebIconDatabaseClient::iconImageForPageURL):
(WebKit::QtWebIconDatabaseClient::retainIconForPageURL):
(WebKit::QtWebIconDatabaseClient::releaseIconForPageURL):
* UIProcess/qt/QtWebIconDatabaseClient.h:
(QtWebIconDatabaseClient):
2013-03-12 Manuel Rego Casasnovas <rego@igalia.com>
[GTK][WK2] REGRESSION(r145081): Unit tests not working if locale is not English
https://bugs.webkit.org/show_bug.cgi?id=111973
Reviewed by Carlos Garcia Campos.
The problem is that the UIProcess locale is reseted to C in
gtk_test_init, however the WebProcess does not inherit the locale set in
the UIProcess and it uses the system one (that could be different to
English). So, there were problems in some tests that are comparing
strings from both processes like WebKit2APITests/TestPrinting and
WebKit2APITests/TestWebKitWebContext. The solution is to set the locale
environment variable LC_ALL to C in order to reset WebProcess locale
too.
* UIProcess/API/gtk/tests/TestMain.cpp:
(main): Set environment variable LC_ALL to C.
2013-03-11 Brady Eidson <beidson@apple.com>
Loads are never canceled in the NetworkProcess
<rdar://problem/12890500> and https://bugs.webkit.org/show_bug.cgi?id=112103
Reviewed by Alexey Proskuryakov.
If a connection to a WebProcess is closed (gracefully or by crashing) then:
- All scheduled loads for that connection should be forgotten.
- All in-progress loads for that connection should be aborted asap.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::requestsToCleanupMutex): The "request to stop" mechanism is now called "request to cleanup"
(WebKit::requestsToCleanup):
(WebKit::NetworkResourceLoader::scheduleCleanupOnMainThread):
(WebKit::NetworkResourceLoader::performCleanups):
(WebKit::NetworkResourceLoader::cleanup):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFail):
(WebKit::NetworkResourceLoader::connectionToWebProcessDidClose): If there is a resource handle, let
the loading thread notice the connection is invalid. Otherwise request to cleanup the loader.
(WebKit::NetworkResourceLoader::sendAbortingOnFailure):
(WebKit::NetworkResourceLoader::sendSyncAbortingOnFailure):
(WebKit::NetworkResourceLoader::abortInProgressLoad): Cancel the resource handle and schedule main thread cleanup.
(WebKit::NetworkResourceLoader::didReceiveResponse): Use sendAbortingOnFailure instead of send.
(WebKit::NetworkResourceLoader::didReceiveData): Ditto.
(WebKit::NetworkResourceLoader::willSendRequest): Call abortInProgressLoad if the sync message failed.
(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpace): Ditto.
* NetworkProcess/NetworkResourceLoader.h:
Make connectionToWebProcessDidClose() pure virtual, moving its implementation to the subclasses:
* NetworkProcess/SchedulableLoader.cpp:
* NetworkProcess/SchedulableLoader.h:
* NetworkProcess/SyncNetworkResourceLoader.cpp:
(WebKit::SyncNetworkResourceLoader::start): Call cleanup().
(WebKit::SyncNetworkResourceLoader::connectionToWebProcessDidClose): Call cleanup().
(WebKit::SyncNetworkResourceLoader::cleanup): Factor out the sync loader cleanup code.
* NetworkProcess/SyncNetworkResourceLoader.h:
2013-03-11 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Return PDFKit's data instead of the original resource data for save/etc.
https://bugs.webkit.org/show_bug.cgi?id=111956
<rdar://problem/13352282>
Reviewed by Alexey Proskuryakov.
If we return the original resource data, we lose changes made to annotations.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::pdfDocumentDidLoad): Adopt the renamed rawData().
(WebKit::PDFPlugin::saveToPDF): Use liveData so that "Save to PDF" persists changes to annotations.
(WebKit::PDFPlugin::openWithNativeApplication): Use liveData so that "Open With [native application]" persists changes to annotations.
* WebProcess/Plugins/PDF/PDFPluginAnnotation.h:
* WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::commit): Added, inform PDFPlugin that we're mutating the document.
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::commit): Let PDFPluginAnnotation do what it needs to inform PDFPlugin that we're going to mutate the document.
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::commit): Let PDFPluginAnnotation do what it needs to inform PDFPlugin that we're going to mutate the document.
* WebProcess/Plugins/PDF/SimplePDFPlugin.h:
(WebKit::SimplePDFPlugin::didMutatePDFDocument): Added.
(WebKit::SimplePDFPlugin::liveData): Added.
(WebKit::SimplePDFPlugin::rawData): Renamed from data(). Return NSData for consistency.
(WebKit::SimplePDFPlugin::pdfDocumentWasMutated): Added.
* WebProcess/Plugins/PDF/SimplePDFPlugin.mm:
(WebKit::SimplePDFPlugin::liveData): Return PDFKit's data if the user has mutated the
document, otherwise the raw data. This way, PDFs that PDFKit can't process will still
be downloadable as long as the user doesn't interact with annotations.
(WebKit::SimplePDFPlugin::liveResourceData): Return a SharedData wrapping the PDFDocument's data.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/PDF/SimplePDFPlugin.h:
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getMainResourceDataOfFrame):
Use a SharedData instead of raw data for getResourceData, and rename it liveResourceData().
2013-03-11 Tim Horton <timothy_horton@apple.com>
[wk2] WebProcess and WebContentService don't respect system localization
https://bugs.webkit.org/show_bug.cgi?id=112091
<rdar://problem/13233590>
Reviewed by Dan Bernstein.
Allow CFBundle to use localizations that don't exist in the main bundle,
so that, for example, injected bundles can load and use strings from localized frameworks.
* WebProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
2013-03-11 Jochen Eisinger <jochen@chromium.org>
Rename DefinitelyProcessingUserGesture to DefinitelyProcessingNewUserGesture
https://bugs.webkit.org/show_bug.cgi?id=111959
Reviewed by Alexey Proskuryakov.
* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::didClickNotification):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::evaluate):
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::searchWithGoogle):
2013-03-11 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Make scrolling between pages in non-continuous modes work
https://bugs.webkit.org/show_bug.cgi?id=111415
<rdar://problem/12555320>
Reviewed by Alexey Proskuryakov.
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h:
Add some more PDFLayerController SPI.
* WebProcess/Plugins/PDF/PDFPlugin.h:
(PDFPlugin): Override handleWheelEvent.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::handleWheelEvent):
If PDFLayerController is in non-continuous mode, allow scrolling between
pages by intercepting scroll events, and checking whether we're at the
top or bottom of a page. If we are, and a single event exceeds the threshold
of 20px (0px for legacy scroll wheels), we jump to the next or previous
page and scroll to the right place. Do not allow momentum scrolling to
switch pages.
2013-03-11 Mark Lam <mark.lam@apple.com>
Fix some WebDatabaseManagerProxy methods to only send to one WebProcsess
instead of broadcasting to all WebProcesses.
https://bugs.webkit.org/show_bug.cgi?id=112074.
Reviewed by Alexey Proskuryakov.
The reason for this is because the intent of these messages is to act on
the tracker database that is shared between all WebProcesses. It is
redundant and inefficient for multiple WebProcesses to service the same
request/message. And because of multi-process contention on accessing
the tracker database, the results returned to the UIProcess may also be
erroneous.
For example, if getDatabaseOrigins() is broadcasted to all WebProcesses,
they will contend to open the tracker database at the same time. If one
of these processes fails because the database is already in use, then
it may return with an empty list when it should not be empty.
With this fix, only one WebProcess gets the message and will perform the
requested query/action on behalf of all WebProcesses.
* UIProcess/WebContext.h:
(WebKit::WebContext::sendToOneProcess):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
(WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
(WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
(WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
(WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
(WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
2013-03-11 Jeffrey Pfau <jpfau@apple.com>
List cache partitions as units instead of as their contents
https://bugs.webkit.org/show_bug.cgi?id=111909
Reviewed by Maciej Stachowiak.
* WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp:
(WebKit::WebResourceCacheManager::cfURLCacheHostNames): Attempt to enumerate cache partitions based on information we have
2013-01-30 Jer Noble <jer.noble@apple.com>
Full screen mode should not exit when application resigns active state.
https://bugs.webkit.org/show_bug.cgi?id=106129
Reviewed by Darin Adler.
Allow the user to close the full screen window with Cmd-w by making the full screen window
closable, and by intercepting performClose:.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController init]): Create a closable full screen window.
(-[WKFullScreenWindowController performClose:]): When we receive a close request in full screen mode,
animate out of full screen.
2013-03-11 Zan Dobersek <zdobersek@igalia.com>
[GTK] WebKit2-only build fails
https://bugs.webkit.org/show_bug.cgi?id=112033
Reviewed by Gustavo Noronha Silva.
* GNUmakefile.am: Introduce the artifical dependency of libwebkit2gtk on libwebkitgtk only
if building WebKit1 as well. Similarly with the WebKitPluginProcess, depend on libwebkitgtk
only if building WebKit1, the dependency is otherwise not necessary.
2013-03-11 Tim Horton <timothy_horton@apple.com>
[wk2] Search With [your search provider here] should use NSPerformService in WebKit2/Mac
https://bugs.webkit.org/show_bug.cgi?id=111995
<rdar://problem/12975669>
Reviewed by Sam Weinig.
* UIProcess/WebPageProxy.h:
(WebPageProxy): Add searchTheWeb().
* UIProcess/WebPageProxy.messages.in: Add SearchTheWeb message.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::searchTheWeb): Added. Call out to NSPerformService to search with the system default
search provider, in the browser.
* WebProcess/Plugins/PDF/PDFPlugin.h:
(PDFPlugin): Add performWebSearch().
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFLayerControllerDelegate performWebSearch:]): Added, forward the delegate callback to PDFPlugin.
(WebKit::PDFPlugin::performWebSearch): Added, forward the search string to WebPageProxy.
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::searchWithGoogle): Don't build the old load-Google-in-the-main-frame code on Mac.
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::searchWithGoogle): Instead, send the search string to WebPageProxy.
2013-03-11 Helder Correia <helder.correia@nokia.com>
[WK2] Add C API preference: accelerated compositing for overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=111916
Reviewed by Simon Fraser.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAcceleratedCompositingForOverflowScrollEnabled):
(WKPreferencesGetAcceleratedCompositingForOverflowScrollEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
2013-03-11 Brady Eidson <beidson@apple.com>
CoreIPC crash in NetworkProcess after WebProcess crash.
<rdar://problem/13124146> and https://bugs.webkit.org/show_bug.cgi?id=112046
Reviewed by Alexey Proskuryakov.
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::connectionToWebProcessDidClose): Don't null out the connection backpointer on crash.
2013-03-11 Alexey Proskuryakov <ap@apple.com>
Make it possible to reuse sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=111883
Reviewed by Anders Carlsson.
This allows for properly keeping extensions in NetworkBlobRegistry for as long as
they are needed.
The patch also fixes a bug where extensions would leak when navigating between
file:// pages.
* NetworkProcess/SchedulableLoader.cpp:
Revoke the extensions, but don't invalidate - we may need them later.
* Shared/Downloads/Download.cpp:
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
Replaced invalidate() with revoke() and clearing out. SandboxExtension destructor
now requires revocations wto be balanced, as otherwise understanding dual reference
counting in SandboxExtension would be too difficult.
* Shared/SandboxExtension.h: We now keep track of how many times the extension
was consumed. Eventually, we should refactor the class to not have such duplicate
reference counting.
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::SandboxExtension): Initialize use count.
(WebKit::SandboxExtension::~SandboxExtension): We now require consume/revoke calls
to be balanced. This is not hard to do in existing usage, and makes the design much
more reliable.
(WebKit::SandboxExtension::revoke): Don't permanently destroy the extension when
invalidatid, we may need it in the future.
(WebKit::SandboxExtension::consume): Added use counting.
* Shared/WebMemorySampler.cpp: (WebKit::WebMemorySampler::stop): This extension
is not going to be reused.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction): Pending extensions are not consumed,
so there is no need to revoke.
(WebKit::WebPage::SandboxExtensionTracker::invalidate): Pending extension is not
consumed, and the other two always are.
(WebKit::WebPage::SandboxExtensionTracker::setPendingProvisionalSandboxExtension):
Pending extension is never consumed in place, no need to revoke.
(WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad): Do not unset
reused committed extension yet - we may need it later if provisional load fails.
Thanks to use counting, we can now consume the same extension as both committed
and provisional.
(WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad): Now the
committed extension can be revoked and replaced.
(WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad): Just revoke
provisional extension, committed one is still in place.
2013-03-11 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[EFL] Build fix after r143192 when SPELLCHECK is off
Unreviewed build fix when SPELLCHECK macro is off.
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit):
2013-03-10 Tim Horton <timothy_horton@apple.com>
WebPage::scaledSnapshotWithOptions returns a corrupt snapshot if you request a rect larger than the FrameView’s size
https://bugs.webkit.org/show_bug.cgi?id=111820
<rdar://problem/13375785>
Reviewed by Simon Fraser.
We have to clear the image - there could be area that won’t be painted by the FrameView,
or the FrameView could have a transparent background.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scaledSnapshotWithOptions):
2013-03-10 Tim Horton <timothy_horton@apple.com>
Fix a typo in http://trac.webkit.org/changeset/145332.
Unreviewed.
ENABLE() doesn't use the WTF_ prefix.
* WebProcess/WebPage/WebPage.h:
2013-03-10 Sam Weinig <sam@webkit.org>
Add bundle API to get the current selection as a WKDOMRange
https://bugs.webkit.org/show_bug.cgi?id=111947
<rdar://problem/13205460>
Reviewed by Gavin Barraclough.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController selectedRange]):
Add new selectedRange property.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::frameWithSelection):
(WebKit::WebPage::currentSelectionAsRange):
* WebProcess/WebPage/WebPage.h:
Get the range by finding the frame that has a selection, and then normalizing it.
2013-03-10 Tim Horton <timothy_horton@apple.com>
Add a heuristic to determine the “primary” snapshotted plugin
https://bugs.webkit.org/show_bug.cgi?id=111932
<rdar://problem/13270208>
Reviewed by Dean Jackson.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
Forward didCommitLoad to WebPage. Move existing code that manipulated WebPage
itself during didCommitLoad into WebPage, where it belongs.
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad): Forward didFinishLoad to WebPage.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize m_didFindPrimarySnapshottedPlugin to false.
(WebKit::WebPage::didCommitLoad): Move code from WebPageFrameLoaderClient.
Reset the flag that says we've already found a snapshotted plugin.
(WebKit::WebPage::didFinishLoad):
Call determinePrimarySnapshottedPlugIn when any frame finishes loading. We call this for subframes,
not just the main frame, in case the main frame loads with no "primary" plugins, but a subframe later loads with one.
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
Attempt to find the primary snapshotted plugin on the page, by hit-testing a grid of points spaced 200px apart.
A plugin is considered if it is snapshotted and > 450x300. We scan vertically and left-to-right, only discarding
a previous candidate if another candidate is at least 110% the size of the previous candidate.
This tends to select plugins near the top left of the page, unless there is a significantly larger plugin elsewhere.
(WebKit::WebPage::resetPrimarySnapshottedPlugIn):
* WebProcess/WebPage/WebPage.h:
(WebPage):
2013-03-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145039 and r145096.
http://trac.webkit.org/changeset/145039
http://trac.webkit.org/changeset/145096
https://bugs.webkit.org/show_bug.cgi?id=111945
broke find indicator updates with scrolling subframes
(Requested by thorton on #webkit).
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scroll):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
2013-03-10 Andreas Kling <akling@apple.com>
WebPluginSiteDataManager should use OwnPtr.
<http://webkit.org/b/111940>
Reviewed by Anders Carlsson.
* UIProcess/Plugins/WebPluginSiteDataManager.cpp:
(WebKit::WebPluginSiteDataManager::invalidate):
(WebKit::WebPluginSiteDataManager::getSitesWithData):
(WebKit::WebPluginSiteDataManager::clearSiteData):
(WebKit::WebPluginSiteDataManager::didGetSitesWithDataForAllPlugins):
(WebKit::WebPluginSiteDataManager::didClearSiteDataForAllPlugins):
* UIProcess/Plugins/WebPluginSiteDataManager.h:
(WebPluginSiteDataManager):
2013-03-09 Manuel Rego Casasnovas <rego@igalia.com>
[GTK][WK2] Fix compilation warning missing-field-initializers in webkit-2.0 stable branch
https://bugs.webkit.org/show_bug.cgi?id=111863
Reviewed by Benjamin Poulain.
* UIProcess/API/gtk/WebKitUIClient.cpp:
(attachUIClientToView): Include missing initializer for pluginLoadPolicy.
2013-03-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145254, r145264, and r145288.
http://trac.webkit.org/changeset/145254
http://trac.webkit.org/changeset/145264
http://trac.webkit.org/changeset/145288
https://bugs.webkit.org/show_bug.cgi?id=111917
Test breakage hints at conceptual unsoundness (Requested by ap
on #webkit).
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::invalidateSandboxExtensions):
* Shared/Downloads/Download.cpp:
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
* Shared/SandboxExtension.h:
(SandboxExtension):
(WebKit::SandboxExtension::invalidate):
* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::stop):
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::SandboxExtension):
(WebKit::SandboxExtension::invalidate):
(WebKit::SandboxExtension::consume):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction):
(WebKit::WebPage::SandboxExtensionTracker::invalidate):
(WebKit::WebPage::SandboxExtensionTracker::setPendingProvisionalSandboxExtension):
(WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad):
(WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad):
2013-03-08 Dean Jackson <dino@apple.com>
Don't snapshot Java plugins
https://bugs.webkit.org/show_bug.cgi?id=111899
Reviewed by Tim Horton.
If the plugin is Java, return true from shouldAlwaysAutoStart.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::shouldAlwaysAutoStart): Check the mimetype for Java.
2013-03-08 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13338743> Fix sandbox profile preprocessor flags for compatibility with new clang.
Reviewed by Alexey Proskuryakov.
Patch by Bob Wilson.
* DerivedSources.make: Only use -traditional when we have to work around old
behavior of -std=c89.
2013-03-08 Joone Hur <joone.hur@intel.com>
Unreviewed build fix for EFL, GTK and Qt after r145254.
* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::revoke):
2013-03-08 Ryosuke Niwa <rniwa@webkit.org>
non-Mac ports build fix after r145235.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::createInspectorPageGroup):
2013-03-08 Benjamin Poulain <benjamin@webkit.org>
[Mac] Add a feature flag for 'view-mode' Media Feature, disable it on Mac
https://bugs.webkit.org/show_bug.cgi?id=111297
Reviewed by Kenneth Rohde Christiansen.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
2013-03-08 Alexey Proskuryakov <ap@apple.com>
Make it possible to reuse sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=111883
Reviewed by Anders Carlsson.
Replaced invalidate() with revoke().
We now count how many times consume() was called, and keep the extension active
for as long as revoke() hasn't been called as many times. Also, we only permanently
destroy the extension in destructor.
This allows for properly keeping extensions in NetworkBlobRegistry for as long as
they are needed.
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::invalidateSandboxExtensions):
* Shared/Downloads/Download.cpp:
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
* Shared/SandboxExtension.h:
(SandboxExtension):
* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::stop):
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::SandboxExtension):
(WebKit::SandboxExtension::revoke):
(WebKit::SandboxExtension::consume):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction):
(WebKit::WebPage::SandboxExtensionTracker::invalidate):
(WebKit::WebPage::SandboxExtensionTracker::setPendingProvisionalSandboxExtension):
(WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad):
(WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad):
2013-03-08 Carlos Garcia Campos <cgarcia@igalia.com>
[WK2][GTK] Invalid request returned by webkit_download_get_request if called before download starts
https://bugs.webkit.org/show_bug.cgi?id=111574
Reviewed by Alexey Proskuryakov.
webkit_download_get_request() creates the WebKitURIRequest object
on demand using the ResourceRequest from the DownloadProxy. The
ResourceRequest of the DownloadProxy is set in
DownloadProxy::didStart(), so if we call
webkit_download_get_request() before didStart we return an invalid
WebKitURIRequest created from a NULL ResourceRequest. This is not
a problem for downloads started in the web process, because we
create the WebKitDownload after DownloadProxy::didStart(). For
downloads started manually with webkit_web_context_download_uri()
we need to create download object with the ResourceRequest passed
to the DownloadProxy.
* UIProcess/API/gtk/WebKitDownload.cpp:
(webkitDownloadCreateForRequest): New helper function for
downloads started manually to created them with a given
ResourceRequest.
* UIProcess/API/gtk/WebKitDownloadPrivate.h:
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextStartDownload): Use
webkitDownloadCreateForRequest().
* UIProcess/API/gtk/tests/TestDownloads.cpp:
(testDownloadLocalFile):
(testDownloadLocalFileError):
(testDownloadRemoteFile):
(testDownloadRemoteFileError):
(testPolicyResponseDownload):
2013-03-07 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13363499> Blobs are not cleaned up when WebProcess terminates
https://bugs.webkit.org/show_bug.cgi?id=111803
Reviewed by Brady Eidson.
Track which blobs were created for each connection, and unregister them when
the connection closes.
Normally, this happens when a document is destroyed through PublicURLManager
in WebProcess. But we don't get there when the web process crashes, or is terminated
without waiting for document destruction.
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerBlobURL):
(WebKit::NetworkBlobRegistry::unregisterBlobURL):
(WebKit::NetworkBlobRegistry::connectionToWebProcessDidClose):
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::registerBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
(WebKit::NetworkConnectionToWebProcess::unregisterBlobURL):
2013-03-08 Timothy Hatcher <timothy@apple.com>
Make the WebKit2 Web Inspector use tiled drawing and accelerated drawing.
<rdar://problem/12676223>
Reviewed by David Kilzer.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::createInspectorPageGroup): Call setAcceleratedDrawingEnabled with true on 10.8+.
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorWKView _shouldUseTiledDrawingArea]): Added. Return YES on 10.8+.
2013-03-08 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Handle scrolling correctly.
https://bugs.webkit.org/show_bug.cgi?id=111406
Reviewed by Simon Fraser.
Coordinated Graphics deals with fast scrolling and slow scrolling in the same
routine, so WebChromeClient::invalidateContentsForSlowScroll() should call
DrawingArea:scroll().
When CoordinatedLayerTreeHost::scrollNonCompositedContents() is called, we
should call scheduleLayerFlush() to notify to UI Process. In addition, when we
don't use fixed layout, we should call setNonCompositedContentsNeedDisplay() to
update non composited contents.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::invalidateContentsForSlowScroll):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::scrollNonCompositedContents):
2013-03-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Remove EwkView::setImageData()
https://bugs.webkit.org/show_bug.cgi?id=111849
Reviewed by Andreas Kling.
EwkView::setImageData() removed as it is not used at the moment
(it used to be part of eliminated non coord graphics code path).
* UIProcess/API/efl/EwkView.cpp:
* UIProcess/API/efl/EwkView.h:
(EwkView):
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate):
2013-03-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Memory leak in webkit_web_view_load_request() in WebKit2 API
https://bugs.webkit.org/show_bug.cgi?id=111160
Reviewed by Benjamin Poulain.
leakRef() is used for the returned PassRefPtr without taking the
ownership of the leaked ref.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_load_request): Use RefPtr local variable.
2013-03-07 Huang Dongsung <luxtella@company100.net>
[EFL] EwkView should keep css position instead of scroll position in device pixel.
https://bugs.webkit.org/show_bug.cgi?id=110847
Reviewed by Kenneth Rohde Christiansen.
Signed off for WebKit2 by Benjamin Poulain.
There are bugs that some code expect that EwkView::pagePosition() returns css
position while others expect that it returns scroll position in device pixel.
In addition, some code call EwkView::setPagePosition() with css position while
others call it with scroll position in device pixel.
This patch makes all code use setPagePosition() and pagePosition() with
UI pixels (a.k.a Density Independent Pixel).
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::setViewportPosition):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::paintToCairoSurface):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::transformToScene):
(WebKit::WebView::pageDidRequestScroll):
2013-03-07 Alexey Proskuryakov <ap@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=111801
https://bugs.webkit.org/show_bug.cgi?id=111801
Reviewed by Geoff Garen.
Move unnecessary includes out of headers.
* NetworkProcess/HostRecord.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
* NetworkProcess/NetworkProcess.cpp:
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
* NetworkProcess/NetworkResourceLoadScheduler.h:
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/SchedulableLoader.cpp:
* NetworkProcess/SchedulableLoader.h:
* NetworkProcess/SyncNetworkResourceLoader.cpp:
2013-03-07 Andreas Kling <akling@apple.com>
Resizing Cappuccino is very laggy on WebKit since Safari 5.1
<http://webkit.org/b/71354>
<rdar://problem/10565998>
Reviewed by Anders Carlsson.
On Mac, we already cache the window rect through the WindowAndViewFramesChanged
message, so simply return that in WebChromeClient::windowRect() instead of
sending a synchronous query to the UIProcess.
If a programmatic resize is requested, we bypass the cache until we've received
a new WindowAndViewFramesChanged message. This compromise allows us to return
cached rects in the common case, and handles creating a new window and immediately
resizing it gracefully.
Changed WindowAndViewFramesChanged to pass FloatRect/FloatPoint rather than
IntRect/IntPoint to match the ChromeClient::windowRect() return type.
* UIProcess/API/mac/WKView.mm:
(-[WKView _updateWindowAndViewFrames]):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::windowAndViewFramesChanged):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::windowAndViewFramesChanged):
* WebProcess/Plugins/PluginView.h:
(PluginView):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::setWindowRect):
(WebKit::WebChromeClient::windowRect):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::sendSetWindowFrame):
(WebKit::WebPage::windowAndViewFramesChanged):
* WebProcess/WebPage/WebPage.h:
(WebPage):
(WebKit::WebPage::windowFrameInScreenCoordinates):
(WebKit::WebPage::viewFrameInWindowCoordinates):
(WebKit::WebPage::hasCachedWindowFrame):
(WebKit::WebPage::accessibilityPosition):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
2013-03-07 Alexey Proskuryakov <ap@apple.com>
Don't try to create a sandbox extension when path is empty
https://bugs.webkit.org/show_bug.cgi?id=111788
Reviewed by Anders Carlsson.
* Shared/FileAPI/BlobRegistrationData.cpp:
(WebKit::BlobRegistrationData::BlobRegistrationData): Skip File objects with empty
paths to avoid logging an error to console.
2013-03-07 Mark Lam <mark.lam@apple.com>
WebPageProxy::exceededDatabaseQuota() needs to be serialized.
https://bugs.webkit.org/show_bug.cgi?id=111631.
Reviewed by Geoffrey Garen.
Previously, WebPageProxy::exceededDatabaseQuota() is called synchronously
with script execution in the WebProcess. Hence, it is never called in a
recursive manner.
In webkit2, we can have multiple WebProcesses concurrently triggering a
call to this function. While the function is waiting on feedback from a
UI dialog, the wait loop may re-enter the function to service a second
request to call this function from another WebProcess. This results in
problems where some of the WebProcesses will not get a proper reply, and
therefore hangs perpetually waiting for a non-forthcoming reply.
This changeset changes the function to queue the requests and ensure
that we do not recursively callback to the UI client.
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::callMemberFunction):
* UIProcess/WebPageProxy.cpp:
(ExceededDatabaseQuotaRecords):
(Record):
(WebKit::ExceededDatabaseQuotaRecords::areBeingProcessed):
(WebKit::ExceededDatabaseQuotaRecords::ExceededDatabaseQuotaRecords):
(WebKit::ExceededDatabaseQuotaRecords::~ExceededDatabaseQuotaRecords):
(WebKit::ExceededDatabaseQuotaRecords::shared):
(WebKit::ExceededDatabaseQuotaRecords::createRecord):
(WebKit::ExceededDatabaseQuotaRecords::add):
(WebKit::ExceededDatabaseQuotaRecords::next):
(WebKit::WebPageProxy::exceededDatabaseQuota):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
2013-03-07 Jeffrey Pfau <jpfau@apple.com>
CFNetwork cache partitioning does not work properly on subdomains
https://bugs.webkit.org/show_bug.cgi?id=111772
Reviewed by David Kilzer.
Ensure that the CFString is UTF-8 so that WKCFURLCacheCopyAllHostNamesInPersistentStoreForPartition will always work.
* WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp:
(WebKit::partitionName): Create a UTF-8 CFString explicitly
2013-03-07 Beth Dakin <bdakin@apple.com>
Need API to draw custom overhang area
https://bugs.webkit.org/show_bug.cgi?id=111679
-and corresponding-
<rdar://problem/13291415>
Reviewed by Simon Fraser.
The new API is WKBundlePageSetTopOverhangImage() and
WKBundlePageSetBottomOverhangImage(). When the API is called, WebPage will get
GraphicsLayers for the appropriate area from FrameView, and then set the image as
the contents of the layer.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetTopOverhangImage):
(WKBundlePageSetBottomOverhangImage):
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setTopOverhangImage):
(WebKit):
(WebKit::WebPage::setBottomOverhangImage):
2013-03-07 Gavin Barraclough <barraclough@apple.com>
Reduce page cache size on Mac
https://bugs.webkit.org/show_bug.cgi?id=111795
Rubber stamped by Geoff Garen
5 entries is unnecessarily large; research show 3 should suffice.
On a low memory warning we should clear this completely.
* Shared/CacheModel.cpp:
(WebKit::calculateCacheSizes):
- reduce maximum to 3.
2013-03-07 Anders Carlsson <andersca@apple.com>
Add a didFocusTextField callback to the injected bundle form client
https://bugs.webkit.org/show_bug.cgi?id=111771
Reviewed by Andreas Kling.
Add a new client callback that's invoked whenever a text input field is focused.
* Shared/APIClientTraits.cpp:
(WebKit):
* Shared/APIClientTraits.h:
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::didFocusTextField):
(WebKit):
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:
(InjectedBundlePageFormClient):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::focusedNodeChanged):
2013-03-07 Tim Horton <timothy_horton@apple.com>
Null-check the page overlay before trying to use it.
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scroll):
2013-03-07 Zan Dobersek <zdobersek@igalia.com>
[GTK] Limit the supported compilers to GCC >= 4.7 and Clang >= 3.0
https://bugs.webkit.org/show_bug.cgi?id=109932
Reviewed by Martin Robinson.
* GNUmakefile.am: Replace references to SYMBOL_VISIBILITY_INLINES and SYMBOL_VISIBILITY variables with the actual flags.
They are now available by default due to the limited set of supported compilers.
2013-03-05 Gustavo Noronha Silva <gns@gnome.org>
[GTK] Enable translations for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=111398
Reviewed by Martin Robinson.
* GNUmakefile.am: define PACKAGE_LOCALE_DIR when building WebProcess's main module.
* WebProcess/gtk/WebProcessMainGtk.cpp:
(WebKit::WebProcessMainGtk): register the i18n domain name, and prefer UTF-8, since
we're GTK+; at the moment we're just using the same name as WebKitGTK+, pro: the
translation module can be reused, con: you can't have different versions of
WebKitGTK+ and WebKit2GTK+ installed, because the module would not be fit for reuse
in that case.
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::childSetupFunction): do not set LC_ALL environment variable explicitly,
the child process will already inherit the environment of the parent, which should
have all the variables set properly.
2013-03-06 Alexey Proskuryakov <ap@apple.com>
SandboxExtension::createHandle raises an uncaught Objective-C exception if path is empty
https://bugs.webkit.org/show_bug.cgi?id=111689
Reviewed by Filip Pizlo.
* Shared/mac/SandboxExtensionMac.mm: (WebKit::SandboxExtension::createHandle):
Use a function from WebCore platform layer instead of Foundation one equivalent.
We already do this elsewhere in this file.
2013-03-06 Tim Horton <timothy_horton@apple.com>
[wk2] Page overlays shouldn't dirty the entire layer when flushing if the main frame can't scroll
https://bugs.webkit.org/show_bug.cgi?id=111662
<rdar://problem/13355808>
Reviewed by Simon Fraser.
Instead of setNeedsDisplay()ing the whole page overlay layer every time through
TCADA::flushLayers, do it at scroll time instead. Repainting on scroll is
necessary to keep things painted in the right place when we scroll (the overlay
is fixed to the size of the view), but is quite wasteful in apps that don’t scroll.
This works with threaded scrolling because overlay installation forces us
into main-thread scrolling mode.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scroll):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
2013-03-06 Tim Horton <timothy_horton@apple.com>
[wk2] Page overlays should use the accelerated drawing setting instead of hardcoding it on
https://bugs.webkit.org/show_bug.cgi?id=111654
<rdar://problem/13364085>
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
2013-03-06 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][WK2] Enable interactive form validation for email and url input type validation
https://bugs.webkit.org/show_bug.cgi?id=111026
Reviewed by Laszlo Gombos.
WebKit EFL can check if input value is valid by enabling this feature.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
2013-03-06 Alexey Proskuryakov <ap@apple.com>
[Mac] Synthetic ResourceResponses cannot be sent over IPC without losing most information
https://bugs.webkit.org/show_bug.cgi?id=111623
Reviewed by Brady Eidson.
* Shared/WebCoreArgumentCoders.cpp:
* Shared/WebCoreArgumentCoders.h:
(CoreIPC::::encode): Made the decision on whether to serialize WebCore data in
ResourceResponse dynamic. If the platform data is out of date, we need both
(because some platforms use encodePlatformData() to pass additional information).
(CoreIPC::::decode): Decode platform data first, because this overwrites the ResourceResponse.
* Shared/mac/WebCoreArgumentCodersMac.mm: (CoreIPC::::encodePlatformData): Don't
encode NSURLResponse if it's out of date. We may have a bad NSURLResponse with 0
status code given to client, but it was almost certainly the same on sending side.
WebCore doesn't mutate real responses - it either keeps them as is, or builds
entirely synthetic ones.
2013-03-04 Jer Noble <jer.noble@apple.com>
Default mouse cursor behavior should be auto-hide for full screen video with custom controls
https://bugs.webkit.org/show_bug.cgi?id=107601
Reviewed by Beth Dakin.
Enable the CURSOR_VISIBILITY feature.
* Configurations/FeatureDefines.xcconfig:
2013-03-06 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[GTK][WK2] Implement WebInspector::localizedStringsURL() to return the file URL of localizedStrings.js
https://bugs.webkit.org/show_bug.cgi?id=111448
Reviewed by Alexey Proskuryakov.
Implement WebInspector::localizedStringsURL() method to return the
file URL of the localizedStrings.js.
This prevents printing warnings about "Localized string not found" in
the console.
* WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
(WebKit::WebInspector::localizedStringsURL):
2013-03-06 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[EFL][WK2] REGRESSION(r143582): API test EWK2UnitTestBase.ewk_view_contents_size_changed failing
https://bugs.webkit.org/show_bug.cgi?id=110608
Reviewed by Kenneth Rohde Christiansen.
Test was expecting ContentsSizeChanged signal from ViewClientEfl, but
WebView was not calling client callback if useFixedLayout() is true.
This patch prevent early return if useFixedLayout() is true and call
client callback didChangeContentsSize(), which will emit the signal.
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::didChangeContentsSize):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::didChangeContentsSize):
2013-03-06 Manuel Rego Casasnovas <rego@igalia.com>
[WK2][GTK] Fix unit test WebKit2APITests/WebKitWebView/mouse-target
https://bugs.webkit.org/show_bug.cgi?id=82866
Reviewed by Martin Robinson.
Test was failing because of new media controls needs more space to be
painted than just 10x10 pixels. This is similar to r144070.
* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(testWebViewMouseTarget): Modified HTML in order to give more space to the media controls.
2013-03-06 Tim Horton <timothy_horton@apple.com>
[wk2] Page Overlays: Hook up the layer border/repaint counter setting to the overlay layer
https://bugs.webkit.org/show_bug.cgi?id=111547
<rdar://problem/13355801>
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
Keep the page overlay layer's debug border and repaint counter settings updated.
2013-03-06 Geoffrey Garen <ggaren@apple.com>
Joing the adoptNS/adoptCF/adoptRef club.
https://bugs.webkit.org/show_bug.cgi?id=111467
Reviewed by Darin Adler.
Responding to review comments by Darin Adler.
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
* WebProcess/mac/WebProcessMac.mm:
(WebKit::WebProcess::platformInitializeWebProcess): Tighten up this code
by reducing extraneous local variables.
2013-03-05 Alexey Proskuryakov <ap@apple.com>
Track sandbox extensions for blobs in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=111484
Reviewed by Sam Weinig.
* WebKit2.xcodeproj/project.pbxproj:
* NetworkProcess/FileAPI: Added.
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: Added.
* NetworkProcess/FileAPI/NetworkBlobRegistry.h: Added.
Added a registry that wraps normal in-process "BlobRegistryImpl", and also tracks
sandbox extensions for blobs. It will also track process connections, so that
blobs could be removed when a process crashes.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
(WebKit::NetworkConnectionToWebProcess::unregisterBlobURL):
Use NetworkBlobRegistry.
* NetworkProcess/SchedulableLoader.h:
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::SchedulableLoader): Add extensions for blobs, both in
request URL and in request data.
(WebKit::SchedulableLoader::consumeSandboxExtensions): Request may now have multiple
extensions.
(WebKit::SchedulableLoader::invalidateSandboxExtensions): Ditto.
* Shared/FileAPI/BlobRegistrationData.cpp: Fixed extension creation - actually
store the result.
2013-03-06 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] Fix the Mac build after r144787
https://bugs.webkit.org/show_bug.cgi?id=111569
Reviewed by Csaba Osztrogonác.
Use uint_64 explicitly instead of size_t.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
2013-03-05 Kent Tamura <tkent@chromium.org>
Rename WebCore/editing/visible_units.* to VisibleUnits.*
https://bugs.webkit.org/show_bug.cgi?id=111426
Reviewed by Alexey Proskuryakov.
* WebProcess/WebPage/mac/WebPageMac.mm:
2013-03-06 Zeno Albisser <zeno@webkit.org>
DataReference::vector() should be const.
https://bugs.webkit.org/show_bug.cgi?id=109928
Reviewed by Anders Carlsson.
* Platform/CoreIPC/DataReference.h:
(CoreIPC::DataReference::vector):
2013-03-06 Luiz Agostini <luiz.agostini@nokia.com>
Accelerated overflow scrolling for Coordinated Graphics.
https://bugs.webkit.org/show_bug.cgi?id=110323
Reviewed by Noam Rosenthal.
Signed off for WebKit2 by Simon Fraser.
A scroll offset is applied to individual layers on UI process and the
web process is notified assynchronously.
The new API WKCoordinatedScene may be used to scroll layers in the UI process.
* CMakeLists.txt:
Encoding and decoding the new members of CoordinatedGraphicsLayerState.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
Adding acceleratedCompositingForOverflowScrollEnabled to WebPreferencesStore.
* Shared/WebPreferencesStore.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
New API WKCoordinatedScene is used to scroll layers on UI side.
* UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp:
* UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.h:
* UIProcess/CoordinatedGraphics/WKCoordinatedSceneAPICast.h:
A new message is used to send scroll commit messages to web process.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::commitScrollOffset):
(WebKit):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::~CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::detachLayer):
(WebKit::CoordinatedLayerTreeHost::createGraphicsLayer):
(WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHost::purgeBackingStores):
(WebKit::CoordinatedLayerTreeHost::commitScrollOffset):
(WebKit):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
2013-03-06 Huang Dongsung <luxtella@company100.net>
[EFL][WK2] Convert from device view size to UI view size only in EwkView.
https://bugs.webkit.org/show_bug.cgi?id=110197
Reviewed by Kenneth Rohde Christiansen.
Signed off for WebKit2 by Benjamin Poulain.
Device scale factor is a property of the physical display, so only EwkView
should deal with converting device view size to UI (a.k.a Density Independent Pixel)
view size. It increases readability because we can regard a view size in
other classes (e.g. WebView, PageViewportController, WebPage) except for
EwkView as UI size.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::setDeviceScaleFactor):
(EwkView::setDeviceSize):
(EwkView::size):
(EwkView::deviceSize):
(EwkView::scheduleUpdateDisplay):
(EwkView::createGLSurface):
(EwkView::handleEvasObjectCalculate):
* UIProcess/API/efl/EwkView.h:
(EwkView):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::paintToCurrentGLContext):
(WebKit::WebView::updateViewportSize):
2013-03-06 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Use Vector::reserveInitialCapacity() in WebEventFactory::createWebTouchEvent()
https://bugs.webkit.org/show_bug.cgi?id=111530
Reviewed by Benjamin Poulain.
In WebEventFactory::createWebTouchEvent(), when constructing the vector of touch points,
we already know in advance the total number of touch points. Therefore, we should
leverage WTF::Vector::reserveInitialCapacity() and WTF::Vector::uncheckedAppend() to save
some capacity checks.
* Shared/efl/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebTouchEvent):
2013-03-05 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[WK2][EFL] Enable asynchronous spell checking by default
https://bugs.webkit.org/show_bug.cgi?id=111295
Reviewed by Benjamin Poulain.
Asynchronous spell checking feature is disabled by default for wk2 platforms.
It means all requests of spell checking are sent synchronously.
WebKit-EFL implements requestCheckingOfString method which allows
to check spelling asynchronously.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
2013-03-05 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] Ensure right format is used in SnapshotImageGL.
https://bugs.webkit.org/show_bug.cgi?id=111333
Reviewed by Benjamin Poulain.
GL_BGRA format is not standard for glReadPixels with GLES.
This patch ensures that GL_RGBA is used in SnapshotImageGL
while using GLES.
* UIProcess/API/efl/SnapshotImageGL.cpp:
(getImageSurfaceFromFrameBuffer):
2013-03-05 Geoffrey Garen <ggaren@apple.com>
Each web process truncates the disk cache to zero on launch
https://bugs.webkit.org/show_bug.cgi?id=111467
Reviewed by Darin Adler.
Let's not do that.
* WebProcess/mac/WebProcessMac.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2013-03-05 Anders Carlsson <andersca@apple.com>
Reset the values if there is a quota error
https://bugs.webkit.org/show_bug.cgi?id=111500
Reviewed by Beth Dakin.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::didSetItem):
(WebKit::StorageAreaProxy::resetValues):
(WebKit):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
2013-03-05 Anders Carlsson <andersca@apple.com>
Keep track of pending value changes in StorageAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=111496
Reviewed by Beth Dakin.
Add a HashCountedSet to keep track of the number of pending value
changes for a given key. If we get incoming storage events from other
processes while we have pending value changes, ignore the events.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::setItem):
(WebKit::StorageAreaProxy::didSetItem):
(WebKit::StorageAreaProxy::dispatchStorageEvent):
(WebKit::StorageAreaProxy::shouldApplyChangesForKey):
(WebKit):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
2013-03-05 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Build break with latest EFL libraries
https://bugs.webkit.org/show_bug.cgi?id=111028
Reviewed by Dirk Pranke.
* PlatformEfl.cmake: Added ECORE_XXX_INCLUDE_DIRS.
2013-03-05 Anders Carlsson <andersca@apple.com>
Use a named parameter for whether a quota error ocurred or not
https://bugs.webkit.org/show_bug.cgi?id=111490
Reviewed by Beth Dakin.
This is clearer than setItem returning true on error.
Also, actually set the item in the storage map.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
(WebKit::StorageManager::StorageArea::setItem):
(WebKit::StorageManager::setItem):
2013-03-05 Kiran Muppala <cmuppala@apple.com>
Use new assertion API for process suppression on Mac
https://bugs.webkit.org/show_bug.cgi?id=111387
Reviewed by Alexey Proskuryakov.
* Shared/ChildProcess.h:
(WebKit::ChildProcess::processSuppressionEnabled): Rename
m_processVisibleAssertion to m_processSuppressionAssertion.
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::setProcessSuppressionEnabled): Ditto. And,
replace calls to WKNSProcessInfoProcessAssertionWithTypes() with call to
-[NSProcessInfo beginSuspensionOfSystemBehaviors:].
2013-03-05 Anders Carlsson <andersca@apple.com>
Move storageType() to StorageAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=111488
Reviewed by Andreas Kling.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::StorageAreaProxy):
(WebKit::StorageAreaProxy::storageType):
(WebKit::StorageAreaProxy::disabledByPrivateBrowsingInFrame):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
* WebProcess/Storage/StorageNamespaceProxy.cpp:
* WebProcess/Storage/StorageNamespaceProxy.h:
2013-03-05 Jeffrey Pfau <jpfau@apple.com>
Clear associated cache partitions when deleting origins' cache
https://bugs.webkit.org/show_bug.cgi?id=111383
Reviewed by Maciej Stachowiak.
Clear the cache partitions associated with the origin being cleared.
* WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp:
(WebKit):
(WebKit::partitionName):
(WebKit::WebResourceCacheManager::clearCFURLCacheForHostNames):
2013-03-05 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] WebPageProxy::setThemePath() should check that the page is valid
https://bugs.webkit.org/show_bug.cgi?id=109917
Reviewed by Alexey Proskuryakov.
WebPageProxy::setThemePath() should check that the page is valid before
sending IPC message.
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::setThemePath):
2013-03-05 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13269245> Crashes creating WebKit processes in WKSandboxExtensionConsume
https://bugs.webkit.org/show_bug.cgi?id=111456
Reviewed by Anders Carlsson.
It's too late to be draconian about this condition here, crashing doesn't help
diagnose what went wrong when creating a sandbox extension.
Other SandboxExtension functions already have null checks for WKSandboxExtensionRef,
and so should consumePermanently().
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::createHandle): For now, added logging when extension
creation fails. If that proves insufficiently helpful in practice, we can change
to a CRASH() later.
(WebKit::SandboxExtension::createHandleForTemporaryFile): Ditto.
(WebKit::SandboxExtension::consumePermanently): Gracefully fail if there is no extension
to consume.
2013-03-05 Gwang Yoon Hwang <ryumiel@company100.net>
Coordinated Graphics: CoordinatedGraphicsLayer makes CoordinatedGraphicsScene perform via CoordinatedGraphicsState.
https://bugs.webkit.org/show_bug.cgi?id=108294
Reviewed by Anders Carlsson.
There are two changes in WK2.
1. Change CoordinatedLayerTreeHostProxy to use CoordinatedGraphicsState.
2. Add encode/decode of CoordinatedGraphicsState in CoordinatedGraphicsArgumentCoders.
This patch is based on Dongsung Huang, and Noam's work in
https://bugs.webkit.org/show_bug.cgi?id=108294
No new tests, covered by existing tests.
* Scripts/webkit2/messages.py:
(headers_for_type):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
Encoding UpdateImageBacking and CreateUpdateAtlas can fail when
encoding WebCoordinatedSurface::Handle fails, but we don't
recover in the case.
(CoreIPC::::decode):
(CoreIPC):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
(WebCore):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
(WebKit):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(WebCore):
(CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::coordinatedGraphicsScene):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::flushPendingLayerChanges):
(WebKit::CoordinatedLayerTreeHost::initializeRootCompositingLayerIfNeeded):
(WebKit::CoordinatedLayerTreeHost::syncLayerState):
(WebKit::CoordinatedLayerTreeHost::prepareCustomFilterProxiesIfNeeded):
(WebKit):
(WebKit::CoordinatedLayerTreeHost::updateImageBacking):
(WebKit::CoordinatedLayerTreeHost::setBackgroundColor):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost):
2013-03-05 Sam Weinig <sam@webkit.org>
Follow up to https://bugs.webkit.org/show_bug.cgi?id=111453, forgot to mark the files as Private.
* WebKit2.xcodeproj/project.pbxproj:
2013-03-05 Sam Weinig <sam@webkit.org>
Elevate accessors of C-SPI API variants to Objective-C SPI
https://bugs.webkit.org/show_bug.cgi?id=111453
<rdar://problem/13340357>
Reviewed by Alexey Proskuryakov.
* Shared/mac/ObjCObjectGraphCoders.mm:
* UIProcess/API/mac/WKBrowsingContextControllerInternal.h:
* UIProcess/API/mac/WKBrowsingContextControllerPrivate.h:
* UIProcess/API/mac/WKBrowsingContextGroup.mm:
* UIProcess/API/mac/WKBrowsingContextGroupPrivate.h: Renamed from Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroupInternal.h.
* UIProcess/API/mac/WKProcessGroup.mm:
* UIProcess/API/mac/WKProcessGroupPrivate.h: Copied from Source/WebKit2/UIProcess/API/mac/WKProcessGroupInternal.h.
* UIProcess/API/mac/WKView.mm:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
(-[WKWebProcessPlugInController _bundleRef]):
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInPrivate.h: Renamed from Source/WebKit2/UIProcess/API/mac/WKProcessGroupInternal.h.
Add access to C-SPI WebKit types as Objective-C SPI.
2013-03-04 Alexey Proskuryakov <ap@apple.com>
Make AsyncFileReader work without ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=111376
Reviewed by Anders Carlsson.
* NetworkProcess/NetworkResourceLoader.cpp:
* NetworkProcess/NetworkResourceLoader.h:
Removed a dummy implementation of createAsyncFileStream, which is no longer needed.
2013-03-05 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13345116> REGRESSION: Child processes get access to user cache
and temporary directories instead of private ones
Reviewed by Sam Weinig.
* Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::initializeSandbox):
Restore the correct order of calls, so sandbox parameters respect WebKit pseudo
containers.
2013-03-05 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r144698): Only enable SPEECH_SYNTHESIS for Mac
<http://webkit.org/b/106742>
Fixes the following build failures:
Undefined symbols for architecture i386:
"__ZTVN7WebCore25PlatformSpeechSynthesizerE", referenced from:
__ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"__ZN7WebCore25PlatformSpeechSynthesizer19initializeVoiceListEv", referenced from:
__ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
ld: symbol(s) not found for architecture i386
* Configurations/FeatureDefines.xcconfig:
- Only set ENABLE_SPEECH_SYNTHESIS for the macosx platform.
2013-03-05 Tim Horton <timothy_horton@apple.com>, Grzegorz Czajkowski <g.czajkowski@samsung.com>
[WK2] WTR needs an implementation of setAsynchronousSpellCheckingEnabled
https://bugs.webkit.org/show_bug.cgi?id=81042
Reviewed by Enrica Casucci.
Expose WK2 setting to enable/disabled asynchronous spell checking.
It's used by WebKitTestRunner to reset the setting at the beginning
of the test.
WebKit2 ports might be interested in this setting if they are going
to enable this feature.
* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAsynchronousSpellCheckingEnabled):
(WKPreferencesGetAsynchronousSpellCheckingEnabled):
* UIProcess/API/C/WKPreferences.h:
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetAsynchronousSpellCheckingEnabled):
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setAsynchronousSpellCheckingEnabled):
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2013-03-03 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[WK2][EFL] Add requestCheckingOfString implementation.
https://bugs.webkit.org/show_bug.cgi?id=108172
Reviewed by Hajime Morrita.
Provide implementation of 'requestCheckingOfString' for WK2-EFL.
It uses the unified text checker feature.
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit::TextChecker::requestCheckingOfString):
2013-03-04 Chris Fleizach <cfleizach@apple.com>
Support WebSpeech - Speech Synthesis
https://bugs.webkit.org/show_bug.cgi?id=106742
Reviewed by Simon Fraser.
Enable speech synthesis for the Mac.
* Configurations/FeatureDefines.xcconfig:
2013-03-04 Anders Carlsson <andersca@apple.com>
UI process storage areas should hold on to storage maps
https://bugs.webkit.org/show_bug.cgi?id=111374
Reviewed by Beth Dakin.
Pass the session storage quota size through to the storage area constructor and
create a StorageMap with the given quota size.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::StorageArea):
(StorageManager::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::createSessionStorageNamespaceInternal):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
2013-03-04 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Unreviewed build fix after r144675.
Work around picky/old C++ compilers by separating the '>>' in
nested templates with a space.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
2013-03-04 Anders Carlsson <andersca@apple.com>
More work on UI side storage
https://bugs.webkit.org/show_bug.cgi?id=111370
Reviewed by Andreas Kling.
Add a DispatchStorageEvent message and begin hooking it up.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
(WebKit::StorageManager::StorageArea::setItem):
(WebKit):
(WebKit::StorageManager::StorageArea::dispatchEvents):
(WebKit::StorageManager::setItem):
(WebKit::StorageManager::findStorageArea):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/Storage/StorageManager.messages.in:
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::setItem):
(WebKit::StorageAreaProxy::dispatchStorageEvent):
(WebKit):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
* WebProcess/Storage/StorageAreaProxy.messages.in:
2013-03-04 Jer Noble <jer.noble@apple.com>
Unreviewed build fix: wrap references to PluginInfoStore with
guards for platforms which do not enable NETSCAPE_PLUGIN_AP.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::~WebContext):
* UIProcess/WebContext.h:
2013-03-04 Anders Carlsson <andersca@apple.com>
Create and destroy storage areas in the UI process
https://bugs.webkit.org/show_bug.cgi?id=111361
Reviewed by Sam Weinig.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
Keep track of listener connection and storage area ID pairs.
(WebKit::StorageManager::StorageArea::~StorageArea):
Assert that we don't have any listeners left.
(WebKit::StorageManager::StorageArea::addListener):
Add the pair to the set of listeners.
(WebKit::StorageManager::StorageArea::removeListener):
Remove the pair from the set of listeners.
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
Given an origin, look up or create the storage area.
(WebKit::StorageManager::createStorageArea):
Create the storage area if it doesn't already exist.
(WebKit::StorageManager::destroyStorageArea):
Look up the storage area and destroy it.
* UIProcess/Storage/StorageManager.h:
Add a map of open storage areas.
2013-03-04 Jer Noble <jer.noble@apple.com>
Add API to allow WK2 clients to query the list of installed plug-ins.
https://bugs.webkit.org/show_bug.cgi?id=111245
Reviewed by Alexey Proskuryakov.
Add API in WKContext, implemented by WebContext, that allows callers to register a callback
retrieve an array containing installed plugin information. This API is exposed through WebContext
because it owns the PluginInfoStore used to fulfill the request.
Bump the WKContextClient API by 1:
* Shared/APIClientTraits.cpp:
* Shared/APIClientTraits.h:
* UIProcess/API/C/WKContext.h:
Add a client protocol to PluginInfoStore to notify the client when plugIn information has been
successfully loaded:
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::PluginInfoStore): Initialize m_client to 0.
(WebKit::PluginInfoStore::loadPluginsIfNecessary): If the client is present, notify after loading the plugin store.
* UIProcess/Plugins/PluginInfoStore.h:
(WebKit::PluginInfoStoreClient::~PluginInfoStoreClient): Default destructor.
(WebKit::PluginInfoStoreClient::PluginInfoStoreClient): Default constructor.
(WebKit::PluginInfoStore::setClient): Simple setter.
(WebKit::PluginInfoStore::client): Simple getter.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext): Set self as the client of PluginInfoStore.
(WebKit::WebContext::~WebContext): Clear the client of PluginInfoStore.
(WebKit::WebContext::pluginInfoStoreDidLoadPlugins): Pass the callback to own client.
* UIProcess/WebContext.h:
* UIProcess/WebContextClient.cpp:
(WebKit::WebContextClient::plugInInformationBecameAvailable): Pass the callback to the registered WK callback, if present.
* UIProcess/WebContextClient.h:
2013-03-04 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Hook up Services
https://bugs.webkit.org/show_bug.cgi?id=111246
<rdar://problem/13062672>
Reviewed by Alexey Proskuryakov.
Make the Application->Services menu work when the focused selection is a PDFPlugin.
* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState):
(EditorState):
Add isInPlugin property to EditorState.
* UIProcess/API/mac/WKView.mm:
(-[WKView validRequestorForSendType:returnType:]):
If the selection is currently in a Plugin, we only currently have the ability
to retrieve the selection as a plain-text string, so restrict sendType to NSStringPboardType.
* WebProcess/Plugins/PDF/SimplePDFPlugin.h:
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginView.h:
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
Add getStringSelection.
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h:
Add pdfLayerController:didChangeSelection: delegate method.
* WebProcess/Plugins/PDF/PDFPlugin.h:
(PDFPlugin):
Add getStringSelection and notifySelectionChanged.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFLayerControllerDelegate pdfLayerController:didChangeSelection:]):
Forward selection change notifications to our PDFPlugin.
(WebKit::PDFPlugin::notifySelectionChanged):
Forward selection change notifications to our WebPage.
(WebKit::PDFPlugin::getStringSelection):
Retrieve PDFLayerController's selection as a plain text string.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::countFindMatches):
(WebKit::PluginView::findString):
Drive-bys, check for existance and initialization of the plugin before using it.
(WebKit::PluginView::getStringSelection): Added.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::respondToChangedSelection):
Use didChangeSelection instead of sending the EditorStateChanged message directly.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
If a plugin is focused and has a selection, return a EditorState that reflects that.
Since PDFs aren't editable (when editing annotations, the plugin doesn't have focus),
I'm not adding support for the editing-related properties when a plugin has focus.
(WebKit::WebPage::focusedPluginViewForFrame):
(WebKit::WebPage::pluginViewForFrame):
Make these class methods instead of static functions so we can use them from
WebPageMac too, instead of duplicating code there.
(WebKit::WebPage::didChangeSelection): Added.
* WebProcess/WebPage/WebPage.h:
Add didChangeSelection and [focused]PluginViewForFrame.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::getStringSelectionForPasteboard):
Defer to the focused plugin (if it exists) when retrieving the plain-text selection.
2013-03-04 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Add callbacks to the WKViewClient to handle Web Process crash and relaunch
https://bugs.webkit.org/show_bug.cgi?id=109828
Reviewed by Kenneth Rohde Christiansen.
Providing WKViewClient with Web Process crash and Web Process relaunch
callbacks brings better design as WebView should not be aware of
EFL-specific code handling the corresponding events.
The implementation of the mentioned Web Process callbacks was also added.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewSetThemePath):
* UIProcess/API/C/efl/WKView.h:
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::webProcessCrashed):
(WebKit):
(WebKit::ViewClientEfl::webProcessDidRelaunch):
(WebKit::ViewClientEfl::ViewClientEfl):
* UIProcess/efl/ViewClientEfl.h:
(ViewClientEfl):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::setThemePath):
Accepts WTF::String instead of WKStringRef as it is
more appropriate for C++ API implementation class.
(WebKit::WebView::processDidCrash):
(WebKit::WebView::didRelaunchProcess):
* UIProcess/efl/WebView.h:
(WebView):
* UIProcess/efl/WebViewClient.cpp:
(WebKit::WebViewClient::webProcessCrashed):
(WebKit):
(WebKit::WebViewClient::webProcessDidRelaunch):
* UIProcess/efl/WebViewClient.h:
2013-03-04 Anders Carlsson <andersca@apple.com>
Complete the plug-in URL string before sending it to the UI process
https://bugs.webkit.org/show_bug.cgi?id=111355
<rdar://problem/13326713>
Reviewed by Andreas Kling.
If the URL is not absolute, we won't be able to find it by path extension in the plug-in info store.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::unavailablePluginButtonClicked):
2013-03-04 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Some WebKit2 GTK+ unit tests are failing in 32 bits bot
https://bugs.webkit.org/show_bug.cgi?id=111346
Reviewed by Martin Robinson.
The problem is the use of a temporary CString object in the macro
g_assert_cmpstr. It's a common mistake because we usually forget
that g_assert_cmpstr is not a function but a macro, that expands
to multiple lines. This patch adds a new macro ASSERT_CMP_CSTRING
with the same implementation that g_assert_cmpstr, but using
CStrings instead of const char*. It fixes all the cases where a
temporary CString was used in g_assert_cmpstr, and uses the new
macro also for the cases where we were caching the CString just
for g_assert_cmpstr.
* UIProcess/API/gtk/tests/TestDownloads.cpp:
(testDownloadRemoteFile):
* UIProcess/API/gtk/tests/TestInspectorServer.cpp:
(testInspectorServerPageList):
* UIProcess/API/gtk/tests/TestLoaderClient.cpp:
* UIProcess/API/gtk/tests/TestMain.h:
* UIProcess/API/gtk/tests/TestResources.cpp:
* UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp:
(testGetFaviconURI):
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(assertThatUserAgentIsSentInHeaders):
(testWebKitSettingsUserAgent):
2013-03-04 Kunihiko Sakamoto <ksakamoto@chromium.org>
Add build flag for FontLoader
https://bugs.webkit.org/show_bug.cgi?id=111289
Reviewed by Benjamin Poulain.
Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
* Configurations/FeatureDefines.xcconfig:
2013-03-03 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Rename delegate method from openWithPreview to openWithNativeApplication
https://bugs.webkit.org/show_bug.cgi?id=111258
Reviewed by Alexey Proskuryakov.
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFLayerControllerDelegate openWithNativeApplication]):
Rename from openWithPreview to openWithNativeApplication to match PDFKit.
2013-03-03 Huang Dongsung <luxtella@company100.net>
[EFL][QT][WK2] Turn on ApplyDeviceScaleFactorInCompositor always.
https://bugs.webkit.org/show_bug.cgi?id=110298
Reviewed by Kenneth Rohde Christiansen.
Currently, EFL and Qt turn on ApplyDeviceScaleFactorInCompositor when using
fixed layout, but ApplyDeviceScaleFactorInCompositor is not related to fixed
layout. It is confusing that a platform WebView deals with device view size or
DIP view size case by case. So this patch always turns on
ApplyDeviceScaleFactorInCompositor.
In addition, move the code that turns on ScrollingCoordinatorEnabled to
CoordinatedLayerTreeHost.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::setDeviceScaleFactor):
We should make WebPage know new DIP size.
(EwkView::setSize):
When we set ApplyDeviceScaleFactorInCompositor to true, make WebPage
know the DIP size as a view size.
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::updateViewportSize):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUseFixedLayout):
WebPage sends the DIP size to Web Process even when we don't use fixed layout.
2013-03-03 Sam Weinig <sam@webkit.org>
Shared Web Workers have an incorrect visible process name
https://bugs.webkit.org/show_bug.cgi?id=111277
Reviewed by Dan Bernstein.
* SharedWorkerProcess/SharedWorkerProcess.cpp:
(WebKit::SharedWorkerProcess::initializeSharedWorkerProcess):
* SharedWorkerProcess/SharedWorkerProcess.h:
(SharedWorkerProcess):
* SharedWorkerProcess/mac/SharedWorkerProcessMac.mm:
(WebKit::SharedWorkerProcess::initializeProcessName):
The SharedWorkerProcess is not an internet plug-in!
2013-03-03 Adam Barth <abarth@webkit.org>
Unreviewed attempted build fix. Adds back some includes removed in
http://trac.webkit.org/changeset/144565.
* Shared/WebRenderLayer.cpp:
* Shared/WebRenderObject.cpp:
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebProcess.cpp:
* WebProcess/soup/WebProcessSoup.cpp:
2013-03-03 Adam Barth <abarth@webkit.org>
Unreviewed rollout of http://trac.webkit.org/r144530
As described in https://bugs.webkit.org/show_bug.cgi?id=111167 and
https://bugs.webkit.org/show_bug.cgi?id=111035, this patch caused a
large number of ASSERTs in chromium-win.
* NetworkProcess/HostRecord.h:
* NetworkProcess/NetworkResourceLoadScheduler.h:
* NetworkProcess/NetworkResourceLoader.h:
(WebCore):
* Shared/WebRenderLayer.cpp:
* Shared/WebRenderObject.cpp:
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebProcess.cpp:
* WebProcess/soup/WebProcessSoup.cpp:
2013-03-02 Sam Weinig <sam@webkit.org>
WebKit2 is missing the setShowsURLsInToolTips preference
https://bugs.webkit.org/show_bug.cgi?id=111259
<rdar://problem/12991891>
Reviewed by Maciej Stachowiak.
* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetShowsURLsInToolTipsEnabled):
(WKPreferencesGetShowsURLsInToolTipsEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Pipe it through.
2013-03-02 Benjamin Poulain <bpoulain@apple.com>
Move computedStyleIncludingVisitedInfo from TestRunner to Internals
https://bugs.webkit.org/show_bug.cgi?id=109772
Reviewed by Andreas Kling.
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
* WebProcess/WebPage/WebFrame.cpp:
* WebProcess/WebPage/WebFrame.h:
(WebFrame):
2013-03-01 Kiran Muppala <cmuppala@apple.com>
Remove call to set task priority of WebKit2 processes on Mac
https://bugs.webkit.org/show_bug.cgi?id=111239
Reviewed by Darin Adler.
Remove call to set task prioirty of WebKit2 processes on Mac as it
is no longer necessary.
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::platformInitialize): Remove call to setpriority().
2013-02-28 Alexey Proskuryakov <ap@apple.com>
Reduce amount of rebuilding when touching networking headers
https://bugs.webkit.org/show_bug.cgi?id=111035
Reviewed by Eric Seidel.
Adding includes that are now necessary because WebCore headers don't have them
any more.
* NetworkProcess/HostRecord.h:
* NetworkProcess/NetworkResourceLoadScheduler.h:
* NetworkProcess/NetworkResourceLoader.h:
* Shared/WebRenderLayer.cpp:
* Shared/WebRenderObject.cpp:
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebProcess.cpp:
* WebProcess/soup/WebProcessSoup.cpp:
2013-02-28 Alexey Proskuryakov <ap@apple.com>
Make in-memory blobs work in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=111132
Reviewed by Sam Weinig.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
(WebKit::NetworkConnectionToWebProcess::unregisterBlobURL):
* NetworkProcess/NetworkConnectionToWebProcess.h:
Implement BlobRegistry interface by using BlobRegistryImpl (same one as used in
WebProcess in non-PPT mode).
* NetworkProcess/NetworkConnectionToWebProcess.messages.in: Added three messages
needed for BlobRegistry.
* NetworkProcess/NetworkProcess.cpp:
* NetworkProcess/NetworkProcessPlatformStrategies.cpp: Added.
* NetworkProcess/NetworkProcessPlatformStrategies.h: Added.
Added a mostly empty platform strategy, just for FormData to talk to BlobRegistry.
Perhaps we'll find a way to avoid this WebCore code path in NetworkProcess, because
we obviously know which registry implementation is in use in this process.
* Shared/FileAPI: Added.
* Shared/FileAPI/BlobRegistrationData.cpp: Added.
* Shared/FileAPI/BlobRegistrationData.h: Added.
Added a class for passing BlobData and extension handles over IPC.
This uses a trick with mutable a member to avoid copying decoded BlobStorageData.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/FileAPI: Added.
* WebProcess/FileAPI/BlobRegistryProxy.cpp: Added.
* WebProcess/FileAPI/BlobRegistryProxy.h: Added.
A proxy implementation of BlobRegistry that just sends requests over IPC. We only
need async ones.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createBlobRegistry):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
Create an appropriate BlobRegistry.
2013-03-01 Zan Dobersek <zdobersek@igalia.com>
Uncomment ENABLE_SVG guards to avoid having WebKitPluginProcess link
against libWebCoreSVG.la when SVG is disabled.
Rubber-stamped by Gustavo Noronha.
* GNUmakefile.am:
2013-02-28 Sam Weinig <sam@webkit.org>
Add SPI for marking a WebView as doing things on behalf of another process
https://bugs.webkit.org/show_bug.cgi?id=111125
Reviewed by Alexey Proskuryakov.
* NetworkProcess/mac/RemoteNetworkingContext.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::sourceApplicationAuditData):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::sourceApplicationAuditData):
Stub out sourceApplicationAuditData() client function.
2013-03-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144422 and r144424.
http://trac.webkit.org/changeset/144422
http://trac.webkit.org/changeset/144424
https://bugs.webkit.org/show_bug.cgi?id=111167
Caused over 20 tests to fail assertion on Chromium Win port as
ASSERTION FAILED: m_platformRequestUpdated (Requested by
toyoshim on #webkit).
* NetworkProcess/HostRecord.h:
* NetworkProcess/NetworkResourceLoadScheduler.h:
* NetworkProcess/NetworkResourceLoader.h:
(WebCore):
* Shared/WebRenderLayer.cpp:
* Shared/WebRenderObject.cpp:
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebProcess.cpp:
* WebProcess/soup/WebProcessSoup.cpp:
2013-03-01 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] Fix failing API tests after r143935
https://bugs.webkit.org/show_bug.cgi?id=111086
Reviewed by Jocelyn Turcotte.
Convert a leftorver resume call to the new resumeAndUpdateContent() call
in PageViewportControllerClientQt so that the notifications about zoom
animation state changes reach the API tests.
* UIProcess/qt/PageViewportControllerClientQt.cpp:
(WebKit::PageViewportControllerClientQt::scaleAnimationStateChanged):
2013-03-01 Grzegorz Czajkowski <g.czajkowski@samsung.com>, Mariusz Grzegorczyk <mariusz.g@samsung.com>
[WK2] Asynchronous spell checking implementation
https://bugs.webkit.org/show_bug.cgi?id=109577
Reviewed by Enrica Casucci.
Associate the abstract 'WebCore::TextCheckingRequest' object with the unique identifier
on WebProcess side. The request data from the 'TextCheckingRequest' are retrieved and
passed to the UIProcess. The WK2 client (TextChecker{Gtk/Mac/Efl/Qt}.cpp) gets
the 'TextCheckerCompletion' object with the request data and possibility to notify
the WebProcess about the spelling results.
Finally, the WebPage object calls on the proper 'TextCheckingRequest' object
didSuccess/didCancel method to notify the WebCore about the spelling result.
* CMakeLists.txt:
* GNUmakefile.list.am:
Add 'TextCheckerCompletion.{h/cpp}' to the WebKit2 cmake based and
WK2-Gtk+ builds.
* Scripts/webkit2/messages.py:
(headers_for_type):
Add exception for 'TextCheckingRequestData' class to properly find header
file for it.
* Shared/WebCoreArgumentCoders.cpp:
* Shared/WebCoreArgumentCoders.h:
Teach 'ArgumentCoder' how to encode/decode 'TextCheckingRequestData' class.
* Target.pri:
Add 'TextCheckerCompletion.{h/cpp}' to the WK2-Qt build.
* UIProcess/TextChecker.h:
Add 'requestCheckingOfString' method to the TextChecker's interface.
* UIProcess/TextCheckerCompletion.cpp: Added.
(WebKit::TextCheckerCompletion::create):
(WebKit::TextCheckerCompletion::TextCheckerCompletion):
(WebKit::TextCheckerCompletion::spellDocumentTag):
Return the WebPageProxy's spellDocumentTag as the client might be
interested in from which page the request came.
(WebKit::TextCheckerCompletion::textCheckingRequestData):
Allow to retrieve 'TextCheckingRequestData' object.
(WebKit::TextCheckerCompletion::didFinishCheckingText):
(WebKit::TextCheckerCompletion::didCancelCheckingText):
Notify the 'WebPageProxy' object that the given request has been
handled or canceled.
* UIProcess/TextCheckerCompletion.h: Added.
Introduce a new class for WK2 to retrieve the request data and
call didFinishCheckingText/didCancelCheckingText.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestCheckingOfString):
Create 'TextCheckerCompletion' object and pass it
to the 'TextChecker::requestCheckingOfString' method.
(WebKit::WebPageProxy::didFinishCheckingText):
(WebKit::WebPageProxy::didCancelCheckingText):
Send the messages to WebProcess that the given request has been
handled or canceled.
* UIProcess/WebPageProxy.h:
(WebPageProxy):
Add public declarations for 'didFinishCheckingText', 'didCancelCheckingText'.
Add private declarations for 'requestCheckingOfString'.
Move the 'spellDocumentTag()' method to to the public section to be
accessible from 'TextCheckerCompletion' class.
* UIProcess/WebPageProxy.messages.in:
A new entry for 'RequestCheckingOfString'.
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit::TextChecker::requestCheckingOfString):
(WebKit):
* UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::requestCheckingOfString):
(WebKit):
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::requestCheckingOfString):
(WebKit):
* UIProcess/qt/TextCheckerQt.cpp:
(WebKit::TextChecker::requestCheckingOfString):
(WebKit):
Add dummy implementations for 'requestCheckingOfString'.
* WebKit2.xcodeproj/project.pbxproj:
Add 'TextCheckerCompletion.{h/cpp} to Mac build.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::generateTextCheckingRequestID):
Helper function to generate the unique identifier for the abstract
'TextCheckingRequest' object.
(WebKit::WebEditorClient::requestCheckingOfString):
Associate 'TextCheckingRequest' with the unique identifier and add them
to the map object.
Get the request data and send it to the UIProcess.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::addTextCheckingRequest):
Add the identifier and the request to the map object.
(WebKit::WebPage::didFinishCheckingText):
(WebKit::WebPage::didCancelCheckingText):
Call didSucceed/didCancel on the 'TextCheckingRequest' to notify the WebCore
about spellcheking results.
Remove the request from the map object.
* WebProcess/WebPage/WebPage.h:
Add declarations for 'addTextCheckingRequest', 'didFinishCheckingText' and
'didCancelCheckingText.'
* WebProcess/WebPage/WebPage.messages.in:
Add a new entry for DidFinishCheckingText, DidCancelCheckingText.
2013-02-28 Alexey Proskuryakov <ap@apple.com>
Reduce amount of rebuilding when touching networking headers
https://bugs.webkit.org/show_bug.cgi?id=111035
Reviewed by Eric Seidel.
Adding includes that are now necessary because WebCore headers don't have them
any more.
* NetworkProcess/HostRecord.h:
* NetworkProcess/NetworkResourceLoadScheduler.h:
* NetworkProcess/NetworkResourceLoader.h:
* Shared/WebRenderLayer.cpp:
* Shared/WebRenderObject.cpp:
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebProcess.cpp:
* WebProcess/soup/WebProcessSoup.cpp:
2013-02-28 Seokju Kwon <seokju.kwon@gmail.com>
[WK2] Refactoring : Fix indentation and braces in WebInspectorClient.h|cpp
https://bugs.webkit.org/show_bug.cgi?id=109925
Reviewed by Benjamin Poulain.
The contents of an outermost namespace block should not be indented.
And One-line control clauses should not use braces.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::closeInspectorFrontend):
* WebProcess/WebCoreSupport/WebInspectorClient.h:
(WebCore):
2013-02-28 Kiran Muppala <cmuppala@apple.com>
Add a pre-bootstrap message for NetworkProcess XPC service
https://bugs.webkit.org/show_bug.cgi?id=111127
Reviewed by Sam Weinig.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
(WebKit::XPCServiceEventHandler): Hold on to the pre-bootstrap message.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceEventHandler): Ditto.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService): Send a pre-bootstrap message for NetworkProcess
XPC service.
2013-02-28 Conrad Shultz <conrad_shultz@apple.com>
Need API to control page underlay color
https://bugs.webkit.org/show_bug.cgi?id=110918
Reviewed by Simon Fraser.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
Encode underlayColor.
(WebKit::WebPageCreationParameters::decode):
Decode underlayColor.
* Shared/WebPageCreationParameters.h:
(WebPageCreationParameters):
Add underlayColor member.
* UIProcess/API/mac/WKView.mm:
(-[WKView underlayColor]):
Accessor; retrieves the WebCore::Color from the WebPageProxy and converts it to an NSColor.
(-[WKView setUnderlayColor:]):
Mutator; converts the NSColor to a WebCore::Color and passes it to the WebPageProxy.
* UIProcess/API/mac/WKViewPrivate.h:
Add underlayColor @property.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setUnderlayColor):
Mutator; dispatches SetUnderlayColor to WebPage.
(WebKit::WebPageProxy::creationParameters):
Set the parameters' underlayColor member appropriately.
* UIProcess/WebPageProxy.h:
Declare new member functions and variable.
(WebKit::WebPageProxy::underlayColor):
Accessor.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::underlayColor):
Return the associated WebPage's underlayColor.
* WebProcess/WebCoreSupport/WebChromeClient.h:
(WebChromeClient):
Declare underlayColor().
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
Apply any underlayColor that was supplied as part of the WebPageCreationParameters.
* WebProcess/WebPage/WebPage.h:
Declare new member functions and variable.
(WebKit::WebPage::underlayColor):
Accessor.
* WebProcess/WebPage/WebPage.messages.in:
Add SetUnderlayColor message.
2013-02-28 Anders Carlsson <andersca@apple.com>
Add the notion of an allowed connection to SessionStorageNamespace
https://bugs.webkit.org/show_bug.cgi?id=111122
Reviewed by Sam Weinig.
Group together each session storage namespace with an allowed connection.
This will help ensure that rouge web processes will not be able to access session storage
from pages in other processes.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::allowedConnection):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection):
Add an m_allowedConnection member variable, as well as setters and getters.
(WebKit::StorageManager::createSessionStorageNamespace):
Take an optional allowed connection. (It can be null if the process has not finished launching).
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
New function to set the allowed connection for a session storage namespace.
(WebKit::StorageManager::createStorageArea):
Add another FIXME.
(WebKit::StorageManager::createSessionStorageNamespaceInternal):
Pass the connection to the SessionStorageNamespace constructor.
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnectionInternal):
Set the allowed connection.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
Pass the connection to createSessionStorageNamespace.
(WebKit::WebPageProxy::connectionWillOpen):
Call setAllowedSessionStorageNamespaceConnection.
(WebKit::WebPageProxy::connectionWillClose):
Call setAllowedSessionStorageNamespaceConnection with a null connection.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
Call connectionWillOpen on all pages.
(WebKit::WebProcessProxy::connectionWillClose):
Call connectionWillClose on all pages.
2013-02-28 Kiran Muppala <cmuppala@apple.com>
Add private API to disable WKView window occlusion detection
https://bugs.webkit.org/show_bug.cgi?id=111107
Reviewed by Simon Fraser.
* UIProcess/API/mac/WKView.mm:
(-[WKView _enableWindowOcclusionNotifications]): Check if occlusion
detection is enabled before enabling notifications.
(windowBecameOccluded): Ditto before changing window occlusion state.
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
Initialize occlusion detection enabled flag to "YES".
(-[WKView windowOcclusionDetectionEnabled]):
(-[WKView setWindowOcclusionDetectionEnabled:]):
* UIProcess/API/mac/WKViewPrivate.h:
2013-02-28 Anders Carlsson <andersca@apple.com>
Add the notion of an allowed connection to SessionStorageNamespace
https://bugs.webkit.org/show_bug.cgi?id=111122
Reviewed by Sam Weinig.
Group together each session storage namespace with an allowed connection.
This will help ensure that rouge web processes will not be able to access session storage
from pages in other processes.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::allowedConnection):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection):
Add an m_allowedConnection member variable, as well as setters and getters.
(WebKit::StorageManager::createSessionStorageNamespace):
Take an optional allowed connection. (It can be null if the process has not finished launching).
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
New function to set the allowed connection for a session storage namespace.
(WebKit::StorageManager::createStorageArea):
Add another FIXME.
(WebKit::StorageManager::createSessionStorageNamespaceInternal):
Pass the connection to the SessionStorageNamespace constructor.
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnectionInternal):
Set the allowed connection.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
Pass the connection to createSessionStorageNamespace.
(WebKit::WebPageProxy::connectionWillOpen):
Call setAllowedSessionStorageNamespaceConnection.
(WebKit::WebPageProxy::connectionWillClose):
Call setAllowedSessionStorageNamespaceConnection with a null connection.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
Call connectionWillOpen on all pages.
(WebKit::WebProcessProxy::connectionWillClose):
Call connectionWillClose on all pages.
2013-02-28 Anders Carlsson <andersca@apple.com>
Implement more StorageAreaProxy member functions
https://bugs.webkit.org/show_bug.cgi?id=111103
Reviewed by Sam Weinig.
* Shared/SecurityOriginData.cpp:
(WebKit::SecurityOriginData::securityOrigin):
* Shared/SecurityOriginData.h:
Add helper to create a WebCore::SecurityOrigin from a SecurityOriginData object.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::key):
Fill the storage map and call through to StorageMap::key.
(WebKit::StorageAreaProxy::contains):
Fill the storage map and call through to StorageMap::contains.
(WebKit::StorageAreaProxy::memoryBytesUsedByCache):
Return 0; this matches StorageAreaImpl.
2013-02-28 Tim Horton <timothy_horton@apple.com>
PDFPlugin: PDF orientation isn't respected when printing or print-previewing
https://bugs.webkit.org/show_bug.cgi?id=110925
<rdar://problem/13008621>
Reviewed by Alexey Proskuryakov.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::drawPDFPage): Teach drawPDFPage about PDFPage's rotation property, and use it
to swap the PDF's cropbox. Painting now matches PDFViewController's historical behavior.
2013-02-28 Sam Weinig <sam@webkit.org>
Don't install unused XPCServices on Lion
<rdar://problem/13264712>
Rubber-stamped by Anders Carlsson
* Configurations/BaseXPCService.xcconfig:
2013-02-28 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r144221): SetSmartInsertDeleteEnabled should be wrapped in PLATFORM(MAC)
* WebProcess/WebPage/WebPage.messages.in: Move
SetSmartInsertDeleteEnabled from USE(APPKIT) to PLATFORM(MAC).
2013-02-27 Csaba Osztrogonác <ossy@webkit.org>
[WK2] One more unreviewed buildfix for EFL, GTK and Qt after r144218.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebProcess/Storage/StorageNamespaceProxy.cpp:
(WebKit::StorageNamespaceProxy::copy):
2013-02-27 Zan Dobersek <zdobersek@igalia.com>
Unreviewed (speculative) build fixes for EFL, GTK and Qt after r144218.
* CMakeLists.txt:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
2013-02-27 John Bauman <jbauman@chromium.org>
Plugin in iframe may not display
https://bugs.webkit.org/show_bug.cgi?id=109879
Reviewed by Simon Fraser.
Update geometry when cliprect changes.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::clipRectChanged):
* WebProcess/Plugins/PluginView.h:
2013-02-27 Jer Noble <jer.noble@apple.com>
REGRESSION (48533): Full-frame plugins stopped working (download instead of loading the plugin)
https://bugs.webkit.org/show_bug.cgi?id=111003
Reviewed by Anders Carlsson.
Also query the Page's pluginData when determining whether a given MIME type can be shown.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCanShowMIMEType):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::canShowMIMEType):
* WebProcess/WebPage/WebPage.h:
2013-02-27 Manuel Rego Casasnovas <rego@igalia.com>
Add smartInsertDeleteEnabled setting to WebCore::Page
https://bugs.webkit.org/show_bug.cgi?id=107840
Reviewed by Ryosuke Niwa.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode): Remove code related to
isSmartInsertDeleteEnabled.
* Shared/WebPageCreationParameters.h:
(WebPageCreationParameters): Remove isSmartInsertDeleteEnabled.
* Shared/WebPreferencesStore.h:
(WebKit): Add macro for smartInsertDeleteEnabled setting.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSmartInsertDeleteEnabled):
(WKPreferencesGetSmartInsertDeleteEnabled): Implement methods using the
new setting.
* UIProcess/API/C/WKPreferencesPrivate.h: Add new methods headers.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage): Set smartInsertDeleteEnabled
setting using m_isSmartInsertDeleteEnabled to keep initial value on Mac.
(WebKit::WebPageProxy::creationParameters): Remove usage of
parameters.isSmartInsertDeleteEnabled.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::smartInsertDeleteEnabled): Enable method for
all platforms.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Remove m_isSmartInsertDeleteEnabled
initialization.
(WebKit::WebPage::updatePreferences): Set smartInsertDeleteEnabled
setting.
(WebKit::WebPage::isSmartInsertDeleteEnabled): Implement method using
settings.
(WebKit):
(WebKit::WebPage::setSmartInsertDeleteEnabled): Implement method using
settings.
* WebProcess/WebPage/WebPage.h:
(WebPage): Enable methods dealing with smartInsertDeleteEnabled for all
platforms and remove m_isSmartInsertDeleteEnabled as it will be a
setting.
2013-02-27 Anders Carlsson <andersca@apple.com>
More storage scaffolding
https://bugs.webkit.org/show_bug.cgi?id=110997
Reviewed by Andreas Kling.
* DerivedSources.make:
Add StorageAreaProxy.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::setItem):
Send back a DidSetItem message.
* WebKit2.xcodeproj/project.pbxproj:
Add generated files.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::StorageAreaProxy):
Add the message receiver.
(WebKit::StorageAreaProxy::~StorageAreaProxy):
Remove the message receiver.
(WebKit::StorageAreaProxy::didSetItem):
add stub.
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
* WebProcess/Storage/StorageAreaProxy.messages.in: Added.
2013-02-27 Sam Weinig <sam@webkit.org>
REGRESSION: Loading flash switches to discrete graphics, 100 MB on membuster
<rdar://problem/13229828>
Reviewed by Dan Bernstein.
Due the change in CFBundleIdentifier, the WebProcess and PluginProcess were
unnecessarily muxing (they used to be whitelisted by OpenGL) to the discrete
GPU.
* PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
* WebProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
Add NSSupportsAutomaticGraphicsSwitching YES.
* WebKit2.xcodeproj/project.pbxproj:
Re-add the PluginService.32-64.Info.plist plist to the project file.
2013-02-26 Alexey Proskuryakov <ap@apple.com>
Don't add a body to platform request until necessary
https://bugs.webkit.org/show_bug.cgi?id=110900
Reviewed by Brady Eidson.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::willSendRequest): Restore body after IPC. There
is no way for the client to change it.
* Shared/Downloads/mac/DownloadMac.mm:
(WebKit::Download::start):
(WebKit::Download::startWithHandle):
Pass UpdateHTTPBody when passing a request to NSURLConnection.
* Shared/mac/WebCoreArgumentCodersMac.mm: (CoreIPC::::encodePlatformData):
Never serialize the request body. It's slow, and sometimes impossible, so just
keeping things consistent.
* Shared/mac/WebURLRequestMac.mm: (WebKit::WebURLRequest::platformRequest):
Pass DoNotUpdateHTTPBody, as we can't update it outside NetworkProcess.
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(WebKit::CustomProtocolManagerProxy::startLoading): Ditto.
* WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
(WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame):
Restore existing body after a client call..
* WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::platformCanHandleRequest):
Pass DoNotUpdateHTTPBody, as we can't update it outside NetworkProcess.
2013-02-27 Glenn Adams <glenn@skynav.com>
Add ENABLE_CSS3_TEXT_LINE_BREAK flag.
https://bugs.webkit.org/show_bug.cgi?id=110944
Reviewed by Dean Jackson.
* Configurations/FeatureDefines.xcconfig:
2013-02-27 Michael Brüning <michael.bruning@digia.com>
[Qt][WK2] Replace use of WebPreferences with use of WKPrefences C API
https://bugs.webkit.org/show_bug.cgi?id=108952
Reviewed by Simon Hausmann.
Signed off for WebKit2 by Benjamin Poulain.
This patch moves the view classes and preferences in the Qt API
to use the C API for accessing and manipulating preferences as
part of the cleanup and move towards using the C API as base for
the Qt WebKit2 API.
Adds the function WebKit::adoptToQString for convenience when
dealing with QString and copied String objects.
Removes the ScrollAnimatorEnabled options from QWebPreferences.
* UIProcess/API/cpp/qt/WKStringQt.cpp:
(WebKit::adoptToQString):
* UIProcess/API/cpp/qt/WKStringQt.h:
(WebKit):
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
* UIProcess/API/qt/qwebpreferences.cpp:
(QWebPreferencesPrivate::testAttribute):
(QWebPreferencesPrivate::setAttribute):
(QWebPreferencesPrivate::setFontFamily):
(QWebPreferencesPrivate::fontFamily):
(QWebPreferencesPrivate::setFontSize):
(QWebPreferencesPrivate::fontSize):
* UIProcess/API/qt/qwebpreferences_p.h:
* UIProcess/API/qt/qwebpreferences_p_p.h:
2013-02-26 Anders Carlsson <andersca@apple.com>
Implement StorageAreaProxy::getItem and StorageAreaProxy::setItem
https://bugs.webkit.org/show_bug.cgi?id=110927
Reviewed by Sam Weinig.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::setItem):
* UIProcess/Storage/StorageManager.h:
Add empty stub.
* UIProcess/Storage/StorageManager.messages.in:
Add SetItem message.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::getItem):
Fill the storage map and get the item from it.
(WebKit::StorageAreaProxy::setItem):
Update the storage map and send a SetItem message to the UI process.
2013-02-26 Anders Carlsson <andersca@apple.com>
StorageAreaProxy should hold on to a StorageMap and not a HashMap
https://bugs.webkit.org/show_bug.cgi?id=110919
Reviewed by Jessie Berlin.
Create a storage map instead of a hash map.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::length):
(WebKit::StorageAreaProxy::loadValuesIfNeeded):
* WebProcess/Storage/StorageAreaProxy.h:
(WebCore):
(StorageAreaProxy):
2013-02-26 Anders Carlsson <andersca@apple.com>
Fix a copy/paste error in WebLoaderClient::didBlockInsecurePluginVersion
https://bugs.webkit.org/show_bug.cgi?id=110914
<rdar://problem/13297581>
Reviewed by Beth Dakin.
Pass kWKErrorCodeInsecurePlugInVersion to the pluginDidFail callback.
* UIProcess/WebLoaderClient.cpp:
(WebKit::WebLoaderClient::didBlockInsecurePluginVersion):
2013-02-26 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; use correct macro for platform name in FeatureDefines.xcconfig.
* Configurations/FeatureDefines.xcconfig:
2013-02-26 Manuel Rego Casasnovas <rego@igalia.com>
[WK2][GTK] REGRESSION (r143463): unit test failure in WebKit2APITests/TestContextMenu
https://bugs.webkit.org/show_bug.cgi?id=110869
Reviewed by Martin Robinson.
Test was failing because of new media controls needs more space to be
painted than just 10x10 pixels.
* UIProcess/API/gtk/tests/TestContextMenu.cpp:
(testContextMenuDefaultMenu): Modified test in order to give more space
to the media controls.
2013-02-26 Dean Jackson <dino@apple.com>
Draw intermediate snapshots if possible
https://bugs.webkit.org/show_bug.cgi?id=110811
Reviewed by Simon Fraser.
After http://webkit.org/b/110495 we delayed snapshotting until we've
received a nice image, but this made the page look like it is broken.
We should draw any intermediate snapshots that we find, which might
include content such as progress bars/spinners.
* WebProcess/Plugins/PluginView.cpp:
(WebKit): Reinstate 60 attempts at snapshots before giving up.
(WebKit::PluginView::isAcceleratedCompositingEnabled): We do not
want accelerated compositing enabled when we are trying to capture
snapshots.
2013-02-26 Andras Becsi <andras.becsi@digia.com>
Remove nonexistent StringPairVector.h from Target.pri after r142839
Unreviewed gardening.
* Target.pri:
2013-02-26 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed trivial !ENABLE(NETSCAPE_PLUGIN_API) build fix
Add an intermediate pluginName string variable instead of
accessing plugin.info outside the feature #ifdef.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::unavailablePluginButtonClicked):
2013-02-25 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: remove redundant update of non compositing layer.
https://bugs.webkit.org/show_bug.cgi?id=110444
Reviewed by Noam Rosenthal.
Currently, we update non compositing layer when the page scrolled. However, it
is not needed, because TiledBackingStore can scroll without tile update.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::scrollNonCompositedContents):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost):
2013-02-25 Jer Noble <jer.noble@apple.com>
REGRESSION(r143981): Crash in WebFrameLoaderClient::dispatchDidStartProvisionalLoad()
https://bugs.webkit.org/show_bug.cgi?id=110848
Reviewed by Ryosuke Niwa.
NULL-check the result of document->documentElement().
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
2013-02-25 Anders Carlsson <andersca@apple.com>
Add a new unavailablePluginButtonClicked callback that takes a WKDictionary of plug-in information
https://bugs.webkit.org/show_bug.cgi?id=110821
Reviewed by Beth Dakin.
* UIProcess/API/C/WKPage.cpp:
(WKPageGetPluginInformationPluginspageAttributeURLKey):
(WKPageGetPluginInformationPluginURLKey):
Add two new API key getters.
* UIProcess/API/C/WKPage.h:
Add a new callback and deprecate the old callback.
* UIProcess/WebLoaderClient.cpp:
(WebKit::WebLoaderClient::didFailToInitializePlugin):
(WebKit::WebLoaderClient::didBlockInsecurePluginVersion):
(WebKit::WebLoaderClient::pluginLoadPolicy):
Make the pluginInformationDictionary a static member function of WebPageProxy so it
can be called from WebUIClient as well.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getPluginPath):
Pass the bundle version as well.
(WebKit::WebPageProxy::pluginInformationPluginspageAttributeURLKey):
(WebKit::WebPageProxy::pluginInformationPluginURLKey):
Add two new keys.
(WebKit::WebPageProxy::pluginInformationDictionary):
Handle more keys.
(WebKit::WebPageProxy::unavailablePluginButtonClicked):
Get the plug-in bundle identifier and version.
* UIProcess/WebPageProxy.messages.in:
Pass along more information; the frame and page URLs.
* UIProcess/WebUIClient.cpp:
(WebKit::WebUIClient::unavailablePluginButtonClicked):
Call the new callback if it's supported.
* UIProcess/WebUIClient.h:
(WebUIClient):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Update for API changes.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::unavailablePluginButtonClicked):
Ensure that the pluginspage attribute is a valid URL.
2013-02-21 Jeffrey Pfau <jpfau@apple.com>
Optionally partition cache to prevent using cache for tracking
https://bugs.webkit.org/show_bug.cgi?id=110269
Reviewed by Maciej Stachowiak.
Update WKSI bindings and add feature defines.
* Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2013-02-25 Jer Noble <jer.noble@apple.com>
Normalize ENABLE_ENCRYPTED_MEDIA definitions across all FeatureDefines files.
https://bugs.webkit.org/show_bug.cgi?id=110806
Ensure both ENCRYPTED_MEDIA and ENCRYPTED_MEDIA_V2 are enabled on macosx_1090.
Reviewed by Alexey Proskuryakov.
* Configurations/FeatureDefines.xcconfig:
2013-02-25 Jer Noble <jer.noble@apple.com>
Full screen mode should not exit when application resigns active state.
https://bugs.webkit.org/show_bug.cgi?id=106129
Reviewed by Darin Adler.
Now that full screen windows get their own full screen space, there is no reason to exit full
screen mode when the application resigns active state. Instead, the windowserver will bring the
space containing the newly active application to the foreground. The user can then swipe back
to the full screen space (or use Mission Control) to get back to the full screen window.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController windowDidLoad]): Remove the applicationDidResignActive: notification from WKFullScreenWindowController.
2013-02-25 Jer Noble <jer.noble@apple.com>
Safari shows empty window and paints webpage in full-screen background
https://bugs.webkit.org/show_bug.cgi?id=103712
Reviewed by Darin Adler.
When canceling full screen mode due to a provisional load, exit normally instead of closing the
full screen window controller. Additionally, to ensure full screen is cancelled when the enclosing
frame around a full screen iframe is navigated, check to see if the navigating document contains
a full screen element, rather than checking whether the document itself is full screen.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
2013-02-25 Anders Carlsson <andersca@apple.com>
Fix build.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didBlockInsecurePluginVersion):
2013-02-25 Anders Carlsson <andersca@apple.com>
Add a new pluginDidFail callback that takes a WKDictionary of plug-in information
https://bugs.webkit.org/show_bug.cgi?id=110793
<rdar://problem/13265303>
Reviewed by Sam Weinig.
Add a new pluginDidFail callback that takes a WKDictionaryRef and also pass in the
frame and page URLs.
* UIProcess/API/C/WKPage.h:
* UIProcess/WebLoaderClient.cpp:
(WebKit::pluginInformationDictionary):
(WebKit::WebLoaderClient::didFailToInitializePlugin):
(WebKit::WebLoaderClient::didBlockInsecurePluginVersion):
(WebKit::WebLoaderClient::pluginLoadPolicy):
* UIProcess/WebLoaderClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFailToInitializePlugin):
(WebKit::WebPageProxy::didBlockInsecurePluginVersion):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::didFailToInitializePlugin):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::createJavaAppletWidget):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
2013-02-25 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Tab between text annotations
https://bugs.webkit.org/show_bug.cgi?id=106539
<rdar://problem/12751789>
Reviewed by Darin Adler.
Use [PDFLayerController activateNextAnnotation:] to advance focus when the tab key is hit while inside a PDF form.
Also, a drive-by fix to make the lifetime of PDFPluginAnnotationEventListener's m_annotation pointer more explicit.
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Add activateNextAnnotation: SPI.
* WebProcess/Plugins/PDF/PDFPlugin.h:
(PDFPlugin): Add focus(Next|Previous)Annotation.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::focusNextAnnotation): Ask PDFLayerController to focus the next annotation.
(WebKit::PDFPlugin::focusPreviousAnnotation): Ask PDFLayerController to focus the next annotation.
* WebProcess/Plugins/PDF/PDFPluginAnnotation.h: Drive-by, initialize m_parent to 0.
(WebKit::PDFPluginAnnotation::PDFPluginAnnotationEventListener::setAnnotation): Added.
* WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::attach): Use eventNames() instead of string literals.
(WebKit::PDFPluginAnnotation::~PDFPluginAnnotation): Clear the event listener's reference to its annotation.
(WebKit::PDFPluginAnnotation::PDFPluginAnnotationEventListener::handleEvent): Null-check the event listener's annotation.
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h:
(WebKit::PDFPluginTextAnnotation::PDFPluginTextAnnotation): Create our PDFPluginTextAnnotationEventListener.
(PDFPluginTextAnnotationEventListener): Added an event listener (for keydown events in form fields).
(WebKit::PDFPluginTextAnnotation::PDFPluginTextAnnotationEventListener::create):
(WebKit::PDFPluginTextAnnotation::PDFPluginTextAnnotationEventListener::setTextAnnotation):
(WebKit::PDFPluginTextAnnotation::PDFPluginTextAnnotationEventListener::PDFPluginTextAnnotationEventListener):
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::~PDFPluginTextAnnotation): Unregister our keydown event listener.
(WebKit::PDFPluginTextAnnotation::createAnnotationElement): Register our keydown event listener.
(WebKit::PDFPluginTextAnnotation::PDFPluginTextAnnotationEventListener::handleEvent): Ask PDFPlugin to focus
the next/previous annotation when the tab key is pressed (Shift-Tab goes backwards).
2013-02-25 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12976385> Remove rule to silence attempts to create the ~/Library/Caches/com.apple.WebKit2.WebProcessService directory
Reviewed by Anders Carlsson.
* WebProcess/com.apple.WebProcess.sb.in: Remove the obsolete rule. We no longer
have a "WebProcessService".
2013-02-25 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] Remove unneeded method didResumeContent from PageViewportController clients
https://bugs.webkit.org/show_bug.cgi?id=110751
Reviewed by Jocelyn Turcotte.
This is a clean-up in the PageViewportController clients that removes leftover
code from previous design that is partially unused and unnecessary, to simplify
the interaction between PageViewportController and clients.
* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::resumeContent):
* UIProcess/PageViewportControllerClient.h:
(PageViewportControllerClient):
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
* UIProcess/efl/PageViewportControllerClientEfl.h:
(PageViewportControllerClientEfl):
* UIProcess/qt/PageViewportControllerClientQt.cpp:
(WebKit::PageViewportControllerClientQt::animateContentRectVisible):
(WebKit::PageViewportControllerClientQt::flickMoveEnded):
(WebKit::PageViewportControllerClientQt::resumeAndUpdateContent):
(WebKit::PageViewportControllerClientQt::pinchGestureCancelled):
* UIProcess/qt/PageViewportControllerClientQt.h:
(PageViewportControllerClientQt):
2013-02-25 Andreas Kling <akling@apple.com>
Reduce amount of code that includes StylePropertySet.h
<http://webkit.org/b/101149>
Reviewed by Antti Koivisto.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
2013-02-24 Andreas Kling <akling@apple.com>
Reduce include graph of JSDOMBinding.h
<http://webkit.org/b/110709>
Reviewed by Antti Koivisto.
* Shared/WebRenderObject.cpp:
(WebKit::WebRenderObject::WebRenderObject):
* WebProcess/Storage/StorageAreaProxy.cpp:
2013-02-22 Sam Weinig <sam@webkit.org>
Add temporary work around for 32-bit plugins not working in production builds as XPCServices
https://bugs.webkit.org/show_bug.cgi?id=110680
<rdar://problem/13236883>
Reviewed by Anders Carlsson.
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
Temporarily don't use XPC for plug-ins for Safari while we figure out why the
32-bit XPCService is being built universal.
2013-02-22 Tim Horton <timothy_horton@apple.com>
[WK2] The root and page overlay layers should be the size of the view, not the content
https://bugs.webkit.org/show_bug.cgi?id=110660
<rdar://problem/13096456>
Reviewed by Simon Fraser.
Use the view size for the size of the root and page overlay layers.
For one, we never update these layers' sizes when the content size changes, causing size mismatches.
In addition, there's no reason an overlay shouldn't be able to draw outside of the bounds of the content.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
2013-02-22 Anders Carlsson <andersca@apple.com>
pluginLoadStrategy should take a WKDictionaryRef for extensibility
https://bugs.webkit.org/show_bug.cgi?id=110656
<rdar://problem/13265303>
Reviewed by Jessie Berlin.
Change pluginLoadStrategy to take a WKDictionaryRef instead of a number of parameters;
this lets us add more plug-in information if needed. Also add the page URL and rename documentURL to frameURL.
* UIProcess/API/C/WKPage.cpp:
(WKPageGetPluginInformationBundleIdentifierKey):
(WKPageGetPluginInformationBundleVersionKey):
(WKPageGetPluginInformationDisplayNameKey):
(WKPageGetPluginInformationFrameURLKey):
(WKPageGetPluginInformationMIMETypeKey):
(WKPageGetPluginInformationPageURLKey):
* UIProcess/API/C/WKPage.h:
* UIProcess/WebLoaderClient.cpp:
(WebKit):
(WebKit::WebLoaderClient::pluginLoadPolicy):
* UIProcess/WebLoaderClient.h:
(WebLoaderClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getPluginPath):
(WebKit::WebPageProxy::pluginInformationBundleIdentifierKey):
(WebKit):
(WebKit::WebPageProxy::pluginInformationBundleVersionKey):
(WebKit::WebPageProxy::pluginInformationDisplayNameKey):
(WebKit::WebPageProxy::pluginInformationFrameURLKey):
(WebKit::WebPageProxy::pluginInformationMIMETypeKey):
(WebKit::WebPageProxy::pluginInformationPageURLKey):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
(WebKit::WebPage::canPluginHandleResponse):
2013-02-22 Anders Carlsson <andersca@apple.com>
Move pluginLoadPolicy to the page loader client
https://bugs.webkit.org/show_bug.cgi?id=110635
<rdar://problem/13265303>
Reviewed by Sam Weinig.
Move the pluginLoadPolicy callback to the page loader client where it belongs.
* UIProcess/API/C/WKPage.h:
* UIProcess/WebLoaderClient.cpp:
(WebKit::toWKPluginLoadPolicy):
(WebKit):
(WebKit::toPluginModuleLoadPolicy):
(WebKit::WebLoaderClient::pluginLoadPolicy):
* UIProcess/WebLoaderClient.h:
(WebLoaderClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getPluginPath):
* UIProcess/WebUIClient.cpp:
(WebKit):
* UIProcess/WebUIClient.h:
(WebUIClient):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
2013-02-21 Jer Noble <jer.noble@apple.com>
Two video contollers appear after exiting the fullscreen video when using menubar to exit.
https://bugs.webkit.org/show_bug.cgi?id=110506
Reviewed by Eric Carlson.
When we are notified that the fullscreen window is about to exit fullscreen mode unrequested,
call requestExitFullScreen(), as that will result in Document::webkitExitFullScreen() correctly
tearing down the fullscreen state.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
2013-02-22 Balazs Kelemen <kbalazs@webkit.org>
Yet another unreviewed buildfix after r143714.
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::paintToCairoSurface):
2013-02-22 Balazs Kelemen <kbalazs@webkit.org>
Unreviewed preventive buildfix after my last commit.
* UIProcess/API/efl/EwkView.cpp:
* UIProcess/efl/WebView.cpp:
2013-02-22 Balazs Kelemen <kbalazs@webkit.org>
[CoordGfx] Minor cleanup in CoordinatedGraphicsScene::paintToGraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=109824
Reviewed by Andreas Kling.
Avoid ugly ifdefs by using PlatformGraphicsContext.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::displayTimerFired):
2013-02-22 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Remove declaration of non-existent functions from EwkView
https://bugs.webkit.org/show_bug.cgi?id=110572
Reviewed by Kenneth Rohde Christiansen.
Removed declarations of non-existent EwkView::paintToCurrentGLContext() and
EwkView::paintToCairoSurface(cairo_surface_t*) that were accidentally
left at r143699.
* UIProcess/API/efl/EwkView.h:
(EwkView):
2013-02-22 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Clean up PageViewportControllerClientEfl class
https://bugs.webkit.org/show_bug.cgi?id=110438
Reviewed by Andreas Kling.
Cleaned up PageViewportControllerClientEfl class from unused methods
and class members, eliminated access to WK2 internals from this class.
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::didChangeContentsSize):
* UIProcess/efl/PageViewportControllerClientEfl.h:
(WebKit::PageViewportControllerClientEfl::~PageViewportControllerClientEfl):
(PageViewportControllerClientEfl):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::WebView):
(WebKit::WebView::updateViewportSize):
2013-02-22 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[WK2][EFL][GTK][Qt] Add context menu item tags for C API
https://bugs.webkit.org/show_bug.cgi?id=109815
Reviewed by Anders Carlsson.
This patch adds context menu item tags used by EFL, GTK and Qt ports, defined in
WebCore to WK2 C API.
* Shared/API/c/WKContextMenuItemTypes.h:
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toImpl):
2013-02-22 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Move AC code from EwkView to WebView
https://bugs.webkit.org/show_bug.cgi?id=110216
Reviewed by Anders Carlsson.
Accelerated compositing code is moved from EwkView to WebView.
Added new WKView API to be used from EwkView instead of direct accessing
to coordinated graphics scene.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewSetUserViewportTranslation):
(WKViewUserViewportToContents):
(WKViewPaintToCurrentGLContext):
(WKViewPaintToCairoSurface):
* UIProcess/API/C/efl/WKView.h:
Added WKView API functions.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::displayTimerFired):
(EwkView::feedTouchEvent):
(EwkView::createGLSurface):
(EwkView::handleEvasObjectCalculate):
(EwkView::handleEwkViewMouseWheel):
(EwkView::handleEwkViewMouseDown):
(EwkView::handleEwkViewMouseUp):
(EwkView::handleEwkViewMouseMove):
* UIProcess/API/efl/EwkView.h:
(EwkView):
Using new WKView API.
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::initialize):
(WebKit):
(WebKit::WebView::paintToCurrentGLContext):
(WebKit::WebView::paintToCairoSurface):
(WebKit::WebView::userViewportToContents):
(WebKit::WebView::transformFromScene):
(WebKit::WebView::transformToScene):
(WebKit::WebView::coordinatedGraphicsScene):
(WebKit::WebView::enterAcceleratedCompositingMode):
(WebKit::WebView::exitAcceleratedCompositingMode):
* UIProcess/efl/WebView.h:
(WebCore):
(WebKit::WebView::setUserViewportTranslation):
(WebView):
Added WebView methods to support new WKView API.
2013-02-21 Dima Gorbik <dgorbik@apple.com>
QuickTime plugin doesn't load when accelerated compositing is disabled
https://bugs.webkit.org/show_bug.cgi?id=110534
Reviewed by Anders Carlsson.
We shouldn't disable accelerated compositing for plugins, because
plugins such as QuickTime rely on this and will try to set other drawing
models that we don't support.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::isAcceleratedCompositingEnabled):
2013-02-21 Dean Jackson <dino@apple.com>
Plug-in snapshotting code always accepts first snapshot
https://bugs.webkit.org/show_bug.cgi?id=110495
Reviewed by Tim Horton.
When we detect a plugin that can be snapshotted we start capturing
images until we find one that we believe isn't blank, or we timeout.
I introduced a regression recently where we swap renderers as
soon as the snapshot arrives, whether or not is is blank.
The fix was to have the embedder (currently only WK2) be the one
who tells the HTMLPlugInElement to start displaying snapshots.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginSnapshotTimerFired): When we find a
snapshot that we like, tell the HTMLPlugInElement to move to
the snapshot view.
2013-02-21 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.am: Add -DBUILDING_WEBKIT flags to introspection
scanner.
* GNUmakefile.list.am: Add missing header to compilation and
remove one that no longer exists.
2013-02-21 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Move PageViewportController and PageViewportControllerClientEfl out from WebView
https://bugs.webkit.org/show_bug.cgi?id=110345
Reviewed by Andreas Kling.
WebView does not need to know about both PageViewportController and
PageViewportControllerClientEfl. Considering the fact that PageViewportController
will stop being WK2 internal and will be based on WK2 C API, it
should be owned by EwkView rather than WebView.
This patch is also a preparation for WKViewClient API extension to cover all
the places where PageViewportController and PageViewportControllerClientEfl
are accessed directly from WebView at the moment.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/efl/EwkView.h:
(WebKit):
(EwkView::pageViewportControllerClient):
(EwkView::pageViewportController):
(EwkView):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::didCommitLoad):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::didChangeContentsSize):
(WebKit::WebView::didChangeViewportProperties):
(WebKit::WebView::pageDidRequestScroll):
(WebKit::WebView::didRenderFrame):
(WebKit::WebView::pageTransitionViewportReady):
* UIProcess/efl/WebView.h:
(WebView):
2013-02-20 Tim Horton <timothy_horton@apple.com>
Provide WKView SPI to defer telling the WebPageProxy and WebProcess about changes in the hosting window
https://bugs.webkit.org/show_bug.cgi?id=110415
<rdar://problem/13095405>
Reviewed by Simon Fraser.
* UIProcess/API/mac/WKView.mm: Add _viewInWindowChangesDeferredCount and _viewInWindowChangeWasDeferred to WKViewData.
(-[WKView viewDidMoveToWindow]): If we're deferring window changes, don't include the ViewIsInWindow flag
when sending viewStateDidChange. Instead, save the fact that we want to do that later aside.
(-[WKView beginDeferringViewInWindowChanges]):
(-[WKView endDeferringViewInWindowChanges]): Straightforward begin/end pair. When we exit the last pair and
have a pending window change, let the WebPageProxy know. WebPageProxy will do the check to ensure that
the in-window state has actually changed.
(-[WKView isDeferringViewInWindowChanges]):
* UIProcess/API/mac/WKViewPrivate.h:
2013-02-20 Kiran Muppala <cmuppala@apple.com>
Disable window occlusion notifications for App Store on Mac.
https://bugs.webkit.org/show_bug.cgi?id=110417
Reviewed by Simon Fraser.
Temporary fix to workaround issues with window occlusion notifications
in App Store.
* UIProcess/API/mac/WKView.mm:
(+[WKView _registerWindowOcclusionNotificationHandlers]): Return early
if the main bundle identifier matches that of App Store.
2013-02-20 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/110410> Specify the plug-in process / service entitlements via the Xcode configuration.
This is the modern mechanism for applying entitlements to production builds,
and it simplifies the maintenance of entitlements going forward. It also allows
us to fix the new XPC PluginServices to have the same entitlements as PluginProcess.
Reviewed by Alexey Proskuryakov.
* Configurations/Base.xcconfig: Ad-hoc sign all WebKit2 components.
* Configurations/PluginProcess.xcconfig: Specify the entitlements to use.
* Configurations/PluginService.32.xcconfig: Ditto.
* Configurations/PluginService.64.xcconfig: Ditto.
* Configurations/PluginService.Development.xcconfig: Ditto.
* Configurations/PluginService.entitlements: Renamed from Source/WebKit2/PluginProcess/mac/PluginProcess.entitlements.
Move the entitlements in to the Configurations directory to make them easier to find.
* PluginProcess/mac/add-entitlements.sh: Removed. In my testing the dependency issue mentioned
in the script is not an issue with current versions of Xcode. If we see it again we can come
up with a workaround that doesn't involve performing the signing via a script phase.
* WebKit2.xcodeproj/project.pbxproj:
2013-02-20 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/110409> Remove duplication between 32- and 64-bit PluginService plists.
Reviewed by Dan Bernstein.
The only difference between the plists was the CFBundleIdentifier. Since the values are the
same as the product name, we can just use the value of the PRODUCT_NAME configuration setting.
* Configurations/PluginService.32.xcconfig:
* Configurations/PluginService.64.xcconfig:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist: Renamed from Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist: Removed.
2013-02-20 Simon Fraser <simon.fraser@apple.com>
Zoomed, slow-scrolling pages keep recreating tiles when scrolled
https://bugs.webkit.org/show_bug.cgi?id=110379
Reviewed by Tim Horton.
Make the visible rect and exposed rects passed through
the drawing area to the tile cache FloatRects instead of IntRects.
* UIProcess/API/mac/WKView.mm:
(-[WKView setFrameSize:]):
(-[WKView _updateWindowAndViewFrames]):
(-[WKView enableFrameSizeUpdates]):
(-[WKView setMinimumWidthForAutoLayout:]):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::viewExposedRectChanged):
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::setExposedRect):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::viewExposedRectChanged):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect):
2013-02-20 Dirk Schulze <krit@webkit.org>
Enable CANVAS_PATH flag
https://bugs.webkit.org/show_bug.cgi?id=108508
Reviewed by Simon Fraser.
Enable CANVAS_PATH flag on trunk.
* Configurations/FeatureDefines.xcconfig:
2013-02-20 Laszlo Gombos <l.gombos@samsung.com>
Remove unnecessary includes for Platform.h from headers
https://bugs.webkit.org/show_bug.cgi?id=110300
Reviewed by Alexey Proskuryakov.
wtf/Platform.h only need to be included in a few places directly
as it is included in config.h. Remove the unnecessay duplicate as
it can be confusing.
* Shared/PrintInfo.h:
2013-02-20 Huang Dongsung <luxtella@company100.net>
[WK2] Remove m_viewportSize in WebPage.
https://bugs.webkit.org/show_bug.cgi?id=110311
Reviewed by Anders Carlsson.
EFL and Qt use m_viewSize as a contents size while Apple use it as a viewport
size, so EFL and Qt introduced m_viewportSize to make WebPage know a viewport
size.
EFL and Qt use m_viewSize as a contents size because the size of non compositing
layer is contents size, and EFL and Qt mark whole non compositing layer as dirty
using m_viewSize. Bug 110299 (http://webkit.org/b/110299) changes that it is not
necessary to know m_viewSize when marking whole non compositing layer as dirty.
So we can make EFL and Qt use m_viewSize as a viewport size also.
This patch removes m_viewportSize and related methods to increase readability.
* UIProcess/API/qt/raw/qrawwebview.cpp:
(QRawWebView::setSize):
* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::didChangeViewportSize):
* UIProcess/WebPageProxy.cpp:
(WebKit):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::pageRect):
(WebKit::WebChromeClient::contentsSizeChanged):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updateBackingStoreState):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize):
(WebKit::WebPage::sendViewportAttributesChanged):
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/WebPage.messages.in:
2013-02-20 Huang Dongsung <luxtella@company100.net>
[WK2] add setNeedsDisplay in DrawingArea to mark whole layer as dirty.
https://bugs.webkit.org/show_bug.cgi?id=110299
Reviewed by Anders Carlsson.
Currently, we call setNeedsDisplay with the size of WebPage to mark whole
backing store as dirty. However, the size of non compositing layer can be
inconsistent with the size of WebPage. For example, in Coordinated Graphics, the
size of non compositing layer is contents size.
So, WebPage should not assume the size of non compositing layer, and should just
call setNeedsDisplay when marking whole layer as dirty.
In addition, this patch renames from setNeedsDisplay() with a rect argument to
setNeedsDisplayInRect(), which matches to the terms of GraphicsLayer.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::invalidateContentsAndRootView):
(WebKit::WebChromeClient::invalidateContentsForSlowScroll):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::restoreViewState):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::setNonCompositedContentsNeedDisplay):
(WebKit):
(WebKit::CoordinatedLayerTreeHost::setNonCompositedContentsNeedDisplayInRect):
(WebKit::CoordinatedLayerTreeHost::scrollNonCompositedContents):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost):
* WebProcess/WebPage/DrawingArea.h:
(DrawingArea):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::setNeedsDisplay):
(WebKit):
(WebKit::DrawingAreaImpl::setNeedsDisplayInRect):
(WebKit::DrawingAreaImpl::scroll):
(WebKit::DrawingAreaImpl::forceRepaint):
(WebKit::DrawingAreaImpl::didUninstallPageOverlay):
(WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay):
(WebKit::DrawingAreaImpl::resumePainting):
* WebProcess/WebPage/DrawingAreaImpl.h:
(DrawingAreaImpl):
* WebProcess/WebPage/LayerTreeHost.h:
(LayerTreeHost):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize):
(WebKit::WebPage::setDrawsBackground):
(WebKit::WebPage::setDrawsTransparentBackground):
(WebKit::WebPage::resumeActiveDOMObjectsAndAnimations):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::setNonCompositedContentsNeedDisplay):
(WebKit):
(WebKit::LayerTreeHostGtk::setNonCompositedContentsNeedDisplayInRect):
(WebKit::LayerTreeHostGtk::scrollNonCompositedContents):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
(LayerTreeHostGtk):
* WebProcess/WebPage/mac/LayerTreeHostMac.h:
(LayerTreeHostMac):
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplay):
(WebKit):
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplayInRect):
(WebKit::LayerTreeHostMac::scrollNonCompositedContents):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
(RemoteLayerTreeDrawingArea):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setNeedsDisplay):
(WebKit):
(WebKit::RemoteLayerTreeDrawingArea::setNeedsDisplayInRect):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setNeedsDisplay):
(WebKit):
(WebKit::TiledCoreAnimationDrawingArea::setNeedsDisplayInRect):
2013-02-20 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Port EwkPopupMenuItem to the C API
https://bugs.webkit.org/show_bug.cgi?id=108798
Reviewed by Kenneth Rohde Christiansen.
Make use of the new WKPopupItem C API inside EwkPopupMenuItem to remove
dependency on internal WebPopupItem type. Eina shared string members
are now lazily initialized to make the object cheaper to construct.
* UIProcess/API/efl/ewk_popup_menu.cpp:
(EwkPopupMenu::EwkPopupMenu):
* UIProcess/API/efl/ewk_popup_menu_item.cpp:
(EwkPopupMenuItem::EwkPopupMenuItem):
(EwkPopupMenuItem::type):
(EwkPopupMenuItem::textDirection):
(EwkPopupMenuItem::text):
(EwkPopupMenuItem::tooltipText):
(EwkPopupMenuItem::accessibilityText):
(EwkPopupMenuItem::hasTextDirectionOverride):
(EwkPopupMenuItem::isEnabled):
(EwkPopupMenuItem::isLabel):
(EwkPopupMenuItem::isSelected):
* UIProcess/API/efl/ewk_popup_menu_item_private.h:
(EwkPopupMenuItem::create):
(EwkPopupMenuItem):
2013-02-19 Tim Horton <timothy_horton@apple.com>
Clarify isInWindow vs. isVisible path through to RenderLayerCompositor
https://bugs.webkit.org/show_bug.cgi?id=110261
<rdar://problem/13196122>
Reviewed by Simon Fraser.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setIsInWindow):
Use Page::setIsInWindow in addition to willMoveOffscreen/didMoveOnscreen.
2013-02-19 Conrad Shultz <conrad_shultz@apple.com>
Allow UI clients to handle vertical wheel events.
https://bugs.webkit.org/show_bug.cgi?id=110006
Reviewed by Tim Horton.
Add API to allow clients to selectively control rubber-banding at vertical page extrema.
* UIProcess/API/C/WKPage.cpp:
(WKPageRubberBandsAtBottom):
Proxy for the corresponding function in WebCore::Page.
(WKPageSetRubberBandsAtBottom):
Ditto.
(WKPageRubberBandsAtTop):
Ditto.
(WKPageSetRubberBandsAtTop):
Ditto.
* UIProcess/API/C/WKPage.h:
Declare new API.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
Initialize new member variables.
(WebKit::WebPageProxy::setRubberBandsAtBottom):
New function; dispatches a matching message to the WebKit::WebPage.
(WebKit::WebPageProxy::setRubberBandsAtTop):
Ditto.
* UIProcess/WebPageProxy.h:
(WebPageProxy):
Declare new API.
(WebKit::WebPageProxy::rubberBandsAtBottom):
New accessor function.
(WebKit::WebPageProxy::rubberBandsAtTop):
Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setRubberBandsAtBottom):
New function; call the matching function on the associated WebCore::Page.
(WebKit::WebPage::setRubberBandsAtTop):
Ditto.
* WebProcess/WebPage/WebPage.h:
(WebPage):
Declare new rubber-banding API.
* WebProcess/WebPage/WebPage.messages.in:
Declare new rubber-banding API.
2013-02-19 Anders Carlsson <andersca@apple.com>
StorageAreaProxy should know its quota
https://bugs.webkit.org/show_bug.cgi?id=110268
Reviewed by Sam Weinig.
Begin stubbing out StorageAreaProxy::setItem and add some quota member variables.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::StorageAreaProxy):
(WebKit::StorageAreaProxy::setItem):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
* WebProcess/Storage/StorageNamespaceProxy.cpp:
(WebKit::StorageNamespaceProxy::createSessionStorageNamespace):
(WebKit::StorageNamespaceProxy::StorageNamespaceProxy):
* WebProcess/Storage/StorageNamespaceProxy.h:
(WebKit::StorageNamespaceProxy::quota):
(StorageNamespaceProxy):
2013-02-19 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13239119> NetworkProcess generates timeout spindump logs
Reviewed by Mark Rowe.
Don't keep a window server connection in processes that don't need it, and don't
run an NSApplication run loop.
* Shared/ChildProcess.h:
* Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::shutdownWindowServerConnection):
Added a function to shut down connections, and to make sure we don't get one in the future.
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::initializeProcessName):
* OfflineStorageProcess/mac/OfflineStorageProcessMac.mm:
(WebKit::OfflineStorageProcess::initializeProcessName):
* SharedWorkerProcess/mac/SharedWorkerProcessMac.mm:
(WebKit::SharedWorkerProcess::platformInitializeSharedWorkerProcess): Also removed
some unused includes and forward declarations.
2013-02-18 Alexey Proskuryakov <ap@apple.com>
[WK2] Cannot load documents with blob urls
https://bugs.webkit.org/show_bug.cgi?id=110160
Reviewed by Sam Weinig.
* WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::canHandleRequest):
Added knowledge about blobs.
2013-02-19 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move the API to get TLS certificate from WebKitURIResponse to WebKitWebView
https://bugs.webkit.org/show_bug.cgi?id=110190
Reviewed by Anders Carlsson.
Add webkit_web_view_get_tls_info() and remove
webkit_uri_response_get_https_status(). This way I can be sure
that when called after load has been committed the certificate
will be available. It also makes the API easier to use.
* UIProcess/API/gtk/WebKitURIResponse.cpp:
* UIProcess/API/gtk/WebKitURIResponse.h:
* UIProcess/API/gtk/WebKitURIResponsePrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewLoadChanged):
(mainResourceResponseChangedCallback):
(webkit_web_view_get_tls_info):
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/tests/TestSSL.cpp:
2013-02-19 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Eliminate access to WK2 C++ internals from ewk_view functions
https://bugs.webkit.org/show_bug.cgi?id=109794
Reviewed by Anders Carlsson.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewSetShowsAsSource):
(WKViewGetShowsAsSource):
Added new WKView API to wrap WebPageProxy::setMainFrameInViewSourceMode()
and WebPageProxy::mainFrameInViewSourceMode() calls.
(WKViewExitFullScreen):
Added new WKView API to wrap WebFullScreenManagerProxy::exitFullScreen()
calls.
* UIProcess/API/C/efl/WKView.h:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::feedTouchEvent):
Added feedTouchEvent() method so that: at first ewk_view_feed_touch_event()
is not invoked from EwkView class, secondly ewk_view_feed_touch_event() does
not access WebPage instance directly.
(EwkView::feedTouchEvents):
* UIProcess/API/efl/EwkView.h:
(EwkView):
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_feed_touch_event):
(ewk_view_pagination_mode_set):
(ewk_view_pagination_mode_get):
(ewk_view_fullscreen_exit):
(ewkViewPageContentsCallback):
(ewk_view_page_contents_get):
(ewk_view_source_mode_set):
(ewk_view_source_mode_get):
Those are now using exported C API.
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::setShowsAsSource):
(WebKit):
(WebKit::WebView::showsAsSource):
(WebKit::WebView::exitFullScreen):
* UIProcess/efl/WebView.h:
(WebView):
Added WebView methods to support added WKView API.
2013-02-19 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] ASSERT(node) hit in WebPage::findZoomableAreaForPoint if no zoomable area found
https://bugs.webkit.org/show_bug.cgi?id=110220
Reviewed by Allan Sandfeld Jensen.
If EventHandler::bestZoomableAreaForTouchPoint was unsuccessfull, eg.
no node was found for a given point, we hit ASSERT(node).
We should only assert for a valid node if a zoomable area was found.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::findZoomableAreaForPoint):
2013-02-19 Christophe Dumez <ch.dumez@sisa.samsung.com>
Regression(r143273): Caused a lot of tests to time out
https://bugs.webkit.org/show_bug.cgi?id=110212
Reviewed by Anders Carlsson.
StorageManager::destroySessionStorageNamespace() and StorageManager::cloneSessionStorageNamespace()
should call their respective "*Internal" equivalent instead of calling themselves. This lead to
a lot of time outs on our build bots.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::cloneSessionStorageNamespace):
2013-02-18 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remove webkit_web_view_get_subresources from WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=110125
Reviewed by Anders Carlsson.
This API is currently implemented caching all resources in the
WebView which causes some problems in documents loading resources
indefinitely. This API was used in WebKit1 mainly to implement
webkit_web_view_save(), but we already have such API in
WebKit2.
* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
(didReceiveWebViewMessageFromInjectedBundle):
* UIProcess/API/gtk/WebKitWebView.cpp:
(_WebKitWebViewPrivate):
(webkitWebViewLoadChanged):
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/tests/TestResources.cpp:
(testWebViewResources):
(testWebResourceGetData):
2013-02-18 Christophe Dumez <dchris@gmail.com>
[WK2][EFL] Stop using internal C++ API in ewk_error
https://bugs.webkit.org/show_bug.cgi?id=108796
Reviewed by Benjamin Poulain.
Stop using internal C++ API in ewk_error and use C API instead of avoid
violating API layering.
* UIProcess/API/efl/ewk_error.cpp:
(EwkError::domain):
(EwkError::isCancellation):
(ewk_error_type_get):
* UIProcess/API/efl/ewk_error_private.h:
(EwkError):
2013-02-18 Simon Fraser <simon.fraser@apple.com>
Clean up the boolean argument to visibleContentRect
https://bugs.webkit.org/show_bug.cgi?id=110167
Reviewed by Simon Fraser.
Replace the boolean argument to visibleContentRect() with
an enum.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::visibleContentBounds):
(WebKit::WebFrame::visibleContentBoundsExcludingScrollbars):
2013-02-18 Anders Carlsson <andersca@apple.com>
Add a DefaultHash for RefPtr<SecurityOrigin>
https://bugs.webkit.org/show_bug.cgi?id=110170
Reviewed by Andreas Kling.
Remove all explicit uses of SecurityOriginHash.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::SessionStorageNamespace):
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::getApplicationCacheOrigins):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::originsWithApplicationCache):
* WebProcess/Notifications/NotificationPermissionRequestManager.h:
Include SecurityOriginHash.h. This fixes a bug where m_originToIDMap used pointer-equality
for looking up security origins.
* WebProcess/ResourceCache/WebResourceCacheManager.cpp:
(WebKit::WebResourceCacheManager::clearCacheForOrigin):
This can just take a const reference.
* WebProcess/ResourceCache/WebResourceCacheManager.h:
2013-02-18 Anders Carlsson <andersca@apple.com>
Begin stubbing out session storage classes
https://bugs.webkit.org/show_bug.cgi?id=110168
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
(WebKit):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::StorageArea::~StorageArea):
(StorageManager::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::isEmpty):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::~SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::cloneTo):
(WebKit::StorageManager::createSessionStorageNamespaceInternal):
(WebKit::StorageManager::destroySessionStorageNamespaceInternal):
(WebKit::StorageManager::cloneSessionStorageNamespaceInternal):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
2013-02-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Add C API for popup menu and popup item
https://bugs.webkit.org/show_bug.cgi?id=109083
Reviewed by Anders Carlsson.
WK2 EFL delegates display of the popup menu to the browser which causes
us to have a strong interdependency between internal C++ classes
(WebPopupMenuProxyEfl, WebPopupItem) and our EFL API implementation
(EwkView, EwkPopupMenu, EwkPopupMenuItem).
Since we want to remove this interdependency, this patch introduces a
for WebPopupMenuProxyEfl (WKPopupMenuListener) and for WebPopupItem
(WKPopupItem). It also introduces a WKPage client with callbacks for
showPopupMenu and hidePopupMenu.
Note that the popup menu functionality is covered by ewk_popup_menu API
tests and no functionality is lost.
* PlatformEfl.cmake: Add new files to EFL CMake config.
* Shared/API/c/efl/WKBaseEfl.h: Add typedefs for WKPopupItemRef and
WKPopupMenuListenerRef.
* Shared/APIObject.h: Add new TypePopupMenuItem APIObject type for EFL
platform.
* UIProcess/API/C/efl/WKAPICastEfl.h: Add mapping for WKPopupItemRef
and WKPopupMenuListenerRef API types.
(WebKit):
(WebKit::toAPI):
* UIProcess/API/C/efl/WKPageEfl.cpp: Added.
(WKPageSetUIPopupMenuClient): Add new C API to set the UI Popup Menu
client on the page.
* UIProcess/API/C/efl/WKPageEfl.h: Added.
* UIProcess/API/C/efl/WKPopupItem.cpp: Added. Add C API for WebPopupItem.
(WKPopupItemGetType):
(WKPopupItemGetTextDirection):
(WKPopupItemHasTextDirectionOverride):
(WKPopupItemCopyText):
(WKPopupItemCopyToolTipText):
(WKPopupItemCopyAccessibilityText):
(WKPopupItemIsEnabled):
(WKPopupItemIsLabel):
(WKPopupItemIsSelected):
* UIProcess/API/C/efl/WKPopupItem.h: Added.
* UIProcess/API/C/efl/WKPopupMenuListener.cpp: Added. Add C API for
WebPopupMenuListenerEfl (formerly WebPopupMenuProxyEfl) so that the
client can report which popup menu item was selected.
(WKPopupMenuListenerSetSelection):
* UIProcess/API/C/efl/WKPopupMenuListener.h: Added.
* UIProcess/API/efl/EwkView.cpp: Remove dependency on internal C++ types
(WebPopupMenuProxyEfl and WebPopupItem) and use C API types instead.
(EwkView::requestPopupMenu):
* UIProcess/API/efl/EwkView.h:
(WebKit):
(EwkView):
* UIProcess/API/efl/ewk_popup_menu.cpp: Use C API for Popup menu.
(EwkPopupMenu::EwkPopupMenu):
(EwkPopupMenu::setSelectedIndex):
* UIProcess/API/efl/ewk_popup_menu_private.h:
(EwkPopupMenu::create):
(EwkPopupMenu):
* UIProcess/WebPageProxy.cpp: Use WKPageUIPopupMenuClient to show / hide
the popup menu on EFL port instead of asking the WebPopupMenuProxy.
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::showPopupMenu):
(WebKit::WebPageProxy::hidePopupMenu):
* UIProcess/WebPageProxy.h: Add new WKPageUIPopupMenuClient member and
corresponding initialization method.
(WebPageProxy):
* UIProcess/WebPopupMenuProxy.h: Disable showPopupMenu / hidePopupMenu
virtual methods on EFL port since we go via WKPageUIPopupMenuClient
for this now.
(WebPopupMenuProxy):
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::PageUIClientEfl): Handle WKPageUIPopupMenuClient
callbacks and call corresponding EwkView methods. Previously, the EwkView
methods were called by the internal WebPageProxyEfl class which is no
longer needed.
(WebKit::PageUIClientEfl::showPopupMenu):
(WebKit):
(WebKit::PageUIClientEfl::hidePopupMenu):
* UIProcess/efl/PageUIClientEfl.h:
(PageUIClientEfl):
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::initializeUIPopupMenuClient):
(WebKit):
* UIProcess/efl/WebPopupItemEfl.cpp: Added. Add APIObject wrapper for
WebPopupItem so that we can use it in WKPageUIPopupMenuClient.
(WebKit):
(WebKit::WebPopupItemEfl::WebPopupItemEfl):
(WebKit::WebPopupItemEfl::~WebPopupItemEfl):
* UIProcess/efl/WebPopupItemEfl.h: Added.
(WebKit):
(WebPopupItemEfl):
(WebKit::WebPopupItemEfl::create):
(WebKit::WebPopupItemEfl::data):
(WebKit::WebPopupItemEfl::itemType):
(WebKit::WebPopupItemEfl::text):
(WebKit::WebPopupItemEfl::textDirection):
(WebKit::WebPopupItemEfl::hasTextDirectionOverride):
(WebKit::WebPopupItemEfl::toolTipText):
(WebKit::WebPopupItemEfl::accessibilityText):
(WebKit::WebPopupItemEfl::isEnabled):
(WebKit::WebPopupItemEfl::isLabel):
(WebKit::WebPopupItemEfl::isSelected):
(WebKit::WebPopupItemEfl::type):
* UIProcess/efl/WebPopupMenuListenerEfl.cpp: Renamed from Source/WebKit2/UIProcess/efl/WebPopupMenuProxyEfl.cpp.
Use WebPopupMenuListenerEfl name instead of WebPopupMenuProxyEfl since
it more accurately represents its functionality now.
(WebKit):
(WebKit::WebPopupMenuListenerEfl::WebPopupMenuListenerEfl):
(WebKit::WebPopupMenuListenerEfl::valueChanged):
* UIProcess/efl/WebPopupMenuListenerEfl.h: Renamed from Source/WebKit2/UIProcess/efl/WebPopupMenuProxyEfl.h.
(WebKit):
(WebPopupMenuListenerEfl):
(WebKit::WebPopupMenuListenerEfl::create):
* UIProcess/efl/WebUIPopupMenuClient.cpp: Added.
(WebUIPopupMenuClient::showPopupMenu):
(WebUIPopupMenuClient::hidePopupMenu):
* UIProcess/efl/WebUIPopupMenuClient.h: Added.
(WebKit):
(WebUIPopupMenuClient):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::createPopupMenuProxy):
2013-02-18 Anders Carlsson <andersca@apple.com>
Add StorageManager member functions for keeping track of session storage namespaces
https://bugs.webkit.org/show_bug.cgi?id=110163
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::createSessionStorageNamespaceInternal):
(WebKit::StorageManager::destroySessionStorageNamespaceInternal):
(WebKit::StorageManager::cloneSessionStorageNamespaceInternal):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/WebContext.h:
(WebKit::WebContext::storageManager):
(WebContext):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::createNewPage):
2013-02-18 Anders Carlsson <andersca@apple.com>
StorageManager message handlers should take the connection
https://bugs.webkit.org/show_bug.cgi?id=110151
Reviewed by Andreas Kling.
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC):
(CoreIPC::callMemberFunction):
(CoreIPC::handleMessage):
* Scripts/webkit2/messages.py:
(sync_message_statement):
(generate_message_handler):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createStorageArea):
(WebKit::StorageManager::destroyStorageArea):
(WebKit::StorageManager::getValues):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/Storage/StorageManager.messages.in:
2013-02-18 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Use C API inside ewk_security_origin
https://bugs.webkit.org/show_bug.cgi?id=107923
Reviewed by Alexey Proskuryakov.
Use C API inside ewk_security_origin instead of accessing
directly internal C++ classes, to avoid breaking API
layering.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::enterFullScreen):
* UIProcess/API/efl/ewk_security_origin.cpp:
(EwkSecurityOrigin::EwkSecurityOrigin):
* UIProcess/API/efl/ewk_security_origin_private.h:
(EwkSecurityOrigin::create):
(EwkSecurityOrigin):
2013-01-04 Jer Noble <jer.noble@apple.com>
pinch-zooming webpage messes up full-screening of embedded video
https://bugs.webkit.org/show_bug.cgi?id=106115
Reviewed by Maciej Stachowiak.
Reset the page scale when entering full screen, and reset to the original scale when exiting.
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
2013-02-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Disable failing API tests
https://bugs.webkit.org/show_bug.cgi?id=110081
Reviewed by Kenneth Rohde Christiansen.
Disable EWK2UnitTestBase.ewk_view_scale API test as it is failing.
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
2013-02-15 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt][WK2] Support WK2 API tests
https://bugs.webkit.org/show_bug.cgi?id=109843
Reviewed by Jocelyn Turcotte.
* UIProcess/API/qt/qquickwebview_p.h:
(TestWebKitAPI):
2013-02-18 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] Changing WebView.contentY and WebView.contentX does not redraw content
https://bugs.webkit.org/show_bug.cgi?id=108337
Reviewed by Jocelyn Turcotte.
We should not ignore content position changes unless pinch zoom or bounce-back
animation is ongoing.
This way we notify the web process about visible rect changes if the contentX
and contentY properties are used to programmatically scroll the content from QML.
One important usecase for this is when implementing scrollbars.
* UIProcess/qt/PageViewportControllerClientQt.cpp:
(WebKit::PageViewportControllerClientQt::PageViewportControllerClientQt):
(WebKit::PageViewportControllerClientQt::flickMoveStarted):
(WebKit::PageViewportControllerClientQt::flickMoveEnded):
(WebKit::PageViewportControllerClientQt::pageItemPositionChanged):
(WebKit::PageViewportControllerClientQt::scaleAnimationStateChanged):
(WebKit::PageViewportControllerClientQt::pinchGestureStarted):
2013-02-18 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[WK2][EFL] Unified text checker implementation
https://bugs.webkit.org/show_bug.cgi?id=107682
Reviewed by Anders Carlsson.
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit):
(WebKit::nextWordOffset):
Helper function to determine the word offset to do not call
client's checkSpellingOfString for the word separators.
(WebKit::TextChecker::checkTextOfParagraph):
Allow to check spelling for multiple words,
their misspelling location and length are saved to the vector.
* WebProcess/WebCoreSupport/WebEditorClient.h:
Add UNIFIED_TEXT_CHECKING guard to checkTextOfParagraph.
* WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
(WebKit):
(WebKit::WebEditorClient::checkTextOfParagraph):
As spelling implementation is exposed to UIProcess,
send a meesage to UIProcess to call TextChecker::checkTextOfParagraph.
2013-02-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Refactor Ewk_Favicon code and stop relying on internal C++ API
https://bugs.webkit.org/show_bug.cgi?id=108598
Reviewed by Kenneth Rohde Christiansen.
Refactor the Ewk_Favicon code so that it no longer relies on internal
C++ API and so that it is based solely on the C API. The API is changed
a little as well so that the Favicon URL is no longer exposed to the
client. Also the client is now only notified of icon changes once the
favicon data is actually available.
The API is covered by existing API tests and by MiniBrowser which are
both updated accordingly in this patch.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::informURLChange):
(EwkView::createFavicon):
(EwkView::onFaviconChanged):
* UIProcess/API/efl/EwkView.h:
(EwkView):
* UIProcess/API/efl/EwkViewCallbacks.h:
* UIProcess/API/efl/ewk_favicon_database.cpp:
Client are now notified of favicon changes only when the favicon data
becomes available and make API to retrieve a favicon synchronous. NULL
is returned if the favicon data is not available.
(EwkFaviconDatabase::EwkFaviconDatabase):
(EwkFaviconDatabase::getIconSurfaceSynchronously):
(EwkFaviconDatabase::iconDataReadyForPageURL):
(ewk_favicon_database_icon_get):
* UIProcess/API/efl/ewk_favicon_database.h:
* UIProcess/API/efl/ewk_favicon_database_private.h:
(EwkFaviconDatabase):
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_favicon_get):
* UIProcess/API/efl/ewk_view.h:
Rename 'icon,changed' signal to 'favicon,changed' for clarity and
consistency with the rest of the favicon API. Remove API to retrieve
the favicon URL and replace it by one to retrieve the favicon image as
an Evas_Object instead.
* UIProcess/API/efl/tests/test_ewk2_favicon_database.cpp:
Update API tests to use the new favicon API.
2013-02-17 Jae Hyun Park <jae.park@company100.net>
Remove unnecessary public method DrawingAreaImpl::createGraphicsContext()
https://bugs.webkit.org/show_bug.cgi?id=109893
Reviewed by Anders Carlsson.
DrawingAreaImpl::createGraphicsContext() is unnecessary since
createGraphicsContext can be called directly using ShareableBitmap.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::display):
* WebProcess/WebPage/DrawingAreaImpl.h:
(DrawingAreaImpl):
2013-02-17 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[WK2][EFL] Remove fullscreen manager proxy as a message receiver on invalidate()
https://bugs.webkit.org/show_bug.cgi?id=109451
Reviewed by Anders Carlsson.
Remove fullscreen manager proxy as a message receiver on invalidate(), like
other ports do after r142160.
* UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
(WebKit::WebFullScreenManagerProxy::invalidate):
2013-02-17 Christophe Dumez <ch.dumez@sisa.samsung.com>
Regression(r143124): Caused plugins/plugin-javascript-access.html to fail
https://bugs.webkit.org/show_bug.cgi?id=110053
Reviewed by Alexey Proskuryakov.
Clear m_plugins in loadPluginsIfNecessary() before populating the
vector again. We get duplicates otherwise.
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::loadPluginsIfNecessary):
2013-02-16 Andreas Kling <akling@apple.com>
Remove multi-threading gunk from PluginInfoStore.
<http://webkit.org/b/110046>
Reviewed by Alexey Proskuryakov.
PluginInfoStore is never accessed from multiple threads anymore, so remove the Mutex locking
and stop making isolated copies of everything.
* Shared/Plugins/PluginModuleInfo.h:
(PluginModuleInfo):
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::loadPluginsIfNecessary):
(WebKit::PluginInfoStore::plugins):
(WebKit::PluginInfoStore::findPluginForMIMEType):
(WebKit::PluginInfoStore::findPluginForExtension):
(WebKit::PluginInfoStore::findPlugin):
(WebKit::PluginInfoStore::infoForPluginWithPath):
* UIProcess/Plugins/PluginInfoStore.h:
(PluginInfoStore):
2013-02-16 Sam Weinig <sam@webkit.org>
Fix non-production builds.
* WebKit2.xcodeproj/project.pbxproj:
2013-02-16 Sam Weinig <sam@webkit.org>
The Plugin.32 target does not build
https://bugs.webkit.org/show_bug.cgi?id=110032
Reviewed by Anders Carlsson.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm: Removed.
This was meant to be removed already.
* WebKit2.xcodeproj/project.pbxproj:
Add Plugin.32 as dependency in All as it should be.
2013-02-16 Darin Adler <darin@apple.com>
Fix WKDOMRangePrivate.h mistakes
https://bugs.webkit.org/show_bug.cgi?id=110028
Reviewed by Ryosuke Niwa.
* WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
Added include of WKDOMRangePrivate.h.
* WebProcess/InjectedBundle/API/mac/WKDOMRangePrivate.h:
Fixed class name and include to be WKDOMRange.
Fixed method name, _copyBundleRangeHandleRef, to match the
name in the source file.
2013-02-15 Eric Carlson <eric.carlson@apple.com>
[Mac] remove wkCaptionAppearance from WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=109996
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2013-02-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143088.
http://trac.webkit.org/changeset/143088
https://bugs.webkit.org/show_bug.cgi?id=110000
Breaks the build (Requested by dgorbik on #webkit).
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2013-02-15 Kiran Muppala <cmuppala@apple.com>
Disable sudden termination on Mac
https://bugs.webkit.org/show_bug.cgi?id=109990
Reviewed by Mark Rowe.
Sudden Termination is causing WebContent XPC services to be killed in
response to memory pressure. Hence, disable it until we can identify
if it is being enabled in error or not.
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::platformInitialize): Add call to
[NSProcessInfo disableSuddenTermination].
2013-02-15 Eric Carlson <eric.carlson@apple.com>
[Mac] remove wkCaptionAppearance from WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=109996
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2013-02-15 Adenilson Cavalcanti <cavalcantii@gmail.com>
[Qt][WK2] Crash on window resize if WebProcess is closed/crashed
https://bugs.webkit.org/show_bug.cgi?id=109216
Reviewed by Benjamin Poulain.
Only make calls into DrawingAreaProxy pointer after checking its state.
When the WebProcess was closed or crashed, WebKit::WebPageProxy will set
its DrawingAreaProxy pointer to null. Resize events on UIProcess/client will
try to access the object to update the geometry and forward this information
into the WebProcess. This would create a crash scenario that is fixed by this patch.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::didRelaunchProcess):
(QQuickWebViewLegacyPrivate::updateViewportSize):
2013-02-15 Anders Carlsson <andersca@apple.com>
Add HashMap::isValidKey and HashSet::isValidValue
https://bugs.webkit.org/show_bug.cgi?id=109977
Reviewed by Sam Weinig and Darin Adler.
Just call HashMap::isValidKey directly.
* UIProcess/WebProcessProxy.cpp:
(WebKit::generatePageID):
Initialize the id to 0 and use prefix increment.
(WebKit::WebProcessProxy::webFrame):
(WebKit::WebProcessProxy::canCreateFrame):
(WebKit::WebProcessProxy::didDestroyFrame):
2013-02-15 Csaba Osztrogonác <ossy@webkit.org>
Typo fix after r143064.
* Platform/CoreIPC/win/ConnectionWin.cpp:
(CoreIPC::Connection::sendOutgoingMessage):
2013-02-15 Csaba Osztrogonác <ossy@webkit.org>
One more buildfix after r143052.
* Platform/CoreIPC/win/ConnectionWin.cpp:
(CoreIPC::Connection::sendOutgoingMessage):
2013-02-15 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r143052 for Qt/GTK/EFL ports.
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::encode):
* Platform/win/SharedMemoryWin.cpp:
(WebKit::SharedMemory::Handle::encode):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode):
* Shared/WebBatteryStatus.cpp:
(WebKit::WebBatteryStatus::Data::encode):
* Shared/WebNetworkInfo.cpp:
(WebKit::WebNetworkInfo::Data::encode):
* Shared/efl/LayerTreeContextEfl.cpp:
(WebKit::LayerTreeContext::encode):
* Shared/gtk/LayerTreeContextGtk.cpp:
(WebKit::LayerTreeContext::encode):
* Shared/qt/LayerTreeContextQt.cpp:
(WebKit::LayerTreeContext::encode):
* Shared/qt/QtNetworkReplyData.cpp:
(WebKit::QtNetworkReplyData::encode):
* Shared/qt/QtNetworkRequestData.cpp:
(WebKit::QtNetworkRequestData::encode):
* Shared/soup/PlatformCertificateInfo.cpp:
(WebKit::PlatformCertificateInfo::encode):
2013-02-15 Anders Carlsson <andersca@apple.com>
Make most ArgumentEncoder::encode member functions private
https://bugs.webkit.org/show_bug.cgi?id=109973
Reviewed by Sam Weinig.
Make the encode overloads private; the stream operator should be used instead.
* Platform/CoreIPC/ArgumentEncoder.h:
(ArgumentEncoder):
* Platform/CoreIPC/Arguments.h:
(CoreIPC::Arguments1::encode):
(CoreIPC::Arguments2::encode):
(CoreIPC::Arguments3::encode):
(CoreIPC::Arguments4::encode):
(CoreIPC::Arguments5::encode):
(CoreIPC::Arguments6::encode):
(CoreIPC::Arguments7::encode):
(CoreIPC::Arguments8::encode):
(CoreIPC::Arguments10::encode):
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::createSyncMessageEncoder):
* Platform/CoreIPC/MessageEncoder.cpp:
(CoreIPC::MessageEncoder::MessageEncoder):
* Scripts/webkit2/messages.py:
(generate_message_handler):
* Scripts/webkit2/messages_unittest.py:
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode):
* WebProcess/WebPage/EncoderAdapter.cpp:
(WebKit::EncoderAdapter::EncoderAdapter):
(WebKit::EncoderAdapter::encodeBytes):
(WebKit::EncoderAdapter::encodeBool):
(WebKit::EncoderAdapter::encodeUInt16):
(WebKit::EncoderAdapter::encodeUInt32):
(WebKit::EncoderAdapter::encodeUInt64):
(WebKit::EncoderAdapter::encodeInt32):
(WebKit::EncoderAdapter::encodeInt64):
(WebKit::EncoderAdapter::encodeFloat):
(WebKit::EncoderAdapter::encodeDouble):
(WebKit::EncoderAdapter::encodeString):
2013-02-15 Anders Carlsson <andersca@apple.com>
Add a synchronous GetValues message to StorageManager
https://bugs.webkit.org/show_bug.cgi?id=109968
Reviewed by Sam Weinig.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::dispatchWorkQueueMessageReceiverMessage):
Handle synchronous messages.
(CoreIPC::Connection::processIncomingMessage):
Check for work queue message receivers before doing any other processing.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getValues):
Add empty stub.
* UIProcess/Storage/StorageManager.h:
* UIProcess/Storage/StorageManager.messages.in:
Add GetValues message.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::loadValuesIfNeeded):
Send the GetValues message.
2013-02-15 Anders Carlsson <andersca@apple.com>
A storage area should know its storage type
https://bugs.webkit.org/show_bug.cgi?id=109964
Reviewed by Andreas Kling.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::StorageAreaProxy):
(WebKit::StorageAreaProxy::disabledByPrivateBrowsingInFrame):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
* WebProcess/Storage/StorageNamespaceProxy.cpp:
(WebKit::StorageNamespaceProxy::storageType):
(WebKit):
* WebProcess/Storage/StorageNamespaceProxy.h:
(StorageNamespaceProxy):
2013-02-15 Anders Carlsson <andersca@apple.com>
Implement StorageAreaProxy::length
https://bugs.webkit.org/show_bug.cgi?id=109962
Reviewed by Andreas Kling.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::length):
Load the values if needed and then return the length.
(WebKit::StorageAreaProxy::disabledByPrivateBrowsingInFrame):
Add helper function.
(WebKit::StorageAreaProxy::loadValuesIfNeeded):
Just allocate the hash map for now.
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
2013-02-15 Anders Carlsson <andersca@apple.com>
Remove const from a bunch of StorageArea member functions
https://bugs.webkit.org/show_bug.cgi?id=109957
Reviewed by Beth Dakin.
Update for WebCore changes.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::length):
(WebKit::StorageAreaProxy::key):
(WebKit::StorageAreaProxy::getItem):
(WebKit::StorageAreaProxy::contains):
(WebKit::StorageAreaProxy::canAccessStorage):
(WebKit::StorageAreaProxy::memoryBytesUsedByCache):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
2013-02-15 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[EFL][WK2] Use C API inside BatteryProvider and NetworkInfoProvider
https://bugs.webkit.org/show_bug.cgi?id=107821
Reviewed by Anders Carlsson.
BatteryProvider and NetworkInfoProvider should use C API
instead of accessing the internal C++ classes directly.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::EwkContext):
* UIProcess/efl/BatteryProvider.cpp:
(BatteryProvider::~BatteryProvider):
(BatteryProvider::create):
(BatteryProvider::BatteryProvider):
(BatteryProvider::didChangeBatteryStatus):
* UIProcess/efl/BatteryProvider.h:
(BatteryProvider):
* UIProcess/efl/NetworkInfoProvider.cpp:
(NetworkInfoProvider::create):
(NetworkInfoProvider::NetworkInfoProvider):
(NetworkInfoProvider::~NetworkInfoProvider):
* UIProcess/efl/NetworkInfoProvider.h:
(NetworkInfoProvider):
2013-02-15 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL]REGRESSION (r141978): ewk_view_type_check api test failing
https://bugs.webkit.org/show_bug.cgi?id=109038
Reviewed by Anders Carlsson.
EFL API is defensive by its nature and expects graceful handling of wrong function arguments
whereas webkit implementation code does not. This patch adds new 'toEwkViewChecked' function,
which provides handling of wrong arguments, to be used within EFL API layer code.
* UIProcess/API/efl/EwkView.cpp:
(toEwkView):
EwkView* toEwkView(const Ewk_View_Smart_Data* smartData) is not exported anymore
as it's used within EwkView class only.
(EwkView::handleTouchMove):
* UIProcess/API/efl/EwkView.h:
* UIProcess/API/efl/ewk_view.cpp:
(toEwkViewChecked):
2013-02-15 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Have WebView subclass PageClient
https://bugs.webkit.org/show_bug.cgi?id=109684
Reviewed by Anders Carlsson.
Stop constructing the PageClient in EwkView. PageClient is an internal
class and we should not use it directly in our Ewk implementation.
Instead, have WebView subclass PageClient. The PageClient implementation
just calls WebView methods otherwise.
* PlatformEfl.cmake:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::setSize):
* UIProcess/API/efl/EwkView.h:
(WebKit):
(EwkView):
(EwkView::webView):
* UIProcess/API/efl/ewk_view.cpp:
* UIProcess/efl/PageClientBase.cpp: Removed.
* UIProcess/efl/PageClientBase.h: Removed.
* UIProcess/efl/PageClientDefaultImpl.cpp: Removed.
* UIProcess/efl/PageClientDefaultImpl.h: Removed.
* UIProcess/efl/PageClientLegacyImpl.cpp: Removed.
* UIProcess/efl/PageClientLegacyImpl.h: Removed.
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::didCommitLoadForFrame):
* UIProcess/efl/PageViewportControllerClientEfl.h:
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::viewWidget):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::WebView):
(WebKit::WebView::~WebView):
(WebKit::WebView::initialize):
(WebKit):
(WebKit::WebView::evasObject):
(WebKit::WebView::setThemePath):
(WebKit::WebView::setDrawsBackground):
(WebKit::WebView::drawsBackground):
(WebKit::WebView::setDrawsTransparentBackground):
(WebKit::WebView::drawsTransparentBackground):
(WebKit::WebView::suspendActiveDOMObjectsAndAnimations):
(WebKit::WebView::resumeActiveDOMObjectsAndAnimations):
(WebKit::WebView::didCommitLoad):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::didChangeContentsSize):
(WebKit::WebView::createDrawingAreaProxy):
(WebKit::WebView::setViewNeedsDisplay):
(WebKit::WebView::displayView):
(WebKit::WebView::scrollView):
(WebKit::WebView::viewSize):
(WebKit::WebView::isViewWindowActive):
(WebKit::WebView::isViewFocused):
(WebKit::WebView::isViewVisible):
(WebKit::WebView::isViewInWindow):
(WebKit::WebView::processDidCrash):
(WebKit::WebView::didRelaunchProcess):
(WebKit::WebView::pageClosed):
(WebKit::WebView::toolTipChanged):
(WebKit::WebView::setCursor):
(WebKit::WebView::setCursorHiddenUntilMouseMoves):
(WebKit::WebView::registerEditCommand):
(WebKit::WebView::clearAllEditCommands):
(WebKit::WebView::canUndoRedo):
(WebKit::WebView::executeUndoRedo):
(WebKit::WebView::screenToWindow):
(WebKit::WebView::windowToScreen):
(WebKit::WebView::doneWithKeyEvent):
(WebKit::WebView::doneWithTouchEvent):
(WebKit::WebView::createPopupMenuProxy):
(WebKit::WebView::createContextMenuProxy):
(WebKit::WebView::createColorChooserProxy):
(WebKit::WebView::setFindIndicator):
(WebKit::WebView::enterAcceleratedCompositingMode):
(WebKit::WebView::exitAcceleratedCompositingMode):
(WebKit::WebView::updateAcceleratedCompositingMode):
(WebKit::WebView::didCommitLoadForMainFrame):
(WebKit::WebView::didFinishLoadingDataForCustomRepresentation):
(WebKit::WebView::customRepresentationZoomFactor):
(WebKit::WebView::setCustomRepresentationZoomFactor):
(WebKit::WebView::flashBackingStoreUpdates):
(WebKit::WebView::findStringInCustomRepresentation):
(WebKit::WebView::countStringMatchesInCustomRepresentation):
(WebKit::WebView::updateTextInputState):
(WebKit::WebView::handleDownloadRequest):
(WebKit::WebView::convertToDeviceSpace):
(WebKit::WebView::convertToUserSpace):
(WebKit::WebView::didChangeViewportProperties):
(WebKit::WebView::pageDidRequestScroll):
(WebKit::WebView::didRenderFrame):
(WebKit::WebView::pageTransitionViewportReady):
* UIProcess/efl/WebView.h:
(WebKit):
(WebView):
(WebKit::WebView::pageRef):
(WebKit::WebView::page):
(WebKit::WebView::canScrollView):
2013-02-15 Milian Wolff <milian.wolff@kdab.com>
[Qt] Restore URL Scheme Delegates after QtWebProcess crash
https://bugs.webkit.org/show_bug.cgi?id=108808
When the QtWebProcess crashes, the registered URL Scheme
Delegates are not properly restored over IPC in the newly
launched process instance.
Reviewed by Simon Hausmann.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::didRelaunchProcess):
(QQuickWebViewPrivate::updateSchemeDelegates):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
2013-02-15 Allan Sandfeld Jensen <allan.jensen@digia.com>
Simplify hitTestResultAtPoint and nodesFromRect APIs
https://bugs.webkit.org/show_bug.cgi?id=95720
Reviewed by Julien Chaffraix and Maciej Stachowiak.
Update calls to new API and update exported symbols.
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::hitTest):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::handleContextMenuEvent):
(WebKit::WebPage::highlightPotentialActivation):
(WebKit::WebPage::findZoomableAreaForPoint):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::characterIndexForPoint):
(WebKit::WebPage::performDictionaryLookupAtLocation):
(WebKit::WebPage::shouldDelayWindowOrderingEvent):
(WebKit::WebPage::acceptsFirstMouse):
2013-02-14 Huang Dongsung <luxtella@company100.net>
[WK2] Rename from scrollOffset to scrollDelta in WebChromeClient.
https://bugs.webkit.org/show_bug.cgi?id=109885
Reviewed by Simon Fraser.
Chrome sends a scroll delta to WebChromeClient but WebChromeClient names it
scrollOffset. So this patch corrects this misnaming.
In addition, all subclasses of LayerTreeHost don't use the misnamed
scrollOffset in scrollNonCompositedContents(), so this patch removes the
scrollOffset argument.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::scroll):
* WebProcess/WebCoreSupport/WebChromeClient.h:
(WebChromeClient):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::scrollNonCompositedContents):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost):
* WebProcess/WebPage/DrawingArea.h:
(DrawingArea):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::scroll):
* WebProcess/WebPage/DrawingAreaImpl.h:
(DrawingAreaImpl):
* WebProcess/WebPage/LayerTreeHost.h:
(LayerTreeHost):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::scrollNonCompositedContents):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
(LayerTreeHostGtk):
* WebProcess/WebPage/mac/LayerTreeHostMac.h:
(LayerTreeHostMac):
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::scrollNonCompositedContents):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
(RemoteLayerTreeDrawingArea):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::scroll):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scroll):
2013-02-14 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13161700> REGRESSION: Safari is unable to make SSL connections
when running from recovery partition
Reviewed by Sam Weinig.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* WebProcess/com.apple.WebProcess.sb.in:
Re-added /private/var/db/mds/system rules lost in r141445.
2013-02-14 Anders Carlsson <andersca@apple.com>
Add WKContextIsPlugInUpdateAvailable
https://bugs.webkit.org/show_bug.cgi?id=109862
<rdar://problem/13173140>
Reviewed by Sam Weinig.
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm: Renamed from Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.cpp.
(WKContextGetProcessSuppressionEnabled):
(WKContextSetProcessSuppressionEnabled):
(WKContextIsPlugInUpdateAvailable):
* WebKit2.xcodeproj/project.pbxproj:
2013-02-14 Zan Dobersek <zdobersek@igalia.com>
[GTK] Errors when building WebKit2 with Clang
https://bugs.webkit.org/show_bug.cgi?id=109603
Reviewed by Alexey Proskuryakov.
* UIProcess/API/gtk/WebKitUIClient.cpp:
(setWindowFrame): Cast the position parameters to the integer type when constructing the GdkRectangle.
* UIProcess/Authentication/WebCredential.cpp: Add an empty implementation of the newly specified destructor.
* UIProcess/Authentication/WebCredential.h: Work around the incomplete WebCertificateInfo type errors thrown in the inline
RefPtr destructor of the m_certificateInfo class member by defining a destructor in the class.
* WebProcess/WebCoreSupport/WebEditorClient.h: The GTK-specific methods are not virtual and as such cannot be overriden.
The OVERRIDE keywords are thus unnecessary.
2013-02-14 David Kilzer <ddkilzer@apple.com>
[Mac] Clean up WARNING_CFLAGS
<http://webkit.org/b/109747>
<rdar://problem/13208373>
Reviewed by Mark Rowe.
* Configurations/Base.xcconfig: Use
GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
-Wshorten-64-to-32 rather than WARNING_CFLAGS.
2013-02-14 Sam Weinig <sam@webkit.org>
Add conversions between ObjC and C DOM wrappers
<rdar://problem/13205468>
https://bugs.webkit.org/show_bug.cgi?id=109851
Reviewed by Anders Carlsson.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:
(WKBundleRangeHandleCreate):
* WebProcess/InjectedBundle/API/c/WKBundleRangeHandlePrivate.h: Added.
* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode _copyBundleNodeHandleRef]):
* WebProcess/InjectedBundle/API/mac/WKDOMNodePrivate.h: Added.
* WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange _copyBundleRangeHandleRef]):
* WebProcess/InjectedBundle/API/mac/WKDOMRangePrivate.h: Added.
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::getOrCreate):
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
(InjectedBundleRangeHandle):
2013-02-13 Anders Carlsson <andersca@apple.com>
Remove StringPairVector
https://bugs.webkit.org/show_bug.cgi?id=109778
Reviewed by Ryosuke Niwa.
Our message generation scripts can handle nested template parameter types now,
so we no longer need to use StringPairVector.
* Shared/StringPairVector.h: Removed.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willSubmitForm):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
2013-02-13 Dean Jackson <dino@apple.com>
PlugIn Autostart should expire in 30 days, not half a day
https://bugs.webkit.org/show_bug.cgi?id=109767
Reviewed by Brian Weinstein.
We forgot to multiply by 60 seconds in a minute.
* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
2013-02-13 Anders Carlsson <andersca@apple.com>
Message generation should handle nested templates
https://bugs.webkit.org/show_bug.cgi?id=109771
Reviewed by Ryosuke Niwa.
Make it possible to have nested class template types as message parameters and
correctly gather all the needed headers and argument coder headers.
* Scripts/webkit2/messages.py:
(class_template_headers):
Recursively figure out the types and template headers needed for a given type.
(argument_coder_headers_for_type):
(headers_for_type):
Call class_template_headers.
* Scripts/webkit2/messages_unittest.py:
(CoreIPC):
* Scripts/webkit2/parser.py:
(split_parameters_string):
(parse_parameters_string):
2013-02-13 David Farler <dfarler@apple.com>
Make WebKit2 Derived Sources work with SDK identifiers too
https://bugs.webkit.org/show_bug.cgi?id=109763
Reviewed by David Kilzer.
* WebKit2.xcodeproj/project.pbxproj: Pass SDKROOT=${SDKROOT} to DerivedSources.make
2013-02-13 Csaba Osztrogonác <ossy@webkit.org>
One more buildfix for !ENABLE(PLUGIN_PROCESS) platforms.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
2013-02-13 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed Qt-Mac and Qt-Win buildfix after r142768.
* WebProcess/WebProcess.h:
(WebKit):
2013-02-13 Adam Barth <abarth@webkit.org>
Remove bogus ASSERT in WebFrameProxy::didStartProvisionalLoad
https://bugs.webkit.org/show_bug.cgi?id=109733
Reviewed by Sam Weinig.
After http://trac.webkit.org/changeset/142555, this ASSERT is
triggering on these tests:
fast/dom/window-load-crash.html
fast/frames/seamless/seamless-hyperlink-named.html
fast/frames/seamless/seamless-hyperlink.html
The ASSERT appears to be bogus. This patch removes it.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didStartProvisionalLoad):
2013-02-13 Sam Weinig <sam@webkit.org>
Consolidate main functions in WebKit2 now that they are all identical
https://bugs.webkit.org/show_bug.cgi?id=109748
Reviewed by Anders Carlsson.
- Consolidates all the LegacyProcess main functions into ChildProcessMain.mm
- Consolidates all the XPCService main functions into XPCServiceMain.mm and XPCServiceMain.Development.mm
- Rename existing ChildProcessMain.h/mm to ChildProcessEntryPoint.h/mm to match the XPCService ones.
- Switch LegacyProcess to use the "entry point in the plist" idiom, instead of hard coding each one, again
matching the XPCService.
* Configurations/BaseLegacyProcess.xcconfig: Add base configuration to hold common legacy process options.
* Configurations/BaseXPCService.xcconfig:
* Configurations/NetworkProcess.xcconfig:
* Configurations/OfflineStorageProcess.xcconfig:
* Configurations/PluginProcess.xcconfig:
* Configurations/SharedWorkerProcess.xcconfig:
* Configurations/WebContentProcess.xcconfig: Renamed form WebProcess.xcconfig.
* NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm:
* NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMainBootstrapper.cpp: Removed.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm: Removed.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm: Removed.
* OfflineStorageProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMain.mm:
* OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMainBootstrapper.cpp: Removed.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/OfflineStorageServiceMain.Development.mm: Removed.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/OfflineStorageServiceMain.mm: Removed.
* PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMainBootstrapper.cpp: Removed.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm: Removed.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm: Removed.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h:
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm:
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.h: Removed.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm: Replaced.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMainBootstrapper.h: Removed.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h: Removed.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h: Removed.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
* SharedWorkerProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* SharedWorkerProcess/EntryPoint/mac/LegacyProcess/SharedWorkerProcessMain.mm:
* SharedWorkerProcess/EntryPoint/mac/LegacyProcess/SharedWorkerProcessMainBootstrapper.cpp: Removed.
* WebProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMainBootstrapper.cpp: Removed.
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm: Removed.
* WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2013-02-13 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Stop using WebString in ewk_cookie_manager, ewk_form_submission_request and ewk_text_checker
https://bugs.webkit.org/show_bug.cgi?id=108794
Reviewed by Alexey Proskuryakov.
Stop using WebString in ewk_cookie_manager, ewk_form_submission_request
and ewk_text_checker as it is internal C++ API. WKString and
WKEinaSharedString are used instead.
* UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
(WKEinaSharedString::leakString): Add leakString() method to
WKEinaSharedString so that we can conveniently convert a WKString to a
Eina shared string and take ownership of it.
* UIProcess/API/cpp/efl/WKEinaSharedString.h:
* UIProcess/API/efl/ewk_cookie_manager.cpp:
(getHostnamesWithCookiesCallback):
* UIProcess/API/efl/ewk_form_submission_request.cpp:
(EwkFormSubmissionRequest::copyFieldValue):
(ewk_form_submission_request_field_names_get):
(ewk_form_submission_request_field_value_get):
* UIProcess/API/efl/ewk_form_submission_request_private.h:
(EwkFormSubmissionRequest):
* UIProcess/API/efl/ewk_text_checker.cpp:
(checkSpellingOfString):
(guessesForWord):
(learnWord):
(ignoreWord):
* UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp:
(TEST_F): Add API test for new WKEinaSharedString::leakString() method.
2013-02-13 Anders Carlsson <andersca@apple.com>
Remove Connection::QueueClient
https://bugs.webkit.org/show_bug.cgi?id=109744
Reviewed by Sam Weinig.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::processIncomingMessage):
(CoreIPC::Connection::connectionDidClose):
* Platform/CoreIPC/Connection.h:
(Connection):
2013-02-13 Anders Carlsson <andersca@apple.com>
Try to fix the Lion build.
* WebProcess/WebPage/EventDispatcher.h:
(EventDispatcher):
2013-02-13 Anders Carlsson <andersca@apple.com>
Remove support for the DispatchOnConnectionQueue message attribute
https://bugs.webkit.org/show_bug.cgi?id=109743
Reviewed by Sam Weinig.
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC):
* Scripts/webkit2/messages.py:
(handler_function):
(generate_message_handler):
* Scripts/webkit2/messages_unittest.py:
2013-02-13 Anders Carlsson <andersca@apple.com>
StorageManager should be a WorkQueueMessageReceiver
https://bugs.webkit.org/show_bug.cgi?id=109741
Reviewed by Sam Weinig.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::processWillOpenConnection):
(WebKit::StorageManager::processWillCloseConnection):
(WebKit::StorageManager::createStorageArea):
(WebKit::StorageManager::destroyStorageArea):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/Storage/StorageManager.messages.in:
2013-02-13 Anders Carlsson <andersca@apple.com>
EventDispatcher should be a WorkQueueMessageReceiver
https://bugs.webkit.org/show_bug.cgi?id=109736
Reviewed by Andreas Kling.
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::create):
(WebKit):
(WebKit::EventDispatcher::EventDispatcher):
(WebKit::EventDispatcher::initializeConnection):
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
* WebProcess/WebPage/EventDispatcher.h:
(EventDispatcher):
* WebProcess/WebPage/EventDispatcher.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):
* WebProcess/WebProcess.h:
(WebKit):
(WebKit::WebProcess::eventDispatcher):
(WebProcess):
2013-02-13 Christophe Dumez <ch.dumez@sisa.samsung.com>
Unreviewed build fix after r142768.
r142768 broke the EFL WK2 build due to wrong member initialization
order in the WebProcess constructor initialization list.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
2013-02-13 Anders Carlsson <andersca@apple.com>
Make PluginProcessConnectionManager a WorkQueueMessageReceiver
https://bugs.webkit.org/show_bug.cgi?id=109727
Reviewed by Andreas Kling.
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::create):
(WebKit):
(WebKit::PluginProcessConnectionManager::PluginProcessConnectionManager):
(WebKit::PluginProcessConnectionManager::initializeConnection):
(WebKit::PluginProcessConnectionManager::pluginProcessCrashed):
* WebProcess/Plugins/PluginProcessConnectionManager.h:
(PluginProcessConnectionManager):
* WebProcess/Plugins/PluginProcessConnectionManager.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):
(WebKit::WebProcess::pluginProcessConnectionManager):
* WebProcess/WebProcess.h:
(WebKit):
(WebProcess):
2013-02-13 Anders Carlsson <andersca@apple.com>
Make SecItemShimProxy be a WorkQueueMessageReceiver
https://bugs.webkit.org/show_bug.cgi?id=109719
Reviewed by Sam Weinig.
This adds a WantsConnection message attribute to be used for messages whose handlers
should take the connection the message was delivered to.
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::handleMessage):
Add new handleMessage overload.
* Scripts/webkit2/messages.py:
(async_message_statement):
(generate_message_handler):
Handle the WantsMessage attribute.
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::shared):
Use dispatch_once and adoptRef.
(WebKit::SecItemShimProxy::SecItemShimProxy):
Initialize the queue.
(WebKit::SecItemShimProxy::initializeConnection):
Add the proxy as a work queue message receiver.
(WebKit::SecItemShimProxy::secItemRequest):
This no longer needs to call out to a dispatch queue, it's already on a queue.
* UIProcess/mac/SecItemShimProxy.messages.in:
This doesn't need to be a legacy receiver. Also, add the WantsConnection message.
2013-02-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142736.
http://trac.webkit.org/changeset/142736
https://bugs.webkit.org/show_bug.cgi?id=109716
Broke ABI, nightly builds crash on launch (Requested by ap on
#webkit).
* Shared/APIClientTraits.cpp:
(WebKit):
* Shared/APIClientTraits.h:
* UIProcess/API/C/WKPage.h:
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(attachLoaderClientToView):
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/qt/QtBuiltinBundlePage.cpp:
(WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
2013-02-13 Kenneth Rohde Christiansen <kenneth@webkit.org>
[WK2][EFL] Cleanup of graphics related code in EwkView
https://bugs.webkit.org/show_bug.cgi?id=109377
Reviewed by Anders Carlsson.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
Initialize the evasGL dependencies here and
set m_isAccelerated to false if this fails.
Set the coordinated graphics scene as active
when using fixed layout.
(EwkView::setSize):
Add a method to set the size and user-viewport
transform from the outside. The idea is moving
this to our pure WK C API in the future.
(EwkView::transformFromScene):
(EwkView::transformToScene):
Update the transform methods to use the user-
viewport transform.
(EwkView::paintToCurrentGLContext):
(EwkView::paintToCairoSurface):
Add methods to paint to either the current GL context
or to a given cairo_surface_t (for software fallback
cases).
(EwkView::displayTimerFired):
Clean up and use the two above methods.
(EwkView::scheduleUpdateDisplay):
Use the new size() methods instead of using the
smart-object data directly.
(EwkView::createGLSurface):
Make this method use size() to query the surface size
and avoid creating the context (done in ctor now).
Also avoid using the smart-object data directly.
(EwkView::enterAcceleratedCompositingMode):
(EwkView::exitAcceleratedCompositingMode):
Turn on/off the use of the coord. graphics scene.
(EwkView::handleEvasObjectCalculate):
Use the new setSize and setUserViewportTransform.
(EwkView::takeSnapshot):
* UIProcess/API/efl/EwkView.h:
(WebCore):
(EwkView):
(EwkView::size):
(EwkView::setUserViewportTransform):
(EwkView::userViewportTransform):
Add the new method definitions and rename isHardwareAccelerated
to isAccelerated which fits better with the naming in WebCore.
2013-02-13 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Introduce WKViewClient C API
https://bugs.webkit.org/show_bug.cgi?id=109559
Reviewed by Anders Carlsson.
This patch introduces the WKViewClient C API for EFL's WKView. The purpose of
this new C API is to eventually remove the interdependency between EFL's
PageClient and EwkView. When completed, PageClient should only interact with
WebView and not be aware of EwkView so that we have a clean separation between
internal WebKit2 classes and our EFL Ewk API implementation.
This patch is only a first step towards this goal as there is a lot of work
to do to achieve complete separation between EwkView and PageClient. The purpose
of this patch is to introduce the needed architecture which will later be
extended by introducing new WKViewClient callbacks.
* PlatformEfl.cmake: Add new ViewClientEfl.cpp and WebViewClient.cpp to EFL's CMake
configuration.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewSetViewClient):
* UIProcess/API/C/efl/WKView.h: Introduce new WKViewClient C API.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView): Initialize ViewClientEfl.
* UIProcess/API/efl/EwkView.h: Add new ViewClientEfl member.
(WebKit):
(EwkView):
* UIProcess/API/efl/EwkViewCallbacks.h: Update ContentsSizeChanged smart callback to
accept a WKSize in parameter instead of an IntRect.
* UIProcess/efl/PageClientBase.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientBase::view):
(WebKit::PageClientBase::setViewNeedsDisplay):
* UIProcess/efl/PageClientBase.h:
(WebKit):
(PageClientBase):
* UIProcess/efl/PageClientDefaultImpl.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientDefaultImpl::didChangeContentsSize):
* UIProcess/efl/PageClientLegacyImpl.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientLegacyImpl::didChangeContentsSize):
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit):
(WebKit::ViewClientEfl::toEwkView):
(WebKit::ViewClientEfl::viewNeedsDisplay):
(WebKit::ViewClientEfl::didChangeContentsSize):
(WebKit::ViewClientEfl::ViewClientEfl):
(WebKit::ViewClientEfl::~ViewClientEfl):
* UIProcess/efl/ViewClientEfl.h: Introduce new ViewClientEfl which handles WKViewClient callbacks
and interacts with EwkView.
(WebKit):
(ViewClientEfl):
(WebKit::ViewClientEfl::create):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::initializeClient):
(WebKit):
(WebKit::WebView::setViewNeedsDisplay):
(WebKit::WebView::didChangeContentsSize):
* UIProcess/efl/WebView.h: Add new WebViewClient member and corresponding methods to interact
with it.
(WebView):
* UIProcess/efl/WebViewClient.cpp:
(WebKit):
(WebKit::WebViewClient::viewNeedsDisplay):
(WebKit::WebViewClient::didChangeContentsSize):
* UIProcess/efl/WebViewClient.h: Add new WebViewClient APIClient for WKViewClient.
(WebCore):
(WebKit):
2013-02-13 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL][WTR] Regression(r141836): WTR crashes on exit
https://bugs.webkit.org/show_bug.cgi?id=109456
Reviewed by Anders Carlsson.
WebView destructor now considers the situation if its WebPageProxy
instance had been closed from outside the class (explicitly
by client code).
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::~WebView):
2013-02-13 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[WK2] Remove web intents callbacks
https://bugs.webkit.org/show_bug.cgi?id=109654
Reviewed by Benjamin Poulain.
Web intents was removed by r142549.
* Shared/APIClientTraits.cpp:
(WebKit):
* Shared/APIClientTraits.h:
* UIProcess/API/C/WKPage.h:
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(attachLoaderClientToView):
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/qt/QtBuiltinBundlePage.cpp:
(WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
2013-02-12 Adenilson Cavalcanti <cavalcantii@gmail.com>
[WK2] Page reloading will crash UIProcess after WebProcess was killed
https://bugs.webkit.org/show_bug.cgi?id=109305
Reviewed by Benjamin Poulain.
Re-initialize the pointer to a WebInspectorProxy object before calling
initializeWebPage().
When the WebProcess crashes, WebPageProxy::processDidCrash() will
set WebInspectorProxy pointer to null, which later is accessed by
initializeWebPage(). This patch avoids a crash scenario where
calls into a null pointer would be made.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcess):
2013-02-12 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Enable PAGE_VISIBILITY_API
https://bugs.webkit.org/show_bug.cgi?id=109399
Reviewed by David Kilzer.
* Configurations/FeatureDefines.xcconfig:
2013-02-12 Brady Eidson <beidson@apple.com>
Update a comment in NetworkProcess to be more accurate.
Rubberstamped by Sam Weinig.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
2013-02-12 Anders Carlsson <andersca@apple.com>
SecItemShim should be a WorkQueueMessageReceiver
https://bugs.webkit.org/show_bug.cgi?id=109636
Reviewed by Sam Weinig.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::dispatchWorkQueueMessageReceiverMessage):
Add a helper function for dispatching a work queue message receiver message.
(CoreIPC::Connection::processIncomingMessage):
Check if there are any work queue message receivers registered for this message.
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::shared):
Use dispatch_once instead of the AtomicallyInitializedStatic macro.
(WebKit::SecItemShim::SecItemShim):
Initialize the queue.
(WebKit::SecItemShim::secItemResponse):
Remove the connection parameter.
(WebKit::SecItemShim::initializeConnection):
Register the shim object as a work queue message receiver.
* Shared/mac/SecItemShim.h:
Inherit from WorkQueueMessageReceiver.
* Shared/mac/SecItemShim.messages.in:
Remove LegacyReceiver and DispatchOnConnectionQueue.
2013-02-12 Sam Weinig <sam@webkit.org>
Make Plug-in XPC services "join existing sessions"
<rdar://problem/13196448>
Reviewed by Mark Rowe.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
2013-02-12 Sam Weinig <sam@webkit.org>
Add skeleton of the OfflineStorageProcess
https://bugs.webkit.org/show_bug.cgi?id=109615
Reviewed by Anders Carlsson.
This adds the skeleton of a new process to contain Database and Local Storage
backends in (hence, offline storage). We're adding a new process, rather than
using the Network or UIProcesses, to allow us to tightly sandbox these activities
away from networking and full filesystem access.
* Configurations/OfflineStorageProcess.xcconfig: Added.
* Configurations/OfflineStorageService.Development.xcconfig: Added.
* Configurations/OfflineStorageService.xcconfig: Added.
* DerivedSources.make:
* OfflineStorageProcess: Added.
* OfflineStorageProcess/EntryPoint: Added.
* OfflineStorageProcess/EntryPoint/mac: Added.
* OfflineStorageProcess/EntryPoint/mac/LegacyProcess: Added.
* OfflineStorageProcess/EntryPoint/mac/LegacyProcess/Info.plist: Added.
* OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMain.mm: Added.
* OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMainBootstrapper.cpp: Added.
* OfflineStorageProcess/EntryPoint/mac/XPCService: Added.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService: Added.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development: Added.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/Info.plist: Added.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/OfflineStorageServiceMain.Development.mm: Added.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/Info.plist: Added.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/OfflineStorageServiceMain.mm: Added.
* OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageServiceEntryPoint.mm: Added.
* OfflineStorageProcess/OfflineStorageProcess.cpp: Added.
* OfflineStorageProcess/OfflineStorageProcess.h: Added.
* OfflineStorageProcess/OfflineStorageProcess.messages.in: Added.
* OfflineStorageProcess/mac: Added.
* OfflineStorageProcess/mac/OfflineStorageProcessMac.mm: Added.
(WebKit::OfflineStorageProcess::initializeProcessName):
(WebKit::OfflineStorageProcess::initializeSandbox):
* OfflineStorageProcess/mac/com.apple.WebKit.OfflineStorage.sb: Added.
* Shared/OfflineStorage: Added.
* Shared/OfflineStorage/OfflineStorageProcessCreationParameters.cpp: Added.
* Shared/OfflineStorage/OfflineStorageProcessCreationParameters.h: Added.
* Scripts/webkit2/messages.py:
(struct_or_class):
Added OfflineStorageProcessCreationParameters.
* WebKit2.xcodeproj/project.pbxproj:
2013-02-12 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL][WK2] Fix build warning after r142579
https://bugs.webkit.org/show_bug.cgi?id=109547
Reviewed by Alexey Proskuryakov.
Use UNUSED_PARAM macro to fix -Wunused-parameter build warning.
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::didChangeContentsSize):
2013-02-12 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL][WK2] Reenable ewk_auth_request API tests
https://bugs.webkit.org/show_bug.cgi?id=108451
Reviewed by Benjamin Poulain.
ewk_auth_request API tests were temporarily disabled after
the C API for resource loading was removed from WebKit2.
This patches updates the tests so that they no longer rely
on the resource loading events and renables them.
This patch also corrects the naming of the static variables
in the test to follow more closely the WebKit coding style.
* PlatformEfl.cmake:
* UIProcess/API/efl/tests/test_ewk2_auth_request.cpp:
(serverCallback):
(TEST_F):
(onLoadFinished):
2013-02-12 Anders Carlsson <andersca@apple.com>
Introduce a WorkQueueMessageReceiver class as a replacement for QueueClient
https://bugs.webkit.org/show_bug.cgi?id=109612
Reviewed by Andreas Kling.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::addWorkQueueMessageReceiver):
(CoreIPC):
(CoreIPC::Connection::removeWorkQueueMessageReceiver):
(CoreIPC::Connection::addWorkQueueMessageReceiverOnConnectionWorkQueue):
(CoreIPC::Connection::removeWorkQueueMessageReceiverOnConnectionWorkQueue):
* Platform/CoreIPC/Connection.h:
(Connection):
2013-02-12 Csaba Osztrogonác <ossy@webkit.org>
Typo fix after r142663.
* GNUmakefile.list.am:
2013-02-12 Csaba Osztrogonác <ossy@webkit.org>
[WK2] Unreviewed trivial buildfix after r142630 and r142651.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
* UIProcess/Plugins/qt/PluginProcessProxyQt.cpp:
(WebKit::PluginProcessProxy::platformGetLaunchOptions):
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::platformGetLaunchOptions):
2013-02-12 Anders Carlsson <andersca@apple.com>
Change the queue client base class to be private everywhere
https://bugs.webkit.org/show_bug.cgi?id=109604
Reviewed by Andreas Kling.
Move connection queue client registration inside of the respective queue client classes.
Also, it's too late to add queue clients in ChildProcessProxy::didFinishLaunching, so do this in
ChildProcessProxy::connectionWillOpen instead.
Finally, assert that queue clients are only being added and removed from the client thread.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeConnection):
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::addQueueClient):
(CoreIPC::Connection::removeQueueClient):
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::initializeConnection):
(WebKit):
* Shared/mac/SecItemShim.h:
(SecItemShim):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::connectionWillOpen):
(WebKit):
(WebKit::NetworkProcessProxy::connectionWillClose):
(WebKit::NetworkProcessProxy::didFinishLaunching):
* UIProcess/Network/NetworkProcessProxy.h:
(NetworkProcessProxy):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::didFinishLaunching):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::initializeConnection):
(WebKit):
* UIProcess/mac/SecItemShimProxy.h:
(SecItemShimProxy):
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::initializeConnection):
(WebKit):
* WebProcess/Plugins/PluginProcessConnectionManager.h:
(PluginProcessConnectionManager):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::initializeConnection):
(WebKit):
* WebProcess/WebPage/EventDispatcher.h:
(EventDispatcher):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
2013-02-12 Brady Eidson <beidson@apple.com>
Add WKContext API to retrieve basic network process statistics
https://bugs.webkit.org/show_bug.cgi?id=109329
Reviewed by Sam Weinig.
This patch adds a WKContextGetStatisticsWithOptions which allows the client to ask for
certain types of statistics.
It also expands the "get statistics" callback mechanism to allow for a statistics request
to be answered by multiple child processes.
That mechanism still has some rough edges but will eventually allow for getting statistics
from multiple web processes, as well.
* NetworkProcess/HostRecord.cpp:
(WebKit::HostRecord::pendingRequestCount):
(WebKit::HostRecord::activeLoadCount):
* NetworkProcess/HostRecord.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getNetworkProcessStatistics):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::hostsPendingCount):
(WebKit::NetworkResourceLoadScheduler::loadsPendingCount):
(WebKit::NetworkResourceLoadScheduler::hostsActiveCount):
(WebKit::NetworkResourceLoadScheduler::loadsActiveCount):
* NetworkProcess/NetworkResourceLoadScheduler.h:
* Shared/Authentication/AuthenticationManager.h:
(WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount):
* Shared/Downloads/DownloadManager.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetStatistics):
(WKContextGetStatisticsWithOptions):
* UIProcess/API/C/WKContext.h:
* UIProcess/StatisticsRequest.cpp: Added.
(WebKit::StatisticsRequest::StatisticsRequest):
(WebKit::StatisticsRequest::~StatisticsRequest):
(WebKit::StatisticsRequest::addOutstandingRequest):
(WebKit::addToDictionaryFromHashMap):
(WebKit::createDictionaryFromHashMap):
(WebKit::StatisticsRequest::completedRequest):
* UIProcess/StatisticsRequest.h: Added.
(WebKit::StatisticsRequest::create):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::networkingProcessConnection):
(WebKit::WebContext::getStatistics):
(WebKit::WebContext::requestWebContentStatistics):
(WebKit::WebContext::requestNetworkingStatistics):
(WebKit::WebContext::didGetStatistics):
* UIProcess/WebContext.h:
* UIProcess/WebContext.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getWebCoreStatistics):
* WebKit2.xcodeproj/project.pbxproj:
2013-02-12 Anders Carlsson <andersca@apple.com>
Build fix.
Add back the files to the Xcode project that were removed in r142580.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
2013-02-12 Jessie Berlin <jberlin@apple.com>
Build fix after r142540 and r142518
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::didReceivePluginProcessConnectionManagerMessageOnConnectionWorkQueue):
This function was added to the header in r142518 but not implemented in that revision.
It wasn't a problem until r142540 started using it.
Add a stub implementation for it.
2013-02-11 Brady Eidson <beidson@apple.com>
Make PluginProcessProxy a ChildProcessProxy.
https://bugs.webkit.org/show_bug.cgi?id=109513
Reviewed by Anders Carlsson.
* Shared/ChildProcessProxy.h: Inherit from ThreadSafeRefCounted.
* UIProcess/Network/NetworkProcessProxy.h: Don't inherit from RefCounted.
* UIProcess/WebProcessProxy.h: Don't inherit from ThreadSafeRefCounted
* UIProcess/Plugins/PluginProcessProxy.h: Don't inherit from RefCounted, do inherit from ChildProcessProxy
Rely on ChildProcessProxy for process launcher management and launch options:
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::PluginProcessProxy):
(WebKit::PluginProcessProxy::getLaunchOptions):
(WebKit::PluginProcessProxy::getPluginProcessConnection):
(WebKit::PluginProcessProxy::getSitesWithData):
(WebKit::PluginProcessProxy::clearSiteData):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::platformGetLaunchOptions):
(WebKit::PluginProcessProxy::getPluginProcessSerialNumber):
2013-02-11 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13196331> NetworkProcess deny mach-lookup com.apple.PowerManagement.control
Reviewed by Sam Weinig.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2013-02-11 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Make CoordinatedGraphicsScene not know contents size.
https://bugs.webkit.org/show_bug.cgi?id=108922
Reviewed by Noam Rosenthal.
Signed off for WebKit2 by Benjamin Poulain.
Currently, CoordinatedGraphicsScene has two methods to know contents
size: setContentsSize() and setVisibleContentsRect(). Contents size is
used when adjusting a scroll position, but adjustment is not needed
because EFL and Qt platform code (currently PageViewportController)
already adjusts a scroll position, and it is natural for each platform
to be in charge of adjusting. So this patch makes CoordinatedGraphicsScene
not know contents size.
In addition, now DrawingAreaProxy::coordinatedLayerTreeHostProxy() is only used
to get CoordinatedGraphicsScene.
* UIProcess/API/qt/qquickwebpage.cpp:
(QQuickWebPagePrivate::updateSize):
* UIProcess/API/qt/raw/qrawwebview.cpp:
(QRawWebView::setSize):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/efl/PageClientLegacyImpl.cpp:
(WebKit::PageClientLegacyImpl::didChangeContentsSize):
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::didChangeContentsSize):
2013-02-11 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: remove the DidChangeScrollPosition message.
https://bugs.webkit.org/show_bug.cgi?id=108051
Reviewed by Noam Rosenthal.
Signed off for WebKit2 by Benjamin Poulain.
Currently, we use the DidChangeScrollPosition message to send the scroll
position that WebCore used in this frame to UI Process. We had to have
some member variables for the DidChangeScrollPosition message.
However, we can send a scroll position via the DidRenderFrame message,
because CoordinatedGraphicsScene::m_renderedContentsScrollPosition is
updated at the moment of flushing. So we can remove the
DidChangeScrollPosition message and some redundant member variables.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::didRenderFrame):
(WebKit):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
Remove the DidChangeScrollPosition message.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::flushPendingLayerChanges):
Send a scroll position via the DidChangeScrollPosition message.
(WebKit::CoordinatedLayerTreeHost::syncLayerState):
Don't send a scroll position because flushPendingLayerChanges() does
that. In addition, it is weird to check if we must send a scroll
position at the moment of sending the SyncLayerState message of every
layers.
(WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2013-02-11 Ryosuke Niwa <rniwa@webkit.org>
Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
https://bugs.webkit.org/show_bug.cgi?id=109534
Reviewed by Anders Carlsson.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit):
* WebProcess/WebCoreSupport/WebEditorClient.h:
2013-02-11 Jae Hyun Park <jae.park@company100.net>
[EFL] Build fix
https://bugs.webkit.org/show_bug.cgi?id=109518
Reviewed by Laszlo Gombos.
Fix EFL build by including PluginProcessConnectionManager.messages.in in
CMakeLists.txt
* CMakeLists.txt:
2013-02-11 Anders Carlsson <andersca@apple.com>
Fix build.
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebProcess.cpp:
2013-02-11 Seulgi Kim <seulgikim@company100.net>
[GTK] Build fix.
https://bugs.webkit.org/show_bug.cgi?id=109516
Reviewed by Csaba Osztrogonác.
PluginProcessConnectionManagerMessages are omitted from messages list.
* GNUmakefile.list.am:
2013-02-11 Tim Horton <timothy_horton@apple.com>
[WK2] setMinimumLayoutWidth should bail if there's no WebProcess
https://bugs.webkit.org/show_bug.cgi?id=109512
<rdar://problem/13093627>
Reviewed by Anders Carlsson.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setMinimumLayoutWidth):
2013-02-11 Anders Carlsson <andersca@apple.com>
PluginProcessConnectionManager should be a QueueClient
https://bugs.webkit.org/show_bug.cgi?id=109496
Reviewed by Andreas Kling.
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::didReceiveMessageOnConnectionWorkQueue):
(WebKit):
(WebKit::PluginProcessConnectionManager::didCloseOnConnectionWorkQueue):
* WebProcess/Plugins/PluginProcessConnectionManager.h:
(PluginProcessConnectionManager):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
* WebProcess/WebProcess.h:
(WebProcess):
2013-02-11 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed WK2 buildfix after r142518.
* DerivedSources.pri:
2013-02-11 Gavin Barraclough <barraclough@apple.com>
PluginProcess should quit immediately if idle in response to low-memory notifications
https://bugs.webkit.org/show_bug.cgi?id=109103
<rdar://problem/12679827>
Reviewed by Brady Eidson.
PluginProcess now installs a MemoryPressureHandler for the process, providing
a custom callback which will call terminate if appropriate (if the plugin is not
currently in use).
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::lowMemoryHandler):
- Custom callback to terminate if appropriate.
(WebKit::PluginProcess::initializeProcess):
- Install the MemoryPressureHandler.
(WebKit::PluginProcess::shouldTerminate):
- This method now also needs to be callable in situations where it might return false.
* PluginProcess/PluginProcess.h:
(PluginProcess):
- Added declaration for lowMemoryHandler.
2013-02-11 Anders Carlsson <andersca@apple.com>
Move the PluginProcessCrashed message to PluginProcessConnectionManager
https://bugs.webkit.org/show_bug.cgi?id=109493
Reviewed by Andreas Kling.
This is in preparation for making PluginProcessConnectionManager a connection queue client.
* DerivedSources.make:
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didClose):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::pluginProcessCrashed):
* WebProcess/Plugins/PluginProcessConnectionManager.h:
(PluginProcessConnectionManager):
* WebProcess/Plugins/PluginProcessConnectionManager.messages.in: Added.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessageOnConnectionWorkQueue):
(WebKit::WebProcess::webResourceLoadScheduler):
* WebProcess/WebProcess.h:
(WebProcess):
* WebProcess/WebProcess.messages.in:
2013-02-11 Benjamin Poulain <benjamin@webkit.org>
Kill TestRunner::setMinimumTimerInterval; implement the feature with InternalSettings
https://bugs.webkit.org/show_bug.cgi?id=109349
Reviewed by Sam Weinig.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
2013-02-11 Dean Jackson <dino@apple.com>
Snapshotted plug-in should use shadow root
https://bugs.webkit.org/show_bug.cgi?id=108284
Reviewed by Simon Fraser.
Take three of this commit - after rollout in r142400 and r142405.
We no longer have any need for plugInStartLabelImage.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Remove plugInStartLabelImage.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.cpp: Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.
2013-02-11 Anders Carlsson <andersca@apple.com>
The plug-in process connection manager doesn't need to be heap allocated
https://bugs.webkit.org/show_bug.cgi?id=109479
Reviewed by Andreas Kling.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::pluginProcessConnectionManager):
(WebKit::WebProcess::pluginProcessCrashed):
* WebProcess/WebProcess.h:
(WebKit):
(WebProcess):
2013-02-11 Tony Chang <tony@chromium.org>
Move setFrameFlatteningEnabled from layoutTestController to window.internals.settings
https://bugs.webkit.org/show_bug.cgi?id=87149
Reviewed by Simon Fraser.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Add setFrameFlatteningEnabled to the list of overridable values.
2013-02-11 Claudio Saavedra <csaavedra@igalia.com>
[WK2][Notifications] Missing early return in populateCopyOfNotificationPermissions
https://bugs.webkit.org/show_bug.cgi?id=108459
Reviewed by Alexey Proskuryakov.
* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::populateCopyOfNotificationPermissions):
Providers might return 0 and we will end up with a null-pointer dereference.
Early check against this.
2013-02-10 Sam Weinig <sam@webkit.org>
Make the Plug-in XPCService build work even when building in Xcode
<rdar://problem/13011186>
https://bugs.webkit.org/show_bug.cgi?id=109392
Reviewed by Anders Carlsson.
* Configurations/DebugRelease.xcconfig:
Add a DEBUG_OR_RELEASE variable to test against.
* Configurations/PluginService.32.xcconfig:
* Configurations/PluginService.64.xcconfig:
In non-production builds, don't link against WebKit2, so that we don't get warnings about WebKit2.framework
not containing the right architectures. This is ok, as these services are not used in non-production builds.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm:
Switch off the the old idiom of defining a macro for the initializer function, and instead set
it in the Info.plist, so the XPCServiceBootstrapper can grab it.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h:
(WebKit::XPCServiceEventHandler):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h:
(WebKit::XPCServiceEventHandler):
Get the entry point from the bundle, rather than the macro. This is not only a bit less gross,
but also allows us to build without having linked against WebKit2.framework.
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
Re-enable using XPC for plug-ins.
* WebKit2.xcodeproj/project.pbxproj:
Update project.
2013-02-10 Anders Carlsson <andersca@apple.com>
Add back code that was accidentally removed when moving plug-in enumeration back to the main thread
https://bugs.webkit.org/show_bug.cgi?id=109379
Reviewed by Andreas Kling.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getPlugins):
2013-02-10 Kent Tamura <tkent@chromium.org>
Unreviewed, rolling out r142347.
http://trac.webkit.org/changeset/142347
https://bugs.webkit.org/show_bug.cgi?id=108273
Because a depending change r142343 was rolled out.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
(WebKit::InjectedBundlePageUIClient::plugInStartLabelTitle):
(WebKit::InjectedBundlePageUIClient::plugInStartLabelSubtitle):
2013-02-10 Kent Tamura <tkent@chromium.org>
Unreviewed, rolling out r142343.
http://trac.webkit.org/changeset/142343
https://bugs.webkit.org/show_bug.cgi?id=108284
It might make inspector/profiler/selector-profiler-url.html
crashy.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
(WebKit::InjectedBundlePageUIClient::plugInStartLabelImage):
(WebKit):
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
(InjectedBundlePageUIClient):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::plugInStartLabelImage):
(WebKit):
* WebProcess/WebCoreSupport/WebChromeClient.h:
(WebChromeClient):
2013-02-10 Zan Dobersek <zdobersek@igalia.com>
[WebKit2][Gtk] Remove the fullscreen manager proxy message receiver upon invalidating
https://bugs.webkit.org/show_bug.cgi?id=109352
Reviewed by Sam Weinig.
As added for the Mac port in r142160 due to the changes in the same revision, remove
the fullscreen manager proxy as a message receiver. Also fixes a failing unit test.
* UIProcess/gtk/WebFullScreenManagerProxyGtk.cpp:
(WebKit::WebFullScreenManagerProxy::invalidate):
2013-02-10 Zoltan Arvai <zarvai@inf.u-szeged.hu>
[WK2] Fix build on PLUGIN_ARCHITECTURE(UNSUPPORTED) after r142314
https://bugs.webkit.org/show_bug.cgi?id=109364
Reviewed by Simon Hausmann.
void NetscapePlugin::platformPreInitialize() is need to be added to NetscapePluginNone.cpp.
* WebProcess/Plugins/Netscape/NetscapePluginNone.cpp:
(WebKit::NetscapePlugin::platformPreInitialize):
(WebKit):
2013-02-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137328.
http://trac.webkit.org/changeset/137328
https://bugs.webkit.org/show_bug.cgi?id=109367
causes memory usage to balloon if connection queue is filling
faster than sending (Requested by kling on #webkit).
* Platform/CoreIPC/ArgumentEncoder.cpp:
(CoreIPC::ArgumentEncoder::ArgumentEncoder):
(CoreIPC::ArgumentEncoder::grow):
* Platform/CoreIPC/ArgumentEncoder.h:
(CoreIPC::ArgumentEncoder::buffer):
(ArgumentEncoder):
2013-02-08 Sam Weinig <sam@webkit.org>
Fix ASSERT when the Web Content Process crashes
https://bugs.webkit.org/show_bug.cgi?id=109346
Reviewed by Simon Fraser.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidCrash):
We need to remove ourselves as a message receiver before calling out to the client, as
the client might want to re-add us (as Safari does).
2013-02-08 Benjamin Poulain <bpoulain@apple.com>
Move workerThreadCount from TestRunner to WebCore Internals
https://bugs.webkit.org/show_bug.cgi?id=109239
Reviewed by Darin Adler.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
* WebProcess/WebPage/WebFrame.cpp: Remove a useless #include.
2013-02-08 Dean Jackson <dino@apple.com>
Remove use of plugInStartLabelImage
https://bugs.webkit.org/show_bug.cgi?id=108273
Reviewed by Simon Fraser.
Remove any use of plugInStartLabelImage. While there, implement plugInStartLabelTitle
and plugInStartLabelSubtitle to return the values from the client.
implement them.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h: Remove callback and entry from client structure.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Remove plugInStartLabelImage.
(WebKit::InjectedBundlePageUIClient::plugInStartLabelTitle): Ask the client bundle for value.
(WebKit::InjectedBundlePageUIClient::plugInStartLabelSubtitle): Ditto.
2013-02-08 Dean Jackson <dino@apple.com>
Snapshotted plug-in should use shadow root
https://bugs.webkit.org/show_bug.cgi?id=108284
Reviewed by Simon Fraser.
Take two of this commit! We no longer have any need for plugInStartLabelImage.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Remove plugInStartLabelImage.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.cpp: Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.
2013-02-08 Dean Jackson <dino@apple.com>
Rolling out r142333 and r142337 which broke Mac Release builds.
2013-02-08 Anders Carlsson <andersca@apple.com>
Move plug-in enumeration back to the main thread
https://bugs.webkit.org/show_bug.cgi?id=109337
<rdar://problem/12015046>
Reviewed by Andreas Kling.
Plug-in enumeration was moved to a separate work queue to improve responsiveness, but
doing so lead to crashes when WebKit1 would enumerate plug-ins on the main thread at the same time.
Bug <rdar://problem/13185819> tracks fixing the responsiveness issue by spawning a plug-in process
and have it do the enumeration.
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::getPluginInfoFromCarbonResources):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::connectionWillClose):
(WebKit::WebProcessProxy::getPlugins):
* UIProcess/WebProcessProxy.h:
(WebCore):
(WebProcessProxy):
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit):
(WebKit::WebPlatformStrategies::populatePluginCache):
* WebProcess/WebProcess.cpp:
* WebProcess/WebProcess.h:
(WebProcess):
* WebProcess/WebProcess.messages.in:
2013-02-08 Dean Jackson <dino@apple.com>
Snapshotted plug-in should use shadow root
https://bugs.webkit.org/show_bug.cgi?id=108284
Reviewed by Simon Fraser.
We no longer have any need for plugInStartLabelImage.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Remove plugInStartLabelImage.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.cpp: Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.
2013-02-08 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
[WK2] Fix the build on !Mac after r142314.
https://bugs.webkit.org/show_bug.cgi?id=109327
Reviewed by Benjamin Poulain.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformPreInitialize): Add a stub for
the newly-added function.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformPreInitialize):
(WebKit):
2013-02-07 Anders Carlsson <andersca@apple.com>
Work around a bug in Flash where NSException objects can be released too early
https://bugs.webkit.org/show_bug.cgi?id=109242
<rdar://problem/13003470>
Reviewed by Darin Adler.
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::NetscapePluginModule::determineQuirks):
Set the new plug-in quirk.
* Shared/Plugins/PluginQuirks.h:
Add a new plug-in quirk.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::initialize):
Call platformPreInitialize.
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
(NetscapePlugin):
Add platformPreInitialize.
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
(WebKit::NSException_release):
Add new empty function.
(WebKit::NetscapePlugin::platformPreInitialize):
Patch -[NSException release] to be a no-op.
2013-02-08 Dean Jackson <dino@apple.com>
Do not register autostart for plugins from file:// (or nowhere)
https://bugs.webkit.org/show_bug.cgi?id=108271
Reviewed by Tim Horton.
If the pageOrigin is the empty string don't add
it to the auto-start origin list for snapshotting.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::addPlugInAutoStartOrigin):
2013-02-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142212.
http://trac.webkit.org/changeset/142212
https://bugs.webkit.org/show_bug.cgi?id=109255
Causes ASSERT(!m_installed) on launch (Requested by smfr on
#webkit).
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::initializeProcess):
(WebKit::PluginProcess::shouldTerminate):
* PluginProcess/PluginProcess.h:
(PluginProcess):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
2013-02-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][WK2] Remove dead code after r142169
https://bugs.webkit.org/show_bug.cgi?id=109251
Reviewed by Benjamin Poulain.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged):
2013-02-06 Gavin Barraclough <barraclough@apple.com>
PluginProcess should quit immediately if idle in response to low-memory notifications
https://bugs.webkit.org/show_bug.cgi?id=109103
<rdar://problem/12679827>
Reviewed by Darin Adler.
PluginProcess now initializes a MemoryPressureHandler for the process, providing
a custom callback which will call terminate if appropriate (if the plugin is not
currently in use).
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::lowMemoryHandler):
- Custom callback to terminate if appropriate.
(WebKit::PluginProcess::initializeProcess):
- Initialize the MemoryPressureHandler.
(WebKit::PluginProcess::shouldTerminate):
- This method now also needs to be callable in situations where it might return false.
* PluginProcess/PluginProcess.h:
(PluginProcess):
- Added declaration for lowMemoryHandler.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- MemoryPressureHandler::install is now called via MemoryPressureHandler::initialize.
2013-02-07 KwangYong Choi <ky0.choi@samsung.com>
Fix build warning after r142017
https://bugs.webkit.org/show_bug.cgi?id=109119
Reviewed by Alexey Proskuryakov.
Use UNUSED_PARAM macro to fix -Wunused-parameter build warning.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getPluginPath):
2013-02-07 Martin Robinson <mrobinson@igalia.com>
[GTK] Cleanup command-line defines
https://bugs.webkit.org/show_bug.cgi?id=109213
Reviewed by Xan Lopez.
* GNUmakefile.am: Remove references to flags that are now
provided by autotoolsconfig.h.
2013-02-07 Benjamin Poulain <bpoulain@apple.com>
Move pauseAnimation/pauseTransition from TestRunner to Internals
https://bugs.webkit.org/show_bug.cgi?id=109107
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
* WebProcess/WebPage/WebFrame.cpp:
* WebProcess/WebPage/WebFrame.h:
(WebFrame):
2013-02-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Removal of non coordinated graphics code path from WK2 EFL
https://bugs.webkit.org/show_bug.cgi?id=109165
Reviewed by Anders Carlsson.
Removed non coordinated graphics code path from WK2 EFL as it was not used by
anyone and caused a lot of preprocessor macros in the code making it less readable.
* UIProcess/API/efl/EvasGLContext.cpp:
* UIProcess/API/efl/EvasGLContext.h:
(WebKit::EvasGLContext::context):
* UIProcess/API/efl/EvasGLSurface.cpp:
* UIProcess/API/efl/EvasGLSurface.h:
(WebKit::EvasGLSurface::surface):
Removed also 'inline' and 'const' keywords from functions declaration,
as both EvasGLContext::context() and EvasGLSurface::surface()
are defined inside their classes and return mutable pointer.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::transformFromScene):
(EwkView::transformToScreen):
(EwkView::coordinatedGraphicsScene):
(EwkView::displayTimerFired):
(EwkView::scheduleUpdateDisplay): Renamed from EwkView::update().
(EwkView::exitAcceleratedCompositingMode):
(EwkView::handleEvasObjectCalculate):
(EwkView::takeSnapshot):
* UIProcess/API/efl/EwkView.h:
(WebCore):
(EwkView):
* UIProcess/API/efl/SnapshotImageGL.cpp:
(getImageSurfaceFromFrameBuffer):
* UIProcess/API/efl/SnapshotImageGL.h:
* UIProcess/API/efl/ewk_view.cpp:
* UIProcess/efl/PageClientBase.cpp:
(WebKit::PageClientBase::setViewNeedsDisplay):
(WebKit::PageClientBase::updateAcceleratedCompositingMode):
* UIProcess/efl/PageClientBase.h:
(PageClientBase):
* UIProcess/efl/PageClientDefaultImpl.cpp:
(WebKit::PageClientDefaultImpl::didCommitLoad):
(WebKit::PageClientDefaultImpl::updateViewportSize):
(WebKit::PageClientDefaultImpl::didChangeViewportProperties):
(WebKit::PageClientDefaultImpl::didChangeContentsSize):
(WebKit::PageClientDefaultImpl::pageTransitionViewportReady):
* UIProcess/efl/PageClientDefaultImpl.h:
(PageClientDefaultImpl):
* UIProcess/efl/PageClientLegacyImpl.cpp:
(WebKit::PageClientLegacyImpl::didCommitLoad):
(WebKit::PageClientLegacyImpl::updateViewportSize):
(WebKit::PageClientLegacyImpl::didChangeViewportProperties):
(WebKit::PageClientLegacyImpl::didChangeContentsSize):
(WebKit::PageClientLegacyImpl::pageDidRequestScroll):
(WebKit::PageClientLegacyImpl::didRenderFrame):
(WebKit::PageClientLegacyImpl::pageTransitionViewportReady):
* UIProcess/efl/PageClientLegacyImpl.h:
(PageClientLegacyImpl):
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::didCommitLoadForFrame):
(WebKit::PageLoadClientEfl::PageLoadClientEfl):
* UIProcess/efl/PageLoadClientEfl.h:
(PageLoadClientEfl):
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::didChangeContentsSize):
(WebKit::PageViewportControllerClientEfl::didChangeVisibleContents):
* UIProcess/efl/PageViewportControllerClientEfl.h:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged):
2013-02-06 Sam Weinig <sam@webkit.org>
Make WebPageProxy and sub-objects MessageReceivers
https://bugs.webkit.org/show_bug.cgi?id=108785
Reviewed by Anders Carlsson.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::~CoordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::~DrawingAreaProxy):
(WebKit::DrawingAreaProxy::contentsRect):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::setVisibleContentsRect):
* UIProcess/DrawingAreaProxy.messages.in:
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::setVisibleContentsRect):
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy):
* UIProcess/WebFullScreenManagerProxy.h:
(WebFullScreenManagerProxy):
* UIProcess/WebFullScreenManagerProxy.messages.in:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::invalidate):
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.messages.in:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::inspector):
(WebKit::WebPageProxy::fullScreenManager):
(WebKit::WebPageProxy::processDidCrash):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::didReceiveSyncMessage):
* UIProcess/mac/WebFullScreenManagerProxyMac.mm:
(WebKit::WebFullScreenManagerProxy::invalidate):
2013-02-07 Zan Dobersek <zdobersek@igalia.com>
[Autotools] Remove uses of Automake FARSTREAM_(CFLAGS|LIBS) variables, USE_FARSTREAM conditional
https://bugs.webkit.org/show_bug.cgi?id=109198
Reviewed by Martin Robinson.
* GNUmakefile.am: Remove the FARSTREAM_(CFLAGS|LIBS) variables, they're
not set to anything.
2013-02-07 Kenneth Rohde Christiansen <kenneth@webkit.org>
[WK2][EFL] Add WKView methods related to background drawing
https://bugs.webkit.org/show_bug.cgi?id=109159
Reviewed by Anders Carlsson.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewSetDrawsBackground):
(WKViewGetDrawsBackground):
(WKViewSetDrawsTransparentBackground):
(WKViewGetDrawsTransparentBackground):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::setDrawsBackground):
(WebKit):
(WebKit::WebView::drawsBackground):
(WebKit::WebView::setDrawsTransparentBackground):
(WebKit::WebView::drawsTransparentBackground):
* UIProcess/efl/WebView.h:
(WebView):
* UIProcess/API/C/efl/WKView.h:
New methods added
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::displayTimerFired):
(EwkView::handleEvasObjectColorSet):
* UIProcess/API/efl/EwkView.h:
(EwkView):
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_draws_page_background_set):
Remove the unneeded m_setDrawsBackground and replace
it with the WKView setting.
2013-02-07 Christophe Dumez <dchris@gmail.com>
[EFL][WK2] EWK2UnitTestBase.ewk_view_page_contents_get API test is sometimes failing
https://bugs.webkit.org/show_bug.cgi?id=108634
Reviewed by Alexey Proskuryakov.
Use more robust data validation in EWK2UnitTestBase.ewk_view_page_contents_get
so that the test passes consistently. The issue was that the header before the
data includes the current date. Depending on the date, the data may start at a
different index in the returned string. Instead of hardcoding the data start
index in the test, we now use String::contains().
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(PageContentsCallback):
(TEST_F):
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142141.
http://trac.webkit.org/changeset/142141
https://bugs.webkit.org/show_bug.cgi?id=108990
Reland r142112, will update Chromium expectations and create a
Chromium bug instead for the crash.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl):
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142112.
http://trac.webkit.org/changeset/142112
https://bugs.webkit.org/show_bug.cgi?id=108990
The new test scrollingcoordinator/non-fast-scrollable-region-transformed- iframe.html crashes on Lion.
See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=scrollingcoordinator%2Fnon-fast-scrollable-region-transformed-iframe.html
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::updateOffsetFromViewportForSelf):
(WebKit):
(WebKit::updateOffsetFromViewportForLayer):
(WebKit::CoordinatedLayerTreeHost::syncFixedLayers):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl):
2013-02-07 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
[CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers
https://bugs.webkit.org/show_bug.cgi?id=108990
Reviewed by Noam Rosenthal.
Signed off for WebKit2 by Simon Fraser.
WebCore keeps ScrollingCoordinator up-to-date about whether layers are fixed or not, so we
don't need to traverse the tree every frame to get this information.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: remove
syncFixedLayers() and its helper functions. Those were used to identify the fixed layers
and are not needed anymore.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl): enable the scrolling coordinator usage for
Coordinated Graphics.
2013-02-07 Michael Brüning <michael.bruning@digia.com>
[Qt][WK2] Fold QtWebPageLoadClient into QQuickWebViewPrivate and move to C API.
https://bugs.webkit.org/show_bug.cgi?id=108473
Reviewed by Simon Hausmann.
Signed off for WebKit2 by Benjamin Poulain.
This patch removes the QtWebPageLoadClient and moves the functionality into the
QQuickWebViewPrivate as most callback methods are calling the private webview
indirectly anyway.
The patch also moves as much of the functionality to the C API as is possible with
the current C API.
* Target.pri:
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
(QQuickWebViewPrivate::didStartProvisionalLoadForFrame):
(QQuickWebViewPrivate::didReceiveServerRedirectForProvisionalLoadForFrame):
(QQuickWebViewPrivate::didFailLoad):
(QQuickWebViewPrivate::didCommitLoadForFrame):
(QQuickWebViewPrivate::didFinishLoadForFrame):
(QQuickWebViewPrivate::didSameDocumentNavigationForFrame):
(QQuickWebViewPrivate::didReceiveTitleForFrame):
(QQuickWebViewPrivate::didStartProgress):
(QQuickWebViewPrivate::didChangeProgress):
(QQuickWebViewPrivate::didFinishProgress):
(QQuickWebViewPrivate::didChangeBackForwardList):
(QQuickWebViewPrivate::setTransparentBackground):
(QQuickWebViewPrivate::transparentBackground):
(QQuickWebViewPrivate::loadProgressDidChange):
* UIProcess/API/qt/qquickwebview_p.h:
(WebKit):
* UIProcess/API/qt/qquickwebview_p_p.h:
(WebKit):
(QQuickWebViewPrivate):
* UIProcess/qt/QtWebError.cpp:
(WebKit::QtWebError::url):
* UIProcess/qt/QtWebPageLoadClient.cpp: Removed.
* UIProcess/qt/QtWebPageLoadClient.h: Removed.
2013-02-05 Eunmi Lee <eunmi15.lee@samsung.com> and Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
[EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
https://bugs.webkit.org/show_bug.cgi?id=97173
Reviewed by Kenneth Rohde Christiansen, signed-off by Benjamin Poulain.
Initialize and shutdown the EFL libraries in the ewk_main.cpp for
UIProcess and WebProcessMainEfl.cpp for WebProcess.
This allows us to shut down the libraries in a proper way, since
RunLoop persist until the process exits.
* UIProcess/API/efl/ewk_main.cpp:
(ewk_init):
(ewk_shutdown):
* WebProcess/efl/WebProcessMainEfl.cpp:
(WebKit::WebProcessMainEfl):
2013-02-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed build fix.
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::processDidClose):
m_process can't be initialized nullptr yet. Use 0 instead of nullptr.
2013-02-07 Simon Hausmann <simon.hausmann@digia.com>
[Qt][WK2] Fold QtWebPageFindClient into QQuickWebViewPrivate
https://bugs.webkit.org/show_bug.cgi?id=108920
Reviewed by Jocelyn Turcotte, signed off for WK2 by Benjamin.
Employ the pattern suggested by Jocelyn to simply implement the C
callbacks directly using static functions.
* Target.pri:
* UIProcess/API/qt/qquickwebview.cpp:
(toQQuickWebViewPrivate):
(QQuickWebViewPrivate::initialize):
(QQuickWebViewPrivate::didFindString):
(QQuickWebViewPrivate::didFailToFindString):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
* UIProcess/qt/QtWebPageFindClient.cpp: Removed.
* UIProcess/qt/QtWebPageFindClient.h: Removed.
2013-02-03 Sam Weinig <sam@webkit.org>
Make CustomProtocolManagerProxy a MessageReceiver
https://bugs.webkit.org/show_bug.cgi?id=108787
Reviewed by Anders Carlsson.
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::addMessageReceiver):
(WebKit::ChildProcessProxy::removeMessageReceiver):
(WebKit::ChildProcessProxy::dispatchMessage):
(WebKit::ChildProcessProxy::dispatchSyncMessage):
* Shared/ChildProcessProxy.h:
Sink the MessageReceiverMap down into the ChildProcessProxy.
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::DownloadProxyMap):
(WebKit::DownloadProxyMap::createDownloadProxy):
(WebKit::DownloadProxyMap::downloadFinished):
(WebKit::DownloadProxyMap::processDidClose):
* UIProcess/Downloads/DownloadProxyMap.h:
Pass the ChildProcessProxy rather than the MessageReceiverMap to the constructor.
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.messages.in:
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy):
Convert to a MessageReceiver.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::createDownloadProxy):
(WebKit::NetworkProcessProxy::didReceiveMessage):
(WebKit::NetworkProcessProxy::didReceiveSyncMessage):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::didReceiveSyncMessage):
(WebKit::WebProcessProxy::createDownloadProxy):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
Remove direct chaining to CustomProtocolManagerProxy.
2013-02-06 Enrica Casucci <enrica@apple.com>
ASSERT(!m_findPageOverlay) in FindController.cpp after r140769.
https://bugs.webkit.org/show_bug.cgi?id=109105.
Reviewed by Tim Horton.
In r140769 we changed the way the overlay is destroyed,
therefore the assert is no longer valid and should be removed.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll):
2013-02-06 Anders Carlsson <andersca@apple.com>
Dispatch storage manager messages to the storage work queue
https://bugs.webkit.org/show_bug.cgi?id=109099
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::didReceiveMessageOnConnectionWorkQueue):
(WebKit::StorageManager::dispatchMessageOnStorageManagerQueue):
(WebKit):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
2013-02-06 Anders Carlsson <andersca@apple.com>
Pass the document source URL to the pluginLoadPolicy callback
https://bugs.webkit.org/show_bug.cgi?id=109084
<rdar://problem/13154516>
Reviewed by Andreas Kling.
* UIProcess/API/C/WKPage.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getPluginPath):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebUIClient.cpp:
(WebKit::WebUIClient::pluginLoadPolicy):
* UIProcess/WebUIClient.h:
(WebUIClient):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
(WebKit::WebPage::canPluginHandleResponse):
2013-02-06 Alexey Proskuryakov <ap@apple.com>
Get rid of unneeded writeable preferences.
Reviewed by Anders Carlsson.
com.apple.HIToolbox.plist and com.apple.WebProcess.plist were made writeable very
early in WebKit2 development, before we moved a lot of functionality to UI process.
They don't appear to be needed any more.
Note that we do not even need to allow reading for com.apple.WebProcess.plist -
it's read at process initialization before we enter the sandbox, and services
have a different plist anyway.
* WebProcess/com.apple.WebProcess.sb.in:
2013-02-06 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[EFL][WK2] Assertion failure on MiniBrowser exit
https://bugs.webkit.org/show_bug.cgi?id=108932
Reviewed by Anders Carlsson.
WorkQueue is now refcounted after r141497, so increase ref
count when a new job is scheduled and unref it when it finishes.
* Platform/efl/WorkQueueEfl.cpp:
(WorkQueue::performWork):
(WorkQueue::performTimerWork):
(WorkQueue::dispatch):
(WorkQueue::dispatchAfterDelay):
2013-02-06 Simon Hausmann <simon.hausmann@digia.com>, Zoltan Arvai <zarvai@inf.u-szeged.hu>
[WK2][Win] Fix build after MessageID.h related changes and after r141619.
https://bugs.webkit.org/show_bug.cgi?id=108612
Reviewed by Anders Carlsson.
* Platform/CoreIPC/win/ConnectionWin.cpp:
(CoreIPC::Connection::platformInvalidate):
(CoreIPC::Connection::readEventHandler):
(CoreIPC::Connection::open):
(CoreIPC::Connection::sendOutgoingMessage):
* Platform/WorkQueue.h:
(WorkQueue::WorkItemWin::queue):
(WorkItemWin):
* Platform/win/SharedMemoryWin.cpp:
(WebKit::SharedMemory::Handle::decode):
* Platform/win/WorkQueueWin.cpp:
(WorkQueue::handleCallback):
(WorkQueue::performWorkOnRegisteredWorkThread):
2013-02-06 Mike West <mkwst@chromium.org>
Add an ENABLE_NOSNIFF feature flag.
https://bugs.webkit.org/show_bug.cgi?id=109029
Reviewed by Jochen Eisinger.
This new flag will control the behavior of 'X-Content-Type-Options: nosniff'
when processing script and other resource types.
* Configurations/FeatureDefines.xcconfig:
2013-02-06 Marja Hölttä <marja@chromium.org>
Take referrer policy into account when clearing the referrer header
https://bugs.webkit.org/show_bug.cgi?id=86000
Reviewed by Alexey Proskuryakov.
The referrer should only be cleared when doing a https -> http redirect,
if the policy is "default". Otherwise the referrer should be left intact.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::SchedulableLoader):
* NetworkProcess/SchedulableLoader.h:
(WebKit::SchedulableLoader::shouldClearReferrerOnHTTPSToHTTPRedirect):
(SchedulableLoader):
* NetworkProcess/SyncNetworkResourceLoader.cpp:
(WebKit::SyncNetworkResourceLoader::start):
* NetworkProcess/mac/RemoteNetworkingContext.h:
(WebKit::RemoteNetworkingContext::create):
(RemoteNetworkingContext):
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect):
(WebKit):
(WebKit::RemoteNetworkingContext::RemoteNetworkingContext):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
(NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::shouldClearReferrerOnHTTPSToHTTPRedirect):
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad):
(WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad):
(WebKit::WebResourceLoadScheduler::scheduleLoad):
* WebProcess/Network/WebResourceLoadScheduler.h:
(WebResourceLoadScheduler):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
2013-02-06 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[EFL][WK2] Encapsulate Ewk View evas smart object code inside EwkView class
https://bugs.webkit.org/show_bug.cgi?id=108062
Reviewed by Kenneth Rohde Christiansen.
The Ewk View implementation is encapsulated within EwkView class.
Besides multiple refactoring of Ewk View evas smart object code was made.
* UIProcess/API/C/efl/WKView.cpp:
(createWKView):
Aux function to share WKView creation implementation.
* UIProcess/API/efl/EwkView.cpp:
(smartDataChanged):
(defaultSmartClassInstance):
(toSmartData):
(EwkView::initSmartClassInterface):
(EwkView::toEvasObject):
(EwkView::smartData):
Renamed and moved here from ewk_view.
(EwkViewEventHandler):
(EwkViewEventHandler::subscribe):
(EwkViewEventHandler::unsubscribe):
(::handleEvent):
Added a new template class to encapsulate Ewk View Evas events handling.
(EwkView::EwkView):
(EwkView::~EwkView):
Constructor and desctructor are private.
(EwkView::createEvasObject):
Added factory function for ewk view evas objects creation.
(EwkView::handleEvasObjectAdd):
(EwkView::handleEvasObjectDelete):
(EwkView::handleEvasObjectResize):
(EwkView::handleEvasObjectMove):
(EwkView::handleEvasObjectCalculate):
(EwkView::handleEvasObjectShow):
(EwkView::handleEvasObjectHide):
(EwkView::handleEvasObjectColorSet):
Evas_Smart_Class interface callbacks moved into the EwkView class.
(EwkView::handleEwkViewFocusIn):
(EwkView::handleEwkViewFocusOut):
(EwkView::handleEwkViewMouseWheel):
(EwkView::handleEwkViewMouseDown):
(EwkView::handleEwkViewMouseUp):
(EwkView::handleEwkViewMouseMove):
(EwkView::handleEwkViewKeyDown):
(EwkView::handleEwkViewKeyUp):
Ewk_View_Smart_Class interface callback moved into the EwkView class.
(EwkView::handleTouchDown):
(EwkView::handleTouchUp):
(EwkView::handleTouchMove):
Renamed.
(toEwkView):
Aux function to get the EwkView instance fromevas object.
(isViewEvasObject):
Aux function to check that given evas object is ewk view.
* UIProcess/API/efl/EwkView.h:
(EwkView::evasObject):
(EwkView):
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_smart_class_set):
(ewk_view_smart_add):
(ewk_view_add_with_context):
(ewk_view_feed_touch_event):
(Ewk_Page_Contents_Context):
* UIProcess/API/efl/ewk_view_private.h: Removed.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewCreate):
(WKViewCreateWithFixedLayout):
(WKViewCreateSnapshot):
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate):
* UIProcess/efl/ContextHistoryClientEfl.cpp:
(WebKit::ContextHistoryClientEfl::didNavigateWithNavigationData):
(WebKit::ContextHistoryClientEfl::didPerformClientRedirect):
(WebKit::ContextHistoryClientEfl::didPerformServerRedirect):
(WebKit::ContextHistoryClientEfl::didUpdateHistoryTitle):
* UIProcess/efl/PageClientBase.cpp:
(WebKit::PageClientBase::processDidCrash):
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::didChangeBackForwardList):
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::takeFocus):
(WebKit::PageUIClientEfl::focus):
(WebKit::PageUIClientEfl::unfocus):
* UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
(WebKit::WebFullScreenManagerProxy::enterFullScreen):
(WebKit::WebFullScreenManagerProxy::exitFullScreen):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::viewWidget):
Updated due to changes in EwkView interface.
2013-02-05 Tim Horton <timothy_horton@apple.com>
[wk2] TiledCoreAnimationDrawingArea has one more layer in its CAContext when we're in the background
https://bugs.webkit.org/show_bug.cgi?id=108992
<rdar://problem/13087365>
Reviewed by Anders Carlsson.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea): Add storage for m_isInWindow.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateLayerHostingContext): Only set the root layer on our layer
hosting context if we're in the window when swapping out contexts.
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer): Update m_isInWindow, and set the root layer
of the layer hosting context (or unset it if we're out of the window).
2013-02-05 Anders Carlsson <andersca@apple.com>
WebKit clients should be able to override loading of blocked plug-ins
https://bugs.webkit.org/show_bug.cgi?id=108968
<rdar://problem/13154516>
Reviewed by Sam Weinig.
Replace the shouldInstantiatePlugin callback with a new pluginLoadPolicy which is called regardless
of whether the plug-in is blocked or not. This lets clients override the plug-in load policy and
force loading of blacklisted plug-ins (and vice versa).
* UIProcess/API/C/WKPage.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getPluginPath):
* UIProcess/WebUIClient.cpp:
(WebKit::toWKPluginLoadPolicy):
(WebKit):
(WebKit::toPluginModuleLoadPolicy):
(WebKit::WebUIClient::pluginLoadPolicy):
* UIProcess/WebUIClient.h:
(WebUIClient):
2013-02-05 Simon Hausmann <simon.hausmann@digia.com>
[Qt][WK2] Replace more uses of WebPageProxy with WKPage in QQuickWebView
https://bugs.webkit.org/show_bug.cgi?id=108826
Reviewed by Kenneth Rohde Christiansen and signed off for WK2 by
Benjamin Poulain.
This patch converts a few more usages of WebPageProxy to functions in
the WKPage API.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
(QQuickWebViewLegacyPrivate::zoomFactor):
(QQuickWebViewLegacyPrivate::setZoomFactor):
(QQuickWebViewExperimental::postMessage):
(QQuickWebViewExperimental::userAgent):
(QQuickWebViewExperimental::setUserAgent):
(QQuickWebViewExperimental::evaluateJavaScript):
(QQuickWebViewExperimental::findText):
(QQuickWebView::goBack):
(QQuickWebView::goForward):
(QQuickWebView::stop):
(QQuickWebView::reload):
(QQuickWebView::setUrl):
(QQuickWebView::canGoBack):
(QQuickWebView::canGoForward):
(QQuickWebView::loading):
(QQuickWebView::title):
(QQuickWebView::pageRef):
(QQuickWebView::loadHtml):
(QQuickWebView::runJavaScriptInMainFrame):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
2013-02-04 Gwang Yoon Hwang <ryumiel@company100.net>
Coordinated Graphics : disconnectCustomFilterProgram does not do anything.
https://bugs.webkit.org/show_bug.cgi?id=108807
Reviewed by Anders Carlsson.
We need to add newly created WebCustomFilterProgramProxy to a hashset to
disconnect when CoordinatedLayerTreeHost gets destructed.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::checkCustomFilterProgramProxies):
2013-02-04 Benjamin Poulain <bpoulain@apple.com>
Kill suspendAnimation(), resumeAnimation() and numberOfActiveAnimations() from DRT/WTR; use Internals
https://bugs.webkit.org/show_bug.cgi?id=108741
Reviewed by Tony Chang.
Suspending and resuming application has been useless for a one. Someone just
"forgot" WebKit2.
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
* WebProcess/WebPage/WebFrame.cpp:
* WebProcess/WebPage/WebFrame.h:
(WebFrame):
2013-02-04 Jaehun Lim <ljaehun.lim@samsung.com>
[EFL][WK2] Implement runBeforeUnloadConfirmPanel on EFL
https://bugs.webkit.org/show_bug.cgi?id=106979
Reviewed by Benjamin Poulain.
Implement runBeforeUnloadConfirmPanel() to support window.onbeforeunload.
We can show confirmation window when beforeunload event is fired.
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::PageUIClientEfl):
(WebKit::PageUIClientEfl::runBeforeUnloadConfirmPanel):
(WebKit):
* UIProcess/efl/PageUIClientEfl.h:
(PageUIClientEfl):
2013-02-04 Kenneth Rohde Christiansen <kenneth@webkit.org>
[EFL][WK2] Introduce a WebView class as counterpart for WKViewRef
https://bugs.webkit.org/show_bug.cgi?id=107931
Reviewed by Anders Carlsson.
This is just one step of the new plan for the EFL API.
The plan is to move the public EFL-like API on top of the shared
WK2 C API, plus a few EFL extensions (WKView class mostly).
The EFL-like API can be seen as a convenience API which ties
well into EFL and which makes it easy to add web experiences
to existing and new EFL applications. It provides a smart object
like API and a Evas_Object based view.
For more advanced use cases, such as browser and runtime, it is
possible to use the WK* C API, which is gives more flexibility
while being more low level.
The idea is that the WKView class will not depend on Evas_Object
and X11 (future plan) unlike the current EFL-like API. This should
make it possible to use it for cases where none of these are
available.
This patch introduces the WebView class which serves as our
counterpart for the WKView class, and adds a few needed methods.
The EwkView owns the WebView class (and will be constructing it
in the near future when the EwkView class has been changed to
handle all smart object related code)
The clean up of the smart object related code as the proper
construction of EwkView and WebView will be done in follow-up
patches.
* UIProcess/API/C/efl/WKAPICastEfl.h:
(WebKit):
The WKView API is not based on WebView and not Evas_Object*
* UIProcess/API/C/efl/WKView.cpp:
(WKViewCreate):
(WKViewCreateWithFixedLayout):
(WKViewInitialize):
(WKViewGetPage):
(WKViewSetThemePath):
(WKViewSuspendActiveDOMObjectsAndAnimations):
(WKViewResumeActiveDOMObjectsAndAnimations):
(WKViewGetEvasObject):
(WKViewCreateSnapshot):
Add a few new WKView EFL C methods, and update existing
methods to reflect that the WKViewRef is now a WebView*
The construction methods will be rewritten when the smart
object construction has been solved.
* UIProcess/API/C/efl/WKView.h:
* UIProcess/efl/WebView.cpp: Added.
(WebKit):
(WebKit::WebView::WebView):
(WebKit::WebView::~WebView):
(WebKit::WebView::initialize):
(WebKit::WebView::setThemePath):
(WebKit::WebView::suspendActiveDOMObjectsAndAnimations):
(WebKit::WebView::resumeActiveDOMObjectsAndAnimations):
* UIProcess/efl/WebView.h: Added.
(WebKit):
(WebView):
(WebKit::WebView::pageRef):
(WebKit::WebView::evasObject):
(WebKit::WebView::page):
(WebKit::WebView::type):
Add a new WebKit::WebView class for EFL.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::~EwkView):
(EwkView::wkPage):
(EwkView::setThemePath):
(EwkView::createGLSurface):
Base methods on C API instead of internal API as much
as currently possible.
* UIProcess/API/efl/EwkView.h:
(WebKit):
(WebView):
(EwkView):
(EwkView::wkView):
(EwkView::page):
* UIProcess/API/efl/ewk_view.cpp:
(createEwkView):
(ewk_view_base_add):
(ewk_view_smart_add):
Modify to return the EwkView class for now.
* UIProcess/API/efl/ewk_view_private.h:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Updated due to changed API.
2013-02-04 Anders Carlsson <andersca@apple.com>
Set up the storage manager as a connection queue
https://bugs.webkit.org/show_bug.cgi?id=108879
Reviewed by Sam Weinig.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::processWillOpenConnection):
Add the storage manager as a connection queue client.
(WebKit::StorageManager::processWillCloseConnection):
Remove the storage manager.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::processWillOpenConnection):
Call the storage manager.
(WebKit::WebContext::processWillCloseConnection):
Call the storage manager.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
Call the context.
(WebKit::WebProcessProxy::connectionWillClose):
Call the context.
(WebKit::WebProcessProxy::didFinishLaunching):
Remove a comment.
2013-02-04 Anders Carlsson <andersca@apple.com>
Send message when creating and destroying StorageAreaProxy objects
https://bugs.webkit.org/show_bug.cgi?id=108874
Reviewed by Sam Weinig.
* Shared/SecurityOriginData.cpp:
(WebKit::SecurityOriginData::fromSecurityOrigin):
* Shared/SecurityOriginData.h:
(SecurityOriginData):
Add helper function for creating a SecurityOriginData object given a WebCore::SecurityOrigin object.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::generateStorageAreaID):
New function to create a unique storage area ID.
(WebKit::StorageAreaProxy::StorageAreaProxy):
Send a CreateStorageArea message.
(WebKit::StorageAreaProxy::~StorageAreaProxy):
Send a DestroyStorageArea message.
(WebKit::StorageAreaProxy::contains):
Remove this assertion for now, it fires too often.
* WebProcess/Storage/StorageNamespaceProxy.h:
(WebKit::StorageNamespaceProxy::storageNamespaceID):
Add getter.
2013-02-04 Kenneth Rohde Christiansen <kenneth@webkit.org>
[EFL][WK2] Use C API inside EwkView
https://bugs.webkit.org/show_bug.cgi?id=108825
Reviewed by Anders Carlsson.
A straight-forward port towards the C API.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView): Use C API for common default preferences.
(EwkView::wkPage): Make it const and remove useless comment.
(EwkView::deviceScaleFactor):
(EwkView::title):
(EwkView::customTextEncodingName):
(EwkView::setCustomTextEncodingName):
(EwkView::informURLChange):
* UIProcess/API/efl/EwkView.h:
(EwkView):
2013-02-04 Alexey Proskuryakov <ap@apple.com>
Remove an unnecessary sandbox rule.
Reviewed by Sam Weinig.
* WebProcess/com.apple.WebProcess.sb.in: We already have a file-read rule for
/Library/Managed Preferences, no need for another rule for something inside it.
2013-02-04 Brady Eidson <beidson@apple.com>
WebProcess crashes handling repeated NetworkProcess crashes.
<rdar://problem/13049867> and https://bugs.webkit.org/show_bug.cgi?id=108861
Reviewed by Alexey Proskuryakov.
- Rename the concept of "unschedulable loader" to "internally failed loader"
- When the NetworkProcess crashes, add all outstanding ResourceLoaders into the unschedulable pile.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebKit::WebResourceLoadScheduler::scheduleLoad):
(WebKit::WebResourceLoadScheduler::scheduleInternallyFailedLoad):
(WebKit::WebResourceLoadScheduler::internallyFailedLoadTimerFired):
(WebKit::WebResourceLoadScheduler::remove): Also remove a non-helpful, out of date comment.
(WebKit::WebResourceLoadScheduler::networkProcessCrashed):
* WebProcess/Network/WebResourceLoadScheduler.h:
WebResourceLoader no longer responds to crashes directly, but now exposes its WebCore ResourceLoader:
* WebProcess/Network/WebResourceLoader.cpp:
* WebProcess/Network/WebResourceLoader.h:
(WebKit::WebResourceLoader::resourceLoader):
2013-02-04 Anders Carlsson <andersca@apple.com>
Update message generation to use the new queue client semantics
https://bugs.webkit.org/show_bug.cgi?id=108865
Reviewed by Andreas Kling.
* Scripts/webkit2/messages.py:
(connection_work_queue_message_statement):
(async_message_statement):
(generate_message_handler):
* Scripts/webkit2/messages_unittest.py:
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::didReceiveMessageOnConnectionWorkQueue):
* Shared/mac/SecItemShim.h:
(SecItemShim):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/mac/SecItemShimProxy.h:
(SecItemShimProxy):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebPage/EventDispatcher.h:
(EventDispatcher):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebProcess.h:
(WebProcess):
2013-02-04 Abhishek Arya <inferno@chromium.org>
Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
https://bugs.webkit.org/show_bug.cgi?id=108668
Reviewed by Eric Seidel.
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::HandleArray::operator[]):
2013-02-04 Anders Carlsson <andersca@apple.com>
Change didReceiveMessageOnConnectionWorkQueue semantics
https://bugs.webkit.org/show_bug.cgi?id=108859
Reviewed by Sam Weinig.
Change didReceiveMessageOnConnectionWorkQueue to take a reference to an
OwnPtr<MessageDecoder>. This lets queue clients handle a message later, on a different
work queue for example. Also, get rid of the didHandleMessage boolean, since taking ownership
of the decoder implicitly means that the message was handled.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::processIncomingMessage):
* Platform/CoreIPC/Connection.h:
(QueueClient):
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::didReceiveMessageOnConnectionWorkQueue):
* Shared/mac/SecItemShim.h:
(SecItemShim):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageManager):
(WebKit::StorageManager::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/Storage/StorageManager.h:
(WebKit):
(StorageManager):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/mac/SecItemShimProxy.h:
(SecItemShimProxy):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebPage/EventDispatcher.h:
(EventDispatcher):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebProcess.h:
(WebProcess):
2013-02-04 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12884778> Sandbox violation due to MediaAccessibility code trying to access ~/Library/Preferences/com.apple.mediaaccessibility.plist
Reviewed by Sam Weinig.
* WebProcess/com.apple.WebProcess.sb.in:
2013-02-04 Anders Carlsson <andersca@apple.com>
Add didCloseOnConnectionWorkQueue to Connection::QueueClient
https://bugs.webkit.org/show_bug.cgi?id=108853
Reviewed by Andreas Kling.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::connectionDidClose):
* Platform/CoreIPC/Connection.h:
(QueueClient):
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::didCloseOnConnectionWorkQueue):
* Shared/mac/SecItemShim.h:
(SecItemShim):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::didCloseOnConnectionWorkQueue):
(WebKit):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didCloseOnConnectionWorkQueue):
(WebKit):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::didCloseOnConnectionWorkQueue):
* UIProcess/mac/SecItemShimProxy.h:
(SecItemShimProxy):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::didCloseOnConnectionWorkQueue):
(WebKit):
* WebProcess/WebPage/EventDispatcher.h:
(EventDispatcher):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didCloseOnConnectionWorkQueue):
(WebKit):
* WebProcess/WebProcess.h:
(WebProcess):
2013-02-04 Martin Robinson <mrobinson@igalia.com>
Fix GTK+ 'make dist' in preparation for the 1.11.5 release.
* GNUmakefile.am:
* GNUmakefile.list.am:
2013-02-04 Enrica Casucci <enrica@apple.com>
Add specific EditActions for Bold and Italic commands.
https://bugs.webkit.org/show_bug.cgi?id=108842.
<rdar://problem/13098252>
Reviewed by Ryosuke Niwa.
* UIProcess/WebEditCommandProxy.cpp:
(WebKit::WebEditCommandProxy::nameForEditAction):
2013-02-04 Anders Carlsson <andersca@apple.com>
Use a separate queue for the connection watchdog callback in the web process
https://bugs.webkit.org/show_bug.cgi?id=108844
Reviewed by Andreas Kling.
Don't pass the connection work queue to the didCloseOnConnectionWorkQueue callback.
Instead, create a new, temporary work queue where the exit call will be dispatched to.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::connectionDidClose):
* Platform/CoreIPC/Connection.h:
(Connection):
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):
2013-02-04 Tim Horton <timothy_horton@apple.com>
Allow TiledCoreAnimationDrawingArea overlay layers to become tiled
https://bugs.webkit.org/show_bug.cgi?id=108729
<rdar://problem/13047546>
Reviewed by Anders Carlsson.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea): Add didCommitChangesForLayer and storage for the
current PlatformLayer corresponding to m_pageOverlayLayer.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers): Update the TileCache's visible rect.
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect): Forward exposed rect changes to the page overlay layer, if it's tiled.
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged): Forward scrollability changes to the page overlay layer, if it's tiled.
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer): Allow the page overlay layer to become tiled. Update its exposed rect and whether or not it respects the exposed rect if it's tiled upon creation.
(WebKit::TiledCoreAnimationDrawingArea::didCommitChangesForLayer): If a GraphicsLayer's platform layer changes (because it switched to or from a tiled layer), reparent it. If it's switching to a tiled layer, update the exposed rect and whether or not it should respect the exposed rect.
2013-02-04 Anders Carlsson <andersca@apple.com>
Use UNUSED_PARAM instead of C style comments.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createStorageArea):
2013-02-04 Christophe Dumez <dchris@gmail.com>
[EFL][WK2] Stop using libsoup in ewk_url_scheme_request
https://bugs.webkit.org/show_bug.cgi?id=108816
Reviewed by Anders Carlsson.
As we are trying to minimize use of external dependencies in our WK2 EFL
API implementation, we should stop using libsoup in
ewk_url_scheme_request and use the WK2 C API instead.
* UIProcess/API/efl/ewk_url_scheme_request.cpp:
(EwkUrlSchemeRequest::EwkUrlSchemeRequest):
2013-02-04 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] Weird stripe at the end of the page
https://bugs.webkit.org/show_bug.cgi?id=108820
Reviewed by Noam Rosenthal.
The page scroll bound was artificially enlarged by one causing the artifact appearance.
* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::boundContentsPositionAtScale):
2013-02-04 David Kilzer <ddkilzer@apple.com>
Sort WebKit2 Xcode project file
* WebKit2.xcodeproj/project.pbxproj:
2013-02-04 Simon Hausmann <simon.hausmann@digia.com>
[WK2][Qt] Replace WebPageGroup usage for user scripts with WKPageGroupRef
https://bugs.webkit.org/show_bug.cgi?id=108651
Reviewed by Sam Weinig.
It's straight-forward port towards the C API.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
(readUserScript):
(QQuickWebViewPrivate::updateUserScripts):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
2013-02-04 Balazs Kelemen <kbalazs@webkit.org>
[Soup] Wrap SoupSession by NetworkStorageSession
https://bugs.webkit.org/show_bug.cgi?id=108615
Reviewed by Alexey Proskuryakov.
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
(WebFrameNetworkingContext):
2013-02-03 David Kilzer <ddkilzer@apple.com>
Upstream ENABLE_PDFKIT_PLUGIN settting
<http://webkit.org/b/108792>
Reviewed by Tim Horton.
* Configurations/FeatureDefines.xcconfig: Disable PDFKIT_PLUGIN
on iOS since PDFKit is a Mac-only framework.
2013-02-01 Alexey Proskuryakov <ap@apple.com>
Silently block one more directory needed for NSApplication initialization.
Reviewed by Sam Weinig.
* WebProcess/com.apple.WebProcess.sb.in:
2013-02-03 KwangYong Choi <ky0.choi@samsung.com>
Fix build warning after r141648
https://bugs.webkit.org/show_bug.cgi?id=108784
Reviewed by Kentaro Hara.
Fix -Wunused-parameter build warning.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createStorageArea):
(WebKit::StorageManager::destroyStorageArea):
2013-02-03 Joanmarie Diggs <jdiggs@igalia.com>
[GTK] Make distcheck fails
https://bugs.webkit.org/show_bug.cgi?id=108756
Reviewed by Kentaro Hara.
* GNUmakefile.list.am: Remove header files which no longer exist
2013-02-02 Sam Weinig <sam@webkit.org>
Remove more LegacyReceivers
https://bugs.webkit.org/show_bug.cgi?id=108758
Reviewed by Anders Carlsson.
* UIProcess/Downloads/DownloadProxy.cpp:
* UIProcess/Downloads/DownloadProxy.messages.in:
* UIProcess/WebApplicationCacheManagerProxy.cpp:
* UIProcess/WebApplicationCacheManagerProxy.h:
(WebApplicationCacheManagerProxy):
* UIProcess/WebApplicationCacheManagerProxy.messages.in:
* UIProcess/WebCookieManagerProxy.cpp:
* UIProcess/WebCookieManagerProxy.h:
(WebCookieManagerProxy):
* UIProcess/WebCookieManagerProxy.messages.in:
* UIProcess/WebDatabaseManagerProxy.cpp:
* UIProcess/WebDatabaseManagerProxy.h:
(WebDatabaseManagerProxy):
* UIProcess/WebDatabaseManagerProxy.messages.in:
* UIProcess/mac/RemoteLayerTreeHost.h:
(RemoteLayerTreeHost):
* UIProcess/mac/RemoteLayerTreeHost.messages.in:
* UIProcess/mac/RemoteLayerTreeHost.mm:
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
* WebProcess/ApplicationCache/WebApplicationCacheManager.h:
(WebApplicationCacheManager):
* WebProcess/ApplicationCache/WebApplicationCacheManager.messages.in:
* WebProcess/Cookies/WebCookieManager.cpp:
* WebProcess/Cookies/WebCookieManager.h:
(WebCookieManager):
* WebProcess/Cookies/WebCookieManager.messages.in:
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
* WebProcess/WebCoreSupport/WebDatabaseManager.h:
(WebDatabaseManager):
* WebProcess/WebCoreSupport/WebDatabaseManager.messages.in:
2013-02-02 Sam Weinig <sam@webkit.org>
Convert CustomProtocolManagerProxy, CustomProtocolManager and AuthenticationManager to be non-LegacyReceivers
https://bugs.webkit.org/show_bug.cgi?id=108757
Reviewed by Anders Carlsson.
* Shared/Authentication/AuthenticationManager.cpp:
* Shared/Authentication/AuthenticationManager.h:
(AuthenticationManager):
* Shared/Authentication/AuthenticationManager.messages.in:
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
(CustomProtocolManager):
* Shared/Network/CustomProtocols/CustomProtocolManager.messages.in:
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
(CustomProtocolManagerProxy):
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.messages.in:
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
2013-02-02 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Use C API inside ewk_file_chooser_request
https://bugs.webkit.org/show_bug.cgi?id=107811
Reviewed by Sam Weinig.
Use C API inside ewk_file_chooser_request instead of
accessing the internal C++ classes directly, to
avoid violating API layering.
* UIProcess/API/efl/ewk_file_chooser_request.cpp:
(EwkFileChooserRequest::EwkFileChooserRequest):
(EwkFileChooserRequest::~EwkFileChooserRequest):
(EwkFileChooserRequest::allowMultipleFiles):
(EwkFileChooserRequest::acceptedMIMETypes):
(EwkFileChooserRequest::cancel):
(EwkFileChooserRequest::chooseFiles):
(ewk_file_chooser_request_accepted_mimetypes_get):
(ewk_file_chooser_request_files_choose):
(ewk_file_chooser_request_file_choose):
* UIProcess/API/efl/ewk_file_chooser_request_private.h:
(EwkFileChooserRequest::create):
(EwkFileChooserRequest):
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::runOpenPanel):
2013-02-02 Sam Weinig <sam@webkit.org>
Stop keeping a frame tree in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=81728
Reviewed by Oliver Hunt.
This patch removes the parent/child relationships of WebFrameProxys
in the UIProcess
* UIProcess/API/C/WKFrame.cpp:
(WKFrameCopyChildFrames):
(WKFrameGetParentFrame):
* UIProcess/API/C/WKFrame.h:
Null out the implementations of WKFrameCopyChildFrames and WKFrameGetParentFrame,
but keep them around as their symbols are still needed for nightlies.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::WebFrameProxy):
(WebKit::WebFrameProxy::disconnect):
* UIProcess/WebFrameProxy.h:
Remove parent/child connections.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::didSaveToPageCache):
(WebKit::WebFrameLoaderClient::didRestoreFromPageCache):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSubframe):
Remove/Update messages that only served to update the parent/child connection.
2013-02-02 Sam Weinig <sam@webkit.org>
Make it possible to modify the connection from ChildProcessProxy subclasses.
Reviewed by Anders Carlsson.
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::ChildProcessProxy):
(WebKit::ChildProcessProxy::didFinishLaunching):
(WebKit::ChildProcessProxy::clearConnection):
(WebKit::ChildProcessProxy::connectionWillOpen):
(WebKit::ChildProcessProxy::connectionWillClose):
* Shared/ChildProcessProxy.h:
(ChildProcessProxy):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::connectionWillClose):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
2013-02-02 David Kilzer <ddkilzer@apple.com>
Upstream iOS FeatureDefines
<http://webkit.org/b/108753>
Reviewed by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig:
- ENABLE_DEVICE_ORIENTATION: Add iOS configurations.
- ENABLE_PLUGIN_PROXY_FOR_VIDEO: Ditto.
- FEATURE_DEFINES: Add ENABLE_PLUGIN_PROXY_FOR_VIDEO. Add
PLATFORM_NAME variant to reduce future merge conflicts.
2013-02-02 Csaba Osztrogonác <ossy@webkit.org>
[Qt][WK2] Unreviewed buildfix after r141648.
* DerivedSources.pri:
2013-02-02 Zan Dobersek <zdobersek@igalia.com>
Follow-up to r141682. Adding build targets for the files that should be generated from the new message.in file.
Unreviewed.
* GNUmakefile.list.am:
2013-02-01 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix after r141648.
* GNUmakefile.am: Add UIProcess/Storage to the list of paths that
should be searched for *.messages.in files.
2013-02-01 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed build fix after r141648
Needs to add StorageManager.messages.in to CMakeLists.txt.
* CMakeLists.txt:
2013-02-01 Benjamin Poulain <bpoulain@apple.com>
Build fix for CustomProtocolManagerMac after r141658.
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
(WebKit::CustomProtocolManager::supplementName): I accidentally typed "const" twice twice.
2013-02-01 Benjamin Poulain <bpoulain@apple.com>
[WK2] Use light supplement names instead of static AtomicStrings
https://bugs.webkit.org/show_bug.cgi?id=108570
Reviewed by Anders Carlsson.
Since all the supplement names are just string literals and are all different,
we can just use their pointer as the key in the supplement hashmaps.
This is lighter and faster than using AtomicString. WebCore already moved to this
in Supplementable.
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::addSupplement):
(NetworkProcess):
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::supplementName):
* Shared/Authentication/AuthenticationManager.h:
(AuthenticationManager):
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
(CustomProtocolManager):
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
(WebKit::CustomProtocolManager::supplementName):
* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::supplementName):
* UIProcess/Notifications/WebNotificationManagerProxy.h:
(WebNotificationManagerProxy):
* UIProcess/WebApplicationCacheManagerProxy.cpp:
(WebKit::WebApplicationCacheManagerProxy::supplementName):
* UIProcess/WebApplicationCacheManagerProxy.h:
(WebApplicationCacheManagerProxy):
* UIProcess/WebContext.h:
(WebContext):
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::supplementName):
* UIProcess/WebCookieManagerProxy.h:
(WebCookieManagerProxy):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::supplementName):
* UIProcess/WebDatabaseManagerProxy.h:
(WebDatabaseManagerProxy):
* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::supplementName):
* UIProcess/WebGeolocationManagerProxy.h:
(WebGeolocationManagerProxy):
* UIProcess/WebKeyValueStorageManagerProxy.cpp:
(WebKit::WebKeyValueStorageManagerProxy::supplementName):
* UIProcess/WebKeyValueStorageManagerProxy.h:
(WebKeyValueStorageManagerProxy):
* UIProcess/WebMediaCacheManagerProxy.cpp:
(WebKit::WebMediaCacheManagerProxy::supplementName):
* UIProcess/WebMediaCacheManagerProxy.h:
(WebMediaCacheManagerProxy):
* UIProcess/WebResourceCacheManagerProxy.cpp:
(WebKit::WebResourceCacheManagerProxy::supplementName):
* UIProcess/WebResourceCacheManagerProxy.h:
(WebResourceCacheManagerProxy):
* UIProcess/soup/WebSoupRequestManagerProxy.cpp:
(WebKit::WebSoupRequestManagerProxy::supplementName):
* UIProcess/soup/WebSoupRequestManagerProxy.h:
(WebSoupRequestManagerProxy):
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::supplementName):
* WebProcess/ApplicationCache/WebApplicationCacheManager.h:
(WebApplicationCacheManager):
* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::supplementName):
* WebProcess/Cookies/WebCookieManager.h:
(WebCookieManager):
* WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::supplementName):
* WebProcess/Geolocation/WebGeolocationManager.h:
(WebGeolocationManager):
* WebProcess/MediaCache/WebMediaCacheManager.cpp:
(WebKit::WebMediaCacheManager::supplementName):
* WebProcess/MediaCache/WebMediaCacheManager.h:
(WebMediaCacheManager):
* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::supplementName):
* WebProcess/Notifications/WebNotificationManager.h:
(WebNotificationManager):
* WebProcess/ResourceCache/WebResourceCacheManager.cpp:
(WebKit::WebResourceCacheManager::supplementName):
* WebProcess/ResourceCache/WebResourceCacheManager.h:
(WebResourceCacheManager):
* WebProcess/Storage/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::supplementName):
* WebProcess/Storage/WebKeyValueStorageManager.h:
(WebKeyValueStorageManager):
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
(WebKit::WebDatabaseManager::supplementName):
* WebProcess/WebCoreSupport/WebDatabaseManager.h:
(WebDatabaseManager):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::addSupplement):
(WebProcess):
2013-02-01 Benjamin Poulain <bpoulain@apple.com>
Clean the String->AtomicString conversion for AnimationController::pauseAnimationAtTime
https://bugs.webkit.org/show_bug.cgi?id=108558
Reviewed by Dean Jackson.
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
(WKBundleFramePauseAnimationOnElementWithId):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::pauseAnimationOnElementWithId):
* WebProcess/WebPage/WebFrame.h:
(WebFrame):
2013-02-01 Anders Carlsson <andersca@apple.com>
More work on UI side storage
https://bugs.webkit.org/show_bug.cgi?id=108700
Reviewed by Sam Weinig.
* DerivedSources.make:
Add StorageManager.messages.in.
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::callMemberFunction):
Add new overload.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::didReceiveMessageOnConnectionWorkQueue):
Call the right function.
(WebKit::StorageManager::createStorageArea):
(WebKit::StorageManager::destroyStorageArea):
Add stubs.
* UIProcess/Storage/StorageManager.messages.in: Added.
Add new messages files.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::~StorageAreaProxy):
Add another FIXME.
(WebKit::StorageAreaProxy::canAccessStorage):
(WebKit::StorageAreaProxy::incrementAccessCount):
(WebKit::StorageAreaProxy::decrementAccessCount):
Implement these.
2013-02-01 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
[Gtk] [WK2] Fix build after r141619
https://bugs.webkit.org/show_bug.cgi?id=108687
Reviewed by Benjamin Poulain.
Take a reference instead of a pointer for decoding functions.
* Platform/gtk/SharedMemoryGtk.cpp:
(WebKit::SharedMemory::Handle::decode):
* Shared/gtk/ArgumentCodersGtk.cpp:
(CoreIPC::decodeImage):
(CoreIPC::decodeDataObject):
(CoreIPC::::decode):
(CoreIPC::decodeGKeyFile):
(CoreIPC::decode):
* Shared/gtk/ArgumentCodersGtk.h:
* Shared/gtk/LayerTreeContextGtk.cpp:
(WebKit::LayerTreeContext::decode):
2013-02-01 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
[EFL] [WK2] Fix build after r141619
https://bugs.webkit.org/show_bug.cgi?id=108683
Reviewed by Benjamin Poulain.
Take a reference instead of a pointer for decoding functions.
* Shared/WebBatteryStatus.cpp:
(WebKit::WebBatteryStatus::Data::decode):
* Shared/WebBatteryStatus.h:
(Data):
* Shared/WebNetworkInfo.cpp:
(WebKit::WebNetworkInfo::Data::decode):
* Shared/WebNetworkInfo.h:
(Data):
* Shared/cairo/LayerTreeContextCairo.cpp:
(WebKit::LayerTreeContext::decode):
* Shared/efl/LayerTreeContextEfl.cpp:
(WebKit::LayerTreeContext::decode):
* Shared/soup/PlatformCertificateInfo.cpp:
(WebKit::PlatformCertificateInfo::decode):
* Shared/soup/PlatformCertificateInfo.h:
(PlatformCertificateInfo):
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(CoreIPC::::decodePlatformData):
2013-02-01 Brady Eidson <beidson@apple.com>
Clean up WebArchive loading with the NetworkProcess
<rdar://problem/12695840> and https://bugs.webkit.org/show_bug.cgi?id=108673
Reviewed by Alexey Proskuryakov.
* NetworkProcess/HostRecord.cpp:
(WebKit::HostRecord::servePendingRequestsForQueue): Add new logging.
(WebKit::HostRecord::servePendingRequests): Tweak existing logging.
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::servePendingRequests): Tweak existing logging.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad): Handle archive resource scheduling better,
and add new logging to better explore archive loading behavior in the future.
2013-02-01 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
[Qt] [WK2] Fix build after r141619
https://bugs.webkit.org/show_bug.cgi?id=108680
Reviewed by Benjamin Poulain.
Take a reference instead of a pointer for decoding functions.
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::decode):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::decode):
(CoreIPC::decodeTimingFunction):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
* Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:
(WebKit::WebCoordinatedSurface::Handle::decode):
* Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
(Handle):
* Shared/qt/ArgumentCodersQt.cpp:
(CoreIPC::::decode):
* Shared/qt/ArgumentCodersQt.h:
(CoreIPC):
* Shared/qt/LayerTreeContextQt.cpp:
(WebKit::LayerTreeContext::decode):
* Shared/qt/PlatformCertificateInfo.h:
(WebKit::PlatformCertificateInfo::decode):
* Shared/qt/QtNetworkReplyData.cpp:
(WebKit::QtNetworkReplyData::decode):
* Shared/qt/QtNetworkReplyData.h:
(QtNetworkReplyData):
* Shared/qt/QtNetworkRequestData.cpp:
(WebKit::QtNetworkRequestData::decode):
* Shared/qt/QtNetworkRequestData.h:
(QtNetworkRequestData):
* Shared/qt/WebCoreArgumentCodersQt.cpp:
(CoreIPC::::decodePlatformData):
2013-02-01 Anders Carlsson <andersca@apple.com>
Message decoding functions should take a MessageDecoder reference
https://bugs.webkit.org/show_bug.cgi?id=108669
Reviewed by Andreas Kling.
Message encoding functions already take a reference instead of a pointer, so
make the decoding functions take a reference as well.
* Platform/CoreIPC/ArgumentCoder.h:
(CoreIPC::ArgumentCoder::decode):
* Platform/CoreIPC/ArgumentCoders.cpp:
(CoreIPC::::decode):
(CoreIPC::decodeStringText):
* Platform/CoreIPC/ArgumentCoders.h:
(CoreIPC::SimpleArgumentCoder::decode):
* Platform/CoreIPC/ArgumentDecoder.h:
(CoreIPC::ArgumentDecoder::decode):
* Platform/CoreIPC/Arguments.h:
(CoreIPC::Arguments0::decode):
(CoreIPC::Arguments1::decode):
(CoreIPC::Arguments2::decode):
(CoreIPC::Arguments3::decode):
(CoreIPC::Arguments4::decode):
(CoreIPC::Arguments5::decode):
(CoreIPC::Arguments6::decode):
(CoreIPC::Arguments7::decode):
(CoreIPC::Arguments8::decode):
(CoreIPC::Arguments10::decode):
* Platform/CoreIPC/Attachment.cpp:
(CoreIPC::Attachment::decode):
* Platform/CoreIPC/Attachment.h:
(Attachment):
* Platform/CoreIPC/DataReference.cpp:
(CoreIPC::DataReference::decode):
* Platform/CoreIPC/DataReference.h:
(DataReference):
* Platform/CoreIPC/StringReference.cpp:
(CoreIPC::StringReference::decode):
* Platform/CoreIPC/StringReference.h:
(StringReference):
* Platform/CoreIPC/mac/MachPort.h:
(CoreIPC::MachPort::decode):
* Platform/SharedMemory.h:
(Handle):
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::Handle::decode):
* PluginProcess/PluginCreationParameters.cpp:
(WebKit::PluginCreationParameters::decode):
* PluginProcess/PluginCreationParameters.h:
(PluginCreationParameters):
* Shared/DictionaryPopupInfo.cpp:
(WebKit::DictionaryPopupInfo::decode):
* Shared/DictionaryPopupInfo.h:
(DictionaryPopupInfo):
* Shared/EditorState.cpp:
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(EditorState):
* Shared/FontInfo.cpp:
(WebKit::FontInfo::decode):
* Shared/FontInfo.h:
(FontInfo):
* Shared/LayerTreeContext.h:
(LayerTreeContext):
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::decode):
* Shared/Network/NetworkProcessCreationParameters.h:
(NetworkProcessCreationParameters):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
(NetworkResourceLoadParameters):
* Shared/OriginAndDatabases.cpp:
(WebKit::OriginAndDatabases::decode):
* Shared/OriginAndDatabases.h:
(OriginAndDatabases):
* Shared/PlatformPopupMenuData.cpp:
(WebKit::PlatformPopupMenuData::decode):
* Shared/PlatformPopupMenuData.h:
(PlatformPopupMenuData):
* Shared/Plugins/NPIdentifierData.cpp:
(WebKit::NPIdentifierData::decode):
* Shared/Plugins/NPIdentifierData.h:
(NPIdentifierData):
* Shared/Plugins/NPVariantData.cpp:
(WebKit::NPVariantData::decode):
* Shared/Plugins/NPVariantData.h:
(NPVariantData):
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::decode):
* Shared/Plugins/PluginProcessCreationParameters.h:
(PluginProcessCreationParameters):
* Shared/PrintInfo.cpp:
(WebKit::PrintInfo::decode):
* Shared/PrintInfo.h:
(PrintInfo):
* Shared/SandboxExtension.h:
(Handle):
(HandleArray):
(WebKit::SandboxExtension::Handle::decode):
(WebKit::SandboxExtension::HandleArray::decode):
* Shared/SecurityOriginData.cpp:
(WebKit::SecurityOriginData::decode):
* Shared/SecurityOriginData.h:
(SecurityOriginData):
* Shared/SessionState.cpp:
(WebKit::SessionState::decode):
* Shared/SessionState.h:
(SessionState):
* Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Handle::decode):
* Shared/ShareableBitmap.h:
(Handle):
* Shared/ShareableResource.cpp:
(WebKit::ShareableResource::Handle::decode):
* Shared/ShareableResource.h:
(Handle):
* Shared/SharedWorkerProcessCreationParameters.cpp:
(WebKit::SharedWorkerProcessCreationParameters::decode):
* Shared/SharedWorkerProcessCreationParameters.h:
(SharedWorkerProcessCreationParameters):
* Shared/StatisticsData.cpp:
(WebKit::StatisticsData::decode):
* Shared/StatisticsData.h:
(StatisticsData):
* Shared/StringPairVector.h:
(WebKit::StringPairVector::decode):
* Shared/UpdateInfo.cpp:
(WebKit::UpdateInfo::decode):
* Shared/UpdateInfo.h:
(UpdateInfo):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebContextMenuItemData.cpp:
(WebKit::WebContextMenuItemData::decode):
* Shared/WebContextMenuItemData.h:
(WebContextMenuItemData):
* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::::decode):
(CoreIPC::decodeImage):
* Shared/WebCoreArgumentCoders.h:
* Shared/WebEvent.cpp:
(WebKit::WebEvent::decode):
* Shared/WebEvent.h:
(WebEvent):
(WebMouseEvent):
(WebWheelEvent):
(WebKeyboardEvent):
(WebGestureEvent):
(WebPlatformTouchPoint):
(WebTouchEvent):
* Shared/WebGeolocationPosition.cpp:
(WebKit::WebGeolocationPosition::Data::decode):
* Shared/WebGeolocationPosition.h:
(Data):
* Shared/WebGestureEvent.cpp:
(WebKit::WebGestureEvent::decode):
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::decode):
* Shared/WebHitTestResult.h:
(Data):
* Shared/WebKeyboardEvent.cpp:
(WebKit::WebKeyboardEvent::decode):
* Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::decode):
* Shared/WebNavigationDataStore.h:
(WebKit::WebNavigationDataStore::decode):
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
(WebPageCreationParameters):
* Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::decode):
* Shared/WebPageGroupData.h:
(WebPageGroupData):
* Shared/WebPlatformTouchPoint.cpp:
(WebKit::WebPlatformTouchPoint::decode):
* Shared/WebPopupItem.cpp:
(WebKit::WebPopupItem::decode):
* Shared/WebPopupItem.h:
* Shared/WebPreferencesStore.cpp:
(WebKit::WebPreferencesStore::decode):
* Shared/WebPreferencesStore.h:
(WebPreferencesStore):
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
(WebProcessCreationParameters):
* Shared/WebTouchEvent.cpp:
(WebKit::WebTouchEvent::decode):
* Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::decode):
* Shared/cf/ArgumentCodersCF.cpp:
(CoreIPC::decode):
* Shared/cf/ArgumentCodersCF.h:
(CoreIPC):
* Shared/mac/ArgumentCodersMac.h:
(CoreIPC):
* Shared/mac/ArgumentCodersMac.mm:
(CoreIPC::decode):
* Shared/mac/AttributedString.h:
(AttributedString):
* Shared/mac/AttributedString.mm:
(WebKit::AttributedString::decode):
* Shared/mac/ColorSpaceData.h:
(ColorSpaceData):
* Shared/mac/ColorSpaceData.mm:
(WebKit::ColorSpaceData::decode):
* Shared/mac/LayerTreeContextMac.mm:
(WebKit::LayerTreeContext::decode):
* Shared/mac/ObjCObjectGraphCoders.h:
(WebContextObjCObjectGraphDecoder):
(InjectedBundleObjCObjectGraphDecoder):
* Shared/mac/ObjCObjectGraphCoders.mm:
(WebKit::ObjCObjectGraphDecoder::baseDecode):
(WebKit::WebContextObjCObjectGraphDecoderImpl::decode):
(WebKit::InjectedBundleObjCObjectGraphDecoderImpl::decode):
(WebKit::WebContextObjCObjectGraphDecoder::decode):
(WebKit::InjectedBundleObjCObjectGraphDecoder::decode):
* Shared/mac/PlatformCertificateInfo.h:
(PlatformCertificateInfo):
* Shared/mac/PlatformCertificateInfo.mm:
(WebKit::PlatformCertificateInfo::decode):
* Shared/mac/RemoteLayerTreeTransaction.h:
(LayerProperties):
(RemoteLayerTreeTransaction):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTransaction::decode):
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::Handle::decode):
(WebKit::SandboxExtension::HandleArray::decode):
* Shared/mac/SecItemRequestData.cpp:
(WebKit::SecItemRequestData::decode):
* Shared/mac/SecItemRequestData.h:
* Shared/mac/SecItemResponseData.cpp:
(WebKit::SecItemResponseData::decode):
* Shared/mac/SecItemResponseData.h:
(SecItemResponseData):
* Shared/mac/WebCoreArgumentCodersMac.mm:
(CoreIPC::::decodePlatformData):
(CoreIPC::::decode):
* UIProcess/WebContextUserMessageCoders.h:
(WebKit::WebContextUserMessageDecoder::decode):
* WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
(WebKit::InjectedBundleUserMessageDecoder::decode):
* WebProcess/Plugins/Plugin.cpp:
(WebKit::Plugin::Parameters::decode):
* WebProcess/Plugins/Plugin.h:
(Parameters):
2013-02-01 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Adapt WorkQueueGtk to the latest changes in WebKit2 after r141497
https://bugs.webkit.org/show_bug.cgi?id=108607
Reviewed by Anders Carlsson.
* Platform/gtk/WorkQueueGtk.cpp:
(WorkQueue::EventSource::executeEventSource): Remove the is valid
work queue check.
(WorkQueue::EventSource): WorkQueue is now refcounted, so keep a
reference when a new job is scheduled and unref it when it
finishes.
2013-02-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141319.
http://trac.webkit.org/changeset/141319
https://bugs.webkit.org/show_bug.cgi?id=108629
This patch is causing the UIProcess to hang on GTK port when
loading plugins (Requested by chris-qBT_laptop on #webkit).
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::scanPlugin):
2013-02-01 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[EFL][WK2] EwkContext should be based on C WK2 API
https://bugs.webkit.org/show_bug.cgi?id=107666
Reviewed by Andreas Kling.
EwkContext should be based on C WK2 API so that API layering is not violated.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::EwkContext):
(EwkContext::create):
(EwkContext::cookieManager):
(EwkContext::ensureFaviconDatabase):
(EwkContext::setFaviconDatabaseDirectoryPath):
(EwkContext::addVisitedLink):
(EwkContext::setCacheModel):
(EwkContext::cacheModel):
(EwkContext::setAdditionalPluginPath):
(EwkContext::clearResourceCache):
* UIProcess/API/efl/ewk_context_private.h:
(EwkContext):
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_base_add):
2013-02-01 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Use C API inside ewk_auth_request
https://bugs.webkit.org/show_bug.cgi?id=107806
Reviewed by Andreas Kling.
Use C API inside ewk_auth_request instead of accessing C++ internal
classes directly, to avoid violating layering.
* UIProcess/API/efl/ewk_auth_request.cpp:
(EwkAuthRequest::EwkAuthRequest):
(EwkAuthRequest::suggestedUsername):
(EwkAuthRequest::realm):
(EwkAuthRequest::host):
(EwkAuthRequest::continueWithoutCredential):
(EwkAuthRequest::authenticate):
(EwkAuthRequest::isRetrying):
(ewk_auth_request_authenticate):
* UIProcess/API/efl/ewk_auth_request_private.h:
(EwkAuthRequest::create):
(EwkAuthRequest):
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::didReceiveAuthenticationChallengeInFrame):
2013-02-01 Seulgi Kim <seulgikim@company100.net>
[Gtk][WK2] Fix build after recent WebKit2 changes
https://bugs.webkit.org/show_bug.cgi?id=108588
Reviewed by Andreas Kling.
Don't remove WorkQueue during execution.
Following the logic on https://bugs.webkit.org/show_bug.cgi?id=108544
* Platform/gtk/WorkQueueGtk.cpp:
(WorkQueue::EventSource::~EventSource):
(WorkQueue::EventSource::executeEventSource):
(WorkQueue::dispatch):
(WorkQueue::dispatchAfterDelay):
(WorkQueue::dispatchOnTermination):
2013-02-01 Alexis Menard <alexis@webkit.org>
Enable unprefixed CSS transitions by default.
https://bugs.webkit.org/show_bug.cgi?id=108216
Reviewed by Dean Jackson.
Rename the flag CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
to CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED which will be used later to
guard the unprefixing work for CSS Transforms and animations.
* Configurations/FeatureDefines.xcconfig:
2013-02-01 Jae Hyun Park <jae.park@company100.net>
Coordinated Graphics : Sort Target.pri and class declarations in alphabetical order.
https://bugs.webkit.org/show_bug.cgi?id=108590
Reviewed by Noam Rosenthal.
Sort class declarations in alphabetical order.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
(WebCore):
2013-02-01 Gwang Yoon Hwang <ryumiel@company100.net>
[EFL][WK2] MiniBrowser segfaults on loading google.com
https://bugs.webkit.org/show_bug.cgi?id=108597
Reviewed by Andreas Kling.
* Platform/CoreIPC/unix/ConnectionUnix.cpp:
(CoreIPC::Connection::processMessage):
oolMessageBody should be properly initialized before it is used.
This patch also adds omitted break statement.
2013-01-31 Jae Hyun Park <jae.park@company100.net>
[Qt] Add MessageFlags.h in Target.pri
https://bugs.webkit.org/show_bug.cgi?id=108583
Reviewed by Kentaro Hara.
Since MessageDecoder and MessageEncoder include MessageFlags.h, it
should be included in Target.pri.
* Target.pri:
2013-01-31 Jae Hyun Park <jae.park@company100.net>
Coordinated Graphics : Move CoordinatedGraphics related files to WebCore
https://bugs.webkit.org/show_bug.cgi?id=108149
Reviewed by Noam Rosenthal.
This patch moves Coordinated Graphics related code to WebCore. To
implement Threaded Coordinated Graphics, most of Coordianted Graphics
code should be shared. Therefore, they should reside in WebCore instead of
WebKit2.
When moving to WebCore, two renamings have been done.
1. Rename LayerTreeRenderer to CoordinatedGraphicsScene.
2. Rename WebCustomFilterProgram and WebCustomFilterOperation to
CoordinatedCustomFilterProgram and CoordinatedCustomFilterOperation,
respectively.
No new tests, covered by existing tests.
* CMakeLists.txt:
* Scripts/webkit2/messages.py:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
* Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
* Target.pri:
* UIProcess/API/efl/EwkView.cpp:
* UIProcess/API/efl/EwkView.h:
* UIProcess/API/qt/qquickwebpage.cpp:
* UIProcess/API/qt/raw/qrawwebview.cpp:
* UIProcess/API/qt/raw/qrawwebview_p.h:
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
* UIProcess/efl/PageClientBase.cpp:
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
* UIProcess/qt/QtWebPageSGNode.cpp:
* UIProcess/qt/QtWebPageSGNode.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2013-01-31 Rafael Brandao <rafael.lobo@openbossa.org>
[Qt][WK2] Another attempt to fix build after recent WebKit2 changes
https://bugs.webkit.org/show_bug.cgi?id=108548
Reviewed by Anders Carlsson.
* Platform/CoreIPC/unix/ConnectionUnix.cpp:
(CoreIPC::Connection::platformInvalidate):
(CoreIPC::Connection::processMessage): Change Deque to Vector and do similar
logic as on patch for https://bugs.webkit.org/show_bug.cgi?id=108517
(CoreIPC::Connection::open):
(CoreIPC::Connection::setShouldCloseConnectionOnProcessTermination):
* Platform/qt/WorkQueueQt.cpp: Reflect changes on Qt WorkQueue to increase ref
count when the execution is started and decrease it when the work item is deleted,
following the logic on https://bugs.webkit.org/show_bug.cgi?id=108544
(WorkQueue::WorkItemQt::~WorkItemQt):
(WorkQueue::WorkItemQt::execute):
(WorkQueue::dispatch):
(WorkQueue::dispatchAfterDelay):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getPluginPath): This function was moved from WebProcessProxy but
mac specific code was not protected properly: https://bugs.webkit.org/show_bug.cgi?id=108407
2013-01-31 Changhun Kang <temoochin@company100.net>
Rename from parentOrHost* to parentOrShadowHost* in Node.h.
https://bugs.webkit.org/show_bug.cgi?id=108308
Reviewed by Dimitri Glazkov.
2013-01-31 Anders Carlsson <andersca@apple.com>
StorageManager should be ref-counted
https://bugs.webkit.org/show_bug.cgi?id=108553
Reviewed by Beth Dakin.
It's likely we'd want to have the storage manager outlive its context at times, so make it
reference counted.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::create):
(WebKit):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
* UIProcess/WebContext.h:
(WebContext):
2013-01-31 Anders Carlsson <andersca@apple.com>
WorkQueue should be a ref-counted class
https://bugs.webkit.org/show_bug.cgi?id=108544
Reviewed by Sam Weinig.
Make WorkQueue a ref-counted class that's implicitly ref()'d when dispatching a function to it, and then
implicitly deref()'d when the function is done executing. This matches the behavior of dispatch queues,
and ensures that the WorkQueue object won't go away while dispatched functions are running.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::Connection):
(CoreIPC::Connection::~Connection):
(CoreIPC::Connection::addQueueClient):
(CoreIPC::Connection::removeQueueClient):
(CoreIPC::Connection::invalidate):
(CoreIPC::Connection::sendMessage):
(CoreIPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
(CoreIPC::Connection::connectionDidClose):
* Platform/CoreIPC/Connection.h:
(Connection):
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::createDataAvailableSource):
(CoreIPC::Connection::open):
(CoreIPC::Connection::initializeDeadNameSource):
* Platform/WorkQueue.cpp:
(WorkQueue::create):
(WorkQueue::WorkQueue):
(WorkQueue::~WorkQueue):
* Platform/WorkQueue.h:
(WorkQueue):
* Platform/mac/WorkQueueMac.cpp:
(WorkQueue::dispatch):
(WorkQueue::dispatchAfterDelay):
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::processLauncherWorkQueue):
(WebKit::ProcessLauncher::ProcessLauncher):
* UIProcess/WebProcessProxy.cpp:
(WebKit::pluginWorkQueue):
(WebKit::WebProcessProxy::getPlugins):
2013-01-31 Rafael Brandao <rafael.lobo@openbossa.org>
[Qt][WK2] Fix build after removal of MessageID.h
https://bugs.webkit.org/show_bug.cgi?id=108534
Reviewed by Anders Carlsson.
* Platform/CoreIPC/unix/ConnectionUnix.cpp:
(CoreIPC::MessageInfo::MessageInfo):
(CoreIPC::MessageInfo::setMessageBodyIsOutOfLine):
(CoreIPC::MessageInfo::isMessageBodyIsOutOfLine):
(MessageInfo):
(CoreIPC::Connection::processMessage):
(CoreIPC::Connection::sendOutgoingMessage):
* Target.pri:
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
* UIProcess/DrawingAreaProxy.cpp:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
* WebProcess/soup/WebSoupRequestManager.cpp:
2013-01-31 Brady Eidson <beidson@apple.com>
Assertion failure in WebResourceLoadScheduler::remove when loading .webarchives
<rdar://problem/12888145> and https://bugs.webkit.org/show_bug.cgi?id=108520
Reviewed by Alexey Proskuryakov.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad): Even if it isn't to be scheduled with the
NetworkProcess, still add this ResourceLoader to the scheduler's records.
2013-01-31 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed trivial Unix build fix.
Use Vector<> instead of Deque<> when iterating
over m_attachments in the USE(UNIX_DOMAIN_SOCKETS)
case.
* Platform/CoreIPC/ArgumentDecoder.cpp:
2013-01-30 Brian Weinstein <bweinstein@apple.com>
Add a call to the page UI client to determine if a plug-in should load
https://bugs.webkit.org/show_bug.cgi?id=108407
<rdar://problem/13066332>
Reviewed by Anders Carlsson.
This patch adds a client call to the WKPageUIClient to be called to determine
whether or not a plug-in should load.
* UIProcess/API/C/WKPage.h: Add shouldLoadPlugin.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getPluginPath): Moved from WebProcessProxy, and added a call to
m_uiClient.shouldInstantiatePlugin.
* UIProcess/WebPageProxy.h:
* UIProcss/WebPageProxy.messages.in: Moved GetPluginPath from WebProcessProxy to WebPageProxy.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getPluginPath): Moved to WebPageProxy.
* UIProcess/WebProcessProxy.h:
* UIProcess/WebUIClient.cpp:
(WebKit::WebUIClient::shouldInstantiatePlugin): Return that we should load the plug-in if
the client function isn't defined, and call the function if it is.
* UIProcess/WebUIClient.h:
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage): Add an entry for the new
client function.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin): Send the message to the WebPageProxy, not the WebProcessProxy.
(WebKit::WebPage::canPluginHandleResponse): Made a member function, so it can call sendSync, and
send the message to the WebPageProxy, not the WebProcessProxy.
* WebProcess/WebPage/WebPage.h:
2013-01-31 Anders Carlsson <andersca@apple.com>
Use a Vector for IPC attachments
https://bugs.webkit.org/show_bug.cgi?id=108517
Reviewed by Sam Weinig.
We don't need to use a Deque for attachments - we can just deserialize the attachments backwards instead.
* Platform/CoreIPC/ArgumentDecoder.cpp:
(CoreIPC::ArgumentDecoder::create):
(CoreIPC::ArgumentDecoder::ArgumentDecoder):
(CoreIPC::ArgumentDecoder::removeAttachment):
* Platform/CoreIPC/ArgumentDecoder.h:
(ArgumentDecoder):
* Platform/CoreIPC/Connection.h:
* Platform/CoreIPC/MessageDecoder.cpp:
(CoreIPC::MessageDecoder::create):
(CoreIPC::MessageDecoder::MessageDecoder):
* Platform/CoreIPC/MessageDecoder.h:
(MessageDecoder):
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::createMessageDecoder):
2013-01-31 Joseph Pecoraro <pecoraro@apple.com>
Disable ENABLE_FULLSCREEN_API on iOS
https://bugs.webkit.org/show_bug.cgi?id=108250
Reviewed by Benjamin Poulain.
* Configurations/FeatureDefines.xcconfig:
2013-01-31 Enrica Casucci <enrica@apple.com>
WebKit2: provide new bundle APIs to allow bundle clients to be notified of pasteboard access.
https://bugs.webkit.org/show_bug.cgi?id=108396.
<rdar://problem/12920461>
Reviewed by Alexey Proskuryakov.
This patch adds new bundle client API to receive notifications
relative the pasteboard activity. There are 2 new API added to
InjectedBundleEditorClient, to receive notification before and
after the pasteboard content is added and one API to provide
additional content to add to the pasteboard.
In order to create content to add to the pasteboard, WKWebArchiveRef
and WKWebArchiveResourcesRef have been added to the set of API level
object.
This work is a joint effort with Sam Weinig who contributed the
support for WKWebArchiveRef, WKWebArchiveResourcesRef and related
files. Sam is the author of the first chunk of changes listed below.
* Shared/API/c/WKBase.h:
* Shared/API/c/WKSharedAPICast.h:
* Shared/API/c/mac/WKWebArchive.cpp: Added.
(WKWebArchiveGetTypeID):
(WKWebArchiveCreate):
(WKWebArchiveCreateWithData):
(WKWebArchiveCreateFromRange):
(WKWebArchiveCopyMainResource):
(WKWebArchiveCopySubresources):
(WKWebArchiveCopySubframeArchives):
(WKWebArchiveCopyData):
* Shared/API/c/mac/WKWebArchive.h: Added.
* Shared/API/c/mac/WKWebArchiveResource.cpp: Added.
(WKWebArchiveResourceGetTypeID):
(WKWebArchiveResourceCreate):
(WKWebArchiveResourceCopyData):
(WKWebArchiveResourceCopyURL):
(WKWebArchiveResourceCopyMIMEType):
(WKWebArchiveResourceCopyTextEncoding):
* Shared/API/c/mac/WKWebArchiveResource.h: Added.
* Shared/APIObject.h:
* Shared/WebArchive.cpp: Added.
(WebKit::WebArchive::create):
(WebKit::WebArchive::WebArchive):
(WebKit::WebArchive::~WebArchive):
(WebKit::WebArchive::mainResource):
(WebKit::WebArchive::subresources):
(WebKit::WebArchive::subframeArchives):
(WebKit::releaseCFData):
(WebKit::WebArchive::data):
(WebKit::WebArchive::coreLegacyWebArchive):
* Shared/WebArchive.h: Added.
(WebKit::WebArchive::type):
* Shared/WebArchiveResource.cpp: Added.
(WebKit::WebArchiveResource::create):
(WebKit::WebArchiveResource::WebArchiveResource):
(WebKit::WebArchiveResource::~WebArchiveResource):
(WebKit::releaseCFData):
(WebKit::WebArchiveResource::data):
(WebKit::WebArchiveResource::URL):
(WebKit::WebArchiveResource::MIMEType):
(WebKit::WebArchiveResource::textEncoding):
(WebKit::WebArchiveResource::coreArchiveResource):
* Shared/WebArchiveResource.h: Added.
(WebKit::WebArchiveResource::type):
* WebKit2.xcodeproj/project.pbxproj:
* Shared/APIClientTraits.cpp: Added versioning to InjectedBundlePageEditorClient.
* Shared/APIClientTraits.h:
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
(WebKit::InjectedBundlePageEditorClient::willWriteToPasteboard): Added.
(WebKit::InjectedBundlePageEditorClient::getPasteboardDataForRange): Added.
(WebKit::InjectedBundlePageEditorClient::didWriteToPasteboard): Added.
* WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::didWriteSelectionToPasteboard):
(WebKit::WebEditorClient::willWriteSelectionToPasteboard):
(WebKit::WebEditorClient::getClientPasteboardDataForRange):
* WebProcess/WebCoreSupport/WebEditorClient.h:
2013-01-31 Anders Carlsson <andersca@apple.com>
Remove MessageID.h
https://bugs.webkit.org/show_bug.cgi?id=108516
Reviewed by Sam Weinig.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::processIncomingMessage):
(CoreIPC::Connection::sendOutgoingMessages):
(CoreIPC::Connection::dispatchSyncMessage):
(CoreIPC::Connection::dispatchMessage):
* Platform/CoreIPC/Connection.h:
(CoreIPC):
(Connection):
* Platform/CoreIPC/MessageID.h: Removed.
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::Connection::sendOutgoingMessage):
(CoreIPC::Connection::receiveSourceEventHandler):
* Shared/CoreIPCSupport/WebConnectionMessageKinds.h: Removed.
* Shared/CoreIPCSupport/WebContextMessageKinds.h:
* UIProcess/DrawingAreaProxy.h:
(CoreIPC):
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
* UIProcess/WebApplicationCacheManagerProxy.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::didReceiveMessage):
(WebKit::WebContext::didReceiveSyncMessage):
* UIProcess/WebCookieManagerProxy.h:
* UIProcess/WebFrameProxy.h:
(CoreIPC):
* UIProcess/WebFullScreenManagerProxy.h:
(CoreIPC):
* UIProcess/WebIconDatabase.h:
(CoreIPC):
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
(CoreIPC):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/FullScreen/WebFullScreenManager.cpp:
* WebProcess/FullScreen/WebFullScreenManager.h:
(CoreIPC):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::postMessage):
(WebKit::InjectedBundle::postSynchronousMessage):
* WebProcess/InjectedBundle/InjectedBundle.h:
(CoreIPC):
* WebProcess/WebPage/DrawingArea.h:
(CoreIPC):
* WebProcess/WebPage/LayerTreeHost.h:
(CoreIPC):
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
(CoreIPC):
* WebProcess/WebPage/WebPageGroupProxy.h:
(CoreIPC):
2013-01-31 Mike West <mkwst@chromium.org>
Cleanup: Use ScriptExecutionContext::topOrigin when relevant.
https://bugs.webkit.org/show_bug.cgi?id=108476
Reviewed by Anders Carlsson.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::storageBlockingStateChanged):
(WebKit::PluginView::isPrivateBrowsingEnabled):
2013-01-31 Anders Carlsson <andersca@apple.com>
Get rid of IncomingMessage
https://bugs.webkit.org/show_bug.cgi?id=108514
Reviewed by Sam Weinig.
* Platform/CoreIPC/Connection.cpp:
(Connection::SyncMessageState):
(ConnectionAndIncomingMessage):
(CoreIPC::Connection::SyncMessageState::~SyncMessageState):
(CoreIPC::Connection::SyncMessageState::processIncomingMessage):
(CoreIPC::Connection::SyncMessageState::dispatchMessages):
(CoreIPC::Connection::waitForMessage):
(CoreIPC::Connection::processIncomingMessage):
(CoreIPC::Connection::enqueueIncomingMessage):
(CoreIPC::Connection::dispatchMessage):
(CoreIPC::Connection::dispatchOneMessage):
* Platform/CoreIPC/Connection.h:
(Connection):
2013-01-31 Patrick Gansterer <paroga@webkit.org>
Remove PLATFORM(WIN_CAIRO) from NetscapePluginX11.cpp
https://bugs.webkit.org/show_bug.cgi?id=108439
Reviewed by Brent Fulgham.
PLATFORM(WIN_CAIRO) is Windows only, where no X11 exists.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
2013-01-31 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed build fix: Remove Web Intents files from
the Qt build system.
* Target.pri:
2013-01-31 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix.
Removing build targets for Web Intents files that were removed in r141448.
* GNUmakefile.list.am:
2013-01-31 Anders Carlsson <andersca@apple.com>
Remove Web Intents code from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=108506
Reviewed by Simon Fraser.
Since nobody builds with Web Intents enabled anymore, and since the code is going to
be removed from WebCore, remove it from WebKit2.
* Shared/API/c/WKBase.h:
* Shared/APIClientTraits.cpp:
(WebKit):
* Shared/APIObject.h:
* Shared/IntentData.cpp: Removed.
* Shared/IntentData.h: Removed.
* Shared/IntentServiceInfo.cpp: Removed.
* Shared/IntentServiceInfo.h: Removed.
* Shared/WebIntentServiceInfo.cpp: Removed.
* Shared/WebIntentServiceInfo.h: Removed.
* UIProcess/API/C/WKAPICast.h:
(WebKit):
* UIProcess/API/C/WKIntentData.cpp: Removed.
* UIProcess/API/C/WKIntentData.h: Removed.
* UIProcess/API/C/WKIntentServiceInfo.cpp: Removed.
* UIProcess/API/C/WKIntentServiceInfo.h: Removed.
* UIProcess/API/C/WKPage.cpp:
* UIProcess/API/C/WKPage.h:
* UIProcess/WebIntentData.cpp: Removed.
* UIProcess/WebIntentData.h: Removed.
* UIProcess/WebLoaderClient.cpp:
* UIProcess/WebLoaderClient.h:
(WebKit):
(WebLoaderClient):
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
(WebKit):
(WebPageProxy):
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessProxy.cpp:
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
* WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
(WebKit):
* WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp: Removed.
* WebProcess/InjectedBundle/API/c/WKBundleIntent.h: Removed.
* WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.cpp: Removed.
* WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.h: Removed.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/InjectedBundle/InjectedBundleIntent.cpp: Removed.
* WebProcess/InjectedBundle/InjectedBundleIntent.h: Removed.
* WebProcess/InjectedBundle/InjectedBundleIntentRequest.cpp: Removed.
* WebProcess/InjectedBundle/InjectedBundleIntentRequest.h: Removed.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
(WebKit):
(InjectedBundlePageLoaderClient):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
(WebFrameLoaderClient):
* WebProcess/WebPage/WebFrame.cpp:
* WebProcess/WebPage/WebFrame.h:
(WebCore):
(WebKit):
(WebFrame):
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
(WebCore):
(WebKit):
(WebPage):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebProcess.cpp:
* WebProcess/WebProcess.h:
(WebCore):
(WebProcess):
* WebProcess/WebProcess.messages.in:
2013-01-31 Brady Eidson <beidson@apple.com>
Lack of a log level string should not obliterate compiled in logging channel state.
https://bugs.webkit.org/show_bug.cgi?id=108502
Reviewed by Alexey Proskuryakov and Sam Weinig.
* Platform/mac/Logging.mac.mm:
(WebKit::initializeLogChannel): If there's no log level string, leave the channel state alone.
2013-01-31 Alexey Proskuryakov <ap@apple.com>
WebProcess sandbox profile overhaul.
Reviewed by Sam Weinig.
Moves some rules together by susbystem for easier maintenance.
Addresses <rdar://problem/9276393>, <rdar://problem/10844321>, <rdar://problem/12408537>,
<rdar://problem/12558524>.
* WebProcess/com.apple.WebProcess.sb.in:
2013-01-31 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed trivial build fix: Pre C++11 the use of
>> in nested templates is ambiguous in the grammar and
requires the insertion of a space here. Since these files are
not Mac specific we don't require C++11 yet and a space
fixes the build.
* Platform/CoreIPC/Connection.h:
(Connection):
* Shared/ChildProcessProxy.h:
(ChildProcessProxy):
2013-01-31 Christophe Dumez <dchris@gmail.com>
[EFL] Disable Web Intents
https://bugs.webkit.org/show_bug.cgi?id=108457
Reviewed by Alexey Proskuryakov.
Remove code related to Web Intents from EFL
WebKit2.
* CMakeLists.txt:
* PlatformEfl.cmake:
* UIProcess/API/efl/EWebKit2.h:
* UIProcess/API/efl/EwkViewCallbacks.h:
* UIProcess/API/efl/ewk_intent.cpp: Removed.
* UIProcess/API/efl/ewk_intent.h: Removed.
* UIProcess/API/efl/ewk_intent_private.h: Removed.
* UIProcess/API/efl/ewk_intent_service.cpp: Removed.
* UIProcess/API/efl/ewk_intent_service.h: Removed.
* UIProcess/API/efl/ewk_intent_service_private.h: Removed.
* UIProcess/API/efl/ewk_view.cpp:
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/resources/intent-request.html: Removed.
* UIProcess/API/efl/tests/resources/intent-service.html: Removed.
* UIProcess/API/efl/tests/test_ewk2_intents.cpp: Removed.
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::PageLoadClientEfl):
* UIProcess/efl/PageLoadClientEfl.h:
(PageLoadClientEfl):
2013-01-31 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12695827> PPT: Make loading file URLs work with a sandboxed NetworkProcess
Address review comments.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* WebProcess/com.apple.WebProcess.sb.in:
2013-01-31 Anders Carlsson <andersca@apple.com>
Stop using OutgoingMessage
https://bugs.webkit.org/show_bug.cgi?id=108495
Reviewed by Sam Weinig.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::sendMessage):
(CoreIPC::Connection::sendOutgoingMessages):
* Platform/CoreIPC/Connection.h:
(Connection):
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::~ChildProcessProxy):
(WebKit::ChildProcessProxy::sendMessage):
(WebKit::ChildProcessProxy::didFinishLaunching):
* Shared/ChildProcessProxy.h:
(ChildProcessProxy):
2013-01-31 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Make it possible to compile WebKit2 Qt related files without access to internal WK2 C++ API
https://bugs.webkit.org/show_bug.cgi?id=108472
Reviewed by Andreas Kling.
Add a new module to the qmake build system that represents the part of the WebKit2 Qt integration
that doesn't depend on WebKit2 internals.
Changed qwebnavigationhistory.cpp to not use any internal headers and compile it as part of the
internals-free module.
* Target.pri:
* UIProcess/API/qt/qwebnavigationhistory.cpp:
* WebKit2.pro:
* WebKit2QML.pri: Added.
2013-01-31 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed trivial build fix: Add missing virtual destructor to
LayerTreeRendererClient. Otherwise the build with -Werror breaks, which
complains (rightly so) that we're deleting a sub-class where the super class
doesn't have a virtual destructor.
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(WebKit::LayerTreeRendererClient::~LayerTreeRendererClient):
2013-01-31 Seulgi Kim <seulgikim@company100.net>
Coordinated Graphics: view the debug border/repaint count of the non composited layer.
https://bugs.webkit.org/show_bug.cgi?id=108401
Reviewed by Noam Rosenthal.
Make non-compositing layer draw debug border and show repaint counter
accroding to settings.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
2013-01-31 Paweł Forysiuk <tuxator@o2.pl>
InjectedBundle is being built even with --disable-webkit2
https://bugs.webkit.org/show_bug.cgi?id=108364
Reviewed by Gustavo Noronha Silva.
* GNUmakefile.am: Wrap Injected bundle with ENABLE_WEBKIT2 condition
2013-01-31 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[EFL][WK2] RequestManagerClientEfl, DownloadManagerEfl and ContextHistoryClientEfl should be based on C API
https://bugs.webkit.org/show_bug.cgi?id=107685
Reviewed by Benjamin Poulain.
RequestManagerClientEfl, DownloadManagerEfl and ContextHistoryClientEfl
should be based on C API so that API layering is not violated.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::EwkContext):
* UIProcess/efl/ContextHistoryClientEfl.cpp:
(WebKit::ContextHistoryClientEfl::ContextHistoryClientEfl):
(WebKit::ContextHistoryClientEfl::~ContextHistoryClientEfl):
* UIProcess/efl/ContextHistoryClientEfl.h:
(WebKit::ContextHistoryClientEfl::create):
(ContextHistoryClientEfl):
* UIProcess/efl/DownloadManagerEfl.cpp:
(WebKit::DownloadManagerEfl::DownloadManagerEfl):
(WebKit::DownloadManagerEfl::~DownloadManagerEfl):
* UIProcess/efl/DownloadManagerEfl.h:
(WebKit::DownloadManagerEfl::create):
(DownloadManagerEfl):
* UIProcess/efl/RequestManagerClientEfl.cpp:
(WebKit::RequestManagerClientEfl::RequestManagerClientEfl):
* UIProcess/efl/RequestManagerClientEfl.h:
(WebKit::RequestManagerClientEfl::create):
(RequestManagerClientEfl):
2013-01-31 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141110.
http://trac.webkit.org/changeset/141110
https://bugs.webkit.org/show_bug.cgi?id=108349
This patch broke WK2-EFL unit tests (Requested by grzegorz on
#webkit).
* UIProcess/efl/TextCheckerEfl.cpp:
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
2013-01-31 Jae Hyun Park <jae.park@company100.net>
Coordinated Graphics : Remove WebCoordinatedSurface dependency from CoordinatedSurface
https://bugs.webkit.org/show_bug.cgi?id=108259
Reviewed by Noam Rosenthal.
This is a preparation patch for Threaded Coordinated Graphics.
WebCoordinatedSurface dependency should be removed from
CoordinatedSurface so as to share CoordinatedSurface between
WebCoordinatedSurface and CoordinatedSurface of WebKit1, which will be
implemented for Threaded Coordinated Graphics.
This patch introduces CoordinatedSurface::Factory, which is a function
pointer that creates CoordinatedSurfaces. CoordinatedLayerTreeHost sets
static CoordinatedSurface::Factory member variable. Classes that use
CoordinatedSurface, which are CoordinatedImageBacking and UpdateAtlas,
create CoordinatedSurfaces by calling CoordinatedSurface::create, which
will call the function set by CoordinatedLayerTreeHost.
This way, we can remove the WebCoordinatedSurface dependency from
CoordinatedSurface and be able to share the code in Threaded Coordinated
Graphics.
No new tests. No change in behavior.
* CMakeLists.txt:
* Shared/CoordinatedGraphics/CoordinatedSurface.cpp: Added.
(WebKit):
(WebKit::CoordinatedSurface::setFactory):
(WebKit::CoordinatedSurface::create):
* Shared/CoordinatedGraphics/CoordinatedSurface.h:
(CoordinatedSurface):
* Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:
* Target.pri:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::createCoordinatedSurface):
(WebKit):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2013-01-30 Tim Horton <timothy_horton@apple.com>
Unreviewed build fix after http://trac.webkit.org/changeset/141372.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::performDictionaryLookupAtLocation):
2013-01-30 Jae Hyun Park <jae.park@company100.net>
Coordinated Graphics : Remove CoordinatedLayerTreeHostProxy dependency from LayerTreeRenderer
https://bugs.webkit.org/show_bug.cgi?id=108164
Reviewed by Benjamin Poulain.
This is a preparation patch for Threaded Coordinated Graphics.
LayerTreeRenderer should not depend on CoordinatedLayerTreeHostProxy so that it
can be moved to WebCore. This patch introduces LayerTreeRendererClient which
is implemented in CoordinatedLayerTreeHostProxy. LayerTreeRenderer uses this
client, instead of using CoordinatedLayerTreeHostProxy directly.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::LayerTreeRenderer):
(WebKit::LayerTreeRenderer::animationFrameReady):
(WebKit::LayerTreeRenderer::updateViewport):
(WebKit::LayerTreeRenderer::renderNextFrame):
(WebKit::LayerTreeRenderer::purgeBackingStores):
(WebKit::LayerTreeRenderer::detach):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(WebKit):
(LayerTreeRendererClient):
(LayerTreeRenderer):
2013-01-30 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Should respond to three-finger tap for dictionary definitions
https://bugs.webkit.org/show_bug.cgi?id=108418
<rdar://problem/13121409>
Reviewed by Simon Fraser.
* WebProcess/Plugins/Netscape/NetscapePlugin.h: Add default implementation of performDictionaryLookupAtLocation.
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Add getSelectionForWordAtPoint and searchInDictionaryWithSelection.
* WebProcess/Plugins/PDF/PDFPlugin.h: Add performDictionaryLookupAtLocation.
* WebProcess/Plugins/PDF/PDFPlugin.mm: Grab a PDFSelection representing the word encompassing the given point, and
throw up a dictionary popover.
(WebKit::PDFPlugin::performDictionaryLookupAtLocation):
* WebProcess/Plugins/PDF/SimplePDFPlugin.h: Add default implementation of performDictionaryLookupAtLocation.
* WebProcess/Plugins/Plugin.h: Add performDictionaryLookupAtLocation.
* WebProcess/Plugins/PluginProxy.h: Add default implementation of performDictionaryLookupAtLocation.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performDictionaryLookupAtLocation): Forward performDictionaryLookupAtLocation to the plugin.
* WebProcess/Plugins/PluginView.h: Add performDictionaryLookupAtLocation.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupAtLocation): Intercept performDictionaryLookupAtLocation, and give
the main-frame plugin (if it exists) a chance to handle it.
2013-01-30 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[WK2] Cleanup MessageID parameter after r141332
https://bugs.webkit.org/show_bug.cgi?id=108419
Unreviewed to fix build breaks.
r141332 didn't remove MessageID parameter on some features.
(battery, vibration, coordinate graphics, network info and so on)
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::didReceiveCoordinatedLayerTreeHostProxyMessage):
* UIProcess/WebBatteryManagerProxy.h:
(WebBatteryManagerProxy):
* UIProcess/WebNetworkInfoManagerProxy.h:
(WebNetworkInfoManagerProxy):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveMessage):
* UIProcess/WebVibrationProxy.h:
(WebVibrationProxy):
* UIProcess/soup/WebSoupRequestManagerProxy.h:
(WebSoupRequestManagerProxy):
* WebProcess/Battery/WebBatteryManager.h:
(WebBatteryManager):
* WebProcess/NetworkInfo/WebNetworkInfoManager.h:
(WebNetworkInfoManager):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::didReceiveCoordinatedLayerTreeHostMessage):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveMessage):
* WebProcess/soup/WebSoupRequestManager.h:
(WebSoupRequestManager):
2013-01-30 Anders Carlsson <andersca@apple.com>
Remove MessageID from MessageSender
https://bugs.webkit.org/show_bug.cgi?id=108413
Reviewed by Andreas Kling.
This is another step towards eliminating MessageID.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
* NetworkProcess/NetworkConnectionToWebProcess.h:
(NetworkConnectionToWebProcess):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::didReceiveSyncMessage):
* NetworkProcess/NetworkProcess.h:
(NetworkProcess):
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::processIncomingMessage):
(CoreIPC::Connection::dispatchSyncMessage):
(CoreIPC::Connection::dispatchMessage):
* Platform/CoreIPC/Connection.h:
(QueueClient):
(CoreIPC::Connection::waitForAndDispatchImmediately):
* Platform/CoreIPC/MessageReceiver.h:
(MessageReceiver):
(CoreIPC::MessageReceiver::didReceiveSyncMessage):
* Platform/CoreIPC/MessageReceiverMap.cpp:
(CoreIPC::MessageReceiverMap::dispatchMessage):
(CoreIPC::MessageReceiverMap::dispatchSyncMessage):
* Platform/CoreIPC/MessageReceiverMap.h:
(MessageReceiverMap):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::didReceiveMessage):
* PluginProcess/PluginProcess.h:
(PluginProcess):
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::didReceiveMessage):
(WebKit::WebProcessConnection::didReceiveSyncMessage):
* PluginProcess/WebProcessConnection.h:
(WebProcessConnection):
* Scripts/webkit2/messages.py:
(forward_declarations_and_headers):
(generate_message_handler):
* Scripts/webkit2/messages_unittest.py:
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveMessage):
* Shared/Authentication/AuthenticationManager.h:
(AuthenticationManager):
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::sendMessage):
* Shared/ChildProcessProxy.h:
(ChildProcessProxy):
(WebKit::ChildProcessProxy::send):
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
(CustomProtocolManager):
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
(WebKit::CustomProtocolManager::didReceiveMessage):
* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::didReceiveSyncMessage):
* Shared/Plugins/NPRemoteObjectMap.h:
(NPRemoteObjectMap):
* Shared/WebConnection.cpp:
(WebKit::WebConnection::didReceiveMessage):
* Shared/WebConnection.h:
(WebConnection):
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::didReceiveMessageOnConnectionWorkQueue):
* Shared/mac/SecItemShim.h:
(SecItemShim):
* SharedWorkerProcess/SharedWorkerProcess.cpp:
(WebKit::SharedWorkerProcess::didReceiveMessage):
* SharedWorkerProcess/SharedWorkerProcess.h:
(SharedWorkerProcess):
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::didReceiveMessage):
(WebKit::DownloadProxy::didReceiveSyncMessage):
* UIProcess/Downloads/DownloadProxy.h:
(DownloadProxy):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::didReceiveCoordinatedLayerTreeHostProxyMessage):
* UIProcess/DrawingAreaProxy.h:
(DrawingAreaProxy):
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::didReceiveCoordinatedLayerTreeHostProxyMessage):
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
(CustomProtocolManagerProxy):
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(WebKit::CustomProtocolManagerProxy::didReceiveMessage):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveMessage):
(WebKit::NetworkProcessProxy::didReceiveSyncMessage):
* UIProcess/Network/NetworkProcessProxy.h:
(NetworkProcessProxy):
* UIProcess/Notifications/WebNotificationManagerProxy.h:
(WebNotificationManagerProxy):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didReceiveMessage):
* UIProcess/Plugins/PluginProcessProxy.h:
(PluginProcessProxy):
* UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp:
(WebKit::SharedWorkerProcessProxy::didReceiveMessage):
* UIProcess/SharedWorkers/SharedWorkerProcessProxy.h:
(SharedWorkerProcessProxy):
* UIProcess/WebApplicationCacheManagerProxy.cpp:
(WebKit::WebApplicationCacheManagerProxy::didReceiveMessage):
* UIProcess/WebApplicationCacheManagerProxy.h:
(WebApplicationCacheManagerProxy):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::dispatchMessage):
(WebKit::WebContext::dispatchSyncMessage):
(WebKit::WebContext::didReceiveMessage):
(WebKit::WebContext::didReceiveSyncMessage):
* UIProcess/WebContext.h:
(WebContext):
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::didReceiveMessage):
* UIProcess/WebCookieManagerProxy.h:
(WebCookieManagerProxy):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::didReceiveMessage):
* UIProcess/WebDatabaseManagerProxy.h:
(WebDatabaseManagerProxy):
* UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::didReceiveMessage):
(WebKit::WebFullScreenManagerProxy::didReceiveSyncMessage):
* UIProcess/WebFullScreenManagerProxy.h:
(WebFullScreenManagerProxy):
* UIProcess/WebGeolocationManagerProxy.h:
(WebGeolocationManagerProxy):
* UIProcess/WebIconDatabase.h:
(WebIconDatabase):
* UIProcess/WebKeyValueStorageManagerProxy.h:
(WebKeyValueStorageManagerProxy):
* UIProcess/WebMediaCacheManagerProxy.h:
(WebMediaCacheManagerProxy):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveMessage):
(WebKit::WebPageProxy::didReceiveSyncMessage):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::didReceiveSyncMessage):
(WebKit::WebProcessProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
* UIProcess/WebResourceCacheManagerProxy.h:
(WebResourceCacheManagerProxy):
* UIProcess/mac/RemoteLayerTreeHost.h:
(RemoteLayerTreeHost):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::didReceiveMessage):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/mac/SecItemShimProxy.h:
(SecItemShimProxy):
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::didReceiveMessage):
* WebProcess/ApplicationCache/WebApplicationCacheManager.h:
(WebApplicationCacheManager):
* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::didReceiveMessage):
* WebProcess/Cookies/WebCookieManager.h:
(WebCookieManager):
* WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didReceiveMessage):
* WebProcess/FullScreen/WebFullScreenManager.h:
(WebFullScreenManager):
* WebProcess/Geolocation/WebGeolocationManager.h:
(WebGeolocationManager):
* WebProcess/IconDatabase/WebIconDatabaseProxy.h:
(WebIconDatabaseProxy):
* WebProcess/MediaCache/WebMediaCacheManager.h:
(WebMediaCacheManager):
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didReceiveSyncMessage):
* WebProcess/Network/NetworkProcessConnection.h:
(NetworkProcessConnection):
* WebProcess/Notifications/WebNotificationManager.h:
(WebNotificationManager):
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::didReceiveMessage):
(WebKit::PluginProcessConnection::didReceiveSyncMessage):
* WebProcess/Plugins/PluginProcessConnection.h:
(PluginProcessConnection):
* WebProcess/ResourceCache/WebResourceCacheManager.h:
(WebResourceCacheManager):
* WebProcess/Storage/WebKeyValueStorageManager.h:
(WebKeyValueStorageManager):
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
(WebKit::WebDatabaseManager::didReceiveMessage):
* WebProcess/WebCoreSupport/WebDatabaseManager.h:
(WebDatabaseManager):
* WebProcess/WebPage/DrawingArea.h:
(DrawingArea):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::didReceiveCoordinatedLayerTreeHostMessage):
* WebProcess/WebPage/DrawingAreaImpl.h:
(DrawingAreaImpl):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebPage/EventDispatcher.h:
(EventDispatcher):
* WebProcess/WebPage/LayerTreeHost.h:
(LayerTreeHost):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/WebPageGroupProxy.h:
(WebPageGroupProxy):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveSyncMessage):
(WebKit::WebProcess::didReceiveMessage):
(WebKit::WebProcess::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebProcess.h:
(WebProcess):
2013-01-30 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Update scrollbars if PDFLayerController's display mode changes
https://bugs.webkit.org/show_bug.cgi?id=108412
<rdar://problem/13002261>
Reviewed by Simon Fraser.
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Add pdfLayerController:didChangeDisplayMode:
* WebProcess/Plugins/PDF/PDFPlugin.h: Add notifyDisplayModeChanged().
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFLayerControllerDelegate pdfLayerController:didChangeDisplayMode:]): Forward didChangeDisplayMode to notifyDisplayModeChanged.
(WebKit::PDFPlugin::notifyDisplayModeChanged): Update content size and scrollbar size when display mode changes.
2013-01-30 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12695827> PPT: Make loading file URLs work with a sandboxed NetworkProcess
Reviewed by Sam Weinig.
* DerivedSources.make: Preprocess a .sb.in file to build the profile.
* NetworkProcess/mac/NetworkProcessMac.mm:
Don't prevent entering the sandbox. Override sandbox path, because service
gets a differnt one by default.
* WebKit2.xcodeproj/project.pbxproj:
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: Added.
2013-01-30 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: LayerTreeRenderer manages the surface of UpdateAtlas.
https://bugs.webkit.org/show_bug.cgi?id=107224
Reviewed by Benjamin Poulain.
Currently, CoordinatedLayerTreeHostProxy manages the surface of UpdateAtlas, but
all other resources are managed by LayerTreeRenderer. This patch matches the
surface of UpdateAtlas to other resources.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::updateTileForLayer):
(WebKit::CoordinatedLayerTreeHostProxy::createUpdateAtlas):
(WebKit::CoordinatedLayerTreeHostProxy::removeUpdateAtlas):
(WebKit::CoordinatedLayerTreeHostProxy::purgeBackingStores):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::updateTile):
(WebKit::LayerTreeRenderer::createUpdateAtlas):
(WebKit):
(WebKit::LayerTreeRenderer::removeUpdateAtlas):
(WebKit::LayerTreeRenderer::purgeGLResources):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(TileUpdate):
(WebKit::LayerTreeRenderer::TileUpdate::TileUpdate):
(LayerTreeRenderer):
2013-01-30 Anders Carlsson <andersca@apple.com>
Remove MessageID parameter from generated message receivers
https://bugs.webkit.org/show_bug.cgi?id=108379
Reviewed by Beth Dakin.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
* NetworkProcess/NetworkConnectionToWebProcess.h:
(NetworkConnectionToWebProcess):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didReceiveMessage):
* NetworkProcess/NetworkProcess.h:
(NetworkProcess):
* PluginProcess/PluginControllerProxy.h:
(PluginControllerProxy):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::didReceiveMessage):
* PluginProcess/PluginProcess.h:
(PluginProcess):
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::didReceiveMessage):
(WebKit::WebProcessConnection::didReceiveSyncMessage):
* PluginProcess/WebProcessConnection.h:
(WebProcessConnection):
* Scripts/webkit2/messages.py:
(generate_message_handler):
* Scripts/webkit2/messages_unittest.py:
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveMessage):
* Shared/Authentication/AuthenticationManager.h:
(AuthenticationManager):
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
(CustomProtocolManager):
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
(WebKit::CustomProtocolManager::didReceiveMessage):
* Shared/Plugins/NPObjectMessageReceiver.h:
(NPObjectMessageReceiver):
* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::didReceiveSyncMessage):
* Shared/WebConnection.cpp:
(WebKit::WebConnection::didReceiveMessage):
* Shared/WebConnection.h:
(WebConnection):
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::didReceiveMessageOnConnectionWorkQueue):
* Shared/mac/SecItemShim.h:
(SecItemShim):
* SharedWorkerProcess/SharedWorkerProcess.cpp:
(WebKit::SharedWorkerProcess::didReceiveMessage):
* SharedWorkerProcess/SharedWorkerProcess.h:
(SharedWorkerProcess):
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::didReceiveMessage):
(WebKit::DownloadProxy::didReceiveSyncMessage):
* UIProcess/Downloads/DownloadProxy.h:
(DownloadProxy):
* UIProcess/DrawingAreaProxy.h:
(DrawingAreaProxy):
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
(CustomProtocolManagerProxy):
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(WebKit::CustomProtocolManagerProxy::didReceiveMessage):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveMessage):
* UIProcess/Network/NetworkProcessProxy.h:
(NetworkProcessProxy):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didReceiveMessage):
* UIProcess/Plugins/PluginProcessProxy.h:
(PluginProcessProxy):
* UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp:
(WebKit::SharedWorkerProcessProxy::didReceiveMessage):
* UIProcess/SharedWorkers/SharedWorkerProcessProxy.h:
(SharedWorkerProcessProxy):
* UIProcess/WebApplicationCacheManagerProxy.cpp:
(WebKit::WebApplicationCacheManagerProxy::didReceiveMessage):
* UIProcess/WebApplicationCacheManagerProxy.h:
(WebApplicationCacheManagerProxy):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::didReceiveMessage):
(WebKit::WebContext::didReceiveSyncMessage):
* UIProcess/WebContext.h:
(WebContext):
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::didReceiveMessage):
* UIProcess/WebCookieManagerProxy.h:
(WebCookieManagerProxy):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::didReceiveMessage):
* UIProcess/WebDatabaseManagerProxy.h:
(WebDatabaseManagerProxy):
* UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::didReceiveMessage):
(WebKit::WebFullScreenManagerProxy::didReceiveSyncMessage):
* UIProcess/WebFullScreenManagerProxy.h:
(WebFullScreenManagerProxy):
* UIProcess/WebInspectorProxy.h:
(WebInspectorProxy):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveMessage):
(WebKit::WebPageProxy::didReceiveSyncMessage):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::didReceiveSyncMessage):
(WebKit::WebProcessProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
* UIProcess/mac/RemoteLayerTreeHost.h:
(RemoteLayerTreeHost):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::didReceiveMessage):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/mac/SecItemShimProxy.h:
(SecItemShimProxy):
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::didReceiveMessage):
* WebProcess/ApplicationCache/WebApplicationCacheManager.h:
(WebApplicationCacheManager):
* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::didReceiveMessage):
* WebProcess/Cookies/WebCookieManager.h:
(WebCookieManager):
* WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didReceiveMessage):
* WebProcess/FullScreen/WebFullScreenManager.h:
(WebFullScreenManager):
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didReceiveSyncMessage):
* WebProcess/Network/WebResourceLoader.h:
(WebResourceLoader):
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::didReceiveMessage):
(WebKit::PluginProcessConnection::didReceiveSyncMessage):
* WebProcess/Plugins/PluginProcessConnection.h:
(PluginProcessConnection):
* WebProcess/Plugins/PluginProxy.h:
(PluginProxy):
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
(WebKit::WebDatabaseManager::didReceiveMessage):
* WebProcess/WebCoreSupport/WebDatabaseManager.h:
(WebDatabaseManager):
* WebProcess/WebPage/DrawingArea.h:
(DrawingArea):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebPage/EventDispatcher.h:
(EventDispatcher):
* WebProcess/WebPage/WebInspector.h:
(WebInspector):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessage):
(WebKit::WebProcess::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebProcess.h:
(WebProcess):
2013-01-30 Christophe Dumez <dchris@gmail.com>
[WK2][UNIX] g_spawn_sync() generates warning in PluginProcessProxy::scanPlugin()
https://bugs.webkit.org/show_bug.cgi?id=108371
Reviewed by Martin Robinson.
g_spawn_sync() was sometimes displaying a warning about the SIGCHLD
signal disposition not being set to SIG_DFL, despite the fix in r133755.
The reason was that the code was only setting the disposition to SIG_DFL
if the previous disposition was SIG_IGN.
In this patch, we set the SIGCHLD signal disposition to SIG_DFL, no
matter what its previous disposition was. Also, the signal disposition
is now restored to its previous state after the call to g_spawn_sync()
to avoid side effects. Finally, we now use SIGCHLD instead of SIDCLD
since this is the more compatible POSIX name.
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::spawnProcessSync):
(WebKit):
(WebKit::PluginProcessProxy::scanPlugin):
2013-01-30 Huang Dongsung <luxtella@company100.net>
[EFL][Qt][WK2] We should consider a page scale factor in WebCore instead of our own scale factor.
https://bugs.webkit.org/show_bug.cgi?id=105978
Reviewed by Simon Fraser.
Currently, PageViewportController sends a page scale factor to Coordinated
Graphics System regardless of the page scale factor in WebCore. This patch makes
Coordinated Graphics System use the page scale factor in WebCore to match other
ports.
When it is needed to change a page scale, PageViewportController sends the scale
to Page in Web Process via WebPageProxy::scalePage. When the page scale in
WebCore is changed, CoordinatedGraphicsLayer gets notified via
deviceOrPageScaleFactorChanged callback. CoordinatedGraphicsLayer uses the page
scale factor like previous our own scale factor.
We set true to applyDeviceScaleFactorInCompositor and
ApplyPageScaleFactorInCompositor in Settings like chromium, because
TiledBackingStore that is a backing store of each GraphicsLayer applies the
scale to our raster graphics engines instead of applying the scale to the local
transform of each render object.
Thank Kenneth Rohde Christiansen for implementing the base patch of this patch.
No new tests. Covered by existing tests.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewLegacyPrivate::updateViewportSize):
* UIProcess/API/qt/raw/qrawwebview.cpp:
(QRawWebView::setSize):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
Does not receive a pageScaleFactor argument because
PageViewportController sends a page scale factor to Page.
However, this method still receives a scroll position because we
enable delegates scrolling.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::setVisibleContentsRect):
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::setVisibleContentsRect):
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::didRenderFrame):
(WebKit::PageViewportController::didChangeContentsVisibility):
(WebKit::PageViewportController::syncVisibleContents):
(WebKit::PageViewportController::applyScaleAfterRenderingContents):
(WebKit::PageViewportController::applyPositionAfterRenderingContents):
* UIProcess/efl/PageClientLegacyImpl.cpp:
(WebKit::PageClientLegacyImpl::updateViewportSize):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::deviceOrPageScaleFactorChanged):
(WebCore::CoordinatedGraphicsLayer::effectiveContentsScale):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::createGraphicsLayer):
(WebKit::CoordinatedLayerTreeHost::deviceScaleFactor):
(WebKit):
(WebKit::CoordinatedLayerTreeHost::pageScaleFactor):
(WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(CoordinatedLayerTreeHost):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUseFixedLayout):
2013-01-30 Zoltan Arvai <zarvai@inf.u-szeged.hu>
[Qt] Fix Win build after r141177
https://bugs.webkit.org/show_bug.cgi?id=108325
Reviewed by Anders Carlsson.
* Platform/CoreIPC/win/ConnectionWin.cpp:
(CoreIPC::Connection::readEventHandler):
(CoreIPC::Connection::sendOutgoingMessage):
2013-01-30 Thiago Marcos P. Santos <thiago.santos@intel.com>
REGRESSION (r141051): Broke plugin support on non-Mac WebKit2 Ports
https://bugs.webkit.org/show_bug.cgi?id=108182
Reviewed by Sam Weinig.
Send the plugin path to the PluginProcess as a parameter.
* PluginProcess/qt/PluginProcessMainQt.cpp:
(WebKit::PluginProcessMain):
* PluginProcess/unix/PluginProcessMainUnix.cpp:
(WebKit::PluginProcessMainUnix):
* UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Plugins/qt/PluginProcessProxyQt.cpp:
(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):
2013-01-30 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Use C API inside ewk_window_features
https://bugs.webkit.org/show_bug.cgi?id=107924
Reviewed by Sam Weinig.
Use C API inside ewk_window_features instead of accessing
internal C++ classes directly, to avoid violating API
layering.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::createNewPage):
* UIProcess/API/efl/EwkView.h:
(EwkView):
* UIProcess/API/efl/ewk_window_features.cpp:
(EwkWindowFeatures::EwkWindowFeatures):
(getWindowFeatureValue):
(EwkWindowFeatures::getWindowFeatureBoolValue):
(EwkWindowFeatures::getWindowFeatureDoubleValue):
(ewk_window_features_geometry_get):
* UIProcess/API/efl/ewk_window_features_private.h:
(EwkWindowFeatures::create):
(EwkWindowFeatures::geometry):
(EwkWindowFeatures::setGeometry):
(EwkWindowFeatures):
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::createNewPage):
2013-01-30 Zeno Albisser <zeno@webkit.org>
[Qt] Fix Qt/Mac build after r141024 and r141037
https://bugs.webkit.org/show_bug.cgi?id=108318
Reviewed by Kentaro Hara.
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::Connection::platformInvalidate):
Replace nullptr with 0 to allow compiling without C++11 support.
2013-01-30 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][Qt][WebGL] Avoid deleting an uncreated canvas.
https://bugs.webkit.org/show_bug.cgi?id=106878
Reviewed by Benjamin Poulain.
setContentsToCanvas is responsible for marking canvas for creation or deletion.
The issue here is that the canvas is marked for deletion even though it has not
been created. This causes an assert in LayerTreeRenderer::destroyCanvas.
This patch adds a seperate check to ensure that CoordinatedGraphicsLayer
tries to issue a request for canvas deletion only after request for canvas
creation has been handled.
New test: fast/canvas/webgl/canvas-resize-crash.html
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsToCanvas):
(WebCore::CoordinatedGraphicsLayer::destroyCanvasIfNeeded):
(WebCore::CoordinatedGraphicsLayer::createCanvasIfNeeded):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::fixedToViewport):
2013-01-30 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: Include GraphicsLayerTextureMapper.h
as a forwarding header from WebCore.
2013-01-30 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Remove m_pendingSyncBackingStores in LayerTreeRenderer.
https://bugs.webkit.org/show_bug.cgi?id=107099
Reviewed by Noam Rosenthal.
Instead of queuing the setting of backing stores in LayerTreeRenderer,
and then setting them directly to TextureMapperLayer, we allow
GraphicsLayerTextureMapper's existing queuing mechanism to handle that.
Instead of a m_pendingSyncBackingStores queue, we have a m_backingStores
queue which can be applied much more easily to the layer tree.
In addition, LayerTreeRenderer::purgeGLResources() does not call
TextureMapperLayer::clearBackingStoresRecursive() because
TextureMapperLayer will be destructed soon.
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::deleteLayer):
(WebKit::LayerTreeRenderer::createBackingStoreIfNeeded):
(WebKit::LayerTreeRenderer::removeBackingStoreIfNeeded):
(WebKit::LayerTreeRenderer::resetBackingStoreSizeToLayerSize):
(WebKit::LayerTreeRenderer::createTile):
(WebKit::LayerTreeRenderer::removeTile):
(WebKit::LayerTreeRenderer::updateTile):
(WebKit::LayerTreeRenderer::commitPendingBackingStoreOperations):
(WebKit::LayerTreeRenderer::purgeGLResources):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
2013-01-29 Anders Carlsson <andersca@apple.com>
Update the expected generated message results
https://bugs.webkit.org/show_bug.cgi?id=108293
Reviewed by Beth Dakin.
* Scripts/webkit2/messages.py:
(generate_messages_header):
* Scripts/webkit2/messages_unittest.py:
2013-01-29 Sam Weinig <sam@webkit.org>
Replace unnecessary ArgumentDecoder member functions with decode overloads
https://bugs.webkit.org/show_bug.cgi?id=102013
Reviewed by Anders Carlsson.
* Platform/CoreIPC/ArgumentCoders.cpp:
(CoreIPC::::decode):
* Platform/CoreIPC/ArgumentCoders.h:
* Platform/CoreIPC/ArgumentDecoder.cpp:
(CoreIPC::ArgumentDecoder::decodeVariableLengthByteArray):
(CoreIPC::ArgumentDecoder::decode):
* Platform/CoreIPC/ArgumentDecoder.h:
(ArgumentDecoder):
(CoreIPC::ArgumentDecoder::decodeEnum):
(CoreIPC):
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::dispatchSyncMessage):
* Platform/CoreIPC/MessageDecoder.cpp:
(CoreIPC::MessageDecoder::MessageDecoder):
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::Handle::decode):
* Platform/win/SharedMemoryWin.cpp:
(WebKit::SharedMemory::Handle::decode):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::decode):
(CoreIPC::decodeTimingFunction):
* Shared/DictionaryPopupInfo.cpp:
(WebKit::DictionaryPopupInfo::decode):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageDecoder::baseDecode):
* Shared/cf/ArgumentCodersCF.cpp:
(CoreIPC::decode):
* Shared/mac/ArgumentCodersMac.mm:
(CoreIPC::decode):
* Shared/mac/ObjCObjectGraphCoders.mm:
(WebKit::ObjCObjectGraphDecoder::baseDecode):
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::HandleArray::decode):
* Shared/mac/SecItemRequestData.cpp:
(WebKit::SecItemRequestData::decode):
* Shared/mac/SecItemResponseData.cpp:
(WebKit::SecItemResponseData::decode):
* Shared/qt/ArgumentCodersQt.cpp:
(CoreIPC::::decode):
* Shared/qt/QtNetworkReplyData.cpp:
(WebKit::QtNetworkReplyData::decode):
* WebProcess/WebPage/DecoderAdapter.cpp:
(WebKit::DecoderAdapter::decodeBool):
(WebKit::DecoderAdapter::decodeUInt16):
(WebKit::DecoderAdapter::decodeUInt32):
(WebKit::DecoderAdapter::decodeUInt64):
(WebKit::DecoderAdapter::decodeInt32):
(WebKit::DecoderAdapter::decodeInt64):
(WebKit::DecoderAdapter::decodeFloat):
(WebKit::DecoderAdapter::decodeDouble):
2013-01-29 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[WK2] Adjust missing MessageID removals to fix build breaks
https://bugs.webkit.org/show_bug.cgi?id=108276
Unreviewed to fix build breaks.
Some MessageID removals wasn't adjusted into ConnectionUnix.cpp and coordinated graphics.
* Platform/CoreIPC/unix/ConnectionUnix.cpp:
(CoreIPC::MessageInfo::MessageInfo):
(CoreIPC::MessageInfo::setMessageBodyIsOutOfLine):
(CoreIPC::MessageInfo::isMessageBodyIsOutOfLine):
(CoreIPC::Connection::processMessage):
(CoreIPC::Connection::sendOutgoingMessage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveMessage):
* UIProcess/WebProcessProxy.cpp:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveMessage):
2013-01-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140983.
http://trac.webkit.org/changeset/140983
https://bugs.webkit.org/show_bug.cgi?id=108277
Unfortunately, this API has one last client (Requested by
abarth on #webkit).
* Configurations/FeatureDefines.xcconfig:
2013-01-29 Anders Carlsson <andersca@apple.com>
Remove MessageID parameter from Connection::sendMessage
https://bugs.webkit.org/show_bug.cgi?id=108269
Reviewed by Sam Weinig.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::sendMessage):
(CoreIPC::Connection::sendSyncReply):
(CoreIPC::Connection::sendSyncMessage):
(CoreIPC::Connection::sendSyncMessageFromSecondaryThread):
* Platform/CoreIPC/Connection.h:
(Connection):
(CoreIPC::Connection::send):
(CoreIPC::Connection::sendSync):
* Platform/CoreIPC/MessageSender.h:
(CoreIPC::MessageSender::send):
(CoreIPC::MessageSender::sendMessage):
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::Connection::open):
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::sendMessage):
(WebKit::ChildProcessProxy::didFinishLaunching):
* Shared/WebConnection.cpp:
(WebKit::WebConnection::postMessage):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::postMessage):
(WebKit::InjectedBundle::postSynchronousMessage):
2013-01-29 Anders Carlsson <andersca@apple.com>
Stop generating the message kind enum
https://bugs.webkit.org/show_bug.cgi?id=108258
Reviewed by Beth Dakin.
* Platform/CoreIPC/Connection.h:
(CoreIPC::Connection::send):
(CoreIPC::Connection::sendSync):
(CoreIPC::Connection::waitForAndDispatchImmediately):
* Platform/CoreIPC/MessageSender.h:
(CoreIPC::MessageSender::send):
* Scripts/webkit2/messages.py:
(surround_in_condition):
(message_to_struct_declaration):
(generate_messages_header):
* Scripts/webkit2/messages_unittest.py:
* Scripts/webkit2/model.py:
(Message.__init__):
* Shared/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::send):
* Shared/WebConnection.cpp:
(WebKit::WebConnection::postMessage):
2013-01-29 Kiran Muppala <cmuppala@apple.com>
Fix erroneous semicolon causing build failure: if statement has empty body [-Werror,-Wempty-body]
https://bugs.webkit.org/show_bug.cgi?id=108241
Reviewed by Anders Carlsson.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::addExistingWebPage): Remove erroneous
semicolon following the if condition.
2013-01-29 Anders Carlsson <andersca@apple.com>
Remove almost everything from MessageID
https://bugs.webkit.org/show_bug.cgi?id=108244
Reviewed by Beth Dakin.
* Platform/CoreIPC/MessageID.h:
(CoreIPC::MessageID::MessageID):
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC):
(CoreIPC::Connection::sendOutgoingMessage):
(CoreIPC::createMessageDecoder):
(CoreIPC::Connection::receiveSourceEventHandler):
2013-01-29 Anders Carlsson <andersca@apple.com>
Get rid of MessageID::is()
https://bugs.webkit.org/show_bug.cgi?id=108234
Reviewed by Beth Dakin.
Add explicit message receiver name equality checks instead of using MessageID::is.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
* Platform/CoreIPC/MessageID.h:
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::didReceiveMessage):
(WebKit::WebProcessConnection::didReceiveSyncMessage):
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveMessage):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::didReceiveMessage):
(WebKit::WebContext::didReceiveSyncMessage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveMessage):
(WebKit::WebPageProxy::didReceiveSyncMessage):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::didReceiveSyncMessage):
(WebKit::WebProcessProxy::didReceiveMessageOnConnectionWorkQueue):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didReceiveSyncMessage):
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::didReceiveSyncMessage):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::didReceiveMessageOnConnectionWorkQueue):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveMessage):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessage):
(WebKit::WebProcess::didReceiveMessageOnConnectionWorkQueue):
2012-11-28 Jer Noble <jer.noble@apple.com>
Allow clients to ask for the WebView/WKView placeholder view when in full screen mode.
https://bugs.webkit.org/show_bug.cgi?id=103558
<rdar://problem/12763112>
Reviewed by Benjamin Poulain.
Clients may want to behave differently when their WebView/WKView has been swapped out by a placeholder
view when in full screen mode. Add a simple accessor for the existing placeholder view to
WKFullScreenWindowController and WKView.
* UIProcess/API/mac/WKView.mm:
(-[WKView fullScreenPlaceholderView]): Added simple accessor.
* UIProcess/API/mac/WKViewPrivate.h:
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController webViewPlaceholder]): Added simple accessor.
2013-01-29 Huang Dongsung <luxtella@company100.net>
[WK2] Call LayerTreeHost::deviceOrPageScaleFactorChanged() when a device or page scale factor is changed.
https://bugs.webkit.org/show_bug.cgi?id=107802
Reviewed by Simon Fraser.
Currently, LayerTreeHostMac and *GTK call deviceOrPageScaleFactorChanged()
of the non compositing GraphicsLayer when a device scale factor is changed.
There are two problems.
1. We don't notify LayerTreeHost when a page scale factor is changed.
2. When using TiledCoreAnimationDrawingAreaProxy, LayerTreeHostMac does
not receive the device scale factor changed callback.
So this patch changes three points.
1. Rename from deviceScaleFactorDidChange() to deviceOrPageScaleFactorChanged()
in LayerTreeHost.
2. WebPage::setDeviceScaleFactor() calls LayerTreeHost::deviceScaleFactorDidChange()
because of dealing with TiledCoreAnimationDrawingAreaProxy.
3. WebPage::pageScaleFactor() calls LayerTreeHost::deviceScaleFactorDidChange()
to call deviceOrPageScaleFactorChanged() of the non compositing GraphicsLayer.
Unfortunately, I couldn't think of a way to test this in an automated fashion.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updateBackingStoreState):
Don't call LayerTreeHost::deviceScaleFactorDidChange() because this
method calls WebPage::setDeviceScaleFactor() and then
LayerTreeHost::deviceScaleFactorDidChange() is called.
* WebProcess/WebPage/LayerTreeHost.h:
(LayerTreeHost):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scalePage):
(WebKit::WebPage::setDeviceScaleFactor):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
(LayerTreeHostGtk):
* WebProcess/WebPage/mac/LayerTreeHostMac.h:
(LayerTreeHostMac):
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::deviceOrPageScaleFactorChanged):
2013-01-29 Anders Carlsson <andersca@apple.com>
Get rid of MessageID::get()
https://bugs.webkit.org/show_bug.cgi?id=108235
Reviewed by Beth Dakin.
Just check for the message receiver name and message name explicitly instead.
* Platform/CoreIPC/MessageID.h:
(CoreIPC::MessageID::is):
* Shared/CoreIPCSupport/WebContextMessageKinds.h:
(WebContextLegacyMessage::messageReceiverName):
(WebContextLegacyMessage):
(WebContextLegacyMessage::postMessageMessageName):
(WebContextLegacyMessage::postSynchronousMessageMessageName):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::didReceiveMessage):
(WebKit::WebContext::didReceiveSyncMessage):
2013-01-29 Kiran Muppala <cmuppala@apple.com>
Add support for enabling process suppression in WebProcesses with no visible pages
https://bugs.webkit.org/show_bug.cgi?id=108054
Reviewed by Anders Carlsson.
Provide a preference to enable process suppression in WebProcesses with
no visible pages even if the application is not completely occluded.
This provides more opportunities for process suppression to take effect.
Replace the messaging of application occlusion status from UI process to
ChildProcesses with messages that indicate the current required process
suppression state. WebProcessProxy should determine if the process is
eligible for process suppression based on both application occlusion
and page visibility. When either of these parameters changes,
the proxy should message the child process of the updated process
suppression state.
* NetworkProcess/NetworkProcess.messages.in: Rename
SetApplicationIsOccluded to SetProcessSuppressionEnabled.
* PluginProcess/PluginProcess.messages.in: Ditto.
* Shared/ChildProcess.h:
(WebKit::ChildProcess::processSuppressionEnabled): Rename
applicationIsOccluded.
* Shared/WebPreferencesStore.h: Add a new preference
pageVisibilityBasedProcessSuppressionEnabled, to enabled/disable
process suppression of WebProcesses when all pages are hidden.
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::setProcessSuppressionEnabled): Rename
setApplicationIsOccluded.
(WebKit::ChildProcess::platformInitialize): Replace call to
setApplicationIsOccluded with setProcessSuppressionEnabled.
* SharedWorkerProcess/SharedWorkerProcess.messages.in: Rename
SetApplicationIsOccluded to SetProcessSuppressionEnabled.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetPageVisibilityBasedProcessSuppressionEnabled):
(WKPreferencesGetPageVisibilityBasedProcessSuppressionEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didFinishLaunching): Use setter
to update process suppression state instead of messaging directly.
Use WebContext::canEnableProcessSuppressionForNetworkProcess() helper
method to determine if process suppression should be enabled.
* UIProcess/Network/NetworkProcessProxy.h: Rename
setApplicationIsOccluded to setProcessSuppresionEnabled.
* UIProcess/Network/mac/NetworkProcessProxyMac.mm:
(WebKit::NetworkProcessProxy::setProcessSuppressionEnabled): Ditto.
* UIProcess/Plugins/PluginProcessManager.h: Ditto.
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching): Use setter
to update process suppression state instead of messaging directly.
Use WebContext::canEnableProcessSuppressionForGlobalChildProcesses()
helper method to determine if process suppression should be enabled.
* UIProcess/Plugins/PluginProcessProxy.h: Rename
setApplicationIsOccluded to setProcessSuppresionEnabled.
* UIProcess/Plugins/mac/PluginProcessManagerMac.mm:
(WebKit::PluginProcessManager::setProcessSuppressionEnabled): Ditto.
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::setProcessSuppressionEnabled): Ditto.
* UIProcess/SharedWorkers/SharedWorkerProcessManager.h: Ditto.
* UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp:
(WebKit::SharedWorkerProcessProxy::didFinishLaunching): Use setter
to update process suppression state instead of messaging directly.
Use WebContext::canEnableProcessSuppressionForGlobalChildProcesses()
helper method to determine if process suppression should be enabled.
* UIProcess/SharedWorkers/SharedWorkerProcessProxy.h: Rename
setApplicationIsOccluded to setProcessSuppresionEnabled.
* UIProcess/SharedWorkers/mac/SharedWorkerProcessManagerMac.mm:
(WebKit::SharedWorkerProcessManager::setProcessSuppressionEnabled):
Ditto.
* UIProcess/SharedWorkers/mac/SharedWorkerProcessProxyMac.mm:
(WebKit::SharedWorkerProcessProxy::setProcessSuppressionEnabled): Ditto.
* UIProcess/WebContext.h: Replace applicationIsOccluded() getter with
helper methods to determine if a child process can have process
suppression enabled.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange): Notify WebProcessProxy of
page visibility change.
(WebKit::WebPageProxy::preferencesDidChange): Notify WebProcessProxy of
change in preferences.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy): Initialize member variable
tracking process suppression state to false.
(WebKit::WebProcessProxy::createWebPage): Update set of pages which can
be process suppressed and the resulting process suppression state for
the child process.
(WebKit::WebProcessProxy::addExistingWebPage): Ditto.
(WebKit::WebProcessProxy::removeWebPage): Ditto.
(WebKit::WebProcessProxy::pageVisibilityChanged): Ditto.
(WebKit::WebProcessProxy::pagePreferencesChanged): Ditto.
(WebKit::WebProcessProxy::didFinishLaunching): Call
updateProcessSuppressionState().
* UIProcess/WebProcessProxy.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::updateProcessSuppressionStateOfGlobalChildProcesses): Use new
helper method canEnableProcessSuppressionForGlobalChildProcesses() to
determine if process suppression should be enabled.
(WebKit::applicationOcclusionStateChanged): Update renamed methods
and variables.
(WebKit::enableOcclusionNotifications): Move OmitProcessSuppression
user default check into canEnableProcessSuppression methods.
(WebKit::omitProcessSuppression):
(WebKit::WebContext::updateProcessSuppressionStateOfChildProcesses):
Use new helper method canEnableProcessSuppressionForNetworkProcess() to
determine if process suppression should be enabled for NetworkProcess.
Let WebProcess update process suppression state based on application
occlusion state and page visibility.
(WebKit::WebContext::canEnableProcessSuppressionForNetworkProcess):
(WebKit::WebContext::canEnableProcessSuppressionForWebProcess):
(WebKit::WebContext::canEnableProcessSuppressionForGlobalChildProcesses):
(WebKit::WebContext::processSuppressionEnabledChanged): Reevaluate if
process suppression is enabled for all contexts and update process
suppression state of global child processes.
* UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::pageIsProcessSuppressible):
(WebKit::WebProcessProxy::allPagesAreProcessSuppressible):
(WebKit::WebProcessProxy::updateProcessSuppressionState):
* WebProcess/WebProcess.messages.in:
2013-01-29 Anders Carlsson <andersca@apple.com>
Start using the message flag in MessageEncoder/MessageDecoder
https://bugs.webkit.org/show_bug.cgi?id=108227
Reviewed by Beth Dakin.
Stop using the flags in MessageID and store the flags directly in the message instead.
This is another step towards eliminating MessageID.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::SyncMessageState::processIncomingMessage):
(CoreIPC::Connection::createSyncMessageEncoder):
(CoreIPC::Connection::sendMessage):
(CoreIPC::Connection::sendSyncMessage):
(CoreIPC::Connection::sendSyncMessageFromSecondaryThread):
(CoreIPC::Connection::dispatchSyncMessage):
(CoreIPC::Connection::dispatchMessage):
* Platform/CoreIPC/Connection.h:
* Platform/CoreIPC/MessageDecoder.cpp:
(CoreIPC::MessageDecoder::MessageDecoder):
(CoreIPC::MessageDecoder::isSyncMessage):
(CoreIPC):
(CoreIPC::MessageDecoder::shouldDispatchMessageWhenWaitingForSyncReply):
* Platform/CoreIPC/MessageDecoder.h:
(MessageDecoder):
* Platform/CoreIPC/MessageEncoder.cpp:
(CoreIPC):
(CoreIPC::MessageEncoder::MessageEncoder):
(CoreIPC::MessageEncoder::~MessageEncoder):
(CoreIPC::MessageEncoder::setIsSyncMessage):
(CoreIPC::MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply):
* Platform/CoreIPC/MessageEncoder.h:
(MessageEncoder):
* Platform/CoreIPC/MessageFlags.h: Copied from Source/WebKit2/Platform/CoreIPC/MessageEncoder.h.
(CoreIPC):
* Platform/CoreIPC/MessageID.h:
* WebKit2.xcodeproj/project.pbxproj:
2013-01-29 Anders Carlsson <andersca@apple.com>
Encode/decode message send flags in the message
https://bugs.webkit.org/show_bug.cgi?id=108208
Reviewed by Beth Dakin.
This is another step towards getting rid of MessageID.
* Platform/CoreIPC/ArgumentDecoder.cpp:
(CoreIPC::ArgumentDecoder::decodeUInt8):
(CoreIPC):
* Platform/CoreIPC/ArgumentDecoder.h:
(ArgumentDecoder):
(CoreIPC::ArgumentDecoder::decode):
(CoreIPC):
* Platform/CoreIPC/ArgumentEncoder.cpp:
(CoreIPC::ArgumentEncoder::encode):
(CoreIPC):
* Platform/CoreIPC/ArgumentEncoder.h:
(ArgumentEncoder):
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::sendMessage):
* Platform/CoreIPC/MessageDecoder.cpp:
(CoreIPC::MessageDecoder::MessageDecoder):
* Platform/CoreIPC/MessageDecoder.h:
(CoreIPC::MessageDecoder::messageSendFlags):
(MessageDecoder):
* Platform/CoreIPC/MessageEncoder.cpp:
(CoreIPC):
(CoreIPC::MessageEncoder::MessageEncoder):
(CoreIPC::MessageEncoder::~MessageEncoder):
(CoreIPC::MessageEncoder::setMessageSendFlags):
* Platform/CoreIPC/MessageEncoder.h:
(MessageEncoder):
* UIProcess/Authentication/AuthenticationChallengeProxy.h:
(CoreIPC):
2013-01-29 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Missing build flags when building with Harfbuzz
https://bugs.webkit.org/show_bug.cgi?id=108174
Reviewed by Martin Robinson.
Add FREETYPE_CFLAGS and FREETYPE_LIBS to makefiles so -lharfbuzz
parameter will be added to linking lines when needed.
* GNUmakefile.am: Added FREETYPE_CFLAGS and FREETYPE_LIBS.
* UIProcess/API/gtk/tests/GNUmakefile.am: Ditto.
2013-01-29 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[EFL] Unified text checker implementation.
https://bugs.webkit.org/show_bug.cgi?id=107682
Reviewed by Anders Carlsson.
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit):
(WebKit::TextChecker::checkTextOfParagraph):
Allow to check spelling for multiple words,
their misspelling location and length are saved to the vector.
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
(WebKit::WebEditorClient::checkTextOfParagraph):
(WebKit):
As spelling implementation is exposed to UIProcess,
send a meesage to UIProcess to call TextChecker::checkTextOfParagraph.
2013-01-29 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add API to prefetch DNS of a given hostname to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=99695
Reviewed by Anders Carlsson.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_prefetch_dns): Public method to resolve the
domain name in advance for the given hostname.
* UIProcess/API/gtk/WebKitWebContext.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add
webkit_web_context_prefetch_dns.
* WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:
(webkitWebExtensionDidReceiveMessage): Parse PrefetchDNS message
and call WebCore::prefetchDNS() with the given hostname.
(didReceiveMessage): Call webkitWebExtensionDidReceiveMessage().
(webkitWebExtensionCreate): Add implementation for
didReceiveMessage callback.
2013-01-29 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Implement resources API using injected bundle
https://bugs.webkit.org/show_bug.cgi?id=107457
Reviewed by Sam Weinig.
The ResourceLoaderClient was removed from the UI process in
r140285, and most of the GTK+ API depends on resources. This patch
implements the same API using the ResourceLoaderClient from
injected bundle. It fixes the resources unit tests, as well as
other 14 unit tests that are timing out because they depend on
resource API.
* GNUmakefile.list.am: Add new files to compilation.
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode): Add support for encoding
WebURLResponse and WebError objects in user messages.
(WebKit::UserMessageDecoder::baseDecode): Add support for decoding
WebURLResponse and WebError objects from user messages.
* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp: Added.
(didReceiveWebViewMessageFromInjectedBundle): Handle messages sent
to the WebView. For now it hanldes all the sresource loader client
messages.
(didReceiveMessageFromInjectedBundle): Handle messages received
from injected bundle.
(attachInjectedBundleClientToContext): Initialize the injected
bundle client.
* UIProcess/API/gtk/WebKitInjectedBundleClient.h: Added.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(_WebKitWebContextPrivate): Add a HashMap to map page IDs to
WebKitWebViews.
(createDefaultWebContext): Call
attachInjectedBundleClientToContext() to intialize the injected
bundle client.
(webkitWebContextCreatePageForWebView): Use
webkitWebViewBaseCreateWebPage() to create and initialize a new
WebPageProxy and map the newly created page with the given
WebKitWebView.
(webkitWebContextWebViewDestroyed): Called when the given
WebKitWebView is being destroyed to remove it from the views map.
(webkitWebContextGetWebViewForPage): Returns the WebKitWebView
associated to the given page ID.
* UIProcess/API/gtk/WebKitWebContextPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewConstructed): Use
webkitWebContextCreatePageForWebView() instead of
webkitWebViewBaseCreateWebPage() directly.
(webkitWebViewDispose): Call webkitWebContextWebViewDestroyed() to
notify the context.
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(didInitiateLoadForResource): Send a message to the UI process
with the callback parameters encoded.
(willSendRequestForFrame): Ditto.
(didReceiveResponseForResource): Ditto.
(didReceiveContentLengthForResource): Ditto.
(didFinishLoadForResource): Ditto.
(didFailLoadForResource): Ditto.
(webkitWebPageCreate): Initialize the
WKBundlePageResourceLoadClient.
2013-01-29 Laszlo Gombos <l.gombos@samsung.com>
[Qt] Remove misspelled ENABLE(SPEECH_INPUT) guard
https://bugs.webkit.org/show_bug.cgi?id=105683
Reviewed by Simon Hausmann.
The ENABLE(SPEECH_INPUT) guard is only used in one location
in the source tree and as such it is always 0.
I believe that this guard is a left over and is not needed any more
as the code guarded is not guarded anywhere else.
* WebProcess/qt/WebProcessQt.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
2013-01-29 Zan Dobersek <zdobersek@igalia.com>
Unreviewed build fix after r141024.
Adding new files to the build.
* GNUmakefile.am:
* GNUmakefile.list.am:
2013-01-29 Jinwoo Song <jinwoo7.song@samsung.com>
[WK2] Fix unused parameter build warning
https://bugs.webkit.org/show_bug.cgi?id=108156
Reviewed by Kentaro Hara.
Comment out the unused parameters to fix the build warnings.
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/PluginProxy.h:
2013-01-28 Jae Hyun Park <jae.park@company100.net>
[Qt] Build fix
https://bugs.webkit.org/show_bug.cgi?id=108142
Reviewed by Gyuyoung Kim.
Build fix. Though StorageManager was added to WK2 in r141024,
it is not added to Target.pri for qt port.
* Target.pri:
2013-01-28 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Refactor code related to debug border and repaint count.
https://bugs.webkit.org/show_bug.cgi?id=107910
Reviewed by Noam Rosenthal.
There are two big changes:
1. CoordinatedGraphicsLayer sends debugging visuals to UI Process.
2. When updating a backing store, increment a repaint count.
In addition, we don't use QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS
environment. EFL, GTK and QT will use WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS
after http://webkit.org/b/107198.
* Shared/CoordinatedGraphics/CoordinatedLayerInfo.h:
(WebKit::CoordinatedLayerInfo::CoordinatedLayerInfo):
(CoordinatedLayerInfo):
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStore::removeAllTiles):
(WebKit::CoordinatedBackingStore::updateTile):
(WebKit::CoordinatedBackingStore::texture):
(WebKit::CoordinatedBackingStore::paintTilesToTextureMapper):
(WebKit::CoordinatedBackingStore::adjustedTransformForRect):
(WebKit::CoordinatedBackingStore::paintToTextureMapper):
(WebKit):
(WebKit::CoordinatedBackingStore::drawBorder):
Override TextureMapperPlatformLayer::drawBorder() to draw the border
for each tile.
(WebKit::CoordinatedBackingStore::drawRepaintCounter):
(WebKit::CoordinatedBackingStore::commitTileOperations):
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:
(WebKit::CoordinatedBackingStoreTile::CoordinatedBackingStoreTile):
(CoordinatedBackingStoreTile):
(CoordinatedBackingStore):
(WebKit::CoordinatedBackingStore::rect):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::setLayerRepaintCount):
(WebKit):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::setLayerRepaintCount):
(WebKit):
(WebKit::LayerTreeRenderer::setLayerState):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(LayerTreeRenderer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
(WebCore):
(WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::setDebugBorder):
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayerClient):
(CoordinatedGraphicsLayer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::setLayerRepaintCount):
(WebKit):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2013-01-28 Sam Weinig <sam@webkit.org>
Remove support from ArgumentEncoder for deprecated encode functions
https://bugs.webkit.org/show_bug.cgi?id=108155
Reviewed by Dan Bernstein.
* Platform/CoreIPC/ArgumentEncoder.h:
(CoreIPC::ArgumentEncoder::encode):
2013-01-28 Sam Weinig <sam@webkit.org>
Disable default use of the Plug-in XPCService until we can
figure out how to deal with the 32-bit one.
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):
2013-01-28 Sam Weinig <sam@webkit.org>
Plug-ins should initialize their sandbox at creation time
https://bugs.webkit.org/show_bug.cgi?id=108098
Reviewed by Anders Carlsson.
Add the ability to add string key/value pairs to process creation parameters
to allow the plugin process to get passed the plugin path which in turn allows
the plugin to initialize its sandbox at the correct time.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
(NetworkServiceInitializer):
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
(WebKit::PluginProcessMainDelegate::getExtraData):
(PluginProcessMainDelegate):
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
(WebKit):
(PluginServiceInitializerDelegate):
(WebKit::PluginServiceInitializerDelegate::PluginServiceInitializerDelegate):
(WebKit::PluginServiceInitializerDelegate::getExtraData):
(PluginServiceInitializer):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::initializeProcess):
(WebKit::PluginProcess::initializePluginProcess):
(WebKit::PluginProcess::initializeProcessName):
(WebKit::PluginProcess::initializeSandbox):
* PluginProcess/PluginProcess.h:
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializePluginProcess):
(WebKit::PluginProcess::platformInitializeProcess):
(WebKit::PluginProcess::initializeProcessName):
(WebKit::PluginProcess::initializeSandbox):
* Shared/ChildProcess.h:
(ChildProcessInitializationParameters):
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.h:
(ChildProcessMainDelegate):
(WebKit::ChildProcessMain):
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm:
(WebKit::ChildProcessMainDelegate::getExtraData):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h:
(WebKit::XPCServiceEventHandler):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h:
(WebKit::XPCServiceEventHandler):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: Added.
(XPCServiceInitializerDelegate):
(WebKit::XPCServiceInitializerDelegate::XPCServiceInitializerDelegate):
(WebKit::XPCServiceInitializer):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: Added.
(WebKit::XPCServiceInitializerDelegate::~XPCServiceInitializerDelegate):
(WebKit::XPCServiceInitializerDelegate::getConnectionIdentifier):
(WebKit::XPCServiceInitializerDelegate::getClientIdentifier):
(WebKit::XPCServiceInitializerDelegate::getClientProcessName):
(WebKit::XPCServiceInitializerDelegate::getExtraData):
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode):
(WebKit::PluginProcessCreationParameters::decode):
* Shared/Plugins/PluginProcessCreationParameters.h:
(PluginProcessCreationParameters):
* UIProcess/Launcher/ProcessLauncher.h:
(LaunchOptions):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
(WebKit::connectToReExecService):
(WebKit::createService):
(WebKit::createProcess):
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):
(WebKit::PluginProcessProxy::platformInitializePluginProcess):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):
2013-01-28 Kiran Muppala <cmuppala@apple.com>
Add window occlusion criteria to determine page visibility on Mac
https://bugs.webkit.org/show_bug.cgi?id=107494
Reviewed by Simon Fraser.
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::isViewVisible): Add window occlusion check.
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]): Remove self from the all views vector.
(-[WKView addWindowObserversForWindow:]): Register observer for
NSWindowWillOrderOffScreenNotification.
(-[WKView removeWindowObservers]): Unregister observer for
NSWindowWillOrderOffScreenNotification.
(-[WKView viewWillMoveToWindow:]): Disable occlusion notifications.
(-[WKView viewDidMoveToWindow]): Enable occlusion notifications.
(-[WKView _windowWillOrderOffScreen:]): Disable occlusion notifications.
(-[WKView _windowDidOrderOnScreen:]): Enable occlusion notifications.
This notification ensures that occlusion notifications are registered
correctly even if the NSWindow object is assigned a window number after
the viewDidMoveToWindow notification has been received. This occurs
for instance during application launch.
(-[WKView _setIsWindowOccluded:]):
(-[WKView _enableWindowOcclusionNotifications]):
(-[WKView _disableWindowOcclusionNotifications]):
(windowBecameVisible):
(windowBecameOccluded):
(+[WKView _registerWindowOcclusionNotificationHandlers]):
(+[WKView _unregisterWindowOcclusionNotificationHandlers]):
(+[WKView _allViews]):
(-[WKView _isWindowOccluded]):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): Add
self to the all views vector.
* UIProcess/API/mac/WKViewInternal.h:
2013-01-28 Huang Dongsung <luxtella@company100.net>
[TexMap] Enable debug borders and repaint counter via Settings.
https://bugs.webkit.org/show_bug.cgi?id=107198
Reviewed by Benjamin Poulain.
Currently, if the environment variable WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS
is set to 1, only CoordinatedBacking shows debug borders and repaint counter.
This patch makes the environment variable change Settings.
In addition, Qt uses WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS instead of
QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS from now.
After Bug 105787, all backing stores and platform layers in TextureMapper can
show debug borders and repaint counter.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
2013-01-28 Anders Carlsson <andersca@apple.com>
Move Mach port handling from WorkQueue to Connection
https://bugs.webkit.org/show_bug.cgi?id=108140
Reviewed by Sam Weinig.
Instead of having WorkQueue know about Mach port sources, just fold that
functionality directly into Connection. This lets us get rid of the generic source
handling from WorkQueue.
* Platform/CoreIPC/Connection.h:
(Connection):
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::Connection::platformInvalidate):
(CoreIPC::createDataAvailableSource):
(CoreIPC):
(CoreIPC::Connection::open):
(CoreIPC::Connection::initializeDeadNameSource):
* Platform/WorkQueue.h:
(WorkQueue::dispatchQueue):
(WorkQueue):
* Platform/mac/WorkQueueMac.cpp:
(WorkQueue::platformInvalidate):
2013-01-28 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Add StorageManager class to cmake ports
Unreviewed build fix. Though StorageManager was added to WK2 in r141024,
it is not added to cmake ports(EFL).
* CMakeLists.txt:
* PlatformEfl.cmake:
2013-01-28 Sam Weinig <sam@webkit.org>
<rdar://problem/13098777>
Add (allow mach-lookup (global-name "com.apple.tccd.system"))
Reviewed by Maciej Stachowiak.
* WebProcess/com.apple.WebProcess.sb.in:
2013-01-28 Brady Eidson <beidson@apple.com>
WebKit2 should notify the client if the NetworkProcess crashes.
<rdar://problem/13090513> and https://bugs.webkit.org/show_bug.cgi?id=108126
Reviewed by Sam Weinig.
Add new client callback to the ContextClient:
* UIProcess/API/C/WKContext.h:
* UIProcess/WebContextClient.cpp:
(WebKit::WebContextClient::networkProcessDidCrash):
* UIProcess/WebContextClient.h:
Call out to the client when the NetworkProcess crashes:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::networkProcessCrashed):
* UIProcess/WebContext.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
2013-01-28 Pratik Solanki <psolanki@apple.com>
PLATFORM(IOS) should come before __MAC_OS_X_VERSION_MIN_REQUIRED
https://bugs.webkit.org/show_bug.cgi?id=108101
Reviewed by Benjamin Poulain.
Since iOS does not define __MAC_OS_X_VERSION_MIN_REQUIRED, any usage of
__MAC_OS_X_VERSION_MIN_REQUIRED should be after a PLATFORM(IOS) check.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2013-01-28 Anders Carlsson <andersca@apple.com>
Add StorageManager class
https://bugs.webkit.org/show_bug.cgi?id=108127
Reviewed by Sam Weinig.
The StorageManager will be in charge of handling access to local and session storage
in the UI process.
* UIProcess/Storage/StorageManager.cpp: Added.
* UIProcess/Storage/StorageManager.h: Added.
* WebKit2.xcodeproj/project.pbxproj:
2013-01-28 Anders Carlsson <andersca@apple.com>
More work on UI side local storage
https://bugs.webkit.org/show_bug.cgi?id=108119
Reviewed by Beth Dakin.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/StorageNamespaceProxy.cpp:
(WebKit::StorageNamespaceProxy::createSessionStorageNamespace):
Rename create to createSessionStorageNamespace and make it take a WebPage.
(WebKit::StorageNamespaceProxy::StorageNamespaceProxy):
Add WebPage parameter.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::sessionStorageNamespace):
Add an #ifdef for enabling UI side storage.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::page):
Call new WebPage::fromCorePage helper.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::fromCorePage):
Add new function for getting a WebPage from a WebCore::Page.
2013-01-28 Joseph Pecoraro <pecoraro@apple.com>
Improve PageVisibility API with enums
https://bugs.webkit.org/show_bug.cgi?id=107364
Reviewed by Sam Weinig.
* Shared/API/c/WKPageVisibilityTypes.h: Added.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toPageVisibilityState):
Create an enum for page visibility APIs and a conversion function
for the WK2 values to WebCore values.
* Target.pri:
* GNUmakefile.list.am:
* WebKit2.xcodeproj/project.pbxproj:
Add WKPageVisibilityTypes.h to the build as a private export.
* UIProcess/API/C/WKPage.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetVisibilityState):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setVisibilityState):
UIProcess API to set visibility state. WebPageProxy already
had m_visibilityState, so update that when setter is used.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.h:
Remove the old SPI for WebKitTestRunner. Tests now use the C API.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setVisibilityState):
* WebProcess/WebPage/WebPage.messages.in:
Update the existing WebPage API to use uint32_t, which matches
other enum message types.
2013-01-28 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Use C API inside ewk_download_job
https://bugs.webkit.org/show_bug.cgi?id=107810
Reviewed by Anders Carlsson.
Use C API inside ewk_download_job instead of accessing internal C++
classes directly, to avoid violating API layering.
* UIProcess/API/C/WKDownload.cpp:
(WKDownloadGetID): Add C API to get the download ID as we need it to
support our public API and it seems like a useful addition.
* UIProcess/API/C/WKDownload.h:
* UIProcess/API/efl/ewk_download_job.cpp:
(EwkDownloadJob::EwkDownloadJob):
(EwkDownloadJob::id):
(EwkDownloadJob::request):
(EwkDownloadJob::cancel):
* UIProcess/API/efl/ewk_download_job_private.h:
(EwkDownloadJob::create):
(EwkDownloadJob):
* UIProcess/efl/DownloadManagerEfl.cpp:
(WebKit::DownloadManagerEfl::decideDestinationWithSuggestedFilename):
(WebKit::DownloadManagerEfl::didReceiveResponse):
(WebKit::DownloadManagerEfl::didCreateDestination):
(WebKit::DownloadManagerEfl::didReceiveData):
(WebKit::DownloadManagerEfl::didFail):
(WebKit::DownloadManagerEfl::didCancel):
(WebKit::DownloadManagerEfl::didFinish):
(WebKit::DownloadManagerEfl::registerDownloadJob): Rename
registerDownload() to registerDownloadJob() for consistency with
unregisterDownloadJob().
(WebKit::DownloadManagerEfl::ewkDownloadJob): Rename downloadJob() to
ewkDownloadJob() for clarity since it returns a EwkDownload object.
Also take a WKDownloadRef in argument instead of an identifier since
all the callers have a WKDownloadRef and it makes their code simpler.
Finally, make the getter non-const since it returns a non-const pointer.
(WebKit::DownloadManagerEfl::unregisterDownloadJob): Take a
WKDownloadRef in argument instead of an identifier since all the
callers have a WKDownloadRef and it makes their code simpler.
* UIProcess/efl/DownloadManagerEfl.h:
(DownloadManagerEfl):
* UIProcess/efl/PageClientBase.cpp:
(WebKit::PageClientBase::handleDownloadRequest):
2013-01-28 Tim Horton <timothy_horton@apple.com>
PDFPlugin: getMainResourceDataOfFrame should return PDFPlugin's data so that Save... works
https://bugs.webkit.org/show_bug.cgi?id=108060
<rdar://problem/13075454>
Reviewed by Sam Weinig.
* WebProcess/Plugins/Netscape/NetscapePlugin.h: Implement getResourceData.
* WebProcess/Plugins/PDF/SimplePDFPlugin.h:
* WebProcess/Plugins/PDF/SimplePDFPlugin.mm: Implement getResourceData, returning the accumulated
data if it exists and has finished loading.
(WebKit::SimplePDFPlugin::getResourceData):
* WebProcess/Plugins/Plugin.h: Add getResourceData, which hands out a raw pointer/size pair
to the plugin's "main resource" data.
* WebProcess/Plugins/PluginProxy.h: Implement getResourceData.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::getResourceData): Forward getResourceData through to the plugin.
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getMainResourceDataOfFrame): If the requested frame is backed by a PluginDocument,
attempt to ask the PluginView for its resource data.
2013-01-28 Tim Horton <timothy_horton@apple.com>
[wk2] WKView's intrinsicContentSize should only report a flexible width if the content width is less than the minimum width
https://bugs.webkit.org/show_bug.cgi?id=108056
Reviewed by Simon Fraser.
We're currently reporting a flexible width if the intrinsic
content size is less than *or equal* to the minimum layout
width. This is wrong and causes ping-ponging between flexible
and inflexible width in cases where autolayout fits our
view to exactly the intrinsic content size. It should be strictly
less than instead.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setIntrinsicContentSize:]):
2013-01-28 Anders Carlsson <andersca@apple.com>
Add StorageStrategy member functions to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=108105
Reviewed by Tim Horton.
Add default implementations that just chain up to the base class for now.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::localStorageNamespace):
(WebKit::WebPlatformStrategies::sessionStorageNamespace):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):
2013-01-28 Adam Barth <abarth@webkit.org>
Remove webkitNotifications.createHTMLNotification
https://bugs.webkit.org/show_bug.cgi?id=107598
Reviewed by Benjamin Poulain.
* Configurations/FeatureDefines.xcconfig:
2013-01-28 Andy Estes <aestes@apple.com>
Fix non-fat builds by excluding PluginService.32 as a target dependency for WebKit2.
* WebKit2.xcodeproj/project.pbxproj:
2013-01-28 Renata Hodovan <reni@webkit.org>
[Qt][Win][WK2] Build fix after r140957.
Rubber-stamped by Csaba Osztrogonác.
<sys/wait.h> is only needed and available on linux therefore it's moved into an ifdef block.
* WebProcess/qt/WebProcessMainQt.cpp:
2013-01-28 Kenneth Rohde Christiansen <kenneth@webkit.org>
[EFL][WK2] Use C API inside ewk_url_response
https://bugs.webkit.org/show_bug.cgi?id=107826
Reviewed by Andreas Kling.
* Shared/API/c/WKURLResponse.cpp:
(WKURLResponseGetExpectedContentsLength):
* Shared/API/c/WKURLResponse.h:
Add new WK2 C API to get the expected contents length.
* UIProcess/API/efl/ewk_url_response.cpp:
(EwkUrlResponse::EwkUrlResponse):
(EwkUrlResponse::httpStatusCode):
(EwkUrlResponse::contentLength):
* UIProcess/API/efl/ewk_url_response_private.h:
(EwkUrlResponse::create):
(EwkUrlResponse):
Change the methods to not call WebCore methods.
2013-01-28 Kenneth Rohde Christiansen <kenneth@webkit.org>
[WK2][EFL] Remove unneeded private methods
https://bugs.webkit.org/show_bug.cgi?id=107693
Reviewed by Andreas Kling.
Care has been taken to verify that the wrappers can
never be null when called.
* UIProcess/API/efl/EwkViewImpl.cpp:
(EwkViewImpl::displayTimerFired):
(EwkViewImpl::createGLSurface):
* UIProcess/API/efl/EwkViewImpl.h:
(EwkViewImpl):
2013-01-28 Renata Hodovan <reni@webkit.org>
[WK2] Putting QtWebProcess into a chrooted sandbox
https://bugs.webkit.org/show_bug.cgi?id=90005
Reviewed by Anders Carlsson and Zoltan Herczeg.
This new feature makes possible to run WebProcess inside a chroot. In this case UIProcess calls the
internal SandboxProcess binary what makes up an environment for WebProcess inside the sandbox and runs the WebProcess.
SandboxProcess first creates two needed device files (random and urandom), mounts filesystems (proc and shared memory),
then links run-time dependencies of WebProcess. After this, SandboxProcess moves to a new pid namespace (cloning with
CLONE_NEWPID flag). Then after an other cloning (with CLONE_FS flag) we share our filesystem with our children. This is
needed because we want to call chroot() function from here and jail our child (WebProcess) too. This will be performed
when WebProcess sends a request for it via an socketpair. If sandboxing is done, SandboxProcess exits.
Since chroot() system call needs sudoer rights SandboxProcess binary should have set its suid flag. However we can reduce
its capabilites. First we restrict the capabilities of the process and the number of its possible resources. Furthermore
we fallback to the nobody or the real user.
* Configurations/FeatureDefines.xcconfig:
* SandboxProcess.pro: Added.
* Shared/linux/SandboxProcess/SandboxEnvironmentLinux.cpp: Added.
(launchChangeRootHelper):
(setEnvironmentVariablesForChangeRootHelper):
(prepareAndStartChangeRootHelper):
(setCapabilities):
(dropPrivileges):
(fileExists):
(directoryPermissions):
(createDirectory):
(createDirectoryPath):
(createDeviceFiles):
(mountFileSystems):
(linkFile):
(linkDirectory):
(collectRunTimeDependencies):
(setupXauthorityForNobodyUser):
(initSandbox):
(restrictCapabilities):
(moveToNewPidNamespace):
(run):
(main):
* Shared/linux/SandboxProcess/SandboxEnvironmentLinux.h: Added.
* Shared/linux/SandboxProcess/StringOperations.cpp: Added.
(stringCopy):
(stringConcat):
(stringAppend):
* Shared/linux/SandboxProcess/StringOperations.h: Added.
* UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
(WebKit::ProcessLauncher::launchProcess):
* WebKit2.pri:
* WebProcess.pro:
* WebProcess/qt/WebProcessMainQt.cpp:
(WebKit):
(WebKit::chrootMe):
(WebKit::WebProcessMainQt):
2013-01-28 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Rely more on C API in ewk_favicon_database
https://bugs.webkit.org/show_bug.cgi?id=108035
Reviewed by Benjamin Poulain.
Rely less on internal C++ API in ewk_favicon_database and use C API
instead of avoid breaking API layering.
* PlatformEfl.cmake:
* UIProcess/API/C/cairo/WKIconDatabaseCairo.cpp: Added.
(WKIconDatabaseTryGetCairoSurfaceForURL): Add C API for getting the
favicon for a given page URL as a cairo_surface_t*.
* UIProcess/API/C/cairo/WKIconDatabaseCairo.h: Added.
* UIProcess/API/efl/ewk_favicon_database.cpp:
(EwkFaviconDatabase::didChangeIconForPageURL):
(EwkFaviconDatabase::getIconSurfaceSynchronously):
(EwkFaviconDatabase::iconDataReadyForPageURL):
2013-01-27 Alexey Proskuryakov <ap@apple.com>
Fix location of sandbox profiles in built products
https://bugs.webkit.org/show_bug.cgi?id=108026
Reviewed by Sam Weinig.
* WebKit2.xcodeproj/project.pbxproj: Sandbox profiles go into WebKit2 framework resources.
2013-01-27 Zoltan Arvai <zarvai@inf.u-szeged.hu>
Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
https://bugs.webkit.org/show_bug.cgi?id=106740
Reviewed by Benjamin Poulain.
* config.h:
2013-01-27 Sam Weinig <sam@webkit.org>
Add support for launching WebKit2 plugins using XPC
https://bugs.webkit.org/show_bug.cgi?id=108040
Reviewed by Dan Bernstein.
* Configurations/PluginService.32.xcconfig: Copied from Source/WebKit2/Configurations/WebContentService.xcconfig.
* Configurations/PluginService.64.xcconfig: Copied from Source/WebKit2/Configurations/WebContentService.xcconfig.
* Configurations/PluginService.Development.xcconfig: Copied from Source/WebKit2/Configurations/WebContentService.xcconfig.
Add configurations.
* PluginProcess/EntryPoint/mac/XPCService: Added.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32: Added.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist: Copied from Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm: Copied from Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64: Added.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist: Copied from Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm: Copied from Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development: Added.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist: Added.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm: Added.
(main):
* PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm: Copied from Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm.
(initializePluginService):
Add entry points.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::serviceName):
Add plugin process service names and move into correct #ifdef.
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):
Opt into xpc using the same rules as the WebProcess.
* WebKit2.xcodeproj/project.pbxproj:
Add files.
2013-01-26 Alexey Proskuryakov <ap@apple.com>
Use shared ChildProcess code to enter plug-in sandbox.
Reviewed by Sam Weinig.
There is one known behavior change from this refactoring: getpwuid_r is used
instead of NSHomeDirectory for home directory, mathcing other client processes.
* PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::enterSandbox):
* PluginProcess/PluginProcess.h:
PluginProcess prevents ChildProcess attempt to enter the sandbox immediately on
launch for now, because we don't have a sandbox profile directory path yet.
It now keeps a copy of ChildProcessInitializationParameters, so that
ChildProcess::initializeSandbox() could be called later.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializeProcess): Store a copy of ChildProcessInitializationParameters
for later.
(WebKit::loadSandboxProfile): Build a sandbox profile from a common prefix and
a plugin-specific part.
(WebKit::PluginProcess::platformInitializePluginProcess): We can enter the sandbox now.
(WebKit::PluginProcess::enterSandbox): Prepare SandboxInitializationParameters,
and call ChildProcess::initializeSandbox().
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox): Actually handle system directory suffix
from parameters.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.h: Removed.
* WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm: Removed.
2013-01-26 Sam Weinig <sam@webkit.org>
Add support for running the networking process as an XPCService
https://bugs.webkit.org/show_bug.cgi?id=108025
Reviewed by Dan Bernstein.
* Configurations/NetworkService.Development.xcconfig: Copied from Source/WebKit2/Configurations/WebContentService.Development.xcconfig.
* Configurations/NetworkService.xcconfig: Copied from Source/WebKit2/Configurations/WebContentService.xcconfig.
Add configurations.
* NetworkProcess/EntryPoint/mac/XPCService: Added.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService: Added.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development: Added.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info.plist: Copied from Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm: Copied from Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist: Copied from Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm: Copied from Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: Copied from Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm.
(initializeNetworkService):
Add entry points.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::serviceName):
(WebKit::connectToServiceForDevelopment):
(WebKit::createServiceForDevelopment):
(WebKit::createService):
(WebKit::createProcess):
(WebKit::ProcessLauncher::launchProcess):
Rework service creation to work for arbitrary services.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
(WebKit::NetworkProcessProxy::getLaunchOptions):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/mac/NetworkProcessProxyMac.mm:
(WebKit::shouldUseXPC):
(WebKit::NetworkProcessProxy::platformGetLaunchOptions):
Opt into xpc using the same rules as the WebProcess.
* WebKit2.xcodeproj/project.pbxproj:
Update files.
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(initializeWebContentService):
Fix the comment to refer to the shim correctly.
2013-01-26 Sam Weinig <sam@webkit.org>
Simplify environment creation in XPC service re-exec
https://bugs.webkit.org/show_bug.cgi?id=108017
Reviewed by Dan Bernstein.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h:
(WebKit::XPCServiceEventHandler):
There is no need to copy these strings.
2013-01-26 Alexey Proskuryakov <ap@apple.com>
Remove code for handling NetworkProcess authentication challenges in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=108003
Reviewed by Sam Weinig.
* DerivedSources.make:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
* WebKit2.xcodeproj/project.pbxproj:
* NetworkProcess/NetworkResourceLoader.messages.in: Removed. We no longer have
an messages to NetworkResourceLoader.
* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
There is no longer an identifier inside AuthenticationChallenge.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveAuthenticationChallenge):
(WebKit::NetworkResourceLoader::didCancelAuthenticationChallenge):
* NetworkProcess/NetworkResourceLoader.h:
Removed code for receiving authentication responses from WebProcess. Removed
m_currentAuthenticationChallenge - AuthenticationMAnager now keeps track of that.
* WebProcess/Network/WebResourceLoader.cpp:
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:
Removed code for handling authentication challenges. They are now sent directly to
UI Process. The only thing WebProcess still does is decide whether is can authenticate
against a particular authentication space.
2013-01-26 Sam Weinig <sam@webkit.org>
Fix the development build.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h:
(WebKit::XPCServiceEventHandler):
Use the right stringizer.
2013-01-26 Sam Weinig <sam@webkit.org>
Refactor XPCService initialization to make it easier to add more services
https://bugs.webkit.org/show_bug.cgi?id=108015
Reviewed by Dan Bernstein.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h: Added.
(WebKit::XPCServiceEventHandler):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h: Added.
(WebKit::XPCServiceEventHandler):
Move bootstrapping to Shared (like we have for the legacy process). For now, we use
a macro to define the actual initialization point function to use, in the future, we
could consider alternatives, such as getting the function name from the bundle.
* WebKit2.xcodeproj/project.pbxproj:
Update files.
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm:
Simplify to use the new XPCServiceBootstrapper.
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm: Copied from Source/WebKit2/WebProcess/mac/WebProcessServiceEntryPoints.mm.
(initializeWebContentService):
* WebProcess/mac/WebProcessServiceEntryPoints.h: Removed.
* WebProcess/mac/WebProcessServiceEntryPoints.mm: Removed.
Move the entry point to where it belongs and extract the bootstrapping parts.
2013-01-26 Adenilson Cavalcanti <cavalcantii@gmail.com>
[Qt]Qt build fix
https://bugs.webkit.org/show_bug.cgi?id=108013
Changes on process initialization classes broke webkit building with Qt5. This
patch fix it.
Reviewed by Sam Weinig.
* PluginProcess/qt/PluginProcessMainQt.cpp:
2013-01-26 Sam Weinig <sam@webkit.org>
Hoist command line parsing into ChildProcessMain
https://bugs.webkit.org/show_bug.cgi?id=108010
Reviewed by Dan Bernstein.
* NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm:
(NetworkProcessMain):
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
(PluginProcessMain):
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.h:
(WebKit::ChildProcessMain):
* SharedWorkerProcess/EntryPoint/mac/LegacyProcess/SharedWorkerProcessMain.mm:
(SharedWorkerProcessMain):
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
(WebContentProcessMain):
2013-01-26 Sam Weinig <sam@webkit.org>
Move LegacyProcess entry points into new EntryPoint directories
https://bugs.webkit.org/show_bug.cgi?id=108008
Reviewed by Anders Carlsson.
Also refactors to remove the need for the overly general WebKitMain, by putting the
framework lazy loading into a helper function each legacy process can call (in ChildProcessMainBootstrapper.h)
* Configurations/NetworkProcess.xcconfig:
* Configurations/PluginProcess.xcconfig:
* Configurations/SharedWorkerProcess.xcconfig:
* Configurations/WebProcess.xcconfig:
* NetworkProcess/EntryPoint: Added.
* NetworkProcess/EntryPoint/mac: Added.
* NetworkProcess/EntryPoint/mac/LegacyProcess: Added.
* NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist: Copied from Source/WebKit2/NetworkProcess/Info.plist.
* NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm: Copied from Source/WebKit2/NetworkProcess/mac/NetworkProcessMainMac.mm.
(NetworkProcessMain):
* NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMainBootstrapper.cpp: Added.
(main):
* NetworkProcess/Info.plist: Removed.
* NetworkProcess/NetworkProcessMain.h: Removed.
* NetworkProcess/mac/NetworkProcessMainMac.mm: Removed.
* PluginProcess/EntryPoint: Added.
* PluginProcess/EntryPoint/mac: Added.
* PluginProcess/EntryPoint/mac/LegacyProcess: Added.
* PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist: Copied from Source/WebKit2/PluginProcess/Info.plist.
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm: Copied from Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm.
(PluginProcessMain):
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMainBootstrapper.cpp: Added.
(main):
* PluginProcess/Info.plist: Removed.
* PluginProcess/PluginProcessMain.h: Removed.
* PluginProcess/mac/PluginProcessMainMac.mm: Removed.
* Shared/EntryPointUtilities: Added.
* Shared/EntryPointUtilities/mac: Added.
* Shared/EntryPointUtilities/mac/LegacyProcess: Added.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.h: Copied from Source/WebKit2/Shared/mac/ChildProcessMain.h.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm: Copied from Source/WebKit2/Shared/mac/ChildProcessMain.mm.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMainBootstrapper.h: Added.
(closeUnusedFileDescriptors):
(getBootstrapMainFunction):
* Shared/EntryPointUtilities/mac/XPCService: Added.
* Shared/mac/ChildProcessMain.h: Removed.
* Shared/mac/ChildProcessMain.mm: Removed.
* SharedWorkerProcess/EntryPoint: Added.
* SharedWorkerProcess/EntryPoint/mac: Added.
* SharedWorkerProcess/EntryPoint/mac/LegacyProcess: Added.
* SharedWorkerProcess/EntryPoint/mac/LegacyProcess/Info.plist: Copied from Source/WebKit2/SharedWorkerProcess/Info.plist.
* SharedWorkerProcess/EntryPoint/mac/LegacyProcess/SharedWorkerProcessMain.mm: Copied from Source/WebKit2/SharedWorkerProcess/mac/SharedWorkerProcessMainMac.mm.
(SharedWorkerProcessMain):
* SharedWorkerProcess/EntryPoint/mac/LegacyProcess/SharedWorkerProcessMainBootstrapper.cpp: Added.
(main):
* SharedWorkerProcess/Info.plist: Removed.
* SharedWorkerProcess/SharedWorkerProcessMain.h: Removed.
* SharedWorkerProcess/mac/SharedWorkerProcessMainMac.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/EntryPoint/mac/LegacyProcess/Info.plist: Copied from Source/WebKit2/WebProcess/Info.plist.
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm: Copied from Source/WebKit2/WebProcess/mac/WebProcessMainMac.mm.
(WebKit::WebContentProcessMainDelegate::WebContentProcessMainDelegate):
(WebKit):
(WebContentProcessMain):
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMainBootstrapper.cpp: Added.
(main):
* WebProcess/Info.plist: Removed.
* WebProcess/WebKitMain.cpp: Removed.
* WebProcess/WebProcessMain.h: Removed.
* WebProcess/mac/WebProcessMainMac.mm: Removed.
* mac/MainMacProcess.cpp: Removed.
2013-01-25 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Use C API inside ewk_database_manager and ewk_storage_manager
https://bugs.webkit.org/show_bug.cgi?id=107920
Reviewed by Benjamin Poulain.
Use C API inside ewk_database_manager and ewk_storage_manager instead
of accessing internal C++ classes directly, to avoid violating API
layering.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::EwkContext):
* UIProcess/API/efl/ewk_database_manager.cpp:
(EwkDatabaseManager::EwkDatabaseManager):
(EwkDatabaseManager::getDatabaseOrigins):
* UIProcess/API/efl/ewk_database_manager_private.h:
(EwkDatabaseManager::create):
(EwkDatabaseManager):
* UIProcess/API/efl/ewk_storage_manager.cpp:
(EwkStorageManager::EwkStorageManager):
(EwkStorageManager::getStorageOrigins):
* UIProcess/API/efl/ewk_storage_manager_private.h:
(EwkStorageManager::create):
(EwkStorageManager):
2013-01-25 Andreas Kling <akling@apple.com>
[Mac] Defer loading the Web Inspector bundle until it's necessary.
<http://webkit.org/b/107999>
<rdar://problem/13091861>
Reviewed by Anders Carlsson.
Don't instantiate an NSBundle for the Web Inspector before it's needed.
1.51MB progression on Membuster3.
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::WebInspector):
* WebProcess/WebPage/WebInspector.h:
(WebInspector):
* WebProcess/WebPage/mac/WebInspectorMac.mm:
(WebKit::WebInspector::setInspectorUsesWebKitUserInterface):
(WebKit::WebInspector::localizedStringsURL):
2013-01-25 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][WK2] Fix build break after r140891.
Unreviewed build fix. SerializedScriptValue needs to use PassRefPtr in WK2 as well.
* Shared/WebSerializedScriptValue.h:
(WebKit::WebSerializedScriptValue::create):
2013-01-25 Mark Rowe <mrowe@apple.com>
Don't crash when the WKBundlePageUIClient doesn't implement createPlugInExtraStyleSheet.
Reviewed by Dean Jackson.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
(WebKit::InjectedBundlePageUIClient::plugInExtraStyleSheet): Check that createPlugInExtraStyleSheet
is provided before calling it.
2013-01-25 Andy Estes <aestes@apple.com>
Wrap content filtering code in an object
https://bugs.webkit.org/show_bug.cgi?id=107914
Reviewed by Alexey Proskuryakov.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Updated to reflect changes in WKSI.
2013-01-25 Brady Eidson <beidson@apple.com>
HTTP Authentication should be directly between the NetworkProcess and the UIProcess
<rdar://problem/13074829> and https://bugs.webkit.org/show_bug.cgi?id=107974
Reviewed by Alexey Proskuryakov.
Some of this patch is refactoring to enable more flexibility in the authentication mechanism
and the rest is actually implementing Network->UI process authentication.
Expose the same AuthenticationManager to anyone in the NetworkProcess asking for it:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::authenticationManager):
(WebKit::NetworkProcess::downloadsAuthenticationManager):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveAuthenticationChallenge): Instead of messaging to
the WebProcess, tell the NetworkProcess AuthenticationManager.
Add WebPageID and WebFrameID members to SchedulableLoader that they receive from
* NetworkProcess/SchedulableLoader.cpp:
* NetworkProcess/SchedulableLoader.h:
(WebKit::SchedulableLoader::webPageID):
(WebKit::SchedulableLoader::webFrameID):
Add a 3rd form of "didReceiveAuthenticationChallenge" for NetworkProcess use:
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::mapChallengeToIdentifier):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::AuthenticationManager::tryUsePlatformCertificateInfoForChallenge): Remove a now obsolete comment
Include the WebPage and WebFrame ID for the originator of this request in case it results in a challenge:
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
(WebKit::NetworkResourceLoadParameters::webPageID):
(WebKit::NetworkResourceLoadParameters::webFrameID):
Create a AuthenticationChallengeProxy pointing back to the NetworkProcess (instead of a WebProcess),
and send the challenge to the appropriate WebPageProxy:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
Refactor didReceiveAuthenticationChallenge so an outsider can directly hand over an AuthenticationChallengeProxy:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveAuthenticationChallenge):
(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
* UIProcess/WebPageProxy.h:
Add a global WebPageID -> WebPageProxy map so parties with an ID don't need to know which process it belongs to:
* UIProcess/WebProcessProxy.cpp:
(WebKit::globalPageMap):
(WebKit::WebProcessProxy::webPage):
(WebKit::WebProcessProxy::createWebPage):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::removeWebPage):
* UIProcess/WebProcessProxy.h:
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously): Pass 0 for WebFrameID and WebPageID since synchronous
loads don't go through "normal" authentication channels and don't need them. Yet.
2013-01-25 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13089261> Crash in WKSandboxExtensionGetSerializedFormat when opening Web Inspector
Reviewed by Brady Eidson.
* WebProcess/com.apple.WebProcess.sb.in: Should be able to issue extensions for
Inspector files.
2013-01-25 Sam Weinig <sam@webkit.org>
Try to fix the debug build.
* WebKit2.xcodeproj/project.pbxproj:
2013-01-25 Sam Weinig <sam@webkit.org>
Move the WebContentServices to WebProcess/EntryPoint/mac/XPCService/.
Reviewed by Anders Carlsson.
* Configurations/WebContentService.Development.xcconfig:
* Configurations/WebContentService.xcconfig:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/EntryPoint: Added.
* WebProcess/EntryPoint/mac: Added.
* WebProcess/EntryPoint/mac/LegacyProcess: Added.
* WebProcess/EntryPoint/mac/XPCService: Added.
* WebProcess/EntryPoint/mac/XPCService/WebContentService: Copied from WebProcessService.
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development: Copied from WebProcessServiceForWebKitDevelopment.
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm: Copied from WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm.
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebProcessServiceForWebKitDevelopmentMain.mm: Removed.
* WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm: Copied from WebProcessService/WebProcessServiceMain.mm.
* WebProcess/EntryPoint/mac/XPCService/WebContentService/WebProcessServiceMain.mm: Removed.
* WebProcessService: Removed.
* WebProcessService/Info.plist: Removed.
* WebProcessService/WebProcessServiceMain.mm: Removed.
* WebProcessServiceForWebKitDevelopment: Removed.
* WebProcessServiceForWebKitDevelopment/Info.plist: Removed.
* WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm: Removed.
2013-01-25 Ivan Krstić <ike@apple.com>
Prepend common plugin sandbox profile to specific per-plugin one.
<rdar://problem/13044349>
Reviewed by Alexey Proskuryakov.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::initializeSandbox):
2013-01-25 Dean Jackson <dino@apple.com>
Add a user agent stylesheet for plugins
https://bugs.webkit.org/show_bug.cgi?id=107890
Reviewed by Alexey Proskuryakov.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h: Rename client callbacks
to have a "create" prefix, making it clear that these generate new Strings.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Actually call into
the injected bundle to retrieve any custom stylesheet for plugins.
(WebKit::InjectedBundlePageUIClient::plugInExtraStyleSheet):
* WebProcess/WebCoreSupport/WebChromeClient.h:
(WebChromeClient): Add override keyword onto virtual functions now
that the base class has implementations.
2013-01-25 Alexey Proskuryakov <ap@apple.com>
NetworkProcess cannot load files with non-ASCII names
https://bugs.webkit.org/show_bug.cgi?id=107977
Reviewed by Brady Eidson.
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode): Use the correct path accessor.
2013-01-25 Alexey Proskuryakov <ap@apple.com>
REGRESSION: System directory prefix doesn't have a "+"
https://bugs.webkit.org/show_bug.cgi?id=107971
Reviewed by Brady Eidson.
* Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::initializeSandbox):
Re-added the "+".
2013-01-25 Brady Eidson <beidson@apple.com>
New NetworkProcess can ASSERT after old NetworkProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=107970
Reviewed by Alexey Proskuryakov.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier): Don't tell the scheduler
to remove a loader that doesn't exist, as we might be recovering from a crash.
2013-01-25 Alexey Proskuryakov <ap@apple.com>
Send sandbox extensions for local files to NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=107872
Reviewed by Brady Eidson.
Send sandbox extensions in NetworkResourceLoadParameters, and consume/invalidate
them during loading. Changed NetworkProcess code to only use that class for IPC,
not for actual implementation.
* NetworkProcess/HostRecord.cpp:
(WebKit::HostRecord::scheduleResourceLoader):
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::scheduleLoader):
(WebKit::NetworkResourceLoadScheduler::removeLoader):
(WebKit::NetworkResourceLoadScheduler::receivedRedirect):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::destinationID):
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::resourceHandleStopped):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFail):
(WebKit::NetworkResourceLoader::shouldUseCredentialStorage):
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::SchedulableLoader):
(WebKit::SchedulableLoader::consumeSandboxExtensions):
(WebKit::SchedulableLoader::invalidateSandboxExtensions):
* NetworkProcess/SchedulableLoader.h:
(WebKit::SchedulableLoader::identifier):
(WebKit::SchedulableLoader::request):
(WebKit::SchedulableLoader::priority):
(WebKit::SchedulableLoader::contentSniffingPolicy):
(WebKit::SchedulableLoader::allowStoredCredentials):
(WebKit::SchedulableLoader::inPrivateBrowsingMode):
(SchedulableLoader):
* NetworkProcess/SyncNetworkResourceLoader.cpp:
(WebKit::SyncNetworkResourceLoader::start):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
(WebKit::NetworkResourceLoadParameters::requestBodyExtensions):
(WebKit::NetworkResourceLoadParameters::resourceSandboxExtension):
2013-01-25 Claudio Saavedra <csaavedra@igalia.com>
Remove stale class include
https://bugs.webkit.org/show_bug.cgi?id=107945
Reviewed by Andreas Kling.
* UIProcess/Notifications/NotificationPermissionRequestManagerProxy.h:
GeolocationPermissionRequestProxy has nothing to do here.
2013-01-25 Zan Dobersek <zdobersek@igalia.com>
Unreviewed.
Now searching for *.messages.in in Source/WebKit2/WebProcess/Storage
instead of Source/WebKit2/WebProcess/KeyValueStorage after the
WebKeyValueStorageManager.messages.in was moved there.
* GNUmakefile.am:
2013-01-25 Zan Dobersek <zdobersek@igalia.com>
Unreviewed.
Reincluding the input file for WebKeyValueStorageManager IPC messages
into the extra distribution list after the file was moved.
* GNUmakefile.am:
2013-01-25 Zan Dobersek <zdobersek@igalia.com>
Further GTK build fixing.
Adding Source/WebKit2/WebProcess/Storage to the list of directories
to be searched for header inclusion.
* GNUmakefile.am:
2013-01-25 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix.
Adjusting the build targets after WebKeyValueStorageManager.cpp was moved
to a different directory.
* GNUmakefile.list.am:
2013-01-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL] PagePolicyClientEfl should be based on C WK2 API
https://bugs.webkit.org/show_bug.cgi?id=107854
Reviewed by Benjamin Poulain.
PagePolicyClientEfl should be based on C WK2 API in order not to
break API layering.
* UIProcess/efl/PagePolicyClientEfl.cpp:
(WebKit::PagePolicyClientEfl::decidePolicyForResponseCallback):
2013-01-25 Huang Dongsung <luxtella@company100.net>
[Qt][Gtk] build fix after r140752.
https://bugs.webkit.org/show_bug.cgi?id=107908
Reviewed by Kentaro Hara.
Build break after r140752.
Move Authentication and Downloads to Shared.
* DerivedSources.pri:
* GNUmakefile.am:
* WebKit2.pri:
2013-01-24 Tim Horton <timothy_horton@apple.com>
[wk2] Page overlays should do their own animation, instead of relying on implicit animation
https://bugs.webkit.org/show_bug.cgi?id=107896
<rdar://problem/12900058>
Reviewed by Sam Weinig.
Use PageOverlay's animation instead of CA implicit animations for uninstallPageOverlay.
Make WKBundlePageInstallPageOverlay/WKBundlePageUninstallPageOverlay default to no animation.
Add WKBundlePageInstallPageOverlayWithAnimation/WKBundlePageUninstallPageOverlayWithAnimation.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageUninstallPageOverlay): The default for shouldFadeOut is now false, so we don't need to pass it.
(WKBundlePageInstallPageOverlayWithAnimation): Add a version of WKBundlePageInstallPageOverlay that fades in.
(WKBundlePageUninstallPageOverlayWithAnimation): Add a version of WKBundlePageUninstallPageOverlay that fades out.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::highlight): installPageOverlay used to animate by default, now we need to ask for it.
(WebKit::WebInspectorClient::hideHighlight): uninstallPageOverlay used to implicitly animate accidentally, now we need to ask for it.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll): Ditto.
(WebKit::FindController::hideFindUI): Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::installPageOverlay): Add shouldFadeIn parameter.
(WebKit::WebPage::uninstallPageOverlay):
* WebProcess/WebPage/WebPage.h:
(WebPage): Add shouldFadeIn to installPageOverlay; make both it and uninstallPageOverlay's shouldFade out default to false.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::destroyPageOverlayLayer): Disable implicit animations when removing a page overlay.
2013-01-24 Huang Dongsung <luxtella@company100.net>
[EFL] Unreviewed build fix after r140752.
https://bugs.webkit.org/show_bug.cgi?id=107886
Build break after r140752.
* PlatformEfl.cmake: Move DownloadSoupErrorsEfl and DownloadSoup to Shared/Downloads.
2013-01-24 Tim Horton <timothy_horton@apple.com>
Fix NetworkProcess loading after r140730.
Reviewed by Sam Weinig.
If a process' sandbox profile path is empty, don't try to initialize the sandbox.
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox):
2013-01-24 Ryosuke Niwa <rniwa@webkit.org>
Mac build fix after r140752.
* DerivedSources.make:
2013-01-24 Jae Hyun Park <jae.park@company100.net>
Redundant LegacyReceiver attribute in WebPage.messages.in
https://bugs.webkit.org/show_bug.cgi?id=107875
Reviewed by Anders Carlsson.
To generate WebPageMessageReceiver with legacy, just one LegacyReceiver
attribute in WebPage.messages.in is enough. This patch removes this
redundant attribute.
* WebProcess/WebPage/WebPage.messages.in:
2013-01-24 Anders Carlsson <andersca@apple.com>
Fix release build.
* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::length):
2013-01-24 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/9971916> [WK2] Update sandbox extension usage
https://bugs.webkit.org/show_bug.cgi?id=107861
Reviewed by Sam Weinig.
* Shared/SandboxExtension.h:
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::wkSandboxExtensionType):
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::processDidFinishLaunching):
(WebKit::WebContext::startMemorySampler):
* WebProcess/com.apple.WebProcess.sb.in:
2013-01-24 Brady Eidson <beidson@apple.com>
Move Authentication and Downloads from WebProcess to Shared.
https://bugs.webkit.org/show_bug.cgi?id=107879
Reviewed by Anders Carlsson.
* Shared/Authentication/AuthenticationManager.cpp: Renamed from Source/WebKit2/WebProcess/Authentication/AuthenticationManager.cpp.
* Shared/Authentication/AuthenticationManager.h: Renamed from Source/WebKit2/WebProcess/Authentication/AuthenticationManager.h.
* Shared/Authentication/AuthenticationManager.messages.in: Renamed from Source/WebKit2/WebProcess/Authentication/AuthenticationManager.messages.in.
* Shared/Authentication/mac/AuthenticationManager.mac.mm: Renamed from Source/WebKit2/WebProcess/Authentication/mac/AuthenticationManager.mac.mm.
* Shared/Downloads/Download.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/Download.cpp.
* Shared/Downloads/Download.h: Renamed from Source/WebKit2/WebProcess/Downloads/Download.h.
* Shared/Downloads/DownloadAuthenticationClient.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/DownloadAuthenticationClient.cpp.
* Shared/Downloads/DownloadAuthenticationClient.h: Renamed from Source/WebKit2/WebProcess/Downloads/DownloadAuthenticationClient.h.
* Shared/Downloads/DownloadManager.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/DownloadManager.cpp.
* Shared/Downloads/DownloadManager.h: Renamed from Source/WebKit2/WebProcess/Downloads/DownloadManager.h.
* Shared/Downloads/cfnet/DownloadCFNet.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/cfnet/DownloadCFNet.cpp.
* Shared/Downloads/curl/DownloadCurl.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/curl/DownloadCurl.cpp.
* Shared/Downloads/efl/DownloadSoupErrorsEfl.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp.
* Shared/Downloads/gtk/DownloadSoupErrorsGtk.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/gtk/DownloadSoupErrorsGtk.cpp.
* Shared/Downloads/mac/DownloadMac.mm: Renamed from Source/WebKit2/WebProcess/Downloads/mac/DownloadMac.mm.
* Shared/Downloads/qt/DownloadQt.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/qt/DownloadQt.cpp.
* Shared/Downloads/qt/QtFileDownloader.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/qt/QtFileDownloader.cpp.
* Shared/Downloads/qt/QtFileDownloader.h: Renamed from Source/WebKit2/WebProcess/Downloads/qt/QtFileDownloader.h.
* Shared/Downloads/soup/DownloadSoup.cpp: Renamed from Source/WebKit2/WebProcess/Downloads/soup/DownloadSoup.cpp.
* Shared/Downloads/soup/DownloadSoupErrors.h: Renamed from Source/WebKit2/WebProcess/Downloads/soup/DownloadSoupErrors.h.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebKit2.xcodeproj/project.pbxproj:
2013-01-24 Seokju Kwon <seokju.kwon@gmail.com>
[EFL] Unreviewed build fix after r140711
https://bugs.webkit.org/show_bug.cgi?id=107873
Unreviewed build fix.
Build break after r140711.
* CMakeLists.txt: Move WebKeyValueStorageManager to WebProcess/Storage.
2013-01-24 Jae Hyun Park <jae.park@company100.net>
Coordinated Graphics: remove SurfaceUpdateInfo::encode/decode
https://bugs.webkit.org/show_bug.cgi?id=107794
Reviewed by Anders Carlsson.
We want to remove the dependency on CoreIPC from SurfaceUpdateInfo
because we will extract Coordinated Graphics from WK2. Since
SurfaceUpdateInfo is only used in Coordinated Graphics, this patch
moves it to Shared/CoordinatedGraphics, and removes CoreIPC
dependency.
No new tests, no change in behavior.
* CMakeLists.txt:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC):
(CoreIPC::::decode):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
(WebKit):
* Shared/CoordinatedGraphics/SurfaceUpdateInfo.h: Renamed from Source/WebKit2/Shared/SurfaceUpdateInfo.h.
(WebKit):
(SurfaceUpdateInfo):
(WebKit::SurfaceUpdateInfo::SurfaceUpdateInfo):
* Shared/SurfaceUpdateInfo.cpp: Removed.
* Target.pri:
2013-01-24 Anders Carlsson <andersca@apple.com>
More StorageAreaProxy cleanup
https://bugs.webkit.org/show_bug.cgi?id=107870
Reviewed by Beth Dakin.
Remove some unnecessary 'WebCore::' qualifications,
and implement StorageNamespaceProxy::storageArea.
* WebProcess/Storage/StorageAreaProxy.cpp:
* WebProcess/Storage/StorageAreaProxy.h:
* WebProcess/Storage/StorageNamespaceProxy.cpp:
2013-01-24 Sam Weinig <sam@webkit.org>
Cleanup sandbox initialization a bit
https://bugs.webkit.org/show_bug.cgi?id=107847
Reviewed by Alexey Proskuryakov.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeSandbox):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::initializeSandbox):
* PluginProcess/PluginProcess.h:
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::initialize):
(WebKit::ChildProcess::initializeSandbox):
* Shared/ChildProcess.h:
(ChildProcess):
* Shared/SandboxInitializationParameters.h:
(SandboxInitializationParameters):
(WebKit::SandboxInitializationParameters::mode):
(WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath):
(WebKit::SandboxInitializationParameters::overrideSandboxProfilePath):
(WebKit::SandboxInitializationParameters::setSandboxProfile):
(WebKit::SandboxInitializationParameters::sandboxProfile):
(WebKit::SandboxInitializationParameters::SandboxInitializationParameters):
(WebKit::SandboxInitializationParameters::~SandboxInitializationParameters):
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::platformInitialize):
(WebKit::ChildProcess::initializeSandbox):
* Shared/mac/SandboxInitialiationParametersMac.mm:
(WebKit::SandboxInitializationParameters::SandboxInitializationParameters):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeSandbox):
* WebProcess/WebProcess.h:
* WebProcess/mac/WebProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox):
2013-01-24 Anders Carlsson <andersca@apple.com>
Add stubbed out StorageAreaProxy class
https://bugs.webkit.org/show_bug.cgi?id=107864
Reviewed by Beth Dakin.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/StorageAreaProxy.cpp: Added.
* WebProcess/Storage/StorageAreaProxy.h: Added.
2013-01-24 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed trivial buildfix after r140711.
* DerivedSources.pri:
* Target.pri:
2013-01-24 Mark Hahnenberg <mhahnenberg@apple.com>
Objective-C API: Rename JSValue.h/APIJSValue.h to JSCJSValue.h/JSValue.h
https://bugs.webkit.org/show_bug.cgi?id=107327
Reviewed by Filip Pizlo.
We're renaming these two files, so we have to replace the names everywhere.
* WebProcess/WebPage/WebPage.cpp:
2013-01-24 Dean Jackson <dino@apple.com>
Allow some plugin snapshot UI content to come from Injected Bundle
https://bugs.webkit.org/show_bug.cgi?id=107852
Reviewed by Anders Carlsson.
Hook up three new methods: plugInStartLabelTitle, plugInStartLabelSubtitle and
plugInExtraStyleSheet to allow some custom styling and content to come
from the InjectedBundle.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h: Callbacks added to
WKBundlePageUIClient structure.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Stub implementations
of the three new methods.
(WebKit::InjectedBundlePageUIClient::plugInStartLabelTitle):
(WebKit::InjectedBundlePageUIClient::plugInStartLabelSubtitle):
(WebKit::InjectedBundlePageUIClient::plugInExtraStyleSheet):
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
(InjectedBundlePageUIClient):
* WebProcess/WebCoreSupport/WebChromeClient.cpp: Call into the injected bundle
for each of these methods.
(WebKit::WebChromeClient::plugInStartLabelTitle):
(WebKit::WebChromeClient::plugInStartLabelSubtitle):
(WebKit::WebChromeClient::plugInExtraStyleSheet):
* WebProcess/WebCoreSupport/WebChromeClient.h:
(WebChromeClient): Declare the virtual methods in the Chrome
Client so that they can accessed from WebCore eventually.
2013-01-24 Anders Carlsson <andersca@apple.com>
Add stubbed out StorageNamespaceProxy class
https://bugs.webkit.org/show_bug.cgi?id=107846
Reviewed by Sam Weinig.
Add new class.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/StorageNamespaceProxy.cpp: Added.
* WebProcess/Storage/StorageNamespaceProxy.h: Added.
2013-01-24 Anders Carlsson <andersca@apple.com>
Move WebKeyValueStorageManager to WebProcess/Storage.
Rubber-stamped by Sam Weinig.
Try this again, with DerivedSources.make correctly updated this time.
* DerivedSources.make:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/WebKeyValueStorageManager.cpp: Renamed from Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp.
* WebProcess/Storage/WebKeyValueStorageManager.h: Renamed from Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.h.
* WebProcess/Storage/WebKeyValueStorageManager.messages.in: Renamed from Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.messages.in.
2013-01-24 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Use C API inside ewk_favicon_database
https://bugs.webkit.org/show_bug.cgi?id=107680
Reviewed by Kenneth Rohde Christiansen.
Use C API inside ewk_favicon_database instead of
accessible the C++ classes and violating layering.
We still rely on some C++ methods but this will be
addressed later since there is no equivalent in
the C API and it will require more refactoring.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::ensureFaviconDatabase):
* UIProcess/API/efl/ewk_favicon_database.cpp:
(EwkFaviconDatabase::EwkFaviconDatabase):
(EwkFaviconDatabase::~EwkFaviconDatabase):
(EwkFaviconDatabase::iconURLForPageURL):
(EwkFaviconDatabase::iconForPageURL):
(EwkFaviconDatabase::getIconSurfaceSynchronously):
(EwkFaviconDatabase::iconDataReadyForPageURL):
(ewk_favicon_database_async_icon_get):
* UIProcess/API/efl/ewk_favicon_database_private.h:
(EwkFaviconDatabase::create):
(EwkFaviconDatabase):
2013-01-24 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[EFL][WK2] Rename EwkViewImpl class to EwkView
https://bugs.webkit.org/show_bug.cgi?id=107719
Reviewed by Andreas Kling.
Rename EwkViewImpl class to EwkView, due to ewk view
refactoring plan (https://bugs.webkit.org/show_bug.cgi?id=107662#c1).
* PlatformEfl.cmake:
* UIProcess/API/C/efl/WKView.cpp:
(WKViewCreate):
(WKViewCreateWithFixedLayout):
(WKViewGetPage):
(WKViewCreateSnapshot):
* UIProcess/API/efl/EwkView.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp.
(pageViewMap):
(EwkView::addToPageViewMap):
(EwkView::removeFromPageViewMap):
(EwkView::viewFromPageViewMap):
(EwkView::EwkView):
(EwkView::~EwkView):
(EwkView::smartData):
(EwkView::fromEvasObject):
(EwkView::wkPage):
(EwkView::setCursor):
(EwkView::setDeviceScaleFactor):
(EwkView::deviceScaleFactor):
(EwkView::transformFromScene):
(EwkView::transformToScene):
(EwkView::transformToScreen):
(EwkView::layerTreeRenderer):
(EwkView::displayTimerFired):
(EwkView::update):
(EwkView::enterFullScreen):
(EwkView::exitFullScreen):
(EwkView::windowGeometry):
(EwkView::setWindowGeometry):
(EwkView::setImageData):
(EwkView::size):
(EwkView::isFocused):
(EwkView::isVisible):
(EwkView::title):
(EwkView::inputMethodContext):
(EwkView::themePath):
(EwkView::setThemePath):
(EwkView::customTextEncodingName):
(EwkView::setCustomTextEncodingName):
(EwkView::setMouseEventsEnabled):
(EwkView::setTouchEventsEnabled):
(EwkView::informIconChange):
(EwkView::createGLSurface):
(EwkView::enterAcceleratedCompositingMode):
(EwkView::exitAcceleratedCompositingMode):
(EwkView::requestColorPicker):
(EwkView::dismissColorPicker):
(EwkView::showContextMenu):
(EwkView::hideContextMenu):
(EwkView::requestPopupMenu):
(EwkView::closePopupMenu):
(EwkView::requestJSAlertPopup):
(EwkView::requestJSConfirmPopup):
(EwkView::requestJSPromptPopup):
(EwkView::informDatabaseQuotaReached):
(EwkView::informURLChange):
(EwkView::windowFeatures):
(EwkView::createNewPage):
(EwkView::close):
(EwkView::onMouseDown):
(EwkView::onMouseUp):
(EwkView::onMouseMove):
(EwkView::feedTouchEvents):
(EwkView::onTouchDown):
(EwkView::onTouchUp):
(EwkView::onTouchMove):
(EwkView::onFaviconChanged):
(EwkView::takeSnapshot):
* UIProcess/API/efl/EwkView.h: Renamed from Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h.
(WebKit):
(WebCore):
(EwkView):
(EwkView::view):
(EwkView::page):
(EwkView::ewkContext):
(EwkView::settings):
(EwkView::backForwardList):
(EwkView::url):
(EwkView::faviconURL):
(EwkView::mouseEventsEnabled):
(EwkView::touchEventsEnabled):
(EwkView::setNeedsSurfaceResize):
(EwkView::smartCallback):
(EwkView::pageClient):
(EwkView::setPageScaleFactor):
(EwkView::pageScaleFactor):
(EwkView::setPagePosition):
(EwkView::pagePosition):
(EwkView::isHardwareAccelerated):
(EwkView::setDrawsBackground):
(EwkView::evasGLContext):
(EwkView::evasGLSurface):
* UIProcess/API/efl/ewk_context_menu.cpp:
(EwkContextMenu::EwkContextMenu):
* UIProcess/API/efl/ewk_context_menu_private.h:
(EwkContextMenu::create):
(EwkContextMenu):
* UIProcess/API/efl/ewk_download_job.cpp:
(EwkDownloadJob::EwkDownloadJob):
(EwkDownloadJob::view):
* UIProcess/API/efl/ewk_download_job_private.h:
(EwkDownloadJob::create):
(EwkDownloadJob):
* UIProcess/API/efl/ewk_popup_menu.cpp:
(EwkPopupMenu::EwkPopupMenu):
(EwkPopupMenu::close):
* UIProcess/API/efl/ewk_popup_menu_private.h:
(EwkPopupMenu::create):
(EwkPopupMenu):
* UIProcess/API/efl/ewk_settings.cpp:
(EwkSettings::preferences):
* UIProcess/API/efl/ewk_settings_private.h:
(EwkSettings::create):
(EwkSettings::EwkSettings):
(EwkSettings):
* UIProcess/API/efl/ewk_view.cpp:
(createEwkView):
(ewk_view_base_add):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/ewk_view_private.h:
* UIProcess/API/efl/ewk_window_features.cpp:
(EwkWindowFeatures::EwkWindowFeatures):
(EwkWindowFeatures::setToolbarVisible):
(EwkWindowFeatures::setStatusBarVisible):
(EwkWindowFeatures::setMenuBarVisible):
(EwkWindowFeatures::setResizable):
* UIProcess/API/efl/ewk_window_features_private.h:
(EwkWindowFeatures::create):
(EwkWindowFeatures):
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate):
* UIProcess/efl/ContextHistoryClientEfl.cpp:
(WebKit::ContextHistoryClientEfl::didNavigateWithNavigationData):
(WebKit::ContextHistoryClientEfl::didPerformClientRedirect):
(WebKit::ContextHistoryClientEfl::didPerformServerRedirect):
(WebKit::ContextHistoryClientEfl::didUpdateHistoryTitle):
* UIProcess/efl/ContextMenuClientEfl.cpp:
(ContextMenuClientEfl::ContextMenuClientEfl):
* UIProcess/efl/ContextMenuClientEfl.h:
(WebKit::ContextMenuClientEfl::create):
(ContextMenuClientEfl):
* UIProcess/efl/DownloadManagerEfl.cpp:
(WebKit::DownloadManagerEfl::decideDestinationWithSuggestedFilename):
(WebKit::DownloadManagerEfl::didFail):
(WebKit::DownloadManagerEfl::didCancel):
(WebKit::DownloadManagerEfl::didFinish):
(WebKit::DownloadManagerEfl::registerDownload):
* UIProcess/efl/DownloadManagerEfl.h:
(DownloadManagerEfl):
* UIProcess/efl/FindClientEfl.cpp:
(WebKit::FindClientEfl::didFindString):
(WebKit::FindClientEfl::didFailToFindString):
(WebKit::FindClientEfl::FindClientEfl):
* UIProcess/efl/FindClientEfl.h:
(WebKit::FindClientEfl::create):
(FindClientEfl):
* UIProcess/efl/FormClientEfl.cpp:
(WebKit::FormClientEfl::willSubmitForm):
(WebKit::FormClientEfl::FormClientEfl):
* UIProcess/efl/FormClientEfl.h:
(WebKit::FormClientEfl::create):
(FormClientEfl):
* UIProcess/efl/InputMethodContextEfl.cpp:
(WebKit::InputMethodContextEfl::InputMethodContextEfl):
(WebKit::InputMethodContextEfl::onIMFInputSequenceComplete):
(WebKit::InputMethodContextEfl::onIMFPreeditSequenceChanged):
(WebKit::InputMethodContextEfl::updateTextInputState):
* UIProcess/efl/InputMethodContextEfl.h:
(WebKit::InputMethodContextEfl::create):
(InputMethodContextEfl):
* UIProcess/efl/PageClientBase.cpp:
(WebKit::PageClientBase::PageClientBase):
(WebKit::PageClientBase::view):
(WebKit::PageClientBase::createDrawingAreaProxy):
(WebKit::PageClientBase::setViewNeedsDisplay):
(WebKit::PageClientBase::viewSize):
(WebKit::PageClientBase::isViewFocused):
(WebKit::PageClientBase::isViewVisible):
(WebKit::PageClientBase::processDidCrash):
(WebKit::PageClientBase::didRelaunchProcess):
(WebKit::PageClientBase::toolTipChanged):
(WebKit::PageClientBase::setCursor):
(WebKit::PageClientBase::createPopupMenuProxy):
(WebKit::PageClientBase::createContextMenuProxy):
(WebKit::PageClientBase::enterAcceleratedCompositingMode):
(WebKit::PageClientBase::exitAcceleratedCompositingMode):
(WebKit::PageClientBase::updateTextInputState):
(WebKit::PageClientBase::handleDownloadRequest):
* UIProcess/efl/PageClientBase.h:
(PageClientBase):
* UIProcess/efl/PageClientDefaultImpl.cpp:
(WebKit::PageClientDefaultImpl::PageClientDefaultImpl):
(WebKit::PageClientDefaultImpl::updateViewportSize):
(WebKit::PageClientDefaultImpl::convertToDeviceSpace):
(WebKit::PageClientDefaultImpl::convertToUserSpace):
(WebKit::PageClientDefaultImpl::didChangeContentsSize):
* UIProcess/efl/PageClientDefaultImpl.h:
(WebKit::PageClientDefaultImpl::create):
(PageClientDefaultImpl):
* UIProcess/efl/PageClientLegacyImpl.cpp:
(WebKit::PageClientLegacyImpl::PageClientLegacyImpl):
(WebKit::PageClientLegacyImpl::didCommitLoad):
(WebKit::PageClientLegacyImpl::updateViewportSize):
(WebKit::PageClientLegacyImpl::didChangeViewportProperties):
(WebKit::PageClientLegacyImpl::didChangeContentsSize):
(WebKit::PageClientLegacyImpl::pageDidRequestScroll):
(WebKit::PageClientLegacyImpl::didRenderFrame):
(WebKit::PageClientLegacyImpl::pageTransitionViewportReady):
* UIProcess/efl/PageClientLegacyImpl.h:
(WebKit::PageClientLegacyImpl::create):
(PageClientLegacyImpl):
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::didReceiveTitleForFrame):
(WebKit::PageLoadClientEfl::didReceiveIntentForFrame):
(WebKit::PageLoadClientEfl::registerIntentServiceForFrame):
(WebKit::PageLoadClientEfl::didChangeProgress):
(WebKit::PageLoadClientEfl::didFinishLoadForFrame):
(WebKit::PageLoadClientEfl::didFailLoadWithErrorForFrame):
(WebKit::PageLoadClientEfl::didStartProvisionalLoadForFrame):
(WebKit::PageLoadClientEfl::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::PageLoadClientEfl::didFailProvisionalLoadWithErrorForFrame):
(WebKit::PageLoadClientEfl::didCommitLoadForFrame):
(WebKit::PageLoadClientEfl::didChangeBackForwardList):
(WebKit::PageLoadClientEfl::didSameDocumentNavigationForFrame):
(WebKit::PageLoadClientEfl::didReceiveAuthenticationChallengeInFrame):
(WebKit::PageLoadClientEfl::PageLoadClientEfl):
* UIProcess/efl/PageLoadClientEfl.h:
(WebKit::PageLoadClientEfl::create):
(PageLoadClientEfl):
(WebKit::PageLoadClientEfl::view):
* UIProcess/efl/PagePolicyClientEfl.cpp:
(WebKit::PagePolicyClientEfl::decidePolicyForNavigationAction):
(WebKit::PagePolicyClientEfl::decidePolicyForNewWindowAction):
(WebKit::PagePolicyClientEfl::PagePolicyClientEfl):
* UIProcess/efl/PagePolicyClientEfl.h:
(WebKit::PagePolicyClientEfl::create):
(PagePolicyClientEfl):
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::PageUIClientEfl):
(WebKit::PageUIClientEfl::close):
(WebKit::PageUIClientEfl::takeFocus):
(WebKit::PageUIClientEfl::focus):
(WebKit::PageUIClientEfl::unfocus):
(WebKit::PageUIClientEfl::runJavaScriptAlert):
(WebKit::PageUIClientEfl::runJavaScriptConfirm):
(WebKit::PageUIClientEfl::runJavaScriptPrompt):
(WebKit::PageUIClientEfl::toolbarsAreVisible):
(WebKit::PageUIClientEfl::setToolbarsAreVisible):
(WebKit::PageUIClientEfl::menuBarIsVisible):
(WebKit::PageUIClientEfl::setMenuBarIsVisible):
(WebKit::PageUIClientEfl::statusBarIsVisible):
(WebKit::PageUIClientEfl::setStatusBarIsVisible):
(WebKit::PageUIClientEfl::isResizable):
(WebKit::PageUIClientEfl::setIsResizable):
(WebKit::PageUIClientEfl::getWindowFrame):
(WebKit::PageUIClientEfl::setWindowFrame):
(WebKit::PageUIClientEfl::exceededDatabaseQuota):
(WebKit::PageUIClientEfl::runOpenPanel):
(WebKit::PageUIClientEfl::createNewPage):
(WebKit::PageUIClientEfl::showColorPicker):
(WebKit::PageUIClientEfl::hideColorPicker):
* UIProcess/efl/PageUIClientEfl.h:
(WebKit::PageUIClientEfl::create):
(PageUIClientEfl):
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::PageViewportControllerClientEfl):
(WebKit::PageViewportControllerClientEfl::drawingArea):
(WebKit::PageViewportControllerClientEfl::updateViewportSize):
(WebKit::PageViewportControllerClientEfl::didChangeContentsSize):
(WebKit::PageViewportControllerClientEfl::setViewportPosition):
(WebKit::PageViewportControllerClientEfl::setPageScaleFactor):
(WebKit::PageViewportControllerClientEfl::didResumeContent):
(WebKit::PageViewportControllerClientEfl::didChangeVisibleContents):
* UIProcess/efl/PageViewportControllerClientEfl.h:
(WebKit::PageViewportControllerClientEfl::create):
(PageViewportControllerClientEfl):
* UIProcess/efl/VibrationClientEfl.cpp:
(VibrationClientEfl::vibrateCallback):
(VibrationClientEfl::cancelVibrationCallback):
(VibrationClientEfl::create):
(VibrationClientEfl::VibrationClientEfl):
(VibrationClientEfl::~VibrationClientEfl):
* UIProcess/efl/VibrationClientEfl.h:
(VibrationClientEfl):
* UIProcess/efl/WebContextMenuProxyEfl.cpp:
(WebKit::WebContextMenuProxyEfl::WebContextMenuProxyEfl):
(WebKit::WebContextMenuProxyEfl::showContextMenu):
(WebKit::WebContextMenuProxyEfl::hideContextMenu):
* UIProcess/efl/WebContextMenuProxyEfl.h:
(WebKit::WebContextMenuProxyEfl::create):
(WebContextMenuProxyEfl):
* UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
(WebKit::WebFullScreenManagerProxy::enterFullScreen):
(WebKit::WebFullScreenManagerProxy::exitFullScreen):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::viewWidget):
* UIProcess/efl/WebPopupMenuProxyEfl.cpp:
(WebKit::WebPopupMenuProxyEfl::WebPopupMenuProxyEfl):
(WebKit::WebPopupMenuProxyEfl::showPopupMenu):
(WebKit::WebPopupMenuProxyEfl::hidePopupMenu):
* UIProcess/efl/WebPopupMenuProxyEfl.h:
(WebKit::WebPopupMenuProxyEfl::create):
(WebPopupMenuProxyEfl):
2013-01-24 Andras Becsi <andras.becsi@digia.com>
Remove nonexistent header from WebKit2/Target.pri
Unreviewed cleanup after r139919.
* Target.pri:
2013-01-24 Michael Brüning <michael.bruning@digia.com>
[Qt][WK2] Pages / resources cannot be loaded from qrc files.
https://bugs.webkit.org/show_bug.cgi?id=107031
Reviewed by Jocelyn Turcotte.
Enables WebKit2 Qt applications to load files from the bundled
qrc files. This is achieved by adding a url scheme handler for
the "qrc" scheme using the application scheme handler and ignoring
all handlers for the qrc application scheme that the application might
set.
* UIProcess/API/qt/qquickurlschemedelegate.cpp:
(QQuickQrcSchemeDelegate::QQuickQrcSchemeDelegate):
(QQuickQrcSchemeDelegate::readResourceAndSend):
* UIProcess/API/qt/qquickurlschemedelegate_p.h:
(QQuickQrcSchemeDelegate):
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):
(QQuickWebViewExperimental::schemeDelegates_Append):
(QQuickWebViewExperimental::invokeApplicationSchemeHandler):
* UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:
* UIProcess/API/qt/tests/qmltests/common/qrctest.html: Added.
* UIProcess/API/qt/tests/qmltests/resources.qrc:
2013-01-24 Krzysztof Czech <k.czech@samsung.com>
[EFL][WK2] Expose accessibility hierarchy in WebKit2-EFL.
https://bugs.webkit.org/show_bug.cgi?id=106216
Reviewed by Andreas Kling.
Create WebPage's accessibility object on WebPage initialization.
Wrap around WebCore's accessibility objects.
Updating accessibility hierarchy. Expands accessibility implementation
of WebKit-GTK to be used in EFL.
* PlatformEfl.cmake:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:
(webPageAccessibilityObjectGetIndexInParent):
(web_page_accessibility_object_init):
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::platformInitialize):
(WebKit):
(WebKit::WebPage::updateAccessibilityTree):
2013-01-23 Seokju Kwon <seokju.kwon@gmail.com>
[EFL] Unreviewed build fix after r140605
https://bugs.webkit.org/show_bug.cgi?id=107787
Unreviewed build fix.
Build break after r140605.
* UIProcess/WebBatteryManagerProxy.cpp:
* UIProcess/WebBatteryManagerProxy.h:
(WebBatteryManagerProxy):
* UIProcess/WebNetworkInfoManagerProxy.cpp:
* UIProcess/WebNetworkInfoManagerProxy.h:
(WebNetworkInfoManagerProxy):
* UIProcess/WebVibrationProxy.cpp:
* UIProcess/WebVibrationProxy.h:
(WebVibrationProxy):
* UIProcess/soup/WebSoupRequestManagerProxy.cpp:
* UIProcess/soup/WebSoupRequestManagerProxy.h:
(WebSoupRequestManagerProxy):
* WebProcess/Battery/WebBatteryManager.cpp:
* WebProcess/Battery/WebBatteryManager.h:
(WebBatteryManager):
* WebProcess/NetworkInfo/WebNetworkInfoManager.cpp:
* WebProcess/NetworkInfo/WebNetworkInfoManager.h:
(WebNetworkInfoManager):
* WebProcess/soup/WebSoupRequestManager.cpp:
* WebProcess/soup/WebSoupRequestManager.h:
(WebSoupRequestManager):
2013-01-23 Sam Weinig <sam@webkit.org>
Cleanup the names of the WebKit2 xpc services
https://bugs.webkit.org/show_bug.cgi?id=107759
Reviewed by Anders Carlsson.
Renames:
com.apple.WebKit2.WebProcessService -> com.apple.WebKit.WebContent
com.apple.WebKit2.WebProcessServiceForWebKitDevelopment -> com.apple.WebKit.WebContent.Development
* Configurations/BaseXPCService.xcconfig: Copied from Source/WebKit2/Configurations/WebProcessService.xcconfig.
* Configurations/WebContentService.xcconfig: Copied from Source/WebKit2/Configurations/WebProcessService.xcconfig.
* Configurations/WebContentServiceForDevelopment.xcconfig: Copied from Source/WebKit2/Configurations/WebProcessServiceForWebKitDevelopment.xcconfig.
* Configurations/WebProcessService.xcconfig: Removed.
* Configurations/WebProcessServiceForWebKitDevelopment.xcconfig: Removed.
Rename config files to match new service names and add base config.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToWebProcessServiceForWebKitDevelopment):
(WebKit::createWebProcessServiceForWebKitDevelopment):
(WebKit::createWebProcessService):
* WebKit2.xcodeproj/project.pbxproj:
* WebKit2Service: Removed.
* WebProcessService/Info.plist:
* WebProcessServiceForWebKitDevelopment/Info.plist:
Update for new names.
2013-01-23 Seulgi Kim <seulgikim@company100.net>
Coordinated Graphics : Reduce the number of calls to Functional and number of IPC messages by sending the created/deleted layers in a vector.
https://bugs.webkit.org/show_bug.cgi?id=107625
Reviewed by Benjamin Poulain.
Currently, the number of messages sent by CoordinatedLayerTreeHost is
equal to the number of layers created/deleted even though they requested
in the same cycle.
It's not good since CoreIPC creates functional before sending messages,
and CoordinatedLayerTreeHostProxy creates functional before
create/delete layers.
This patch makes CoordinatedLayerTreeHost send just one
CreateCompositingLayers message and CoordinatedLayerTreeHostProxy create
just one functional in a cycle. The same work has been done with
DeleteCompositingLayers message.
This patch will reduce the number of calls to Functional and number of
IPC messages by sending the created/deleted layers in a vector.
No new tests, no change in behavior.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::createCompositingLayers):
(WebKit::CoordinatedLayerTreeHostProxy::deleteCompositingLayers):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::createLayers):
(WebKit):
(WebKit::LayerTreeRenderer::deleteLayers):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(LayerTreeRenderer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::createCompositingLayers):
(WebKit::CoordinatedLayerTreeHost::deleteCompositingLayers):
2013-01-23 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Add LegacyReceiver to messages.in files.
https://bugs.webkit.org/show_bug.cgi?id=107760
Reviewed by Anders Carlsson.
After r140605, LegacyReceiver attribute is needed to use recevier specific
memeber functions.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
2013-01-23 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140612.
http://trac.webkit.org/changeset/140612
https://bugs.webkit.org/show_bug.cgi?id=107768
broke the build (Requested by smfr on #webkit).
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp: Renamed from Source/WebKit2/WebProcess/Storage/WebKeyValueStorageManager.cpp.
(WebKit):
(WebKit::WebKeyValueStorageManager::supplementName):
(WebKit::WebKeyValueStorageManager::WebKeyValueStorageManager):
(WebKit::WebKeyValueStorageManager::initialize):
(WebKit::keyValueStorageOriginIdentifiers):
(WebKit::WebKeyValueStorageManager::dispatchDidGetKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::didFinishLoadingOrigins):
(WebKit::WebKeyValueStorageManager::dispatchDidModifyOrigin):
(WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
(WebKit::WebKeyValueStorageManager::deleteAllEntries):
* WebProcess/KeyValueStorage/WebKeyValueStorageManager.h: Renamed from Source/WebKit2/WebProcess/Storage/WebKeyValueStorageManager.h.
(WebKit):
(WebKeyValueStorageManager):
(WebKit::WebKeyValueStorageManager::localStorageDirectory):
(WebKit::WebKeyValueStorageManager::indexedDBDatabaseDirectory):
* WebProcess/KeyValueStorage/WebKeyValueStorageManager.messages.in: Renamed from Source/WebKit2/WebProcess/Storage/WebKeyValueStorageManager.messages.in.
2013-01-23 Ian Vollick <vollick@chromium.org>
Introduce the "stacking container" concept.
https://bugs.webkit.org/show_bug.cgi?id=107734
Reviewed by Simon Fraser.
A stacking container is treated just like a stacking context. That
is, it has z-order lists, it and its descendants are stacked as a
unit, and when the RenderLayerCompositor does its overlap testing,
the composited regions for all layer lists take effect only once the
stacking container is done being processed.
This patch also adds the function RenderLayer::isStackingContainer().
Currently, this is equivalent to RenderLayer::isStackingContext(),
but in future, the definition of stacking container will be broadened
to encompass more than just stacking contexts.
Other than the addition of this extra function, the patch is mostly
comprised of name changes. Any code that used to refer to the
stacking context concept, but didn't necessarily require a stacking
context in the strict, CSS-sense, was switched to refer to stacking
container. No functionality was changed.
No new tests, no change in functionality.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::updateOffsetFromViewportForSelf):
2013-01-23 Anders Carlsson <andersca@apple.com>
Move Move WebKeyValueStorageManager to WebProcess/Storage.
Rubber-stamped by Sam Weinig.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/WebKeyValueStorageManager.cpp: Renamed from Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp.
* WebProcess/Storage/WebKeyValueStorageManager.h: Renamed from Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.h.
* WebProcess/Storage/WebKeyValueStorageManager.messages.in: Renamed from Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.messages.in.
2013-01-23 Anders Carlsson <andersca@apple.com>
Remove LegacyReceiver from a couple of .messages.in files
https://bugs.webkit.org/show_bug.cgi?id=107749
Reviewed by Beth Dakin.
* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit):
* UIProcess/Notifications/WebNotificationManagerProxy.h:
(WebNotificationManagerProxy):
* UIProcess/Notifications/WebNotificationManagerProxy.messages.in:
* UIProcess/WebGeolocationManagerProxy.cpp:
* UIProcess/WebGeolocationManagerProxy.h:
(WebGeolocationManagerProxy):
* UIProcess/WebGeolocationManagerProxy.messages.in:
* UIProcess/WebIconDatabase.cpp:
* UIProcess/WebIconDatabase.h:
(WebIconDatabase):
* UIProcess/WebIconDatabase.messages.in:
* UIProcess/WebKeyValueStorageManagerProxy.cpp:
* UIProcess/WebKeyValueStorageManagerProxy.h:
(WebKeyValueStorageManagerProxy):
* UIProcess/WebKeyValueStorageManagerProxy.messages.in:
* UIProcess/WebMediaCacheManagerProxy.cpp:
* UIProcess/WebMediaCacheManagerProxy.h:
(WebMediaCacheManagerProxy):
* UIProcess/WebMediaCacheManagerProxy.messages.in:
* UIProcess/WebResourceCacheManagerProxy.cpp:
* UIProcess/WebResourceCacheManagerProxy.h:
(WebResourceCacheManagerProxy):
* UIProcess/WebResourceCacheManagerProxy.messages.in:
* WebProcess/Geolocation/WebGeolocationManager.cpp:
* WebProcess/Geolocation/WebGeolocationManager.h:
(WebGeolocationManager):
* WebProcess/Geolocation/WebGeolocationManager.messages.in:
* WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
* WebProcess/IconDatabase/WebIconDatabaseProxy.h:
(WebIconDatabaseProxy):
* WebProcess/IconDatabase/WebIconDatabaseProxy.messages.in:
* WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:
* WebProcess/KeyValueStorage/WebKeyValueStorageManager.h:
(WebKeyValueStorageManager):
* WebProcess/KeyValueStorage/WebKeyValueStorageManager.messages.in:
* WebProcess/MediaCache/WebMediaCacheManager.cpp:
* WebProcess/MediaCache/WebMediaCacheManager.h:
(WebMediaCacheManager):
* WebProcess/MediaCache/WebMediaCacheManager.messages.in:
* WebProcess/Notifications/WebNotificationManager.cpp:
* WebProcess/Notifications/WebNotificationManager.h:
(WebNotificationManager):
* WebProcess/Notifications/WebNotificationManager.messages.in:
* WebProcess/ResourceCache/WebResourceCacheManager.cpp:
* WebProcess/ResourceCache/WebResourceCacheManager.h:
(WebResourceCacheManager):
* WebProcess/ResourceCache/WebResourceCacheManager.messages.in:
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit):
* WebProcess/WebPage/WebPageGroupProxy.h:
(WebPageGroupProxy):
* WebProcess/WebPage/WebPageGroupProxy.messages.in:
2013-01-23 Anders Carlsson <andersca@apple.com>
Message receiver generation should work in terms of MessageReceiver objects
https://bugs.webkit.org/show_bug.cgi?id=107742
Reviewed by Beth Dakin.
The generated message receiver code should generate the MessageReceiver
member functions didReceiveMessage and didReceiveSyncMessage instead of
receiver specific member functions.
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.messages.in:
* PluginProcess/PluginControllerProxy.messages.in:
* PluginProcess/PluginProcess.messages.in:
* PluginProcess/WebProcessConnection.messages.in:
* Scripts/webkit2/messages.py:
(generate_message_handler):
* Scripts/webkit2/messages_unittest.py:
* Scripts/webkit2/model.py:
(MessageReceiver.__init__):
(MessageReceiver.has_attribute):
* Scripts/webkit2/parser.py:
(parse):
* Shared/Network/CustomProtocols/CustomProtocolManager.messages.in:
* Shared/Plugins/NPObjectMessageReceiver.messages.in:
* Shared/WebConnection.messages.in:
* Shared/mac/SecItemShim.messages.in:
* SharedWorkerProcess/SharedWorkerProcess.messages.in:
* UIProcess/Downloads/DownloadProxy.messages.in:
* UIProcess/DrawingAreaProxy.messages.in:
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.messages.in:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/Notifications/WebNotificationManagerProxy.messages.in:
* UIProcess/Plugins/PluginProcessProxy.messages.in:
* UIProcess/SharedWorkers/SharedWorkerProcessProxy.messages.in:
* UIProcess/WebApplicationCacheManagerProxy.messages.in:
* UIProcess/WebContext.messages.in:
* UIProcess/WebCookieManagerProxy.messages.in:
* UIProcess/WebDatabaseManagerProxy.messages.in:
* UIProcess/WebFullScreenManagerProxy.messages.in:
* UIProcess/WebGeolocationManagerProxy.messages.in:
* UIProcess/WebIconDatabase.messages.in:
* UIProcess/WebInspectorProxy.messages.in:
* UIProcess/WebKeyValueStorageManagerProxy.messages.in:
* UIProcess/WebMediaCacheManagerProxy.messages.in:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessProxy.messages.in:
* UIProcess/WebResourceCacheManagerProxy.messages.in:
* UIProcess/mac/RemoteLayerTreeHost.messages.in:
* UIProcess/mac/SecItemShimProxy.messages.in:
* WebProcess/ApplicationCache/WebApplicationCacheManager.messages.in:
* WebProcess/Authentication/AuthenticationManager.h:
* WebProcess/Authentication/AuthenticationManager.messages.in:
* WebProcess/Cookies/WebCookieManager.messages.in:
* WebProcess/FullScreen/WebFullScreenManager.messages.in:
* WebProcess/Geolocation/WebGeolocationManager.messages.in:
* WebProcess/IconDatabase/WebIconDatabaseProxy.messages.in:
* WebProcess/KeyValueStorage/WebKeyValueStorageManager.messages.in:
* WebProcess/MediaCache/WebMediaCacheManager.messages.in:
* WebProcess/Network/NetworkProcessConnection.messages.in:
* WebProcess/Network/WebResourceLoader.messages.in:
* WebProcess/Notifications/WebNotificationManager.messages.in:
* WebProcess/Plugins/PluginProcessConnection.messages.in:
* WebProcess/Plugins/PluginProxy.messages.in:
* WebProcess/ResourceCache/WebResourceCacheManager.messages.in:
* WebProcess/WebCoreSupport/WebDatabaseManager.messages.in:
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/EventDispatcher.messages.in:
* WebProcess/WebPage/WebInspector.messages.in:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/WebPageGroupProxy.messages.in:
* WebProcess/WebProcess.messages.in:
2013-01-23 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: remove CoordinatedLayerInfo::encode/decode.
https://bugs.webkit.org/show_bug.cgi?id=107644
Reviewed by Anders Carlsson.
We want to remove the dependency on CoreIPC from CoordinatedLayerInfo because we
will extract Coordinated Graphics from WK2.
* CMakeLists.txt:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC):
(CoreIPC::::decode):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
(WebKit):
* Shared/CoordinatedGraphics/CoordinatedLayerInfo.cpp: Removed.
* Shared/CoordinatedGraphics/CoordinatedLayerInfo.h:
* Target.pri:
2013-01-23 Kenneth Rohde Christiansen <kenneth@webkit.org>
[WK2] Replace some internal API usage in EwkView with C API
https://bugs.webkit.org/show_bug.cgi?id=107652
Reviewed by Benjamin Poulain.
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_url_set):
(ewk_view_reload):
(ewk_view_reload_bypass_cache):
(ewk_view_stop):
(ewk_view_load_progress_get):
(ewk_view_scale_set):
(ewk_view_scale_get):
(ewk_view_device_pixel_ratio_get):
(ewk_view_back):
(ewk_view_forward):
(ewk_view_back_possible):
(ewk_view_forward_possible):
(ewk_view_html_string_load):
(ewk_view_text_find):
(ewk_view_text_find_highlight_clear):
(ewk_view_text_matches_count):
(ewk_view_inspector_show):
(ewk_view_inspector_close):
2013-01-23 Alexey Proskuryakov <ap@apple.com>
Build fix.
* Platform/CoreIPC/Connection.cpp: (CoreIPC::Connection::sendSyncMessage):
Copy/paste trouble fix.
2013-01-23 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13064414> REGRESSION(r139514): didFailToSendSyncMessage is not called by Connection
https://bugs.webkit.org/show_bug.cgi?id=107715
Reviewed by Anders Carlsson.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::sendSyncMessage):
(CoreIPC::Connection::sendSyncMessageFromSecondaryThread):
Correcting a misapplied edit - didFailToSendSyncMessage should be kept in main
thread message sending, not in secondary thread.
2013-01-23 Brady Eidson <beidson@apple.com>
Recursion handling cancelled authentication challenges in NetworkProcess
<rdar://problem/13024541> and https://bugs.webkit.org/show_bug.cgi?id=107702
Reviewed by Alexey Proskuryakov.
This turned in to both a bug fix with authentication and a minimal refactoring of NetworkResourceLoader.
- Rename ::stop to ::resourceHandleStopped
- Move all cleanup code to ::resourceHandleStopped
- Schedule a resourceHandleStopped call when an authentication cancellation occurs
- Tell the WebResourceLoader to cancel when an authentication cancellation occurs
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::~NetworkResourceLoader):
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::performStops):
(WebKit::NetworkResourceLoader::resourceHandleStopped):
(WebKit::NetworkResourceLoader::didFail):
(WebKit::NetworkResourceLoader::receivedAuthenticationCancellation):
* NetworkProcess/NetworkResourceLoader.h:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::cancelResourceLoader):
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:
2013-01-23 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Use C API inside ewk_cookie_manager
https://bugs.webkit.org/show_bug.cgi?id=107661
Reviewed by Alexey Proskuryakov.
Use C API inside ewk_cookie_manager instead of
accessing C++ classes directly and violating
layering.
* PlatformEfl.cmake:
* UIProcess/API/C/soup/WKCookieManagerSoup.cpp: Added.
(toSoupCookiePersistentStorageType):
(WKCookieManagerSetCookiePersistentStorage): Add C API for setting
the persistent storage path and type when using libsoup.
* UIProcess/API/C/soup/WKCookieManagerSoup.h: Added.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::cookieManager):
* UIProcess/API/efl/ewk_cookie_manager.cpp:
(EwkCookieManager::EwkCookieManager):
(EwkCookieManager::~EwkCookieManager):
(EwkCookieManager::setPersistentStorage):
(EwkCookieManager::setHTTPAcceptPolicy):
(EwkCookieManager::clearHostnameCookies):
(EwkCookieManager::clearAllCookies):
(EwkCookieManager::watchChanges):
(EwkCookieManager::getHostNamesWithCookies):
(EwkCookieManager::getHTTPAcceptPolicy):
(ewk_cookie_manager_persistent_storage_set):
(ewk_cookie_manager_hostname_cookies_clear):
* UIProcess/API/efl/ewk_cookie_manager_private.h:
(EwkCookieManager::create):
(EwkCookieManager):
2013-01-22 Anders Carlsson <andersca@apple.com>
Use a platforom strategy for local storage
https://bugs.webkit.org/show_bug.cgi?id=107600
Reviewed by Andreas Kling.
Update for new storage strategy.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createStorageStrategy):
(WebKit):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):
2013-01-21 Kentaro Hara <haraken@chromium.org>
Implement UIEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=107430
Reviewed by Adam Barth.
Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
UIEvent constructor is implemented under a DOM4_EVENTS_CONSTRUCTOR flag,
which is enabled on Safari and Chromium for now.
* Configurations/FeatureDefines.xcconfig:
2013-01-22 Alexey Proskuryakov <ap@apple.com>
Move sandbox initialization to ChildProcess
https://bugs.webkit.org/show_bug.cgi?id=107486
Reviewed by Sam Weinig.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeSandbox): Removed. We no longer need this function
to be implemented in each process type.
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::initializeSandbox): Removed a custom (and incomplete) implementation.
(WebKit::NetworkProcess::processUpdateSandboxInitializationParameters): Clear
sandbox profile path in parameters, telling ChildProcess to not enter a sandbox.
* PluginProcess/PluginProcess.h:
* PluginProcess/mac/PluginProcessMac.mm:
Added FIXMEs, saying that we should switch to ChildProcess implementation.
* Shared/ChildProcess.cpp: Dummy implementations for other platforms.
* Shared/ChildProcess.h: Added processUpdateSandboxInitializationParameters, which
child processes will override to change sandbox initialization parameters.
* Shared/SandboxInitializationParameters.h: Added.
* Shared/mac/SandboxInitialiationParametersMac.mm: Added.
Abstracts out sandbox parameter vector for coding safety. Encapsulates other
things that subclasses will want to do differently.
* Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::initializeSandbox):
Added a shared implementation, based largely on WebProcess version.
* SharedWorkerProcess/mac/SharedWorkerProcessMac.mm: Removed custom sandboxing code.
* WebKit2.xcodeproj/project.pbxproj: Added SandboxInitializationParameters files.
* WebProcess/WebProcess.cpp:
* WebProcess/WebProcess.h:
Updated dummy implementations to match ChildProcess.
* WebProcess/mac/WebProcessMac.mm:
(WebKit): Moved sandboxing code to ChildProcess.
(WebKit::WebProcess::processUpdateSandboxInitializationParameters): Override
profile path, because default one doesn't work for WebProcessService.
2013-01-22 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Enable Page Visibility (PAGE_VISIBILITY_API)
https://bugs.webkit.org/show_bug.cgi?id=107230
Reviewed by David Kilzer.
* Configurations/FeatureDefines.xcconfig:
2013-01-22 Joseph Pecoraro <pecoraro@apple.com>
Remove empty file WebPageProxyMessageKinds.h
https://bugs.webkit.org/show_bug.cgi?id=107335
Reviewed by Kentaro Hara.
* GNUmakefile.list.am:
* Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Removed.
2013-01-22 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Build PDFPlugin everywhere, enable at runtime
https://bugs.webkit.org/show_bug.cgi?id=107117
Reviewed by Alexey Proskuryakov.
Since PDFLayerController SPI is all forward-declared, the plugin should build
on all Mac platforms, and can be enabled at runtime.
* Configurations/FeatureDefines.xcconfig:
2013-01-21 Dirk Schulze <dschulze@adobe.com>
Add build flag for Canvas's Path object (disabled by default)
https://bugs.webkit.org/show_bug.cgi?id=107473
Reviewed by Dean Jackson.
Add CANVAS_PATH build flag to build systems.
* Configurations/FeatureDefines.xcconfig:
2013-01-21 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL][WK2] Add APIs to set/get view source mode
https://bugs.webkit.org/show_bug.cgi?id=106633
Reviewed by Gyuyoung Kim.
Added APIs to set/get view source mode for enabling to load
the source code of the web page.
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_source_mode_set):
(ewk_view_source_mode_get):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setMainFrameInViewSourceMode):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::mainFrameInViewSourceMode):
(WebPageProxy):
2013-01-21 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[EFL][WK2] Implement WebInspector::localizedStringsURL() on EFL
https://bugs.webkit.org/show_bug.cgi?id=107363
Reviewed by Benjamin Poulain.
Implement WebInspector::localizedStringsURL() method to return the
file URL of the localizedStrings.js.
This prevents printing warnings about "Localized string not found" in
the console and fixes Web inspector related failing tests on the bots.
* WebProcess/WebPage/efl/WebInspectorEfl.cpp:
(WebKit::WebInspector::localizedStringsURL):
2013-01-21 Kiran Muppala <cmuppala@apple.com>
Enable process suppression by default on Mac
https://bugs.webkit.org/show_bug.cgi?id=106804
Reviewed by Alexey Proskuryakov.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext): Change initialized value of
m_processSuppressionEnabled from false to true.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitialize): Since process suppression
is no longer disabled on construction, do not disable it for global
child processes either. Instead enable occlusion notifications as
they are needed to trigger process suppression.
2013-01-17 Andy Estes <aestes@apple.com>
Add a USE() macro for content filtering code
https://bugs.webkit.org/show_bug.cgi?id=107098
Reviewed by Mark Rowe.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Use USE(CONTENT_FILTERING).
2013-01-21 Anders Carlsson <andersca@apple.com>
Don't null out the IPC connection in ChildProcess:terminate
https://bugs.webkit.org/show_bug.cgi?id=107469
<rdar://problem/13015294>
Reviewed by Dan Bernstein.
We already invalidate the connection, and Connection::sendMessage checks if a connection
is valid and bails if it isn't, so the only thing that nulling out the connection here does
is that it would force us to add random connection null checks everywhere.
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::terminate):
2013-01-21 Joone Hur <joone.hur@intel.com>
[EFL] API unit tests are running extremely slow on the bots
https://bugs.webkit.org/show_bug.cgi?id=104665
Reviewed by Gyuyoung Kim.
Clear HTTP cache files before running the unit tests, which prevents
performance degradation due to so many cache files.
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
(EWK2UnitTest::EWK2UnitTestBase::SetUp):
2013-01-21 Gustavo Noronha Silva <gns@gnome.org>
REGRESSION (r140285): GTK uses WKPageResourceLoadClient which was removed
https://bugs.webkit.org/show_bug.cgi?id=107421
Unreviewed buildfix.
* GNUmakefile.list.am:
* UIProcess/API/gtk/WebKitResourceLoadClient.cpp: Removed.
* UIProcess/API/gtk/WebKitResourceLoadClient.h: Removed.
* UIProcess/API/gtk/WebKitWebView.cpp: No longer attach unexisting ResourceLoadClient.
(webkitWebViewConstructed):
2013-01-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r139781.
http://trac.webkit.org/changeset/139781
https://bugs.webkit.org/show_bug.cgi?id=107443
This patch seems to cause flakiness on Qt (Requested by chris-
qBT_work on #webkit).
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::forceRepaintAsync):
2013-01-21 Thiago Marcos P. Santos <thiago.santos@intel.com>
REGRESSION (r140285): EFL uses WKPageResourceLoadClient which was removed
https://bugs.webkit.org/show_bug.cgi?id=107417
Reviewed by Gyuyoung Kim.
We had no choice but remove the ResourceLoadClientEfl after r140285
and thus our public API signals depending on it. The test_ewk2_auth_request
unit test was skipped because it depends these signals and will be fixed in a
different patch.
* PlatformEfl.cmake:
* UIProcess/API/efl/EWebKit2.h:
* UIProcess/API/efl/EwkViewCallbacks.h:
* UIProcess/API/efl/EwkViewImpl.cpp:
(EwkViewImpl::EwkViewImpl):
* UIProcess/API/efl/EwkViewImpl.h:
(WebKit):
(EwkViewImpl):
* UIProcess/API/efl/ewk_resource.cpp: Removed.
* UIProcess/API/efl/ewk_resource.h: Removed.
* UIProcess/API/efl/ewk_resource_private.h: Removed.
* UIProcess/API/efl/ewk_view.cpp:
* UIProcess/API/efl/ewk_view.h:
* UIProcess/efl/ResourceLoadClientEfl.cpp: Removed.
* UIProcess/efl/ResourceLoadClientEfl.h: Removed.
2013-01-20 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
Remove support getting per-resource callbacks in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=107405
Reviewed by Sam Weinig.
EFL, GTK and Qt WebKit2 build fixes after r140285.
Remove from build WebResourceLoadClient.{cpp,h} deleted by r140285.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
2013-01-20 Sam Weinig <sam@webkit.org>
Remove support getting per-resource callbacks in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=107405
Reviewed by Anders Carlsson.
Removes support for the WKPageResourceLoadClient. Access to per-resource
callbacks are still available in the bundle, and via the WebInspector.
* UIProcess/API/C/WKPage.cpp:
* UIProcess/API/C/WKPage.h:
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
Stop handling per-resource messages and forwarding them to the API.
* UIProcess/WebResourceLoadClient.cpp: Removed.
* UIProcess/WebResourceLoadClient.h: Removed.
* WebKit2.xcodeproj/project.pbxproj:
Remove the files.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest):
(WebKit::WebFrameLoaderClient::dispatchWillSendRequest):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveResponse):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoading):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoading):
Stop sending per-resource messages to the UIProcess.
2013-01-20 Gustavo Noronha Silva <gns@gnome.org>
Unreviewed. Simple indentation fix.
* GNUmakefile.am:
2013-01-20 Alexey Proskuryakov <ap@apple.com>
Remove obsolete plug-in sandboxing code.
https://bugs.webkit.org/show_bug.cgi?id=107362
Reviewed by Darin Adler.
* WebKit2.xcodeproj/project.pbxproj:
* DerivedSources.make:
* PluginProcess/mac/com.apple.WebKit.PluginProcess.sb.in: Removed.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::initializeSandbox): Fixed a memory leak in code that stays.
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::NPN_GetValue):
* WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.h:
* WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
Removed API related parts. Remaining code will move to a better place in a follow-up
patch, just keeping it here for easier reviewing.
(enterSandbox): Removed no longer used arguments.
2013-01-17 Sam Weinig <sam@webkit.org>
Don't initialize AppKit for processes that don't use it
https://bugs.webkit.org/show_bug.cgi?id=107216
Reviewed by Alexey Proskuryakov.
* PluginProcess/mac/PluginProcessMainMac.mm:
(WebKit::PluginProcessMainDelegate::doPreInitializationWork):
* WebProcess/mac/WebProcessMainMac.mm:
(WebKit::WebProcessMainDelegate::doPreInitializationWork):
Move AppKit initialization to the two places it is used, the WebProcessMain and the PluginProcessMain.
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::initialize):
Remove redundant call to InitializeWebKit2().
* Shared/mac/ChildProcessMain.h:
(WebKit::ChildProcessMain):
Remove initialization of AppKit now that the delegate does it if necessary,
and move InitializeWebKit2() to after delegate.doPreInitializationWork(), so
the delegate has a chance to set things up it, in this case, calling
RunLoop::setUseApplicationRunLoopOnMainRunLoop if needed.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializePluginProcess):
* WebProcess/mac/WebProcessMac.mm:
(WebKit::WebProcess::platformInitializeProcess):
Remove now redundant call to RunLoop::setUseApplicationRunLoopOnMainRunLoop().
* WebProcess/mac/WebProcessServiceEntryPoints.mm:
(WebKit::WebProcessServiceEventHandler):
(webProcessServiceMain):
(initializeWebProcessForWebProcessServiceForWebKitDevelopment):
Call WebCore::RunLoop::setUseApplicationRunLoopOnMainRunLoop() and make call to InitializeWebKit2()
more consistent.
2013-01-18 Tim Horton <timothy_horton@apple.com>
[wk2] Intrinsic content size should report a flexible width if the content is not wider than the minimum layout width
https://bugs.webkit.org/show_bug.cgi?id=107334
<rdar://problem/12960009>
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setIntrinsicContentSize:]): If the content is laid-out at or below the minimum layout width, it's flexible; otherwise, we need to inform autolayout that we require more space via our intrinsic content size.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Allow auto-sizing to expand its width beyond the minimum if needed.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setMinimumLayoutWidth): Allow auto-sizing to expand its width beyond the minimum if needed.
2013-01-18 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13042826> REGRESSION (r139985): Full Screen Youtube loses keyboard and mouse control
https://bugs.webkit.org/show_bug.cgi?id=107191
Reviewed by Darin Adler.
Moved initialization from platformInitializePluginProcess to platformInitializeProcess,
because the former is called too late. In r139985, I used a correct location for
WebProcess, but not for PluginProcess.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializeProcess):
(WebKit::PluginProcess::platformInitializePluginProcess):
2013-01-18 Brady Eidson <beidson@apple.com>
Rework NetworkProcess resource load identifiers.
<rdar://problem/12934449> and https://bugs.webkit.org/show_bug.cgi?id=107192
Reviewed by Alexey Proskuryakov.
Having the NetworkProcess vend out identifiers to WebProcesses was a bad idea.
This patch reverts that so that WebProcesses are in control of their own unique identifiers.
The NetworkProcess doesn't need identifiers at all.
It can represent outstanding loads with the loaders themselves.
This patch adds a "SchedulableLoader" base class for normal and synchronous loaders.
It reworks each use of identifiers into using SchedulableLoaders instead.
This also gave an opportunity to move the serving of pending requests for a host into the
HostRecord itself which cleans certain things up nicely.
Change HostRecord to have queues of SchedulableLoaders instead of identifiers.
Make HostRecord responsible for actually starting the loaders in its queues:
* NetworkProcess/HostRecord.cpp:
(WebKit::HostRecord::~HostRecord):
(WebKit::HostRecord::scheduleResourceLoader):
(WebKit::HostRecord::addLoaderInProgress):
(WebKit::HostRecord::removeLoader):
(WebKit::HostRecord::hasRequests):
(WebKit::HostRecord::servePendingRequestsForQueue):
(WebKit::HostRecord::servePendingRequests):
(WebKit::HostRecord::limitsRequests):
* NetworkProcess/HostRecord.h:
(WebKit::HostRecord::create): HostRecord is now also RefCounted. new and delete are so 2004.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): Create the loader then schedule
it with the scheduler, instead of having the scheduler create it.
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
(WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
Remove maps and sets of identifiers, replacing them with sets of SchedulableLoaders where needed.
Rely on HostRecords to actually manage sets of SchedulableLoaders.
Rely on HostRecord to do the actual serving of its pending requests:
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::NetworkResourceLoadScheduler):
(WebKit::NetworkResourceLoadScheduler::scheduleLoader):
(WebKit::NetworkResourceLoadScheduler::hostForURL):
(WebKit::NetworkResourceLoadScheduler::removeLoader):
(WebKit::NetworkResourceLoadScheduler::receivedRedirect):
(WebKit::NetworkResourceLoadScheduler::servePendingRequests):
(WebKit::NetworkResourceLoadScheduler::removeScheduledLoaders):
(WebKit::NetworkResourceLoadScheduler::scheduleRemoveLoader):
* NetworkProcess/NetworkResourceLoadScheduler.h:
A new base class for all loaders that the scheduler and HostRecords might need to know about:
* NetworkProcess/SchedulableLoader.cpp:
(WebKit::SchedulableLoader::SchedulableLoader):
(WebKit::SchedulableLoader::~SchedulableLoader):
* NetworkProcess/SchedulableLoader.h:
(WebKit::SchedulableLoader::loadParameters):
(WebKit::SchedulableLoader::connectionToWebProcess):
(WebKit::SchedulableLoader::isSynchronous):
(WebKit::SchedulableLoader::setHostRecord):
(WebKit::SchedulableLoader::hostRecord):
Change to inherit from SchedulableLoader, removing some of the duplicated data and methods:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::connection):
(WebKit::NetworkResourceLoader::destinationID):
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::stop):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFail):
(WebKit::NetworkResourceLoader::willSendRequest):
(WebKit::NetworkResourceLoader::shouldUseCredentialStorage):
* NetworkProcess/NetworkResourceLoader.h:
(WebKit::NetworkResourceLoader::create):
Change to inherit from SchedulableLoader, removing some of the duplicated data and methods:
* NetworkProcess/SyncNetworkResourceLoader.cpp:
(WebKit::SyncNetworkResourceLoader::SyncNetworkResourceLoader):
(WebKit::SyncNetworkResourceLoader::start):
* NetworkProcess/SyncNetworkResourceLoader.h:
(WebKit::SyncNetworkResourceLoader::create):
(WebKit::SyncNetworkResourceLoader::isSynchronous):
Fold the WebProcess resource load identifier in with the load parameters:
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
(WebKit::NetworkResourceLoadParameters::identifier):
The identifier is preset in the WebProcess and doesn't come from the NetworkProcess,
so the message to schedule a load can now be asynchronous:
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
Update to include a WebProcess generated identifier along with synchronous loads:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebKit2.xcodeproj/project.pbxproj:
2013-01-18 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: CoordinatedTile::updateBackBuffer() returns a dirty rect.
https://bugs.webkit.org/show_bug.cgi?id=107196
Reviewed by Kenneth Rohde Christiansen.
Currently, CoordinatedTile::updateBackBuffer() always returns an empty vector.
This patch makes CoordinatedTile::updateBackBuffer() return a correct dirty rect.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp:
(WebKit::CoordinatedTile::updateBackBuffer):
2013-01-17 Tim Horton <timothy_horton@apple.com>
[WK2] Minimum layout width auto-sizing should use FrameView::enableAutoSizeMode so that it can shrink the viewport
https://bugs.webkit.org/show_bug.cgi?id=107200
<rdar://problem/12849029>
Reviewed by Simon Fraser.
Make use of FrameView's auto-size mode to allow WKView's computed intrinsic content
size to shrink below the current viewport size.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setMinimumLayoutWidth): Forward minimumLayoutWidth changes to WebPage.
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry): Remove minimumLayoutWidth argument on updateGeometry.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Enable auto-size mode on the new FrameView if needed.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::updateGeometry): Remove minimumLayoutWidth argument.
* WebProcess/WebPage/DrawingArea.messages.in: Remove minimumLayoutWidth argument on updateGeometry.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize m_minimumLayoutWidth to 0.
(WebKit::WebPage::setMinimumLayoutWidth): Keep track of minimumLayoutWidth on WebPage. Update auto-sizing state if needed.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::minimumLayoutWidth):
* WebProcess/WebPage/WebPage.messages.in: Add SetMinimumLayoutWidth.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea): Remove storage for m_minimumLayoutWidth. We can get it from WebPage instead.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged): Grab minimumLayoutWidth from WebPage.
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry): Don't setSize() if auto-sizing is enabled; FrameView will do the right thing.
2013-01-17 Jon Lee <jonlee@apple.com>
Do not track user interaction for plugins that are not snapshotted
https://bugs.webkit.org/show_bug.cgi?id=107211
<rdar://problem/12967277>
Reviewed by Dean Jackson.
When the user interacts with a snapshotted plug-in, we extend that plug-in origin's
expiration date. However, plug-ins may not be snapshotted for other reasons than the
user's initial opt-in. In this case, that plug-in's origin might be not be in the cached
table. This is an edge case that was not initially considered.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::plugInDidReceiveUserInteraction): Convert the assertion to an if
check, and return early if the entry is not found in the cache table.
2013-01-17 Alexey Proskuryakov <ap@apple.com>
REGRESSION (r139516): NetworkResourceLoadScheduler::receivedRedirect is not called.
Rubber-stamped by Brady Eidson.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::willSendRequest): Reverted a small part of r139516.
2013-01-17 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Remove redundant behaviors in LayerTreeRenderer.
https://bugs.webkit.org/show_bug.cgi?id=107084
Reviewed by Noam Rosenthal.
There are two changes.
1. It is redundant to call GraphicsLayer::removeFromParent() or
GraphicsLayer::removeAllChildren() before deleting GraphicsLayer, because the
destructor of GraphicsLayerTextureMapper removes a parent and all children.
2. LayerTreeRenderer::setRootLayerID() does not need to remove all children of
rootLayer because this method can be called only once.
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::deleteLayer):
(WebKit::LayerTreeRenderer::setRootLayerID):
(WebKit::LayerTreeRenderer::purgeGLResources):
2013-01-17 Timothy Hatcher <timothy@apple.com>
Make logging console messages to STDOUT work in WebKit2 via a new setting.
https://bugs.webkit.org/show_bug.cgi?id=107157
Reviewed by Joseph Pecoraro.
* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetLogsPageMessagesToSystemConsoleEnabled): Added.
(WKPreferencesGetLogsPageMessagesToSystemConsoleEnabled): Added.
* UIProcess/API/C/WKPreferencesPrivate.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::createInspectorPageGroup): Enable logging in debug builds.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Set new setting in WebCore.
2013-01-17 Brady Eidson <beidson@apple.com>
Each NetworkConnectionToWebProcess should keep its own map of NetworkResourceLoaders
https://bugs.webkit.org/show_bug.cgi?id=107166
Reviewed by Alexey Proskuryakov.
NetworkConnectionToWebProcess now keeps its own id->loader map so it can directly address them as needed:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier):
* NetworkProcess/NetworkConnectionToWebProcess.h:
NetworkResourceLoadScheduler no longer keeps an identifier -> loader map:
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::scheduleResourceLoad):
(WebKit::NetworkResourceLoadScheduler::removeLoadIdentifier):
* NetworkProcess/NetworkResourceLoadScheduler.h:
There is no longer such a thing as NetworkConnectionToWebProcessObserver:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::~NetworkResourceLoader):
(WebKit::NetworkResourceLoader::connectionToWebProcessDidClose):
* NetworkProcess/NetworkResourceLoader.h:
2013-01-17 Tim Horton <timothy_horton@apple.com>
Remove an incorrect ASSERT() after r140002.
Reviewed by Simon Fraser.
setRootCompositingLayer(null) is valid now.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
2013-01-17 Poul Sysolyatin <psytonx@gmail.com>
32-bit build for Qt5 on Mac OS fails.
https://bugs.webkit.org/show_bug.cgi?id=107094
We need to define NS_BUILD_32_LIKE_64 for 32-bit build for Mac OS.
Fixed 32-bit build detection for support Qt5.
Reviewed by Benjamin Poulain.
* Target.pri:
2013-01-17 Martin Robinson <mrobinson@igalia.com>
[GTK] Build with LevelDB when IndexedDB is enabled
https://bugs.webkit.org/show_bug.cgi?id=103220
Reviewed by Gustavo Noronha Silva.
* GNUmakefile.am: When IndexedDatabase is enabled add the leveldb convenience
library to the shared library link phase.
2013-01-17 Tim Horton <timothy_horton@apple.com>
[WK2] TiledCoreAnimationDrawingArea should unparent its layer tree when requested
https://bugs.webkit.org/show_bug.cgi?id=107108
<rdar://problem/12549879>
Reviewed by Darin Adler and Simon Fraser.
Currently, TiledCoreAnimationDrawingArea returns early if asked to unparent
its layer tree, to prevent flashing when switching tabs. We have new plans
to alleviate the flashing, but first, we should reinstate unparenting the root layer,
to allow underlying libraries to better manage the memory backing all compositing layers.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
2013-01-17 Tim Horton <timothy_horton@apple.com>
Fix the Mac build sans ENABLE(CSS_FILTERS)
Reviewed by Darin Adler.
Include FloatRect in RemoteGraphicsLayer.mm; it's included by chance currently,
via something that must be compiled out without CSS_FILTERS (or SVG, or shaders, or something).
* WebProcess/WebPage/mac/RemoteGraphicsLayer.mm:
2013-01-16 Alexey Proskuryakov <ap@apple.com>
Don't use NSApplication run loop in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=107061
Reviewed by Anders Carlsson.
Only WebProcess and PluginProcess should use Cocoa APIs that require the run loop.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializePluginProcess):
* WebProcess/mac/WebProcessMac.mm:
(WebKit::WebProcess::platformInitializeProcess):
2013-01-16 Alexey Proskuryakov <ap@apple.com>
Update sandbox rules after r128003
https://bugs.webkit.org/show_bug.cgi?id=106840
Reviewed by Darin Adler.
* WebProcess/com.apple.WebProcess.sb.in: Additional Lion only fixes.
2013-01-16 Sam Weinig <sam@webkit.org>
Make debug-safari --target-web-process work again
https://bugs.webkit.org/show_bug.cgi?id=107088
Reviewed by Anders Carlsson.
--target-web-process was made harder to use during recent refactoring
by requiring users to pass a -ui-process-name parameter in addition to
the -client-executable. Instead, we should conjure up that name from
the information we already have at our disposal.
* WebProcess/mac/WebProcessMainMac.mm:
(WebKit::WebProcessMainDelegate::getConnectionIdentifier):
Simplify by making the non-client-executable path use the base
class implementation.
(WebKit::WebProcessMainDelegate::getClientIdentifier):
Ditto.
(WebKit::WebProcessMainDelegate::getClientProcessName):
Added. Create a client process name (its actually not too important what it is, as it
is only used to show a name in Activity Monitor) from the passed in client executable
path.
2013-01-16 Sam Weinig <sam@webkit.org>
Fix crashes on the bots.
The WebKit LoaderStrategy for loading synchronously was only implemented
for the case where you have a network process. When you don't, we should
be using the base implementation.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
2013-01-16 Sam Weinig <sam@webkit.org>
Update Owners file.
* Owners:
2013-01-16 Sam Weinig <sam@webkit.org>
Remove unused AddLoadInProgress message
https://bugs.webkit.org/show_bug.cgi?id=107077
Reviewed by Dan Bernstein.
Dead code is dead.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
2013-01-16 Anders Carlsson <andersca@apple.com>
Fix crash when destroying a plug-in with pending URL requests
https://bugs.webkit.org/show_bug.cgi?id=107075
<rdar://problem/12513871>
Reviewed by Sam Weinig.
In PluginView::destroyPluginAndReset, make sure to cancel any outstanding URL requests since the PluginView
object will stay around and would otherwise start loading URLs from stopped plug-ins.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::Stream::start):
Assert that the plug-in is alive.
(WebKit::PluginView::destroyPluginAndReset):
Empty out the pending URL requests vector and stop the timer.
2013-01-16 Jaehun Lim <ljaehun.lim@samsung.com>
[EFL][WK2] PageUIClientEfl should keep in sync with WKPageUIClient
https://bugs.webkit.org/show_bug.cgi?id=107060
Reviewed by Benjamin Poulain.
Rearrange the order of functions in PageUIClientEfl.
Rename closePage() to close().
* UIProcess/API/efl/EwkViewImpl.cpp:
(EwkViewImpl::close):
* UIProcess/API/efl/EwkViewImpl.h:
(EwkViewImpl):
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::PageUIClientEfl):
(WebKit::PageUIClientEfl::close):
(WebKit::PageUIClientEfl::takeFocus):
(WebKit::PageUIClientEfl::focus):
(WebKit::PageUIClientEfl::unfocus):
(WebKit::PageUIClientEfl::getWindowFrame):
(WebKit::PageUIClientEfl::setWindowFrame):
(WebKit::PageUIClientEfl::createNewPage):
(WebKit::PageUIClientEfl::showColorPicker):
(WebKit::PageUIClientEfl::hideColorPicker):
* UIProcess/efl/PageUIClientEfl.h:
(PageUIClientEfl):
2013-01-16 Brady Eidson <beidson@apple.com>
Synchronous XMLHTTPRequests need to go to the NetworkProcess.
<rdar://problem/12951765> and https://bugs.webkit.org/show_bug.cgi?id=106826
Reviewed by Sam Weinig and Alexey Proskuryakov.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously): Entry point for WebCore to get
synchronous requests to the NetworkProcess.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): Create a SyncNetworkResourceLoader
and schedule it.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::scheduleSyncNetworkResourceLoader):
(WebKit::NetworkResourceLoadScheduler::servePendingRequestsForHost): Serve synchronous loaders
before async loaders.
* NetworkProcess/NetworkResourceLoadScheduler.h:
A class that encapsulates a synchronous load request and the CoreIPC reply to be made once it is complete:
* NetworkProcess/SyncNetworkResourceLoader.cpp: Added.
(WebKit::SyncNetworkResourceLoader::SyncNetworkResourceLoader):
(WebKit::SyncNetworkResourceLoader::start):
* NetworkProcess/SyncNetworkResourceLoader.h: Copied from Source/WebKit2/NetworkProcess/HostRecord.h.
(WebKit::SyncNetworkResourceLoader::create):
(WebKit::SyncNetworkResourceLoader::setIdentifier):
(WebKit::SyncNetworkResourceLoader::identifier):
(WebKit::SyncNetworkResourceLoader::loadParameters):
Add a second queue of sync loaders:
* NetworkProcess/HostRecord.h:
(WebKit::HostRecord::syncLoadersPending):
Add comments to explicitly spell out the current reliance on some messages that are currently synchronous:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::willSendRequest):
(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpace):
* WebKit2.xcodeproj/project.pbxproj:
2013-01-16 Alexey Proskuryakov <ap@apple.com>
WebProcess should not access ~/Library/Caches/com.apple.WebProcess
https://bugs.webkit.org/show_bug.cgi?id=107055
Reviewed by Anders Carlsson.
* WebProcess/com.apple.WebProcess.sb.in: Remove the rule allowing access.
* WebProcess/mac/WebProcessMac.mm: (WebKit::WebProcess::platformInitializeWebProcess):
Use a correct cache directory even if NetworkProcess is in use. Not all loading has
moved to this process yet.
2013-01-16 Anders Carlsson <andersca@apple.com>
Remove CoreIPCMessageKinds.h
https://bugs.webkit.org/show_bug.cgi?id=107048
Reviewed by Beth Dakin.
Use named IPC messages instead.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::sendSyncReply):
(CoreIPC::Connection::processIncomingMessage):
(CoreIPC::Connection::dispatchSyncMessage):
* Platform/CoreIPC/CoreIPCMessageKinds.h: Removed.
* Platform/CoreIPC/MessageID.h:
(MessageID):
(CoreIPC::MessageID::stripMostSignificantBit):
(CoreIPC::MessageID::operator==):
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::Connection::open):
(CoreIPC::Connection::receiveSourceEventHandler):
* WebKit2.xcodeproj/project.pbxproj:
2013-01-15 Jer Noble <jer.noble@apple.com>
Add a Setting to disable QTKit media engine.
https://bugs.webkit.org/show_bug.cgi?id=106972
Reviewed by Eric Carlson.
Add a WebKit2 API to access WebCore QTKitEnabled settings.
* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetQTKitEnabled): Pass through to WebCore.
(WKPreferencesGetQTKitEnabled): Ditto.
* UIProcess/API/C/WKPreferences.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Synchronize WebKit2/WebCore settings.
2013-01-16 Kiran Muppala <cmuppala@apple.com>
Groundwork to enable process suppression by default on Mac
https://bugs.webkit.org/show_bug.cgi?id=106513
Reviewed by Alexey Proskuryakov.
Process suppression has so far been controlled by a user default and
disabled by default. This patch provides the groundwork to enable it by
default and adds a private API to enable/disable it on a per-context
basis.
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::platformInitialize): Add comment about
initilization of application occlusion state.
* UIProcess/API/C/mac/WKContextPrivateMac.cpp: Added.
(WKContextGetProcessSuppressionEnabled):
(WKContextSetProcessSuppressionEnabled):
Add private API to enable/disable process suppression on a per-context
basis.
* UIProcess/API/C/mac/WKContextPrivateMac.h: Added.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didFinishLaunching): Check if owning
context has process suppression enabled before updating application
occlusion state.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching): Ditto.
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching): Check if
process suppression is enabled for global child processes before
updating application occlusion state.
* UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp:
(WebKit::SharedWorkerProcessProxy::didFinishLaunching): Ditto.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::create): Remove call to
initializeProcessSuppressionSupport, since platformInitialize has been
modified to perform initialization.
(WebKit::WebContext::WebContext): Initialize new member variable
m_processSuppressionEnabled to false.
* UIProcess/WebContext.h:
(WebKit::WebContext::processSuppressionEnabled): Remove "Support"
from the method name.
* UIProcess/mac/WebContextMac.mm:
(WebKit::updateGlobalChildProcessesApplicationOcclusionState):
(WebKit::applicationOcclusionStateChanged): Update the application
occlusion state of child processes having process suppresion enabled.
(WebKit::applicationBecameVisible):
(WebKit::applicationBecameOccluded):
Simplify by moving code to applicationOcclusionStateChanged.
(WebKit::registerOcclusionNotificationHandlers): Fix typos.
(WebKit::unregisterOcclusionNotificationHandlers): Add
method to unregister occlusion notification handlers when no context
has process suppression enabled.
(WebKit::enableOcclusionNotifications):
(WebKit::disableOcclusionNotifications):
(WebKit::enableProcessSuppressionForGlobalChildProcesses):
(WebKit::disableProcessSuppressionForGlobalChildProcesses):
(WebKit::processSuppressionIsEnabledForAnyContext):
(WebKit::processSuppressionIsEnabledForAllContexts):
(WebKit::WebContext::platformInitialize): Disable process suppression
for global child processes since process suppression is disabled for a
context on construction.
(WebKit::WebContext::setProcessSuppressionEnabled):
(WebKit::WebContext::updateChildProcessesApplicationOcclusionState):
(WebKit::WebContext::applicationIsOccluded):
(WebKit::WebContext::processSuppressionEnabledForGlobalChildProcesses):
(WebKit::WebContext::processSuppressionEnabledChanged): Update child
processes application occlusion state, enable/disable occlusion
notifications and enable/disable process suppression for global child
processes.
* WebKit2.xcodeproj/project.pbxproj:
2013-01-15 Anders Carlsson <andersca@apple.com>
Merge LayerTreeHostCA and LayerTreeHostMac
https://bugs.webkit.org/show_bug.cgi?id=106967
Reviewed by Sam Weinig.
There's no need to have a LayerTreeHostCA base class anymore, just merge it into LayerTreeHostMac.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/ca/LayerTreeHostCA.cpp: Removed.
* WebProcess/WebPage/ca/LayerTreeHostCA.h: Removed.
* WebProcess/WebPage/mac/LayerTreeHostMac.h:
(LayerTreeHostMac):
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::LayerTreeHostMac):
(WebKit::LayerTreeHostMac::~LayerTreeHostMac):
(WebKit::LayerTreeHostMac::layerTreeContext):
(WebKit::LayerTreeHostMac::setShouldNotifyAfterNextScheduledLayerFlush):
(WebKit):
(WebKit::LayerTreeHostMac::setRootCompositingLayer):
(WebKit::LayerTreeHostMac::invalidate):
(WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplay):
(WebKit::LayerTreeHostMac::scrollNonCompositedContents):
(WebKit::LayerTreeHostMac::forceRepaint):
(WebKit::LayerTreeHostMac::sizeDidChange):
(WebKit::LayerTreeHostMac::deviceScaleFactorDidChange):
(WebKit::LayerTreeHostMac::didInstallPageOverlay):
(WebKit::LayerTreeHostMac::didUninstallPageOverlay):
(WebKit::LayerTreeHostMac::setPageOverlayNeedsDisplay):
(WebKit::LayerTreeHostMac::pauseRendering):
(WebKit::LayerTreeHostMac::resumeRendering):
(WebKit::LayerTreeHostMac::setLayerHostingMode):
(WebKit::LayerTreeHostMac::notifyAnimationStarted):
(WebKit::LayerTreeHostMac::notifyFlushRequired):
(WebKit::LayerTreeHostMac::paintContents):
(WebKit::LayerTreeHostMac::deviceScaleFactor):
(WebKit::LayerTreeHostMac::flushLayers):
(WebKit::LayerTreeHostMac::initialize):
(WebKit::LayerTreeHostMac::performScheduledLayerFlush):
(WebKit::LayerTreeHostMac::flushPendingLayerChanges):
(WebKit::LayerTreeHostMac::createPageOverlayLayer):
(WebKit::LayerTreeHostMac::destroyPageOverlayLayer):
2013-01-15 Tim Horton <timothy_horton@apple.com>
Clamp TileCache visibleRect to WKView's visibleRect
https://bugs.webkit.org/show_bug.cgi?id=106601
<rdar://problem/12843164>
Reviewed by Simon Fraser.
Some clients expand the WKView to be much larger than what is visible on screen, and
control scrolling with their own view. Currently, we will create tiles for the entire
view, consuming a great deal of memory, and can sometimes factor scrollbars which can
never exist into layout. Piggyback on WKView SPI (the property minimumWidthForAutoLayout,
renamed from minimumLayoutWidth) to drop into a mode where we disable main frame scrolling
and respect the WKView's visibleRect when creating tiles.
* UIProcess/API/mac/WKView.mm:
(-[WKView setFrameSize:]): Update the page's viewExposedRect from our visibleRect.
(-[WKView _updateWindowAndViewFrames]): Update the page's viewExposedRect from our visibleRect.
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): The main frame is scrollable by default.
(-[WKView enableFrameSizeUpdates]): If frame size updates become enabled, update the
page's viewExposedRect from our visibleRect.
(-[WKView setMinimumLayoutWidth:]): Rename minimumLayoutWidth property to minimumWidthForAutoLayout.
Warn once if the old one is used.
(-[WKView minimumWidthForAutoLayout]):
(-[WKView setMinimumWidthForAutoLayout:]): Adjust the minimum layout width, whether the main frame
is scrollable, and update the page's viewExposedRect if needed.
* UIProcess/API/mac/WKViewPrivate.h: Added minimumWidthForAutoLayout property.
* UIProcess/WebPageProxy.h:
(WebPageProxy): Add viewExposedRectChanged/setMainFrameIsScrollable.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::viewExposedRectChanged): Forward viewExposedRectChanged to WebPage.
(WebKit::WebPageProxy::setMainFrameIsScrollable): Forward setMainFrameIsScrollable to WebPage.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Disable scrollbars and scrolling if
main frame scrollability is disabled.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::setExposedRect): Added empty default implementation.
(WebKit::DrawingArea::mainFrameScrollabilityChanged): Added empty default implementation.
(DrawingArea):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::windowAndViewFramesChanged): We don't need the WebCore:: namespace.
(WebKit::WebPage::viewExposedRectChanged): Forward exposed rect changes to DrawingArea (only TiledCoreAnimationDrawingArea cares, for now).
(WebKit::WebPage::setMainFrameIsScrollable): Forward scrollability changes to DrawingArea and the main FrameView.
(WebKit::WebPage::drawRectToImage): We don't need the WebCore:: namespace.
* WebProcess/WebPage/WebPage.h:
(WebPage): Add mainFrameIsScrollable, viewExposedRectChanged, setMainFrameIsScrollable, and storage for m_mainFrameIsScrollable.
(WebKit::WebPage::mainFrameIsScrollable):
* WebProcess/WebPage/WebPage.messages.in: Add ViewExposedRectChanged and SetMainFrameIsScrollable messages.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect): Forward new exposed rect to TiledBacking (only TileCache cares, for now).
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged): Ask TiledBacking to clip to the exposedRect if main frame scrolling is disabled.
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry): Use size instead of viewSize in case we've changed it because of m_minimumLayoutWidth.
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer): Update exposedRect and clipsToExposedRect.
2013-01-15 Enrica Casucci <enrica@apple.com>
Add a new set of WebKit2 APIs for text search and
search results management.
https://bugs.webkit.org/show_bug.cgi?id=106834.
<rdar://problem/12597159>
Reviewed by Simon Fraser.
Adding new API to perform text search in WebKit2 without using
the stock UI. The new interface provides all the information
necessary to write a custom UI for search. The main logic is
implemented in the new functions added to FindController.
Added new TextWebKitAPI test.
* UIProcess/API/C/WKPage.cpp:
(WKPageFindStringMatches): Added.
(WKPageGetImageForFindMatch): Added.
(WKPageSelectFindMatch): Added.
(WKPageSetPageFindMatchesClient): Added.
* UIProcess/API/C/WKPage.h: Added the new API definitions.
* UIProcess/WebFindClient.cpp: Added new client callbacks.
(WebKit::WebFindMatchesClient::didFindStringMatches):
(WebKit::WebFindMatchesClient::didGetImageForMatchResult):
* UIProcess/WebFindClient.h:
(WebFindMatchesClient): Added.
* UIProcess/WebPageProxy.cpp: Added proxy methods.
(WebKit::WebPageProxy::initializeFindMatchesClient):
(WebKit::WebPageProxy::findStringMatches):
(WebKit::WebPageProxy::getImageForFindMatch):
(WebKit::WebPageProxy::selectFindMatch):
(WebKit::WebPageProxy::didGetImageForFindMatch):
(WebKit::WebPageProxy::didFindStringMatches):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::findStringMatches): Finds all the matching
text according to the find options. All the matching text ranges are
stored in a vector until the next call to findStringMatches or until
hideFindUI is called. The message that is sent back to the UI process
contains a vector containing an entry for each find match (i.e. for each
range) and each entry is represented by a vector of the corresponding
text rects. It also returns the index in the vector of matches corresponding
to the first match after the user selection.
If there is no selection the index is always 0 and if there are no
matches after the user selection, the index returned is -1.
(WebKit::FindController::getFindIndicatorBitmapAndRect): Helper function
to share code between updateFindIndicator and getImageForFindMatch.
(WebKit::FindController::getImageForFindMatch): Creates the image corresponding
to the text matched at the given match index.
(WebKit::FindController::selectFindMatch): creates a selection for the range
corresponding to the given match index.
(WebKit::FindController::hideFindUI): Added logic to clear the vector
of matched ranges.
(WebKit::FindController::updateFindIndicator): Updated to use the
new helper function getFindIndicatorBitmapAndRect.
* WebProcess/WebPage/FindController.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::findStringMatches):
(WebKit::WebPage::getImageForFindMatch):
(WebKit::WebPage::selectFindMatch):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2013-01-15 Anders Carlsson <andersca@apple.com>
Rename LayerTreeHostCAMac to LayerTreeHostMac.
Rubber-stamped by Deth Bakin.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/LayerTreeHost.cpp:
* WebProcess/WebPage/mac/LayerTreeHostMac.h: Renamed from Source/WebKit2/WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h.
* WebProcess/WebPage/mac/LayerTreeHostMac.mm: Renamed from Source/WebKit2/WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm.
2013-01-15 Dominik Röttsches <dominik.rottsches@intel.com>
[CoordinatedGraphics] Deadlock when running abspos-child-container-changes-from-relative-to-static.html
https://bugs.webkit.org/show_bug.cgi?id=106884
Reviewed by Benjamin Poulain.
We need to return false if m_waitingForUIProcess is true since otherwise
we'll not really repaint in performScheduledLayerFlush() and the
UI process will wait forever. Returning false leads to executing the layer flush
synchronously and immediately, then acknowledging the
callback to the WebProcess - which resolves the deadlock.
* WebProcess/WebPage/CoordinatedG