Commit Graph

544 Commits

Author SHA1 Message Date
Steve Hill 89efe99ad5 Update closure to v20160713. 2016-07-26 14:38:18 -04:00
Steve Hill 3088e26a63 Add RpcHandler for dealing with gRPC clients. 2016-07-26 14:31:27 -04:00
Jeff Kaufman 6707ec8cfd pagespeed-libraries: added angularjs 1.2.30 and 1.5.8 2016-07-26 08:40:58 -04:00
Maks Orlovich 0535204985 Support srcset in CacheExtender as well. 2016-07-25 13:45:10 -04:00
Maks Orlovich e005e5cfb6 Rollback CSS parser changes, as other clients need to be updated to them. 2016-07-25 11:44:33 -04:00
Maks Orlovich c9c48bb542 Update of JS to some API changes and regen'd.
(Export of change from a colleague involved in this stuff)
2016-07-25 11:44:03 -04:00
Jud Porter 31c4141c49 Prepare for goog.dom.TagName type change. 2016-07-25 09:25:53 -04:00
Egor Suvorov 7f6b088fb6 Fix #1351: Make AprMemCacheTest and RedisCacheTest tests independent from each other
* Add FlushAll() public method to RedisCache and call it right after connecting to server in RedisCacheTest
* Add CacheKeyPrepender wrapper for CacheInterface
* Make AprMemCache add prefixes to all keys added to Memcached. Prefix right now is simply a test case + test name. Flushing Memcached requires us to further modify our apr_memcached fork, which we decided to avoid.
2016-07-22 15:08:54 -04:00
Egor Suvorov 675c24d2f4 Add InMemoryCache implementation and tests (partially in 74e2f95)
InMemoryCache is a maximally simple implementation of cacheInterface,
for debugging and faking purposes.

This changelist is more for me (Egor) to get feedback than to actually submit the
code into Piper, because I doubt there are any direct applications. The goal is to ensure that I understand what it's going on in caches and that I haven't missed anything important.
2016-07-21 16:03:06 -04:00
Maks Orlovich 45243747e6 Implement parsing of CSS3 pseudo-classes with arguments. 2016-07-19 10:35:37 -04:00
Jeff Kaufman 2c6d3c60a5 json: stop changing the content type on ipro'd json files
nginx side of the change: https://github.com/pagespeed/ngx_pagespeed/pull/1224

Fixes https://github.com/pagespeed/mod_pagespeed/issues/1321
2016-07-18 11:15:19 -04:00
Jeff Kaufman ecfdcc8d94 pagespeed-libraries: added dojo 1.8.9, 1.7.10, 1.8.11, 1.8.12, 1.9.8, 1.9.9, 1.10.5, 1.10.6, 1.11.1, 1.11.2 2016-07-18 11:14:04 -04:00
Steve Hill 087f0ed7bb Add MatchesProto testing predicate. 2016-07-15 12:32:03 -04:00
Steve Hill 87a01b9e92 Replace DummyController with CentralControllerRpcServer.
Currently this starts a gRPC server but doesn't actually handle any events yet.
2016-07-12 17:01:11 -04:00
Jeff Kaufman 099329f561 beacons: allow people to choose how long beacons are valid for
Fixes https://github.com/pagespeed/mod_pagespeed/issues/1311
2016-07-12 16:30:16 -04:00
Jeff Kaufman a0c46bd44d pagespeed-libraries: add jquery 3.1.0 2016-07-12 16:29:15 -04:00
Maks Orlovich c7e641b828 Fix flattening with @font-face.
(Reported in https://github.com/pagespeed/ngx_pagespeed/issues/1222)
2016-07-12 16:05:22 -04:00
Egor Suvorov 0b7fb5e12a Add first naive implementation of Redis implementation of CacheInterface
* Add hiredis to dependencies and write .gyp for it
* Add run_program_with_redis.sh (copied from run_program_with_memcache.sh)
* Add RedisCache and one simple unit test for it

Things to do:
* Add more tests
* Add configuration variables for Redis cache so it can be enabled
* Understand purpose of memcache-related flags and variables in test Makefiles
  and ensure Redis has same, if needed
2016-07-12 14:40:44 -04:00
Maks Orlovich 02de03e825 Merge straightforward forwarding of flushes in ProxyFetch from Otto's
https://github.com/pagespeed/mod_pagespeed/pull/1336
The tests are tweaked slightly to work with fcgid on Apache and some additional
test environments.
2016-07-12 12:15:49 -04:00
Maks Orlovich ef83c507c9 Provide URL information in image filter debug messages. 2016-07-08 12:54:49 -04:00
Maks Orlovich 83aec21bf9 Teach CssFilter to report dependencies on @import'ed stylesheets. 2016-07-07 15:45:44 -04:00
Jeff Kaufman d33c56075f insert-ga: accept dc.js as a synonym for ga.js
Fixes https://github.com/pagespeed/mod_pagespeed/issues/1338
2016-07-07 11:11:37 -04:00
Jeff Kaufman 703060b318 inliners: don't inline gzipped text
If what we're going to inline into CSS or JS starts with the gzip magic
bytes (file signature) then it's very likely to be gzipped and very
unlikely to be valid CSS or JS, so we should abort the inlining.

Fixes the amount of https://github.com/pagespeed/mod_pagespeed/issues/1307
that I could repro.  If we later see mangling files in-place (or combining)
then we can extend this.
2016-07-06 10:08:28 -04:00
Maks Orlovich a2eb16e363 Improve how srcset locations are described in text.
(These show up in debug logs --- I was expecting them to show up
 in debug comments as well, and while that didn't work out, no reason
 not to keep this).
2016-07-01 14:00:50 -04:00
Maks Orlovich 428b7e044e Basic support for rewriting <img srcset> 2016-06-29 17:48:59 -04:00
Maks Orlovich d43f40b3c7 Merge hop-by-hop handling improvements by Otto van der Schaaf:
* Adds Connection: to the list of headers that contain fields separated by ","
* Marks Alt-Svc and Alternate-Protocol as hop-by-hop, so we will treat them as such.
* Adds sanitization of headers marked as hop-by-hop in Connection: headers as per rfc.
* Moves initialization of 'AtExitManager' out of the css filter to the more central ProcessContext as this change adds another dependancy on it -- and we must initialize it exactly once.
* Changes the header definitions to be lazy initialized to avoid extra allocations when manipulating headers, while avoiding static initialization.
(From https://github.com/pagespeed/mod_pagespeed/pull/1195)
2016-06-27 14:40:18 -04:00
Jeff Kaufman 490e4cf480 preloading: switch defer_js to rel=preload
defer_js was using Image objects to preload scripts for WebKit in a way that is
harmful in modern browsers.  Currently this isn't actually needed in Chrome,
since the preload scanner already finds our deferred scripts, but Chrome is
thinking of removing that [1].  This change switches us to the new standard,
rel=preload, which we will need once Chrome updates its scanner not to preload
things with invalid type attributes.

Fixes https://github.com/pagespeed/mod_pagespeed/issues/1054

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=623109
2016-06-27 14:21:25 -04:00
Jeff Kaufman 68cbc68c91 preload: strip existing rel=preload hints
Fixes https://github.com/pagespeed/mod_pagespeed/issues/1327
2016-06-27 14:20:31 -04:00
Joshua Marantz 50d3e18f9d sync for internal tweaks 2016-06-27 09:29:40 -04:00
Jeff Kaufman 3d10186215 url-valued-attributes: support css
Fixes https://github.com/pagespeed/mod_pagespeed/issues/1324
2016-06-27 08:17:07 -04:00
Joshua Marantz c8dc73fec4 Also add 'public' to non-private cache-control if request has
via:*google*.

Completes the fix to
https://github.com/pagespeed/ngx_pagespeed/issues/1149

A challenge here is to make sure we test all the egress points, e.g.
  - pagespeed resources: cached and reconstructed on demand
  - fallbacks of various sorts
  - ipro resources: cached and reconstructed on demand
  - loaded from LoadFromFile
also we must make sure we don't cache the 'public' based on the request
headers.
2016-06-26 23:41:26 -04:00
Jeff Kaufman 95f7f4dcca image-inline: don't inline shortcut images
Because shortcut images don't block page rendering and generally aren't that important the tradeoffs are different for them, and we shouldn't inline them.

Fixes https://github.com/pagespeed/mod_pagespeed/issues/1022
2016-06-23 07:10:01 -04:00
Jeff Kaufman edf58c5114 pagespeed_libraries: added angular 1.4.12 2016-06-23 07:02:29 -04:00
Jud Porter 4f1c8cdda8 Add three dot help button. 2016-06-22 13:47:23 -04:00
Huibao Lin 991c09faca Merge branch 'master' of github.com:pagespeed/mod_pagespeed 2016-06-21 16:59:13 -04:00
Huibao Lin aaaa00bb67 Reformat code 2016-06-21 16:57:30 -04:00
Joshua Marantz 35ce47fed9 Add a method to add 'public' to response-headers if via:*google is
present in request-headers.
2016-06-21 16:45:41 -04:00
Steve Hill 66d8196524 Create TcpServerThreadForTesting and re-factor FakeMemcacheServerThread to use it. 2016-06-21 14:24:35 -04:00
Jeffrey Crowell c1e4d1eba4 sync genfiles 2016-06-17 14:24:16 -04:00
Joshua Marantz 6d81e8054f Propagate 'cache-control:public' from inputs to outputs.
Partially fixes https://github.com/pagespeed/ngx_pagespeed/issues/1149

General strategy:
 - adjust general mechanism for computing output response header from input response headers
   to incorporate 'public' on input.

A challenge here is to make sure we test all the egress points, e.g.
  - pagespeed resources: cached and reconstructed on demand
  - fallbacks of various sorts
  - ipro resources: cached and reconstructed on demand
  - loaded from LoadFromFile
2016-06-16 09:55:51 -04:00
Joshua Marantz 8f6e4d4b4b Tweak google-maps URL slightly. Library update. 2016-06-15 21:54:08 -04:00
Joshua Marantz f602d42ebd peleyal : Fixes a CSS bug found during testing:
.article__header .article__header
{ {
max-width: 82vw; ===> << NOTHING, IT WAS REMOVED >>
} }
2016-06-15 21:50:49 -04:00
Maks Orlovich 5f6ff53690 Fix flattening when something imported as @import "foo" all;
is included in something w/o explicitly restricted media.
Key thing to note here: empty media_ means everything, and we're doing
intersection, so there is a room for confusion between nothing and
everything.
2016-06-10 16:26:56 -04:00
Steve Hill 4510f84822 Allow error writer to actually be set for collecting css minify errors. 2016-06-10 13:52:40 -04:00
Joshua Marantz 44a09a745f Merge branch 'master' of github.com:pagespeed/mod_pagespeed 2016-06-02 09:56:01 -04:00
Joshua Marantz 4d3acd9cd3 Add testing for htaccess overrides with Disallow/Allow. 2016-06-02 09:55:14 -04:00
Maks Orlovich e3c7bc9161 Don't require URLs to be on proxy domain when using an input-only proxy extent
UrlNamer. Should fix some CHECK failures I saw in measurement mode, due to us
being unable to fetch our own OutputResources.
2016-06-02 09:46:50 -04:00
Jeffrey Crowell 467bb4cc80 sync genfiles 2016-06-01 14:31:57 -04:00
Joshua Marantz 0a938a174e Don't print out info messages about the size not changing. 2016-06-01 11:08:16 -04:00
Huibao Lin 1d2efe0b05 Add ImageOptimizer which applies all optimizations to all image formats 2016-05-31 16:26:55 -04:00