Skip to content

Don't photonize wpcom images that don't need to be.#6497

Merged
samhotchkiss merged 9 commits intomasterfrom
photon/dont-dupe-wpcom-images
Feb 28, 2017
Merged

Don't photonize wpcom images that don't need to be.#6497
samhotchkiss merged 9 commits intomasterfrom
photon/dont-dupe-wpcom-images

Conversation

@georgestephanis
Copy link
Copy Markdown
Contributor

@georgestephanis georgestephanis commented Feb 27, 2017

Don't photon-ize WPCOM hosted images with only the following url args:

w, h, fit, crop, resize

These args can just be added to the wpcom-version of the image, and save
on latency as the images don't need to be loaded into and cached on the
Photon CDN.

Don't photon-ize WPCOM hosted images with only the following url args:
> `w`, `h`, `fit`, `crop`, `resize`
These args can just be added to the wpcom-version of the image, and save
on latency as the images don't need to be loaded into and cached on the
Photon CDN.
@georgestephanis georgestephanis added [Feature] Photon aka "Image CDN". Feature developed in the Image CDN package and shipped in multiple plugins Enhancement Changes to an existing feature — removing, adding, or changing parts of it labels Feb 27, 2017
@georgestephanis georgestephanis self-assigned this Feb 27, 2017
@georgestephanis georgestephanis added the [Status] Needs Review This PR is ready for review. label Feb 27, 2017
@georgestephanis
Copy link
Copy Markdown
Contributor Author

The arguments that the wpcom servers support was provided by @darthhexx -- thanks!

'crop' => true,
'resize' => true,
);
if ( wp_endswith( '.files.wordpress.com', $image_url_parts['host'] ) && array_diff_key( $args, $allowed_wpcom_keys ) ) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is wp_endswith() a wpcom-only function? Looking on W.org only brings up this old ticket.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had the haystack and needle reversed, as well as testing for the
opposite truthiness value.
srand isn't consistent cross-platform so we need to account for
different subdomains.  I'd rather not do regex assertions, so I just
test most of the url as a suffix.
Copy link
Copy Markdown

@darthhexx darthhexx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, bar my little comment suggestion.

@@ -99,6 +118,7 @@ function jetpack_photon_url( $image_url, $args = array(), $scheme = null ) {
if (
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably add the reason for the || $is_wpcom_image_with_safe_args in this comment, otherwise it's presence seems bit out of place.

@georgestephanis georgestephanis added [Status] Ready to Merge Go ahead, you can push that green button! and removed [Status] Needs Review This PR is ready for review. labels Feb 28, 2017
@samhotchkiss samhotchkiss merged commit ec125d8 into master Feb 28, 2017
@samhotchkiss samhotchkiss deleted the photon/dont-dupe-wpcom-images branch February 28, 2017 07:14
@samhotchkiss samhotchkiss removed the [Status] Ready to Merge Go ahead, you can push that green button! label Feb 28, 2017
jeherve added a commit that referenced this pull request Feb 28, 2017
dereksmart pushed a commit that referenced this pull request Feb 28, 2017
* Changelog: update stable tag and move changelog to changelog.txt

Also remove old releases from readme.txt to keep the changelog tab short.

* Changelog: add #5883

Also update the filter's docblock to match new version.

* Changelog: add #5938

* Changelog: add #6298

* Changelog: add #3405

* Changelog: add #5941

* Changelog: add #6239

* Changelog: add #6281

* Changelog: add #6303

* Changelog: add #6018

* Changelog: add #6300

* Changelog: add #6296

* Changelog: add #6130

* Changelog: add #6292

* Readme: remove extra "on".

* Changelog: add #6307

* Changelog: add #3297

* Changelog: add #6275

* Changelog: add #6321

* Changelog: add #6297

* Readme: update the support forum link anchor.

Anchor changed when WordPress.org forums were updated to bbPress 2

* Readme: update list of a12s, it wasn't up to date anymore!

* Changelog: add #6338

* Changelog: add #6337

* Changelog: add #6335

* Changelog: add #6333

* Testing List: first version of the 4.7 testing list.

* Changelog: add #6332

* Changelog: add #6325

* Changelog: add #6326

* Changelog: add #6339

* Changelog: add #6342

* Changelog: add #6343

* Changelog: add #6346

* Changelog: add #6347

* Changelog: add #6279

* Changelog: add #6306

* Changelog: add #6312

* Changelog: add #6316

* Changelog: add #6171

* Changelog: add #6317

* Changelog: add #6246

* Changelog: add #6263

* Changelog: add #4220

* Changelog: add #5888

* Changelog: add #3406

* Changelog: add #3637

* Changelog: add #6320

* Changelog: add #5992

* Changelog: add #6322

* Changelog: add #6324

* Changelog: add #6352

* Changelog: add #6355

* Changelog: add #6360

* Changelog: add #6362

* Changelog: add #6369, #6382

* Changelog: add #6370

* Changelog: add #6375

* Changelog: add #6383

* Changelog: add #6384

* Changelog: add #6386

* Changelog: add #6395

* Changelog: add #6403

* Changelog: add #6406

* Changelog: add #6418

* Changelog: add #6419

* Changelog: add #6434

* Changelog: add #6446

* Changelog: add #6006

* Changelog: add #6096

* Changelog: add #6399

* Changelog: fix typo.

@see #6331 (comment)

* Changelog: add #6440

* Changelog: add #6443

* Changelog: add #6445

* Changelog: add #6463

* Changelog: add #6468

* Changelog: add #6471

* Changelog: add #6474

* Changelog: add #6480

* Changelog: add #6497

* Changelog: add #6499

* Changelog: add #6514

* Changelog: add #6267

* Changelog: add #5940

* Changelog: add #6492

* Changelog: add #5281

* Changelog: add #6327

* Changelog: add #6451

* Changelog: add #6525

* Changelog: add #6530
@georgestephanis
Copy link
Copy Markdown
Contributor Author

This has been synced to wpcom as r152415-wpcom

dereksmart pushed a commit that referenced this pull request Apr 19, 2018
This will avoid photon-izing images on wpcom file servers, where wpcom file servers can handle the request and get arguments as passed.

Detailed changelog from the PR:

* Don't photonize wpcom images that don't need to be.

Don't photon-ize WPCOM hosted images with only the following url args:
> `w`, `h`, `fit`, `crop`, `resize`
These args can just be added to the wpcom-version of the image, and save
on latency as the images don't need to be loaded into and cached on the
Photon CDN.

* Make sure we're going off a lower-case version of the host.

* Add in three more params that seem to be supported wpcom-side.

WPCOM Source: blogs.php, lines 793-858

Merges r152415-wpcom.
dereksmart pushed a commit that referenced this pull request Apr 26, 2018
This will avoid photon-izing images on wpcom file servers, where wpcom file servers can handle the request and get arguments as passed.

Detailed changelog from the PR:

* Don't photonize wpcom images that don't need to be.

Don't photon-ize WPCOM hosted images with only the following url args:
> `w`, `h`, `fit`, `crop`, `resize`
These args can just be added to the wpcom-version of the image, and save
on latency as the images don't need to be loaded into and cached on the
Photon CDN.

* Make sure we're going off a lower-case version of the host.

* Add in three more params that seem to be supported wpcom-side.

WPCOM Source: blogs.php, lines 793-858

Merges r152415-wpcom.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement Changes to an existing feature — removing, adding, or changing parts of it [Feature] Photon aka "Image CDN". Feature developed in the Image CDN package and shipped in multiple plugins Touches WP.com Files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants