fix(webkit): keep developer extras enabled when changing page preferences

This commit is contained in:
Yury Semikhatsky 2019-12-12 11:27:29 -08:00
parent 043e2f7513
commit f48404bda9
2 changed files with 12 additions and 7 deletions

View file

@ -1 +1 @@
1030 1031

View file

@ -5247,7 +5247,7 @@ index 2c4f9ddabf0..ae9e0b80708 100644
} // namespace WebKit } // namespace WebKit
diff --git a/Source/WebKit/UIProcess/WebPageInspectorController.cpp b/Source/WebKit/UIProcess/WebPageInspectorController.cpp diff --git a/Source/WebKit/UIProcess/WebPageInspectorController.cpp b/Source/WebKit/UIProcess/WebPageInspectorController.cpp
index 1ee28bf7163..6ac7ab2efd9 100644 index 1ee28bf7163..c1c918d6e2a 100644
--- a/Source/WebKit/UIProcess/WebPageInspectorController.cpp --- a/Source/WebKit/UIProcess/WebPageInspectorController.cpp
+++ b/Source/WebKit/UIProcess/WebPageInspectorController.cpp +++ b/Source/WebKit/UIProcess/WebPageInspectorController.cpp
@@ -26,10 +26,13 @@ @@ -26,10 +26,13 @@
@ -5327,7 +5327,7 @@ index 1ee28bf7163..6ac7ab2efd9 100644
bool connectingFirstFrontend = !m_frontendRouter->hasFrontends(); bool connectingFirstFrontend = !m_frontendRouter->hasFrontends();
+ if (connectingFirstFrontend) + if (connectingFirstFrontend)
+ disableBackForwardCache(); + adjustPageSettings();
+ +
m_frontendRouter->connectFrontend(frontendChannel); m_frontendRouter->connectFrontend(frontendChannel);
@ -5372,7 +5372,7 @@ index 1ee28bf7163..6ac7ab2efd9 100644
} }
void WebPageInspectorController::willDestroyProvisionalPage(const ProvisionalPageProxy& provisionalPage) void WebPageInspectorController::willDestroyProvisionalPage(const ProvisionalPageProxy& provisionalPage)
@@ -214,8 +265,17 @@ void WebPageInspectorController::didCommitProvisionalPage(WebCore::PageIdentifie @@ -214,8 +265,22 @@ void WebPageInspectorController::didCommitProvisionalPage(WebCore::PageIdentifie
void WebPageInspectorController::addTarget(std::unique_ptr<InspectorTargetProxy>&& target) void WebPageInspectorController::addTarget(std::unique_ptr<InspectorTargetProxy>&& target)
{ {
@ -5382,8 +5382,13 @@ index 1ee28bf7163..6ac7ab2efd9 100644
m_targets.set(target->identifier(), WTFMove(target)); m_targets.set(target->identifier(), WTFMove(target));
} }
+void WebPageInspectorController::disableBackForwardCache() +void WebPageInspectorController::adjustPageSettings()
+{ +{
+ // Set this to true as otherwise updating any preferences will override its
+ // value in the Web Process to false (and InspectorController sets it locally
+ // to true when frontend is connected).
+ m_page.preferences().setDeveloperExtrasEnabled(true);
+
+ // Navigation to cached pages doesn't fire some of the events (e.g. execution context created) + // Navigation to cached pages doesn't fire some of the events (e.g. execution context created)
+ // that inspector depends on. So we disable the cache when front-end connects. + // that inspector depends on. So we disable the cache when front-end connects.
+ m_page.preferences().setUsesBackForwardCache(false); + m_page.preferences().setUsesBackForwardCache(false);
@ -5391,7 +5396,7 @@ index 1ee28bf7163..6ac7ab2efd9 100644
+ +
} // namespace WebKit } // namespace WebKit
diff --git a/Source/WebKit/UIProcess/WebPageInspectorController.h b/Source/WebKit/UIProcess/WebPageInspectorController.h diff --git a/Source/WebKit/UIProcess/WebPageInspectorController.h b/Source/WebKit/UIProcess/WebPageInspectorController.h
index 78caedf0c0c..be5db786c07 100644 index 78caedf0c0c..a380d778c36 100644
--- a/Source/WebKit/UIProcess/WebPageInspectorController.h --- a/Source/WebKit/UIProcess/WebPageInspectorController.h
+++ b/Source/WebKit/UIProcess/WebPageInspectorController.h +++ b/Source/WebKit/UIProcess/WebPageInspectorController.h
@@ -37,10 +37,22 @@ namespace Inspector { @@ -37,10 +37,22 @@ namespace Inspector {
@ -5443,7 +5448,7 @@ index 78caedf0c0c..be5db786c07 100644
private: private:
void addTarget(std::unique_ptr<InspectorTargetProxy>&&); void addTarget(std::unique_ptr<InspectorTargetProxy>&&);
+ void disableBackForwardCache(); + void adjustPageSettings();
WebPageProxy& m_page; WebPageProxy& m_page;
Ref<Inspector::FrontendRouter> m_frontendRouter; Ref<Inspector::FrontendRouter> m_frontendRouter;