WebKit Bugzilla
Attachment 356240 Details for
Bug 192256
: Stop using a global singleton for NetworkCapture::Manager
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192256-20181130143028.patch (text/plain), 26.06 KB, created by
Alex Christensen
on 2018-11-30 14:30:29 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2018-11-30 14:30:29 PST
Size:
26.06 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 238755) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,57 @@ >+2018-11-30 Alex Christensen <achristensen@webkit.org> >+ >+ Stop using a global singleton for NetworkCapture::Manager >+ https://bugs.webkit.org/show_bug.cgi?id=192256 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Put it on the NetworkSession instead. >+ >+ * NetworkProcess/NetworkLoad.cpp: >+ (WebKit::NetworkLoad::NetworkLoad): >+ (WebKit::NetworkLoad::initializeForRecord): >+ (WebKit::NetworkLoad::initializeForReplay): >+ * NetworkProcess/NetworkProcess.cpp: >+ (WebKit::NetworkProcess::initializeNetworkProcess): >+ (WebKit::NetworkProcess::terminate): >+ * NetworkProcess/NetworkProcessCreationParameters.cpp: >+ (WebKit::NetworkProcessCreationParameters::encode const): >+ (WebKit::NetworkProcessCreationParameters::decode): >+ * NetworkProcess/NetworkProcessCreationParameters.h: >+ * NetworkProcess/NetworkSession.h: >+ (WebKit::NetworkSession::networkCaptureManager const): >+ * NetworkProcess/NetworkSessionCreationParameters.cpp: >+ (WebKit::NetworkSessionCreationParameters::privateSessionParameters): >+ (WebKit::NetworkSessionCreationParameters::encode const): >+ (WebKit::NetworkSessionCreationParameters::decode): >+ * NetworkProcess/NetworkSessionCreationParameters.h: >+ * NetworkProcess/capture/NetworkCaptureManager.cpp: >+ (WebKit::NetworkCapture::Manager::Manager): >+ (WebKit::NetworkCapture::Manager::~Manager): >+ (WebKit::NetworkCapture::Manager::singleton): Deleted. >+ (WebKit::NetworkCapture::Manager::initialize): Deleted. >+ (WebKit::NetworkCapture::Manager::terminate): Deleted. >+ * NetworkProcess/capture/NetworkCaptureManager.h: >+ (WebKit::NetworkCapture::Manager::mode const): >+ (): Deleted. >+ (WebKit::NetworkCapture::Manager::isRecording const): Deleted. >+ (WebKit::NetworkCapture::Manager::isReplaying const): Deleted. >+ * NetworkProcess/capture/NetworkCaptureRecorder.cpp: >+ (WebKit::NetworkCapture::Recorder::writeEvents): >+ * NetworkProcess/capture/NetworkCaptureRecorder.h: >+ (WebKit::NetworkCapture::Recorder::Recorder): >+ * NetworkProcess/capture/NetworkCaptureReplayer.cpp: >+ (WebKit::NetworkCapture::Replayer::replayResource): >+ * NetworkProcess/capture/NetworkCaptureReplayer.h: >+ (WebKit::NetworkCapture::Replayer::Replayer): >+ * NetworkProcess/cocoa/NetworkSessionCocoa.h: >+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm: >+ (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): >+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm: >+ (WebKit::WebProcessPool::platformInitializeNetworkProcess): >+ * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: >+ (WebKit::WebsiteDataStore::parameters): >+ > 2018-11-30 Don Olmstead <don.olmstead@sony.com> > > Rename ENABLE_SUBTLE_CRYPTO to ENABLE_WEB_CRYPTO >Index: Source/WebKit/NetworkProcess/NetworkLoad.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkLoad.cpp (revision 238746) >+++ Source/WebKit/NetworkProcess/NetworkLoad.cpp (working copy) >@@ -74,16 +74,15 @@ NetworkLoad::NetworkLoad(NetworkLoadClie > , m_currentRequest(m_parameters.request) > { > #if ENABLE(NETWORK_CAPTURE) >- switch (NetworkCapture::Manager::singleton().mode()) { >- case NetworkCapture::Manager::RecordReplayMode::Record: >- initializeForRecord(networkSession); >- break; >- case NetworkCapture::Manager::RecordReplayMode::Replay: >- initializeForReplay(networkSession); >- break; >- case NetworkCapture::Manager::RecordReplayMode::Disabled: >- initialize(networkSession); >- break; >+ if (auto* manager = networkSession.networkCaptureManager()) { >+ switch (manager->mode()) { >+ case NetworkCaptureMode::Record: >+ initializeForRecord(networkSession); >+ return; >+ case NetworkCaptureMode::Replay: >+ initializeForReplay(networkSession); >+ return; >+ } > } > #else > initialize(networkSession); >@@ -93,7 +92,7 @@ NetworkLoad::NetworkLoad(NetworkLoadClie > #if ENABLE(NETWORK_CAPTURE) > void NetworkLoad::initializeForRecord(NetworkSession& networkSession) > { >- m_recorder = std::make_unique<NetworkCapture::Recorder>(); >+ m_recorder = std::make_unique<NetworkCapture::Recorder>(*networkSession.networkCaptureManager()); > m_task = NetworkDataTask::create(networkSession, *this, m_parameters); > if (!m_parameters.defersLoading) { > m_task->resume(); >@@ -103,7 +102,7 @@ void NetworkLoad::initializeForRecord(Ne > > void NetworkLoad::initializeForReplay(NetworkSession& networkSession) > { >- m_replayer = std::make_unique<NetworkCapture::Replayer>(); >+ m_replayer = std::make_unique<NetworkCapture::Replayer>(*networkSession.networkCaptureManager()); > m_task = m_replayer->replayResource(networkSession, *this, m_parameters); > if (!m_parameters.defersLoading) > m_task->resume(); >Index: Source/WebKit/NetworkProcess/NetworkProcess.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcess.cpp (revision 238746) >+++ Source/WebKit/NetworkProcess/NetworkProcess.cpp (working copy) >@@ -300,12 +300,6 @@ void NetworkProcess::initializeNetworkPr > memoryPressureHandler.install(); > } > >-#if ENABLE(NETWORK_CAPTURE) >- NetworkCapture::Manager::singleton().initialize( >- parameters.recordReplayMode, >- parameters.recordReplayCacheLocation); >-#endif >- > m_diskCacheIsDisabledForTesting = parameters.shouldUseTestingNetworkSession; > > m_diskCacheSizeOverride = parameters.diskCacheSizeOverride; >@@ -929,10 +923,6 @@ void NetworkProcess::logDiagnosticMessag > > void NetworkProcess::terminate() > { >-#if ENABLE(NETWORK_CAPTURE) >- NetworkCapture::Manager::singleton().terminate(); >-#endif >- > platformTerminate(); > ChildProcess::terminate(); > } >Index: Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (revision 238746) >+++ Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (working copy) >@@ -90,10 +90,6 @@ void NetworkProcessCreationParameters::e > #elif USE(CURL) > encoder << cookiePersistentStorageFile; > #endif >-#if ENABLE(NETWORK_CAPTURE) >- encoder << recordReplayMode; >- encoder << recordReplayCacheLocation; >-#endif > > encoder << urlSchemesRegisteredAsSecure; > encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy; >@@ -224,13 +220,6 @@ bool NetworkProcessCreationParameters::d > return false; > #endif > >-#if ENABLE(NETWORK_CAPTURE) >- if (!decoder.decode(result.recordReplayMode)) >- return false; >- if (!decoder.decode(result.recordReplayCacheLocation)) >- return false; >-#endif >- > if (!decoder.decode(result.urlSchemesRegisteredAsSecure)) > return false; > if (!decoder.decode(result.urlSchemesRegisteredAsBypassingContentSecurityPolicy)) >Index: Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (revision 238746) >+++ Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (working copy) >@@ -75,7 +75,6 @@ struct NetworkProcessCreationParameters > #endif > bool shouldSuppressMemoryPressureHandler { false }; > bool shouldUseTestingNetworkSession { false }; >- Seconds loadThrottleLatency; > > Vector<String> urlSchemesRegisteredForCustomProtocols; > ProcessID presentingApplicationPID { 0 }; >@@ -106,11 +105,6 @@ struct NetworkProcessCreationParameters > String cookiePersistentStorageFile; > #endif > >-#if ENABLE(NETWORK_CAPTURE) >- String recordReplayMode; >- String recordReplayCacheLocation; >-#endif >- > Vector<String> urlSchemesRegisteredAsSecure; > Vector<String> urlSchemesRegisteredAsBypassingContentSecurityPolicy; > Vector<String> urlSchemesRegisteredAsLocal; >Index: Source/WebKit/NetworkProcess/NetworkSession.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkSession.h (revision 238746) >+++ Source/WebKit/NetworkProcess/NetworkSession.h (working copy) >@@ -40,6 +40,12 @@ namespace WebKit { > > class NetworkDataTask; > struct NetworkSessionCreationParameters; >+ >+#if ENABLE(NETWORK_CAPTURE) >+namespace NetworkCapture { >+class Manager; >+} >+#endif > > class NetworkSession : public RefCounted<NetworkSession> { > public: >@@ -50,6 +56,9 @@ public: > virtual void clearCredentials() { }; > virtual bool shouldLogCookieInformation() const { return false; } > virtual Seconds loadThrottleLatency() const { return { }; } >+#if ENABLE(NETWORK_CAPTURE) >+ virtual NetworkCapture::Manager* networkCaptureManager() const { return nullptr; } >+#endif > > PAL::SessionID sessionID() const { return m_sessionID; } > WebCore::NetworkStorageSession& networkStorageSession() const; >Index: Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp (revision 238746) >+++ Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp (working copy) >@@ -47,6 +47,9 @@ NetworkSessionCreationParameters Network > #if USE(CURL) > , { } > #endif >+#if ENABLE(NETWORK_CAPTURE) >+ , std::nullopt, { } >+#endif > }; > } > >@@ -65,6 +68,10 @@ void NetworkSessionCreationParameters::e > #if USE(CURL) > encoder << proxySettings; > #endif >+#if ENABLE(NETWORK_CAPTURE) >+ encoder << networkCaptureMode; >+ encoder << recordReplayCacheLocation; >+#endif > } > > std::optional<NetworkSessionCreationParameters> NetworkSessionCreationParameters::decode(IPC::Decoder& decoder) >@@ -115,7 +122,19 @@ std::optional<NetworkSessionCreationPara > if (!proxySettings) > return std::nullopt; > #endif >+ >+#if ENABLE(NETWORK_CAPTURE) >+ std::optional<std::optional<NetworkCaptureMode>> networkCaptureMode; >+ decoder >> networkCaptureMode; >+ if (!networkCaptureMode) >+ return std::nullopt; > >+ std::optional<String> recordReplayCacheLocation; >+ decoder >> recordReplayCacheLocation; >+ if (!recordReplayCacheLocation) >+ return std::nullopt; >+#endif >+ > return {{ > sessionID > , WTFMove(*boundInterfaceIdentifier) >@@ -130,6 +149,10 @@ std::optional<NetworkSessionCreationPara > #if USE(CURL) > , WTFMove(*proxySettings) > #endif >+#if ENABLE(NETWORK_CAPTURE) >+ , WTFMove(*networkCaptureMode) >+ , WTFMove(*recordReplayCacheLocation) >+#endif > }}; > } > >Index: Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h (revision 238746) >+++ Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h (working copy) >@@ -41,6 +41,7 @@ class Decoder; > namespace WebKit { > > enum class AllowsCellularAccess : bool { No, Yes }; >+enum class NetworkCaptureMode : bool; > > struct NetworkSessionCreationParameters { > void encode(IPC::Encoder&) const; >@@ -60,6 +61,10 @@ struct NetworkSessionCreationParameters > #if USE(CURL) > WebCore::CurlProxySettings proxySettings; > #endif >+#if ENABLE(NETWORK_CAPTURE) >+ std::optional<NetworkCaptureMode> networkCaptureMode; >+ String recordReplayCacheLocation; >+#endif > }; > > } // namespace WebKit >Index: Source/WebKit/NetworkProcess/capture/NetworkCaptureManager.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/capture/NetworkCaptureManager.cpp (revision 238746) >+++ Source/WebKit/NetworkProcess/capture/NetworkCaptureManager.cpp (working copy) >@@ -56,39 +56,26 @@ static const char* kFileNameReportReplay > static int kMaxMatch = std::numeric_limits<int>::max(); > static int kMinMatch = std::numeric_limits<int>::min(); > >-Manager& Manager::singleton() >+Manager::Manager(NetworkCaptureMode mode, const String& cacheLocation) >+ : m_networkCaptureMode(mode) >+ , m_recordReplayCacheLocation(pathByAppendingComponent(cacheLocation, kDirNameRecordReplay)) > { >- static NeverDestroyed<Manager> instance; >- return instance; >-} >- >-void Manager::initialize(const String& recordReplayMode, const String& recordReplayCacheLocation) >-{ >- if (equalIgnoringASCIICase(recordReplayMode, "record")) { >- DEBUG_LOG("Initializing: recording mode"); >- m_recordReplayMode = Record; >- } else if (equalIgnoringASCIICase(recordReplayMode, "replay")) { >- DEBUG_LOG("Initializing: replay mode"); >- m_recordReplayMode = Replay; >- } else { >- DEBUG_LOG("Initializing: disabled"); >- m_recordReplayMode = Disabled; >- } >- >- m_recordReplayCacheLocation = pathByAppendingComponent(recordReplayCacheLocation, kDirNameRecordReplay); > DEBUG_LOG("Cache location = " STRING_SPECIFIER, DEBUG_STR(m_recordReplayCacheLocation)); > >- if (isRecording()) { >+ switch (mode) { >+ case NetworkCaptureMode::Record: > m_recordFileHandle = WebCore::FileHandle(reportRecordPath(), FileOpenMode::Write); >- } else if (isReplaying()) { >+ break; >+ case NetworkCaptureMode::Replay: > m_recordFileHandle = WebCore::FileHandle(reportRecordPath(), FileOpenMode::Read); > m_loadFileHandle = WebCore::FileHandle(reportLoadPath(), FileOpenMode::Write); > m_replayFileHandle = WebCore::FileHandle(reportReplayPath(), FileOpenMode::Write); > loadResources(); >+ break; > } > } > >-void Manager::terminate() >+Manager::~Manager() > { > m_loadFileHandle.close(); > m_recordFileHandle.close(); >Index: Source/WebKit/NetworkProcess/capture/NetworkCaptureManager.h >=================================================================== >--- Source/WebKit/NetworkProcess/capture/NetworkCaptureManager.h (revision 238746) >+++ Source/WebKit/NetworkProcess/capture/NetworkCaptureManager.h (working copy) >@@ -32,6 +32,7 @@ > #include <WebCore/URLParser.h> > #include <wtf/Function.h> > #include <wtf/Vector.h> >+#include <wtf/WeakPtr.h> > #include <wtf/text/WTFString.h> > > namespace WebCore { >@@ -39,6 +40,12 @@ class ResourceRequest; > } > > namespace WebKit { >+ >+enum class NetworkCaptureMode : bool { >+ Record, >+ Replay >+}; >+ > namespace NetworkCapture { > > class Resource; >@@ -53,25 +60,13 @@ class Resource; > * > * TODO: Perhaps we should break this up into three classes? > */ >-class Manager { >+class Manager : public CanMakeWeakPtr<Manager> { > WTF_MAKE_NONCOPYABLE(Manager); >- friend NeverDestroyed<Manager>; >- > public: >- enum RecordReplayMode { >- Disabled, >- Record, >- Replay >- }; >- >- static Manager& singleton(); >- >- void initialize(const String& recordReplayMode, const String& recordReplayCacheLocation); >- void terminate(); >- >- bool isRecording() const { return mode() == RecordReplayMode::Record; } >- bool isReplaying() const { return mode() == RecordReplayMode::Replay; } >- RecordReplayMode mode() const { return m_recordReplayMode; } >+ Manager(NetworkCaptureMode, const String& cacheLocation); >+ ~Manager(); >+ >+ NetworkCaptureMode mode() const { return m_networkCaptureMode; } > > Resource* findMatch(const WebCore::ResourceRequest&); > >@@ -85,9 +80,6 @@ public: > static String urlIdentifyingCommonDomain(const WebCore::URL&); > > private: >- Manager() = default; >- ~Manager() = delete; >- > Resource* findExactMatch(const WebCore::ResourceRequest&); > Resource* findBestFuzzyMatch(const WebCore::ResourceRequest&); > int fuzzyMatchURLs(const WebCore::URL& requestURL, const WebCore::URLParser::URLEncodedForm& requestParameters, const WebCore::URL& resourceURL, const WebCore::URLParser::URLEncodedForm& resourceParameters); >@@ -105,7 +97,7 @@ private: > bool getLine(uint8_t const *& p, uint8_t const * const end, Vector<String>& line); > bool getWord(uint8_t const *& p, uint8_t const * const end, String& word); > >- RecordReplayMode m_recordReplayMode { Disabled }; >+ NetworkCaptureMode m_networkCaptureMode; > String m_recordReplayCacheLocation; > > WebCore::FileHandle m_loadFileHandle; >Index: Source/WebKit/NetworkProcess/capture/NetworkCaptureRecorder.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/capture/NetworkCaptureRecorder.cpp (revision 238746) >+++ Source/WebKit/NetworkProcess/capture/NetworkCaptureRecorder.cpp (working copy) >@@ -130,8 +130,11 @@ void Recorder::recordFinish(const WebCor > > void Recorder::writeEvents() > { >- auto path = Manager::singleton().requestToPath(m_initialRequest); >- auto handle = Manager::singleton().openCacheFile(path, WebCore::FileSystem::FileOpenMode::Write); >+ if (!m_manager) >+ return; >+ >+ auto path = m_manager->requestToPath(m_initialRequest); >+ auto handle = m_manager->openCacheFile(path, WebCore::FileSystem::FileOpenMode::Write); > if (!handle) > return; > >@@ -147,7 +150,7 @@ void Recorder::writeEvents() > } > } > >- Manager::singleton().logRecordedResource(m_initialRequest); >+ m_manager->logRecordedResource(m_initialRequest); > } > > } // namespace NetworkCapture >Index: Source/WebKit/NetworkProcess/capture/NetworkCaptureRecorder.h >=================================================================== >--- Source/WebKit/NetworkProcess/capture/NetworkCaptureRecorder.h (revision 238746) >+++ Source/WebKit/NetworkProcess/capture/NetworkCaptureRecorder.h (working copy) >@@ -28,7 +28,9 @@ > #if ENABLE(NETWORK_CAPTURE) > > #include "NetworkCaptureEvent.h" >+#include "NetworkCaptureManager.h" > #include <WebCore/ResourceRequest.h> >+#include <wtf/WeakPtr.h> > > namespace WebCore { > class ResourceError; >@@ -41,6 +43,9 @@ namespace NetworkCapture { > > class Recorder { > public: >+ Recorder(Manager& manager) >+ : m_manager(makeWeakPtr(manager)) { } >+ > void recordRequestSent(const WebCore::ResourceRequest&); > void recordResponseReceived(const WebCore::ResourceResponse&); > void recordRedirectReceived(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); >@@ -60,6 +65,7 @@ private: > CaptureEvents m_events; > WebCore::ResourceRequest m_initialRequest; > size_t m_dataLength { 0 }; >+ WeakPtr<Manager> m_manager; > }; > > } // namespace NetworkCapture >Index: Source/WebKit/NetworkProcess/capture/NetworkCaptureReplayer.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/capture/NetworkCaptureReplayer.cpp (revision 238746) >+++ Source/WebKit/NetworkProcess/capture/NetworkCaptureReplayer.cpp (working copy) >@@ -40,8 +40,11 @@ namespace NetworkCapture { > > Ref<NetworkDataTask> Replayer::replayResource(NetworkSession& session, NetworkDataTaskClient& client, const NetworkLoadParameters& parameters) > { >- auto foundResource = Manager::singleton().findMatch(parameters.request); >- Manager::singleton().logPlayedBackResource(parameters.request, !foundResource); >+ Resource* foundResource = nullptr; >+ if (m_manager) { >+ foundResource = m_manager->findMatch(parameters.request); >+ m_manager->logPlayedBackResource(parameters.request, !foundResource); >+ } > return NetworkDataTaskReplay::create(session, client, parameters, foundResource); > } > >Index: Source/WebKit/NetworkProcess/capture/NetworkCaptureReplayer.h >=================================================================== >--- Source/WebKit/NetworkProcess/capture/NetworkCaptureReplayer.h (revision 238746) >+++ Source/WebKit/NetworkProcess/capture/NetworkCaptureReplayer.h (working copy) >@@ -28,6 +28,7 @@ > #if ENABLE(NETWORK_CAPTURE) > > #include <wtf/Ref.h> >+#include <wtf/WeakPtr.h> > > namespace WebKit { > class NetworkDataTask; >@@ -41,7 +42,12 @@ namespace NetworkCapture { > > class Replayer { > public: >+ Replayer(Manager& manager) >+ : m_manager(makeWeakPtr(manager)) { } >+ > Ref<NetworkDataTask> replayResource(NetworkSession&, NetworkDataTaskClient&, const NetworkLoadParameters&); >+private: >+ WeakPtr<Manager> m_manager; > }; > > } // namespace NetworkCapture >Index: Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h >=================================================================== >--- Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (revision 238746) >+++ Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (working copy) >@@ -39,6 +39,10 @@ OBJC_CLASS WKNetworkSessionDelegate; > > namespace WebKit { > >+namespace NetworkCapture { >+class Manager; >+} >+ > class LegacyCustomProtocolManager; > > class NetworkSessionCocoa final : public NetworkSession { >@@ -72,6 +76,7 @@ private: > void clearCredentials() override; > bool shouldLogCookieInformation() const override { return m_shouldLogCookieInformation; } > Seconds loadThrottleLatency() const override { return m_loadThrottleLatency; } >+ NetworkCapture::Manager* networkCaptureManager() const override { return m_networkCaptureManager.get(); } > > HashMap<NetworkDataTaskCocoa::TaskIdentifier, NetworkDataTaskCocoa*> m_dataTaskMapWithCredentials; > HashMap<NetworkDataTaskCocoa::TaskIdentifier, NetworkDataTaskCocoa*> m_dataTaskMapWithoutState; >@@ -89,6 +94,7 @@ private: > > String m_sourceApplicationBundleIdentifier; > String m_sourceApplicationSecondaryIdentifier; >+ std::unique_ptr<NetworkCapture::Manager> m_networkCaptureManager; > }; > > } // namespace WebKit >Index: Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm >=================================================================== >--- Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (revision 238746) >+++ Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (working copy) >@@ -32,6 +32,8 @@ > #import "Download.h" > #import "LegacyCustomProtocolManager.h" > #import "Logging.h" >+#import "NetworkCaptureManager.h" >+#import "NetworkCaptureResource.h" > #import "NetworkLoad.h" > #import "NetworkProcess.h" > #import "NetworkSessionCreationParameters.h" >@@ -648,6 +650,7 @@ NetworkSessionCocoa::NetworkSessionCocoa > , m_loadThrottleLatency(parameters.loadThrottleLatency) > , m_sourceApplicationBundleIdentifier(parameters.sourceApplicationBundleIdentifier) > , m_sourceApplicationSecondaryIdentifier(parameters.sourceApplicationSecondaryIdentifier) >+ , m_networkCaptureManager(parameters.networkCaptureMode ? std::make_unique<NetworkCapture::Manager>(*parameters.networkCaptureMode, parameters.recordReplayCacheLocation) : nullptr) > { > ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); > >Index: Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (revision 238746) >+++ Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (working copy) >@@ -80,11 +80,6 @@ static NSString * const WebKitSuppressMe > static NSString * const WebKitLogCookieInformationDefaultsKey = @"WebKitLogCookieInformation"; > #endif > >-#if ENABLE(NETWORK_CAPTURE) >-static NSString * const WebKitRecordReplayModeDefaultsKey = @"WebKitRecordReplayMode"; >-static NSString * const WebKitRecordReplayCacheLocationDefaultsKey = @"WebKitRecordReplayCacheLocation"; >-#endif >- > namespace WebKit { > using namespace WebCore; > >@@ -287,13 +282,6 @@ void WebProcessPool::platformInitializeN > parameters.storageAccessAPIEnabled = storageAccessAPIEnabled(); > parameters.suppressesConnectionTerminationOnSystemChange = m_configuration->suppressesConnectionTerminationOnSystemChange(); > >-#if ENABLE(NETWORK_CAPTURE) >- parameters.recordReplayMode = [defaults stringForKey:WebKitRecordReplayModeDefaultsKey]; >- parameters.recordReplayCacheLocation = [defaults stringForKey:WebKitRecordReplayCacheLocationDefaultsKey]; >- if (parameters.recordReplayCacheLocation.isEmpty()) >- parameters.recordReplayCacheLocation = parameters.diskCacheDirectory; >-#endif >- > #if ENABLE(PROXIMITY_NETWORKING) > parameters.wirelessContextIdentifier = m_configuration->wirelessContextIdentifier(); > #endif >Index: Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm >=================================================================== >--- Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (revision 238746) >+++ Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (working copy) >@@ -27,6 +27,7 @@ > #import "WebsiteDataStore.h" > > #import "CookieStorageUtilsCF.h" >+#import "NetworkCaptureManager.h" > #import "StorageManager.h" > #import "WebResourceLoadStatisticsStore.h" > #import "WebsiteDataStoreParameters.h" >@@ -52,6 +53,8 @@ static Vector<WebsiteDataStore*>& dataSt > } > > static NSString * const WebKitNetworkLoadThrottleLatencyMillisecondsDefaultsKey = @"WebKitNetworkLoadThrottleLatencyMilliseconds"; >+static NSString * const WebKitRecordReplayModeDefaultsKey = @"WebKitRecordReplayMode"; >+static NSString * const WebKitRecordReplayCacheLocationDefaultsKey = @"WebKitRecordReplayCacheLocation"; > > WebsiteDataStoreParameters WebsiteDataStore::parameters() > { >@@ -67,6 +70,14 @@ WebsiteDataStoreParameters WebsiteDataSt > bool shouldLogCookieInformation = false; > #endif > >+ auto replayMode = [] (String mode) -> std::optional<NetworkCaptureMode> { >+ if (equalIgnoringASCIICase(mode, "record")) >+ return NetworkCaptureMode::Record; >+ if (equalIgnoringASCIICase(mode, "replay")) >+ return NetworkCaptureMode::Replay; >+ return std::nullopt; >+ }; >+ > WebsiteDataStoreParameters parameters; > parameters.networkSessionParameters = { > m_sessionID, >@@ -76,7 +87,9 @@ WebsiteDataStoreParameters WebsiteDataSt > m_configuration.sourceApplicationBundleIdentifier, > m_configuration.sourceApplicationSecondaryIdentifier, > shouldLogCookieInformation, >- Seconds { [defaults integerForKey:WebKitNetworkLoadThrottleLatencyMillisecondsDefaultsKey] / 1000. } >+ Seconds { [defaults integerForKey:WebKitNetworkLoadThrottleLatencyMillisecondsDefaultsKey] / 1000. }, >+ replayMode([defaults stringForKey:WebKitRecordReplayModeDefaultsKey]), >+ [defaults stringForKey:WebKitRecordReplayCacheLocationDefaultsKey], > }; > > auto cookieFile = resolvedCookieStorageFile();
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
Flags:
cdumez
:
review+
ews-watchlist
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192256
: 356240 |
356252
|
356304