Title: [259207] trunk/Source/WebKit
Revision
259207
Author
wenson_hs...@apple.com
Date
2020-03-30 10:29:59 -0700 (Mon, 30 Mar 2020)

Log Message

[Cocoa] Minor code cleanup around WebDataListSuggestionsDropdown
https://bugs.webkit.org/show_bug.cgi?id=209747

Reviewed by Tim Horton.

Refactor WKDataListSuggestionsController and WKDataListSuggestionsControl, such that their `_dropdown`s are
`WeakPtr`s instead of raw pointers. Also, make `-showSuggestionsDropdown:` take a reference instead of a
pointer, since the argument is always `this` (and assumed to be non-null).

No change in behavior.

* UIProcess/WebDataListSuggestionsDropdown.h:
* UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(WebKit::WebDataListSuggestionsDropdownIOS::show):
(-[WKDataListSuggestionsControl showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPicker showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]):
* UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(WebKit::WebDataListSuggestionsDropdownMac::show):
(-[WKDataListSuggestionsController showSuggestionsDropdown:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (259206 => 259207)


--- trunk/Source/WebKit/ChangeLog	2020-03-30 17:17:27 UTC (rev 259206)
+++ trunk/Source/WebKit/ChangeLog	2020-03-30 17:29:59 UTC (rev 259207)
@@ -1,3 +1,26 @@
+2020-03-30  Wenson Hsieh  <wenson_hs...@apple.com>
+
+        [Cocoa] Minor code cleanup around WebDataListSuggestionsDropdown
+        https://bugs.webkit.org/show_bug.cgi?id=209747
+
+        Reviewed by Tim Horton.
+
+        Refactor WKDataListSuggestionsController and WKDataListSuggestionsControl, such that their `_dropdown`s are
+        `WeakPtr`s instead of raw pointers. Also, make `-showSuggestionsDropdown:` take a reference instead of a
+        pointer, since the argument is always `this` (and assumed to be non-null).
+
+        No change in behavior.
+
+        * UIProcess/WebDataListSuggestionsDropdown.h:
+        * UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
+        (WebKit::WebDataListSuggestionsDropdownIOS::show):
+        (-[WKDataListSuggestionsControl showSuggestionsDropdown:activationType:]):
+        (-[WKDataListSuggestionsPicker showSuggestionsDropdown:activationType:]):
+        (-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]):
+        * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
+        (WebKit::WebDataListSuggestionsDropdownMac::show):
+        (-[WKDataListSuggestionsController showSuggestionsDropdown:]):
+
 2020-03-30  David Kilzer  <ddkil...@apple.com>
 
         NetworkConnectionToWebProcess::registerFileBlobURL should validate its parameters

Modified: trunk/Source/WebKit/UIProcess/WebDataListSuggestionsDropdown.h (259206 => 259207)


--- trunk/Source/WebKit/UIProcess/WebDataListSuggestionsDropdown.h	2020-03-30 17:17:27 UTC (rev 259206)
+++ trunk/Source/WebKit/UIProcess/WebDataListSuggestionsDropdown.h	2020-03-30 17:29:59 UTC (rev 259207)
@@ -36,7 +36,7 @@
 
 class WebPageProxy;
 
-class WebDataListSuggestionsDropdown : public RefCounted<WebDataListSuggestionsDropdown> {
+class WebDataListSuggestionsDropdown : public RefCounted<WebDataListSuggestionsDropdown>, public CanMakeWeakPtr<WebDataListSuggestionsDropdown> {
 public:
     virtual ~WebDataListSuggestionsDropdown();
 

Modified: trunk/Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm (259206 => 259207)


--- trunk/Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm	2020-03-30 17:17:27 UTC (rev 259206)
+++ trunk/Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm	2020-03-30 17:29:59 UTC (rev 259207)
@@ -41,7 +41,7 @@
 static NSString * const suggestionCellReuseIdentifier = @"WKDataListSuggestionCell";
 
 @interface WKDataListSuggestionsControl : NSObject {
-    WebKit::WebDataListSuggestionsDropdownIOS* _dropdown;
+    WeakPtr<WebKit::WebDataListSuggestionsDropdownIOS> _dropdown;
     Vector<String> _suggestions;
 }
 
@@ -49,7 +49,7 @@
 
 - (instancetype)initWithInformation:(WebCore::DataListSuggestionInformation&&)information inView:(WKContentView *)view;
 - (void)updateWithInformation:(WebCore::DataListSuggestionInformation&&)information;
-- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownIOS *)dropdown activationType:(WebCore::DataListSuggestionActivationType)activationType;
+- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownIOS&)dropdown activationType:(WebCore::DataListSuggestionActivationType)activationType;
 - (void)didSelectOptionAtIndex:(NSInteger)index;
 - (void)invalidate;
 
@@ -107,7 +107,7 @@
     else
         m_suggestionsControl = adoptNS([[WKDataListSuggestionsPicker alloc] initWithInformation:WTFMove(information) inView:m_contentView]);
 
-    [m_suggestionsControl showSuggestionsDropdown:this activationType:type];
+    [m_suggestionsControl showSuggestionsDropdown:*this activationType:type];
 }
 
 void WebDataListSuggestionsDropdownIOS::handleKeydownWithIdentifier(const String&)
@@ -152,9 +152,9 @@
     _suggestions = WTFMove(information.suggestions);
 }
 
-- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownIOS *)dropdown activationType:(WebCore::DataListSuggestionActivationType)activationType
+- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownIOS&)dropdown activationType:(WebCore::DataListSuggestionActivationType)activationType
 {
-    _dropdown = dropdown;
+    _dropdown = makeWeakPtr(dropdown);
 }
 
 - (void)didSelectOptionAtIndex:(NSInteger)index
@@ -232,7 +232,7 @@
     [_pickerView selectRow:0 inComponent:0 animated:NO];
 }
 
-- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownIOS *)dropdown activationType:(WebCore::DataListSuggestionActivationType)activationType
+- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownIOS&)dropdown activationType:(WebCore::DataListSuggestionActivationType)activationType
 {
     [super showSuggestionsDropdown:dropdown activationType:activationType];
     if (activationType == WebCore::DataListSuggestionActivationType::IndicatorClicked) {
@@ -311,7 +311,7 @@
     self.view.dataListTextSuggestions = self.textSuggestions;
 }
 
-- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownIOS *)dropdown activationType:(WebCore::DataListSuggestionActivationType)activationType
+- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownIOS&)dropdown activationType:(WebCore::DataListSuggestionActivationType)activationType
 {
     [super showSuggestionsDropdown:dropdown activationType:activationType];
 

Modified: trunk/Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.mm (259206 => 259207)


--- trunk/Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.mm	2020-03-30 17:17:27 UTC (rev 259206)
+++ trunk/Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.mm	2020-03-30 17:29:59 UTC (rev 259207)
@@ -55,7 +55,7 @@
 @interface WKDataListSuggestionsController : NSObject<NSTableViewDataSource, NSTableViewDelegate>
 
 - (id)initWithInformation:(WebCore::DataListSuggestionInformation&&)information inView:(NSView *)view;
-- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownMac*)dropdown;
+- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownMac&)dropdown;
 - (void)updateWithInformation:(WebCore::DataListSuggestionInformation&&)information;
 - (void)moveSelectionByDirection:(const String&)direction;
 - (void)invalidate;
@@ -87,7 +87,7 @@
     }
 
     m_dropdownUI = adoptNS([[WKDataListSuggestionsController alloc] initWithInformation:WTFMove(information) inView:m_view]);
-    [m_dropdownUI showSuggestionsDropdown:this];
+    [m_dropdownUI showSuggestionsDropdown:*this];
 }
 
 void WebDataListSuggestionsDropdownMac::didSelectOption(const String& selectedOption)
@@ -252,7 +252,7 @@
 @end
 
 @implementation WKDataListSuggestionsController {
-    WebKit::WebDataListSuggestionsDropdownMac* _dropdown;
+    WeakPtr<WebKit::WebDataListSuggestionsDropdownMac> _dropdown;
     Vector<String> _suggestions;
     NSView *_presentingView;
 
@@ -374,9 +374,9 @@
     return NSMakeRect(NSMinX(windowRect), NSMinY(windowRect) - height - dropdownTopMargin, rect.width(), height);
 }
 
-- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownMac*)dropdown
+- (void)showSuggestionsDropdown:(WebKit::WebDataListSuggestionsDropdownMac&)dropdown
 {
-    _dropdown = dropdown;
+    _dropdown = makeWeakPtr(dropdown);
     [[_enclosingWindow contentView] addSubview:_scrollView.get()];
     [_table reload];
     [[_presentingView window] addChildWindow:_enclosingWindow.get() ordered:NSWindowAbove];
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to