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

Bolsonaro assina lei, e Brasil punirá violação de dado só em agosto de 2021

Estúdio Rebimboca/UOL
Imagem: Estúdio Rebimboca/UOL

Helton Simões Gomes

De Tilt

12/06/2020 17h28

O Brasil só ará a punir empresas é órgãos que descumprirem a Lei Geral de Proteção de Dados —que determina direitos e deveres sobre o tratamento de dados dos brasileiros— a partir de agosto de 2021.

O presidente Jair Bolsonaro sancionou nesta sexta-feira (12) a lei nº 14.010, que muda procedimentos jurídicos de Direito Privado durante a pandemia do coronavírus. Um dos seus efeitos foi determinar que as sanções da LGPD sejam aplicadas mais de três meses após a lei começar a valer —data prevista, por enquanto, para maio de 2021. Mas isso ainda pode mudar.

O que a lei nº 14.010 faz:

  • Flexibiliza práticas, como as assembleias gerais de empresas e organizações sociais que poderão ser feitas por meios eletrônicos até 30 de outubro;
  • Suspende a aplicação de algumas normas: até a mesma data, os consumidores não poderão desistir de delivery de produtos perecíveis ou de consumo imediato, conforme diz o Código de Defesa do Consumidor;
  • Tira a eficácia de outras, como o de algumas infrações contra a ordem econômica;
  • Posterga a entrada em vigor de dispositivos de algumas leis.

Este último ponto é o caso da LGPD. Na prática, Bolsonaro adiou os artigos desta lei sobre as penalidades a empresas, órgãos públicos e outras entidades que cometerem infrações sobre dados pessoais.

Essas sanções istrativas podem ser:

  • Advertência;
  • Multa simples, de até 2% do faturamento da empresa, limitada a R$ 50 milhões;
  • Multa diária;
  • Bloqueio no o aos dados a que se referem a infração ou sua exclusão total;
  • Suspensão parcial ou integral do banco de dados em que a violação ocorreu;
  • Suspensão temporária por seis meses a proibição total das atividades de processamento de dados.

Quando a LGPD entra em vigor?

Ainda que a lei sancionada hoje tenha fixado quando as punições previstas na LGPD poderão ser aplicadas, não está claro quando é que a lei em si ará a valer.

A lei publicada hoje contém vetos importantes do presidente. O principal deles diz respeito à determinação do Senado para que a LGPD entrasse em vigor já em agosto de 2020.

Esta data já constava no texto original, mas a decisão dos senadores foi considerada uma antecipação de sua vigência. Isso porque Bolsonaro editou a Medida Provisória 959 em abril deste ano para que os efeitos da lei entrassem em ação apenas em maio de 2021.

Ou seja, na prática, o dispositivo do Senado apenas reforçava o que a lei já dizia, mas que foi mudado pela MP. Com o veto do presidente, volta a valer o conteúdo da MP.

Mas nem isso é garantia de que o ime tenha chegado ao fim. O Congresso Nacional ainda tem de votar a MP 959. Se isso não for feito até 29 de agosto, quando ela caduca, ou se os parlamentares derrubarem seu conteúdo, voltam a valer as regras anteriores.

Processo enlouquecedor

Até especialistas acostumados com as idas e vindas do mundo legislativo consideram que o trâmite foi "confuso". "Esse processo é enlouquecedor", diz o professor Danilo Doneda, membro do Instituto de Direito Público e membro já nomeado pela Câmara para o futuro Conselho Nacional de Proteção de Dados.

Para Felipe Palhares, advogado especialista em proteção de dados, "postergar somente as sanções uma medida pouco eficaz". Ele lembra que o órgão responsável pela aplicação destas medidas istrativas será a Autoridade Nacional de Proteção de Dados (ANPD). O órgão está previsto na LGPD mas que carece de um decreto do Poder Executivo para ser estruturado. Isso ainda não aconteceu.

Mesmo que seja estruturada nos próximos meses, é difícil imaginar que a ANPD conseguiria, até agosto de 2021, estabelecer seu regimento interno, criar o regulamento próprio sobre as sanções, investigar potenciais infrações, garantir a ampla defesa do infrator e só enfim conseguir aplicar as sanções prescritas no art. 52 da LGPD. Sem contar os diversos outros pontos cruciais da Lei que demandam regulamentação
Felipe Palhares, advogado especialista em proteção de dados

Ainda que as sanções demorem a surgir devido ao atraso na consolidação da ANPD, Palhares acredita que outros órgãos poderão usar a LGPD para embasar procedimentos assim que a lei ar a valer.

"Assim que a LGPD entrar em vigor, é esperado que surjam ações questionando violações à Lei ou mesmo autuações de outros órgãos reguladores como o Ministério Público ou o Procon. Essas ações e autuações não são obstadas pela prorrogação das penalidades istrativas", diz o advogado.

Isso, porém, dependerá dos próximos os dados pelo Congresso.