Diff
Modified: trunk/Source/WebKit2/ChangeLog (217473 => 217474)
--- trunk/Source/WebKit2/ChangeLog 2017-05-26 04:19:14 UTC (rev 217473)
+++ trunk/Source/WebKit2/ChangeLog 2017-05-26 04:24:10 UTC (rev 217474)
@@ -1,3 +1,21 @@
+2017-05-25 Joseph Pecoraro <[email protected]>
+
+ _WKUserStyleSheet and WKUserScript leak string data
+ https://bugs.webkit.org/show_bug.cgi?id=172583
+ <rdar://problem/32395209>
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/API/Cocoa/WKUserScript.mm:
+ (-[WKUserScript dealloc]):
+ * UIProcess/API/Cocoa/_WKUserStyleSheet.mm:
+ (-[_WKUserStyleSheet dealloc]):
+ Follow the pattern of destructing the internal API object.
+
+ * UIProcess/API/Cocoa/WKUserScriptInternal.h:
+ * UIProcess/API/Cocoa/_WKUserStyleSheetInternal.h:
+ Remove unnecessary includes.
+
2017-05-25 Chris Dumez <[email protected]>
ASSERT(m_websiteDataStore->websiteDataStore().sessionID() == m_sessionID) in PageConfiguration::sessionID()
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserScript.mm (217473 => 217474)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserScript.mm 2017-05-26 04:19:14 UTC (rev 217473)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserScript.mm 2017-05-26 04:24:10 UTC (rev 217474)
@@ -42,6 +42,13 @@
return self;
}
+- (void)dealloc
+{
+ _userScript->~UserScript();
+
+ [super dealloc];
+}
+
- (NSString *)source
{
return _userScript->userScript().source();
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserScriptInternal.h (217473 => 217474)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserScriptInternal.h 2017-05-26 04:19:14 UTC (rev 217473)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserScriptInternal.h 2017-05-26 04:24:10 UTC (rev 217474)
@@ -28,7 +28,6 @@
#if WK_API_ENABLED
#import "APIUserScript.h"
-#import <wtf/RetainPtr.h>
namespace API {
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserStyleSheet.mm (217473 => 217474)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserStyleSheet.mm 2017-05-26 04:19:14 UTC (rev 217473)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserStyleSheet.mm 2017-05-26 04:24:10 UTC (rev 217474)
@@ -75,6 +75,13 @@
return self;
}
+- (void)dealloc
+{
+ _userStyleSheet->~UserStyleSheet();
+
+ [super dealloc];
+}
+
- (NSString *)source
{
return _userStyleSheet->userStyleSheet().source();
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserStyleSheetInternal.h (217473 => 217474)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserStyleSheetInternal.h 2017-05-26 04:19:14 UTC (rev 217473)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserStyleSheetInternal.h 2017-05-26 04:24:10 UTC (rev 217474)
@@ -28,7 +28,6 @@
#if WK_API_ENABLED
#import "APIUserStyleSheet.h"
-#import <wtf/RetainPtr.h>
namespace API {
Modified: trunk/Tools/ChangeLog (217473 => 217474)
--- trunk/Tools/ChangeLog 2017-05-26 04:19:14 UTC (rev 217473)
+++ trunk/Tools/ChangeLog 2017-05-26 04:24:10 UTC (rev 217474)
@@ -1,3 +1,14 @@
+2017-05-25 Joseph Pecoraro <[email protected]>
+
+ _WKUserStyleSheet and WKUserScript leak string data
+ https://bugs.webkit.org/show_bug.cgi?id=172583
+ <rdar://problem/32395209>
+
+ Reviewed by Sam Weinig.
+
+ * TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:
+ We should not have been adopting an autoreleased object.
+
2017-05-25 Myles C. Maxfield <[email protected]>
[WK1] iframes in layer-backed NSViews are not cleared between successive draws
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm (217473 => 217474)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm 2017-05-26 04:19:14 UTC (rev 217473)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm 2017-05-26 04:24:10 UTC (rev 217474)
@@ -36,7 +36,6 @@
#import <WebKit/_WKProcessPoolConfiguration.h>
#import <WebKit/_WKUserContentWorld.h>
#import <WebKit/_WKUserStyleSheet.h>
-#import <WebKit/_WKUserStyleSheet.h>
#import <wtf/RetainPtr.h>
#if WK_API_ENABLED
@@ -94,7 +93,7 @@
TEST(WKUserContentController, ScriptMessageHandlerBasicPostIsolatedWorld)
{
- RetainPtr<_WKUserContentWorld> world = adoptNS([_WKUserContentWorld worldWithName:@"TestWorld"]);
+ RetainPtr<_WKUserContentWorld> world = [_WKUserContentWorld worldWithName:@"TestWorld"];
RetainPtr<ScriptMessageHandler> handler = adoptNS([[ScriptMessageHandler alloc] init]);
RetainPtr<WKUserScript> userScript = adoptNS([[WKUserScript alloc] _initWithSource:@"window.webkit.messageHandlers.testHandler.postMessage('Hello')" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO legacyWhitelist:@[] legacyBlacklist:@[] userContentWorld:world.get()]);
@@ -364,7 +363,7 @@
TEST(WKUserContentController, NonCanonicalizedURL)
{
- RetainPtr<_WKUserContentWorld> world = adoptNS([_WKUserContentWorld worldWithName:@"TestWorld"]);
+ RetainPtr<_WKUserContentWorld> world = [_WKUserContentWorld worldWithName:@"TestWorld"];
RetainPtr<_WKUserStyleSheet> styleSheet = adoptNS([[_WKUserStyleSheet alloc] initWithSource:styleSheetSource forMainFrameOnly:NO legacyWhitelist:@[] legacyBlacklist:@[] baseURL:[[NSURL alloc] initWithString:@"http://CamelCase/"] userContentWorld:world.get()]);
}
@@ -439,7 +438,7 @@
{
RetainPtr<WKUserContentController> userContentController = adoptNS([[WKUserContentController alloc] init]);
- RetainPtr<_WKUserContentWorld> world = adoptNS([_WKUserContentWorld worldWithName:@"TestWorld"]);
+ RetainPtr<_WKUserContentWorld> world = [_WKUserContentWorld worldWithName:@"TestWorld"];
RetainPtr<_WKUserStyleSheet> styleSheet = adoptNS([[_WKUserStyleSheet alloc] initWithSource:styleSheetSource forMainFrameOnly:NO]);
RetainPtr<_WKUserStyleSheet> styleSheetAssociatedWithWorld = adoptNS([[_WKUserStyleSheet alloc] initWithSource:styleSheetSource forMainFrameOnly:NO legacyWhitelist:@[] legacyBlacklist:@[] userContentWorld:world.get()]);
@@ -460,7 +459,7 @@
{
RetainPtr<WKUserContentController> userContentController = adoptNS([[WKUserContentController alloc] init]);
- RetainPtr<_WKUserContentWorld> world = adoptNS([_WKUserContentWorld worldWithName:@"TestWorld"]);
+ RetainPtr<_WKUserContentWorld> world = [_WKUserContentWorld worldWithName:@"TestWorld"];
RetainPtr<_WKUserStyleSheet> styleSheet = adoptNS([[_WKUserStyleSheet alloc] initWithSource:styleSheetSource forMainFrameOnly:NO]);
RetainPtr<_WKUserStyleSheet> styleSheetAssociatedWithWorld = adoptNS([[_WKUserStyleSheet alloc] initWithSource:styleSheetSource forMainFrameOnly:NO legacyWhitelist:@[] legacyBlacklist:@[] userContentWorld:world.get()]);
@@ -485,7 +484,7 @@
{
RetainPtr<WKUserContentController> userContentController = adoptNS([[WKUserContentController alloc] init]);
- RetainPtr<_WKUserContentWorld> world = adoptNS([_WKUserContentWorld worldWithName:@"TestWorld"]);
+ RetainPtr<_WKUserContentWorld> world = [_WKUserContentWorld worldWithName:@"TestWorld"];
RetainPtr<_WKUserStyleSheet> styleSheet = adoptNS([[_WKUserStyleSheet alloc] initWithSource:styleSheetSource forMainFrameOnly:NO]);
RetainPtr<_WKUserStyleSheet> styleSheetAssociatedWithWorld = adoptNS([[_WKUserStyleSheet alloc] initWithSource:styleSheetSource forMainFrameOnly:NO legacyWhitelist:@[] legacyBlacklist:@[] userContentWorld:world.get()]);
@@ -525,7 +524,7 @@
{
RetainPtr<WKUserContentController> userContentController = adoptNS([[WKUserContentController alloc] init]);
- RetainPtr<_WKUserContentWorld> world = adoptNS([_WKUserContentWorld worldWithName:@"TestWorld"]);
+ RetainPtr<_WKUserContentWorld> world = [_WKUserContentWorld worldWithName:@"TestWorld"];
RetainPtr<WKUserScript> userScript = adoptNS([[WKUserScript alloc] initWithSource:@"" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO]);
RetainPtr<WKUserScript> userScriptAssociatedWithWorld = adoptNS([[WKUserScript alloc] _initWithSource:@"" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO legacyWhitelist:@[] legacyBlacklist:@[] userContentWorld:world.get()]);
@@ -546,7 +545,7 @@
{
RetainPtr<WKUserContentController> userContentController = adoptNS([[WKUserContentController alloc] init]);
- RetainPtr<_WKUserContentWorld> world = adoptNS([_WKUserContentWorld worldWithName:@"TestWorld"]);
+ RetainPtr<_WKUserContentWorld> world = [_WKUserContentWorld worldWithName:@"TestWorld"];
RetainPtr<WKUserScript> userScript = adoptNS([[WKUserScript alloc] initWithSource:@"" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO]);
RetainPtr<WKUserScript> userScriptAssociatedWithWorld = adoptNS([[WKUserScript alloc] _initWithSource:@"" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO legacyWhitelist:@[] legacyBlacklist:@[] userContentWorld:world.get()]);
@@ -571,7 +570,7 @@
{
RetainPtr<WKUserContentController> userContentController = adoptNS([[WKUserContentController alloc] init]);
- RetainPtr<_WKUserContentWorld> world = adoptNS([_WKUserContentWorld worldWithName:@"TestWorld"]);
+ RetainPtr<_WKUserContentWorld> world = [_WKUserContentWorld worldWithName:@"TestWorld"];
RetainPtr<WKUserScript> userScript = adoptNS([[WKUserScript alloc] initWithSource:@"" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO]);
RetainPtr<WKUserScript> userScriptAssociatedWithWorld = adoptNS([[WKUserScript alloc] _initWithSource:@"" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO legacyWhitelist:@[] legacyBlacklist:@[] userContentWorld:world.get()]);