Changeset 158075 in webkit


Ignore:
Timestamp:
Oct 25, 2013 5:29:17 PM (11 years ago)
Author:
beidson@apple.com
Message:

WebIconDatabase can miss private browsing state changes.
<rdar://problem/15322318> and https://bugs.webkit.org/show_bug.cgi?id=123375

Reviewed by Beth Dakin.

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::willStartUsingPrivateBrowsing): Call setPrivateBrowsingEnabled(true) on each context.
(WebKit::WebContext::willStopUsingPrivateBrowsing): Call setPrivateBrowsingEnabled(false) on each context.
(WebKit::WebContext::setPrivateBrowsingEnabled): In addition to notifying other processes, notify WebIconDatabase.

  • UIProcess/WebContext.h:
  • UIProcess/WebIconDatabase.cpp:

(WebKit::WebIconDatabase::setPrivateBrowsingEnabled):

  • UIProcess/WebIconDatabase.h:
Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r158050 r158075  
     12013-10-25  Brady Eidson  <beidson@apple.com>
     2
     3        WebIconDatabase can miss private browsing state changes.
     4        <rdar://problem/15322318> and https://bugs.webkit.org/show_bug.cgi?id=123375
     5
     6        Reviewed by Beth Dakin.
     7
     8        * UIProcess/WebContext.cpp:
     9        (WebKit::WebContext::willStartUsingPrivateBrowsing): Call setPrivateBrowsingEnabled(true) on each context.
     10        (WebKit::WebContext::willStopUsingPrivateBrowsing): Call setPrivateBrowsingEnabled(false) on each context.
     11        (WebKit::WebContext::setPrivateBrowsingEnabled): In addition to notifying other processes, notify WebIconDatabase.
     12        * UIProcess/WebContext.h:
     13
     14        * UIProcess/WebIconDatabase.cpp:
     15        (WebKit::WebIconDatabase::setPrivateBrowsingEnabled):
     16        * UIProcess/WebIconDatabase.h:
     17
    1182013-10-25  Joseph Pecoraro  <pecoraro@apple.com>
    219
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r157850 r158075  
    429429{
    430430    const Vector<WebContext*>& contexts = allContexts();
    431     for (size_t i = 0, count = contexts.size(); i < count; ++i) {
    432 #if ENABLE(NETWORK_PROCESS)
    433         if (contexts[i]->usesNetworkProcess() && contexts[i]->networkProcess())
    434             contexts[i]->networkProcess()->send(Messages::NetworkProcess::EnsurePrivateBrowsingSession(), 0);
    435 #endif
    436         contexts[i]->sendToAllProcesses(Messages::WebProcess::EnsurePrivateBrowsingSession());
    437     }
     431    for (size_t i = 0, count = contexts.size(); i < count; ++i)
     432        contexts[i]->setPrivateBrowsingEnabled(true);
    438433}
    439434
     
    441436{
    442437    const Vector<WebContext*>& contexts = allContexts();
    443     for (size_t i = 0, count = contexts.size(); i < count; ++i) {
    444 #if ENABLE(NETWORK_PROCESS)
    445         if (contexts[i]->usesNetworkProcess() && contexts[i]->networkProcess())
    446             contexts[i]->networkProcess()->send(Messages::NetworkProcess::DestroyPrivateBrowsingSession(), 0);
    447 #endif
    448 
    449         contexts[i]->sendToAllProcesses(Messages::WebProcess::DestroyPrivateBrowsingSession());
    450     }
     438    for (size_t i = 0, count = contexts.size(); i < count; ++i)
     439        contexts[i]->setPrivateBrowsingEnabled(false);
     440}
     441
     442void WebContext::setPrivateBrowsingEnabled(bool privateBrowsingEnabled)
     443{
     444    m_iconDatabase->setPrivateBrowsingEnabled(privateBrowsingEnabled);
     445
     446#if ENABLE(NETWORK_PROCESS)
     447    if (usesNetworkProcess() && networkProcess()) {
     448        if (privateBrowsingEnabled)
     449            networkProcess()->send(Messages::NetworkProcess::EnsurePrivateBrowsingSession(), 0);
     450        else
     451            networkProcess()->send(Messages::NetworkProcess::DestroyPrivateBrowsingSession(), 0);
     452    }
     453#endif // ENABLED(NETWORK_PROCESS)
     454
     455    if (privateBrowsingEnabled)
     456        sendToAllProcesses(Messages::WebProcess::EnsurePrivateBrowsingSession());
     457    else
     458        sendToAllProcesses(Messages::WebProcess::DestroyPrivateBrowsingSession());
    451459}
    452460
  • trunk/Source/WebKit2/UIProcess/WebContext.h

    r157524 r158075  
    399399    void plugInDidReceiveUserInteraction(unsigned plugInOriginHash);
    400400
     401    void setPrivateBrowsingEnabled(bool);
     402
    401403#if ENABLE(NETSCAPE_PLUGIN_API)
    402404    // PluginInfoStoreClient:
  • trunk/Source/WebKit2/UIProcess/WebIconDatabase.cpp

    r151932 r158075  
    294294}
    295295
     296void WebIconDatabase::setPrivateBrowsingEnabled(bool privateBrowsingEnabled)
     297{
     298    m_iconDatabaseImpl->setPrivateBrowsingEnabled(privateBrowsingEnabled);
     299}
     300
    296301} // namespace WebKit
  • trunk/Source/WebKit2/UIProcess/WebIconDatabase.h

    r156354 r158075  
    8888    void initializeIconDatabaseClient(const WKIconDatabaseClient*);
    8989
     90    void setPrivateBrowsingEnabled(bool);
     91   
    9092private:
    9193    WebIconDatabase(WebContext*);
Note: See TracChangeset for help on using the changeset viewer.