Como fazer downgrade do Chrome 35 para 34 sem perder dados?

4

Depois de atualizar o Chromium de 34 para 35, a facilidade de uso do Chromium diminuiu. Então decidi fazer o downgrade do Chromium. Felizmente, a versão anterior do Chromium ainda estava em algum lugar no meu disco, então o downgrade (no ArchLinux) era tão simples quanto:

sudo pacman -U /var/cache/pacman/pkg/chromium-34.0.1847.137-1-x86_64.pkg.tar.xz

Depois de executar o comando anterior, o Chromium foi iniciado, mas, infelizmente, continuei sendo grampeado pela seguinte mensagem na inicialização:

Your profile can not be used because it is from a newer version of Google Chrome. Some features may be unavailable. Please specify a different profile directory or use a newer version of Chrome.

Uma maneira de se livrar dessa mensagem é excluir ~/.config/chromium/Default/Web Data , mas isso também fez com que minhas palavras-chave do mecanismo de pesquisa desaparecessem .

Como posso fazer o downgrade do Chromium sem perder dados?

Nota: estou usando o Linux, mas esse problema é independente de plataforma. Sinta-se à vontade para responder a partir da perspectiva de um sistema operacional não-Linux, como o Windows.

    
por Rob W 23.05.2014 / 16:31

2 respostas

8

Observação: feche o Chrome e faça um backup do seu perfil antes de mexer nele!

Web Data é um banco de dados SQLite, então usei o programa sqlite3 para abrir o banco de dados.

  1. Qual é a versão atual do banco de dados "Dados da Web"? (execute SELECT * from meta; )

    sqlite> SELECT * FROM meta;
    Default Search Provider ID|34
    last_compatible_version|55
    version|55
    Builtin Keyword Version|70
  2. As linhas enfatizadas na saída anterior referem-se aos números de versão do banco de dados interno no Chromium. Para cada versão, você pode encontrar os códigos de migração relevantes em Código-fonte do Chromium (autofill_table.cc) . Especificamente, dê uma olhada no método AutofillTable::MigrateToVersion . Como minha versão do banco de dados é 55, examinei "case 55"

    case 55:
          *update_compatible_version = true;
          return MigrateToVersion55MergeAutofillDatesTable();

    Depois de descobrir esse método, eu estava quase pronto para escrever uma consulta SQLite para reverter a migração.

  3. Usando o conhecimento da etapa anterior (e o esquema original de uma tabela diferente em outro computador), criei a seguinte consulta (copie e cole a consulta em sqlite3 ):
    Nota: Essa consulta é específica para rebaixar o Chrome 35 para 34!

    CREATE TABLE autofill_v54 (
        name VARCHAR,
        value VARCHAR,
        value_lower VARCHAR,
        pair_id INTEGER PRIMARY KEY,
        count INTEGER DEFAULT 1);
    CREATE TABLE autofill_dates (
        pair_id INTEGER DEFAULT 0,
        date_created INTEGER DEFAULT 0);        
    
    INSERT INTO autofill_v54 (
        name,
        value,
        value_lower,
        count
    ) SELECT name, value, value_lower, count FROM autofill;
    
    INSERT INTO autofill_dates (
        pair_id,
        date_created
    ) SELECT pair_id, date_created
      FROM autofill_v54 a54 JOIN autofill a USING (name, value);
    
    DROP TABLE autofill;
    ALTER TABLE autofill_v54 RENAME TO autofill;
    
    CREATE INDEX autofill_name ON autofill (name);
    CREATE INDEX autofill_name_value_lower ON autofill (name, value_lower);
    
  4. Após reverter a migração, você pode baixar a versão do banco de dados com segurança:

    UPDATE meta SET value='54' WHERE key='version' OR
                                     key = 'last_compatible_version';
    
  5. Feche o banco de dados usando .quit

Depois de concluir todas essas etapas, iniciei o Chromium, não houve pop-ups irritantes e todos os dados de perfil ainda estavam intactos.

    
por 23.05.2014 / 17:49
0

Eu confirmo: a solução com sqlite3 funciona bem!

Sou usuário do Ubuntu (14.04), mas tentei esse método não com o cromo, mas com o google-chrome-stable.

Eu fiz o downgrade do chrome de 35 para 34 porque não há como executar o applet java no release 35.: - (

sudo apt-get purge google-chrome-stable
sudo rm -f /etc/apt/sources.list.d/google-chrome.list*
sudo apt-get update
cd ~/Downloads
wget http://95.31.35.30/chrome/pool/main/g/google-chrome-stable/google-chrome-stable_34.0.1847.137-1_amd64.deb

Ao remover essa fonte, o google-chrome não será mais atualizado automaticamente. Eu instalei o release 34 do nautilus com o gdebi. Você pode instalar o gdebi com:

sudo apt-get install gdebi

O problema começa aqui ... Mensagem = 'Seu perfil não pode ser usado porque é de um mais novo ...'
Você pode instalar o sqlite3 assim:

sudo apt-get install sqlite3

para executar a solução acima (fornecida por Rob W), faça:

cd ~/.config/google-chrome/Default
sqlite3 Web\ Data

Depois disso, simplesmente copie / cole os passos 1, 3, 4, 5 dados por Rob W.
Espero que esta ajuda. ; -)

    
por 19.06.2014 / 18:53