⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 242230 in webkit


Ignore:
Timestamp:
Feb 28, 2019, 2:45:06 PM (7 years ago)
Author:
sihui_liu@apple.com
Message:

Revert r232263: it caused processes to crash because process was suspended with locked file
https://bugs.webkit.org/show_bug.cgi?id=195122
<rdar://problem/48444599>

Reviewed by Geoffrey Garen.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • Shared/WebSQLiteDatabaseTracker.cpp:

(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated):

  • Shared/WebSQLiteDatabaseTracker.h:
  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::m_nonVisibleProcessCleanupTimer): Deleted.

  • WebProcess/WebProcess.h:
Location:
trunk/Source/WebKit
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r242222 r242230  
     12019-02-28  Sihui Liu  <sihui_liu@apple.com>
     2
     3        Revert r232263: it caused processes to crash because process was suspended with locked file
     4        https://bugs.webkit.org/show_bug.cgi?id=195122
     5        <rdar://problem/48444599>
     6
     7        Reviewed by Geoffrey Garen.
     8
     9        * NetworkProcess/NetworkProcess.cpp:
     10        (WebKit::NetworkProcess::NetworkProcess):
     11        * NetworkProcess/NetworkProcess.h:
     12        * Shared/WebSQLiteDatabaseTracker.cpp:
     13        (WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
     14        (WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated):
     15        * Shared/WebSQLiteDatabaseTracker.h:
     16        * WebProcess/WebProcess.cpp:
     17        (WebKit::m_webSQLiteDatabaseTracker):
     18        (WebKit::m_nonVisibleProcessCleanupTimer): Deleted.
     19        * WebProcess/WebProcess.h:
     20
    1212019-02-28  Per Arne Vollan  <pvollan@apple.com>
    222
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp

    r242155 r242230  
    129129    , m_networkContentRuleListManager(*this)
    130130#endif
     131#if PLATFORM(IOS_FAMILY)
     132    , m_webSQLiteDatabaseTracker(*this)
     133#endif
    131134{
    132135    NetworkProcessPlatformStrategies::initialize();
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.h

    r242155 r242230  
    4949#include <wtf/RetainPtr.h>
    5050#include <wtf/WeakPtr.h>
     51
     52#if PLATFORM(IOS_FAMILY)
     53#include "WebSQLiteDatabaseTracker.h"
     54#endif
    5155
    5256#if PLATFORM(COCOA)
     
    490494#endif
    491495
     496#if PLATFORM(IOS_FAMILY)
     497    WebSQLiteDatabaseTracker m_webSQLiteDatabaseTracker;
     498#endif
     499
    492500    Ref<WorkQueue> m_storageTaskQueue { WorkQueue::create("com.apple.WebKit.StorageTask") };
    493501
  • trunk/Source/WebKit/Shared/WebSQLiteDatabaseTracker.cpp

    r240683 r242230  
    3737using namespace WebCore;
    3838
     39WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker(WebProcess& process)
     40    : m_process(process)
     41    , m_processType(AuxiliaryProcess::ProcessType::WebContent)
     42    , m_hysteresis([this](PAL::HysteresisState state) { hysteresisUpdated(state); })
     43{
     44    SQLiteDatabaseTracker::setClient(this);
     45}
     46
    3947WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker(NetworkProcess& process)
    4048    : m_process(process)
     49    , m_processType(AuxiliaryProcess::ProcessType::Network)
    4150    , m_hysteresis([this](PAL::HysteresisState state) { hysteresisUpdated(state); })
    4251{
     
    6069void WebSQLiteDatabaseTracker::hysteresisUpdated(PAL::HysteresisState state)
    6170{
    62     m_process.parentProcessConnection()->send(Messages::NetworkProcessProxy::SetIsHoldingLockedFiles(state == PAL::HysteresisState::Started), 0);
     71    switch (m_processType) {
     72    case AuxiliaryProcess::ProcessType::WebContent:
     73        m_process.parentProcessConnection()->send(Messages::WebProcessProxy::SetIsHoldingLockedFiles(state == PAL::HysteresisState::Started), 0);
     74        break;
     75    case AuxiliaryProcess::ProcessType::Network:
     76        m_process.parentProcessConnection()->send(Messages::NetworkProcessProxy::SetIsHoldingLockedFiles(state == PAL::HysteresisState::Started), 0);
     77        break;
     78    default:
     79        ASSERT_NOT_REACHED();
     80    }
    6381}
    6482
  • trunk/Source/WebKit/Shared/WebSQLiteDatabaseTracker.h

    r240683 r242230  
    3333
    3434class NetworkProcess;
     35class WebProcess;
    3536
    3637class WebSQLiteDatabaseTracker : public WebCore::SQLiteDatabaseTrackerClient {
    3738    WTF_MAKE_NONCOPYABLE(WebSQLiteDatabaseTracker)
    3839public:
     40    explicit WebSQLiteDatabaseTracker(WebProcess&);
    3941    explicit WebSQLiteDatabaseTracker(NetworkProcess&);
    4042
     
    4648    void hysteresisUpdated(PAL::HysteresisState);
    4749
    48     NetworkProcess& m_process;
     50    AuxiliaryProcess& m_process;
     51    AuxiliaryProcess::ProcessType m_processType;
    4952    PAL::HysteresisActivity m_hysteresis;
    5053};
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r242183 r242230  
    183183#endif
    184184    , m_nonVisibleProcessCleanupTimer(*this, &WebProcess::nonVisibleProcessCleanupTimerFired)
     185#if PLATFORM(IOS_FAMILY)
     186    , m_webSQLiteDatabaseTracker(*this)
     187#endif
    185188{
    186189    // Initialize our platform strategies.
  • trunk/Source/WebKit/WebProcess/WebProcess.h

    r242142 r242230  
    5656#endif
    5757
     58#if PLATFORM(IOS_FAMILY)
     59#include "WebSQLiteDatabaseTracker.h"
     60#endif
     61
    5862namespace API {
    5963class Object;
     
    472476    RefPtr<WebCore::ApplicationCacheStorage> m_applicationCacheStorage;
    473477
     478#if PLATFORM(IOS_FAMILY)
     479    WebSQLiteDatabaseTracker m_webSQLiteDatabaseTracker;
     480#endif
     481
    474482    enum PageMarkingLayersAsVolatileCounterType { };
    475483    using PageMarkingLayersAsVolatileCounter = RefCounter<PageMarkingLayersAsVolatileCounterType>;
Note: See TracChangeset for help on using the changeset viewer.