;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Parabéns a quem não deu urgência ao projeto das fake news, diz Bolsonaro

Hanrrikson de Andrade

Do UOL, em Brasília

07/04/2022 15h41Atualizada em 07/04/2022 16h16

O presidente Jair Bolsonaro (PL) parabenizou hoje os deputados que rejeitaram o regime de urgência na tramitação do projeto de lei que pretende dificultar a produção e disseminação de fake news. O requerimento que buscava dar prioridade à proposição foi derrotado ontem (6), por insuficiência de votos.

"Parabenizo os parlamentares que ontem não deram urgência ao projeto das fake news. Quem abre mão de um pouco da sua liberdade para ter segurança acaba não tendo nem liberdade nem segurança", disse Bolsonaro em discurso durante solenidade no Banco do Brasil, em Brasília.

"Parabéns aos parlamentares. Por nove votos não ou a urgência", completou o governante, equivocando-se em relação à margem de votos que barrou o requerimento de urgência. O placar foi de 249 parlamentares —eram necessários 257— e 207, contrários. A diferença, portanto, foi de oito votos.

Com a decisão da Câmara, o texto deverá ser votado futuramente, em data ainda não definida.

O chefe do Executivo federal também mencionou o período em que exerceu mandato na Câmara dos Deputados —ele foi congressista por 28 anos antes de se eleger presidente da República.

"De acordo com o partido do caboclo, eu já votava contra. Eu nem lia o projeto. Não tem o que discutir. Não pode vir coisa boa de quem defende o comunismo. E sabemos como isso é em alguns países mundo afora", comentou ele, após citar o fato de que o relator do PL das fake news é do PC do B, o deputado Orlando Silva (SP).

Divergências

Parte da Câmara, especialmente os parlamentares bolsonaristas, têm criticado o projeto, com o argumento de que ele seria um instrumento para tolher a liberdade das plataformas e dos usuários.

Na sessão que rejeitou a urgência, o deputado Marcel Van Hattem (Novo-RS) afirmou que a proposta pretende criar uma estrutura "soviética" para analisar os conteúdos nas redes.

"Para evitar que as notícias falsas sejam disseminadas, as vítimas serão as informações verdadeiras", criticou.

Parlamentares da oposição, por sua vez, consideram que a internet não pode ser "terra de ninguém", e que, por esse motivo, precisa de regulação.

Para Orlando Silva, relator da proposta, o Congresso precisa tomar uma decisão sobre o tema, para evitar que a regulação fique a cargo do STF (Supremo Tribunal Federal). "Nós não podemos ser omissos e não fixar parâmetros para o funcionamento na internet. Porque, se nós não fizermos isso, o Poder Judiciário fará, e não adianta chorar nem lamentar depois", argumentou.

Projeto é discutido há dois anos

O PL 2630/2020 é discutido desde 2020. O objetivo inicial do projeto era reduzir a disseminação de fake news e instituir regras de transparência para redes sociais e serviços de mensagens privadas.

Entre outras iniciativas, a proposição busca criar mecanismos de regulação de aplicativos de mensagens (como o Telegram, que tem sido apontado como um terreno fértil para compartilhamento de fake news) e plataformas mantidas pelas big techs.

Com o tempo, o projeto foi ganhando novas competências, como definir a remuneração de conteúdos jornalísticos por grandes plataformas e a extensão da imunidade parlamentar para as redes sociais.

Uma primeira versão do texto foi aprovada no Senado em 2020 e, desde então, está na Câmara dos Deputados. Após apreciação em plenário, o projeto deve ser novamente analisado pelos senadores.