Changeset 262004 in webkit


Ignore:
Timestamp:
May 21, 2020 9:08:50 AM (4 years ago)
Author:
Chris Dumez
Message:

[WK2] WebKit abandons compiled sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=212177
<rdar://problem/54613619>

Reviewed by Saam Barati.

WebKit generates new compiled sandbox profiles whenever sandbox profiles are updated or
whenever webkit directories change (which is super common for WebKitTestRunner). Previous
compiled sandbox profiles do not get deleted and therefore may accumulate.

To address the issue, we now save compiled sandbox profiles under _CS_DARWIN_USER_TEMP_DIR
instead of _CS_DARWIN_USER_CACHE_DIR. The system takes care of deleting the files under
_CS_DARWIN_USER_TEMP_DIR upon reboot or if they have not been accessed for 3 days.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::sandboxDataVaultParentDirectory):

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r262000 r262004  
     12020-05-21  Chris Dumez  <cdumez@apple.com>
     2
     3        [WK2] WebKit abandons compiled sandbox profiles
     4        https://bugs.webkit.org/show_bug.cgi?id=212177
     5        <rdar://problem/54613619>
     6
     7        Reviewed by Saam Barati.
     8
     9        WebKit generates new compiled sandbox profiles whenever sandbox profiles are updated or
     10        whenever webkit directories change (which is super common for WebKitTestRunner). Previous
     11        compiled sandbox profiles do not get deleted and therefore may accumulate.
     12
     13        To address the issue, we now save compiled sandbox profiles under _CS_DARWIN_USER_TEMP_DIR
     14        instead of _CS_DARWIN_USER_CACHE_DIR. The system takes care of deleting the files under
     15        _CS_DARWIN_USER_TEMP_DIR upon reboot or if they have not been accessed for 3 days.
     16
     17        * Shared/mac/AuxiliaryProcessMac.mm:
     18        (WebKit::sandboxDataVaultParentDirectory):
     19
    1202020-05-21  Wenson Hsieh  <wenson_hsieh@apple.com>
    221
  • trunk/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm

    r260098 r262004  
    257257{
    258258    char temp[PATH_MAX];
    259     size_t length = confstr(_CS_DARWIN_USER_CACHE_DIR, temp, sizeof(temp));
     259    // We save the profiles in the user tempory directory so that they get cleaned on reboot
     260    // or if they are not accessed in 3 days. This avoids accumulating profiles whenever we change
     261    // our sandbox rules or webkit cache directories (rdar://problem/54613619).
     262    size_t length = confstr(_CS_DARWIN_USER_TEMP_DIR, temp, sizeof(temp));
    260263    if (!length) {
    261264        WTFLogAlways("%s: Could not retrieve user cache directory path: %s\n", getprogname(), strerror(errno));
Note: See TracChangeset for help on using the changeset viewer.