Title: [269434] trunk/Source
Revision
269434
Author
[email protected]
Date
2020-11-05 08:46:12 -0800 (Thu, 05 Nov 2020)

Log Message

Use fewer raw pointers and more const correctness in Frame.h
https://bugs.webkit.org/show_bug.cgi?id=218598

Patch by Alex Christensen <[email protected]> on 2020-11-05
Reviewed by Youenn Fablet.

Source/WebCore:

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::opener): Deleted.
* loader/FrameLoader.h:
* page/Frame.cpp:
(WebCore::Frame::Frame):
(WebCore::Frame::page const):
(WebCore::Frame::ownerElement const):
(WebCore::Frame::ownerRenderer const):
* page/Frame.h:
(WebCore::Frame::loader const): Deleted.
(WebCore::Frame::ownerElement const): Deleted.
(WebCore::Frame::page const): Deleted.

Source/WebKit:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
(WebKit::toWebFrameLoaderClient):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (269433 => 269434)


--- trunk/Source/WebCore/ChangeLog	2020-11-05 16:21:01 UTC (rev 269433)
+++ trunk/Source/WebCore/ChangeLog	2020-11-05 16:46:12 UTC (rev 269434)
@@ -1,5 +1,25 @@
 2020-11-05  Alex Christensen  <[email protected]>
 
+        Use fewer raw pointers and more const correctness in Frame.h
+        https://bugs.webkit.org/show_bug.cgi?id=218598
+
+        Reviewed by Youenn Fablet.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::opener): Deleted.
+        * loader/FrameLoader.h:
+        * page/Frame.cpp:
+        (WebCore::Frame::Frame):
+        (WebCore::Frame::page const):
+        (WebCore::Frame::ownerElement const):
+        (WebCore::Frame::ownerRenderer const):
+        * page/Frame.h:
+        (WebCore::Frame::loader const): Deleted.
+        (WebCore::Frame::ownerElement const): Deleted.
+        (WebCore::Frame::page const): Deleted.
+
+2020-11-05  Alex Christensen  <[email protected]>
+
         Use std::exchange instead of WTFMove to avoid using members after moving them in NavigationScheduler.cpp
         https://bugs.webkit.org/show_bug.cgi?id=218597
 

Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (269433 => 269434)


--- trunk/Source/WebCore/loader/FrameLoader.cpp	2020-11-05 16:21:01 UTC (rev 269433)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp	2020-11-05 16:46:12 UTC (rev 269434)
@@ -1042,11 +1042,6 @@
     return m_frame.document()->contentSecurityPolicy()->allowFormAction(url, redirectResponseReceived);
 }
 
-Frame* FrameLoader::opener()
-{
-    return m_opener;
-}
-
 void FrameLoader::setOpener(Frame* opener)
 {
     if (m_opener && !opener)

Modified: trunk/Source/WebCore/loader/FrameLoader.h (269433 => 269434)


--- trunk/Source/WebCore/loader/FrameLoader.h	2020-11-05 16:21:01 UTC (rev 269433)
+++ trunk/Source/WebCore/loader/FrameLoader.h	2020-11-05 16:46:12 UTC (rev 269434)
@@ -116,7 +116,8 @@
     ResourceLoadNotifier& notifier() const { return m_notifier; }
 
     class SubframeLoader;
-    SubframeLoader& subframeLoader() const { return *m_subframeLoader; }
+    SubframeLoader& subframeLoader() { return *m_subframeLoader; }
+    const SubframeLoader& subframeLoader() const { return *m_subframeLoader; }
     MixedContentChecker& mixedContentChecker() const { return m_mixedContentChecker; }
 
     void setupForReplace();
@@ -247,7 +248,8 @@
 
     bool checkIfFormActionAllowedByCSP(const URL&, bool didReceiveRedirectResponse) const;
 
-    WEBCORE_EXPORT Frame* opener();
+    Frame* opener() { return m_opener; }
+    const Frame* opener() const { return m_opener; }
     WEBCORE_EXPORT void setOpener(Frame*);
     WEBCORE_EXPORT void detachFromAllOpenedFrames();
 

Modified: trunk/Source/WebCore/page/Frame.cpp (269433 => 269434)


--- trunk/Source/WebCore/page/Frame.cpp	2020-11-05 16:21:01 UTC (rev 269433)
+++ trunk/Source/WebCore/page/Frame.cpp	2020-11-05 16:46:12 UTC (rev 269434)
@@ -148,12 +148,12 @@
 
 Frame::Frame(Page& page, HTMLFrameOwnerElement* ownerElement, UniqueRef<FrameLoaderClient>&& frameLoaderClient)
     : m_mainFrame(ownerElement ? page.mainFrame() : *this)
-    , m_page(&page)
+    , m_page(makeWeakPtr(page))
     , m_settings(&page.settings())
     , m_treeNode(*this, parentFromOwnerElement(ownerElement))
     , m_loader(makeUniqueRef<FrameLoader>(*this, WTFMove(frameLoaderClient)))
     , m_navigationScheduler(makeUniqueRef<NavigationScheduler>(*this))
-    , m_ownerElement(ownerElement)
+    , m_ownerElement(makeWeakPtr(ownerElement))
     , m_script(makeUniqueRef<ScriptController>(*this))
     , m_pageZoomFactor(parentPageZoomFactor(this))
     , m_textZoomFactor(parentTextZoomFactor(this))
@@ -207,6 +207,16 @@
         m_mainFrame.selfOnlyDeref();
 }
 
+Page* Frame::page() const
+{
+    return m_page.get();
+}
+
+HTMLFrameOwnerElement* Frame::ownerElement() const
+{
+    return m_ownerElement.get();
+}
+
 void Frame::addDestructionObserver(FrameDestructionObserver* observer)
 {
     m_destructionObservers.add(observer);
@@ -718,7 +728,7 @@
 
 RenderWidget* Frame::ownerRenderer() const
 {
-    auto* ownerElement = m_ownerElement;
+    auto* ownerElement = m_ownerElement.get();
     if (!ownerElement)
         return nullptr;
     auto* object = ownerElement->renderer();

Modified: trunk/Source/WebCore/page/Frame.h (269433 => 269434)


--- trunk/Source/WebCore/page/Frame.h	2020-11-05 16:21:01 UTC (rev 269433)
+++ trunk/Source/WebCore/page/Frame.h	2020-11-05 16:46:12 UTC (rev 269434)
@@ -158,8 +158,8 @@
     Frame& mainFrame() const;
     bool isMainFrame() const { return this == static_cast<void*>(&m_mainFrame); }
 
-    Page* page() const;
-    HTMLFrameOwnerElement* ownerElement() const;
+    WEBCORE_EXPORT Page* page() const;
+    WEBCORE_EXPORT HTMLFrameOwnerElement* ownerElement() const;
 
     Document* document() const;
     FrameView* view() const;
@@ -168,7 +168,8 @@
     const Editor& editor() const { return document()->editor(); }
     EventHandler& eventHandler() { return m_eventHandler; }
     const EventHandler& eventHandler() const { return m_eventHandler; }
-    FrameLoader& loader() const;
+    const FrameLoader& loader() const { return m_loader.get(); }
+    FrameLoader& loader() { return m_loader.get(); }
     NavigationScheduler& navigationScheduler() const;
     FrameSelection& selection() { return document()->selection(); }
     const FrameSelection& selection() const { return document()->selection(); }
@@ -333,13 +334,13 @@
     Vector<std::pair<Ref<DOMWrapperWorld>, UniqueRef<UserScript>>> m_userScriptsAwaitingNotification;
 
     Frame& m_mainFrame;
-    Page* m_page;
+    WeakPtr<Page> m_page;
     const RefPtr<Settings> m_settings;
     mutable FrameTree m_treeNode;
-    mutable UniqueRef<FrameLoader> m_loader;
+    UniqueRef<FrameLoader> m_loader;
     mutable UniqueRef<NavigationScheduler> m_navigationScheduler;
 
-    HTMLFrameOwnerElement* m_ownerElement;
+    WeakPtr<HTMLFrameOwnerElement> m_ownerElement;
     RefPtr<FrameView> m_view;
     RefPtr<Document> m_doc;
 
@@ -379,11 +380,6 @@
     UniqueRef<EventHandler> m_eventHandler;
 };
 
-inline FrameLoader& Frame::loader() const
-{
-    return m_loader.get();
-}
-
 inline NavigationScheduler& Frame::navigationScheduler() const
 {
     return m_navigationScheduler.get();
@@ -399,21 +395,11 @@
     return m_doc.get();
 }
 
-inline HTMLFrameOwnerElement* Frame::ownerElement() const
-{
-    return m_ownerElement;
-}
-
 inline FrameTree& Frame::tree() const
 {
     return m_treeNode;
 }
 
-inline Page* Frame::page() const
-{
-    return m_page;
-}
-
 inline void Frame::detachFromPage()
 {
     m_page = nullptr;

Modified: trunk/Source/WebKit/ChangeLog (269433 => 269434)


--- trunk/Source/WebKit/ChangeLog	2020-11-05 16:21:01 UTC (rev 269433)
+++ trunk/Source/WebKit/ChangeLog	2020-11-05 16:46:12 UTC (rev 269434)
@@ -1,3 +1,13 @@
+2020-11-05  Alex Christensen  <[email protected]>
+
+        Use fewer raw pointers and more const correctness in Frame.h
+        https://bugs.webkit.org/show_bug.cgi?id=218598
+
+        Reviewed by Youenn Fablet.
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+        (WebKit::toWebFrameLoaderClient):
+
 2020-11-05  Carlos Garcia Campos  <[email protected]>
 
         WebDriver: handle surrogate pairs in keyboard actions

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h (269433 => 269434)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h	2020-11-05 16:21:01 UTC (rev 269433)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h	2020-11-05 16:46:12 UTC (rev 269434)
@@ -294,10 +294,14 @@
 #endif
 };
 
-// As long as EmptyFrameLoaderClient exists in WebCore, this can return 0.
+// As long as EmptyFrameLoaderClient exists in WebCore, this can return nullptr.
 inline WebFrameLoaderClient* toWebFrameLoaderClient(WebCore::FrameLoaderClient& client)
 {
-    return client.isEmptyFrameLoaderClient() ? 0 : static_cast<WebFrameLoaderClient*>(&client);
+    return client.isEmptyFrameLoaderClient() ? nullptr : static_cast<WebFrameLoaderClient*>(&client);
 }
+inline const WebFrameLoaderClient* toWebFrameLoaderClient(const WebCore::FrameLoaderClient& client)
+{
+    return client.isEmptyFrameLoaderClient() ? nullptr : static_cast<const WebFrameLoaderClient*>(&client);
+}
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to