Extend Drupal's Internal Page Cache by allowing variation of cache based on HTTP header, as per the Vary specification.

There is a cache entry for every variation of a given URL, and a cache entry for every URL (containing the list of variations for the given URL, or none if there is no variation).

For the same variation the cache will hit, for a new variation a new response will be stored in cache.

The Vary header is exposed in the response (as per the specification).

It uses the Cache Context (since it's the same feature), and allow to extend a Page Context by adding an interface (VaryCacheContextInterface) to be able to provide a list of headers to vary the response by.

Project link

https://www.drupal.org/project/page_cache_vary

Comments

elendev created an issue. See original summary.

vishal.kadam’s picture

Thank you for applying!

Please read Review process for security advisory coverage: What to expect for more details and Security advisory coverage application checklist to understand what reviewers look for. Tips for ensuring a smooth review gives some hints for a smoother review.

The important notes are the following.

  • If you have not done it yet, you should run phpcs --standard=Drupal,DrupalPractice on the project, which alone fixes most of what reviewers would report.
  • For the time this application is open, only your commits are allowed.
  • The purpose of this application is giving you a new drupal.org role that allows you to opt projects into security advisory coverage, either projects you already created, or projects you will create. The project status won't be changed by this application and no other user will be able to opt projects into security advisory policy.
  • We only accept an application per user. If you change your mind about the project to use for this application, or it is necessary to use a different project for the application, please update the issue summary with the link to the correct project and the issue title with the project name and the branch to review.

To the reviewers

Please read How to review security advisory coverage applications, Application workflow, What to cover in an application review, and Tools to use for reviews.

The important notes are the following.

  • It is preferable to wait for a Code Review Administrator before commenting on newly created applications. Code Review Administrators will do some preliminary checks that are necessary before any change on the project files is suggested.
  • Reviewers should show the output of a CLI tool only once per application.
  • It may be best to have the applicant fix things before further review.

For new reviewers, I would also suggest to first read In which way the issue queue for coverage applications is different from other project queues.

vishal.kadam’s picture

Issue summary: View changes
jaseerkinangattil’s picture

Hi,

Please review the below erros and warnings


FILE: /Users/jaseer/dockers/lamp/www/page_cache_vary/src/PageCacheVaryServiceProvider.php
-----------------------------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
-----------------------------------------------------------------------------------------
 8 | WARNING | [x] Unused use statement
-----------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
-----------------------------------------------------------------------------------------


FILE: /Users/jaseer/dockers/lamp/www/page_cache_vary/src/VaryCacheContextCleanPass.php
------------------------------------------------------------------------------------------
FOUND 2 ERRORS AND 4 WARNINGS AFFECTING 6 LINES
------------------------------------------------------------------------------------------
  9 | WARNING | [ ] Line exceeds 80 characters; contains 85 characters
 11 | ERROR   | [x] Doc comment star missing
 13 | ERROR   | [x] There must be exactly one blank line before the tags in a doc comment
 21 | WARNING | [ ] Line exceeds 80 characters; contains 116 characters
 22 | WARNING | [ ] Line exceeds 80 characters; contains 95 characters
 23 | WARNING | [ ] Line exceeds 80 characters; contains 108 characters
------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------------------
rushikesh raval’s picture

Status: Needs review » Needs work

1.0 Wrong Branch name

main is a wrong name for a branch. Release branch names always end with the literal .x as described in Release branches.

2.0 Fix phpcs issue

phpcs --standard=Drupal,DrupalPractice --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml page_cache_vary/

FILE:page_cache_vary/src/VaryCacheContextCleanPass.php
------------------------------------------------------------------------------------------
FOUND 2 ERRORS AND 4 WARNINGS AFFECTING 6 LINES
------------------------------------------------------------------------------------------
  9 | WARNING | [ ] Line exceeds 80 characters; contains 85 characters
 11 | ERROR   | [x] Doc comment star missing
 13 | ERROR   | [x] There must be exactly one blank line before the tags in a doc comment
 21 | WARNING | [ ] Line exceeds 80 characters; contains 116 characters
 22 | WARNING | [ ] Line exceeds 80 characters; contains 95 characters
 23 | WARNING | [ ] Line exceeds 80 characters; contains 108 characters
------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------------------


FILE:page_cache_vary/src/StackMiddleware/PageCacheVary.php
--------------------------------------------------------------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------------------------------------------------------------
 9 | ERROR | [x] Use statements should be sorted alphabetically. The first wrong one is Drupal\Core\Cache\CacheableResponseInterface.
--------------------------------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------------------------------------------------------------


FILE:page_cache_vary/src/PageCacheVaryServiceProvider.php
------------------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
------------------------------------------------------------------------------
 8 | WARNING | [x] Unused use statement
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------


FILE:page_cache_vary/tests/Functional/PageCacheVaryTest.php
-------------------------------------------------------------------------------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
-------------------------------------------------------------------------------------------------------------------------------------------------------
 7 | ERROR | [x] Use statements should be sorted alphabetically. The first wrong one is Drupal\page_cache_vary_test\Cache\Context\CountryCacheContext.
-------------------------------------------------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
-------------------------------------------------------------------------------------------------------------------------------------------------------

Time: 63ms; Memory: 10MB

rushikesh raval’s picture

Priority: Normal » Minor

I am changing priority as per Issue priorities.

avpaderno’s picture

Status: Needs work » Closed (won't fix)

I am going to close this application earlier than the usual because no comments have been posted by the applicant.

This thread has been idle, in the Needs work state with no activity for more than six months; the application has been created about 11 months ago or more. Therefore, I marked it as Closed (won't fix).

If this is incorrect, and you are still pursuing this application, please feel free to re-open it and set the issue status to Needs work or Needs review, depending on the current status of your code.

Now that this issue is closed, please review the contribution record.

As a contributor, attribute any organization helped you, or if you volunteered your own time.

Maintainers, please credit people who helped resolve this issue.