aboutsummaryrefslogtreecommitdiff
path: root/files/he/mozilla/add-ons/webextensions/manifest.json/permissions/index.html
blob: b5ad7321b460dab29827ca345fce452547d0629d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
---
title: הרשאות
slug: Mozilla/Add-ons/WebExtensions/manifest.json/permissions
tags:
  - manifest.json
  - הפניה
  - הרחבות
  - הרחבות רשת
  - הרשאות
  - תוספים
translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/permissions
original_slug: Mozilla/Add-ons/WebExtensions/manifest.json/הרשאות
---
<p>{{AddonSidebar}}</p>

<table class="fullwidth-table standard-table">
 <tbody>
  <tr>
   <th scope="row" style="width: 30%;">טיפוס</th>
   <td><code>Array</code></td>
  </tr>
  <tr>
   <th scope="row">חובה</th>
   <td>לא</td>
  </tr>
  <tr>
   <th scope="row">דוגמה</th>
   <td>
    <pre class="brush: json; no-line-numbers">
"permissions": [
  "*://developer.mozilla.org/*",
  "webRequest"
]</pre>
   </td>
  </tr>
 </tbody>
</table>

<p>השתמשו במפתח <code>permissions</code> לבקש כוחות מיוחדים עבור ההרחבה שלכם. מפתח זה הינו מערך של מחרוזות, וכל אחת ממחרוזות אלו היא בקשת הרשאה.</p>

<p>אם תבקשו הרשאות באמצעות מפתח זה, אזי הדפדפן עשוי  לדווח למשתמש/ת בעת ההתקנה שההרבה מבקשת פריבילגיות מסויימות, ולבקש ממנו/ה לאשר כי  ישמח/תשמח להעניק פריבילגיות אלו. הדפדפן עשוי גם להתיר למשתמש/ץ לבדוק פריבילגיות ההרחבה אחרי ההתקנה. כשם שהבקשה להעניק פריבילגיות עשויה להשפיע על נכונות המשתמש/ת להתקין את ההרחבה, בקשת פריבילגיות שווה הפעלה זהירה של שיקול דעת.  לדוגמה, אם תרצו להימנע מלבקש הרשאות לא נחוצות  ותרצו לספק מידע עודות הסיבה לבקשת הרשאות בתיאור המוצר של ההרחבה שלכם. מידע נוסף על העניינים שיש לקחת בחשבון תוכלו למצוא במאמר  <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Request_the_right_permissions">Request the right permissions</a>.</p>

<p>למידע נוסף כיצד לבחון ולצפות בבקשת הרשאות ראו <a href="https://extensionworkshop.com/documentation/develop/test-permission-requests/">Test permission requests</a>  באתר Extension Workshop site.</p>

<p>המפתח יכול להכיל שלושה סוגי הרשאות:</p>

<ul>
 <li>הרשאות מארח</li>
 <li>הרשאות ממשק פיתוח יישומים</li>
 <li>הרשאות לשונית פעילה</li>
</ul>

<h2 id="הרשאות_מארח">הרשאות מארח</h2>

<p>הרשאות מארח מפורטות ב- <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">match patterns</a>, וכל תבנית מזהה קבוצה של כתובות  URLs עבורן ההרחבה מבקשת פריבילגיות נוספות. לדוגמה, בקשת מארח יכולה להיות  <code>"*://developer.mozilla.org/*"</code>.</p>

<p>פריבילגיות נוספות כוללות:</p>

<ul>
 <li><a href="/en-US/docs/Web/API/XMLHttpRequest">גישת XMLHttpRequest</a> ו- <a href="/en-US/docs/Web/API/Fetch_API">fetch</a> למקורות ללא  מגבלות בין מקורות (אפילו עבור בקשות שנעשו מתוך תסריטי תוכן)</li>
 <li>היכולת להחדיר תסריטים על ידי תכנות (באמצעות <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript">tabs.executeScript</a>) לתוך דפים המוגשים מתמקורות אלו.</li>
 <li>היכולת לקבל אירועים מתוך ממשקי הפיתוח של  <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a> עבור מארחים אלה</li>
 <li>היכולת לקבל עוגיות עבור אותו מארח באמצעות ממשק הפיתוח של  <a href="/en-US/Add-ons/WebExtensions/API/cookies">cookies</a> , כל עוד גם הרשאות ממשק הפיתוח "cookies" כלולות.</li>
 <li>עקיפת ההגנות מפני  מעקב אם המארח הוא שם מתחם מלא בלי ג'וקרים . לא עובד עם <code>&lt;all_urls&gt;</code>.</li>
</ul>

<p>בפירפוקס, מגירסה 56 ואילך, הרחבות מקבלות אוטומטית הרשאות מארח  עבור המקור של עצמן, שהוא בצורה:</p>

<pre><code>moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/</code></pre>

<p>כש-  <code>60a20a9b-1ad4-af49-9b6c-c64c98c37920</code> הוא המזהה הפנימי של ההרחבה. ההרחבה יכולה לקבל את ה- URL תכנותית על ידי קריאה ל- <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extension/getURL">extension.getURL()</a>:</p>

<pre class="brush: js;">browser.extension.getURL("");
// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
</pre>

<h2 id="הרשאות_ממשק_פיתוח_יישומים">הרשאות ממשק פיתוח יישומים</h2>

<p>הרשאות ממשק פיתוח היישומים מפורטות כמילות מפתח, וכל מילת מפתח מהווה שם של  <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">WebExtension API</a> שההרחבה מעוניינת להשתמש בו.</p>

<p>כעת זמינות מילות המפתח הבאות:</p>

<ul>
 <li><code>activeTab</code></li>
 <li><code>alarms</code></li>
 <li><code>background</code></li>
 <li><code>bookmarks</code></li>
 <li><code>browserSettings</code></li>
 <li><code>browsingData</code></li>
 <li><code>clipboardRead</code></li>
 <li><code>clipboardWrite</code></li>
 <li><code>contentSettings</code></li>
 <li><code>contextMenus</code></li>
 <li><code>contextualIdentities</code></li>
 <li><code>cookies</code></li>
 <li><code>debugger</code></li>
 <li><code>dns</code></li>
 <li><code>downloads</code></li>
 <li><code>downloads.open</code></li>
 <li><code>find</code></li>
 <li><code>geolocation</code></li>
 <li><code>history</code></li>
 <li><code>identity</code></li>
 <li><code>idle</code></li>
 <li><code>management</code></li>
 <li><code>menus</code></li>
 <li><code>menus.overrideContext</code></li>
 <li><code>nativeMessaging</code></li>
 <li><code>notifications</code></li>
 <li><code>pageCapture</code></li>
 <li><code>pkcs11</code></li>
 <li><code>privacy</code></li>
 <li><code>proxy</code></li>
 <li><code>search</code></li>
 <li><code>sessions</code></li>
 <li><code>storage</code></li>
 <li><code>tabHide</code></li>
 <li><code>tabs</code></li>
 <li><code>theme</code></li>
 <li><code>topSites</code></li>
 <li><code>unlimitedStorage</code></li>
 <li><code>webNavigation</code></li>
 <li><code>webRequest</code></li>
 <li><code>webRequestBlocking</code></li>
</ul>

<p>ברוב המקרים ההרשאה רק מעניקה גישה לממשק פיתוח היישומים, עם יוצאי הדופן הבאים:</p>

<ul>
 <li><code>tabs</code> מאפשר לך גישה ל <a href="/en-US/Add-ons/WebExtensions/API/tabs">חלקים בעלי הפריבילגיות של ממשק ה-t<code>abs </code> </a>:<code>Tab.url</code>, <code>Tab.title</code>, ו- <code>Tab.faviconUrl</code>. בפיירפוקס, יש צורך ב- <code>tabs</code> אם ברצונך לכלול גם  <code>url</code> בפרמטר <code>queryInfo</code>  ל-<code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query">tabs.query()</a></code>. בכל יתר ממשק הפחתוח של  <code>tabs</code> ניתן להשתמש בלי לבקש כל הרשאה.</li>
 <li><code>webRequestBlocking</code> מאפשר לך להשתמש גם בארגומנט "blocking", כך שיהיה ניתן  <a href="/en-US/Add-ons/WebExtensions/API/WebRequest">לשנות ולבטל הרשאות</a>.</li>
 <li><code>downloads.open</code> מאפשר לך להשתמש ב- {{WebExtAPIRef("downloads.open()")}} API.</li>
 <li><code>tabHide</code> מאפשר לך להשתמש ב- {{WebExtAPIRef("tabs.hide()")}} API.</li>
</ul>

<h2 id="הרשאת_activeTab">הרשאת activeTab</h2>

<p>הרשאה זו מצויינת כ- <code>"activeTab"</code>. אם להרחבה יש הרשאה זו , אזי בעת תקשורת בין משתמש/ת להרחבה, מוענקות להרחבה פריבילגיות  נוספות ללשונית הפעילה בלבד.</p>

<p>"תקשורת עם המשתמש" כוללת:</p>

<ul>
 <li>כאשר המשתמש/ת מקיש.ה על פעולת הדפדפן או פעולת הדף של ההרחבה</li>
 <li>כאשר המשתמש/ת בוחר'ת את פריט תפריט ההקשר שלה.</li>
 <li>the user activates a keyboard shortcut defined by the extension</li>
</ul>

<p>הפריבילגיות הנוספות הן:</p>

<ul>
 <li>היכולת להחדיר JavaScript או CSS באמצעות תכנות לתוך הלשונית באמצעות,  <code><a href="/en-US/Add-ons/WebExtensions/API/tabs/executeScript">browser.tabs.executeScript</a></code> ו-<code><a href="/en-US/Add-ons/WebExtensions/API/tabs/insertCSS">browser.tabs.insertCSS</a></code></li>
 <li>גישה לחלקים הפריבילגיים של ממשק פיתוח הלשונית עבור הלשונית הנוכחית: <code>Tab.url</code>, <code>Tab.title</code>, ו-<code>Tab.faviconUrl</code>.</li>
</ul>

<p>הכוונה בהרשאה זו היא לאפשר להרחבות להגשים מקרה שימוש נפוץ, ללא הצורך לתת להן הרשאות בעלות כוח רב מדי. הרשאות רבוטת יהיו מעונינות "לעשות משהו לדף הנוכחי כאשר המשתמש/ת מבקש/ת". לדוגמה, קחו בחשבון הרחבה המבקשת להריץ תסריט בדף הנוכחי כאשר המשתמש/ת מקישה על פעולת דפדפן. אם ההרשאה  <code>activeTab</code> לא הייתה קיימת, ההרחבה הייתה צריכה לבקש את ההרשאת המארח   <code>&lt;all_urls&gt;</code>. אבל זה נותן להרחבה יותר כוח ממה שדרוש לה:  היא הייתה יכולה כעת לבצע תסריטים בכל לשונית, בכל עת שתרצה, במקום רק בלשונית הפעילה ורק בתגובה לפעולת משתמש/ת.</p>

<p>שימו לב כי תוכלו לקבל גישה רק ללשונית/מידע שכבר שם, כאשר ההתקשרות מצד המשתמש/ת התקיימה (למשל. ההקשה). כאשר הלשונית הפעילה מנווטת למקום אחר, למשל עקב סיום טעינה או אירוע אחר כלשהו, ההרשאה אינה מעניקה לך יותר גישה ללשונית.</p>

<p>בדרך כלל הלשונית המקבלת את הרשאת <code>activeTab</code> היא רק הלשונית הפעילה באותו רגע, פרט למקרה אחד. ממשק היישומים <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus">menus</a></code> מאפשר להרחבה ליצור פריט תפריט המוצג כאשר המשתמש/ת מקיש/ה הקשת הקשר בלשונית  (כלומר, על הרכיב בפס הלשוניות המשאפשר למשתמש/ת לעבור מלשונית ללשונית). אם המשתמש/ת מקיש/ה על פריט כזה, אזי הרשאת  <code>activeTab</code> מוענקת ללשונית שהוקש עליה, אף אם זו אינה הלשונית הפעילה (נכון לפיירפוקס 63, {{bug(1446956)}}).</p>

<h2 id="גישה_ללוח_הגזירים">גישה ללוח הגזירים</h2>

<p>קיימות שתי הרשאות המאפשרות להרחבה  לתקשר עם לוח הגזירים:</p>

<ul>
 <li><code>clipboardWrite</code>: כותבת ללוח הגזירים באמצעות {{DOMxRef("Clipboard.write()")}}, {{DOMxRef("Clipboard.writeText()")}}, <code>document.execCommand("copy")</code> or <code>document.execCommand("cut")</code></li>
 <li><code>clipboardRead</code>: קוראת מלוח הגזירים באמצעות {{DOMxRef("Clipboard.read()")}}, {{DOMxRef("Clipboard.readText()")}} or <code>document.execCommand("paste")</code></li>
</ul>

<p>ראו <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard">Interact with the clipboard</a> לכל הפרטים אודות הדבר.</p>

<h2 id="אחסון_ללא_הגבלה">אחסון ללא הגבלה</h2>

<p>הרשאת <code>unlimitedStorage</code>:</p>

<ul>
 <li>מאפשרת להרחבה לחרוג מכל מכסה הנאכפת על ידי ממשק היישומים  {{WebExtAPIRef("storage.local")}}</li>
 <li>בפיירפוקס, מאפשרת להרחבה ליצור  <a href="/en-US/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria#Firefox_specifics">"persistent" IndexedDB database</a>, מבלי שהדפדפן יעצור לקבלת הרשאות מהמשתמ/ת בעת יצירת בסיב הנתונים.</li>
</ul>

<h2 id="דוגמה">דוגמה</h2>

<pre class="brush: json no-line-numbers"> "permissions": ["*://developer.mozilla.org/*"]</pre>

<p>לבקשת הרשאה בעלת פריבילגיה  לדפים תחת developer.mozilla.org.</p>

<pre class="brush: json no-line-numbers">  "permissions": ["tabs"]</pre>

<p>לבקשת גישה לחלקים בעלי פריבילגיה של ממשק הפיתוח  <code>tabs</code>.</p>

<pre class="brush: json no-line-numbers">  "permissions": ["*://developer.mozilla.org/*", "tabs"]</pre>

<p>לבקשת שתי ההרשאות שלעיל.</p>

<h2 id="תאימות_דפדפנים">תאימות דפדפנים</h2>

<p class="hidden">טבלת התאימות בדף זה נוצרת ממידע ממובנה. אם תרצה לתרום לנתונים, נא לשלוף <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> ולשלוח לנו בקשת משיכה.</p>

<p>{{Compat("webextensions.manifest.permissions")}}</p>