Title: [239247] trunk/Source/WebCore
Revision
239247
Author
[email protected]
Date
2018-12-14 20:30:41 -0800 (Fri, 14 Dec 2018)

Log Message

Web Inspector: Avoid creating and evaluating in the InspectorOverlay page on iOS as it is unused
https://bugs.webkit.org/show_bug.cgi?id=192724
<rdar://problem/46745911>

Patch by Joseph Pecoraro <[email protected]> on 2018-12-14
Reviewed by Devin Rousso.

iOS never installs the InspectorOverlay page as a page overlay.
It also uses its own node highlighting painting. Avoid any work
and resources associated with the overlay page for iOS.

* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::overlayPage):
(WebCore::evaluateCommandInOverlay):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (239246 => 239247)


--- trunk/Source/WebCore/ChangeLog	2018-12-15 03:34:54 UTC (rev 239246)
+++ trunk/Source/WebCore/ChangeLog	2018-12-15 04:30:41 UTC (rev 239247)
@@ -1,3 +1,21 @@
+2018-12-14  Joseph Pecoraro  <[email protected]>
+
+        Web Inspector: Avoid creating and evaluating in the InspectorOverlay page on iOS as it is unused
+        https://bugs.webkit.org/show_bug.cgi?id=192724
+        <rdar://problem/46745911>
+
+        Reviewed by Devin Rousso.
+
+        iOS never installs the InspectorOverlay page as a page overlay.
+        It also uses its own node highlighting painting. Avoid any work
+        and resources associated with the overlay page for iOS.
+
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::InspectorOverlay::paint):
+        (WebCore::InspectorOverlay::update):
+        (WebCore::InspectorOverlay::overlayPage):
+        (WebCore::evaluateCommandInOverlay):
+
 2018-12-14  Youenn Fablet  <[email protected]>
 
         MediaRecorderPrivateAVFImpl should have a Ref<MediaRecorderPrivateWriter> as member

Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (239246 => 239247)


--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp	2018-12-15 03:34:54 UTC (rev 239246)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp	2018-12-15 04:30:41 UTC (rev 239247)
@@ -180,8 +180,12 @@
     if (!shouldShowOverlay())
         return;
 
+    Page* overlayPage = this->overlayPage();
+    if (!overlayPage)
+        return;
+
     GraphicsContextStateSaver stateSaver(context);
-    FrameView* view = overlayPage()->mainFrame().view();
+    FrameView* view = overlayPage->mainFrame().view();
 
 #if PLATFORM(MAC)
     LocalDefaultSystemAppearance localAppearance(view->useDarkAppearance());
@@ -290,9 +294,12 @@
     if (!view)
         return;
 
-    FrameView* overlayView = overlayPage()->mainFrame().view();
-    IntSize frameViewFullSize = view->sizeForVisibleContent(ScrollableArea::IncludeScrollbars);
-    overlayView->resize(frameViewFullSize);
+    Page* overlayPage = this->overlayPage();
+    if (overlayPage) {
+        FrameView* overlayView = overlayPage->mainFrame().view();
+        IntSize frameViewFullSize = view->sizeForVisibleContent(ScrollableArea::IncludeScrollbars);
+        overlayView->resize(frameViewFullSize);
+    }
 
     // Clear canvas and paint things.
     IntSize viewportSize = view->sizeForVisibleContent();
@@ -309,9 +316,12 @@
         drawRulers();
 
     // Position DOM elements.
-    overlayPage()->mainFrame().document()->resolveStyle(Document::ResolveStyleType::Rebuild);
-    if (overlayView->needsLayout())
-        overlayView->layoutContext().layout();
+    if (overlayPage) {
+        overlayPage->mainFrame().document()->resolveStyle(Document::ResolveStyleType::Rebuild);
+        FrameView* overlayView = overlayPage->mainFrame().view();
+        if (overlayView->needsLayout())
+            overlayView->layoutContext().layout();
+    }
 
     forcePaint();
 }
@@ -702,6 +712,9 @@
 
 Page* InspectorOverlay::overlayPage()
 {
+#if PLATFORM(IOS_FAMILY)
+    return nullptr;
+#else
     if (m_overlayPage)
         return m_overlayPage.get();
 
@@ -746,6 +759,7 @@
 #endif
 
     return m_overlayPage.get();
+#endif
 }
 
 void InspectorOverlay::forcePaint()
@@ -770,6 +784,9 @@
 
 static void evaluateCommandInOverlay(Page* page, Ref<JSON::Array>&& command)
 {
+    if (!page)
+        return;
+
     page->mainFrame().script().evaluate(ScriptSourceCode(makeString("dispatch(", command->toJSONString(), ')')));
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to