WebKit Bugzilla
Attachment 357354 Details for
Bug 192724
: Web Inspector: Avoid creating and evaluating in the InspectorOverlay page on iOS as it is unused
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
[PATCH] Proposed Fix
overlay-1.patch (text/plain), 3.72 KB, created by
Joseph Pecoraro
on 2018-12-14 16:28:27 PST
(
hide
)
Description:
[PATCH] Proposed Fix
Filename:
MIME Type:
Creator:
Joseph Pecoraro
Created:
2018-12-14 16:28:27 PST
Size:
3.72 KB
patch
obsolete
>diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 854ee33b41e..61dd8b48b13 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,21 @@ >+2018-12-14 Joseph Pecoraro <pecoraro@apple.com> >+ >+ 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 NOBODY (OOPS!). >+ >+ 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 Simon Fraser <simon.fraser@apple.com> > > REGRESSION (r233268): contents of an animated element inside overflow:hidden disappear >diff --git a/Source/WebCore/inspector/InspectorOverlay.cpp b/Source/WebCore/inspector/InspectorOverlay.cpp >index 053dad8ae47..3e3bc816ea9 100644 >--- a/Source/WebCore/inspector/InspectorOverlay.cpp >+++ b/Source/WebCore/inspector/InspectorOverlay.cpp >@@ -180,8 +180,12 @@ void InspectorOverlay::paint(GraphicsContext& context) > 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 @@ void InspectorOverlay::update() > 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 @@ void InspectorOverlay::update() > 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 @@ void InspectorOverlay::drawPausedInDebuggerMessage() > > Page* InspectorOverlay::overlayPage() > { >+#if PLATFORM(IOS_FAMILY) >+ return nullptr; >+#else > if (m_overlayPage) > return m_overlayPage.get(); > >@@ -746,6 +759,7 @@ Page* InspectorOverlay::overlayPage() > #endif > > return m_overlayPage.get(); >+#endif > } > > void InspectorOverlay::forcePaint() >@@ -770,6 +784,9 @@ void InspectorOverlay::reset(const IntSize& viewportSize, const IntPoint& scroll > > static void evaluateCommandInOverlay(Page* page, Ref<JSON::Array>&& command) > { >+ if (!page) >+ return; >+ > page->mainFrame().script().evaluate(ScriptSourceCode(makeString("dispatch(", command->toJSONString(), ')'))); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192724
: 357354