שיפור סינון התוכן במניפסט מגרסה V3

אוליבר דאנק
אוליבר דאנק

במהלך השנה האחרונה, היינו מעורבים באופן פעיל בדיונים עם הספקים שמאחורי מספר תוספים לחסימת תוכן לגבי דרכים לשיפור פלטפורמת התוספים של MV3. על סמך הדיונים האלה, שרבים מהם התקיימו בקבוצת הקהילה של תוספי Web Extensions (WECG) בשיתוף עם דפדפנים אחרים, הצלחנו לספק שיפורים משמעותיים.

עוד קבוצות כללים סטטיות

קבוצות של כללי סינון בדרך כלל מקובצות לרשימות. לדוגמה, רשימה כללית יותר יכולה לכלול כללים שחלים על כל המשתמשים, ואילו רשימה ספציפית יותר עשויה להסתיר תוכן ספציפי למיקום, שרק חלק מהמשתמשים רוצים לחסום. עד לאחרונה, אפשרנו לכל תוסף להציע למשתמשים בחירה של 50 רשימות (או 'מערכי כללים סטטיים') עבור 10 רשימות אלה להפעלה בו-זמנית. בדיונים עם הקהילה, מפתחי תוספים סיפקו ראיות משכנעות לכך שהנתון הזה נמוך מדי לתרחישי שימוש מסוימים. אחרי שבדקנו את הביצועים של ה-API ב-Chrome מתוך מחשבה על הביצועים של הדיונים האלה, אנחנו מאפשרים עכשיו להפעיל עד 50 תכונות בו-זמנית. (יש לשים לב, מדובר בסף גבוה באופן משמעותי מההגבלה של 20 בקשות ב-WECG.) בנוסף, אנחנו מאפשרים שימוש ב-100 קבוצות כללים בסך הכול. המשלוח הזה מתבצע ב-Chrome בגרסה 120, ולכן הגדלת המגבלות נתמכת גם על ידי Firefox וגם על ידי Safari, שכבר סיפקו מידע מוקדם לגבי ההצעה הזו.

עוד כללים דינמיים

רוב הכללים הם "סטטיים" והם נשלחים עם כל עדכון של תוסף. עם זאת, כדי לתמוך בעדכונים תכופים יותר ובכללים שהוגדרו על ידי המשתמש, תוספים יכולים להוסיף כללים באופן דינמי, בלי שהמפתחים שלהם יצטרכו להעלות גרסה חדשה של התוסף אל חנות האינטרנט של Chrome.

כאשר תוסף יכול לשנות בקשות באופן דינמי בדרכים שלא נבדקו במהלך הבדיקה של חנות האינטרנט של Chrome, המשתמשים חשופים לסיכונים של פישינג או גניבת נתונים. לדוגמה, ניתן לעשות שימוש לרעה בכלל הפניה מחדש כדי להחדיר קישורים של שותפים עצמאיים ללא הסכמה.

כתוצאה מכך, אפשרנו לתוספים להוסיף עד 5,000 כללים בלבד, שעודדו שימוש מצומצם בפונקציונליות הזו והקלנו על זיהוי הניצול לרעה.

עם זאת, מפתחים של תוספים כמו AdGuard ו-Adblock Plus ביצעו ניתוח משלהם ושיתפו נתונים. מגבלה גבוהה יותר תאפשר ליצור כללים עדכניים יותר, ומשתמשים עם מספר גדול יותר של רשימות בהתאמה אישית יוכלו לעבור למניפסט מגרסה V3. למעשה, אנשי AdGuard דיווחו שבכל שבוע מתבצעים יותר מ-2,600 שינויים ברשימות הפופולריות, ומתוך חמשת האחוזים של משתמשים שמשתמשים ברשימות סינון מותאמות אישית, אחד מתוך כל ארבעה מהם כולל יחד יותר מ-5,000 כללים דינמיים בכל אחד מהם (מקור). ב-AdGuard ציינו את האתגר בתור אתגר משמעותי בהעברת התוסף שלהם למניפסט מגרסה V3, וקיבלנו משוב דומה גם מחוסמי תוכן אחרים.

הגענו למסקנה שכללי סינון מסוימים, כמו כללים עם פעולה של block או allow, הם בטוחים הרבה יותר ויש פחות סיכויים שינוצלו בהם. הם גם מהווים את הרוב הגדול של כללי הסינון לחסימת מודעות. על סמך המידע הזה, ניסחתי ושיתפתי הצעה בקבוצת הקהילה של תוספי אינטרנט, במטרה להגדיר קבוצת כללים שלדעתנו סיכון נמוך יותר ולאפשר עד 30,000 כללים כאלה. אנחנו עדיין ממקמים את התקרה כדי להימנע מרגרסיות של ביצועים.

ההצעה הזו נתמכה בקבוצת הקהילה של תוספי אינטרנט, כך שיישמנו אותה. החל מגרסה 121 של Chrome, המגבלה הגבוהה יותר של 30,000 כללים חלה על כללי DNR בטוחים. אנחנו מגדירים אותם ככללים עם הפעולה block, allow, allowAllRequests או upgradeScheme.

על סמך הנתונים שמשותפים על ידי AdGuard, המגבלה הגבוהה הזו אמורה להועיל ל-98 עד 99 אחוזים מהכללים. כל שאר הכללים עדיין נתמכים ואפשר להוסיף אותם במסגרת המגבלה הקיימת.

הערך הזה זמין ב-Chrome בתור הקבוע MAX_NUMBER_OF_DYNAMIC_RULES. מגבלת הכללים לכל שאר הכללים של בקשות נטו דינמיות נשארת 5,000.

גודל קבוצת כללים מופחת

בגרסה 118 של Chrome, שינינו את ערך ברירת המחדל של השדה isUrlFilterCaseSensitive ל-false על סמך משוב מהקהילה. השדה הזה קובע אם כלל שמסנן לפי כתובת URL הוא תלוי אותיות רישיות. כמו כן, גילינו שלרוב המפתחים יש ברירת מחדל שונה בתוסף שלהם. לכן היה צורך להגדיר את הערך הזה פעמים רבות. על ידי ביצוע השינוי הזה, המפתחים יכולים להקטין את הגודל באופן משמעותי בקבוצות הכללים שלהם.

מה השלב הבא?

אנחנו מחויבים להמשיך להשקיע ב-declarativeNetRequest API כדי שנוכל לתמוך בתרחישי שימוש רבים ככל האפשר, ומצפים להמשיך לעבוד עם הקהילה. אנו רוצים להודות באופן מיוחד לחברי מועצת ה-WECG על מעורבותם, כולל ל-AdGuard ששיתפו כמות משמעותית מהנתונים שהניעו את הפעולה הזו, ולכל ספקי הדפדפנים שהיו חלק מרכזי בעיצוב של ממשק ה-API הזה.

נמשיך לבחון את המגבלות שקבענו כדי לבצע שינויים לפי הצורך. כדי לתמוך בכך, אנחנו מתכננים לשתף בעתיד הקרוב חלק מהנתונים שאספנו במסגרת העבודה הזו. בנוסף, אנחנו עובדים על הוספת יכולות נוספות כמו היכולת לבצע התאמה לכותרות של תגובות. זוהי בקשה נפוצה שראינו מתוספים למציג של קובצי PDF. בכל המקרים, נמשיך לעדכן את העבודה שלנו ונשתמש בקבוצת הקהילה של תוספי אתרים באופן קבוע כדי לדון ברעיונות ולדון בנושאים שנרצה לבדוק בהמשך.