diff options
author | Michal Klocek <michal.klocek@qt.io> | 2018-11-27 17:44:22 +0100 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2019-01-09 18:47:18 +0000 |
commit | fc382c92021954593e6d8d07ee3f0792c4ad5c17 (patch) | |
tree | 3d0d9c6dc50bc0af61c13fb047164995e61f89a6 /src/core/profile_io_data_qt.h | |
parent | 846320f5877aafb9c7b319da6c972786805d9c30 (diff) |
Fix recreation of cookie store and channel id service
As more things gets mojofy and become services,
we can not simply delete parts of storage context.
Therefore regenerate whole storage in case of cookie
store, cache, agent settings updates. URLRequestContextStorage
guards correct order of destruction.
This change aims to fix some crashes during cookie store and
http cache recreation when ChannelIDService gets deleted.
Depending on timing this ends with different stacktraces like
in cookie store manager or during ssl handshake.
We still keep network delegate outside of storage context to
prevent crashes when url requests end their life due
to (forced) request cancellation in cancelAllUrlRequests().
Please note this is just band-aid patch, and introduction of
'profile builder' will be a proper fix.
Fixes: QTBUG-71895
Change-Id: If33a7af3ebba2632ea33f32d913e1c21a4534817
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/profile_io_data_qt.h')
-rw-r--r-- | src/core/profile_io_data_qt.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/core/profile_io_data_qt.h b/src/core/profile_io_data_qt.h index 5b416861c..2d4706bf4 100644 --- a/src/core/profile_io_data_qt.h +++ b/src/core/profile_io_data_qt.h @@ -105,6 +105,8 @@ public: void updateHttpCache(); // runs on ui thread void updateJobFactory(); // runs on ui thread void updateRequestInterceptor(); // runs on ui thread + void requestStorageGeneration(); //runs on ui thread + void createProxyConfig(); //runs on ui thread private: ProfileQt *m_profile; @@ -140,10 +142,7 @@ private: int m_httpCacheMaxSize = 0; bool m_initialized = false; bool m_updateAllStorage = false; - bool m_updateCookieStore = false; - bool m_updateHttpCache = false; bool m_updateJobFactory = false; - bool m_updateUserAgent = false; bool m_ignoreCertificateErrors = false; base::WeakPtrFactory<ProfileIODataQt> m_weakPtrFactory; // this should be always the last member QString m_dataPath; |