Diff
Modified: trunk/Source/WebCore/ChangeLog (248176 => 248177)
--- trunk/Source/WebCore/ChangeLog 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebCore/ChangeLog 2019-08-02 20:39:21 UTC (rev 248177)
@@ -1,3 +1,23 @@
+2019-08-02 Devin Rousso <[email protected]>
+
+ Web Inspector: Timelines: Develop > Start Timeline Recording doesn't work when focused on a detached inspector window
+ https://bugs.webkit.org/show_bug.cgi?id=200125
+ <rdar://problem/53543008>
+
+ Reviewed by Brian Burg.
+
+ Always show the Timelines tab in Web Inspector whenever timeline recording starts/stops.
+ Notify the UIProcess whenever the timeline recording state changes.
+
+ * inspector/InspectorClient.h:
+ (WebCore::InspectorClient::timelineRecordingChanged): Added.
+
+ * inspector/agents/InspectorTimelineAgent.h:
+ * inspector/agents/InspectorTimelineAgent.cpp:
+ (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
+ (WebCore::InspectorTimelineAgent::internalStart):
+ (WebCore::InspectorTimelineAgent::internalStop):
+
2019-08-02 Yury Semikhatsky <[email protected]>
Web Inspector: Crash when interacting with Template Content in Console
Modified: trunk/Source/WebCore/inspector/InspectorClient.h (248176 => 248177)
--- trunk/Source/WebCore/inspector/InspectorClient.h 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebCore/inspector/InspectorClient.h 2019-08-02 20:39:21 UTC (rev 248177)
@@ -62,6 +62,7 @@
virtual void showPaintRect(const FloatRect&) { }
virtual void didSetSearchingForNode(bool) { }
virtual void elementSelectionChanged(bool) { }
+ virtual void timelineRecordingChanged(bool) { }
virtual void setMockCaptureDevicesEnabledOverride(Optional<bool>) { }
Modified: trunk/Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp (248176 => 248177)
--- trunk/Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp 2019-08-02 20:39:21 UTC (rev 248177)
@@ -37,6 +37,7 @@
#include "Event.h"
#include "Frame.h"
#include "InspectorCPUProfilerAgent.h"
+#include "InspectorClient.h"
#include "InspectorMemoryAgent.h"
#include "InspectorPageAgent.h"
#include "InstrumentingAgents.h"
@@ -83,10 +84,11 @@
}
#endif
-InspectorTimelineAgent::InspectorTimelineAgent(WebAgentContext& context)
+InspectorTimelineAgent::InspectorTimelineAgent(PageAgentContext& context)
: InspectorAgentBase("Timeline"_s, context)
, m_frontendDispatcher(std::make_unique<Inspector::TimelineFrontendDispatcher>(context.frontendRouter))
, m_backendDispatcher(Inspector::TimelineBackendDispatcher::create(context.backendDispatcher, this))
+ , m_inspectedPage(context.inspectedPage)
{
}
@@ -205,6 +207,9 @@
#endif
m_frontendDispatcher->recordingStarted(timestamp());
+
+ if (auto* client = m_inspectedPage.inspectorController().inspectorClient())
+ client->timelineRecordingChanged(true);
}
void InspectorTimelineAgent::internalStop()
@@ -233,6 +238,9 @@
m_autoCapturePhase = AutoCapturePhase::None;
m_frontendDispatcher->recordingStopped(timestamp());
+
+ if (auto* client = m_inspectedPage.inspectorController().inspectorClient())
+ client->timelineRecordingChanged(false);
}
double InspectorTimelineAgent::timestamp()
Modified: trunk/Source/WebCore/inspector/agents/InspectorTimelineAgent.h (248176 => 248177)
--- trunk/Source/WebCore/inspector/agents/InspectorTimelineAgent.h 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebCore/inspector/agents/InspectorTimelineAgent.h 2019-08-02 20:39:21 UTC (rev 248177)
@@ -88,7 +88,7 @@
WTF_MAKE_NONCOPYABLE(InspectorTimelineAgent);
WTF_MAKE_FAST_ALLOCATED;
public:
- InspectorTimelineAgent(WebAgentContext&);
+ InspectorTimelineAgent(PageAgentContext&);
virtual ~InspectorTimelineAgent();
void didCreateFrontendAndBackend(Inspector::FrontendRouter*, Inspector::BackendDispatcher*) final;
@@ -206,6 +206,7 @@
std::unique_ptr<Inspector::TimelineFrontendDispatcher> m_frontendDispatcher;
RefPtr<Inspector::TimelineBackendDispatcher> m_backendDispatcher;
+ Page& m_inspectedPage;
Vector<TimelineRecordEntry> m_recordStack;
Vector<TimelineRecordEntry> m_pendingConsoleProfileRecords;
Modified: trunk/Source/WebInspectorUI/ChangeLog (248176 => 248177)
--- trunk/Source/WebInspectorUI/ChangeLog 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebInspectorUI/ChangeLog 2019-08-02 20:39:21 UTC (rev 248177)
@@ -1,5 +1,19 @@
2019-08-02 Devin Rousso <[email protected]>
+ Web Inspector: Timelines: Develop > Start Timeline Recording doesn't work when focused on a detached inspector window
+ https://bugs.webkit.org/show_bug.cgi?id=200125
+ <rdar://problem/53543008>
+
+ Reviewed by Brian Burg.
+
+ Always show the Timelines tab in Web Inspector whenever timeline recording starts/stops.
+ Notify the UIProcess whenever the timeline recording state changes.
+
+ * UserInterface/Protocol/InspectorFrontendAPI.js:
+ (InspectorFrontendAPI.setTimelineProfilingEnabled):
+
+2019-08-02 Devin Rousso <[email protected]>
+
Web Inspector: "Inspector.initialized" happens before breakpoints are set
https://bugs.webkit.org/show_bug.cgi?id=200364
Modified: trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js (248176 => 248177)
--- trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js 2019-08-02 20:39:21 UTC (rev 248177)
@@ -44,6 +44,8 @@
setTimelineProfilingEnabled: function(enabled)
{
+ WI.showTimelineTab();
+
if (WI.timelineManager.isCapturing() === enabled)
return;
@@ -106,6 +108,7 @@
},
+ // COMPATIBILITY (iOS 13.1): merged into InspectorFrontendAPI.setTimelineProfilingEnabled.
showTimelines: function()
{
WI.showTimelineTab();
Modified: trunk/Source/WebKit/ChangeLog (248176 => 248177)
--- trunk/Source/WebKit/ChangeLog 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/ChangeLog 2019-08-02 20:39:21 UTC (rev 248177)
@@ -1,3 +1,48 @@
+2019-08-02 Devin Rousso <[email protected]>
+
+ Web Inspector: Timelines: Develop > Start Timeline Recording doesn't work when focused on a detached inspector window
+ https://bugs.webkit.org/show_bug.cgi?id=200125
+ <rdar://problem/53543008>
+
+ Reviewed by Brian Burg.
+
+ Always show the Timelines tab in Web Inspector whenever timeline recording starts/stops.
+ Notify the UIProcess whenever the timeline recording state changes.
+
+ * WebProcess/WebPage/WebInspector.messages.in:
+ * WebProcess/WebPage/WebInspector.h:
+ * WebProcess/WebPage/WebInspector.cpp:
+ (WebKit::WebInspector::startPageProfiling):
+ (WebKit::WebInspector::stopPageProfiling):
+ (WebKit::WebInspector::timelineRecordingChanged): Added.
+ (WebKit::WebInspector::showTimelines): Deleted.
+
+ * WebProcess/WebPage/WebInspectorUI.messages.in:
+ * WebProcess/WebPage/WebInspectorUI.h:
+ * WebProcess/WebPage/WebInspectorUI.cpp:
+ (WebKit::WebInspectorUI::showTimelines): Deleted.
+
+ * WebProcess/WebCoreSupport/WebInspectorClient.h:
+ * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
+ (WebKit::WebInspectorClient::timelineRecordingChanged): Added.
+
+ * UIProcess/WebInspectorProxy.messages.in:
+ * UIProcess/WebInspectorProxy.h:
+ * UIProcess/WebInspectorProxy.cpp:
+ (WebKit::WebInspectorProxy::togglePageProfiling):
+ (WebKit::WebInspectorProxy::timelineRecordingChanged): Added.
+ (WebKit::WebInspectorProxy::showTimelines): Deleted.
+
+ * UIProcess/API/C/WKInspector.cpp:
+ (WKInspectorTogglePageProfiling):
+
+ * UIProcess/API/Cocoa/_WKInspector.h:
+ * UIProcess/API/Cocoa/_WKInspector.mm:
+ (-[_WKInspector showTimelines]): Deleted.
+
+ * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
+ (WKBundleInspectorSetPageProfilingEnabled):
+
2019-08-02 Jer Noble <[email protected]>
[iPadOS] slides.google.com: Full Screen API warning is presented when swiping through slides
Modified: trunk/Source/WebKit/UIProcess/API/C/WKInspector.cpp (248176 => 248177)
--- trunk/Source/WebKit/UIProcess/API/C/WKInspector.cpp 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/UIProcess/API/C/WKInspector.cpp 2019-08-02 20:39:21 UTC (rev 248177)
@@ -117,7 +117,6 @@
void WKInspectorTogglePageProfiling(WKInspectorRef inspectorRef)
{
- toImpl(inspectorRef)->showTimelines();
toImpl(inspectorRef)->togglePageProfiling();
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.h (248176 => 248177)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.h 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.h 2019-08-02 20:39:21 UTC (rev 248177)
@@ -52,7 +52,6 @@
- (void)showMainResourceForFrame:(_WKFrameHandle *)frame;
- (void)attach;
- (void)detach;
-- (void)showTimelines;
- (void)togglePageProfiling;
- (void)toggleElementSelection;
- (void)printErrorToConsole:(NSString *)error;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm (248176 => 248177)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm 2019-08-02 20:39:21 UTC (rev 248177)
@@ -112,11 +112,6 @@
_inspector->detach();
}
-- (void)showTimelines
-{
- _inspector->showTimelines();
-}
-
- (void)togglePageProfiling
{
_inspector->togglePageProfiling();
Modified: trunk/Source/WebKit/UIProcess/WebInspectorProxy.cpp (248176 => 248177)
--- trunk/Source/WebKit/UIProcess/WebInspectorProxy.cpp 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/UIProcess/WebInspectorProxy.cpp 2019-08-02 20:39:21 UTC (rev 248177)
@@ -242,16 +242,6 @@
m_inspectedPage->process().send(Messages::WebInspector::ShowResources(), m_inspectedPage->pageID());
}
-void WebInspectorProxy::showTimelines()
-{
- if (!m_inspectedPage)
- return;
-
- createFrontendPage();
-
- m_inspectedPage->process().send(Messages::WebInspector::ShowTimelines(), m_inspectedPage->pageID());
-}
-
void WebInspectorProxy::showMainResourceForFrame(WebFrameProxy* frame)
{
if (!m_inspectedPage)
@@ -356,9 +346,6 @@
m_inspectedPage->process().send(Messages::WebInspector::StopPageProfiling(), m_inspectedPage->pageID());
else
m_inspectedPage->process().send(Messages::WebInspector::StartPageProfiling(), m_inspectedPage->pageID());
-
- // FIXME: have the WebProcess notify us on state changes.
- m_isProfilingPage = !m_isProfilingPage;
}
void WebInspectorProxy::toggleElementSelection()
@@ -593,6 +580,11 @@
bringToFront();
}
+void WebInspectorProxy::timelineRecordingChanged(bool active)
+{
+ m_isProfilingPage = active;
+}
+
void WebInspectorProxy::setMockCaptureDevicesEnabledOverride(Optional<bool> enabled)
{
#if ENABLE(MEDIA_STREAM)
Modified: trunk/Source/WebKit/UIProcess/WebInspectorProxy.h (248176 => 248177)
--- trunk/Source/WebKit/UIProcess/WebInspectorProxy.h 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/UIProcess/WebInspectorProxy.h 2019-08-02 20:39:21 UTC (rev 248177)
@@ -133,7 +133,6 @@
void showConsole();
void showResources();
- void showTimelines();
void showMainResourceForFrame(WebFrameProxy*);
AttachmentSide attachmentSide() const { return m_attachmentSide; }
@@ -227,6 +226,7 @@
void inspectedURLChanged(const String&);
void showCertificate(const WebCore::CertificateInfo&);
void elementSelectionChanged(bool);
+ void timelineRecordingChanged(bool);
void setMockCaptureDevicesEnabledOverride(Optional<bool>);
void save(const String& filename, const String& content, bool base64Encoded, bool forceSaveAs);
Modified: trunk/Source/WebKit/UIProcess/WebInspectorProxy.messages.in (248176 => 248177)
--- trunk/Source/WebKit/UIProcess/WebInspectorProxy.messages.in 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/UIProcess/WebInspectorProxy.messages.in 2019-08-02 20:39:21 UTC (rev 248177)
@@ -35,6 +35,7 @@
InspectedURLChanged(String urlString)
ShowCertificate(WebCore::CertificateInfo certificateInfo)
ElementSelectionChanged(bool active)
+ TimelineRecordingChanged(bool active)
SetMockCaptureDevicesEnabledOverride(Optional<bool> enabled)
Save(String filename, String content, bool base64Encoded, bool forceSaveAs)
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp 2019-08-02 20:39:21 UTC (rev 248177)
@@ -52,8 +52,6 @@
void WKBundleInspectorSetPageProfilingEnabled(WKBundleInspectorRef inspectorRef, bool enabled)
{
- WebKit::toImpl(inspectorRef)->showTimelines();
-
if (enabled)
WebKit::toImpl(inspectorRef)->startPageProfiling();
else
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebInspectorClient.cpp (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebInspectorClient.cpp 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebInspectorClient.cpp 2019-08-02 20:39:21 UTC (rev 248177)
@@ -211,6 +211,12 @@
m_page->inspector()->elementSelectionChanged(active);
}
+void WebInspectorClient::timelineRecordingChanged(bool active)
+{
+ if (m_page->inspector())
+ m_page->inspector()->timelineRecordingChanged(active);
+}
+
void WebInspectorClient::setMockCaptureDevicesEnabledOverride(Optional<bool> enabled)
{
if (m_page->inspector())
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebInspectorClient.h (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebInspectorClient.h 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebInspectorClient.h 2019-08-02 20:39:21 UTC (rev 248177)
@@ -67,6 +67,7 @@
#endif
void elementSelectionChanged(bool) override;
+ void timelineRecordingChanged(bool) override;
bool overridesShowPaintRects() const override { return true; }
void showPaintRect(const WebCore::FloatRect&) override;
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebInspector.cpp (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/WebPage/WebInspector.cpp 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebInspector.cpp 2019-08-02 20:39:21 UTC (rev 248177)
@@ -209,18 +209,6 @@
});
}
-void WebInspector::showTimelines()
-{
- if (!m_page->corePage())
- return;
-
- m_page->corePage()->inspectorController().show();
-
- whenFrontendConnectionEstablished([=] {
- m_frontendConnection->send(Messages::WebInspectorUI::ShowTimelines(), 0);
- });
-}
-
void WebInspector::showMainResourceForFrame(uint64_t frameIdentifier)
{
WebFrame* frame = WebProcess::singleton().webFrame(frameIdentifier);
@@ -244,6 +232,8 @@
if (!m_page->corePage())
return;
+ m_page->corePage()->inspectorController().show();
+
whenFrontendConnectionEstablished([=] {
m_frontendConnection->send(Messages::WebInspectorUI::StartPageProfiling(), 0);
});
@@ -254,6 +244,8 @@
if (!m_page->corePage())
return;
+ m_page->corePage()->inspectorController().show();
+
whenFrontendConnectionEstablished([=] {
m_frontendConnection->send(Messages::WebInspectorUI::StopPageProfiling(), 0);
});
@@ -284,6 +276,11 @@
WebProcess::singleton().parentProcessConnection()->send(Messages::WebInspectorProxy::ElementSelectionChanged(active), m_page->pageID());
}
+void WebInspector::timelineRecordingChanged(bool active)
+{
+ WebProcess::singleton().parentProcessConnection()->send(Messages::WebInspectorProxy::TimelineRecordingChanged(active), m_page->pageID());
+}
+
void WebInspector::setMockCaptureDevicesEnabledOverride(Optional<bool> enabled)
{
WebProcess::singleton().parentProcessConnection()->send(Messages::WebInspectorProxy::SetMockCaptureDevicesEnabledOverride(enabled), m_page->pageID());
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebInspector.h (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/WebPage/WebInspector.h 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebInspector.h 2019-08-02 20:39:21 UTC (rev 248177)
@@ -59,7 +59,6 @@
void showConsole();
void showResources();
- void showTimelines();
void showMainResourceForFrame(uint64_t frameIdentifier);
@@ -73,6 +72,7 @@
void startElementSelection();
void stopElementSelection();
void elementSelectionChanged(bool);
+ void timelineRecordingChanged(bool);
void setMockCaptureDevicesEnabledOverride(Optional<bool>);
void setFrontendConnection(IPC::Attachment);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebInspector.messages.in (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/WebPage/WebInspector.messages.in 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebInspector.messages.in 2019-08-02 20:39:21 UTC (rev 248177)
@@ -28,7 +28,6 @@
ShowConsole()
ShowResources()
- ShowTimelines()
ShowMainResourceForFrame(uint64_t frameIdentifier)
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.cpp (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.cpp 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.cpp 2019-08-02 20:39:21 UTC (rev 248177)
@@ -297,11 +297,6 @@
m_frontendAPIDispatcher.dispatchCommand("showResources"_s);
}
-void WebInspectorUI::showTimelines()
-{
- m_frontendAPIDispatcher.dispatchCommand("showTimelines"_s);
-}
-
void WebInspectorUI::showMainResourceForFrame(const String& frameIdentifier)
{
m_frontendAPIDispatcher.dispatchCommand("showMainResourceForFrame"_s, frameIdentifier);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.h (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.h 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.h 2019-08-02 20:39:21 UTC (rev 248177)
@@ -58,7 +58,6 @@
void showConsole();
void showResources();
- void showTimelines();
void showMainResourceForFrame(const String& frameIdentifier);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.messages.in (248176 => 248177)
--- trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.messages.in 2019-08-02 20:25:01 UTC (rev 248176)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.messages.in 2019-08-02 20:39:21 UTC (rev 248177)
@@ -33,7 +33,6 @@
ShowConsole()
ShowResources()
- ShowTimelines()
ShowMainResourceForFrame(String frameIdentifier)