Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: **Aincrad** en 10 Junio 2021, 22:40 pm



Título: Formato Completo del manifest.json de extensiones del Google Chrome
Publicado por: **Aincrad** en 10 Junio 2021, 22:40 pm

Hola, como dice en el titulo, necesito el formato completo del archivo "manifest.json" de extensiones para navegador google chrome.

Por ejemplo, tengo el ejmplo de Google aqui (https://developer.chrome.com/docs/extensions/mv3/manifest/) que es :

Código
  1. {
  2.  // Required
  3.  "manifest_version": 3,
  4.  "name": "My Extension",
  5.  "version": "versionString",
  6.  
  7.  // Recommended
  8.  "action": {...},
  9.  "default_locale": "en",
  10.  "description": "A plain text description",
  11.  "icons": {...},
  12.  
  13.  // Optional
  14.  "action": ...,
  15.  "author": ...,
  16.  "automation": ...,
  17.  "background": {
  18.    // Required
  19.    "service_worker":
  20.  },
  21.  "chrome_settings_overrides": {...},
  22.  "chrome_url_overrides": {...},
  23.  "commands": {...},
  24.  "content_capabilities": ...,
  25.  "content_scripts": [{...}],
  26.  "content_security_policy": "policyString",
  27.  "converted_from_user_script": ...,
  28.  "current_locale": ...,
  29.  "declarative_net_request": ...,
  30.  "devtools_page": "devtools.html",
  31.  "differential_fingerprint": ...,
  32.  "event_rules": [{...}],
  33.  "externally_connectable": {
  34.    "matches": ["*://*.example.com/*"]
  35.  },
  36.  "file_browser_handlers": [...],
  37.  "file_system_provider_capabilities": {
  38.    "configurable": true,
  39.    "multiple_mounts": true,
  40.    "source": "network"
  41.  },
  42.  "homepage_url": "http://path/to/homepage",
  43.  "host_permissions": [...],
  44.  "import": [{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],
  45.  "incognito": "spanning, split, or not_allowed",
  46.  "input_components": ...,
  47.  "key": "publicKey",
  48.  "minimum_chrome_version": "versionString",
  49.  "nacl_modules": [...],
  50.  "natively_connectable": ...,
  51.  "oauth2": ...,
  52.  "offline_enabled": true,
  53.  "omnibox": {
  54.    "keyword": "aString"
  55.  },
  56.  "optional_permissions": ["tabs"],
  57.  "options_page": "options.html",
  58.  "options_ui": {
  59.    "chrome_style": true,
  60.    "page": "options.html"
  61.  },
  62.  "permissions": ["tabs"],
  63.  "platforms": ...,
  64.  "replacement_web_app": ...,
  65.  "requirements": {...},
  66.  "sandbox": [...],
  67.  "short_name": "Short Name",
  68.  "storage": {
  69.    "managed_schema": "schema.json"
  70.  },
  71.  "system_indicator": ...,
  72.  "tts_engine": {...},
  73.  "update_url": "http://path/to/updateInfo.xml",
  74.  "version_name": "aString",
  75.  "web_accessible_resources": [...]
  76. }




Hay todo bien, pero cuando voy a una extension de las que tengo instaladas en mi navegador, y reviso el archivo "manifest.json" de dicha extension, me doy cuenta que hay campos que nos salen en el ejemplo de google.

Por ejemplo :

Código
  1. {
  2.   "background": {
  3.      "persistent": false,
  4.      "scripts": [ "common.js", "mirroring_common.js", "background_script.js" ]
  5.   },
  6.   "content_security_policy": "default-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' https://apis.google.com https://feedback.googleusercontent.com https://www.google.com https://www.gstatic.com; child-src https://accounts.google.com https://content.googleapis.com https://www.google.com; connect-src 'self' http://*:* https://*:*; font-src https://fonts.gstatic.com;",
  7.   "default_locale": "en",
  8.   "description": "Provider for discovery and services for mirroring of Chrome Media Router",
  9.   "differential_fingerprint": "1.3bba8f43f392ecbc35b582986edcbf7c6591081b63f3f0214f8eed1d239b0f60",
  10.   "externally_connectable": {
  11.      "ids": [ "idmofbkcelhplfjnmmdolenpigiiiecc", "ggedfkijiiammpnbdadhllnehapomdge", "njjegkblellcjnakomndbaloifhcoccg" ]
  12.   },
  13.   "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNTWJoPZ9bT32yKxuuVa9LSEYobjPoXCLX3dgsZ9djDrWKNikTECjdRe3/AFXb+v8jkmmtYQPnOgSYn06J/QodDlCIG6l470+gkOoobUM7fOs1AVOse23qYUV4jbuRW3+YZlCvaWCFeczCNbGIUgKEi5B2fyQazy60AL1sLW3utQIDAQAB",
  14.   "manifest_version": 2,
  15.   "minimum_chrome_version": "37",
  16.   "name": "Chrome Media Router",
  17.   "oauth2": {
  18.      "client_id": "919648714761-55j965o0km033psv3i9qls5mo3qtdrb0.apps.googleusercontent.com",
  19.      "scopes": [ "https://www.googleapis.com/auth/calendar.readonly", "https://www.googleapis.com/auth/hangouts", "https://www.googleapis.com/auth/hangouts.readonly", "https://www.googleapis.com/auth/meetings", "https://www.googleapis.com/auth/userinfo.email" ]
  20.   },
  21.   "permissions": [ "alarms", "cast", "declarativeWebRequest", "desktopCapture", "gcm", "http://*/*", "identity", "identity.email", "management", "mdns", "mediaRouterPrivate", "metricsPrivate", "networkingPrivate", "processes", "storage", "system.cpu", "settingsPrivate", "tabCapture", "tabs", "https://hangouts.google.com/*", "https://*.google.com/cast/chromecast/home/gsse" ],
  22.   "update_url": "https://clients2.google.com/service/update2/crx",
  23.   "version": "9121.329.0.0",
  24.   "web_accessible_resources": [ "cast_sender.js" ]
  25. }
  26.  
  27.  

Como ves, es ese ejemplo , estan campos que en el ejemplo de google no hay, los cuales son : "persistent" y "scripts" , entro otros campos.




En pocas palabras , necesito un "manifest.json" Completo , con todos los campos y que hallan.





Título: Re: Formato Completo del manifest.json de extensiones del Google Chrome
Publicado por: Serapis en 10 Junio 2021, 23:52 pm
https://datatracker.ietf.org/doc/html/rfc8259

...y ya con la documentación del formato del manifest y la especificación de json,  podrás satisfacer tu interés


Título: Re: Formato Completo del manifest.json de extensiones del Google Chrome
Publicado por: **Aincrad** en 11 Junio 2021, 17:07 pm
Hola, gracias por responder, básicamente necesito todos los campos de puede llevar el archivo "manifest.json" en las extensiones de google chrome, para posteriormente deserializar .

No encontré nada referente a eso, en la pagina que suministraste. pero de todos modos gracias.