
Antecedentes
Eu tenho um tablet barato e barato no Windows 10 com um gigabyte de RAM e 16 gigabytes de espaço no qual o Windows 10. está instalado.Para que o Windows 10 possa, de alguma forma, baixar e instalar atualizações - torci o tamanho do arquivo de paginação para zero e o arquivo de paginação. O sistema parou de ocupar gigabytes preciosos.
Depois disso, fiquei surpreso ao descobrir que é impossível usar o Chrome, o Internet Explorer ou mesmo o antigo Opera 12 para exibir sites mais ou menos grandes neste tablet. Todos eles tentam mostrar o site algumas vezes, reinicie-o novamente (parece não cabe na RAM real sem um arquivo de troca) e, após a segunda tentativa de fazer o download, exibe uma mensagem de falha.
Por que, quando o tamanho do código HTML do site é de várias centenas de kilobytes, um computador com um gigabyte de RAM não pode desenhá-lo?
Aparentemente, porque o site consiste em elementos heterogêneos, incluindo scripts JavaScript (ou mesmo VB) (que devem ser executados após o carregamento e em eventos como “movimento do mouse sobre um elemento” etc.), estilos CSS, quadros com outras páginas , mídia (fotos, músicas, vídeos etc.). Quando um site é carregado, o navegador carrega o código principal do site e começa a carregar arquivos relacionados, executando e preparando scripts para execução, carregando e exibindo imagens, carregando estilos, calculando o estilo final para cada elemento da página após aplicar vários estilos, colocando todos os elementos na página e só então dá ao usuário para ver o site.
Gostaria de ver o site de forma rápida e imediata (faça o download apenas do código HTML) e apenas dos elementos que me interessam:
- em uma página eu quero ver apenas o texto
- para outro texto com links
- na terceira, apenas imagens, mas não todas, mas seletivamente uma a uma, carregando-as manualmente
- no quarto eu quero ler além comentários
- no quinto, leia o código do script Java, desativando a exibição de todo o resto.
E, em alguns casos, eu não gostaria de navegar nos sites:
- veja janelas / painéis com publicidade na forma de fotos e animações simples para vídeos de voz completos,
- consulte as janelas "assine nossa newsletter do nosso site",
- veja as janelas "ative as notificações do nosso site" ou, à moda antiga, "faça nossa página inicial",
- veja as janelas "permitem que a geolocalização saiba onde você está, nosso cliente"
- veja as janelas "desculpe, nós usamos cookies neste site",
- transmitir cookies.
Como fazer isso? É claro que você precisa escrever outro navegador e usá-lo!
A princípio, pareceu-me que tudo seria simples. Pegue e escreva um analisador de código HTML. Carregamos as tags, dividimos em pedaços, exibimos o texto fora das tags como texto e, se você encontrar, por exemplo, um href = "
habr.com ", será exibido como um link. "Delov!" Eu pensei e me sentei em Delphi.
Implementando uma seleção de itens para visualizar
A lista de elementos que podem ser ativados para exibição ou desativados aumentou durante o desenvolvimento do navegador.

Aqui apareceu o texto do site em si, e as bordas das tabelas da tabela / camadas div, e separe o texto com "acentos" (negrito, itálico e outras tags de destaque), links e âncoras de favoritos, mídia (fotos, músicas, vídeo), arquivos relacionados "link ...", marcas de comentário "! - ... -", bem como scripts, estilos de estilos, formulários, meta-metadados com a capacidade de exibir seu código. Para cada tipo de elemento, você pode selecionar a cor e a ousadia do texto. Você também pode escolher um tema pronto, que inclua uma certa coloração dos elementos, bem como o estilo do texto.
Implementando configurações gerais
A parte superior da janela do navegador acabou ficando coberta de configurações e começou a se parecer com painéis com os botões do MS Office. Havia sinalizadores, listas suspensas e botões para acessar funções como Favoritos ou Histórico.

Lá você pode, por exemplo, escolher o nome e o tamanho da fonte que deseja visualizar como em um editor de texto. Também foi possível fazer o download de uma fonte PCF de varredura de terceiros (PaintCAD Font) e desenhar uma imagem com essa fonte. Na captura de tela, a fonte sc60micro.pcf, copiada manualmente do navegador do telefone antigo, é carregada. Alguém provavelmente ainda se lembra do navegador wap de siemens de 15 anos atrás:




Implementar configurações de privacidade
Diretamente abaixo das configurações gerais estão as configurações de privacidade:

Usando a caixa de seleção Referer, você pode desativar a transferência do endereço de onde veio para a página da web. Sinalizador de cookie - desative os cookies.
E usando o campo User-Agent, você pode escolher quem fingir ser - um dos navegadores de computador ou celular, ou pode até mesmo google / bing / yandex / mailru-bot. Se você selecionar uma das opções, o texto à direita exibirá o texto do cabeçalho http enviado ao servidor do agente do usuário. Nesse campo, você também pode inserir manualmente seu user agent em vez de escolher uma das opções oferecidas pelo navegador.

Trabalhando com arquivos para download: painel de objetos e painel de arquivos
Se o navegador encontrar, por exemplo, um link para uma imagem, ele gravará um link no formato “Imagem: endereço”. Ao clicar nele - o link é transferido para o painel do objeto.
Dependendo da inclusão da economia total de tráfego ou do tráfego nos downloads, as informações do arquivo são exibidas no campo de informações do objeto.

O usuário decide fazer o download do arquivo ou não (por exemplo, se ele estiver sentado na Internet móvel e sentir pena do tráfego, e o arquivo for grande - então você não poderá baixá-lo). Você pode baixar o arquivo usando o botão de download à direita do campo do objeto.
Se a economia estiver desativada, o arquivo será baixado automaticamente para a pasta de download ao lado do EXE do navegador e:
- aberto no programa por padrão, se for um arquivo seguro (imagem, música, vídeo),
- movido para o campo de arquivo e destacado na janela do Explorer que é aberta se o arquivo for potencialmente perigoso ou desconhecido para o navegador.
Painel de arquivos:

Inclui um campo com o nome do arquivo e dos botões salvos:
- aberturas no programa por padrão,
- abra uma pasta com um arquivo com foco no arquivo,
- Abrindo um arquivo no próprio navegador JustCode,
- abrindo um arquivo no bloco de notas notepad.exe.
Menu principal para tela sensível ao toque
Clicar no ícone do navegador no canto superior esquerdo abre um menu com ícones de 32x32 pixels, que duplica muitas funções da janela principal. Este menu possui itens com uma altura bastante grande, o que facilita muito mais pressioná-los com o dedo do que com o objetivo de pequenos sinalizadores como a codificação UTF-8 ou a opção de selecionar o modo de economia de tráfego.

Trabalhar com o código fonte do site e automação
Se você pressionar Ctrl + E ou selecionar um comando semelhante no menu principal, o código fonte completo do site será colocado na área de informações do objeto.
Lá, na linha "Pesquisar", você pode inserir texto e procurá-lo com os botões com uma lupa (primeira ocorrência, próxima ocorrência, última ocorrência) no código-fonte.

Outros botões coloridos abaixo da caixa de pesquisa permitem (muitos botões JustCode têm dicas de ferramentas que descrevem suas funções):
- exclua tudo acima ou abaixo do texto selecionado / encontrado,
- transforme códigos% xx em caracteres,
- transforme códigos javascript como \ n em caracteres,
- insira hífens antes / depois de cada texto encontrado, semelhante ao digitado na linha "Pesquisar",
- exclua todas as linhas que não contenham texto inserido na linha "Pesquisar"
- verifique todos os restantes na área de linha como links http para arquivos,
- faça o upload do código-fonte do site modificado para o JustCode para visualização,
- e até mesmo abrir o editor de programas (scripts) (Ctrl + F5), que permite "pressionar" automaticamente os botões descritos em uma maneira de comando.
Editor de programas JustCode próprios

Na janela deste editor, por exemplo, é aberto um modelo que leva o código da página do vídeo do YouTube para links individuais para vídeo e áudio.
É claro que existem serviços online que fazem o mesmo. Mas o editor permite que você execute esse script sem usar serviços de terceiros e "assista ao youtube" sem iniciar scripts java da página de vídeo.
Os scripts escritos podem ser salvos em arquivos e esses arquivos podem ser "vinculados" (atribuídos) aos botões de início rápido, para que possam ser iniciados na janela principal do navegador por Alt + 1, Alt + 2 ... Alt + 0 sem abrir a janela do editor de programas.
Trabalhar com formulários
Quando um formulário é encontrado em tags, o navegador exibe o formulário como um link "Formulário":

Quando pressionada, uma janela especial é exibida, exibindo o conteúdo do formulário (o formulário de login para mail.ru é mostrado):

Se você ativar a caixa de seleção "Modo avançado" na parte superior, poderá ver o próprio código do formulário e o botão "Enviar" não enviará a página, mas preparará o URL e (se necessário) os dados do POST para enviá-los e exibi-los nos campos apropriados. E você pode corrigi-los manualmente, se necessário, e depois de clicar em "Enviar e ir", envie os dados especificados para o servidor.

Se você clicar no botão "Criar um programa para enviar dados", será criado um script que define o URL atual e faz com que os dados sejam enviados - ou seja, emulando a entrada de dados em uma página da Web em um formulário e enviando-a.

Ao mesmo tempo, os dados do POST também são indicados no URL, mas são separados por um ponto de interrogação duplo. I.e. único "?" É GET e duplica "??" É um POST.
Um "link" semelhante para enviar os dados inseridos do formulário usando o método GET (com um único "?") Ou o método POST (com um duplo "??") pode ser obtido clicando no botão "Copiar URL e dados do POST para a área de transferência como um link" no editor de formulários .
Exibir arquivos em um navegador
Depois de baixar um arquivo incompreensível, talvez você precise ver "o que há dentro". Portanto, o navegador possui três modos de visualização:
- como código HTML com análise e renderização (F12),
- como texto na codificação Windows / DOS (Shift + F12),
- como uma representação hexadecimal com códigos e texto (Ctrl + F12).
Eles são selecionados no menu ou nos atalhos de teclado acima mencionados com Shift / Ctrl + F12.

Se você selecionar o tema MonoDOS / MonoDOS2 ou carregar uma fonte DOS PCF (e habilitar a caixa de seleção "Codificação DOS" no menu Fonte PCF) ou selecionar a codificação OEM_CHARSET com qualquer fonte, poderá visualizar arquivos de texto antigos com pseudo-gráficos diretamente no navegador.

Usando Ctrl + F12, você pode ver a representação hexadecimal do arquivo e, por exemplo, no cabeçalho para entender o que baixamos ou aprender como ele funciona dentro, por exemplo, de um arquivo exe de um bloco de notas.

Conclusão
Descobriu-se que criar um navegador não é apenas escrever um analisador. Ainda falta muito neste navegador.
Por exemplo, descompactando dados recebidos do servidor. Portanto, por exemplo, o site games.mail.ru se parece com um conjunto de bytes aleatórios, porque o site não está escutando e envia dados compactados, mesmo quando solicitado a enviar apenas dados não compactados nos cabeçalhos http.

Além disso, o navegador não sabe enviar arquivos em formulários, só pode formar dados como "application / x-www-form-urlencoded".
Além disso, você não acessa sites com scripts como o instagram. Somente haverá scripts que devem carregar o conteúdo.

Mas, com ele, você pode ler sites de notícias e participar de fóruns, mesmo em um tablet fraco e em qualquer Windows (95, 98, 2k, XP, Vista, 7, 8, 10, embora sites HTTPS no Windows antigo possam não falhar se algoritmos como SHA2 não são suportados pelo sistema operacional, porque não eram conhecidos no momento de seu desenvolvimento), carregue seletivamente imagens e assista-as imediatamente em seu visualizador de imagens favorito, visualize scripts do site e, às vezes, leia comentários engraçados de seus desenvolvedores, monitore as alterações na estrutura do site (você note imediatamente que algum bloco de publicidade foi adicionado ou bandeira ishny, se todos os dias lendo o mesmo portal de notícias).

(a hifenização ainda não foi entregue).
Download do benchmark de teste
Ele pesa cerca de 500 kilobytes.
Você pode baixar o link
blackstrip.ru/jc.zip