Changeset 104154 in spip-zone


Ignore:
Timestamp:
May 4, 2017, 8:34:13 AM (2 years ago)
Author:
marcimat@…
Message:

Ticket #3560 : Suppression de l'option expérimentale de compression des JS par google closure compiler.

Location:
_core_/plugins/compresseur
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/compresseur/compresseur_ieconfig.php

    r98846 r104154  
    2323        $table['compresseur']['titre'] = _T('compresseur:info_compresseur_titre');
    2424        $table['compresseur']['icone'] = 'compresseur-16.png';
    25         $table['compresseur']['metas_brutes'] = 'auto_compress_js,auto_compress_css,auto_compress_closure';
     25        $table['compresseur']['metas_brutes'] = 'auto_compress_js,auto_compress_css';
    2626
    2727        return $table;
  • _core_/plugins/compresseur/compresseur_pipeline.php

    r98846 r104154  
    9494function compresseur_configurer_liste_metas($metas) {
    9595        $metas['auto_compress_js'] = 'non';
    96         $metas['auto_compress_closure'] = 'non';
    9796        $metas['auto_compress_css'] = 'non';
    9897        $metas['url_statique_ressources'] = '';
  • _core_/plugins/compresseur/formulaires/configurer_compresseur.html

    r95691 r104154  
    3131                                                                <label for="auto_compress_js"><:compresseur:item_compresseur_js:></label>
    3232                                                        </div>
    33                                                         <div class='choix'>
    34                                                                 <input class='checkbox' type="checkbox" name="auto_compress_closure" value='oui' [checked="(#ENV{auto_compress_closure}|=={oui}|?{checked})"] id="auto_compress_closure"/>
    35                                                                 <label for="auto_compress_closure"><:compresseur:item_compresseur_closure:></label>
    36                                                         </div>
    3733                                                </div>
    3834                                                <div class='editer configurer_auto_compress_css[ (#ENV**{erreurs}|table_valeur{auto_compress_css}|oui)erreur]'>
  • _core_/plugins/compresseur/formulaires/configurer_compresseur.php

    r98846 r104154  
    3232        $valeurs['auto_compress_js'] = $GLOBALS['meta']['auto_compress_js'];
    3333        $valeurs['auto_compress_css'] = $GLOBALS['meta']['auto_compress_css'];
    34         $valeurs['auto_compress_closure'] = $GLOBALS['meta']['auto_compress_closure'];
    3534        $valeurs['url_statique_ressources'] = $GLOBALS['meta']['url_statique_ressources'];
    3635
     
    4948
    5049        // les checkbox
    51         foreach (array('auto_compress_js', 'auto_compress_css', 'auto_compress_closure') as $champ) {
     50        foreach (array('auto_compress_js', 'auto_compress_css') as $champ) {
    5251                if (_request($champ) != 'oui') {
    5352                        set_request($champ, 'non');
  • _core_/plugins/compresseur/inc/compresseur.php

    r95385 r104154  
    200200                        $callbacks[] = protocole_implicite($GLOBALS['meta']['url_statique_ressources']);
    201201                }
    202         }
    203         if ($format == 'js' and $GLOBALS['meta']['auto_compress_closure'] == 'oui') {
    204                 $callbacks['all_min'] = 'minifier_encore_js';
    205202        }
    206203
  • _core_/plugins/compresseur/inc/compresseur_minifier.php

    r94825 r104154  
    192192 *  62% de la taille initiale / 752 ms
    193193 *
    194  * Closure Compiler
    195  *  44% de la taille initiale / 3 785 ms
    196  *
    197  * JavaScriptPacker + Closure Compiler
    198  *  43% de la taille initiale / 3 100 ms au total
    199  *
    200  * Il est donc plus rapide&efficace
    201  * - de packer d'abord en local avec JavaScriptPacker
    202  * - d'envoyer ensuite au closure compiler
    203  * Cela permet en outre d'avoir un niveau de compression decent si closure
    204  * compiler echoue
    205  *
    206  * Dans cette fonction on ne fait que le compactage local,
    207  * l'appel a closure compiler est fait une unique fois pour tous les js concatene
    208  * afin d'eviter les requetes externes
    209  *
    210194 * @param string $flux
    211195 *     Contenu JS
     
    229213
    230214        return $t;
    231 }
    232 
    233 
    234 /**
    235  * Minification additionnelle de JS
    236  *
    237  * Compacter du javascript plus intensivement
    238  * grâce au google closure compiler
    239  *
    240  * @param string $content
    241  *     Contenu JS à compresser
    242  * @param bool $file
    243  *     Indique si $content est ou non un fichier, et retourne un fichier dans ce dernier cas
    244  *     Si $file est une chaîne, c'est un nom de ficher sous lequel on écrit aussi le fichier destination
    245  * @return string
    246  *     Contenu JS compressé
    247  */
    248 function minifier_encore_js($content, $file = false) {
    249         # Closure Compiler n'accepte pas des POST plus gros que 200 000 octets
    250         # au-dela il faut stocker dans un fichier, et envoyer l'url du fichier
    251         # dans code_url ; en localhost ca ne marche evidemment pas
    252         if ($file) {
    253                 $nom = $content;
    254                 lire_fichier($nom, $content);
    255                 $dest = dirname($nom) . '/' . md5($content . $file) . '.js';
    256                 if (file_exists($dest) and (!is_string($file) or file_exists($file))) {
    257                         if (filesize($dest)) {
    258                                 return is_string($file) ? $file : $dest;
    259                         } else {
    260                                 spip_log("minifier_encore_js: Fichier $dest vide", _LOG_INFO);
    261 
    262                                 return $nom;
    263                         }
    264                 }
    265         }
    266 
    267         if (!$file and strlen($content) > 200000) {
    268                 return $content;
    269         }
    270 
    271         include_spip('inc/distant');
    272 
    273         $datas = array(
    274                 'output_format' => 'text',
    275                 'output_info' => 'compiled_code',
    276                 'compilation_level' => 'SIMPLE_OPTIMIZATIONS',
    277                 // 'SIMPLE_OPTIMIZATIONS', 'WHITESPACE_ONLY', 'ADVANCED_OPTIMIZATIONS'
    278         );
    279         if (!$file or strlen($content) < 200000) {
    280                 $datas['js_code'] = $content;
    281         } else {
    282                 $datas['url_code'] = url_absolue($nom);
    283         }
    284 
    285         $cc = recuperer_page('http://closure-compiler.appspot.com/compile',
    286                 $trans = false, $get_headers = false,
    287                 $taille_max = null,
    288                 $datas,
    289                 $boundary = -1);
    290 
    291         if ($cc and !preg_match(',^\s*Error,', $cc)) {
    292                 spip_log('Closure Compiler: success');
    293                 $cc = "/* $nom + Closure Compiler */\n" . $cc;
    294                 if ($file) {
    295                         ecrire_fichier($dest, $cc, true);
    296                         ecrire_fichier("$dest.gz", $cc, true);
    297                         $content = $dest;
    298                         if (is_string($file)) {
    299                                 ecrire_fichier($file, $cc, true);
    300                                 clearstatcache(true, $file);
    301                                 ecrire_fichier("$file.gz", $cc, true);
    302                                 $content = $file;
    303                         }
    304                 } else {
    305                         $content = &$cc;
    306                 }
    307         } else {
    308                 if ($file) {
    309                         spip_log("minifier_encore_js:Echec appel Closure Compiler. Ecriture fichier $dest vide", _LOG_INFO_IMPORTANTE);
    310                         ecrire_fichier($dest, '', true);
    311                 }
    312         }
    313 
    314         return $content;
    315215}
    316216
  • _core_/plugins/compresseur/lang/compresseur_fr.php

    r97139 r104154  
    1515        'info_question_activer_compactage_css' => 'CSS',
    1616        'info_question_activer_compactage_js' => 'Scripts',
    17         'item_compresseur_closure' => 'Utiliser Google Closure Compiler [expérimental]',
    1817        'item_compresseur_css' => 'Activer la compression des feuilles de style (CSS)',
    1918        'item_compresseur_js' => 'Activer la compression des scripts (javascript)',
  • _core_/plugins/compresseur/paquet.xml

    r103307 r104154  
    22        prefix="compresseur"
    33        categorie="performance"
    4         version="1.11.0"
     4        version="1.12.0"
    55        etat="stable"
    66        compatibilite="[3.2.0-dev;3.2.*]"
    77        logo="images/compresseur-32.png"
    8 >       
     8>
    99
    1010        <nom>Compresseur</nom>
Note: See TracChangeset for help on using the changeset viewer.