Extensão do Chrome: como capturar o texto selecionado e enviar para um serviço da web

Para a extensão do Google Chrome, preciso capturar o texto selecionado em uma página da web e enviar para um serviço da web. Estou preso!

Primeiro, tentei um bookmarklet, mas o Chrome no Mac parece ter alguns bugs, então decidi escrever uma extensão.

Eu uso esse código no meu ext:

function getSelText(){
    var txt = 'nothing';
    if (window.getSelection){
        txt = "1" + window.getSelection();
    } else if (document.getSelection) {
        txt = "2" + document.getSelection();
    } else if (document.selection) {
        txt = "3" + document.selection.createRange().text;
    } else txt = "wtf";
    return txt;
}
var selection = getSelText();
alert("selection = " + selection);

Quando clico no ícone da minha extensão, recebo um "1". Então, acho que o ato de selecionar fora da janela do navegador está fazendo com que o texto não seja mais visto pelo navegador como "selecionado".

Apenas uma teoria ....

pensamentos?

questionAnswers(5)

yourAnswerToTheQuestion