Changeset 162568 in webkit
- Timestamp:
- Jan 22, 2014 4:28:20 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r162566 r162568 1 2014-01-22 Martin Hock <mhock@apple.com> 2 3 Enable Session API. 4 https://bugs.webkit.org/show_bug.cgi?id=127255 5 6 Reviewed by Alexey Proskuryakov. 7 8 * NetworkProcess/NetworkConnectionToWebProcess.cpp: 9 (WebKit::storageSession): 10 * NetworkProcess/NetworkResourceLoader.cpp: 11 (WebKit::NetworkResourceLoader::NetworkResourceLoader): 12 (WebKit::NetworkResourceLoader::start): 13 * NetworkProcess/NetworkResourceLoader.h: 14 * NetworkProcess/RemoteNetworkingContext.h: 15 * NetworkProcess/mac/RemoteNetworkingContext.mm: 16 (WebKit::RemoteNetworkingContext::storageSession): 17 (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): 18 * Shared/Network/NetworkResourceLoadParameters.cpp: 19 (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): 20 (WebKit::NetworkResourceLoadParameters::encode): 21 (WebKit::NetworkResourceLoadParameters::decode): 22 * Shared/Network/NetworkResourceLoadParameters.h: 23 * Shared/SessionTracker.cpp: 24 (WebKit::staticSessionMap): 25 (WebKit::SessionTracker::sessionMap): 26 (WebKit::SessionTracker::session): 27 (WebKit::SessionTracker::setSession): 28 (WebKit::SessionTracker::destroySession): 29 * Shared/SessionTracker.h: 30 * UIProcess/API/C/WKPage.cpp: 31 (WKPageSetSession): 32 * UIProcess/API/C/WKPage.h: 33 * UIProcess/API/C/WKSessionRef.cpp: 34 (WKSessionCreate): 35 * UIProcess/API/C/WKSessionRef.h: 36 * UIProcess/WebPageProxy.cpp: 37 (WebKit::WebPageProxy::WebPageProxy): 38 (WebKit::WebPageProxy::setSession): 39 * UIProcess/WebPageProxy.h: 40 * WebProcess/Network/WebResourceLoadScheduler.cpp: 41 (WebKit::WebResourceLoadScheduler::scheduleLoad): 42 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: 43 (WebKit::WebPlatformStrategies::loadResourceSynchronously): 44 * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: 45 (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): 46 (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): 47 (WebKit::WebFrameNetworkingContext::storageSession): 48 * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp: 49 (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): 50 * WebProcess/WebPage/WebFrame.cpp: 51 (WebKit::WebFrame::startDownload): 52 * WebProcess/WebPage/WebPage.cpp: 53 (WebKit::WebPage::WebPage): 54 (WebKit::WebPage::sessionID): 55 (WebKit::WebPage::updatePreferences): 56 * WebProcess/WebPage/WebPage.h: 57 (WebKit::WebPage::setSessionID): 58 * WebProcess/WebPage/WebPage.messages.in: 59 1 60 2014-01-21 Brady Eidson <beidson@apple.com> 2 61 -
trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp
r162271 r162568 152 152 { 153 153 if (SessionTracker::isEphemeralID(sessionID)) { 154 NetworkStorageSession* privateSession = SessionTracker::session(sessionID) .get();154 NetworkStorageSession* privateSession = SessionTracker::session(sessionID); 155 155 if (privateSession) 156 156 return *privateSession; -
trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp
r161950 r162568 60 60 , m_webPageID(parameters.webPageID) 61 61 , m_webFrameID(parameters.webFrameID) 62 , m_sessionID(parameters.sessionID) 62 63 , m_request(parameters.request) 63 64 , m_priority(parameters.priority) … … 65 66 , m_allowStoredCredentials(parameters.allowStoredCredentials) 66 67 , m_clientCredentialPolicy(parameters.clientCredentialPolicy) 67 , m_inPrivateBrowsingMode(parameters.inPrivateBrowsingMode)68 68 , m_shouldClearReferrerOnHTTPSToHTTPRedirect(parameters.shouldClearReferrerOnHTTPSToHTTPRedirect) 69 69 , m_isLoadingMainResource(parameters.isMainResource) … … 128 128 129 129 // FIXME (NetworkProcess): Set platform specific settings. 130 m_networkingContext = RemoteNetworkingContext::create(m_ inPrivateBrowsingMode, m_shouldClearReferrerOnHTTPSToHTTPRedirect);130 m_networkingContext = RemoteNetworkingContext::create(m_sessionID, m_shouldClearReferrerOnHTTPSToHTTPRedirect); 131 131 132 132 consumeSandboxExtensions(); -
trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h
r162139 r162568 175 175 uint64_t m_webPageID; 176 176 uint64_t m_webFrameID; 177 uint64_t m_sessionID; 177 178 WebCore::ResourceRequest m_request; 178 179 WebCore::ResourceLoadPriority m_priority; … … 180 181 WebCore::StoredCredentials m_allowStoredCredentials; 181 182 WebCore::ClientCredentialPolicy m_clientCredentialPolicy; 182 bool m_inPrivateBrowsingMode;183 183 bool m_shouldClearReferrerOnHTTPSToHTTPRedirect; 184 184 bool m_isLoadingMainResource; -
trunk/Source/WebKit2/NetworkProcess/RemoteNetworkingContext.h
r162271 r162568 34 34 class RemoteNetworkingContext final : public WebCore::NetworkingContext { 35 35 public: 36 static PassRefPtr<RemoteNetworkingContext> create( bool privateBrowsingEnabled, bool shouldClearReferrerOnHTTPSToHTTPRedirect)36 static PassRefPtr<RemoteNetworkingContext> create(uint64_t sessionID, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 37 37 { 38 return adoptRef(new RemoteNetworkingContext( privateBrowsingEnabled, shouldClearReferrerOnHTTPSToHTTPRedirect));38 return adoptRef(new RemoteNetworkingContext(sessionID, shouldClearReferrerOnHTTPSToHTTPRedirect)); 39 39 } 40 40 virtual ~RemoteNetworkingContext(); 41 41 42 // FIXME: remove platform-specific code and use SessionTracker42 // FIXME: Remove platform-specific code and use SessionTracker. 43 43 static void ensurePrivateBrowsingSession(uint64_t sessionID); 44 44 … … 46 46 47 47 private: 48 RemoteNetworkingContext( bool privateBrowsingEnabled, bool shouldClearReferrerOnHTTPSToHTTPRedirect)49 : m_ privateBrowsingEnabled(privateBrowsingEnabled)48 RemoteNetworkingContext(uint64_t sessionID, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 49 : m_sessionID(sessionID) 50 50 , m_shouldClearReferrerOnHTTPSToHTTPRedirect(shouldClearReferrerOnHTTPSToHTTPRedirect) 51 51 #if PLATFORM(MAC) … … 71 71 #endif 72 72 73 bool m_privateBrowsingEnabled;73 uint64_t m_sessionID; 74 74 bool m_shouldClearReferrerOnHTTPSToHTTPRedirect; 75 75 -
trunk/Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.mm
r162271 r162568 60 60 NetworkStorageSession& RemoteNetworkingContext::storageSession() const 61 61 { 62 if (m_privateBrowsingEnabled) { 63 NetworkStorageSession* privateSession = SessionTracker::session(SessionTracker::legacyPrivateSessionID).get(); 64 if (privateSession) 65 return *privateSession; 66 // Some requests with private browsing mode requested may still be coming shortly after NetworkProcess was told to destroy its session. 67 // FIXME: Find a way to track private browsing sessions more rigorously. 68 LOG_ERROR("Private browsing was requested, but there was no session for it. Please file a bug unless you just disabled private browsing, in which case it's an expected race."); 69 } 70 62 NetworkStorageSession* session = SessionTracker::session(m_sessionID); 63 if (session) 64 return *session; 65 // Some requests may still be coming shortly after NetworkProcess was told to destroy its session. 66 LOG_ERROR("Invalid session ID. Please file a bug unless you just disabled private browsing, in which case it's an expected race."); 71 67 return NetworkStorageSession::defaultStorageSession(); 72 68 } … … 88 84 89 85 ASSERT(!SessionTracker::getIdentifierBase().isNull()); 90 SessionTracker::se ssion(sessionID) = NetworkStorageSession::createPrivateBrowsingSession(SessionTracker::getIdentifierBase() + '.' + String::number(sessionID));86 SessionTracker::setSession(sessionID, NetworkStorageSession::createPrivateBrowsingSession(SessionTracker::getIdentifierBase() + '.' + String::number(sessionID))); 91 87 } 92 88 -
trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp
r161148 r162568 42 42 , webPageID(0) 43 43 , webFrameID(0) 44 , sessionID(0) 44 45 , priority(ResourceLoadPriorityVeryLow) 45 46 , contentSniffingPolicy(SniffContent) 46 47 , allowStoredCredentials(DoNotAllowStoredCredentials) 47 48 , clientCredentialPolicy(DoNotAskClientForAnyCredentials) 48 , inPrivateBrowsingMode(false)49 49 , shouldClearReferrerOnHTTPSToHTTPRedirect(true) 50 50 , isMainResource(false) … … 57 57 encoder << webPageID; 58 58 encoder << webFrameID; 59 encoder << sessionID; 59 60 encoder << request; 60 61 … … 95 96 encoder.encodeEnum(allowStoredCredentials); 96 97 encoder.encodeEnum(clientCredentialPolicy); 97 encoder << inPrivateBrowsingMode;98 98 encoder << shouldClearReferrerOnHTTPSToHTTPRedirect; 99 99 encoder << isMainResource; … … 109 109 110 110 if (!decoder.decode(result.webFrameID)) 111 return false; 112 113 if (!decoder.decode(result.sessionID)) 111 114 return false; 112 115 … … 142 145 if (!decoder.decodeEnum(result.clientCredentialPolicy)) 143 146 return false; 144 if (!decoder.decode(result.inPrivateBrowsingMode))145 return false;146 147 if (!decoder.decode(result.shouldClearReferrerOnHTTPSToHTTPRedirect)) 147 148 return false; -
trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.h
r161148 r162568 53 53 uint64_t webPageID; 54 54 uint64_t webFrameID; 55 uint64_t sessionID; 55 56 WebCore::ResourceRequest request; 56 57 SandboxExtension::HandleArray requestBodySandboxExtensions; // Created automatically for the sender. … … 60 61 WebCore::StoredCredentials allowStoredCredentials; 61 62 WebCore::ClientCredentialPolicy clientCredentialPolicy; 62 bool inPrivateBrowsingMode;63 63 bool shouldClearReferrerOnHTTPSToHTTPRedirect; 64 64 bool isMainResource; -
trunk/Source/WebKit2/Shared/SessionTracker.cpp
r162271 r162568 34 34 namespace WebKit { 35 35 36 static HashMap<uint64_t, std::unique_ptr<NetworkStorageSession>>& s essionMap()36 static HashMap<uint64_t, std::unique_ptr<NetworkStorageSession>>& staticSessionMap() 37 37 { 38 38 ASSERT(isMainThread()); … … 50 50 } 51 51 52 const HashMap<uint64_t, std::unique_ptr<NetworkStorageSession>>& SessionTracker:: getSessionMap()52 const HashMap<uint64_t, std::unique_ptr<NetworkStorageSession>>& SessionTracker::sessionMap() 53 53 { 54 return s essionMap();54 return staticSessionMap(); 55 55 } 56 56 … … 60 60 } 61 61 62 std::unique_ptr<NetworkStorageSession>&SessionTracker::session(uint64_t sessionID)62 NetworkStorageSession* SessionTracker::session(uint64_t sessionID) 63 63 { 64 return sessionMap().add(sessionID, nullptr).iterator->value; 64 if (sessionID == defaultSessionID) 65 return &NetworkStorageSession::defaultStorageSession(); 66 return staticSessionMap().add(sessionID, nullptr).iterator->value.get(); 67 } 68 69 void SessionTracker::setSession(uint64_t sessionID, std::unique_ptr<NetworkStorageSession> session) 70 { 71 ASSERT(sessionID != defaultSessionID); 72 staticSessionMap().add(sessionID, nullptr).iterator->value = std::move(session); 65 73 } 66 74 … … 69 77 ASSERT(isMainThread()); 70 78 71 s essionMap().remove(sessionID);79 staticSessionMap().remove(sessionID); 72 80 } 73 81 -
trunk/Source/WebKit2/Shared/SessionTracker.h
r162271 r162568 40 40 static const uint64_t legacyPrivateSessionID = 2; 41 41 static bool isEphemeralID(uint64_t sessionID) { return sessionID != SessionTracker::defaultSessionID; } 42 static const HashMap<uint64_t, std::unique_ptr<WebCore::NetworkStorageSession>>& getSessionMap(); 42 // FIXME: sessionMap()'s returned map does not include default session. 43 static const HashMap<uint64_t, std::unique_ptr<WebCore::NetworkStorageSession>>& sessionMap(); 43 44 static const String& getIdentifierBase(); 44 static std::unique_ptr<WebCore::NetworkStorageSession>& session(uint64_t sessionID); 45 static WebCore::NetworkStorageSession* session(uint64_t sessionID); 46 static void setSession(uint64_t sessionID, std::unique_ptr<WebCore::NetworkStorageSession>); 45 47 static void destroySession(uint64_t sessionID); 46 48 static void setIdentifierBase(const String&); -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp
r161105 r162568 681 681 } 682 682 683 void WKPageSetSession(WKPageRef pageRef, WKSessionRef session) 684 { 685 toImpl(pageRef)->setSession(*toImpl(session)); 686 } 687 683 688 void WKPageRunJavaScriptInMainFrame(WKPageRef pageRef, WKStringRef scriptRef, void* context, WKPageRunJavaScriptFunction callback) 684 689 { -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.h
r160385 r162568 42 42 #include <WebKit2/WKPageUIClient.h> 43 43 #include <WebKit2/WKPageVisibilityTypes.h> 44 #include <WebKit2/WKSessionRef.h> 44 45 45 46 #ifndef __cplusplus … … 202 203 WK_EXPORT void WKPageSetPageUIClient(WKPageRef page, const WKPageUIClientBase* client); 203 204 205 WK_EXPORT void WKPageSetSession(WKPageRef page, WKSessionRef session); 206 204 207 typedef void (*WKPageRunJavaScriptFunction)(WKSerializedScriptValueRef, WKErrorRef, void*); 205 208 WK_EXPORT void WKPageRunJavaScriptInMainFrame(WKPageRef page, WKStringRef script, void* context, WKPageRunJavaScriptFunction function); -
trunk/Source/WebKit2/UIProcess/API/C/WKSessionRef.cpp
r162465 r162568 32 32 using namespace WebKit; 33 33 34 WKSessionRef WKSessionCreate(bool isEphemeral) 35 { 36 RefPtr<API::Session> session = API::Session::create(isEphemeral); 37 return toAPI(session.release().leakRef()); 38 } 39 34 40 WKTypeID WKSessionGetTypeID() 35 41 { -
trunk/Source/WebKit2/UIProcess/API/C/WKSessionRef.h
r162465 r162568 33 33 #endif 34 34 35 /* FIXME: We can create sessions on demand, because we hardcode the fact that all sessions but the default one are ephemeral. We'll need to create them explicitly once sessions have more configuration options. */ 36 WK_EXPORT WKSessionRef WKSessionCreate(bool isEphemeral); 37 35 38 WK_EXPORT WKTypeID WKSessionGetTypeID(); 36 39 -
trunk/Source/WebKit2/UIProcess/APISession.h
r162271 r162568 35 35 class Session : public API::ObjectImpl<API::Object::Type::Session> { 36 36 public: 37 // FIXME: We can create sessions on demand, because we hardcode the fact that all sessions but the default one are ephemeral. We'll need to create them explicitly once sessions have more configuration options. 37 38 static PassRefPtr<Session> create(bool isEphemeral); 38 39 static Session& defaultSession(); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r162449 r162568 119 119 #endif 120 120 121 #if ENABLE(NETWORK_PROCESS) 122 #include "NetworkProcessMessages.h" 123 #endif 124 121 125 // This controls what strategy we use for mouse wheel coalescing. 122 126 #define MERGE_WHEEL_EVENTS 1 … … 342 346 // FIXME: If we ever expose the session storage size as a preference, we need to pass it here. 343 347 m_process->context().storageManager().createSessionStorageNamespace(m_pageID, m_process->isValid() ? m_process->connection() : 0, std::numeric_limits<unsigned>::max()); 348 setSession(session); 344 349 } 345 350 … … 496 501 m_process->send(Messages::WebPage::GoToBackForwardItem(item->itemID()), m_pageID); 497 502 m_process->responsivenessTimer()->start(); 503 } 504 505 void WebPageProxy::setSession(API::Session& session) 506 { 507 m_session = session; 508 m_process->send(Messages::WebPage::SetSessionID(session.getID()), m_pageID); 509 510 #if ENABLE(NETWORK_PROCESS) 511 m_process->context().sendToNetworkingProcess(Messages::NetworkProcess::EnsurePrivateBrowsingSession(session.getID())); 512 #endif 498 513 } 499 514 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r162449 r162568 333 333 virtual ~WebPageProxy(); 334 334 335 void setSession(API::Session&); 336 335 337 uint64_t pageID() const { return m_pageID; } 336 338 uint64_t sessionID() const { return m_session->getID(); } -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp
r156550 r162568 31 31 #include "NetworkProcessConnection.h" 32 32 #include "NetworkResourceLoadParameters.h" 33 #include "SessionTracker.h" 33 34 #include "WebCoreArgumentCoders.h" 34 35 #include "WebErrors.h" … … 106 107 ContentSniffingPolicy contentSniffingPolicy = resourceLoader->shouldSniffContent() ? SniffContent : DoNotSniffContent; 107 108 StoredCredentials allowStoredCredentials = resourceLoader->shouldUseCredentialStorage() ? AllowStoredCredentials : DoNotAllowStoredCredentials; 108 bool privateBrowsingEnabled = resourceLoader->frameLoader()->frame().settings().privateBrowsingEnabled();109 109 110 110 // FIXME: Some entities in WebCore use WebCore's "EmptyFrameLoaderClient" instead of having a proper WebFrameLoaderClient. … … 119 119 loadParameters.webPageID = webPage ? webPage->pageID() : 0; 120 120 loadParameters.webFrameID = webFrame ? webFrame->frameID() : 0; 121 loadParameters.sessionID = webPage ? webPage->sessionID() : SessionTracker::defaultSessionID; 121 122 loadParameters.request = resourceLoader->request(); 122 123 loadParameters.priority = priority; … … 125 126 // If there is no WebFrame then this resource cannot be authenticated with the client. 126 127 loadParameters.clientCredentialPolicy = (webFrame && webPage) ? resourceLoader->clientCredentialPolicy() : DoNotAskClientForAnyCredentials; 127 loadParameters.inPrivateBrowsingMode = privateBrowsingEnabled;128 128 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = shouldClearReferrerOnHTTPSToHTTPRedirect; 129 129 loadParameters.isMainResource = resource && resource->type() == CachedResource::MainResource; -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
r162271 r162568 271 271 loadParameters.webPageID = webPage ? webPage->pageID() : 0; 272 272 loadParameters.webFrameID = webFrame ? webFrame->frameID() : 0; 273 loadParameters.sessionID = webPage ? webPage->sessionID() : SessionTracker::defaultSessionID; 273 274 loadParameters.request = request; 274 275 loadParameters.priority = ResourceLoadPriorityHighest; … … 276 277 loadParameters.allowStoredCredentials = storedCredentials; 277 278 loadParameters.clientCredentialPolicy = clientCredentialPolicy; 278 loadParameters.inPrivateBrowsingMode = context->storageSession().isPrivateBrowsingSession();279 279 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = context->shouldClearReferrerOnHTTPSToHTTPRedirect(); 280 280 -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm
r162271 r162568 29 29 #include "WebCookieManager.h" 30 30 #include "WebFrameNetworkingContext.h" 31 #include "WebPage.h" 31 32 #include <WebCore/Frame.h> 32 33 #include <WebCore/FrameLoader.h> … … 53 54 base = SessionTracker::getIdentifierBase(); 54 55 55 SessionTracker::se ssion(sessionID) = NetworkStorageSession::createPrivateBrowsingSession(base + '.' + String::number(sessionID));56 SessionTracker::setSession(sessionID, NetworkStorageSession::createPrivateBrowsingSession(base + '.' + String::number(sessionID))); 56 57 } 57 58 … … 63 64 WKSetHTTPCookieAcceptPolicy(cookieStorage.get(), policy); 64 65 65 for (const auto& session : SessionTracker:: getSessionMap().values()) {66 for (const auto& session : SessionTracker::sessionMap().values()) { 66 67 if (session) 67 68 WKSetHTTPCookieAcceptPolicy(session->cookieStorage().get(), policy); … … 100 101 ASSERT(isMainThread()); 101 102 102 if (frame() && frame()->settings().privateBrowsingEnabled()) 103 return *SessionTracker::session(SessionTracker::legacyPrivateSessionID); 104 103 if (frame()) 104 return *SessionTracker::session(webFrameLoaderClient()->webFrame()->page()->sessionID()); 105 105 return NetworkStorageSession::defaultStorageSession(); 106 106 } 107 107 108 WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const 108 109 { -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp
r162271 r162568 45 45 return; 46 46 47 SessionTracker::se ssion(sessionID) = NetworkStorageSession::createPrivateBrowsingSession(String::number(sessionID));47 SessionTracker::setSession(sessionID, NetworkStorageSession::createPrivateBrowsingSession(String::number(sessionID))); 48 48 } 49 49 -
trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp
r160208 r162568 235 235 #if ENABLE(NETWORK_PROCESS) 236 236 if (WebProcess::shared().usesNetworkProcess()) { 237 bool privateBrowsingEnabled = m_coreFrame->loader().networkingContext()->storageSession().isPrivateBrowsingSession(); 238 WebProcess::shared().networkConnection()->connection()->send(Messages::NetworkConnectionToWebProcess::StartDownload(privateBrowsingEnabled, policyDownloadID, request), 0); 237 WebProcess::shared().networkConnection()->connection()->send(Messages::NetworkConnectionToWebProcess::StartDownload(page()->sessionID(), policyDownloadID, request), 0); 239 238 return; 240 239 } -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r162548 r162568 224 224 WebPage::WebPage(uint64_t pageID, const WebPageCreationParameters& parameters) 225 225 : m_pageID(pageID) 226 , m_sessionID(0) 226 227 , m_viewSize(parameters.viewSize) 227 228 , m_hasSeenPlugin(false) … … 2122 2123 } 2123 2124 2125 uint64_t WebPage::sessionID() const 2126 { 2127 if (m_sessionID) 2128 return m_sessionID; 2129 2130 return m_page->settings().privateBrowsingEnabled() ? SessionTracker::legacyPrivateSessionID : SessionTracker::defaultSessionID; 2131 } 2132 2124 2133 void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, uint32_t policyAction, uint64_t downloadID) 2125 2134 { … … 2424 2433 settings.setXSSAuditorEnabled(store.getBoolValueForKey(WebPreferencesKey::xssAuditorEnabledKey())); 2425 2434 settings.setFrameFlatteningEnabled(store.getBoolValueForKey(WebPreferencesKey::frameFlatteningEnabledKey())); 2426 settings.setPrivateBrowsingEnabled(store.getBoolValueForKey(WebPreferencesKey::privateBrowsingEnabledKey())); 2435 if (m_sessionID) 2436 settings.setPrivateBrowsingEnabled(SessionTracker::isEphemeralID(m_sessionID)); 2437 else 2438 settings.setPrivateBrowsingEnabled(store.getBoolValueForKey(WebPreferencesKey::privateBrowsingEnabledKey())); 2427 2439 settings.setDeveloperExtrasEnabled(store.getBoolValueForKey(WebPreferencesKey::developerExtrasEnabledKey())); 2428 2440 settings.setJavaScriptExperimentsEnabled(store.getBoolValueForKey(WebPreferencesKey::javaScriptExperimentsEnabledKey())); -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h
r162548 r162568 180 180 WebCore::Page* corePage() const { return m_page.get(); } 181 181 uint64_t pageID() const { return m_pageID; } 182 uint64_t sessionID() const; 183 void setSessionID(uint64_t sessionID) { m_sessionID = sessionID; } 182 184 183 185 void setSize(const WebCore::IntSize&); … … 874 876 875 877 uint64_t m_pageID; 878 uint64_t m_sessionID; 876 879 877 880 OwnPtr<WebCore::Page> m_page; -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
r162103 r162568 25 25 SetViewState(unsigned viewState, bool wantsDidUpdateViewState) 26 26 SetLayerHostingMode(unsigned layerHostingMode) 27 28 SetSessionID(uint64_t sessionID) 27 29 28 30 SetDrawsBackground(bool drawsBackground)
Note: See TracChangeset
for help on using the changeset viewer.