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

Changeset 143986 in webkit


Ignore:
Timestamp:
Feb 25, 2013, 4:49:17 PM (14 years ago)
Author:
jpfau@apple.com
Message:

Optionally partition cache to prevent using cache for tracking
https://bugs.webkit.org/show_bug.cgi?id=110269

Reviewed by Maciej Stachowiak.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage

Source/WebCore:

Implement memory cache partitioning by passing the cache name through
resource requests into a new version of resourceForURL.

Test: http/tests/cache/partitioned-cache.html

  • Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
  • WebCore.exp.in: Export new functions for WKSI and test suite
  • WebCore.xcodeproj/project.pbxproj:
  • html/DOMURL.cpp:

(WebCore::DOMURL::revokeObjectURL): Retrofit for new resourceForRequest function

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResource): Retrofit for new resourceForRequest function

  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::replayXHR): Retrofit for new resourceForRequest function

  • loader/DocumentLoader.h:

(DocumentLoader):
(WebCore::DocumentLoader::recordMemoryCacheLoadForFutureClientNotification): Retrofit for new resourceForRequest function
(WebCore::DocumentLoader::takeMemoryCacheLoadsForClientNotification): Retrofit for new resourceForRequest function

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadedResourceFromMemoryCache): Retrofit for new resourceForRequest function
(WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Retrofit for new resourceForRequest function

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create): Retrofit for new resourceForRequest function

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::~CachedResource):

  • loader/cache/CachedResource.h: Retrofit for new resourceForRequest function

(CachedResource):
(WebCore::CachedResource::cachePartition):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Retrofit for new resourceForRequest function
(WebCore::CachedResourceLoader::requestResource): Retrofit for new resourceForRequest function
(WebCore::CachedResourceLoader::loadResource): Retrofit for new resourceForRequest function

  • loader/cache/MemoryCache.cpp:

(WebCore):
(WebCore::partitionName): Add function for determining absolute partition name
(WebCore::MemoryCache::add): Retrofit for partition mapping
(WebCore::MemoryCache::revalidationSucceeded): Retrofit for partition mapping
(WebCore::MemoryCache::resourceForURL): Call into new resourceForRequest
(WebCore::MemoryCache::resourceForRequest): Retrofit for partition mapping
(WebCore::MemoryCache::evict): Retrofit for partition mapping
(WebCore::MemoryCache::removeResourcesWithOrigin): Retrofit for partition mapping
(WebCore::MemoryCache::getOriginsWithCache): Retrofit for partition mapping
(WebCore::MemoryCache::removeUrlFromCache): Retrofit for partition mapping
(WebCore::MemoryCache::removeRequestFromCache): Retrofit for partition mapping
(WebCore::MemoryCache::removeRequestFromCacheImpl): Retrofit for partition mapping
(WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add function for calling removeRequestFromCacheImpl that takes a CrossThreadResourceRequestData
(WebCore::MemoryCache::getStatistics): Retrofit for partition mapping
(WebCore::MemoryCache::setDisabled): Retrofit for partition mapping

  • loader/cache/MemoryCache.h:

(MemoryCache):

  • page/SecurityOrigin.cpp:

(WebCore):
(WebCore::SecurityOrigin::cachePartition): Add function for determining the cache partition name

  • page/SecurityOrigin.h:

(SecurityOrigin):

  • platform/PublicSuffix.h: Added.

(WebCore):

  • platform/mac/PublicSuffixMac.mm: Added.

(WebCore):
(WebCore::isPublicSuffix):
(WebCore::topPrivatelyControlledDomain):

  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:
  • platform/network/cf/ResourceRequest.h:

(ResourceRequest):
(WebCore::ResourceRequest::cachePartition):
(WebCore::ResourceRequest::setCachePartition):
(CrossThreadResourceRequestData):

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doPlatformCopyData): Pass through cache partition name
(WebCore):
(WebCore::ResourceRequest::doPlatformAdopt): Pass through cache partition name

  • platform/network/mac/ResourceRequestMac.mm:

(WebCore::ResourceRequest::doUpdateResourceRequest): Pass through cache partition name
(WebCore::ResourceRequest::doUpdatePlatformRequest): Pass through cache partition name

Source/WebKit/mac:

Update WKSI bindings and add feature defines.

  • Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

Source/WebKit2:

Update WKSI bindings and add feature defines.

  • Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

Tools:

Add test suite for public suffix functions on Mac.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/PublicSuffix.mm: Added.

(TestWebKitAPI):
(TestWebKitAPI::TEST_F):

WebKitLibraries:

Update WKSI bindings.

  • WebKitSystemInterface.h:
  • libWebKitSystemInterfaceLion.a:
  • libWebKitSystemInterfaceMountainLion.a:

LayoutTests:

Added tests for ensuring the cache partitioning functions

  • http/tests/cache/partitioned-cache-expected.txt: Added.
  • http/tests/cache/partitioned-cache.html: Added.
  • http/tests/cache/resources/echo-cookie.cgi: Added.
  • http/tests/cache/resources/partitioned-cache-loader.html: Added.
Location:
trunk
Files:
7 added
37 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r143975 r143986  
     12013-02-21  Jeffrey Pfau  <jpfau@apple.com>
     2
     3        Optionally partition cache to prevent using cache for tracking
     4        https://bugs.webkit.org/show_bug.cgi?id=110269
     5
     6        Reviewed by Maciej Stachowiak.
     7
     8        Added tests for ensuring the cache partitioning functions
     9
     10        * http/tests/cache/partitioned-cache-expected.txt: Added.
     11        * http/tests/cache/partitioned-cache.html: Added.
     12        * http/tests/cache/resources/echo-cookie.cgi: Added.
     13        * http/tests/cache/resources/partitioned-cache-loader.html: Added.
     14
    1152013-02-25  Eric Seidel  <eric@webkit.org>
    216
  • trunk/Source/JavaScriptCore/ChangeLog

    r143970 r143986  
     12013-02-25  Jeffrey Pfau  <jpfau@apple.com>
     2
     3        Optionally partition cache to prevent using cache for tracking
     4        https://bugs.webkit.org/show_bug.cgi?id=110269
     5
     6        Reviewed by Maciej Stachowiak.
     7
     8        * Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
     9
    1102013-02-25  Roger Fong  <roger_fong@apple.com>
    211
  • trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig

    r143509 r143986  
    3535ENABLE_ACCELERATED_2D_CANVAS = ;
    3636ENABLE_BLOB = ENABLE_BLOB;
     37ENABLE_CACHE_PARTITIONING = $(ENABLE_CACHE_PARTITIONING_$(PLATFORM_NAME));
     38ENABLE_CACHE_PARTITIONING_macosx = $(ENABLE_CACHE_PARTITIONING_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
     39ENABLE_CACHE_PARTITIONING_macosx_1070 = ;
     40ENABLE_CACHE_PARTITIONING_macosx_1080 = ;
     41ENABLE_CACHE_PARTITIONING_macosx_1090 = ENABLE_CACHE_PARTITIONING;
    3742ENABLE_CANVAS_PATH = ENABLE_CANVAS_PATH;
    3843ENABLE_CANVAS_PROXY = ;
     
    142147ENABLE_PROGRESS_ELEMENT = ENABLE_PROGRESS_ELEMENT;
    143148ENABLE_PROXIMITY_EVENTS = ;
     149ENABLE_PUBLIC_SUFFIX_LIST = $(ENABLE_PUBLIC_SUFFIX_LIST_$(PLATFORM_NAME));
     150ENABLE_PUBLIC_SUFFIX_LIST_macosx = $(ENABLE_PUBLIC_SUFFIX_LIST_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
     151ENABLE_PUBLIC_SUFFIX_LIST_macosx_1070 = ;
     152ENABLE_PUBLIC_SUFFIX_LIST_macosx_1080 = ;
     153ENABLE_PUBLIC_SUFFIX_LIST_macosx_1090 = ENABLE_PUBLIC_SUFFIX_LIST;
    144154ENABLE_QUOTA = ;
    145155ENABLE_REQUEST_ANIMATION_FRAME = ENABLE_REQUEST_ANIMATION_FRAME;
     
    172182ENABLE_XSLT = ENABLE_XSLT;
    173183
    174 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
     184FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
  • trunk/Source/WebCore/ChangeLog

    r143984 r143986  
     12013-02-21  Jeffrey Pfau  <jpfau@apple.com>
     2
     3        Optionally partition cache to prevent using cache for tracking
     4        https://bugs.webkit.org/show_bug.cgi?id=110269
     5
     6        Reviewed by Maciej Stachowiak.
     7
     8        Implement memory cache partitioning by passing the cache name through
     9        resource requests into a new version of resourceForURL.
     10
     11        Test: http/tests/cache/partitioned-cache.html
     12
     13        * Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
     14        * WebCore.exp.in: Export new functions for WKSI and test suite
     15        * WebCore.xcodeproj/project.pbxproj:
     16        * html/DOMURL.cpp:
     17        (WebCore::DOMURL::revokeObjectURL): Retrofit for new resourceForRequest function
     18        * inspector/InspectorPageAgent.cpp:
     19        (WebCore::InspectorPageAgent::cachedResource): Retrofit for new resourceForRequest function
     20        * inspector/InspectorResourceAgent.cpp:
     21        (WebCore::InspectorResourceAgent::replayXHR): Retrofit for new resourceForRequest function
     22        * loader/DocumentLoader.h:
     23        (DocumentLoader):
     24        (WebCore::DocumentLoader::recordMemoryCacheLoadForFutureClientNotification): Retrofit for new resourceForRequest function
     25        (WebCore::DocumentLoader::takeMemoryCacheLoadsForClientNotification): Retrofit for new resourceForRequest function
     26        * loader/FrameLoader.cpp:
     27        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Retrofit for new resourceForRequest function
     28        (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Retrofit for new resourceForRequest function
     29        * loader/archive/cf/LegacyWebArchive.cpp:
     30        (WebCore::LegacyWebArchive::create): Retrofit for new resourceForRequest function
     31        * loader/cache/CachedResource.cpp:
     32        (WebCore::CachedResource::~CachedResource):
     33        * loader/cache/CachedResource.h: Retrofit for new resourceForRequest function
     34        (CachedResource):
     35        (WebCore::CachedResource::cachePartition):
     36        * loader/cache/CachedResourceLoader.cpp:
     37        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Retrofit for new resourceForRequest function
     38        (WebCore::CachedResourceLoader::requestResource): Retrofit for new resourceForRequest function
     39        (WebCore::CachedResourceLoader::loadResource): Retrofit for new resourceForRequest function
     40        * loader/cache/MemoryCache.cpp:
     41        (WebCore):
     42        (WebCore::partitionName): Add function for determining absolute partition name
     43        (WebCore::MemoryCache::add): Retrofit for partition mapping
     44        (WebCore::MemoryCache::revalidationSucceeded): Retrofit for partition mapping
     45        (WebCore::MemoryCache::resourceForURL): Call into new resourceForRequest
     46        (WebCore::MemoryCache::resourceForRequest): Retrofit for partition mapping
     47        (WebCore::MemoryCache::evict): Retrofit for partition mapping
     48        (WebCore::MemoryCache::removeResourcesWithOrigin): Retrofit for partition mapping
     49        (WebCore::MemoryCache::getOriginsWithCache): Retrofit for partition mapping
     50        (WebCore::MemoryCache::removeUrlFromCache): Retrofit for partition mapping
     51        (WebCore::MemoryCache::removeRequestFromCache): Retrofit for partition mapping
     52        (WebCore::MemoryCache::removeRequestFromCacheImpl): Retrofit for partition mapping
     53        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add function for calling removeRequestFromCacheImpl that takes a CrossThreadResourceRequestData
     54        (WebCore::MemoryCache::getStatistics): Retrofit for partition mapping
     55        (WebCore::MemoryCache::setDisabled): Retrofit for partition mapping
     56        * loader/cache/MemoryCache.h:
     57        (MemoryCache):
     58        * page/SecurityOrigin.cpp:
     59        (WebCore):
     60        (WebCore::SecurityOrigin::cachePartition): Add function for determining the cache partition name
     61        * page/SecurityOrigin.h:
     62        (SecurityOrigin):
     63        * platform/PublicSuffix.h: Added.
     64        (WebCore):
     65        * platform/mac/PublicSuffixMac.mm: Added.
     66        (WebCore):
     67        (WebCore::isPublicSuffix):
     68        (WebCore::topPrivatelyControlledDomain):
     69        * platform/mac/WebCoreSystemInterface.h:
     70        * platform/mac/WebCoreSystemInterface.mm:
     71        * platform/network/cf/ResourceRequest.h:
     72        (ResourceRequest):
     73        (WebCore::ResourceRequest::cachePartition):
     74        (WebCore::ResourceRequest::setCachePartition):
     75        (CrossThreadResourceRequestData):
     76        * platform/network/cf/ResourceRequestCFNet.cpp:
     77        (WebCore::ResourceRequest::doPlatformCopyData): Pass through cache partition name
     78        (WebCore):
     79        (WebCore::ResourceRequest::doPlatformAdopt): Pass through cache partition name
     80        * platform/network/mac/ResourceRequestMac.mm:
     81        (WebCore::ResourceRequest::doUpdateResourceRequest): Pass through cache partition name
     82        (WebCore::ResourceRequest::doUpdatePlatformRequest): Pass through cache partition name
     83
    1842013-02-25  Jer Noble  <jer.noble@apple.com>
    285
  • trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig

    r143984 r143986  
    3535ENABLE_ACCELERATED_2D_CANVAS = ;
    3636ENABLE_BLOB = ENABLE_BLOB;
     37ENABLE_CACHE_PARTITIONING = $(ENABLE_CACHE_PARTITIONING_$(PLATFORM_NAME));
     38ENABLE_CACHE_PARTITIONING_macosx = $(ENABLE_CACHE_PARTITIONING_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
     39ENABLE_CACHE_PARTITIONING_macosx_1070 = ;
     40ENABLE_CACHE_PARTITIONING_macosx_1080 = ;
     41ENABLE_CACHE_PARTITIONING_macosx_1090 = ENABLE_CACHE_PARTITIONING;
    3742ENABLE_CANVAS_PATH = ENABLE_CANVAS_PATH;
    3843ENABLE_CANVAS_PROXY = ;
     
    142147ENABLE_PROGRESS_ELEMENT = ENABLE_PROGRESS_ELEMENT;
    143148ENABLE_PROXIMITY_EVENTS = ;
     149ENABLE_PUBLIC_SUFFIX_LIST = $(ENABLE_PUBLIC_SUFFIX_LIST_$(PLATFORM_NAME));
     150ENABLE_PUBLIC_SUFFIX_LIST_macosx = $(ENABLE_PUBLIC_SUFFIX_LIST_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
     151ENABLE_PUBLIC_SUFFIX_LIST_macosx_1070 = ;
     152ENABLE_PUBLIC_SUFFIX_LIST_macosx_1080 = ;
     153ENABLE_PUBLIC_SUFFIX_LIST_macosx_1090 = ENABLE_PUBLIC_SUFFIX_LIST;
    144154ENABLE_QUOTA = ;
    145155ENABLE_REQUEST_ANIMATION_FRAME = ENABLE_REQUEST_ANIMATION_FRAME;
     
    172182ENABLE_XSLT = ENABLE_XSLT;
    173183
    174 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
     184FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
  • trunk/Source/WebCore/WebCore.exp.in

    r143940 r143986  
    15451545__ZTVN7WebCore28InspectorFrontendClientLocal8SettingsE
    15461546__ZN7WebCore16CSSParserContextC1EPNS_8DocumentERKNS_4KURLERKN3WTF6StringE
     1547#if ENABLE(PUBLIC_SUFFIX_LIST)
     1548__ZN7WebCore14isPublicSuffixERKN3WTF6StringE
     1549#endif
    15471550__ZN7WebCore18StyleSheetContents11parseStringERKN3WTF6StringE
    15481551__ZN7WebCore18StyleSheetContentsC1EPNS_15StyleRuleImportERKN3WTF6StringERKNS_16CSSParserContextE
     
    15501553__ZN7WebCore28DocumentStyleSheetCollection12addUserSheetEN3WTF10PassRefPtrINS_18StyleSheetContentsEEE
    15511554__ZN7WebCore28DocumentStyleSheetCollection14addAuthorSheetEN3WTF10PassRefPtrINS_18StyleSheetContentsEEE
     1555#if ENABLE(PUBLIC_SUFFIX_LIST)
     1556__ZN7WebCore28topPrivatelyControlledDomainERKN3WTF6StringE
     1557#endif
    15521558_filenameByFixingIllegalCharacters
    15531559_hasCaseInsensitivePrefix
     
    15561562_stringIsCaseInsensitiveEqualToString
    15571563_suggestedFilenameWithMIMEType
     1564#if ENABLE(CACHE_PARTITIONING)
     1565_wkCachePartitionKey
     1566#endif
    15581567_wkCGContextGetShouldSmoothFonts
    15591568_wkCGContextResetClip
     
    15891598_wkHTTPCookiesForURL
    15901599_wkInitializeMaximumHTTPConnectionCountPerHost
     1600#if ENABLE(PUBLIC_SUFFIX_LIST)
     1601_wkIsPublicSuffix
     1602#endif
    15911603_wkSetBaseCTM
    15921604_wkSetCFURLResponseMIMEType
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r143863 r143986  
    4949                0014628B103CD1DE000B20DB /* OriginAccessEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 00146289103CD1DE000B20DB /* OriginAccessEntry.h */; };
    5050                003F1FEA11E6AB43008258D9 /* UserContentTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 003F1FE911E6AB43008258D9 /* UserContentTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
     51                0081FEFF16B0A2B6008AAA7A /* PublicSuffixMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0081FEFE16B0A2B6008AAA7A /* PublicSuffixMac.mm */; };
     52                0081FF0016B0A2D3008AAA7A /* PublicSuffix.h in Headers */ = {isa = PBXBuildFile; fileRef = 0081FEFD16B0A244008AAA7A /* PublicSuffix.h */; settings = {ATTRIBUTES = (Private, ); }; };
    5153                00B9318713BA8DB30035A948 /* XMLDocumentParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00B9318113BA867F0035A948 /* XMLDocumentParser.cpp */; };
    5254                00B9318813BA8DBA0035A948 /* XMLDocumentParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 00B9318213BA867F0035A948 /* XMLDocumentParser.h */; };
     
    73257327                00146289103CD1DE000B20DB /* OriginAccessEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OriginAccessEntry.h; sourceTree = "<group>"; };
    73267328                003F1FE911E6AB43008258D9 /* UserContentTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserContentTypes.h; sourceTree = "<group>"; };
     7329                0081FEFD16B0A244008AAA7A /* PublicSuffix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PublicSuffix.h; sourceTree = "<group>"; };
     7330                0081FEFE16B0A2B6008AAA7A /* PublicSuffixMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PublicSuffixMac.mm; path = ../mac/PublicSuffixMac.mm; sourceTree = "<group>"; };
    73277331                00B9318113BA867F0035A948 /* XMLDocumentParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XMLDocumentParser.cpp; sourceTree = "<group>"; };
    73287332                00B9318213BA867F0035A948 /* XMLDocumentParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLDocumentParser.h; sourceTree = "<group>"; };
     
    1629016294                                D39D006C11F8E308006041F2 /* PopupMenuMac.h */,
    1629116295                                0668E18E0ADD9640004128E0 /* PopupMenuMac.mm */,
     16296                                0081FEFE16B0A2B6008AAA7A /* PublicSuffixMac.mm */,
    1629216297                                E4D687760ED7AE3D006EA978 /* PurgeableBufferMac.cpp */,
    1629316298                                BC0B358214C4F9540055E22A /* RunLoopMac.mm */,
     
    2165621661                                986EA88215FFF29000985E5E /* PrerenderClient.h */,
    2165721662                                9856F8D01549E84F00B04F3A /* PrerenderHandle.h */,
     21663                                0081FEFD16B0A244008AAA7A /* PublicSuffix.h */,
    2165821664                                E4D687780ED7AE4F006EA978 /* PurgeableBuffer.h */,
    2165921665                                7E33CD00127F340D00BE8F17 /* PurgePriority.h */,
     
    2566525671                                1AF8E11A1256592600230FF7 /* ProxyServer.h in Headers */,
    2566625672                                FF945ECC161F7F3600971BC8 /* PseudoElement.h in Headers */,
     25673                                0081FF0016B0A2D3008AAA7A /* PublicSuffix.h in Headers */,
    2566725674                                10FB084B14E15C7E00A3DB98 /* PublicURLManager.h in Headers */,
    2566825675                                E4D687790ED7AE4F006EA978 /* PurgeableBuffer.h in Headers */,
     
    2902529032                                1AF8E1C3125673E000230FF7 /* ProxyServerCFNet.cpp in Sources */,
    2902629033                                FF945ECB161F7F3600971BC8 /* PseudoElement.cpp in Sources */,
     29034                                0081FEFF16B0A2B6008AAA7A /* PublicSuffixMac.mm in Sources */,
    2902729035                                E4D687770ED7AE3D006EA978 /* PurgeableBufferMac.cpp in Sources */,
    2902829036                                550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */,
  • trunk/Source/WebCore/html/DOMURL.cpp

    r124953 r143986  
    115115        return;
    116116
    117     MemoryCache::removeUrlFromCache(scriptExecutionContext, urlString);
     117    ResourceRequest request(urlString);
     118#if ENABLE(CACHE_PARTITIONING)
     119    request.setCachePartition(scriptExecutionContext->topOrigin()->cachePartition());
     120#endif
     121    MemoryCache::removeRequestFromCache(scriptExecutionContext, request);
    118122
    119123    KURL url(KURL(), urlString);
  • trunk/Source/WebCore/inspector/InspectorPageAgent.cpp

    r143721 r143986  
    268268{
    269269    CachedResource* cachedResource = frame->document()->cachedResourceLoader()->cachedResource(url);
    270     if (!cachedResource)
    271         cachedResource = memoryCache()->resourceForURL(url);
     270    if (!cachedResource) {
     271        ResourceRequest request(url);
     272#if ENABLE(CACHE_PARTITIONING)
     273        request.setCachePartition(frame->document()->topOrigin()->cachePartition());
     274#endif
     275        cachedResource = memoryCache()->resourceForRequest(request);
     276    }
     277
    272278    return cachedResource;
    273279}
  • trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp

    r142271 r143986  
    6464#include "ScriptCallStackFactory.h"
    6565#include "ScriptableDocumentParser.h"
     66#include "Settings.h"
    6667#include "SubresourceLoader.h"
    6768#include "WebSocketFrame.h"
     
    610611        return;
    611612
    612     CachedResource* cachedResource = memoryCache()->resourceForURL(xhrReplayData->url());
     613    ResourceRequest request(xhrReplayData->url());
     614#if ENABLE(CACHE_PARTITIONING)
     615    request.setCachePartition(m_pageAgent->mainFrame()->document()->topOrigin()->cachePartition());
     616#endif
     617    CachedResource* cachedResource = memoryCache()->resourceForRequest(request);
    613618    if (cachedResource)
    614619        memoryCache()->remove(cachedResource);
  • trunk/Source/WebCore/loader/DocumentLoader.h

    r143664 r143986  
    235235        }
    236236        bool haveToldClientAboutLoad(const String& url) { return m_resourcesClientKnowsAbout.contains(url); }
    237         void recordMemoryCacheLoadForFutureClientNotification(const String& url);
    238         void takeMemoryCacheLoadsForClientNotification(Vector<String>& loads);
     237        void recordMemoryCacheLoadForFutureClientNotification(const ResourceRequest&);
     238        void takeMemoryCacheLoadsForClientNotification(Vector<ResourceRequest>& loads);
    239239
    240240        DocumentLoadTiming* timing() { return &m_documentLoadTiming; }
     
    345345
    346346        HashSet<String> m_resourcesClientKnowsAbout;
    347         Vector<String> m_resourcesLoadedFromMemoryCacheForClientNotification;
     347        Vector<ResourceRequest> m_resourcesLoadedFromMemoryCacheForClientNotification;
    348348       
    349349        String m_clientRedirectSourceForHistory;
     
    359359    };
    360360
    361     inline void DocumentLoader::recordMemoryCacheLoadForFutureClientNotification(const String& url)
     361    inline void DocumentLoader::recordMemoryCacheLoadForFutureClientNotification(const ResourceRequest& request)
    362362    {
    363         m_resourcesLoadedFromMemoryCacheForClientNotification.append(url);
     363        m_resourcesLoadedFromMemoryCacheForClientNotification.append(request);
    364364    }
    365365
    366     inline void DocumentLoader::takeMemoryCacheLoadsForClientNotification(Vector<String>& loadsSet)
     366    inline void DocumentLoader::takeMemoryCacheLoadsForClientNotification(Vector<ResourceRequest>& loadsSet)
    367367    {
    368368        loadsSet.swap(m_resourcesLoadedFromMemoryCacheForClientNotification);
  • trunk/Source/WebCore/loader/FrameLoader.cpp

    r143514 r143986  
    29002900    if (!page->areMemoryCacheClientCallsEnabled()) {
    29012901        InspectorInstrumentation::didLoadResourceFromMemoryCache(page, m_documentLoader.get(), resource);
    2902         m_documentLoader->recordMemoryCacheLoadForFutureClientNotification(resource->url());
     2902        m_documentLoader->recordMemoryCacheLoadForFutureClientNotification(resource->resourceRequest());
    29032903        m_documentLoader->didTellClientAboutLoad(resource->url());
    29042904        return;
     
    32793279        return;
    32803280
    3281     Vector<String> pastLoads;
     3281    Vector<ResourceRequest> pastLoads;
    32823282    m_documentLoader->takeMemoryCacheLoadsForClientNotification(pastLoads);
    32833283
    32843284    size_t size = pastLoads.size();
    32853285    for (size_t i = 0; i < size; ++i) {
    3286         CachedResource* resource = memoryCache()->resourceForURL(KURL(ParsedURLString, pastLoads[i]));
     3286        CachedResource* resource = memoryCache()->resourceForRequest(pastLoads[i]);
    32873287
    32883288        // FIXME: These loads, loaded from cache, but now gone from the cache by the time
  • trunk/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp

    r132916 r143986  
    554554                }
    555555
    556                 CachedResource* cachedResource = memoryCache()->resourceForURL(subresourceURL);
     556                ResourceRequest request(subresourceURL);
     557#if ENABLE(CACHE_PARTITIONING)
     558                request.setCachePartition(frame->document()->topOrigin()->cachePartition());
     559#endif
     560                CachedResource* cachedResource = memoryCache()->resourceForRequest(request);
    557561                if (cachedResource) {
    558562                    ResourceBuffer* data = cachedResource->resourceBuffer();
  • trunk/Source/WebCore/loader/cache/CachedResource.cpp

    r143913 r143986  
    248248    ASSERT(!inCache());
    249249    ASSERT(!m_deleted);
    250     ASSERT(url().isNull() || memoryCache()->resourceForURL(KURL(ParsedURLString, url())) != this);
     250    ASSERT(url().isNull() || memoryCache()->resourceForRequest(resourceRequest()) != this);
    251251
    252252#ifndef NDEBUG
  • trunk/Source/WebCore/loader/cache/CachedResource.h

    r141136 r143986  
    112112    ResourceRequest& resourceRequest() { return m_resourceRequest; }
    113113    const KURL& url() const { return m_resourceRequest.url();}
     114#if ENABLE(CACHE_PARTITIONING)
     115    const String& cachePartition() const { return m_resourceRequest.cachePartition(); }
     116#endif
    114117    Type type() const { return static_cast<Type>(m_type); }
    115118   
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp

    r142707 r143986  
    201201    KURL url = MemoryCache::removeFragmentIdentifierIfNeeded(request.resourceRequest().url());
    202202
    203     if (CachedResource* existing = memoryCache()->resourceForURL(url)) {
     203#if ENABLE(CACHE_PARTITIONING)
     204    request.mutableResourceRequest().setCachePartition(document()->topOrigin()->cachePartition());
     205#endif
     206
     207    if (CachedResource* existing = memoryCache()->resourceForRequest(request.resourceRequest())) {
    204208        if (existing->type() == CachedResource::CSSStyleSheet)
    205209            return static_cast<CachedCSSStyleSheet*>(existing);
     
    444448
    445449    // See if we can use an existing resource from the cache.
    446     CachedResourceHandle<CachedResource> resource = memoryCache()->resourceForURL(url);
     450    CachedResourceHandle<CachedResource> resource;
     451#if ENABLE(CACHE_PARTITIONING)
     452    if (document())
     453        request.mutableResourceRequest().setCachePartition(document()->topOrigin()->cachePartition());
     454#endif
     455
     456    resource = memoryCache()->resourceForRequest(request.resourceRequest());
    447457
    448458    const RevalidationPolicy policy = determineRevalidationPolicy(type, request.mutableResourceRequest(), request.forPreload(), resource.get(), request.defer());
     
    530540CachedResourceHandle<CachedResource> CachedResourceLoader::loadResource(CachedResource::Type type, CachedResourceRequest& request, const String& charset)
    531541{
    532     ASSERT(!memoryCache()->resourceForURL(request.resourceRequest().url()));
     542    ASSERT(!memoryCache()->resourceForRequest(request.resourceRequest()));
    533543
    534544    LOG(ResourceLoading, "Loading CachedResource for '%s'.", request.resourceRequest().url().string().latin1().data());
  • trunk/Source/WebCore/loader/cache/MemoryCache.cpp

    r143687 r143986  
    3737#include "Image.h"
    3838#include "Logging.h"
     39#include "PublicSuffix.h"
    3940#include "ResourceHandle.h"
    4041#include "SecurityOrigin.h"
     
    6263static const double cDefaultDecodedDataDeletionInterval = 0;
    6364
     65#if ENABLE(CACHE_PARTITIONING)
     66static String partitionName(String domain)
     67{
     68    if (domain.isNull())
     69        return emptyString();
     70#if ENABLE(PUBLIC_SUFFIX_LIST)
     71    String highLevel = topPrivatelyControlledDomain(domain);
     72    if (highLevel.isNull())
     73        return emptyString();
     74    return highLevel;
     75#else
     76    return domain;
     77#endif
     78}
     79#endif
     80
    6481MemoryCache* memoryCache()
    6582{
     
    104121    ASSERT(WTF::isMainThread());
    105122
     123#if ENABLE(CACHE_PARTITIONING)
     124    CachedResourceItem* originMap = m_resources.get(resource->url());
     125    if (!originMap) {
     126        originMap = new CachedResourceItem;
     127        m_resources.set(resource->url(), adoptPtr(originMap));
     128    }
     129    originMap->set(partitionName(resource->cachePartition()), resource);
     130#else
    106131    m_resources.set(resource->url(), resource);
     132#endif
    107133    resource->setInCache(true);
    108134   
     
    128154    evict(revalidatingResource);
    129155
     156#if ENABLE(CACHE_PARTITIONING)
     157    ASSERT(!m_resources.get(resource->url()) || !m_resources.get(resource->url())->get(partitionName(resource->cachePartition())));
     158    CachedResourceItem* originMap = m_resources.get(resource->url());
     159    if (!originMap) {
     160        originMap = new CachedResourceItem;
     161        m_resources.set(resource->url(), adoptPtr(originMap));
     162    }
     163    originMap->set(partitionName(resource->cachePartition()), resource);
     164#else
    130165    ASSERT(!m_resources.get(resource->url()));
    131166    m_resources.set(resource->url(), resource);
     167#endif
    132168    resource->setInCache(true);
    133169    resource->updateResponseAfterRevalidation(response);
     
    155191CachedResource* MemoryCache::resourceForURL(const KURL& resourceURL)
    156192{
     193    return resourceForRequest(ResourceRequest(resourceURL));
     194}
     195
     196CachedResource* MemoryCache::resourceForRequest(const ResourceRequest& request)
     197{
    157198    ASSERT(WTF::isMainThread());
    158     KURL url = removeFragmentIdentifierIfNeeded(resourceURL);
     199    KURL url = removeFragmentIdentifierIfNeeded(request.url());
     200#if ENABLE(CACHE_PARTITIONING)
     201    CachedResourceItem* item = m_resources.get(url);
     202    CachedResource* resource = 0;
     203    if (item)
     204        resource = item->get(partitionName(request.cachePartition()));
     205#else
    159206    CachedResource* resource = m_resources.get(url);
     207#endif
    160208    bool wasPurgeable = MemoryCache::shouldMakeResourcePurgeableOnEviction() && resource && resource->isPurgeable();
    161209    if (resource && !resource->makePurgeable(false)) {
     
    396444    if (resource->inCache()) {
    397445        // Remove from the resource map.
     446#if ENABLE(CACHE_PARTITIONING)
     447        CachedResourceItem* item = m_resources.get(resource->url());
     448        if (item) {
     449            item->remove(partitionName(resource->cachePartition()));
     450            if (!item->size())
     451                m_resources.remove(resource->url());
     452        }
     453#else
    398454        m_resources.remove(resource->url());
     455#endif
    399456        resource->setInCache(false);
    400457
     
    409466            adjustSize(resource->hasClients(), -static_cast<int>(resource->size()));
    410467    } else
     468#if ENABLE(CACHE_PARTITIONING)
     469        ASSERT(!m_resources.get(resource->url()) || m_resources.get(resource->url())->get(partitionName(resource->cachePartition())) != resource);
     470#else
    411471        ASSERT(m_resources.get(resource->url()) != resource);
     472#endif
    412473
    413474    resource->deleteIfPossible();
     
    530591    CachedResourceMap::iterator e = m_resources.end();
    531592    for (CachedResourceMap::iterator it = m_resources.begin(); it != e; ++it) {
    532         CachedResource* resource = it->value;
    533         RefPtr<SecurityOrigin> resourceOrigin = SecurityOrigin::createFromString(resource->url());
    534         if (!resourceOrigin)
    535             continue;
    536         if (resourceOrigin->equal(origin))
    537             resourcesWithOrigin.append(resource);
     593#if ENABLE(CACHE_PARTITIONING)
     594        for (CachedResourceItem::iterator itemIterator = it->value->begin(); itemIterator != it->value->end(); ++itemIterator) {
     595            CachedResource* resource = itemIterator->value;
     596#else
     597            CachedResource* resource = it->value;
     598#endif
     599            RefPtr<SecurityOrigin> resourceOrigin = SecurityOrigin::createFromString(resource->url());
     600            if (!resourceOrigin)
     601                continue;
     602            if (resourceOrigin->equal(origin))
     603                resourcesWithOrigin.append(resource);
     604#if ENABLE(CACHE_PARTITIONING)
     605        }
     606#endif
    538607    }
    539608
     
    546615    CachedResourceMap::iterator e = m_resources.end();
    547616    for (CachedResourceMap::iterator it = m_resources.begin(); it != e; ++it)
     617#if ENABLE(CACHE_PARTITIONING)
     618        origins.add(SecurityOrigin::createFromString(it->value->begin()->value->url()));
     619#else
    548620        origins.add(SecurityOrigin::createFromString(it->value->url()));
     621#endif
    549622}
    550623
     
    639712}
    640713
    641 
    642 void MemoryCache::removeUrlFromCache(ScriptExecutionContext* context, const String& urlString)
     714void MemoryCache::removeUrlFromCache(ScriptExecutionContext* context, const String& urlString)
     715{
     716    removeRequestFromCache(context, ResourceRequest(urlString));
     717}
     718
     719void MemoryCache::removeRequestFromCache(ScriptExecutionContext* context, const ResourceRequest& request)
    643720{
    644721#if ENABLE(WORKERS)
    645722    if (context->isWorkerContext()) {
    646       WorkerContext* workerContext = static_cast<WorkerContext*>(context);
    647       workerContext->thread()->workerLoaderProxy().postTaskToLoader(
    648           createCallbackTask(&removeUrlFromCacheImpl, urlString));
    649       return;
    650     }
    651 #endif
    652     removeUrlFromCacheImpl(context, urlString);
    653 }
    654 
    655 void MemoryCache::removeUrlFromCacheImpl(ScriptExecutionContext*, const String& urlString)
    656 {
    657     KURL url(KURL(), urlString);
    658 
    659     if (CachedResource* resource = memoryCache()->resourceForURL(url))
     723        WorkerContext* workerContext = static_cast<WorkerContext*>(context);
     724        workerContext->thread()->workerLoaderProxy().postTaskToLoader(createCallbackTask(&crossThreadRemoveRequestFromCache, request));
     725        return;
     726    }
     727#endif
     728
     729    removeRequestFromCacheImpl(context, request);
     730}
     731
     732void MemoryCache::removeRequestFromCacheImpl(ScriptExecutionContext*, const ResourceRequest& request)
     733{
     734    if (CachedResource* resource = memoryCache()->resourceForRequest(request))
    660735        memoryCache()->remove(resource);
     736}
     737
     738void MemoryCache::crossThreadRemoveRequestFromCache(ScriptExecutionContext* context, PassOwnPtr<WebCore::CrossThreadResourceRequestData> requestData)
     739{
     740    OwnPtr<ResourceRequest> request(ResourceRequest::adopt(requestData));
     741    MemoryCache::removeRequestFromCacheImpl(context, *request);
    661742}
    662743
     
    679760    CachedResourceMap::iterator e = m_resources.end();
    680761    for (CachedResourceMap::iterator i = m_resources.begin(); i != e; ++i) {
    681         CachedResource* resource = i->value;
    682         switch (resource->type()) {
    683         case CachedResource::ImageResource:
    684             stats.images.addResource(resource);
    685             break;
    686         case CachedResource::CSSStyleSheet:
    687             stats.cssStyleSheets.addResource(resource);
    688             break;
    689         case CachedResource::Script:
    690             stats.scripts.addResource(resource);
    691             break;
     762#if ENABLE(CACHE_PARTITIONING)
     763        for (CachedResourceItem::iterator itemIterator = i->value->begin(); itemIterator != i->value->end(); ++itemIterator) {
     764            CachedResource* resource = itemIterator->value;
     765#else
     766            CachedResource* resource = i->value;
     767#endif
     768            switch (resource->type()) {
     769            case CachedResource::ImageResource:
     770                stats.images.addResource(resource);
     771                break;
     772            case CachedResource::CSSStyleSheet:
     773                stats.cssStyleSheets.addResource(resource);
     774                break;
     775            case CachedResource::Script:
     776                stats.scripts.addResource(resource);
     777                break;
    692778#if ENABLE(XSLT)
    693         case CachedResource::XSLStyleSheet:
    694             stats.xslStyleSheets.addResource(resource);
    695             break;
    696 #endif
    697         case CachedResource::FontResource:
    698             stats.fonts.addResource(resource);
    699             break;
    700         default:
    701             break;
    702         }
     779            case CachedResource::XSLStyleSheet:
     780                stats.xslStyleSheets.addResource(resource);
     781                break;
     782#endif
     783            case CachedResource::FontResource:
     784                stats.fonts.addResource(resource);
     785                break;
     786            default:
     787                break;
     788            }
     789#if ENABLE(CACHE_PARTITIONING)
     790        }
     791#endif
    703792    }
    704793    return stats;
     
    721810
    722811    for (;;) {
    723         CachedResourceMap::iterator i = m_resources.begin();
    724         if (i == m_resources.end())
     812        CachedResourceMap::iterator outerIterator = m_resources.begin();
     813        if (outerIterator == m_resources.end())
    725814            break;
    726         evict(i->value);
     815#if ENABLE(CACHE_PARTITIONING)
     816        CachedResourceItem::iterator innerIterator = outerIterator->value->begin();
     817        evict(innerIterator->value);
     818#else
     819        evict(outerIterator->value);
     820#endif
    727821    }
    728822}
  • trunk/Source/WebCore/loader/cache/MemoryCache.h

    r143287 r143986  
    7979    friend MemoryCache* memoryCache();
    8080
     81#if ENABLE(CACHE_PARTITIONING)
     82    typedef HashMap<String, CachedResource*> CachedResourceItem;
     83    typedef HashMap<String, OwnPtr<CachedResourceItem> > CachedResourceMap;
     84#else
    8185    typedef HashMap<String, CachedResource*> CachedResourceMap;
     86#endif
    8287
    8388    struct LRUList {
     
    105110        TypeStatistic fonts;
    106111    };
    107    
     112
    108113    CachedResource* resourceForURL(const KURL&);
     114    CachedResource* resourceForRequest(const ResourceRequest&);
    109115   
    110116    bool add(CachedResource* resource);
     
    154160
    155161    static void removeUrlFromCache(ScriptExecutionContext*, const String& urlString);
     162    static void removeRequestFromCache(ScriptExecutionContext*, const ResourceRequest&);
    156163
    157164    // Function to collect cache statistics for the caches window in the Safari Debug menu.
     
    197204    void evict(CachedResource*);
    198205
    199     static void removeUrlFromCacheImpl(ScriptExecutionContext*, const String& urlString);
     206    static void removeRequestFromCacheImpl(ScriptExecutionContext*, const ResourceRequest&);
     207    static void crossThreadRemoveRequestFromCache(ScriptExecutionContext*, PassOwnPtr<WebCore::CrossThreadResourceRequestData>);
    200208
    201209    bool m_disabled;  // Whether or not the cache is enabled.
     
    221229    // A URL-based map of all resources that are in the cache (including the freshest version of objects that are currently being
    222230    // referenced by a Web page).
    223     HashMap<String, CachedResource*> m_resources;
     231    CachedResourceMap m_resources;
    224232};
    225233
  • trunk/Source/WebCore/page/SecurityOrigin.cpp

    r143349 r143986  
    438438    m_universalAccess = true;
    439439}
     440
     441#if ENABLE(CACHE_PARTITIONING)
     442String SecurityOrigin::cachePartition() const
     443{
     444    if (m_storageBlockingPolicy != BlockThirdPartyStorage)
     445        return String();
     446
     447    if (m_protocol != "http" && m_protocol != "https")
     448        return String();
     449
     450    return host();
     451}
     452#endif
    440453
    441454void SecurityOrigin::enforceFilePathSeparation()
  • trunk/Source/WebCore/page/SecurityOrigin.h

    r127956 r143986  
    143143    void setStorageBlockingPolicy(StorageBlockingPolicy policy) { m_storageBlockingPolicy = policy; }
    144144
     145#if ENABLE(CACHE_PARTITIONING)
     146    String cachePartition() const;
     147#endif
     148
    145149    bool canAccessDatabase(const SecurityOrigin* topOrigin = 0) const { return canAccessStorage(topOrigin); };
    146150    bool canAccessLocalStorage(const SecurityOrigin* topOrigin) const { return canAccessStorage(topOrigin); };
  • trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h

    r143096 r143986  
    352352#endif
    353353
     354#if ENABLE(PUBLIC_SUFFIX_LIST)
     355extern bool (*wkIsPublicSuffix)(NSString *host);
     356#endif
     357
     358#if ENABLE(CACHE_PARTITIONING)
     359extern CFStringRef (*wkCachePartitionKey)(void);
     360#endif
    354361}
    355362
  • trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm

    r143096 r143986  
    223223CGFloat (*wkNSReboundDeltaForElasticDelta)(CGFloat delta);
    224224#endif
     225
     226#if ENABLE(PUBLIC_SUFFIX_LIST)
     227bool (*wkIsPublicSuffix)(NSString *host);
     228#endif
     229
     230#if ENABLE(CACHE_PARTITIONING)
     231CFStringRef (*wkCachePartitionKey)(void);
     232#endif
  • trunk/Source/WebCore/platform/network/cf/ResourceRequest.h

    r133410 r143986  
    9595#endif
    9696
     97#if ENABLE(CACHE_PARTITIONING)
     98        const String& cachePartition() const { return m_cachePartition; }
     99        void setCachePartition(const String& cachePartition) { m_cachePartition = cachePartition; }
     100#endif
     101
    97102#if PLATFORM(MAC) || USE(CFNETWORK)
    98103        void setStorageSession(CFURLStorageSessionRef);
     
    112117        void doUpdateResourceRequest();
    113118
    114         PassOwnPtr<CrossThreadResourceRequestData> doPlatformCopyData(PassOwnPtr<CrossThreadResourceRequestData> data) const { return data; }
    115         void doPlatformAdopt(PassOwnPtr<CrossThreadResourceRequestData>) { }
     119        PassOwnPtr<CrossThreadResourceRequestData> doPlatformCopyData(PassOwnPtr<CrossThreadResourceRequestData>) const;
     120        void doPlatformAdopt(PassOwnPtr<CrossThreadResourceRequestData>);
    116121
    117122#if USE(CFNETWORK)
     
    121126        RetainPtr<NSURLRequest> m_nsRequest;
    122127#endif
     128#if ENABLE(CACHE_PARTITIONING)
     129        String m_cachePartition;
     130#endif
    123131
    124132        static bool s_httpPipeliningEnabled;
     
    126134
    127135    struct CrossThreadResourceRequestData : public CrossThreadResourceRequestDataBase {
     136#if ENABLE(CACHE_PARTITIONING)
     137        String m_cachePartition;
     138#endif
    128139    };
    129140
  • trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp

    r138288 r143986  
    254254}
    255255
     256PassOwnPtr<CrossThreadResourceRequestData> ResourceRequest::doPlatformCopyData(PassOwnPtr<CrossThreadResourceRequestData> data) const
     257{
     258#if ENABLE(CACHE_PARTITIONING)
     259    data->m_cachePartition = m_cachePartition;
     260#endif
     261    return data;
     262}
     263
     264void ResourceRequest::doPlatformAdopt(PassOwnPtr<CrossThreadResourceRequestData> data)
     265{
     266#if ENABLE(CACHE_PARTITIONING)
     267    m_cachePartition = data->m_cachePartition;
     268#else
     269    UNUSED_PARAM(data);
     270#endif
     271}
     272
    256273unsigned initializeMaximumHTTPConnectionCountPerHost()
    257274{
  • trunk/Source/WebCore/platform/network/mac/ResourceRequestMac.mm

    r138288 r143986  
    113113        if (FormData* formData = httpBodyFromStream(bodyStream))
    114114            m_httpBody = formData;
     115
     116#if ENABLE(CACHE_PARTITIONING)
     117    NSString* cachePartition = [NSURLProtocol propertyForKey:(NSString *)wkCachePartitionKey() inRequest:m_nsRequest.get()];
     118    if (cachePartition)
     119        m_cachePartition = cachePartition;
     120#endif
    115121}
    116122
     
    176182    if (formData && !formData->isEmpty())
    177183        WebCore::setHTTPBody(nsRequest, formData);
    178    
     184
     185#if ENABLE(CACHE_PARTITIONING)
     186    [NSURLProtocol setProperty:m_cachePartition forKey:(NSString *)wkCachePartitionKey() inRequest:nsRequest];
     187#endif
     188
    179189    m_nsRequest.adoptNS(nsRequest);
    180190}
  • trunk/Source/WebKit/mac/ChangeLog

    r143984 r143986  
     12013-02-21  Jeffrey Pfau  <jpfau@apple.com>
     2
     3        Optionally partition cache to prevent using cache for tracking
     4        https://bugs.webkit.org/show_bug.cgi?id=110269
     5
     6        Reviewed by Maciej Stachowiak.
     7
     8        Update WKSI bindings and add feature defines.
     9
     10        * Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
     11        * WebCoreSupport/WebSystemInterface.mm:
     12        (InitWebCoreSystemInterface):
     13
    1142013-02-25  Jer Noble  <jer.noble@apple.com>
    215
  • trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig

    r143984 r143986  
    3535ENABLE_ACCELERATED_2D_CANVAS = ;
    3636ENABLE_BLOB = ENABLE_BLOB;
     37ENABLE_CACHE_PARTITIONING = $(ENABLE_CACHE_PARTITIONING_$(PLATFORM_NAME));
     38ENABLE_CACHE_PARTITIONING_macosx = $(ENABLE_CACHE_PARTITIONING_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
     39ENABLE_CACHE_PARTITIONING_macosx_1070 = ;
     40ENABLE_CACHE_PARTITIONING_macosx_1080 = ;
     41ENABLE_CACHE_PARTITIONING_macosx_1090 = ENABLE_CACHE_PARTITIONING;
    3742ENABLE_CANVAS_PATH = ENABLE_CANVAS_PATH;
    3843ENABLE_CANVAS_PROXY = ;
     
    142147ENABLE_PROGRESS_ELEMENT = ENABLE_PROGRESS_ELEMENT;
    143148ENABLE_PROXIMITY_EVENTS = ;
     149ENABLE_PUBLIC_SUFFIX_LIST = $(ENABLE_PUBLIC_SUFFIX_LIST_$(PLATFORM_NAME));
     150ENABLE_PUBLIC_SUFFIX_LIST_macosx = $(ENABLE_PUBLIC_SUFFIX_LIST_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
     151ENABLE_PUBLIC_SUFFIX_LIST_macosx_1070 = ;
     152ENABLE_PUBLIC_SUFFIX_LIST_macosx_1080 = ;
     153ENABLE_PUBLIC_SUFFIX_LIST_macosx_1090 = ENABLE_PUBLIC_SUFFIX_LIST;
    144154ENABLE_QUOTA = ;
    145155ENABLE_REQUEST_ANIMATION_FRAME = ENABLE_REQUEST_ANIMATION_FRAME;
     
    172182ENABLE_XSLT = ENABLE_XSLT;
    173183
    174 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
     184FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
  • trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm

    r143096 r143986  
    221221#endif
    222222
     223#if ENABLE(PUBLIC_SUFFIX_LIST)
     224    INIT(IsPublicSuffix);
     225#endif
     226
     227#if ENABLE(CACHE_PARTITIONING)
     228    INIT(CachePartitionKey);
     229#endif
     230
    223231#endif
    224232    didInit = true;
  • trunk/Source/WebKit2/ChangeLog

    r143984 r143986  
     12013-02-21  Jeffrey Pfau  <jpfau@apple.com>
     2
     3        Optionally partition cache to prevent using cache for tracking
     4        https://bugs.webkit.org/show_bug.cgi?id=110269
     5
     6        Reviewed by Maciej Stachowiak.
     7
     8        Update WKSI bindings and add feature defines.
     9
     10        * Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
     11        * WebCoreSupport/WebSystemInterface.mm:
     12        (InitWebCoreSystemInterface):
     13
    1142013-02-25  Jer Noble  <jer.noble@apple.com>
    215
  • trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig

    r143984 r143986  
    3535ENABLE_ACCELERATED_2D_CANVAS = ;
    3636ENABLE_BLOB = ENABLE_BLOB;
     37ENABLE_CACHE_PARTITIONING = $(ENABLE_CACHE_PARTITIONING_$(PLATFORM_NAME));
     38ENABLE_CACHE_PARTITIONING_macosx = $(ENABLE_CACHE_PARTITIONING_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
     39ENABLE_CACHE_PARTITIONING_macosx_1070 = ;
     40ENABLE_CACHE_PARTITIONING_macosx_1080 = ;
     41ENABLE_CACHE_PARTITIONING_macosx_1090 = ENABLE_CACHE_PARTITIONING;
    3742ENABLE_CANVAS_PATH = ENABLE_CANVAS_PATH;
    3843ENABLE_CANVAS_PROXY = ;
     
    142147ENABLE_PROGRESS_ELEMENT = ENABLE_PROGRESS_ELEMENT;
    143148ENABLE_PROXIMITY_EVENTS = ;
     149ENABLE_PUBLIC_SUFFIX_LIST = $(ENABLE_PUBLIC_SUFFIX_LIST_$(PLATFORM_NAME));
     150ENABLE_PUBLIC_SUFFIX_LIST_macosx = $(ENABLE_PUBLIC_SUFFIX_LIST_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
     151ENABLE_PUBLIC_SUFFIX_LIST_macosx_1070 = ;
     152ENABLE_PUBLIC_SUFFIX_LIST_macosx_1080 = ;
     153ENABLE_PUBLIC_SUFFIX_LIST_macosx_1090 = ENABLE_PUBLIC_SUFFIX_LIST;
    144154ENABLE_QUOTA = ;
    145155ENABLE_REQUEST_ANIMATION_FRAME = ENABLE_REQUEST_ANIMATION_FRAME;
     
    172182ENABLE_XSLT = ENABLE_XSLT;
    173183
    174 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
     184FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm

    r143096 r143986  
    184184#endif
    185185
     186#if ENABLE(PUBLIC_SUFFIX_LIST)
     187        INIT(IsPublicSuffix);
     188#endif
     189
     190#if ENABLE(CACHE_PARTITIONING)
     191        INIT(CachePartitionKey);
     192#endif
    186193    });
    187194}
  • trunk/Tools/ChangeLog

    r143980 r143986  
     12013-02-21  Jeffrey Pfau  <jpfau@apple.com>
     2
     3        Optionally partition cache to prevent using cache for tracking
     4        https://bugs.webkit.org/show_bug.cgi?id=110269
     5
     6        Reviewed by Maciej Stachowiak.
     7
     8        Add test suite for public suffix functions on Mac.
     9
     10        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     11        * TestWebKitAPI/Tests/mac/PublicSuffix.mm: Added.
     12        (TestWebKitAPI):
     13        (TestWebKitAPI::TEST_F):
     14
    1152013-02-25  Dirk Pranke  <dpranke@chromium.org>
    216
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r143637 r143986  
    88
    99/* Begin PBXBuildFile section */
     10                00BC16871680FE810065F1E5 /* PublicSuffix.mm in Sources */ = {isa = PBXBuildFile; fileRef = 00BC16851680FE810065F1E5 /* PublicSuffix.mm */; };
    1011                00CD9F6315BE312C002DA2CE /* BackForwardList.mm in Sources */ = {isa = PBXBuildFile; fileRef = 00CD9F6215BE312C002DA2CE /* BackForwardList.mm */; };
    1112                0BCD833514857CE400EA2003 /* HashMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BCD833414857CE400EA2003 /* HashMap.cpp */; };
     
    273274
    274275/* Begin PBXFileReference section */
     276                00BC16851680FE810065F1E5 /* PublicSuffix.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PublicSuffix.mm; path = PublicSuffix.mm; sourceTree = "<group>"; };
    275277                00CD9F6215BE312C002DA2CE /* BackForwardList.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BackForwardList.mm; sourceTree = "<group>"; };
    276278                0BCD833414857CE400EA2003 /* HashMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HashMap.cpp; path = WTF/HashMap.cpp; sourceTree = "<group>"; };
     
    816818                                517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */,
    817819                                A57A34EF16AF677200C2501F /* PageVisibilityStateWithWindowChanges.mm */,
     820                                00BC16851680FE810065F1E5 /* PublicSuffix.mm */,
    818821                                3722C8681461E03E00C45D00 /* RenderedImageFromDOMRange.mm */,
    819822                                261516D515B0E60500A2C201 /* SetAndUpdateCacheModel.mm */,
     
    10601063                                333B9CE21277F23100FEFCE3 /* PreventEmptyUserAgent.cpp in Sources */,
    10611064                                F6FDDDD314241AD4004F1729 /* PrivateBrowsingPushStateNoHistoryCallback.cpp in Sources */,
     1065                                00BC16871680FE810065F1E5 /* PublicSuffix.mm in Sources */,
    10621066                                0FC6C4CC141027E0005B7F0C /* RedBlackTree.cpp in Sources */,
    10631067                                8A3AF93B16C9ED2700D248C1 /* ReloadPageAfterCrash.cpp in Sources */,
  • trunk/WebKitLibraries/ChangeLog

    r143822 r143986  
     12013-02-21  Jeffrey Pfau  <jpfau@apple.com>
     2
     3        Optionally partition cache to prevent using cache for tracking
     4        https://bugs.webkit.org/show_bug.cgi?id=110269
     5
     6        Reviewed by Maciej Stachowiak.
     7
     8        Update WKSI bindings.
     9
     10        * WebKitSystemInterface.h:
     11        * libWebKitSystemInterfaceLion.a:
     12        * libWebKitSystemInterfaceMountainLion.a:
     13
    1142013-02-22  Aaron Colwell  <acolwell@chromium.org>
    215
  • trunk/WebKitLibraries/WebKitSystemInterface.h

    r142919 r143986  
    11/*     
    22    WebKitSystemInterface.h
    3     Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
     3    Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
    44
    55    Public header file.
     
    342342void WKSoftwareCARendererRender(WKSoftwareCARendererRef, CGContextRef, CGRect);
    343343
    344 typedef struct __WKCARemoteLayerClientRef *WKCARemoteLayerClientRef;
    345 
    346 WKCARemoteLayerClientRef WKCARemoteLayerClientMakeWithServerPort(mach_port_t port);
    347 void WKCARemoteLayerClientInvalidate(WKCARemoteLayerClientRef);
    348 uint32_t WKCARemoteLayerClientGetClientId(WKCARemoteLayerClientRef);
    349 void WKCARemoteLayerClientSetLayer(WKCARemoteLayerClientRef, CALayer *);
    350 CALayer *WKCARemoteLayerClientGetLayer(WKCARemoteLayerClientRef);
    351 
    352344typedef struct __WKCAContextRef *WKCAContextRef;
    353345
     
    484476#endif
    485477
    486 typedef enum {
    487     WKCaptionFontStyleDefault = 0,
    488     WKCaptionFontStyleMonospacedWithSerif,
    489     WKCaptionFontStyleProportionalWithSerif,
    490     WKCaptionFontStyleMonospacedWithoutSerif,
    491     WKCaptionFontStyleProportionalWithoutSerif,
    492     WKCaptionFontStyleCasual,
    493     WKCaptionFontStyleCursive,
    494     WKCaptionFontStyleSmallCapital,
    495     WKCaptionFontStyleMax
    496 } WKCaptionFontStyle;
    497 
    498 typedef enum {
    499     WKCaptionTextEdgeStyleUndefined = 0,
    500     WKCaptionTextEdgeStyleNone,
    501     WKCaptionTextEdgeStyleRaised,
    502     WKCaptionTextEdgeStyleDepressed,
    503     WKCaptionTextEdgeStyleUniform,
    504     WKCaptionTextEdgeStyleDropShadow,
    505     WKCaptionTextEdgeStyleMax
    506 } WKCaptionTextEdgeStyle;
    507 
    508 bool WKCaptionAppearanceHasUserPreferences(void);
    509 bool WKCaptionAppearanceShowCaptionsWhenAvailable(void);
    510 CGColorRef WKCaptionAppearanceCopyForegroundColor(void);
    511 CGColorRef WKCaptionAppearanceCopyBackgroundColor(void);
    512 CGColorRef WKCaptionAppearanceCopyWindowColor(void);
    513 bool WKCaptionAppearanceGetForegroundOpacity(CGFloat*);
    514 bool WKCaptionAppearanceGetBackgroundOpacity(CGFloat*);
    515 bool WKCaptionAppearanceGetWindowOpacity(CGFloat*);
    516 CGFontRef WKCaptionAppearanceCopyFontForStyle(int fontStyle);
    517 bool WKCaptionAppearanceGetRelativeCharacterSize(CGFloat*);
    518 int WKCaptionAppearanceGetTextEdgeStyle(void);
    519 CFStringRef WKCaptionAppearanceGetSettingsChangedNotification(void);
    520 
    521478#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
    522479typedef enum {
     
    548505void WKCFNetworkSetOverrideSystemProxySettings(CFDictionaryRef);
    549506
     507#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
     508bool WKIsPublicSuffix(NSString *domain);
     509#endif
     510
     511CFStringRef WKCachePartitionKey(void);
     512
    550513#ifdef __cplusplus
    551514}
Note: See TracChangeset for help on using the changeset viewer.