Title: [184253] branches/safari-601.1.32-branch/Source/WebKit2
- Revision
- 184253
- Author
- [email protected]
- Date
- 2015-05-12 21:17:20 -0700 (Tue, 12 May 2015)
Log Message
Merge r184026. rdar://problem/20757196
Modified Paths
Diff
Modified: branches/safari-601.1.32-branch/Source/WebKit2/ChangeLog (184252 => 184253)
--- branches/safari-601.1.32-branch/Source/WebKit2/ChangeLog 2015-05-13 04:17:17 UTC (rev 184252)
+++ branches/safari-601.1.32-branch/Source/WebKit2/ChangeLog 2015-05-13 04:17:20 UTC (rev 184253)
@@ -2,113 +2,117 @@
Dana Burkart <[email protected]
[email protected]>
- Merge r183937. rdar://problem/20458697
+ Merge r184026. rdar://problem/20757196
- 2015-05-07 Jer Noble <[email protected]>
+ 2015-05-08 Dan Bernstein <[email protected]>
- [WK2][Fullscreen] Fullscreen video does not enter low-power mode.
- https://bugs.webkit.org/show_bug.cgi?id=144744
+ <rdar://problem/20757196> NSInternalInconsistencyException raised in -[NSString encodeWithCoder:] beneath createEncodedObject when using WKRemoteObjectEncoder for Safari AutoFill
+ https://bugs.webkit.org/show_bug.cgi?id=144818
- Reviewed by Darin Adler.
+ Reviewed by Anders Carlsson.
- One of the requirements of entering low-power compositing mode is that no masking layers
- are present in any of the ancestors of the fullscreen video layer. So once our fullscreen
- transition animation completes, remove the mask layer entirely from our clipping layer.
- This means it needs to be re-created and added when entering fullscreen, rather than just
- at initialization time.
+ Allow NSString instances that contain unpaired surrogates to be encoded by
+ WKRemoteObjectCoder by encoding them directly rather than using
+ -[NSString encodeWithCoder:].
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (-[WKFullScreenWindowController initWithWindow:webView:]):
- (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
- (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
+ * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
+ (encodeString): Added. Sets an API::String as the object to encode.
+ (encodeObject): Changed to use encodeString for NSString instances.
+ (decodeString): Added. Gets an API::String from the dictionary and returns it as an
+ NSString.
+ (decodeObject): Changed to use decodeString for NSString instances.
2015-05-12 Dana Burkart
Dana Burkart <[email protected]
[email protected]>
- Merge r183911. rdar://problem/20702435
+ Merge r183937. rdar://problem/20458697
- 2015-05-06 Jer Noble <[email protected]>
+ 2015-05-07 Jer Noble <[email protected]>
- [WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped in fullscreen mode.
- https://bugs.webkit.org/show_bug.cgi?id=144716
+ [WK2][Fullscreen] Fullscreen video does not enter low-power mode.
+ https://bugs.webkit.org/show_bug.cgi?id=144744
Reviewed by Darin Adler.
- We create a mask animation for the transition between windowed and fullscreen modes, on the
- assumption that the element being taken into fullscreen mode does not have visible children
- who extend beyond that elements bounds. This assumption breaks down in the case where div
- with absolutely positioned children is taken fullscreen. While we can't necessarily make the
- transition look correct in this case, we can remove the mask after the transition completes.
+ One of the requirements of entering low-power compositing mode is that no masking layers
+ are present in any of the ancestors of the fullscreen video layer. So once our fullscreen
+ transition animation completes, remove the mask layer entirely from our clipping layer.
+ This means it needs to be re-created and added when entering fullscreen, rather than just
+ at initialization time.
* UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController initWithWindow:webView:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
- * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
- (WebKit::removeAllMediaKeyStorageForOriginPath):
+ (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
2015-05-12 Dana Burkart
Dana Burkart <[email protected]
[email protected]>
- Merge r183909. rdar://problem/18894598
+ Merge r183911. rdar://problem/20702435
- 2015-05-06 Daniel Bates <[email protected]>
+ 2015-05-06 Jer Noble <[email protected]>
- [iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background
- https://bugs.webkit.org/show_bug.cgi?id=144657
- <rdar://problem/18894598>
+ [WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped in fullscreen mode.
+ https://bugs.webkit.org/show_bug.cgi?id=144716
- Reviewed by Andy Estes.
+ Reviewed by Darin Adler.
- Pause and resume the database thread when the UIProcess enters and leaves the background,
- respectively, so that we avoid WebProcess termination due to holding a locked SQLite
- database file when the WebProcess is suspended. This behavior matches the analagous
- behavior in Legacy WebKit.
+ We create a mask animation for the transition between windowed and fullscreen modes, on the
+ assumption that the element being taken into fullscreen mode does not have visible children
+ who extend beyond that elements bounds. This assumption breaks down in the case where div
+ with absolutely positioned children is taken fullscreen. While we can't necessarily make the
+ transition look correct in this case, we can remove the mask after the transition completes.
- * UIProcess/WebPageProxy.h:
- * UIProcess/ios/WKContentView.mm:
- (-[WKContentView _applicationDidEnterBackground:]): Call WebPageProxy::applicationDidEnterBackground()
- when the UIProcess enters the background.
- * UIProcess/ios/WebPageProxyIOS.mm:
- (WebKit::WebPageProxy::applicationDidEnterBackground): Added; notify the WebProcess to pause the database thread.
- We temporarily take out background assertion on the WebProcess before sending this notification to ensure that the
- WebProcess is running to receive it. We'll release this assertion when the WebProcess replies that it received the
- notification.
- * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
- (WebKit::WebDatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseManager::setPauseAllDatabases().
- * WebProcess/WebCoreSupport/WebDatabaseManager.h:
- * WebProcess/WebPage/WebPage.h:
- * WebProcess/WebPage/WebPage.messages.in: Add message ApplicationDidEnterBackground(). Also,
- add empty lines to help demarcate this message and the other UIKit application lifecycle-related
- messages from the rest of the list of messages.
- * WebProcess/WebPage/ios/WebPageIOS.mm:
- (WebKit::WebPage::applicationWillEnterForeground): Resume the database thread.
- (WebKit::WebPage::applicationDidEnterBackground): Pause the database thread.
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
+ * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
+ (WebKit::removeAllMediaKeyStorageForOriginPath):
2015-05-12 Dana Burkart
- Dana Burkart <[email protected]>
+ Dana Burkart <[email protected]
+ [email protected]>
- Merge r183942. rdar://problem/20049088
+ Merge r183909. rdar://problem/18894598
- 2015-05-06 Dean Jackson <[email protected]>
+ 2015-05-06 Daniel Bates <[email protected]>
- Handle backdrop views that have to tile
- https://bugs.webkit.org/show_bug.cgi?id=142317
- <rdar://problem/20049088>
+ [iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background
+ https://bugs.webkit.org/show_bug.cgi?id=144657
+ <rdar://problem/18894598>
- Reviewed by Simon Fraser.
+ Reviewed by Andy Estes.
- Take 2 - this was rolled out because Mavericks was crashing.
+ Pause and resume the database thread when the UIProcess enters and leaves the background,
+ respectively, so that we avoid WebProcess termination due to holding a locked SQLite
+ database file when the WebProcess is suspended. This behavior matches the analagous
+ behavior in Legacy WebKit.
- Add some better logging for custom appearance.
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/ios/WKContentView.mm:
+ (-[WKContentView _applicationDidEnterBackground:]): Call WebPageProxy::applicationDidEnterBackground()
+ when the UIProcess enters the background.
+ * UIProcess/ios/WebPageProxyIOS.mm:
+ (WebKit::WebPageProxy::applicationDidEnterBackground): Added; notify the WebProcess to pause the database thread.
+ We temporarily take out background assertion on the WebProcess before sending this notification to ensure that the
+ WebProcess is running to receive it. We'll release this assertion when the WebProcess replies that it received the
+ notification.
+ * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
+ (WebKit::WebDatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseManager::setPauseAllDatabases().
+ * WebProcess/WebCoreSupport/WebDatabaseManager.h:
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in: Add message ApplicationDidEnterBackground(). Also,
+ add empty lines to help demarcate this message and the other UIKit application lifecycle-related
+ messages from the rest of the list of messages.
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::applicationWillEnterForeground): Resume the database thread.
+ (WebKit::WebPage::applicationDidEnterBackground): Pause the database thread.
- * Shared/mac/RemoteLayerTreeTransaction.mm:
- (WebKit::RemoteLayerTreeTextStream::operator<<):
-
2015-05-12 Dana Burkart
Dana Burkart <[email protected]>
- Merge r183894. rdar://problem/20049088
+ Merge r183942. rdar://problem/20049088
2015-05-06 Dean Jackson <[email protected]>
@@ -118,11 +122,31 @@
Reviewed by Simon Fraser.
+ Take 2 - this was rolled out because Mavericks was crashing.
+
Add some better logging for custom appearance.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
+ 2015-05-12 Dana Burkart
+ Dana Burkart <[email protected]>
+
+ Merge r183894. rdar://problem/20049088
+
+ 2015-05-06 Dean Jackson <[email protected]>
+
+ Handle backdrop views that have to tile
+ https://bugs.webkit.org/show_bug.cgi?id=142317
+ <rdar://problem/20049088>
+
+ Reviewed by Simon Fraser.
+
+ Add some better logging for custom appearance.
+
+ * Shared/mac/RemoteLayerTreeTransaction.mm:
+ (WebKit::RemoteLayerTreeTextStream::operator<<):
+
2015-05-11 Babak Shafiei <[email protected]>
Merge r184004.
Modified: branches/safari-601.1.32-branch/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm (184252 => 184253)
--- branches/safari-601.1.32-branch/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm 2015-05-13 04:17:17 UTC (rev 184252)
+++ branches/safari-601.1.32-branch/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm 2015-05-13 04:17:20 UTC (rev 184253)
@@ -41,6 +41,7 @@
static const char* const classNameKey = "$class";
static const char* const objectStreamKey = "$objectStream";
+static const char* const stringKey = "$string";
static NSString * const selectorKey = @"selector";
static NSString * const typeStringKey = @"typeString";
@@ -213,6 +214,11 @@
}
}
+static void encodeString(WKRemoteObjectEncoder *encoder, NSString *string)
+{
+ encoder->_currentDictionary->set(stringKey, API::String::create(string));
+}
+
static void encodeObject(WKRemoteObjectEncoder *encoder, id object)
{
ASSERT(object);
@@ -235,6 +241,11 @@
return;
}
+ if ([object isKindOfClass:[NSString class]]) {
+ encodeString(encoder, object);
+ return;
+ }
+
[object encodeWithCoder:encoder];
}
@@ -546,6 +557,15 @@
return invocation;
}
+static NSString *decodeString(WKRemoteObjectDecoder *decoder)
+{
+ API::String* string = decoder->_currentDictionary->get<API::String>(stringKey);
+ if (!string)
+ [NSException raise:NSInvalidUnarchiveOperationException format:@"String missing"];
+
+ return string->string();
+}
+
static id decodeObject(WKRemoteObjectDecoder *decoder)
{
API::String* classNameString = decoder->_currentDictionary->get<API::String>(classNameKey);
@@ -563,6 +583,9 @@
if (objectClass == [NSInvocation class])
return decodeInvocation(decoder);
+ if (objectClass == [NSString class])
+ return decodeString(decoder);
+
id result = [objectClass allocWithZone:decoder.zone];
if (!result)
[NSException raise:NSInvalidUnarchiveOperationException format:@"Class \"%s\" returned nil from +alloc while being decoded", className.data()];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes