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

Esse conteúdo é antigo

Campanha de Doria diz que WhatsApp foi hackeado e registra ocorrência

Aliados de Eduardo Leite acusam campanha de Doria de fraude na filiação de 92 prefeitos para votação nas prévias do partido - Wilson Dias/Agência Brasil
Aliados de Eduardo Leite acusam campanha de Doria de fraude na filiação de 92 prefeitos para votação nas prévias do partido Imagem: Wilson Dias/Agência Brasil

Do UOL, em São Paulo

27/10/2021 19h17Atualizada em 27/10/2021 20h28

A campanha do governador de São Paulo João Doria (PSDB) para as prévias presidenciais do partido disse hoje que o grupo de WhatsApp da equipe foi hackeado, e registrou um boletim de ocorrência pedindo a investigação do caso.

Mais cedo, a coluna do jornalista Guilherme Amado, do portal Metrópoles, publicou que mensagens de um grupo interno mostram que a campanha teme sofrer uma derrota em relação ao caso dos prefeitos. Denúncias feitas por aliados do governador do Rio Grande do Sul, Eduardo Leite, dizem que houve fraude na filiação de 92 prefeitos ao PSDB paulista em meio ao processo interno.

O presidente nacional do partido, Bruno Araújo, dará a palavra final sobre o caso amanhã, e decidirá se esses prefeitos estão aptos a votar nas prévias.

A equipe de Doria disse ter sido "surpreendida" pelos prints das conversas. "Embora o teor das conversas divulgadas ilegalmente nada tenham de comprometedor, lamenta-se que, no ambiente, online episódios como esses sejam recorrentes e devem ser combatidos em sua origem", disse a campanha em nota.

O coordenador-geral da campanha, Wilson Pedroso, disse lamentar que as prévias tenham chegado a um "clima tão belicoso".

Mais cedo, Doria se manifestou pela primeira vez sobre as acusações. Ele negou qualquer irregularidade e disse que a eleição será vencida no voto.

Antes, o presidente do partido classificou as denúncias como "sensíveis". "Não tenho como me posicionar, já que estou numa posição de julgador. Mas o assunto é sensível e merece um grau de atenção relevante", afirmou o dirigente.

*Com Estadão Conteúdo