Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to host a chrome extension?

I need to host my chrome extension on my shared hosting with PHP.

I know that my server must use appropriates HTTP headers: code.google.com/chrome/extensions/hosting.html

But, how to set my server to send these headers in addiction to .crx file ?

like image 715
xRobot Avatar asked May 24 '12 12:05

xRobot


2 Answers

If you are on a shared hosting and can't change server configuration, use PHP:

<?php
$file = 'extension.crx';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/x-chrome-extension');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>

source

This will force file (specified by $file variable) download with customized headers.

like image 175
Konrad Dzwinel Avatar answered Nov 09 '22 13:11

Konrad Dzwinel


I do not know what web server are you using, but for Apache you can do the following:

  1. vi /path/to/your/httpd/conf/mime.types
  2. Add this line: application/x-chrome-extension crx at the end of the file
  3. Restart your webserver: killall -HUP httpd

Or you can try adding this line to your .htaccess file:

AddType application/x-chrome-extension crx

And it should work!

like image 26
divaka Avatar answered Nov 09 '22 14:11

divaka