שאלות נפוצות

אם לא מצאתם תשובה לשאלה שלכם כאן, אפשר להיעזר בשאלות הנפוצות על חנות האינטרנט של Chrome, התג [google-chrome-extension] ב-Stack Overflow, בקבוצת Chromium-extensions או ב- עזרה בנושא אחסון.

כללי

מהם תוספים ל-Google Chrome?

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

איך מגדירים את Chrome לפיתוח תוספים?

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

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

אילו טכנולוגיות משמשות לכתיבת תוספים ב-Chrome?

התוספים נכתבים באמצעות אותן טכנולוגיות אינטרנט סטנדרטיות שבהן מפתחים משתמשים כדי ליצור אתרים. HTML משמש כשפת סימון של תוכן, CSS משמש לעיצוב ו-JavaScript עבור כתיבת סקריפט. Chrome תומך ב-HTML5 וב-CSS3, ולכן מפתחים יכולים להשתמש בגרסה האחרונה של האינטרנט הפתוח טכנולוגיות כמו בד ציור ואנימציות ב-CSS בתוספים שלהם. לתוספים יש גישה גם אל מספר ממשקי API של JavaScript שעוזרים לבצע פונקציות כמו קידוד JSON ואינטראקציה עם בדפדפן.

האם תוספים מאוחזרים מהאינטרנט בכל פעם שהדפדפן נטען?

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

איך אפשר לקבוע איזו גרסה של Chrome פרוסה באיזה ערוץ?

כדי לקבוע איזו גרסה של Chrome זמינה כעת בכל אחת מהפלטפורמות השונות: יש להיכנס לכתובת omahaproxy.appspot.com. באתר תראו נתונים בפורמט שדומה לזה:

cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####

כל שורה מייצגת מידע על שילוב שונה של פלטפורמה וערוצים. הרשימה הפלטפורמות הן cf (Google Chrome Frame), linux, mac, win ו-cros (Google ChromeOS). הערוצים הרשומים הם canary, dev, beta ו-stable. שני המספרים בארבעת החלקים אחרי שמייצג את הגרסאות הנוכחיות והקודמות של Chrome שנפרסו באותו ערוץ משולב. שאר המידע הוא מטא-נתונים לגבי המועד שבו פריטי התוכן נדחפו לראשונה, כמו וגם את מספרי הגרסאות המשויכים לכל build.

יכולות

האם תוספים יכולים לשלוח בקשות Ajax חוצות-דומיינים?

כן. תוספים יכולים לשלוח בקשות בין דומיינים. מידע נוסף זמין בדף הזה.

האם תוספים יכולים להשתמש בשירותי אינטרנט של צד שלישי?

כן. תוספים יכולים לשלוח בקשות Ajax חוצות-דומיינים, כך שהם יכולים לקרוא לממשקי API מרוחקים ישירות. קל במיוחד להשתמש בממשקי API שמספקים נתונים בפורמט JSON.

האם תוספים יכולים לקודד/לפענח נתוני JSON?

כן, מכיוון ש-V8 (מנוע ה-JavaScript של Chrome) תומך ב-JSON.stringify וב-JSON.parse באופן טבעי, יכולים להשתמש בפונקציות האלה בתוספים כפי שמתואר כאן, מבלי לכלול ספריות JSON בקוד שלכם.

האם תוספים יכולים לאחסן נתונים באופן מקומי?

כן, תוספים יכולים להשתמש ב-localStorage כדי לאחסן נתוני מחרוזות באופן סופי. באמצעות הכלים המובנים של Chrome בפונקציות JSON אפשר לאחסן מבני נתונים מורכבים ב-localStorage. לתוספים שצריכים להריץ שאילתות SQL על הנתונים המאוחסנים שלהן, Chrome מיישם מסדי נתונים של SQL בצד הלקוח, .

האם תוספים יכולים להשתמש ב-OAuth?

כן, יש תוספים שמשתמשים ב-OAuth כדי לגשת לממשקי API של נתונים מרחוק. רוב המפתחים מוצאים את האפשרות הזו להשתמש בספריית OAuth של JavaScript כדי לפשט את תהליך החתימה על OAuth בקשות.

האם תוספים יכולים ליצור ממשק משתמש מחוץ לדף האינטרנט שעבר עיבוד?

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

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

האם תוספים יכולים לזהות קליקים על כרטיסיות ולחצני ניווט ב-Chrome?

לא. התוספים מוגבלים להאזנה לאירועים שמתוארים במסמכי התיעוד של ה-API.

האם שני תוספים יכולים לתקשר זה עם זה?

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

האם תוספים יכולים להשתמש ב-Google Analytics?

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

האם תוספים יכולים לשנות כתובות URL מסוג chrome:// ?

לא. ממשקי ה-API של התוספים תוכננו למזער בעיות תאימות לאחור שעלולות להתעורר כשגרסאות חדשות של הדפדפן נדחפות. המשמעות של אישור סקריפטים של תוכן בכתובות URL של chrome:// היא שהמפתחים יתחילו להסתמך על ה-DOM, ה-CSS וה-JavaScript של הדפים האלה כדי להישאר ללא שינוי. במקרה הטוב, לא ניתן היה לעדכן את הדפים האלה במהירות שבה הם מתעדכנים באותו רגע. במקרה הגרוע ביותר, ייתכן שעדכון באחד מהדפים האלה יגרום להארכה של דבר, שגורם לחלקים מרכזיים בדפדפן להפסיק לפעול עבור המשתמשים בתוסף הזה.

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

האם תוספים יכולים לפתוח חלונות קופצים של פעולות בדפדפן או בדף ללא אינטראקציה של המשתמש?

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

האם תוספים יכולים להשאיר חלונות קופצים פתוחים אחרי שהמשתמש לוחץ עליהם הלאה?

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

האם אפשר לקבל התראה על התקנה או הסרה של תוספים?

אפשר להאזין לאירוע runtime.onInstalled כדי לקבל התראה כשהתוסף: מותקנים או מעודכנים, או כש-Chrome עצמו מעודכן. אין אירוע מתאים למקרים שבהם התוסף יוסר.

פיתוח

איך אוכל לבנות ממשק משתמש לתוסף שלי?

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

כמה נתונים אפשר לאחסן ב-localStorage?

התוספים יכולים לאחסן עד 5MB של נתונים ב-localStorage.

איך יוצרים תפריט אפשרויות לאפליקציה?

תוכלו לאפשר למשתמשים להגדיר אפשרויות לתוסף שלכם על ידי יצירת דף אפשרויות, דף HTML פשוט שייטען כאשר משתמש ילחץ על הלחצן "options" עבור התוסף. הדף הזה יכול לקרוא ולכתוב הגדרות ב-localStorage, או אפילו לשלוח אפשרויות לשרת אינטרנט כדי הם יכולים להופיע בכל הדפדפנים.

אילו כלים לניפוי באגים זמינים למפתחי תוספים?

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

למה התאמות של תווים כלליים לחיפוש לא פועלות בדומיינים ברמה העליונה (TLD)?

לא ניתן להשתמש בדפוסי התאמה של תווים כלליים לחיפוש כמו http://google.*/* כדי להתאים לדומיינים ברמה העליונה (כמו http://google.es וגם http://google.fr), בגלל המורכבות של הגבלה בפועל של הגבלה כזו להתאים רק לדומיינים הרצויים.

עבור הדוגמה של http://google.*/*, הדומיינים של Google יותאמו, אבל כך גם http://google.someotherdomain.com. בנוסף, אתרים רבים לא הבעלים של כל הדומיינים ברמה העליונה עבור דומיין. לדוגמה, נניח שאתם רוצים להשתמש בפונקציה http://example.*/* כדי להתאים ל-http://example.com ו-http://example.es, אבל http://example.net הוא אתר עוין. אם יש באג בתוסף, האתר העוין עלול לתקוף את התוסף שלך כדי לקבל גישה הרשאות מורחבות.

עליך לציין באופן מפורש את הדומיינים ברמה העליונה שבהם ברצונך להפעיל את התוסף.

למה ממשק ה-API לניהול לא מפעיל אירועים כשמתקינים או מסירים את התוסף שלי?

Management API נועד לעזור ליצור תוספים להחלפת דף בכרטיסייה חדשה. זה לא היה שמטרתו להפעיל אירועי התקנה/הסרה של התוסף הנוכחי.

איך תוסף יכול לקבוע אם הוא פועל בפעם הראשונה?

תוכלו להאזין לאירוע runtime.onInstalled. אפשר לעיין ברשומה הזו של שאלות נפוצות.

תכונות ובאגים

אני חושב שמצאתי באג! איך אוכל לוודא שהבעיה נפתרה?

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

השלבים שצריך לבצע כדי לוודא שהם:

  1. צור תוסף בדיקה מינימלי שממחיש את הבעיה שעליה ברצונך לדווח. הזה התוסף צריך לכלול כמה שפחות קוד כדי להדגים את הבאג - באופן כללי זה צריך להיות 100 שורות קוד או פחות. הרבה פעמים מפתחים מגלים שהם לא מצליחים לשחזר את הבעיות שלהם כך, וזהו סימן טוב לכך שהבאג נמצא בקוד שלו.
  2. לחפש בכלי המעקב אחר בעיות בכתובת http://crbug.com אם מישהו דיווח על בעיה דומה בעיה. רוב הבעיות שקשורות לתוספים מדווחות בקטע component=Platform>Extensions, לכן כדי לחפש באג בתוסף שקשור לפונקציה chrome.tabs.executeScript (לדוגמה), חיפוש של 'component=Platform>Extensions Type=Bug chrome.tabs.executeScript', שיספק את רשימת התוצאות הזו.
  3. אם מצאת באג שמתאר את הבעיה שבה נתקלת, אפשר ללחוץ על סמל הכוכב כדי לקבל הודעה על הבאג מקבל עדכון. לא להגיב לבאג ולהגיד "גם אני" או לשאול "מתי זה יהיה תוקנה?"; עדכונים כאלה יכולים לגרום לשליחת מאות אימיילים. הוסיפו תגובה רק אם יש לכם מידע נוסף (כמו מקרה בדיקה טוב יותר או הצעה לתיקון) שעשוי לעזור.
  4. אם לא מצאת באג כלשהו שאפשר לסמן בכוכב, ניתן להגיש דוח בעיה חדש בכתובת http://crbug.com/new. חשוב להיות ברורים ככל האפשר במילוי הטופס: יש לבחור כותרת תיאורית, להסביר את לשחזור הבאג, ולתאר את ההתנהגות הצפויה ואת ההתנהגות בפועל. צירוף הבדיקה דוגמה לדוח ולהוסיף צילומי מסך, אם רלוונטי. ככל שהדוח שלכם קל יותר, אחרים כדי לשחזר את הבעיה שלך, כך גובר הסיכוי שהבאג יתוקן במהירות.
  5. ממתינים עד שהבאג יתעדכן. רוב הבאגים החדשים ממוינים תוך שבוע, אבל יכול להיות לפעמים נדרש זמן רב יותר לעדכון. אין להשיב לבאג כדי לשאול מתי הבעיה תהיה תוקן. אם הבאג לא יתוקן אחרי שבועיים, צריך לפרסם הודעה קבוצת דיון עם קישור לבאג שלכם.
  6. אם במקור דיווחתם על באג בקבוצת הדיון והופניתם לרשומה הזו של השאלות הנפוצות, להשיב לשרשור המקורי עם קישור לבאג שסימנתם בכוכב או שדיווחתם עליו. באמצעות לאחרים שנתקלו באותה בעיה בקלות רבה יותר למצוא את הבאג הנכון.

יש לי בקשה להוספת תכונה! איך אוכל לדווח על כך?

אם מזהים תכונה (במיוחד אם היא קשורה ל-API ניסיוני) שניתן להוסיף אל לשפר את חוויית פיתוח התוסף, לוודא שהגשת בקשה מתאימה בבעיה מכשיר מעקב.

השלבים שצריך לבצע כדי לוודא שהם:

  1. לחפש בכלי המעקב אחר בעיות בכתובת http://crbug.com אם מישהו ביקש לפיצ'ר דומה. רוב הבקשות שקשורות לתוספים מוגשות במסגרת component=Platform>Extensions, לכן צריך לחפש בקשה לתכונה של תוסף שקשורה במקשי קיצור (לדוגמה), "component=Platform>Extensions Type=Feature shortcuts", שיספק לכם את הרשימה הזו של תוצאות.
  2. אם מצאת כרטיס שתואם לבקשה שלך, אפשר ללחוץ על סמל הכוכב כדי לקבל הודעה על הבאג מקבל עדכון. לא להגיב לבאג ולהגיד "גם אני" או לשאול "מתי זה יהיה implemented?"; עדכונים כאלה יכולים לגרום לשליחת מאות אימיילים.
  3. אם לא מצאת כרטיס מתאים בכוכב, אפשר להגיש בקשה חדשה בכתובת http://crbug.com/new. להיות מפורט ככל האפשר בזמן מילוי הטופס: יש לבחור כותרת תיאורית ולהסביר בדיוק באיזו תכונה אתם רוצים להשתמש ואיך אתם מתכננים להשתמש בה.
  4. ממתינים לעדכון של הפנייה. רוב הבקשות החדשות ממוינות תוך שבוע, אבל יכול להיות לפעמים העדכון נמשך זמן רב יותר. אין להשיב לכרטיס כדי לשאול מתי התכונה תהיה נוסף. אם הכרטיס שלך לא שונה לאחר שבועיים, שלח הודעה אל קבוצת דיון עם קישור לבקשה שלכם.
  5. אם במקור דיווחת על הבקשה בקבוצת הדיון והופנית לשאלות הנפוצות האלה רשומה, תשובה לשרשור המקורי עם קישור לכרטיס שסימנת בכוכב או פתחת. הפעולה הזו תגרור כדי שאנשים אחרים שיש להם בקשה זהה יוכלו למצוא את הכרטיס הנכון.