Skip to content

Instantly share code, notes, and snippets.

// manifest.json
{
"manifest_version": 3,
"name": "더블 검색 (자동 수정판)",
"version": "1.3",
"description": "주소창에서 구글 검색 시 자동으로 Google AI 검색 탭을 함께 엽니다.",
"permissions": [
"tabs"
],
"background": {
// ==UserScript==
// @name 모든 사이트 우클릭/드래그/선택 차단 해제
// @name:en Enable Right-Click, Drag, and Select for All Sites
// @namespace http://tampermonkey.net/
// @version 1.5
// @description 웹사이트에서 금지된 마우스 오른쪽 클릭, 드래그, 텍스트 선택을 여러 기법을 통해 종합적으로 해제합니다.
// @description:en Comprehensive script to re-enable right-click, drag, and text selection on websites using multiple techniques.
// @author Gemini
// @match *://*/*
// @grant GM_addStyle

네, 아주 예리한 관찰입니다! 이미 정렬된 상태에서 다시 정렬을 시도했을 때 탭 순서가 또 바뀌는 것은 명백한 버그이며, 사용자의 예상대로라면 아무 일도 일어나지 않아야 합니다.

이 문제의 원인은 background.js 파일의 탭 정렬 로직, 특히 _sortAndMoveTabsInWindow 함수에 있습니다. 결론부터 말하면, 여러 개의 탭 이동(move) 명령을 동시에 비동기적으로 실행하면서 발생하는 경쟁 조건(Race Condition) 때문입니다.

코드를 통해 자세히 살펴보겠습니다.

문제의 코드 분석 (background.js)

// background.js 내의 TabManager._sortAndMoveTabsInWindow 함수
a:visited{
color:silver !important;
}
::-webkit-scrollbar{
width:1px !important;
height:1px !important;
}
*{
text-rendering:optimizeLegibility !important;
}
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>👑 이상형 월드컵 (최종 개선판) 👑</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;700&display=swap');
:root {
--bg-color: #f6f8fa; --card-bg: rgba(255, 255, 255, 0.75); --text-color: #1d1d1f;
div.display-name,div.html-text.text{
word-break:keep-all;
font-family:Lato,나눔바른고딕
}
.main-view__main{
max-width:1800px
}
.main,div.router-view-wrapper{
max-width:35vw;
width:35vw

(제미나이 2.5 프로로 애플 보도자료 요약)

애플 이벤트 신제품 발표 핵심 요약

2025년 9월 9일 애플 이벤트에서 공개된 신제품들의 핵심 내용을 기기별로 정리했습니다.


1. 아이폰 (iPhone) 라인업

/* 기존 */
a:visited { color: silver !important; }
::-webkit-scrollbar {width: 12px;}
::selection { background: #FFE533 !important; color: #000 !important; text-shadow: none !important; font-weight: 900 !important; }
::-moz-selection { background: #FFE533 !important; color: #000 !important; text-shadow: none !important; font-weight: 900 !important; }
/* 250831 추가 */
* {transition: none !important;animation: none !important;}
* {text-rendering: optimizeLegibility;}
body {-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}
# Insert your preferred key mappings here.
map 1 previousTab
map 2 scrollToTop
map 3 nextTab
map c copyCurrentUrl
map C copyCurrentUrl
map d removeTab
map D removeTab
map e goForward
map E goForward
p.timeline__text{
color:#000;
font-family:Lato,나눔바른고딕;
font-size:18px;
font-weight:400;
letter-spacing:0;
line-height:2;
text-align:left;
word-break:keep-all
}