Подскажите, как сделать так, чтобы расширение могло обмениваться данными с сайтом.
Сайт должен определять наличие установленного расширения и уметь обмениваться с ним данными.

Тут все расписано.
Про XHR на сайт я не говорю. Есть еще экзотические варианты с облачными сервисами. В некоторых случаях они очень полезны.