blob: 4f017cbab812e2e93c87f9096e5cc439927ce8a2 [file] [log] [blame]
2013-10-31 Alexey Proskuryakov <ap@apple.com>
Enable WebCrypto on Mac
https://bugs.webkit.org/show_bug.cgi?id=123587
Reviewed by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig: Do it.
2013-10-31 Sergio Correia <sergio.correia@openbossa.org>
[WK2] Convert SeccompFilters to using unique_ptr instead of OwnPtr/PassOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=122883
Reviewed by Darin Adler.
* Shared/linux/SeccompFilters/OpenSyscall.cpp:
(WebKit::OpenSyscall::createFromOpenatContext):
(WebKit::OpenSyscall::createFromCreatContext):
(WebKit::OpenSyscall::execute):
* Shared/linux/SeccompFilters/OpenSyscall.h:
* Shared/linux/SeccompFilters/SeccompBroker.cpp:
(WebKit::SIGSYSHandler):
(WebKit::SeccompBrokerClient::dispatch):
(WebKit::SeccompBroker::runLoop):
* Shared/linux/SeccompFilters/SigactionSyscall.cpp:
(WebKit::SigactionSyscall::createFromContext):
* Shared/linux/SeccompFilters/SigactionSyscall.h:
* Shared/linux/SeccompFilters/SigprocmaskSyscall.cpp:
(WebKit::SigprocmaskSyscall::createFromContext):
* Shared/linux/SeccompFilters/SigprocmaskSyscall.h:
* Shared/linux/SeccompFilters/Syscall.cpp:
(WebKit::Syscall::createFromContext):
(WebKit::Syscall::createFromDecoder):
(WebKit::SyscallResult::createFromDecoder):
* Shared/linux/SeccompFilters/Syscall.h:
* Shared/linux/SeccompFilters/SyscallPolicy.cpp:
2013-10-31 Gavin Barraclough <barraclough@apple.com>
Change WebPage, WebPageProxy, WebPageCreationParameters to use ViewState
https://bugs.webkit.org/show_bug.cgi?id=123379
Reviewed by Darin Adler.
Visibility state of the Page should be stored and communicated consistently.
Remove individual visibility flags from WebPageProxy, WebPageCreationParameters,
and replace them with a ViewState, and add a ViewState member to WebPage.
Merge together all messages that convey and individual aspect of the ViewState.
Restructure WebPageProxy::viewStateDidChange to break the operation down into
three steps: 1) update m_viewState, 2) send the new ViewState to the WebProcess,
and 3) perform any further work necessary in the UIProcess.
This patch fixes a problem that if the web process crashes m_isVisible &
m_isInWindow in WebPageProxy were not updated, and could have held stale values
on reattach.
In WebPage, add a new message to update the entire ViewState - diff the prior
value against the new one to detect changes, call existing methods accordingly.
* Shared/ViewState.h:
- Add constants 'Reset', 'AllFlags'
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
- Removed boolean visibility flags, added viewState.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
- Constructor calls updateViewState to initialize m_viewState.
(WebKit::WebPageProxy::reattachToWebProcess):
- ViewStaet is not updated while detatched; recalculate.
(WebKit::WebPageProxy::initializeWebPage):
- m_isVisible -> isViewVisible()
(WebKit::WebPageProxy::updateViewState):
- Added, update m_viewState by querying the page client.
(WebKit::WebPageProxy::viewStateDidChange):
- Restructured to use m_viewState, reordered to combine messages.
(WebKit::WebPageProxy::creationParameters):
- Removed boolean visibility flags, added viewState.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isInWindow):
(WebKit::WebPageProxy::isViewVisible):
- Removed boolean visibility flags, added viewState.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
- initial state now passed as a ViewState.
(WebKit::WebPage::setIsInWindow):
- Remove code to send reply (this is handled by setViewState).
(WebKit::WebPage::setViewState):
- Set m_viewState - diff from prior & call methods to update.
* WebProcess/WebPage/WebPage.h:
- Added setViewState, m_viewState.
* WebProcess/WebPage/WebPage.messages.in:
- Add SetViewState, remove individual messages.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
- initial state now passed as a ViewState.
2013-10-30 Gavin Barraclough <barraclough@apple.com>
WebPageCreationParameters should be consistent in Window.open
https://bugs.webkit.org/show_bug.cgi?id=123557
Reviewed by Sam Weinig.
When Window.open in called in WebKit2 the WebProcess sends a synchronous request to open
a page (WebPageProxy::createNewPage). The UIProcess creates a WebpageProxy, and responds
with instructions to the WebProcess to create the WebPage. The initial creation state of
the WebPage is communicated to the WebProcess via two routes (firstly an asynchronous
WebProcess::CreateWebPage message, and secondly in the synchronous response from
WebPageProxy::createNewPage). Unfortunately these responses are inconsistent with each
other. The creationParameters() for the page are calculated twice, and since the WKView
will be added to a window between the async message being sent and the synchronous reply
being returned the visibility state of the page can change.
To fix the inconsistency we can set the creation parameters at the point that the
WebPageProxy is instantiated. This will result in a functional change that is web
visible, since the page will initially be opened in a hidden/blurred state, and may
later become visible/focussed. This change is consistent with the direction we want to
evolve in. Whilst we will still probably require a synchronous message from the
WebProcess to the UIProcess on Window.open, we'll probably make this return much earlier
– having just created the WebPageProxy, but avoiding blocking the WebProcess over the
client delegate callback that opens the new window.
This fix results in a layout test result change, due to the change in behavior (page is
created blurred, and becomes focussed, resulting in a focus event being fired – rather
than the window opening directly into a focussed state). This is reported as a
progression (test is broken in WebKit1, fixed in WebKit2 after this change). In reality
the test is actually slightly broken in DRT/test-runner – the test runs differently than
in browser, since there is is no visible main window. In-browser this patch results in
no change in behavior on dom/Window/mozilla-focus-blur.html (the affected test).
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage):
- call initializeCreationParameters
(WebKit::WebPageProxy::initializeCreationParameters):
- calculate m_creationParameters
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::creationParameters):
- Added m_creationParameters, initializeCreationParameters,
creationParameters returns m_creationParameters
2013-10-31 Philippe Normand <pnormand@igalia.com>
[WK2][GTK] enable-media-stream Setting
https://bugs.webkit.org/show_bug.cgi?id=123145
Reviewed by Anders Carlsson.
* Shared/WebPreferencesStore.h: New MediaStreamEnabled boolean preference.
* UIProcess/API/C/WKPreferences.cpp: MediaStreamEnabled getter and
setter functions.
(WKPreferencesSetMediaStreamEnabled):
(WKPreferencesGetMediaStreamEnabled):
* UIProcess/API/C/WKPreferences.h:
* UIProcess/API/gtk/WebKitSettings.cpp: Add a enable-media-stream
property to the GTK WebKitSettings class. It will act as a facade
to the MediaStreamEnabled preference.
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_enable_media_stream):
(webkit_settings_set_enable_media_stream):
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettings): Test enable-media-stream websetting.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
Allow WKTR to override the MediaStreamEnabled preference.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Update MediaStreamEnabled
along with the other settings.
2013-10-30 Brady Eidson <beidson@apple.com>
IDB Database versions are uint64_t, not int64_t
https://bugs.webkit.org/show_bug.cgi?id=123556
Reviewed by Alexey Proskuryakov.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::open):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
(WebKit::WebProcessIDBDatabaseBackend::openConnection):
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
2013-10-30 Dan Bernstein <mitz@apple.com>
Fixed a potential race condition around the initializtion of WKObject’s target.
Reviewed by Mark Rowe.
* Shared/Cocoa/WKObject.mm:
(initializeTargetIfNeeded): Removed the early return if _target is non-nil. As Mark pointed
out, when stores are reordered relative to other stores, it is possible for the early return
to occur while the object _target is pointing to is not yet valid.
2013-10-30 Ryosuke Niwa <rniwa@webkit.org>
Remove code for Mac Lion
https://bugs.webkit.org/show_bug.cgi?id=123542
Reviewed by Anders Carlsson.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* UIProcess/API/mac/WKView.mm:
(-[WKView viewWillMoveToWindow:]):
* WebProcess/com.apple.WebProcess.sb.in:
2013-10-30 Dan Bernstein <mitz@apple.com>
Try to fix the !WK_API_ENABLED Mac build.
* Shared/Cocoa/APIObject.mm:
2013-10-30 Dan Bernstein <mitz@apple.com>
[Cocoa] Make all API objects have Cocoa wrappers, and delegate refcounting to those wrappers
https://bugs.webkit.org/show_bug.cgi?id=123394
Reviewed by Darin Adler.
All wrappers conform to a new WKObject protocol and contain the wrapped object inline.
APIObject-derived classes override operator new to call newObject, which allocates the
wrapper and returns a pointer to the inline API object.
There are three kinds of wrapper classes: (a) classes that inherit directly from NSObject
and implement their API by calling the wrapped object (example: WKBackForwardList),
(b) internal classes that inherit from a class cluster, and implement the primitive methods
of the class cluster by calling the wrapped object (example: WKNSArray), and (c) internal
classes that inerit from the new WKObject class, and proxy to an object of some public type,
which is created from the wrapped object (example: WKNSURL).
* Shared/APIObject.h:
(WebKit::APIObject::wrapper): Added this getter.
(WebKit::TypedAPIObject::operator new): Added override that calls newObject.
* Shared/Cocoa/APIObject.mm: Added.
(WebKit::APIObject::ref): Retains the wrapper.
(WebKit::APIObject::deref): Releases the wrapper. When the wrapper is deallocated, it calls
the API object destructor.
(WebKit::APIObject::newObject): Allocates the wrapper and returns a pointer to the API
object inside the wrapper.
* Shared/Cocoa/WKNSArray.h:
(WebKit::wrapper): Added. Returns an ImmutableArray’s wrapper as an NSArray.
Replaced the RefPtr<ImmutableArray> ivar with space for an ImmutableArray to live inside
the wrapper.
(-[WKNSArray dealloc]): Calls the ImmutableArray destructor.
(-[WKNSArray count]): Updated for ivar change.
(-[WKNSArray objectAtIndex:]): Ditto.
(-[WKNSArray _apiObject]): Returns the wrapped ImmutableArray.
* Shared/Cocoa/WKNSObjectExtras.h: Removed.
* Shared/Cocoa/WKNSObjectExtras.mm: Removed.
* Shared/Cocoa/WKNSString.h: Added.
* Shared/Cocoa/WKNSString.mm: Added.
(-[WKNSString _web_createTarget]): Override this WKObject method to create an NSString from
the WebString.
(-[WKNSString copyWithZone:]): Retains self.
* Shared/Cocoa/WKNSURL.h: Added.
* Shared/Cocoa/WKNSURL.mm: Added.
(-[WKNSURL _web_createTarget]): Override this WKObject method to create an NSURL from
the WebURL.
(-[WKNSURL copyWithZone:]): Retains self.
* Shared/Cocoa/WKObject.h: Added.
* Shared/Cocoa/WKObject.mm: Added.
(-[WKObject dealloc]): Calls the destructor of the wrapped object and releases the target
object.
(initializeTargetIfNeeded): Helper function. Tries to create the target exactly once.
(-[WKObject isEqual:]): NSObject override that creates and compares to the target
object if necessary.
(-[WKObject hash]): NSObject override that creates and hashes the target object if
there is one.
(-[WKObject isKindOfClass:]): NSObject override that delegates to the target object.
(-[WKObject isMemberOfClass:]): Ditto.
(-[WKObject respondsToSelector:]): NSObject override that creates the target object if
necessary and returns whether it or self responds to the selector.
(-[WKObject conformsToProtocol:]): Similarly for protocols.
(-[WKObject forwardingTargetForSelector:]): NSObject override that creates the target object
if necessary and returns it as the target.
(-[WKObject description]): NSObject override that creates the target object if necessary and
forwards to it.
(-[WKObject _web_createTarget]): Added. The base implementation returns nil.
(-[WKObject _apiObject]): Returns the wrapped object.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(-[WKBrowsingContextController backForwardList]): Changed to return the existing wrapper.
(didChangeBackForwardList): Changed to use existing wrappers.
Replaced the RefPtr<WebBackForwardList> ivar with space for a WebBackForwardList to live
inside the wrapper.
(-[WKBackForwardList dealloc]): Call the WebBackForwardList destructor.
(toWKBackForwardListItem): Changed to us the existing wrapper.
(-[WKBackForwardList currentItem]): Updated for ivar change.
(-[WKBackForwardList backItem]): Ditto.
(-[WKBackForwardList forwardItem]): Ditto.
(-[WKBackForwardList itemAtIndex:]): Ditto.
(-[WKBackForwardList backListCount]): Ditto.
(-[WKBackForwardList forwardListCount]): Ditto,
(-[WKBackForwardList backListWithLimit:]): Ditto, and also changed to use the
ImmutableArray’s existing wrapper.
(-[WKBackForwardList forwardListWithLimit:]): Ditto.
(-[WKBackForwardList _apiObject]): Returns the WebBackForwardListItem.
* UIProcess/Cocoa/WKBackForwardListInternal.h:
(WebKit::wrapper): Added. Returns a WebBackForwardList’s wrapper as a WKBackForwardList.
* UIProcess/Cocoa/WKBackForwardListItem.mm:
Replaced the RefPtr<WebBackForwardListItem> ivar with space for a WebBackForwardListItem to
live inside the wrapper.
(-[WKBackForwardListItem dealloc]): Call the WebBackForwardListItem destructor.
(-[WKBackForwardListItem URL]): Updated for ivar change, and changed to make an NSURL
directly instead of going through a wrapper.
(-[WKBackForwardListItem title]): Updated for ivar change, and changed to use
String’s operator NSString*.
(-[WKBackForwardListItem originalURL]): Updated for ivar change, and changed to make an
NSURL directly instead of going through a wrapper.
(-[WKBackForwardListItem _apiObject]): Returns the WebBackForwardListItem.
(-[WKBackForwardListItem _item]): Ditto.
* UIProcess/Cocoa/WKBackForwardListItemInternal.h:
(WebKit::wrapper): Added. Returns a WebBackForwardListItem’s wrapper as a
WKBackForwardListItem.
* UIProcess/WebColorPickerResultListenerProxy.h: Changed into a TypedAPIObject.
* UIProcess/WebFormSubmissionListenerProxy.h:
(WebKit::WebFormSubmissionListenerProxy::operator new): Override to call newObject.
* UIProcess/WebFramePolicyListenerProxy.h:
(WebKit::WebFramePolicyListenerProxy::operator new): Ditto.
* WebKit2.xcodeproj/project.pbxproj: Updated for file additions and removals.
2013-10-30 Anders Carlsson <andersca@apple.com>
Begin fleshing out an API test for WKRemoteObjectRegistry
https://bugs.webkit.org/show_bug.cgi?id=123531
Reviewed by Andreas Kling.
* Shared/API/Cocoa/WKRemoteObjectInterface.h:
Add WK_API_CLASS annotation.
* Shared/API/Cocoa/WKRemoteObjectRegistry.h:
Add WK_API_CLASS annotation.
* Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
Add a WebConnection ivar.
(-[WKRemoteObjectRegistry _initWithConnectionRef:]):
Add SPI to create an WKRemoteObjectRegistry object with an existing WKConnectionRef.
(-[WKRemoteObjectRegistry _handleMessageWithName:body:]):
Add SPI that will be used to process incoming messages from an existing WKConnectionRef.
* Shared/API/Cocoa/WKRemoteObjectRegistryPrivate.h: Added.
Add SPI header.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
2013-10-30 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Lots of ASSERT(m_children.isEmpty()); on Poster Circle
https://bugs.webkit.org/show_bug.cgi?id=123517
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::setSublayers):
When setting our list of sublayers, remove all of the new layers from
their parents first.
2013-10-30 Antti Koivisto <antti@apple.com>
Add debug settings for simple line layout
https://bugs.webkit.org/show_bug.cgi?id=123514
Reviewed by Andreas Kling.
Expose debug settings.
* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSimpleLineLayoutEnabled):
(WKPreferencesGetSimpleLineLayoutEnabled):
(WKPreferencesSetSimpleLineLayoutDebugBordersEnabled):
(WKPreferencesGetSimpleLineLayoutDebugBordersEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2013-10-30 Anders Carlsson <andersca@apple.com>
Add stubbed out WKRemoteObjectRegistry class
https://bugs.webkit.org/show_bug.cgi?id=123512
Reviewed by Andreas Kling.
Also add a WKRemoteObjectInterface class that represents a remote object interface.
* Shared/API/Cocoa/WKRemoteObjectInterface.h: Added.
* Shared/API/Cocoa/WKRemoteObjectInterface.mm: Added.
(-[WKRemoteObjectInterface initWithProtocol:identifier:]):
(+[WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]):
* Shared/API/Cocoa/WKRemoteObjectRegistry.h: Added.
* Shared/API/Cocoa/WKRemoteObjectRegistry.mm: Added.
(-[WKRemoteObjectRegistry registerExportedObject:interface:]):
(-[WKRemoteObjectRegistry unregisterExportedObject:interface:]):
(-[WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
* WebKit2.xcodeproj/project.pbxproj:
2013-10-30 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] webkit_web_context_allow_tls_certificate_for_host doc is missing Since tag
https://bugs.webkit.org/show_bug.cgi?id=123499
Reviewed by Philippe Normand.
* UIProcess/API/gtk/WebKitWebContext.cpp: Add Since: 2.4.
2013-10-29 Alexey Proskuryakov <ap@apple.com>
Result of focus-option-control-on-page.html depends on system preferences
https://bugs.webkit.org/show_bug.cgi?id=123304
Reviewed by Simon Fraser.
* UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
(-[WKFullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]):
Read the preference from its correct domain. This doesn't affect behavior in practice
and isn't part of the fix, but it's a good opportunity to correct this code.
2013-10-29 Brady Eidson <beidson@apple.com>
Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface
https://bugs.webkit.org/show_bug.cgi?id=123483
Reviewed by Andreas Kling.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::createCursorBackend): Stubbed out.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
(WebKit::WebProcessIDBDatabaseBackend::factoryBackend): Stubbed out.
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
2013-10-29 Jer Noble <jer.noble@apple.com>
[MSE] [Mac] Enable MediaSource on the Mac
https://bugs.webkit.org/show_bug.cgi?id=122484
Reviewed by Darin Adler.
Enable ENABLE_MEDIA_SOURCE.
* Configurations/FeatureDefines.xcconfig:
2013-10-29 Tim Horton <timothy_horton@apple.com>
More correct build fix after 158223.
Only fails in release because it's inline.
Include the relevant header to get the function.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
2013-10-29 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Support tiled drawing and use it for the main frame
https://bugs.webkit.org/show_bug.cgi?id=123422
Reviewed by Simon Fraser.
Add a PlatformCALayerRemote subclass that behaves similarly to
WebTiledBackingLayer, forwarding relevant things (setNeedsDisplay, etc.)
to the TileController which it owns.
Teach the remote layer tree code enough to proxy these layers across,
and paint them in a manner similar to WebSimpleLayer (just calling
straight back to the TileController to paint).
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::commit):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::setEdgeAntialiasingMask):
Add support for adjusting/encoding/decoding/dumping/applying edgeAntialiasingMask.
(WebKit::RemoteLayerTreeTransaction::dump):
Drive-by fix dumping of created layers to have one layer per line.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
Create CALayers for Simple, TiledBacking, PageTiledBacking, and TiledBackingTile layers.
* WebKit2.xcodeproj/project.pbxproj:
Add PlatformCALayerRemoteTiledBacking.{h, cpp}.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::create):
Create a PlatformCALayerRemoteTiledBacking for TiledBacking and PageTiledBacking layers.
(PlatformCALayerRemote::removeAllSublayers):
Fix removeAllSublayers to make a copy of the PlatformCALayerList before
mutating it, to avoid crashes when iterating a mutated list.
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
Definalize PlatformCALayerRemote so we can have PlatformCALayerRemoteTiledBacking.
Note that we will use a tiled backing layer in some cases.
Make the constructor protected, not private, so our subclass can use it.
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp: Added.
(PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
(PlatformCALayerRemoteTiledBacking::~PlatformCALayerRemoteTiledBacking):
(PlatformCALayerRemoteTiledBacking::setNeedsDisplay):
(PlatformCALayerRemoteTiledBacking::customSublayers):
(PlatformCALayerRemoteTiledBacking::setBounds):
(PlatformCALayerRemoteTiledBacking::isOpaque):
(PlatformCALayerRemoteTiledBacking::setOpaque):
(PlatformCALayerRemoteTiledBacking::acceleratesDrawing):
(PlatformCALayerRemoteTiledBacking::setAcceleratesDrawing):
(PlatformCALayerRemoteTiledBacking::setContentsScale):
(PlatformCALayerRemoteTiledBacking::setBorderWidth):
(PlatformCALayerRemoteTiledBacking::setBorderColor):
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h: Added.
Add a subclass of PlatformCALayerRemote which forwards operations
to TileController, very similar to what WebTiledBackingLayer does.
It also owns the TileController, and overrides customSublayers() and
tiledBacking() to return the right thing.
* WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::display):
Teach RemoteLayerBackingStore about how to paint different kinds of layers.
Simple layers and Tile layers will call paintContents directly,
WebLayers will do what WebLayer does and use drawLayerContents.
Other kinds of layers won't paint at all right now.
I would like to centralize this behavior (and get rid of our CALayer
subclasses entirely, moving all that behavior to be shared between Mac,
Windows, and the remote layer tree), but that is a patch for another day.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::shouldUseTiledBackingForFrameView):
Force accelerated compositing on always when using the remote layer tree.
Use a TiledBacking for the main frame.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
Drive-by OVERRIDE.
2013-10-29 Brady Eidson <beidson@apple.com>
Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform.
https://bugs.webkit.org/show_bug.cgi?id=123451
Reviewed by Andreas Kling.
Stub out more pure virtual methods.
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
(WebKit::WebProcessIDBDatabaseBackend::backingStore):
(WebKit::WebProcessIDBDatabaseBackend::id):
(WebKit::WebProcessIDBDatabaseBackend::addObjectStore):
(WebKit::WebProcessIDBDatabaseBackend::removeObjectStore):
(WebKit::WebProcessIDBDatabaseBackend::addIndex):
(WebKit::WebProcessIDBDatabaseBackend::removeIndex):
(WebKit::WebProcessIDBDatabaseBackend::metadata):
(WebKit::WebProcessIDBDatabaseBackend::setCurrentVersion):
(WebKit::WebProcessIDBDatabaseBackend::hasPendingSecondHalfOpen):
(WebKit::WebProcessIDBDatabaseBackend::setPendingSecondHalfOpen):
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
2013-10-29 Gavin Barraclough <barraclough@apple.com>
SessionState.h should not include WebBackForwardList.h
https://bugs.webkit.org/show_bug.cgi?id=123454
Reviewed by Geoff Garen.
WebBackForwardList is a UIProcess type, SessionState is in shared code.
Also, WebBackForwardListItemVector should be in WebBackForwardListItem.h, not WebBackForwardList.h
(the vector type is used in the WebProcess, the item header is shared but the list type is in the UIProcess).
* Shared/SessionState.cpp:
- fixed includes
* Shared/SessionState.h:
- WebBackForwardList.h -> WebBackForwardListItem.h
* Shared/WebBackForwardListItem.h:
- Moved WebBackForwardListVector from WebBackForwardList.h
* Shared/WebPageCreationParameters.h:
- fixed includes
* UIProcess/WebBackForwardList.h:
- Moved WebBackForwardListVector to WebBackForwardListItem.h
* WebProcess/WebPage/DrawingArea.cpp:
- fixed includes
* WebProcess/WebPage/WebPage.cpp:
- fixed includes
2013-10-29 Zan Dobersek <zdobersek@igalia.com>
Unreviewed Mac debug build fix after r158183.
Remove the duplicated << overloaded operator from RemoteLayerTreeTextStream for printing out
a given FloatSize object. The RemoteLayerTreeTextStream inherits from TextStream, which already
provides that overloaded operator. Format of the output is a bit different so hopefully nothing
breaks further.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
2013-10-28 Brady Eidson <beidson@apple.com>
Refactor IDB factory creation.
https://bugs.webkit.org/show_bug.cgi?id=123347
Reviewed by Andreas Kling.
- Rework how database directory location is passed around.
- Make (some) SecurityOrigin arguments be references instead of pointers.
- Add two SecurityOrigin arguments to opening databases for future use.
* Shared/Databases/IndexedDB/IDBUtilities.cpp:
(WebKit::uniqueDatabaseIdentifier):
* Shared/Databases/IndexedDB/IDBUtilities.h:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::WebIDBFactoryBackend):
(WebKit::WebIDBFactoryBackend::open):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
(WebKit::WebIDBFactoryBackend::create):
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
(WebKit::WebProcessIDBDatabaseBackend::WebProcessIDBDatabaseBackend):
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createIDBFactoryBackend):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2013-10-28 Tim Horton <timothy_horton@apple.com>
Make TileController create the appropriate PlatformCALayer subclasses
https://bugs.webkit.org/show_bug.cgi?id=123418
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::createCompatibleLayer):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
Add createCompatibleLayer and implement it in the subclasses.
2013-10-28 Benjamin Poulain <benjamin@webkit.org>
Rename applyPageScaleFactorInCompositor to delegatesPageScaling
https://bugs.webkit.org/show_bug.cgi?id=123417
Reviewed by Simon Fraser.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUseFixedLayout):
2013-10-28 Myles C. Maxfield <mmaxfield@apple.com>
Parsing support for -webkit-text-decoration-skip: ink
https://bugs.webkit.org/show_bug.cgi?id=123358
Reviewed by Dean Jackson.
Adding ENABLE(CSS3_TEXT_DECORATION)
* Configurations/FeatureDefines.xcconfig:
2013-10-28 Tim Horton <timothy_horton@apple.com>
Make TileController manipulate PlatformCALayers instead of CALayers
https://bugs.webkit.org/show_bug.cgi?id=123279
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::dump):
Support the new LayerTypes.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::setEdgeAntialiasingMask):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
Add an empty implementation of setEdgeAntialiasingMask.
* WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::display):
Removed a parameter from drawLayerContents.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateDebugInfoLayer):
TiledCoreAnimationDrawingArea still operates in terms of CALayers, so
grab the PlatformLayer out from TileController's indicator.
2013-10-28 Bastien Nocera <hadess@hadess.net>
Name all the GLib timeout sources
https://bugs.webkit.org/show_bug.cgi?id=123229
Reviewed by Anders Carlsson.
Give a name to GLib timeout sources, this is helpful when
profiling WebKitGTK applications.
2013-10-28 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.am: Add messages.in files in
UIProcess/Network/CustomProtocols/ to EXTRA_DIST.
* GNUmakefile.list.am: Remove
WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp from
compilation because it depends on code generated only when
database process is enabled.
2013-10-28 Alberto Garcia <berto@igalia.com>
[WK2] [GTK] Allow running the web process with an arbitrary prefix command
https://bugs.webkit.org/show_bug.cgi?id=123201
Reviewed by Carlos Garcia Campos.
Launch the web process using WEB_PROCESS_CMD_PREFIX as a
prefix. Useful for debugging the web process with gdb, valgrind,
etc.
* UIProcess/Launcher/ProcessLauncher.h:
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/gtk/WebProcessProxyGtk.cpp:
(WebKit::WebProcessProxy::platformGetLaunchOptions):
2013-10-27 Brady Eidson <beidson@apple.com>
WebIconDatabase can miss private browsing state changes.
<rdar://problem/15322318> and https://bugs.webkit.org/show_bug.cgi?id=123375
Reviewed by Alexey Proskuryakov.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::willStartUsingPrivateBrowsing): Call setAnyPageGroupMightHavePrivateBrowsingEnabled(true) on each context.
(WebKit::WebContext::willStopUsingPrivateBrowsing): Call setAnyPageGroupMightHavePrivateBrowsingEnabled(false) on each context.
(WebKit::WebContext::setPrivateBrowsingEnabled): In addition to notifying other processes about private browsing
sessions, notify the context’s WebIconDatabase about the change in value.
* UIProcess/WebContext.h:
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::setDatabasePath): Prime the IconDatabase with an initial private browsing value.
(WebKit::WebIconDatabase::setAnyPageGroupMightHavePrivateBrowsingEnabled):
* UIProcess/WebIconDatabase.h:
2013-10-26 Tim Horton <timothy_horton@apple.com>
[mac] Remove WebTiledLayer
https://bugs.webkit.org/show_bug.cgi?id=123395
Reviewed by Anders Carlsson.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
Remove synchronouslyDisplayTilesInRect.
2013-10-26 Dan Bernstein <mitz@apple.com>
[Cocoa] -[WKBackForwardList forwardItem] returns the back item
https://bugs.webkit.org/show_bug.cgi?id=123391
Reviewed by Mark Rowe.
* UIProcess/Cocoa/WKBackForwardList.mm:
(-[WKBackForwardList forwardItem]): Changed back to forward.
2013-10-26 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r158075.
http://trac.webkit.org/changeset/158075
https://bugs.webkit.org/show_bug.cgi?id=123389
Broke WebKit2.PrivateBrowsingPushStateNoHistoryCallback API
test (Requested by ap on #webkit).
* UIProcess/WebContext.cpp:
(WebKit::WebContext::willStartUsingPrivateBrowsing):
(WebKit::WebContext::willStopUsingPrivateBrowsing):
* UIProcess/WebContext.h:
* UIProcess/WebIconDatabase.cpp:
* UIProcess/WebIconDatabase.h:
2013-10-26 Jae Hyun Park <jae.park@company100.net>
Remove Coordinated Graphics bits from DrawingAreaProxyImpl
https://bugs.webkit.org/show_bug.cgi?id=123382
Reviewed by Anders Carlsson.
As of r156861, Coordinated Graphics does not use DrawingAreaProxyImpl.
So, Coordinated Graphics bits should be removed from DrawingAreaProxyImpl.
* UIProcess/DrawingAreaProxyImpl.h:
2013-10-26 Dan Bernstein <mitz@apple.com>
[Cocoa] clang static analyzer warns about object being autoreleased too many times in +[WKNSArray web_arrayWithImmutableArray:]
https://bugs.webkit.org/show_bug.cgi?id=123384
Reviewed by Mark Rowe.
* Shared/Cocoa/WKNSArray.h: Annotated -web_initWithImmutableArray: as an init method.
2013-10-25 Csaba Osztrogonác <ossy@webkit.org>
Fix the ENABLE(CSS_FILTERS) && USE(COORDINATED_GRAPHICS) build after r157803
https://bugs.webkit.org/show_bug.cgi?id=123330
Reviewed by Darin Adler.
* Shared/WebCoreArgumentCoders.cpp:
* Shared/WebCoreArgumentCoders.h:
2013-10-25 Brady Eidson <beidson@apple.com>
WebIconDatabase can miss private browsing state changes.
<rdar://problem/15322318> and https://bugs.webkit.org/show_bug.cgi?id=123375
Reviewed by Beth Dakin.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::willStartUsingPrivateBrowsing): Call setPrivateBrowsingEnabled(true) on each context.
(WebKit::WebContext::willStopUsingPrivateBrowsing): Call setPrivateBrowsingEnabled(false) on each context.
(WebKit::WebContext::setPrivateBrowsingEnabled): In addition to notifying other processes, notify WebIconDatabase.
* UIProcess/WebContext.h:
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::setPrivateBrowsingEnabled):
* UIProcess/WebIconDatabase.h:
2013-10-25 Joseph Pecoraro <pecoraro@apple.com>
Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac
https://bugs.webkit.org/show_bug.cgi?id=123111
Reviewed by Timothy Hatcher.
* Configurations/FeatureDefines.xcconfig:
2013-10-25 Gavin Barraclough <barraclough@apple.com>
Merge viewInWindowStateDidChange into viewStateDidChange
https://bugs.webkit.org/show_bug.cgi?id=123351
Reviewed by Tim Horton.
* UIProcess/API/mac/WKView.mm:
(-[WKView endDeferringViewInWindowChanges]):
(-[WKView endDeferringViewInWindowChangesSync]):
- viewInWindowStateDidChange -> viewStateDidChange
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
- removed viewInWindowStateDidChange, renamed parameter to viewStateDidChange
* UIProcess/WebPageProxy.h:
- removed viewInWindowStateDidChange, named parameter to viewStateDidChange
2013-10-25 Csaba Osztrogonác <ossy@webkit.org>
One more URTBF for GTK after r158028.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseMap):
(webkitWebViewBaseUnmap):
2013-10-25 Csaba Osztrogonác <ossy@webkit.org>
URTBF for non-Mac platforms after r158028.
* GNUmakefile.list.am:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(toplevelWindowFocusInEvent):
(toplevelWindowFocusOutEvent):
(toplevelWindowVisibilityEvent):
(webkitWebViewBaseSetToplevelOnScreenWindow):
(webkitWebViewBaseSetFocus):
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::setActive):
(WebKit::WebView::setFocused):
(WebKit::WebView::setVisible):
2013-10-25 Gavin Barraclough <barraclough@apple.com>
Move ViewStateFlags out of WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=123323
Reviewed by Sam Weinig.
WebPageProxy contains an enum and typedef that provide a bitfield
of flags describing the visibility of the view containing the page.
We're going to want to use this bitfield in a message to the
WebProcess, so moving out from the UIProcess to shared code.
Creating struct 'ViewState' to scope the enum and typedef.
Renamed ViewStateFlags to ViewState::Flags, and removed redundant
'View' from enum entries.
* Shared/ViewState.h: Added.
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFirstResponder]):
(-[WKView resignFirstResponder]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _windowDidBecomeKey:]):
(-[WKView _windowDidResignKey:]):
(-[WKView _windowDidMiniaturize:]):
(-[WKView _windowDidDeminiaturize:]):
(-[WKView _windowDidOrderOffScreen:]):
(-[WKView _windowDidOrderOnScreen:]):
(-[WKView _windowDidChangeOcclusionState:]):
(-[WKView viewDidHide]):
(-[WKView viewDidUnhide]):
(-[WKView _activeSpaceDidChange:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
2013-10-25 Gavin Barraclough <barraclough@apple.com>
Move ViewStateFlags out of WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=123323
Unreviewed
Rolling out 158026 - landed extra chnages!
* Shared/ViewState.h: Removed.
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFirstResponder]):
(-[WKView resignFirstResponder]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _windowDidBecomeKey:]):
(-[WKView _windowDidResignKey:]):
(-[WKView _windowDidMiniaturize:]):
(-[WKView _windowDidDeminiaturize:]):
(-[WKView _windowDidOrderOffScreen:]):
(-[WKView _windowDidOrderOnScreen:]):
(-[WKView _windowDidChangeOcclusionState:]):
(-[WKView viewDidHide]):
(-[WKView viewDidUnhide]):
(-[WKView _activeSpaceDidChange:]):
(-[WKView endDeferringViewInWindowChanges]):
(-[WKView endDeferringViewInWindowChangesSync]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewInWindowStateDidChange):
(WebKit::WebPageProxy::viewStateDidChange):
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
2013-10-24 Gavin Barraclough <barraclough@apple.com>
Move ViewStateFlags out of WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=123323
Reviewed by Sam Weinig.
WebPageProxy contains an enum and typedef that provide a bitfield
of flags describing the visibility of the view containing the page.
We're going to want to use this bitfield in a message to the
WebProcess, so moving out from the UIProcess to shared code.
Creating struct 'ViewState' to scope the enum and typedef.
Renamed ViewStateFlags to ViewState::Flags, and removed redundant
'View' from enum entries.
* Shared/ViewState.h: Added.
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFirstResponder]):
(-[WKView resignFirstResponder]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _windowDidBecomeKey:]):
(-[WKView _windowDidResignKey:]):
(-[WKView _windowDidMiniaturize:]):
(-[WKView _windowDidDeminiaturize:]):
(-[WKView _windowDidOrderOffScreen:]):
(-[WKView _windowDidOrderOnScreen:]):
(-[WKView _windowDidChangeOcclusionState:]):
(-[WKView viewDidHide]):
(-[WKView viewDidUnhide]):
(-[WKView _activeSpaceDidChange:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
2013-10-25 Sergio Villar Senin <svillar@igalia.com>
[GTK][WK2] Build break after r157967 and r157972
https://bugs.webkit.org/show_bug.cgi?id=123325
Reviewed by Carlos Garcia Campos.
DrawingArea::visibilityDidChange was removed in favour of a new
message called SetIsVisible which is sent to the WebPage. This
means that {suspend|resume}Paiting are now implemented in a
cross-platform way in WebPage and do not require specific code
from the DrawingArea implementations.
This means that we have to track the toplevel window visibility
and notify the WebPage appropriately about its changes.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::isWindowVisible):
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(toplevelWindowVisibilityEvent):
(webkitWebViewBaseSetToplevelOnScreenWindow):
(webkitWebViewBaseIsWindowVisible):
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/DrawingAreaProxyImpl.cpp:
* UIProcess/DrawingAreaProxyImpl.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::suspendPainting):
(WebKit::DrawingAreaImpl::resumePainting):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::windowAndWebPageAreFocused):
2013-10-25 Anton Obzhirov <a.obzhirov@samsung.com>
[GTK] [WebKit2] CanHandleRequest API test fails
https://bugs.webkit.org/show_bug.cgi?id=88453
Reviewed by Martin Robinson.
Make WebPage::platformCanHandleRequest return false by default
for unknown schemes.
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformCanHandleRequest):
2013-10-25 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Build break after r157967 and r157972
https://bugs.webkit.org/show_bug.cgi?id=123324
Reviewed by Tim Horton.
Since r157967 and r157972, visibilityDidChange was removed from DrawingAreaProxy.
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
(WebKit::CoordinatedDrawingAreaProxy::visibilityDidChange):
Removed common logic which r157967 moved to WebProcess.
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:
Make visibilityDidChange to public method.
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::setVisible):
(WebKit::WebView::isWindowVisible): Added.
* UIProcess/CoordinatedGraphics/WebView.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setWindowIsVisible):
* WebProcess/WebPage/WebPage.h:
Moved m_windowIsVisible to use at all WK2 based port.
(WebKit::WebPage::windowIsVisible):
* WebProcess/WebPage/WebPage.messages.in:
Moved SetWindowIsVisible message to use at all WK2 based port.
2013-10-24 Mark Rowe <mrowe@apple.com>
Remove references to OS X 10.7 from Xcode configuration settings.
Now that we're not building for OS X 10.7 they're no longer needed.
Reviewed by Anders Carlsson.
* Configurations/Base.xcconfig:
* Configurations/BaseXPCService.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebContentProcess.xcconfig:
2013-10-24 Gavin Barraclough <barraclough@apple.com>
Coalesce calls to viewStateDidChange
https://bugs.webkit.org/show_bug.cgi?id=123307
Reviewed by Tim Horton.
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
(-[WKView _windowDidOrderOffScreen:]):
(-[WKView _windowDidOrderOnScreen:]):
- coalesce calls to viewStateDidChange
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
- handle changes to view visibility & active state in correct order.
2013-10-24 Mark Rowe <mrowe@apple.com>
<rdar://problem/15312643> Prepare for the mysterious future.
Reviewed by David Kilzer.
* Configurations/Base.xcconfig:
* Configurations/BaseXPCService.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebContentProcess.xcconfig:
2013-10-24 Gavin Barraclough <barraclough@apple.com>
Fold updateWindowIsVisible into viewStateDidChange
https://bugs.webkit.org/show_bug.cgi?id=123305
Reviewed by Simon Fraser.
* UIProcess/API/mac/PageClientImpl.h:
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::isWindowVisible):
- Added accessor to check if window is visible
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
(-[WKView _windowDidMiniaturize:]):
(-[WKView _windowDidDeminiaturize:]):
(-[WKView _windowDidOrderOffScreen:]):
(-[WKView _windowDidOrderOnScreen:]):
- _updateWindowVisibility -> viewStateDidChange
* UIProcess/PageClient.h:
- Added accessor to check if winow is visible
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
- handle WindowIsVisible
* UIProcess/WebPageProxy.h:
- added WindowIsVisible
* UIProcess/mac/WebPageProxyMac.mm:
- removed updateWindowIsVisible
2013-10-24 Anders Carlsson <andersca@apple.com>
Stop bringing in the std namespace
https://bugs.webkit.org/show_bug.cgi?id=123273
Reviewed by Andreas Kling.
* WebProcess/mac/WebProcessMac.mm:
(WebKit::WebProcess::platformSetCacheModel):
2013-10-24 Gavin Barraclough <barraclough@apple.com>
Simplify window occlusion detection code
https://bugs.webkit.org/show_bug.cgi?id=123300
Reviewed by Tim Horton.
Currently the WKView tries to maintain a copy of the window's occluded state,
but forced to NO when occlusion detection is disabled (and capable of handling
dectection being dynamically toggled). Simpler to just rely on the actual value
from the window, && the enabled setting. Cleaning this up revealed that we're
not sending a viewStateDidChange to the WebPageProxy when the occlusion state
changes, which we probably should be.
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::isViewVisible):
- check the real value of occlusion state from the window.
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
- don't update cached value.
(-[WKView _windowDidChangeOcclusionState:]):
- don't update cached value, but do send viewStateDidChange to the WebPageProxy.
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
- removed _isWindowOccluded.
(-[WKView windowOcclusionDetectionEnabled]):
(-[WKView setWindowOcclusionDetectionEnabled:]):
- Just toggle the flag - no cached state to update any more.
* UIProcess/API/mac/WKViewInternal.h:
- removed _isWindowOccluded.
2013-10-24 Gavin Barraclough <barraclough@apple.com>
SetIsVisible message should be sent to WebPage
https://bugs.webkit.org/show_bug.cgi?id=123296
Reviewed by Tim Horton.
* UIProcess/DrawingAreaProxy.h:
- remove visibilityDidChange - WebPageProxy now mesages WebPage.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
- Send view visibility updates to the WebPage, not the drawing area.
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
- remove visibilityDidChange - WebPageProxy now mesages WebPage.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::suspendPainting):
(WebKit::DrawingArea::resumePainting):
* WebProcess/WebPage/DrawingArea.messages.in:
- Instead of suspendPainting/resumePainting being private in the WebProcess but avaialble to the UIProcess,
make them private to the WebProcess but accessible from WebPage.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setViewIsVisible):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
- Added SetViewIsVisible message.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- Instead of suspendPainting/resumePainting being private in the WebProcess but avaialble to the UIProcess,
make them private to the WebProcess but accessible from WebPage.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::suspendPainting):
(WebKit::TiledCoreAnimationDrawingArea::resumePainting):
- Moved animation suspend code out to WebPage.
2013-10-24 Dan Bernstein <mitz@apple.com>
Tried to fix the Mountain Lion build.
* Shared/API/Cocoa/WKFoundation.h:
2013-10-24 Dan Bernstein <mitz@apple.com>
[Cocoa] Add -[WKBrowsingContextController goToBackForwardItem:]
https://bugs.webkit.org/show_bug.cgi?id=123289
Reviewed by Sam Weinig.
* Shared/API/Cocoa/WKFoundation.h: Defined WK_API_CLASS.
* UIProcess/API/mac/WKBrowsingContextController.h: Declared -goToBackForwardListItem:.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(-[WKBrowsingContextController goToBackForwardListItem:]): Added.
* UIProcess/Cocoa/WKBackForwardList.h: Deployed WK_API_CLASS to make the class exported.
* UIProcess/Cocoa/WKBackForwardListItem.h: Ditto.
* UIProcess/Cocoa/WKBackForwardListItem.mm:
(-[WKBackForwardListItem _item]): Added. Returns the underlying WebBackForwardListItem.
* UIProcess/Cocoa/WKBackForwardListItemInternal.h: Declared _item.
2013-10-23 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix since r157823.
FilterOperation::getOperationType() is renamed FilterOperation::type().
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::checkCustomFilterProgramProxies):
2013-10-23 Tibor Meszaros <tmeszaros@inf.u-szeged.hu>
Web Inspector: Make WebKitEFL port work with chromedevtools
https://bugs.webkit.org/show_bug.cgi?id=123017
Reviewed by Gustavo Noronha Silva.
Added /json path and extended the returned JSON format
with the required extra informations
* UIProcess/InspectorServer/efl/WebInspectorServerEfl.cpp:
(WebKit::WebInspectorServer::platformResourceForPath):
(WebKit::WebInspectorServer::buildPageList):
2013-10-23 Anders Carlsson <andersca@apple.com>
Remove HAVE_XPC
https://bugs.webkit.org/show_bug.cgi?id=123226
Reviewed by Dan Bernstein.
HAVE_XPC has been true on Mac since Lion, so remove it.
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
(DatabaseServiceInitializer):
* NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
(NetworkServiceInitializer):
* Platform/CoreIPC/Connection.h:
(CoreIPC::Connection::Identifier::Identifier):
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::Connection::platformInvalidate):
(CoreIPC::Connection::platformInitialize):
* Platform/WorkQueue.h:
* PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
(PluginServiceInitializer):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
* UIProcess/Databases/mac/DatabaseProcessProxyMac.mm:
(WebKit::shouldUseXPC):
(WebKit::DatabaseProcessProxy::platformGetLaunchOptions):
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::didFinishLaunchingProcess):
* UIProcess/Launcher/ProcessLauncher.h:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::setUpTerminationNotificationHandler):
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Network/mac/NetworkProcessProxyMac.mm:
(WebKit::shouldUseXPC):
(WebKit::NetworkProcessProxy::platformGetLaunchOptions):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
(WebKit::PluginProcessProxy::platformGetLaunchOptions):
* UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::shouldUseXPC):
(WebKit::WebProcessProxy::platformGetLaunchOptions):
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):
2013-10-23 Tim Horton <timothy_horton@apple.com>
Remove the ifdef to exclude remote layer tree transaction logging
on Lion and before.
Rubber-stamped by Anders Carlsson.
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::commit):
2013-10-23 Brady Eidson <beidson@apple.com>
Make IDBDatabaseBackendLevelDB.cpp be cross platform
https://bugs.webkit.org/show_bug.cgi?id=123027
Attentively reviewed by Dean Jackson.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::maybeCreateTransactionBackend):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
2013-10-23 Dan Bernstein <mitz@apple.com>
Fixed a typo.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(didChangeBackForwardList):
* UIProcess/API/mac/WKBrowsingContextLoadDelegate.h:
2013-10-23 Anton Obzhirov <a.obzhirov@samsung.com>
[GTK] Enable respect image orientation by default
https://bugs.webkit.org/show_bug.cgi?id=122120
Reviewed by Gustavo Noronha Silva.
Add enable respect image orientation by default in GTK port.
* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsConstructed):
2013-10-23 Brian Holt <brian.holt@samsung.com>
[GTK] Add WebKit2 API for TLS errors
https://bugs.webkit.org/show_bug.cgi?id=120160
Reviewed by Mario Sanchez Prada.
Revert back to using PlatformCertificateInfo following the rollout
of https://bugs.webkit.org/show_bug.cgi?id=118520.
* Shared/soup/PlatformCertificateInfo.cpp:
(WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
* Shared/soup/PlatformCertificateInfo.h:
* UIProcess/API/gtk/WebKitCertificateInfo.cpp:
(webkitCertificateInfoGetCertificateInfo):
* UIProcess/API/gtk/WebKitCertificateInfoPrivate.h:
2013-10-23 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Implement superlayer, removeFromSuperlayer, replaceSublayer, and adoptSublayers
https://bugs.webkit.org/show_bug.cgi?id=123130
Reviewed by Anders Carlsson.
Implement the remaining layer-hierarchy-manipulation methods.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::PlatformCALayerRemote):
(PlatformCALayerRemote::~PlatformCALayerRemote):
Null out the superlayer back-pointer on our sublayers.
(PlatformCALayerRemote::recursiveBuildTransaction):
Ensure that our children all have us as their superlayer.
(PlatformCALayerRemote::superlayer):
Return the stored superlayer pointer.
(PlatformCALayerRemote::removeFromSuperlayer):
Call removeSublayer on our superlayer, if we have one.
(PlatformCALayerRemote::removeSublayer):
Remove the given layer if it's in our list of sublayers, clear its
reference to us, and note that we'll need to commit hierarchy changes.
(PlatformCALayerRemote::setSublayers):
removeAllSublayers() before setting the new list, to clear superlayer
back-pointers. Children will be protected by the PlatformCALayerList.
Update the new layers' superlayers.
(PlatformCALayerRemote::removeAllSublayers):
Remove each sublayer from its superlayer, then clear our list of children.
(PlatformCALayerRemote::appendSublayer):
(PlatformCALayerRemote::insertSublayer):
Protect the layer from deletion, so that we can remove it from its prior
superlayer before appending or inserting it.
(PlatformCALayerRemote::replaceSublayer):
Find the reference sublayer, if it exists, and replace it with the new one.
(PlatformCALayerRemote::adoptSublayers):
adoptSublayers is really just "set sublayers to this other layer's sublayers".
Since setSublayers already removes layers from the existing superlayer,
we can just go ahead and call it.
(PlatformCALayerRemote::addAnimationForKey):
(PlatformCALayerRemote::removeAnimationForKey):
(PlatformCALayerRemote::animationForKey):
Add some ASSERT_NOT_REACHEDs in animation code.
We ought not get here because we've disabled hardware animations
in GraphicsLayerCARemote.
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
Add m_superlayer and removeSublayer().
2013-10-22 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix attempt on Soup based port after r157842.
WebCore::CertificateInfo was reverted to WebKit::PlatformCertificateInfo.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::allowSpecificHTTPSCertificateForHost):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::allowSpecificHTTPSCertificateForHost):
2013-10-22 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix attempt on EFL port after r157842.
* Shared/soup/PlatformCertificateInfo.h: Removed message of merge confliction.
2013-10-22 Mark Rowe <mrowe@apple.com>
Fix build failures after r157842.
* WebProcess/WebProcess.h: Don't try to #include a file that was deleted.
It won't work.
2013-10-22 Brady Eidson <beidson@apple.com>
Get rid of IDBObjectStoreBackendLevelDB
https://bugs.webkit.org/show_bug.cgi?id=123174
Reviewed by Tim Horton.
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
2013-10-22 Dean Jackson <dino@apple.com>
[WebGL] Implement a software rendering option on Mac
https://bugs.webkit.org/show_bug.cgi?id=123177
Reviewed by Tim Horton.
Implement a way to force software OpenGL rendering
for WebGL, via a Setting/Preference.
* Shared/WebPreferencesStore.h: New ForceSoftwareWebGLRendering entry.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetForceSoftwareWebGLRendering):
(WKPreferencesGetForceSoftwareWebGLRendering):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* mac/WebKit2.order:
2013-10-22 Anders Carlsson <andersca@apple.com>
Revert r157445 since it broke certificates on Mac.
<rdar://problem/15246926&15254017&15269117>
* GNUmakefile.list.am:
* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
(WebKit::AsynchronousNetworkLoaderClient::didReceiveResponse):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.cpp:
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/API/c/mac/WKCertificateInfoMac.mm:
(WKCertificateInfoCreateWithCertficateChain):
(WKCertificateInfoGetCertificateChain):
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::tryUsePlatformCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForChallenge):
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/AuthenticationManager.messages.in:
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::AuthenticationManager::tryUsePlatformCertificateInfoForChallenge):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebCertificateInfo.h:
(WebKit::WebCertificateInfo::create):
(WebKit::WebCertificateInfo::platformCertificateInfo):
(WebKit::WebCertificateInfo::WebCertificateInfo):
* Shared/WebCoreArgumentCoders.cpp:
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/PlatformCertificateInfo.h: Renamed from Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp.
(WebKit::PlatformCertificateInfo::certificateChain):
* Shared/mac/PlatformCertificateInfo.mm: Renamed from Source/WebCore/platform/network/mac/CertificateInfoMac.mm.
(WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
(WebKit::PlatformCertificateInfo::encode):
(WebKit::PlatformCertificateInfo::decode):
(WebKit::PlatformCertificateInfo::dump):
* Shared/mac/WebCoreArgumentCodersMac.mm:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* Shared/soup/PlatformCertificateInfo.cpp: Added.
(WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
(WebKit::PlatformCertificateInfo::~PlatformCertificateInfo):
(WebKit::PlatformCertificateInfo::encode):
(WebKit::PlatformCertificateInfo::decode):
* Shared/soup/PlatformCertificateInfo.h: Renamed from Source/WebCore/platform/network/CertificateInfo.h.
(WebKit::PlatformCertificateInfo::certificate):
(WebKit::PlatformCertificateInfo::tlsErrors):
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_tls_info):
* UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
(WebKit::AuthenticationChallengeProxy::useCredential):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::allowSpecificHTTPSCertificateForHost):
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didCommitLoad):
* UIProcess/WebFrameProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
2013-10-22 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Disable threaded scrolling for RemoteLayerTreeDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=123187
Reviewed by Dean Jackson.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::supportsThreadedScrolling):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
Threaded scrolling doesn't work with remote layer trees yet.
Let the DrawingArea subclass tell WebPage if it supports threaded
scrolling, and make TiledCoreAnimationDrawingArea say that it does.
2013-10-22 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix on EFL port after r157823
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode): renamed getOperationType() to type().
2013-10-22 Tim Horton <timothy_horton@apple.com>
{ClipPathOperation, FilterOperation}::getOperationType() should not include 'get'
https://bugs.webkit.org/show_bug.cgi?id=123172
Reviewed by Simon Fraser.
* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::encodeFilterOperation):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
Adopt the new name.
2013-10-22 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r157803 for !ENABLE(CSS_FILTERS) platforms.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
* Shared/WebCoreArgumentCoders.cpp:
2013-10-22 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Support hardware accelerated filters
https://bugs.webkit.org/show_bug.cgi?id=123139
Reviewed by Anders Carlsson.
* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::ArgumentCoder<Length>::encode):
(CoreIPC::ArgumentCoder<Length>::decode):
Add simple coders for Length.
(CoreIPC::encodeFilterOperation):
(CoreIPC::decodeFilterOperation):
Serialize and deserialize FilterOperations, except for CUSTOM and VALIDATED_CUSTOM.
(CoreIPC::ArgumentCoder<Length>::encode):
(CoreIPC::ArgumentCoder<Length>::decode):
Add coders for FilterOperations that delegate to {en,de}codeFilterOperation
for each operation in the list.
* Shared/WebCoreArgumentCoders.h:
Drive-by fix indentation.
Expose the Length and FilterOperations coders.
* Shared/mac/RemoteLayerTreeTransaction.h:
Add FiltersChanged and LayerProperties::filters.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
Encode and decode our FilterOperations.
(WebKit::dumpChangedLayers):
Dump information about the layers' filters.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::commit):
Use PlatformCAFilters code to apply a FilterOperations object to our CALayer.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::setFilters):
Replace existing filters with our new set, and note that they've changed.
(PlatformCALayerRemote::copyFiltersFrom):
Not yet implemented. Not critical for this feature, either.
(PlatformCALayerRemote::filtersCanBeComposited):
For now, this is the same as the Mac version.
2013-10-22 Brian Holt <brian.holt@samsung.com>
[GTK] Add WebKit2 API for TLS errors
https://bugs.webkit.org/show_bug.cgi?id=120160
Reviewed by Carlos Garcia Campos.
Add a new signal load-failed-with-tls-errors that is emitted with
a WebKitCertificateInfo boxed type to allow users to deal with TLS
errors. A new API is exposed in WebKitWebContext to allow
exceptions for TLS errors on a given host.
* GNUmakefile.list.am:
* PlatformGTK.cmake:
* UIProcess/API/gtk/WebKitCertificateInfo.cpp: Added.
(webkitCertificateInfoGetCertificateInfo):
(webkit_certificate_info_copy):
(webkit_certificate_info_free):
(webkit_certificate_info_get_tls_certificate):
(webkit_certificate_info_get_tls_errors):
* UIProcess/API/gtk/WebKitCertificateInfo.h: Added.
* UIProcess/API/gtk/WebKitCertificateInfoPrivate.h: Added.
(_WebKitCertificateInfo::_WebKitCertificateInfo):
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_allow_tls_certificate_for_host): Support TLS
exceptions for a given host.
* UIProcess/API/gtk/WebKitWebContext.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_class_init): Added new signal.
(webkitWebViewLoadFailedWithTLSErrors): Emit new signal with
WebKitCertificateInfo and host.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/docs/webkit2gtk.types:
* UIProcess/API/gtk/tests/TestSSL.cpp:
(testLoadFailedWithTLSErrors):
(httpsServerCallback):
(beforeAll): Added new test.
* UIProcess/API/gtk/webkit2.h:
* UIProcess/API/gtk/webkit2marshal.list:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::allowSpecificHTTPSCertificateForHost): Send
message to WebProcess to allow a certificate and host pair.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in: New message to tell
WebProcess to allow a specific TLS certificate for a given host.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::allowSpecificHTTPSCertificateForHost): Allow
certificate and host pair.
2013-10-22 Dan Bernstein <mitz@apple.com>
Try to make the 32-bit Mac build happy.
* UIProcess/API/mac/WKBrowsingContextLoadDelegate.h:
2013-10-21 Dan Bernstein <mitz@apple.com>
Try to make the 32-bit Mac build happy.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(setUpPageLoaderClient):
2013-10-21 Dan Bernstein <mitz@apple.com>
[Cocoa] Add load delegate method for didChangeBackForwardList
https://bugs.webkit.org/show_bug.cgi?id=123136
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(didChangeBackForwardList): Added. Calls new delegate method.
(setUpPageLoaderClient): Hook up new client function.
* UIProcess/API/mac/WKBrowsingContextLoadDelegate.h: Declare new delegate method.
2013-10-21 Mark Rowe <mrowe@apple.com>
Add a version of WebKitSystemInterface for Mavericks.
Reviewed by Ryosuke Niwa.
* Configurations/DebugRelease.xcconfig:
2013-10-21 Dan Bernstein <mitz@apple.com>
Try to fix the Mac 32-bit build.
* UIProcess/API/mac/WKBrowsingContextController.h:
* UIProcess/API/mac/WKBrowsingContextController.mm:
2013-10-21 Tim Horton <timothy_horton@apple.com>
Give up on building RemoteLayerTreeTransaction::dump on Lion, it just won't work.
This definitely ought to fix the build.
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::commit):
2013-10-21 Tim Horton <timothy_horton@apple.com>
Maybe a Lion build fix after r157731, part 2.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
2013-10-21 Dan Bernstein <mitz@apple.com>
[Cocoa] Back/forward list UI process API
https://bugs.webkit.org/show_bug.cgi?id=123109
Reviewed by Darin Adler.
* CMakeLists.txt: Updated for renames.
* GNUmakefile.list.am: Ditto.
* Shared/Cocoa: Added.
* Shared/Cocoa/WKNSArray.h: Added. WKNSArray is an internal NSArray subclass backed by
a WebKit::ImmutableArray.
* Shared/Cocoa/WKNSArray.mm: Added.
(+[WKNSArray web_arrayWithImmutableArray:]): Added.
(-[WKNSArray web_initWithImmutableArray:]): Added.
(-[WKNSArray count]): Added.
(-[WKNSArray objectAtIndex:]): Added.
(-[WKNSArray copyWithZone:]): Added.
* Shared/Cocoa/WKNSObjectExtras.h: Added. Declares a category on NSObject that allows us to
vend WebKit API objects as Objective-C objects.
* Shared/Cocoa/WKNSObjectExtras.mm: Added.
(-[WKObject initWithAPIObject:]): WKObject is the generic Cocoa wrapper for API objects.
(-[WKObject isEqual:]): Check for equality of the underlying object.
(-[WKObject hash]): Return a pointer to the underlying object.
(-[WKObject description]): Added.
(+[NSObject _web_objectWithAPIObject:]): Added. Returns an appropriate Objective-C object
for the given API object. Currently returns a WKBackForwardListItem for a back/forward list
item and a generic WKObject for all other types.
* UIProcess/API/C/WKBackForwardList.cpp: Renamed.
* UIProcess/API/C/WKBackForwardList.h: Renamed.
* UIProcess/API/C/WKBackForwardListItem.cpp: Renamed.
* UIProcess/API/C/WKBackForwardListItem.h: Renamed.
* UIProcess/API/C/WKBackForwardListItemRef.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKBackForwardListItem.cpp.
* UIProcess/API/C/WKBackForwardListItemRef.h: Copied from Source/WebKit2/UIProcess/API/C/WKBackForwardListItem.h.
* UIProcess/API/C/WKBackForwardListRef.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKBackForwardList.cpp.
* UIProcess/API/C/WKBackForwardListRef.h: Copied from Source/WebKit2/UIProcess/API/C/WKBackForwardList.h.
* UIProcess/API/C/WebKit2_C.h: Updated for header renames.
* UIProcess/API/efl/ewk_back_forward_list.cpp: Updated for rename.
* UIProcess/API/efl/ewk_back_forward_list_item.cpp: Ditto.
* UIProcess/API/mac/WKBrowsingContextController.h: Declared backForwardList property.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(-[WKBrowsingContextController backForwardList]): Added this accessor.
* UIProcess/Cocoa: Added.
* UIProcess/Cocoa/WKBackForwardList.h: Added.
* UIProcess/Cocoa/WKBackForwardList.mm: Added.
(toWKBackForwardListItem): Added this helper.
(-[WKBackForwardList currentItem]): Added.
(-[WKBackForwardList backItem]): Added.
(-[WKBackForwardList forwardItem]): Added.
(-[WKBackForwardList itemAtIndex:]): Added.
(-[WKBackForwardList backListCount]): Added.
(-[WKBackForwardList forwardListCount]): Added.
(-[WKBackForwardList backListWithLimit:]): Added.
(-[WKBackForwardList forwardListWithLimit:]): Added.
(-[WKBackForwardList _initWithList:]): Added.
* UIProcess/Cocoa/WKBackForwardListInternal.h: Added.
* UIProcess/Cocoa/WKBackForwardListItem.h: Added.
* UIProcess/Cocoa/WKBackForwardListItem.mm: Added.
(-[WKBackForwardListItem URL]): Added.
(-[WKBackForwardListItem title]): Added.
(-[WKBackForwardListItem originalURL]): Added.
(-[WKBackForwardListItem isEqual:]): Check for equality of the underlying object.
(-[WKBackForwardListItem hash]): Return a pointer to the underlying object
(-[WKBackForwardListItem _initWithItem:]): Added.
* UIProcess/Cocoa/WKBackForwardListItemInternal.h: Added.
* WebKit2.xcodeproj/project.pbxproj: Updated for renames and additions.
2013-10-21 Tim Horton <timothy_horton@apple.com>
Maybe a Lion build fix after r157731.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
2013-10-21 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Clean up transaction logging
https://bugs.webkit.org/show_bug.cgi?id=123116
Reviewed by Anders Carlsson.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::RemoteLayerTreeTextStream):
(WebKit::RemoteLayerTreeTextStream::increaseIndent):
(WebKit::RemoteLayerTreeTextStream::decreaseIndent):
(WebKit::RemoteLayerTreeTextStream::writeIndent):
(WebKit::RemoteLayerTreeTextStream::operator<<):
Add some stream operator overrides for various types we need to dump.
Add a notion of current indent to our TextStream subclass to make it
easy to keep track of where we are.
(WebKit::dumpProperty):
Added, hand any arbitrary type to RemoteLayerTreeTransaction.
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::dump):
Make use of TextStream.
2013-10-21 Brady Eidson <beidson@apple.com>
Transition most use of IDBBackingStoreLevelDB to IDBBackingStoreInterface
https://bugs.webkit.org/show_bug.cgi?id=123105
Reviewed by Anders Carlsson.
Stub out a new pure virtual method:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::createTransactionBackend):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
2013-10-21 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Backing store should take contentsScale into account
https://bugs.webkit.org/show_bug.cgi?id=123106
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::ensureBackingStore):
(PlatformCALayerRemote::setNeedsDisplay):
(PlatformCALayerRemote::setContentsScale):
Inform the backing store of the contentsScale, and when it changes.
* WebProcess/WebPage/mac/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::scale): Added.
(WebKit::RemoteLayerBackingStore::mapToContentCoordinates): Added.
* WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::RemoteLayerBackingStore):
(RemoteLayerBackingStore::encode):
(RemoteLayerBackingStore::decode):
(RemoteLayerBackingStore::mapToContentCoordinates):
Factor out flipping so we can use it for repaints in multiple places.
(RemoteLayerBackingStore::setNeedsDisplay):
(RemoteLayerBackingStore::display):
Create a buffer scaled up by contentsScale, take the scale into account
when copying clean bits from the front buffer, and apply the scale before
painting into the back buffer.
2013-10-21 Gergo Balogh <geryxyz@inf.u-szeged.hu>
Remove qt from generate-forwarding-headers.pl
https://bugs.webkit.org/show_bug.cgi?id=123090
Reviewed by Andreas Kling.
* Scripts/generate-forwarding-headers.pl:
2013-10-21 Zan Dobersek <zdobersek@igalia.com>
[GTK] g-ir-scanner should use the configured C compiler
https://bugs.webkit.org/show_bug.cgi?id=123088
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: Pass the C compiler that was detected at configuration to the g-ir-scanner command
via the CC environment variable. This solves the issue of the scanner running the GCC compiler with
the Clang-specific CFLAGS.
2013-10-20 Dan Bernstein <mitz@apple.com>
[Cocoa] Loading progress API
https://bugs.webkit.org/show_bug.cgi?id=123069
Reviewed by Sam Weinig.
* UIProcess/API/mac/WKBrowsingContextController.h: Declared estimatedProgress property.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(-[WKBrowsingContextController estimatedProgress]): Added.
(didStartProgress): Added. Calls new delegate method
-browsingContextControllerDidStartProgress:.
(didChangeProgress): Added. Calls new delegate method
-browsingContextController:estimatedProgressChangedTo:.
(didFinishProgress): Added. Calls new delegate method
-browsingContextControllerDidFinishProgress:.
(setUpPageLoaderClient): Hook up new client functions.
* UIProcess/API/mac/WKBrowsingContextLoadDelegate.h: Declared new delegate methods.
2013-10-20 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Removing "unused parameter" compiling warnings from WebKit2 and WebCore
https://bugs.webkit.org/show_bug.cgi?id=123075
Reviewed by Andreas Kling.
* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::loadResourceSynchronously):
* UIProcess/API/C/WKContext.cpp:
(WKContextGetPluginSiteDataManager):
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetInspectorUsesWebKitUserInterface):
(WKPreferencesGetInspectorUsesWebKitUserInterface):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getPlugins):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetFullScreenClient):
(WKBundlePageWillEnterFullScreen):
(WKBundlePageDidEnterFullScreen):
(WKBundlePageWillExitFullScreen):
(WKBundlePageDidExitFullScreen):
* WebProcess/MediaCache/WebMediaCacheManager.cpp:
(WebKit::WebMediaCacheManager::clearCacheForHostname):
* WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::getOrigins):
(WebKit::WebOriginDataManager::deleteEntriesForOrigin):
(WebKit::WebOriginDataManager::deleteAllEntries):
(WebKit::WebOriginDataManager::startObservingChanges):
(WebKit::WebOriginDataManager::stopObservingChanges):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::createPlugin):
(WebKit::WebFrameLoaderClient::recreatePlugin):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::canPluginHandleResponse):
2013-10-19 Jer Noble <jer.noble@apple.com>
Unreviewed roll out of r157695; broke Mac builds.
* Configurations/FeatureDefines.xcconfig:
2013-10-07 Jer Noble <jer.noble@apple.com>
[MSE] [Mac] Enable MediaSource on the Mac
https://bugs.webkit.org/show_bug.cgi?id=122484
Reviewed by Darin Adler.
Enable ENABLE_MEDIA_SOURCE.
* Configurations/FeatureDefines.xcconfig:
2013-10-19 Dan Bernstein <mitz@apple.com>
Fix the Mac 32-bit build by reverting r157676, r157678, and r157679.
2013-10-19 Dan Bernstein <mitz@apple.com>
Try to fix the Mac 32-bit build.
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
2013-10-19 Dan Bernstein <mitz@apple.com>
Try to fix the Mac 32-bit build.
* UIProcess/API/mac/WKView.h:
* UIProcess/API/mac/WKView.mm:
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/API/mac/WKViewPrivate.h:
2013-10-19 Dan Bernstein <mitz@apple.com>
[Cocoa] Remove some indirection that was only necessary for supporting the legacy Objective-C runtime
https://bugs.webkit.org/show_bug.cgi?id=123065
Reviewed by Sam Weinig.
* UIProcess/API/mac/WKBrowsingContextController.h: Added WK_API_ENABLED guard. Removed _data
ivar and WKBrowsingContextControllerData class declaration.
* UIProcess/API/mac/WKBrowsingContextController.mm: Added WK_API_ENABLED guard. Removed
WKBrowsingContextControllerData class and moved _pageRef ivar directly into
WKBrowsingContextController, declaring it in the @implementation. Removed ivar and accessors
for the loadDelegate property, letting the compiler synthesize them.
(-[WKBrowsingContextController dealloc]): Removed indirection via _data.
(-[WKBrowsingContextController _pageRef]): Ditto.
(-[WKBrowsingContextController loadRequest:userData:]): Removed indirection via -_pageRef.
(-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]): Ditto.
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]): Ditto.
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
Ditto.
(-[WKBrowsingContextController stopLoading]): Ditto.
(-[WKBrowsingContextController reload]): Ditto.
(-[WKBrowsingContextController reloadFromOrigin]): Ditto.
(-[WKBrowsingContextController goForward]): Ditto.
(-[WKBrowsingContextController canGoForward]): Ditto.
(-[WKBrowsingContextController goBack]): Ditto.
(-[WKBrowsingContextController canGoBack]): Ditto.
(-[WKBrowsingContextController activeURL]): Ditto.
(-[WKBrowsingContextController provisionalURL]): Ditto.
(-[WKBrowsingContextController committedURL]): Ditto.
(-[WKBrowsingContextController title]): Ditto.
(-[WKBrowsingContextController textZoom]): Ditto.
(-[WKBrowsingContextController setTextZoom:]): Ditto.
(-[WKBrowsingContextController pageZoom]): Ditto.
(-[WKBrowsingContextController setPageZoom:]): Ditto.
(-[WKBrowsingContextController setPaginationMode:]): Ditto.
(-[WKBrowsingContextController paginationMode]): Ditto.
(-[WKBrowsingContextController setPaginationBehavesLikeColumns:]): Ditto.
(-[WKBrowsingContextController paginationBehavesLikeColumns]): Ditto.
(-[WKBrowsingContextController setPageLength:]): Ditto.
(-[WKBrowsingContextController pageLength]): Ditto.
(-[WKBrowsingContextController setGapBetweenPages:]): Ditto.
(-[WKBrowsingContextController gapBetweenPages]): Ditto.
(-[WKBrowsingContextController pageCount]): Ditto.
(-[WKBrowsingContextController _initWithPageRef:]): Removed indirection via _data.
* UIProcess/API/mac/WKBrowsingContextControllerInternal.h: Added WK_API_ENABLED guard.
* UIProcess/API/mac/WKBrowsingContextControllerPrivate.h: Ditto.
* UIProcess/API/mac/WKBrowsingContextGroup.h: Added WK_API_ENABLED guard. Removed _data ivar
and WKBrowsingContextGroupData class declaration.
* UIProcess/API/mac/WKBrowsingContextGroup.mm: Added WK_API_ENABLED guard. Removed
WKBrowsingContextGroupData class and moved _pageGroupRef ivar directly info
WKBrowsingContextGroup, declaring it in the @implementation.
(-[WKBrowsingContextGroup initWithIdentifier:]): Removed indirection via _data.
(-[WKBrowsingContextGroup _pageGroupRef]): Ditto.
* UIProcess/API/mac/WKBrowsingContextGroupPrivate.h: Added WK_API_ENABLED guard.
* UIProcess/API/mac/WKConnection.h: Added WK_API_ENABLED guard. Removed _data ivar and
WKConnectionData class declaration.
* UIProcess/API/mac/WKConnection.mm: Added WK_API_ENABLED guard. Removed WKConnectionData
class and moved _connectionRef ivar directly into WKConnection, declaring it in the
@implementation. Removed ivar and accessors for the delegate property, letting the compiler
synthesize them.
(-[WKConnection dealloc]): Removed indirection via _data.
(-[WKConnection sendMessageWithName:body:]): Ditto.
(-[WKConnection _initWithConnectionRef:]): Ditto.
* UIProcess/API/mac/WKConnectionInternal.h: Added WK_API_ENABLED guard.
* UIProcess/API/mac/WKProcessGroup.h: Added WK_API_ENABLED guard. Replaced forward
declaration of WKConnection with an import. Removed _data ivar and WKProcessGroupData class
declaration.
* UIProcess/API/mac/WKProcessGroup.mm: Added WK_API_ENABLED guard. Removed
WKProcessGroupData class and moved _contextRef ivar directly into WKProcessGroup, declaring
it in the @implementation. Removed ivar and accessors for the delegate property, letting the
compiler synthesize them.
(-[WKProcessGroup initWithInjectedBundleURL:]): Removed indirection via _data.
(-[WKProcessGroup dealloc]): Ditto.
(-[WKProcessGroup _contextRef]): Ditto.
* UIProcess/API/mac/WKProcessGroupPrivate.h: Added WK_API_ENABLED guard.
2013-10-19 Andreas Kling <akling@apple.com>
Attempt to get Lion building.
* UIProcess/mac/WebColorPickerMac.h:
2013-10-18 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Double-buffering and minimization of repaints
https://bugs.webkit.org/show_bug.cgi?id=123043
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::ensureBackingStore):
Don't worry about isOpaque with RemoteLayerBackingStore; this is a
optimization that is causing trouble; we can re-add it later.
(PlatformCALayerRemote::setBounds):
Make sure that we will repaint if our bounds change.
* WebProcess/WebPage/mac/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::bitmap):
Keep a front and back buffer; return the front buffer when being asked for the bitmap.
Keep a Region of repaint areas.
* WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::RemoteLayerBackingStore):
(RemoteLayerBackingStore::encode):
(RemoteLayerBackingStore::decode):
Serialize only the front buffer, since the UI process only needs that.
(RemoteLayerBackingStore::setNeedsDisplay):
Store repaint rects instead of always setting the whole layer to be dirty.
(RemoteLayerBackingStore::display):
Paint into the back buffer (copying valid parts over from the front buffer),
then swap it to the front buffer. Use drawLayerContents so we get repaint counters, etc.
2013-10-18 Anders Carlsson <andersca@apple.com>
Try to fix the Lion build.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
2013-10-18 Anders Carlsson <andersca@apple.com>
Remove spaces between template angle brackets
https://bugs.webkit.org/show_bug.cgi?id=123040
Reviewed by Andreas Kling.
* UIProcess/mac/WebColorPickerMac.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setProcessSuppressionEnabled):
2013-10-18 Brady Eidson <beidson@apple.com>
Get rid of IDBFactoryBackendLevelDB and IDBTransactionBackendLevelDB in IDBDatabaseBackendLevelDB.
https://bugs.webkit.org/show_bug.cgi?id=123039
Reviewed by Anders Carlsson.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::removeIDBDatabaseBackend): Stub out this new interface method.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
2013-10-18 Dan Bernstein <mitz@apple.com>
[Cocoa] WKBrowsingController accessors crash instead of returning nil
https://bugs.webkit.org/show_bug.cgi?id=123036
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(autoreleased): Return nil if the object is NULL.
2013-10-18 Anders Carlsson <andersca@apple.com>
Remove some Windows specific code from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=123034
Reviewed by Beth Dakin.
* Platform/PlatformProcessIdentifier.h:
* Shared/API/c/WKDeclarationSpecifiers.h:
* UIProcess/API/C/WKNativeEvent.h:
* UIProcess/API/C/WKPreferencesPrivate.h:
* config.h:
2013-10-18 Dan Bernstein <mitz@apple.com>
Removed the __MAC_OS_X_VERSION_MIN_REQUIRED condition from the definition of WK_API_ENABLED.
Rubber-stamped by Anders Carlsson.
* Shared/API/Cocoa/WKFoundation.h:
2013-10-17 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Proxy layer contents to the UI process
http://bugs.webkit.org/show_bug.cgi?id=123003
Reviewed by Anders Carlsson.
Proxy layer contents to the UI process. Contents are painted into ShareableBitmaps
for now, and are fully repainted on any invalidation. Also, contents do not respect
any kind of scale or use of contentsRect/etc.
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
Store/encode/decode/dump the new RemoteLayerBackingStore.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::commit):
Fix a mistake where contentsRect was getting reset when contentsScale changed.
Set the layer contents when the backing store changes.
* WebKit2.xcodeproj/project.pbxproj:
Add RemoteLayerBackingStore.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::recursiveBuildTransaction):
Paint while building our transaction, and mark the backing store as changed
if we did any painting.
(PlatformCALayerRemote::ensureBackingStore):
Keep the backing store's properties up-to-date with our layer.
(PlatformCALayerRemote::setNeedsDisplay):
Inform the backing store that it needs to paint.
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
* WebProcess/WebPage/mac/RemoteLayerBackingStore.h: Added.
* WebProcess/WebPage/mac/RemoteLayerBackingStore.mm: Added.
(RemoteLayerBackingStore::RemoteLayerBackingStore):
(RemoteLayerBackingStore::encode):
(RemoteLayerBackingStore::decode):
Encode/decode our ShareableBitmap (via its handle) and size.
(RemoteLayerBackingStore::setNeedsDisplay):
For now, repaint the world.
(RemoteLayerBackingStore::display):
Create a new bitmap if needed, and paint into it.
2013-10-17 Dan Bernstein <mitz@apple.com>
Fixed a typo in the definition of WK_API_ENABLED.
* Shared/API/Cocoa/WKFoundation.h: It’s 101000, not 10100.
2013-10-17 Dan Bernstein <mitz@apple.com>
Add and deploy WK_API_ENABLED guards
https://bugs.webkit.org/show_bug.cgi?id=123008
Reviewed by Darin Adler.
* Shared/API/Cocoa: Added.
* Shared/API/Cocoa/WKFoundation.h: Added. Defined WK_API_ENABLED based on whether the
Objective-C API should be enabled in the current configuration.
* Shared/mac/ObjCObjectGraphCoders.mm:
(WebKit::typeFromObject): Changed to use WK_API_ENABLED.
(WebKit::WebContextObjCObjectGraphEncoderImpl::encode): Ditto.
(WebKit::WebContextObjCObjectGraphDecoderImpl::decode): Ditto.
(WebKit::InjectedBundleObjCObjectGraphEncoderImpl::encode): Ditto.
(WebKit::InjectedBundleObjCObjectGraphDecoderImpl::decode): Ditto.
* UIProcess/API/mac/WKTypeRefWrapper.h: Ditto.
* UIProcess/API/mac/WKTypeRefWrapper.mm: Ditto.
* UIProcess/API/mac/WebKit2.h: Imported WKFoundation.h.
* WebKit2.xcodeproj/project.pbxproj: Added new Cocoa group in Shared/API. Added
WKFoundation.h as a public header.
* WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
* WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
* WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
* WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:
* WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:
* WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
* WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
* WebProcess/InjectedBundle/API/mac/WKDOMNodePrivate.h:
* WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
* WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
* WebProcess/InjectedBundle/API/mac/WKDOMRangePrivate.h:
* WebProcess/InjectedBundle/API/mac/WKDOMText.h:
* WebProcess/InjectedBundle/API/mac/WKDOMText.mm:
* WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:
* WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInPrivate.h:
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::load):
2013-10-17 Csaba Osztrogonác <ossy@webkit.org>
[WK2] Speculative buildfixes for GTK and EFL after r157582.
* CMakeLists.txt:
* GNUmakefile.am:
2013-10-17 Martin Hock <mhock@apple.com>
Refactor stored website data APIs
https://bugs.webkit.org/show_bug.cgi?id=122781
Reviewed by Brady Eidson.
Add WebOriginDataManager along with corresponding class
WebOriginDataManagerProxy and API WKOriginDataManager.
Currently, the new files are unused.
WKOriginDataManager should subsume the functionality of:
WKApplicationCacheManager, WKCookieManager, WKDatabaseManager,
WKKeyValueStorageManager, WKMediaCacheManager,
WKPluginSiteDataManager, and WKResourceCacheManager.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* Shared/API/c/WKBase.h:
* Shared/APIObject.h:
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetOriginDataManager):
* UIProcess/API/C/WKContext.h:
* UIProcess/API/C/WKOriginDataManager.cpp: Added.
(WKOriginDataManagerGetTypeID):
(WKOriginDataManagerGetOrigins):
(WKOriginDataManagerDeleteEntriesForOrigin):
(WKOriginDataManagerDeleteAllEntries):
(WKOriginDataManagerStartObservingChanges):
(WKOriginDataManagerStopObservingChanges):
(WKOriginDataManagerSetChangeClient):
* UIProcess/API/C/WKOriginDataManager.h: Added.
* UIProcess/WebOriginDataManagerProxy.cpp: Added.
(WebKit::WebOriginDataManagerProxy::supplementName):
(WebKit::WebOriginDataManagerProxy::create):
(WebKit::WebOriginDataManagerProxy::WebOriginDataManagerProxy):
(WebKit::WebOriginDataManagerProxy::~WebOriginDataManagerProxy):
(WebKit::WebOriginDataManagerProxy::contextDestroyed):
(WebKit::WebOriginDataManagerProxy::processDidClose):
(WebKit::WebOriginDataManagerProxy::shouldTerminate):
(WebKit::WebOriginDataManagerProxy::refWebContextSupplement):
(WebKit::WebOriginDataManagerProxy::derefWebContextSupplement):
(WebKit::WebOriginDataManagerProxy::getOrigins):
(WebKit::WebOriginDataManagerProxy::didGetOrigins):
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin):
(WebKit::WebOriginDataManagerProxy::deleteAllEntries):
(WebKit::WebOriginDataManagerProxy::startObservingChanges):
(WebKit::WebOriginDataManagerProxy::stopObservingChanges):
(WebKit::WebOriginDataManagerProxy::setChangeClient):
(WebKit::WebOriginDataManagerProxy::didChange):
* UIProcess/WebOriginDataManagerProxy.h: Added.
* UIProcess/WebOriginDataManagerProxy.messages.in: Added.
* UIProcess/WebOriginDataManagerProxyChangeClient.cpp: Added.
(WebKit::WebOriginDataManagerProxyChangeClient::didChange):
* UIProcess/WebOriginDataManagerProxyChangeClient.h: Added.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/OriginData/WebOriginDataManager.cpp: Added.
(WebKit::WebOriginDataManager::supplementName):
(WebKit::WebOriginDataManager::WebOriginDataManager):
(WebKit::WebOriginDataManager::getOrigins):
(WebKit::WebOriginDataManager::deleteEntriesForOrigin):
(WebKit::WebOriginDataManager::deleteAllEntries):
(WebKit::WebOriginDataManager::startObservingChanges):
(WebKit::WebOriginDataManager::stopObservingChanges):
* WebProcess/OriginData/WebOriginDataManager.h: Added.
* WebProcess/OriginData/WebOriginDataManager.messages.in: Added.
2013-10-17 Brady Eidson <beidson@apple.com>
Blind attempt at gtk-wk2 build fix.
* GNUmakefile.am:
2013-10-17 Brady Eidson <beidson@apple.com>
Add scaffolding for IDBDatabaseBackends in Web and Database processes
https://bugs.webkit.org/show_bug.cgi?id=122971
Reviewed by Tim Horton.
This patch:
- Adds a WebProcessIDBDatabaseBackend
- Adds a DatabaseProcessIDBDatabaseBackend
- Establishes the basic messaging between them
- Actually creates those backends as the result of an indexedDB.open() call from javascript
* DerivedSources.make:
* WebKit2.xcodeproj/project.pbxproj:
* Platform/Logging.h:
Hook up messaging so (Web/Database)ProcessIDBDatabaseBackends can message each other:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didReceiveMessage):
(WebKit::DatabaseToWebProcessConnection::establishIDBDatabaseBackend):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
(WebKit::DatabaseToWebProcessConnection::connection):
* DatabaseProcess/DatabaseToWebProcessConnection.messages.in: Added.
DatabaseProcess side of an IDBDatabaseBackend:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBDatabaseBackend.cpp:
(WebKit::DatabaseProcessIDBDatabaseBackend::DatabaseProcessIDBDatabaseBackend):
(WebKit::DatabaseProcessIDBDatabaseBackend::~DatabaseProcessIDBDatabaseBackend):
(WebKit::DatabaseProcessIDBDatabaseBackend::openConnection):
(WebKit::DatabaseProcessIDBDatabaseBackend::messageSenderConnection):
* DatabaseProcess/IndexedDB/DatabaseProcessIDBDatabaseBackend.h: Added.
(WebKit::DatabaseProcessIDBDatabaseBackend::create):
* DatabaseProcess/IndexedDB/DatabaseProcessIDBDatabaseBackend.messages.in: Added.
WebProcess side of an IDBDatabaseBackend:
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp: Added.
(WebKit::generateBackendIdentifier):
(WebKit::WebProcessIDBDatabaseBackend::WebProcessIDBDatabaseBackend):
(WebKit::WebProcessIDBDatabaseBackend::~WebProcessIDBDatabaseBackend):
(WebKit::WebProcessIDBDatabaseBackend::openConnection):
(WebKit::WebProcessIDBDatabaseBackend::createObjectStore):
(WebKit::WebProcessIDBDatabaseBackend::deleteObjectStore):
(WebKit::WebProcessIDBDatabaseBackend::createTransaction):
(WebKit::WebProcessIDBDatabaseBackend::close):
(WebKit::WebProcessIDBDatabaseBackend::commit):
(WebKit::WebProcessIDBDatabaseBackend::abort):
(WebKit::WebProcessIDBDatabaseBackend::createIndex):
(WebKit::WebProcessIDBDatabaseBackend::deleteIndex):
(WebKit::WebProcessIDBDatabaseBackend::get):
(WebKit::WebProcessIDBDatabaseBackend::put):
(WebKit::WebProcessIDBDatabaseBackend::setIndexKeys):
(WebKit::WebProcessIDBDatabaseBackend::setIndexesReady):
(WebKit::WebProcessIDBDatabaseBackend::openCursor):
(WebKit::WebProcessIDBDatabaseBackend::count):
(WebKit::WebProcessIDBDatabaseBackend::deleteRange):
(WebKit::WebProcessIDBDatabaseBackend::clear):
(WebKit::WebProcessIDBDatabaseBackend::messageSenderConnection):
(WebKit::WebProcessIDBDatabaseBackend::establishDatabaseProcessBackend):
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h: Added.
(WebKit::WebProcessIDBDatabaseBackend::create):
Basic shared utilities that multiple processes will need going forward:
* Shared/Databases/IndexedDB/IDBUtilities.cpp:
(WebKit::uniqueDatabaseIdentifier):
* Shared/Databases/IndexedDB/IDBUtilities.h:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::sharedDatabaseBackendMap):
(WebKit::WebIDBFactoryBackend::open): Actually establish an IDBDatabaseBackend in the DatabaseProcess
when indexedDB.open() is called, even if it does nothing for now.
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
2013-10-17 Attila Dusnoki <h047679@stud.u-szeged.hu>
[WK2] REGRESSION(r156472): scrolling coordinator is always enabled incorrectly.
https://bugs.webkit.org/show_bug.cgi?id=122958
Reviewed by Tim Horton.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Missing ENABLE(THREADED_SCROLLING) guard added.
2013-10-17 Mark Rowe <mrowe@apple.com>
<rdar://problem/15183901> WebKit2 XPC services load the wrong frameworks when running
from the staged frameworks location.
Build the XPC services with DYLD_VERSIONED_FRAMEWORK_PATH when USE_STAGING_INSTALL_PATH
is set to YES. This is necessary because there's no way to specify environment variables
to be used when an XPC service is launched.
Reviewed by Anders Carlsson.
* Configurations/BaseTarget.xcconfig: Set OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH to contain the
DYLD_VERSIONED_FRAMEWORK_PATH value when USE_STAGING_INSTALL_PATH is YES.
* Configurations/BaseXPCService.xcconfig: Include OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH in the
value of OTHER_LDFLAGS.
* Configurations/PluginService.32.xcconfig: Ditto.
* Configurations/PluginService.64.xcconfig: Ditto.
2013-10-16 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Complete support for simple layer properties
https://bugs.webkit.org/show_bug.cgi?id=122933
Reviewed by Anders Carlsson.
Add remote layer tree support for maskLayer, contentsRect, contentsScale,
minificationFilter, magnificationFilter, speed, and timeOffset.
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpProperty):
(WebKit::dumpChangedLayers):
Add the new properties.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::toCAFilterType):
(WebKit::RemoteLayerTreeHost::commit):
Apply the new properties.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::setSublayers):
(PlatformCALayerRemote::appendSublayer):
(PlatformCALayerRemote::insertSublayer):
Ensure that passed-in sublayers are always also PlatformCALayerRemote instances.
These are ASSERT_WITH_SECURITY_IMPLICATION as we will later unconditionally static_cast
them to PlatformCALayerRemote.
(PlatformCALayerRemote::setMask):
(PlatformCALayerRemote::setContentsRect):
(PlatformCALayerRemote::setMinificationFilter):
(PlatformCALayerRemote::setMagnificationFilter):
(PlatformCALayerRemote::setSpeed):
(PlatformCALayerRemote::setTimeOffset):
(PlatformCALayerRemote::contentsScale):
(PlatformCALayerRemote::setContentsScale):
Remove setFrame, store the new properties.
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
Remove setFrame, add isRemote, fix pointer side on playerLayer.
2013-10-16 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix attempt on EFL port after r157520 and r157523
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
Removed ArgumentCoder<TransformationMatrix> which caused redefinition build error
in EFL port.
2013-10-16 Anders Carlsson <andersca@apple.com>
Remove Qt sandbox process code
https://bugs.webkit.org/show_bug.cgi?id=122920
Reviewed by Geoffrey Garen.
This code was only used by the Qt port, and the other Linux-based ports are using the seccomp based sandbox.
* Shared/linux/SandboxProcess/SandboxEnvironmentLinux.cpp: Removed.
* Shared/linux/SandboxProcess/SandboxEnvironmentLinux.h: Removed.
2013-10-16 Jochen Eisinger <jochen@chromium.org>
A page should exit fullscreen mode if it opens a new popup
https://bugs.webkit.org/show_bug.cgi?id=122865
Reviewed by Jer Noble.
If a fullscreen page opens a popup, the popup would be hidden and
therefore invisible to the user. To avoid this, exit fullscreen mode
before opening a new window.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
2013-10-16 Brady Eidson <beidson@apple.com>
Blind attempt to fix non-DATABASE_PROCESS builds.
* WebProcess/WebProcess.cpp:
2013-10-16 Tim Horton <timothy_horton@apple.com>
PlatformCALayer constructor should take layer type as an argument
https://bugs.webkit.org/show_bug.cgi?id=122915
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::PlatformCALayerRemote):
Use the new LayerType argument.
2013-10-16 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Use a default instead of an environment variable
https://bugs.webkit.org/show_bug.cgi?id=122913
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView std::WebKit::]):
Use the default 'WebKit2UseRemoteLayerTreeDrawingArea' instead of
the environment variable 'WK_USE_REMOTE_LAYER_TREE_DRAWING_AREA'
to indicate that WKViews should make RemoteLayerTreeDrawingAreas.
2013-10-15 Brady Eidson <beidson@apple.com>
Flesh out the DatabaseProcess (and launch it!)
https://bugs.webkit.org/show_bug.cgi?id=122884
Reviewed by Tim Horton.
This patch adds actual process launching and basic messaging infrastructure for the DatabaseProcess.
It still does very little except exist.
Project file stuff:
* WebKit2.xcodeproj/project.pbxproj:
* DerivedSources.make:
WebContext owns the DatabaseProcess (much like the NetworkProcess):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureDatabaseProcess):
(WebKit::WebContext::getDatabaseProcessConnection):
* UIProcess/WebContext.h:
Add a basic DatabaseProcess that - for now - can only return a new Connection for a WebProcess:
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::createDatabaseToWebProcessConnection):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in: Added.
Add an object to represent a single connection to a single WebProcess:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::create):
(WebKit::DatabaseToWebProcessConnection::DatabaseToWebProcessConnection):
(WebKit::DatabaseToWebProcessConnection::~DatabaseToWebProcessConnection):
(WebKit::DatabaseToWebProcessConnection::didReceiveMessage):
(WebKit::DatabaseToWebProcessConnection::didClose):
(WebKit::DatabaseToWebProcessConnection::didReceiveInvalidMessage):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
Basic DatabaseProcessProxy with the ability to ask the DatabaseProcess for a connection to hand back to a WebProcess:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::DatabaseProcessProxy):
(WebKit::DatabaseProcessProxy::getDatabaseProcessConnection):
(WebKit::DatabaseProcessProxy::didCreateDatabaseToWebProcessConnection):
(WebKit::DatabaseProcessProxy::didFinishLaunching):
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.messages.in: Added.
Add an object to represent a WebProcess’s connection to a DatabaseProcess:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::WebToDatabaseProcessConnection):
(WebKit::WebToDatabaseProcessConnection::~WebToDatabaseProcessConnection):
(WebKit::WebToDatabaseProcessConnection::didReceiveMessage):
(WebKit::WebToDatabaseProcessConnection::didClose):
(WebKit::WebToDatabaseProcessConnection::didReceiveInvalidMessage):
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
(WebKit::WebToDatabaseProcessConnection::create):
(WebKit::WebToDatabaseProcessConnection::connection):
Give WebProcess(Proxy) an accessor for a Web -> Database process connection:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::webToDatabaseProcessConnectionClosed):
(WebKit::WebProcess::webToDatabaseProcessConnection):
(WebKit::WebProcess::ensureWebToDatabaseProcessConnection):
* WebProcess/WebProcess.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getDatabaseProcessConnection):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::open): Access the database process connection to test that it works.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createIDBFactoryBackend): Keep non-DATABASE_PROCESS builds working.
2013-10-16 Tim Horton <timothy_horton@apple.com>
RemoteLayerTree: Add support for more layer properties and transform layers
https://bugs.webkit.org/show_bug.cgi?id=122906
Reviewed by Anders Carlsson.
Add support for name, border width, border color, opacity, transform, sublayer transform,
hidden, geometry flipped, double sided, masks to bounds, and opaque layer properties.
Factor layer creation out from layer changes, so that we can create layers of the correct
type. Use this mechanism to create CATransformLayers when handed a LayerTypeTransformLayer.
* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
* Shared/WebCoreArgumentCoders.h:
Add coders for TransformationMatrix.
* Shared/mac/RemoteLayerTreeTransaction.h:
Add the new LayerChange values.
(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
LayerProperties::layerChanges should be a LayerChange.
(WebKit::RemoteLayerTreeTransaction::createdLayers):
Expose the list of newly created layers (for RemoteLayerTreeHost's consumption).
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
Add (and support coding) a new LayerCreationProperties struct, which is currently
just a pair of LayerID and PlatformCALayer::LayerType. Additional properties may follow.
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
Encode and decode all of the new layer properties.
Encode changedProperties as an enum, not an unsigned.
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
Encode and decode the list of newly created layers.
(WebKit::RemoteLayerTreeTransaction::setCreatedLayers):
Setter for the list of newly created layers, which comes from the
RemoteLayerTreeContext at commit time.
(WebKit::dumpProperty):
Helper function to dump TransformationMatrix instances.
(WebKit::dumpChangedLayers):
Dump all of the new layer properties.
(WebKit::RemoteLayerTreeTransaction::dump):
Dump the list of newly created layers.
* UIProcess/mac/RemoteLayerTreeHost.h:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::cgColorFromColor):
Factor out the code to make a CGColor from a WebCore::Color, as we need it
for both border and background color.
(WebKit::RemoteLayerTreeHost::commit):
Create layers before applying changes, using the new list of newly created layers.
When applying changes, ensure that the layer we're interested in was already created.
Rename "sublayer" to "layer", and use dot notation everywhere.
Apply all the new layer properties to the layers.
(WebKit::RemoteLayerTreeHost::getLayer):
(WebKit::RemoteLayerTreeHost::createLayer):
Separate creating a new layer from retrieving it by ID.
Ensure that a layer doesn't already exist when creating it.
Support creating CATransformLayers.
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
Disable accelerated animations, as we don't support proxying animations yet.
This makes GraphicsLayer fall back to software animations, which already work wonderfully remotely.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::PlatformCALayerRemote):
Inform the RemoteLayerTreeContext of the creation of every PlatformCALayerRemote.
(PlatformCALayerRemote::removeFromSuperlayer):
(PlatformCALayerRemote::replaceSublayer):
(PlatformCALayerRemote::adoptSublayers):
Assert when we hit a few critical unimplemented methods that would
leave the layer tree in a broken state.
(PlatformCALayerRemote::isOpaque):
(PlatformCALayerRemote::setOpaque):
(PlatformCALayerRemote::transform):
(PlatformCALayerRemote::setTransform):
(PlatformCALayerRemote::sublayerTransform):
(PlatformCALayerRemote::setSublayerTransform):
(PlatformCALayerRemote::setHidden):
(PlatformCALayerRemote::setGeometryFlipped):
(PlatformCALayerRemote::isDoubleSided):
(PlatformCALayerRemote::setDoubleSided):
(PlatformCALayerRemote::masksToBounds):
(PlatformCALayerRemote::setMasksToBounds):
(PlatformCALayerRemote::setBorderWidth):
(PlatformCALayerRemote::setBorderColor):
(PlatformCALayerRemote::opacity):
(PlatformCALayerRemote::setOpacity):
(PlatformCALayerRemote::setName):
Proxy all of these properties via RemoteLayerTreeTransaction.
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
Add storage for the list of newly created layers.
Use LayerID for the list of destroyed layers.
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::layerWasCreated):
Store the ID and type of the newly created layer to be pushed to the UI process later.
(WebKit::RemoteLayerTreeContext::flushLayers):
Push the created and destroyed layers to the transaction *after* flushing
GraphicsLayers, so that any changes to e.g. structural layers will not be missed.
2013-10-16 Csaba Osztrogonác <ossy@webkit.org>
[WK2][Efl][CMake] Add support for ENABLE_NETWORK_PROCESS to the build system
https://bugs.webkit.org/show_bug.cgi?id=110139
Reviewed by Laszlo Gombos.
Original patch by Balazs Kelemen <kbalazs@webkit.org>
* CMakeLists.txt:
* PlatformEfl.cmake:
2013-10-16 Robert Plociennik <r.plociennik@samsung.com>
[EFL] Minibrowser can't load child window's location
https://bugs.webkit.org/show_bug.cgi?id=122485
Reviewed by Gyuyoung Kim.
EwkView::createNewPage(), which is only called during handling of
Messages::WebPageProxy::CreateNewPage message from WebProcess, no longer passes
the URL to window_create(). As a result, no Messages::WebPage::LoadURL message
is sent back, that would load the same URL twice and effectively cancel any
other scheduled navigation inside WebProcess.
Additionally, since the url parameter in MiniBrowser's implementation of
window_create() is only used internally and is prone to bugs as demonstrated
in r139303 (d7f10c8), it has been removed in favour of explicit calls to
ewk_view_url_set().
* UIProcess/API/efl/EwkView.cpp:
(EwkView::createNewPage): No longer passes the URL to window_create() impl.
* UIProcess/API/efl/ewk_view.h: window_create() no longer has the url parameter.
* UIProcess/API/efl/tests/test_ewk2_window_features.cpp: Test methods updated to
comply with the API change.
(EWK2WindowFeaturesTest::createDefaultWindow): Ditto.
(EWK2WindowFeaturesTest::createWindow): Ditto.
2013-10-15 Jae Hyun Park <jae.park@company100.net>
Unreviewed. Build fix after r157476.
* GNUmakefile.am:
2013-10-15 Sergio Correia <sergio.correia@openbossa.org>
[EFL][WK2] Make SeccompFilters build again after r156349 and r156353
https://bugs.webkit.org/show_bug.cgi?id=122872
Reviewed by Anders Carlsson.
* Shared/linux/SeccompFilters/SeccompBroker.cpp:
(WebKit::SeccompBrokerClient::dispatch): Fix usage of extinct 'create'
methods of ArgumentEncoder/ArgumentDecoder.
(WebKit::SeccompBroker::runLoop): Ditto.
2013-10-15 Jinwoo Song <jinwoo7.song@samsung.com>
Removed argument coders for FloatPoint3D in CoodinatedGraphicsArgumentCoders.
https://bugs.webkit.org/show_bug.cgi?id=122875
Reviewed by Gyuyoung Kim.
Argument coders for FloatPoint3D is added in WebCoreArgumentCoders after r157478
and it caused redefinition build error in EFL port.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
2013-10-15 Dean Jackson <dino@apple.com>
Add ENABLE_WEB_ANIMATIONS flag
https://bugs.webkit.org/show_bug.cgi?id=122871
Reviewed by Tim Horton.
Eventually might be http://dev.w3.org/fxtf/web-animations/
but this is just engine-internal work at the moment.
* Configurations/FeatureDefines.xcconfig:
2013-10-15 Tim Horton <timothy_horton@apple.com>
Add a PlatformCALayer subclass that proxies its property changes across the process boundary
https://bugs.webkit.org/show_bug.cgi?id=122773
Reviewed by Anders Carlsson.
PlatformCALayerRemote coordinates with RemoteLayerTreeDrawingArea and friends
to enable cross-process proxying of the hierarchy of compositing layers.
In the Web process, we have GraphicsLayerCARemote, which owns 1+ PlatformCALayerRemote(s).
Unlike PlatformCALayer{Mac, Win}, which own PlatformLayers (CALayer/CACFLayer),
PlatformCALayerRemote stores any changes to its properties in a struct, and keeps track of
which properties have changed since the last commit. Commits are scheduled and performed by
RemoteLayerTreeContext, on RemoteLayerTreeDrawingArea's behalf, and result in
RemoteLayerTreeTransaction encoding said property changes and throwing them across
to the UI process, where RemoteLayerTreeHost applies them to a tree of CALayers kept there.
This code can be enabled by running with the WK_USE_REMOTE_LAYER_TREE_DRAWING_AREA
environment variable set.
* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::decode):
(CoreIPC::encode):
* Shared/WebCoreArgumentCoders.h:
Add argument coders for FloatPoint3D.
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
(WebKit::RemoteLayerTreeTransaction::changedLayers):
(WebKit::RemoteLayerTreeTransaction::destroyedLayers):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::dumpChangedLayers):
Add support for background color and anchor point in the layer transaction.
Make layer position a 3D point because that's what it really is.
(WebKit::RemoteLayerTreeTransaction::layerPropertiesChanged):
The logic in layerPropertiesChanged is moved into PlatformCALayerRemote.
* UIProcess/WebPageProxy.h:
Include PlatformLayer.h; it seems annoying to successfully forward-declare
PlatformLayer because of the difference in definition between Objective-C and C++.
Drive-by un-indent some namespace contents and use OBJC_CLASS.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::sizeDidChange):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didUpdateGeometry):
(WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry):
Send geometry updates to the RemoteLayerTreeDrawingArea.
* UIProcess/mac/RemoteLayerTreeHost.h:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(nullActionsDictionary):
(WebKit::RemoteLayerTreeHost::commit):
Apply layer property changes to the named sublayer.
(WebKit::RemoteLayerTreeHost::getOrCreateLayer):
Create CALayers instead of GraphicsLayers.
Ensure that they won't perform implicit animations.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
This should take a PlatformLayer instead of a GraphicsLayer, since we don't have
GraphicsLayers in the UIProcess.
* WebKit2.xcodeproj/project.pbxproj:
Add GraphicsLayerCARemote and PlatformCALayerRemote, remove RemoteGraphicsLayer.
* WebProcess/WebPage/mac/RemoteGraphicsLayer.h: Removed.
* WebProcess/WebPage/mac/RemoteGraphicsLayer.mm: Removed.
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::RemoteLayerTreeContext):
(WebKit::RemoteLayerTreeContext::setRootLayer):
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
(WebKit::RemoteLayerTreeContext::createGraphicsLayer):
(WebKit::RemoteLayerTreeContext::flushLayers):
Build our transaction while flushing; it has no reason to exist outside of that scope.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::graphicsLayerFactory):
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
(WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush):
(WebKit::RemoteLayerTreeDrawingArea::updateGeometry):
Fix a capitalization typo.
Update the WebPage's (and thus WebCore's) size when updateGeometry() is called.
* WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp: Added.
(WebKit::GraphicsLayerCARemote::~GraphicsLayerCARemote):
(WebKit::GraphicsLayerCARemote::filtersCanBeComposited):
(WebKit::GraphicsLayerCARemote::createPlatformCALayer):
Added. Delegate to PlatformCALayerRemote. Don't allow creation of a
GraphicsLayerCARemote given a PlatformLayer, because with UI process compositing,
there should be no PlatformLayer instances in the Web process.
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h: Added.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp: Added.
(generateLayerID):
Generate a layer ID for identification across processes.
(PlatformCALayerRemote::~PlatformCALayerRemote):
Inform the RemoteLayerTreeContext that we've been destroyed, so it can convey
that information to the UI process and the corresponding CALayer can be destroyed.
(PlatformCALayerRemote::recursiveBuildTransaction):
Recursively accumulate changes in layer state on a RemoteLayerTreeTransaction.
The rest of this file is mostly an empty implementation of PlatformCALayer.
A few properties are implemented so far; see below.
(PlatformCALayerRemote::setSublayers):
(PlatformCALayerRemote::removeAllSublayers):
(PlatformCALayerRemote::appendSublayer):
(PlatformCALayerRemote::insertSublayer):
Update our list of sublayers, and note that our children have changed.
recursiveBuildTransaction() will walk our sublayers and record their IDs in the transaction.
(PlatformCALayerRemote::bounds):
(PlatformCALayerRemote::setBounds):
(PlatformCALayerRemote::position):
(PlatformCALayerRemote::setPosition):
(PlatformCALayerRemote::anchorPoint):
(PlatformCALayerRemote::setAnchorPoint):
(PlatformCALayerRemote::backgroundColor):
(PlatformCALayerRemote::setBackgroundColor):
Trivial implementations of basic layer properties, storing the new state in
our LayerProperties struct and noting that they changed in the current commit.
Properties with getters will return the last value that was set on the LayerProperties,
so we don't clear the whole struct at the end of the transaction, just the mask of changed properties.
* WebProcess/WebPage/mac/PlatformCALayerRemote.h: Added.
2013-10-15 Brady Eidson <beidson@apple.com>
Move WebProcess/IndexedDB to WebProcess/Databases/IndexedDB
Rubberstamped by Alexey Proskuryakov.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp: Renamed from Source/WebKit2/WebProcess/IndexedDB/WebIDBFactoryBackend.cpp.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h: Renamed from Source/WebKit2/WebProcess/IndexedDB/WebIDBFactoryBackend.h.
2013-10-15 Brady Eidson <beidson@apple.com>
Add a skeleton Database process for future usage by Indexed Database.
https://bugs.webkit.org/show_bug.cgi?id=122849
Reviewed by Sam Weinig.
This mostly our typical "Add a new process type" boilerplate.
* Configurations/DatabaseProcess.xcconfig: Added.
* Configurations/DatabaseService.Development.xcconfig: Added.
* Configurations/DatabaseService.xcconfig: Added.
* WebKit2.xcodeproj/project.pbxproj:
* WebKit2Prefix.h:
* DatabaseProcess/DatabaseProcess.cpp: Added.
(WebKit::DatabaseProcess::shared):
(WebKit::DatabaseProcess::DatabaseProcess):
(WebKit::DatabaseProcess::~DatabaseProcess):
(WebKit::DatabaseProcess::initializeConnection):
(WebKit::DatabaseProcess::shouldTerminate):
(WebKit::DatabaseProcess::didReceiveMessage):
(WebKit::DatabaseProcess::didClose):
(WebKit::DatabaseProcess::didReceiveInvalidMessage):
(WebKit::DatabaseProcess::initializeProcess):
(WebKit::DatabaseProcess::initializeProcessName):
(WebKit::DatabaseProcess::initializeSandbox):
* DatabaseProcess/DatabaseProcess.h: Added.
* DatabaseProcess/EntryPoint/mac/LegacyProcess/DatabaseProcessMain.mm: Added.
(DatabaseProcessMain):
* DatabaseProcess/EntryPoint/mac/LegacyProcess/Info.plist: Added.
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist: Added.
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist: Added.
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm: Added.
(DatabaseServiceInitializer):
* DatabaseProcess/mac/DatabaseProcessMac.mm: Added.
(WebKit::DatabaseProcess::initializeProcess):
(WebKit::DatabaseProcess::initializeProcessName):
(WebKit::DatabaseProcess::initializeSandbox):
* UIProcess/Databases/DatabaseProcessProxy.cpp: Added.
(WebKit::DatabaseProcessProxy::create):
(WebKit::DatabaseProcessProxy::DatabaseProcessProxy):
(WebKit::DatabaseProcessProxy::~DatabaseProcessProxy):
(WebKit::DatabaseProcessProxy::getLaunchOptions):
(WebKit::DatabaseProcessProxy::connectionWillOpen):
(WebKit::DatabaseProcessProxy::connectionWillClose):
(WebKit::DatabaseProcessProxy::didReceiveMessage):
(WebKit::DatabaseProcessProxy::didClose):
(WebKit::DatabaseProcessProxy::didReceiveInvalidMessage):
(WebKit::DatabaseProcessProxy::didFinishLaunching):
* UIProcess/Databases/DatabaseProcessProxy.h: Added.
* UIProcess/Databases/mac/DatabaseProcessProxyMac.mm: Added.
(WebKit::shouldUseXPC):
(WebKit::DatabaseProcessProxy::platformGetLaunchOptions):
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::processTypeAsString):
(WebKit::ProcessLauncher::getProcessTypeFromString):
* UIProcess/Launcher/ProcessLauncher.h:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::serviceName):
(WebKit::createProcess):
2013-10-14 Csaba Osztrogonác <ossy@webkit.org>
[WK2][Efl][Soup] Make NetworkProcessMainUnix handle proxy settings.
https://bugs.webkit.org/show_bug.cgi?id=118388
Reviewed by Carlos Garcia Campos.
Original patch by Kwang Yul Seo <skyul@company100.net> .
Proxy configuration should honor the no_proxy environment variable
same to WebProcess. It is necessary not to change the current behaviour.
See https://bugs.webkit.org/show_bug.cgi?id=91747 for details.
The following things were fixed by Csaba Osztrogonác:
- moved session variable before #if not to have conflict with https://bugs.webkit.org/show_bug.cgi?id=118343
- added GRefPtr.h include
- fixed ifdef guards
* NetworkProcess/unix/NetworkProcessMainUnix.cpp:
(WebKit::NetworkProcessMain):
Copied from WebProcessMainEfl.cpp.
2013-10-13 Darin Adler <darin@apple.com>
Deprecate or remove deleteAllValues functions; there are only a few call sites left
https://bugs.webkit.org/show_bug.cgi?id=122738
Reviewed by Anders Carlsson.
* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::pluginDestroyed): Renamed deleteAllValues to
deprecatedDeleteAllValues.
== Rolled over to ChangeLog-2013-10-13 ==