Title: [217474] trunk
Revision
217474
Author
[email protected]
Date
2017-05-25 21:24:10 -0700 (Thu, 25 May 2017)

Log Message

_WKUserStyleSheet and WKUserScript leak string data
https://bugs.webkit.org/show_bug.cgi?id=172583
<rdar://problem/32395209>

Patch by Joseph Pecoraro <[email protected]> on 2017-05-25
Reviewed by Sam Weinig.

Source/WebKit2:

* 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.

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:
We should not have been adopting an autoreleased object.

Modified Paths

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()]);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to