;(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

Câmara fica a 8 votos de aprovar urgência de projeto das fake news

Urgência do PL das Fake News foi rejeitada - Zeca Ribeiro/Câmara dos Deputados
Urgência do PL das Fake News foi rejeitada Imagem: Zeca Ribeiro/Câmara dos Deputados

Rafael Neves

Do UOL, em Brasília

06/04/2022 19h58Atualizada em 06/04/2022 21h17

A Câmara dos Deputados rejeitou hoje um pedido de urgência para votar o projeto de lei das fake news, que propõe regulações sobre aplicativos e plataformas mantidas pelas big techs.

Na votação do texto, que é criticado especialmente por bolsonaristas, 249 deputados votaram pela urgência, mas eram necessários 257 votos para a aprovação. A rejeição, portanto, foi decidida por uma margem de oito votos. Com a decisão da Câmara, o texto deverá ser votado futuramente, em data ainda não definida.

A proposta, que é de autoria original do senador Alessandro Vieira (PSDB-SE), foi aprovada pelo Senado em 2020. Na Câmara, o relator da matéria ou a ser o deputado Orlando Silva (PCdoB-SP), que apresentou no final de março a versão atualizada da proposta.

O objetivo inicial do projeto, ainda no Senado, era combater a disseminação de fake news e instituir regras de transparência para redes sociais e aplicativos.

Com o tempo, o texto ganhou outras atribuições, como estabelecer uma remuneração para veículos de comunicação pelo conteúdo distribuído pelas plataformas (entenda as principais propostas do projeto).

Divergências

Parte da Câmara, especialmente os parlamentares mais alinhados ao presidente Jair Bolsonaro (PL), 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.