SSブログ

Firefox OS Simulatorはエミュレータじゃなかった(勘違いしてた) [ソフトウェア]

勝手に勘違いしてたんだけど、今まで見てきたFirefox OS Simulatorってエミュレータじゃなかったんだよね。シミュレータって書いてあるから、エミュである必要もないんだけど、動作が全く本機と一致しているわけじゃない。今のPCは強力なので、格下のARMをエミュレータにしたところで、動作が遅くなって使い物にならなくなるわけじゃないけど、完璧なエミュレータを一から開発するより、勝手知ったるOSのアプリケーションのシミュレータを作った方がいいに(楽に)決まっている。

それが分かったのは、やっぱりアドオンのディレクトリを探っていたらWindowsではDLL、Macでは.dylibを見つけたからでした。



 
また無駄にtree表示。
今回はMacじゃなくて、Windowsのディレクトリです。

C:\USERS\ユーザー名\APPDATA\ROAMING\MOZILLA\FIREFOX\PROFILES\何かの文字列\EXTENSIONS\R2D2B2G@MOZILLA.ORG
│  bootstrap.js
│  harness-options.json
│  icon.png
│  icon64.png
│  install.rdf
│  locales.json
│  
├─defaults
│  └─preferences
│          prefs.js
│          
├─locale
├─profile
│  │  cert8.db
│  │  compatibility.ini
│  │  content-prefs.sqlite
│  │  cookies.sqlite
│  │  cookies.sqlite-shm
│  │  cookies.sqlite-wal
│  │  downloads.sqlite
│  │  extensions.ini
│  │  extensions.sqlite
│  │  extensions.sqlite-journal
│  │  key3.db
│  │  localstore.rdf
│  │  marionette.log
│  │  parent.lock
│  │  permissions.sqlite
│  │  places.sqlite
│  │  places.sqlite-shm
│  │  places.sqlite-wal
│  │  prefs.js
│  │  secmod.db
│  │  settings.json
│  │  user.js
│  │  webappsstore.sqlite
│  │  _CACHE_CLEAN_
│  │  
│  ├─Cache
│  │  │  _CACHE_001_
│  │  │  _CACHE_002_
│  │  │  _CACHE_003_
│  │  │  _CACHE_MAP_
│  │  │  
│  │  ├─0
│  │  │  ├─11
│  │  │  │      19689d01
│  │  │  │      
│  │  │  ├─3F
│  │  │  │      836D5d01
│  │  │  │      
│  │  │  ├─97
│  │  │  │      8996Ed01
│  │  │  │      
│  │  │  └─B6
│  │  │          23597d01
│  │  │          
│  │  ├─1
│  │  │  ├─01
│  │  │  │      CC079d01
│  │  │  │      
│  │  │  ├─63
│  │  │  │      341AEd01
│  │  │  │      
│  │  │  ├─72
│  │  │  │      22895d01
│  │  │  │      
│  │  │  └─CD
│  │  │          B4A1Cd01
│  │  │          
│  │  ├─2
│  │  │  ├─7B
│  │  │  │      BAAD7d01
│  │  │  │      
│  │  │  ├─A6
│  │  │  │      39681d01
│  │  │  │      
│  │  │  ├─B0
│  │  │  │      31D25d01
│  │  │  │      
│  │  │  └─C7
│  │  │          A94FFd01
│  │  │          
│  │  ├─3
│  │  │  ├─17
│  │  │  │      79DA9d01
│  │  │  │      
│  │  │  └─5D
│  │  │          A5DB6d01
│  │  │          
│  │  ├─4
│  │  │  ├─76
│  │  │  │      B3E0Fd01
│  │  │  │      
│  │  │  └─8C
│  │  │          3D447d01
│  │  │          
│  │  ├─5
│  │  │  ├─C1
│  │  │  │      53369d01
│  │  │  │      
│  │  │  └─CF
│  │  │          9A7E7d01
│  │  │          
│  │  ├─6
│  │  │  ├─0D
│  │  │  │      8DE29d01
│  │  │  │      
│  │  │  ├─39
│  │  │  │      06310d01
│  │  │  │      
│  │  │  └─91
│  │  │          7B411d01
│  │  │          
│  │  ├─7
│  │  │  ├─14
│  │  │  │      3492Dd01
│  │  │  │      
│  │  │  └─A8
│  │  │          A79DDd01
│  │  │          
│  │  ├─8
│  │  │  └─FC
│  │  │          79CF1d01
│  │  │          
│  │  ├─9
│  │  │  └─A6
│  │  │          18818d01
│  │  │          
│  │  ├─A
│  │  │  ├─37
│  │  │  │      88FDDd01
│  │  │  │      
│  │  │  ├─50
│  │  │  │      4E45Ad01
│  │  │  │      
│  │  │  ├─61
│  │  │  │      2AC87d01
│  │  │  │      
│  │  │  ├─B2
│  │  │  │      6DF08d01
│  │  │  │      
│  │  │  └─C0
│  │  │          F4199d01
│  │  │          
│  │  ├─B
│  │  │  ├─47
│  │  │  │      E26A2d01
│  │  │  │      
│  │  │  ├─E0
│  │  │  │      94E11d01
│  │  │  │      
│  │  │  └─E1
│  │  │          13CF4d01
│  │  │          
│  │  ├─C
│  │  │  ├─83
│  │  │  │      981EEd01
│  │  │  │      
│  │  │  ├─B3
│  │  │  │      32D98d01
│  │  │  │      
│  │  │  └─F9
│  │  │          747E9d01
│  │  │          
│  │  ├─D
│  │  │  ├─19
│  │  │  │      A6B20d01
│  │  │  │      
│  │  │  ├─26
│  │  │  │      7702Dd01
│  │  │  │      
│  │  │  ├─29
│  │  │  │      D25ADd01
│  │  │  │      
│  │  │  └─83
│  │  │          149A9d01
│  │  │          
│  │  ├─E
│  │  └─F
│  │      ├─A5
│  │      │      AA486d01
│  │      │      
│  │      └─B5
│  │              1D85Fd01
│  │              
│  ├─extensions
│  │      b2g-prosthesis@mozilla.org.xpi
│  │      
│  ├─indexedDB
│  │  ├─12+f+app+++homescreen.gaiamobile.org
│  │  │  │  1694510209hnoemeersc.sqlite
│  │  │  │  
│  │  │  └─1694510209hnoemeersc
│  │  │      │  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
│  │  │      │  
│  │  │      └─journals
│  │  ├─18+f+app+++system.gaiamobile.org
│  │  │  │  3350367306aesgyanrcoSt.sqlite
│  │  │  │  781613237wriengdaonwa_m.sqlite
│  │  │  │  
│  │  │  ├─3350367306aesgyanrcoSt
│  │  │  └─781613237wriengdaonwa_m
│  │  │      │  1
│  │  │      │  2
│  │  │      │  4
│  │  │      │  5
│  │  │      │  6
│  │  │      │  7
│  │  │      │  
│  │  │      └─journals
│  │  ├─2+f+app+++browser.gaiamobile.org
│  │  │  │  2959517650brreosw.sqlite
│  │  │  │  
│  │  │  └─2959517650brreosw
│  │  │      │  1
│  │  │      │  10
│  │  │      │  12
│  │  │      │  13
│  │  │      │  15
│  │  │      │  16
│  │  │      │  17
│  │  │      │  18
│  │  │      │  2
│  │  │      │  3
│  │  │      │  4
│  │  │      │  7
│  │  │      │  
│  │  │      └─journals
│  │  ├─4+f+app+++camera.gaiamobile.org
│  │  │  │  3350367306aesgyanrcoSt.sqlite
│  │  │  │  
│  │  │  └─3350367306aesgyanrcoSt
│  │  └─chrome
│  │      │  2588645841ssegtnti.sqlite
│  │      │  3104902905ascetiitvi.sqlite
│  │      │  4045445992aslmar.sqlite
│  │      │  
│  │      ├─2588645841ssegtnti
│  │      ├─3104902905ascetiitvi
│  │      └─4045445992aslmar
│  ├─minidumps
│  ├─OfflineCache
│  │      index.sqlite
│  │      
│  ├─startupCache
│  │      startupCache.4.little
│  │      
│  └─webapps
│      │  webapps.json
│      │  
│      ├─bluetooth.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─browser.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─calendar.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─camera.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─clock.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─communications.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─costcontrol.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─crystalskull.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─cubevid.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─email.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─fm.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─gallery.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─geoloc.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─homescreen.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─image-uploader.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─keyboard.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─maps
│      │      application.zip
│      │      update.webapp
│      │      
│      ├─marketplace
│      │      manifest.webapp
│      │      
│      ├─membuster.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─music.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─pdfjs.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─penguinpop.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─settings.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─share-receiver.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─sms.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─system.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─template.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─test-agent.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─test-container.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─test-receiver-1.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─test-receiver-2.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─test-receiver-inline.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─test-sensors.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─testpermission.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─towerjelly.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─twittershare.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─uitest.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      ├─video.gaiamobile.org
│      │      application.zip
│      │      manifest.webapp
│      │      
│      └─wallpaper.gaiamobile.org
│              application.zip
│              manifest.webapp
│              
└─resources
    ├─addon-sdk
    │  ├─data
    │  └─lib
    │      ├─sdk
    │      │  │  addon-page.js
    │      │  │  base64.js
    │      │  │  context-menu.js
    │      │  │  notifications.js
    │      │  │  page-mod.js
    │      │  │  panel.js
    │      │  │  private-browsing.js
    │      │  │  querystring.js
    │      │  │  request.js
    │      │  │  self.js
    │      │  │  simple-storage.js
    │      │  │  system.js
    │      │  │  tabs.js
    │      │  │  timers.js
    │      │  │  url.js
    │      │  │  widget.js
    │      │  │  windows.js
    │      │  │  
    │      │  ├─addon
    │      │  │      runner.js
    │      │  │      
    │      │  ├─console
    │      │  │      plain-text.js
    │      │  │      traceback.js
    │      │  │      
    │      │  ├─content
    │      │  │      content-proxy.js
    │      │  │      content-worker.js
    │      │  │      content.js
    │      │  │      loader.js
    │      │  │      symbiont.js
    │      │  │      thumbnail.js
    │      │  │      worker.js
    │      │  │      
    │      │  ├─core
    │      │  │      heritage.js
    │      │  │      namespace.js
    │      │  │      promise.js
    │      │  │      
    │      │  ├─deprecated
    │      │  │  │  api-utils.js
    │      │  │  │  cortex.js
    │      │  │  │  errors.js
    │      │  │  │  events.js
    │      │  │  │  light-traits.js
    │      │  │  │  list.js
    │      │  │  │  memory.js
    │      │  │  │  observer-service.js
    │      │  │  │  traits.js
    │      │  │  │  window-utils.js
    │      │  │  │  
    │      │  │  ├─events
    │      │  │  │      assembler.js
    │      │  │  │      
    │      │  │  └─traits
    │      │  │          core.js
    │      │  │          
    │      │  ├─dom
    │      │  │      events.js
    │      │  │      
    │      │  ├─event
    │      │  │      core.js
    │      │  │      target.js
    │      │  │      
    │      │  ├─frame
    │      │  │      hidden-frame.js
    │      │  │      
    │      │  ├─io
    │      │  │      byte-streams.js
    │      │  │      data.js
    │      │  │      file.js
    │      │  │      text-streams.js
    │      │  │      
    │      │  ├─l10n
    │      │  │      core.js
    │      │  │      html.js
    │      │  │      loader.js
    │      │  │      locale.js
    │      │  │      prefs.js
    │      │  │      
    │      │  ├─lang
    │      │  │      functional.js
    │      │  │      
    │      │  ├─loader
    │      │  │      cuddlefish.js
    │      │  │      sandbox.js
    │      │  │      
    │      │  ├─net
    │      │  │      url.js
    │      │  │      xhr.js
    │      │  │      
    │      │  ├─page-mod
    │      │  │      match-pattern.js
    │      │  │      
    │      │  ├─platform
    │      │  │      xpcom.js
    │      │  │      
    │      │  ├─preferences
    │      │  │      service.js
    │      │  │      
    │      │  ├─private-browsing
    │      │  │      utils.js
    │      │  │      
    │      │  ├─system
    │      │  │      environment.js
    │      │  │      events.js
    │      │  │      globals.js
    │      │  │      runtime.js
    │      │  │      unload.js
    │      │  │      xul-app.js
    │      │  │      
    │      │  ├─tabs
    │      │  │      common.js
    │      │  │      events.js
    │      │  │      helpers.js
    │      │  │      namespace.js
    │      │  │      observer.js
    │      │  │      tab-fennec.js
    │      │  │      tab-firefox.js
    │      │  │      tab.js
    │      │  │      tabs-firefox.js
    │      │  │      tabs.js
    │      │  │      utils.js
    │      │  │      worker.js
    │      │  │      
    │      │  ├─util
    │      │  │      array.js
    │      │  │      collection.js
    │      │  │      deprecate.js
    │      │  │      list.js
    │      │  │      object.js
    │      │  │      registry.js
    │      │  │      uuid.js
    │      │  │      
    │      │  ├─window
    │      │  │      browser.js
    │      │  │      namespace.js
    │      │  │      utils.js
    │      │  │      
    │      │  └─windows
    │      │          dom.js
    │      │          fennec.js
    │      │          firefox.js
    │      │          loader.js
    │      │          observer.js
    │      │          tabs-fennec.js
    │      │          tabs-firefox.js
    │      │          
    │      └─toolkit
    │              loader.js
    │              
    ├─gcli
    │  └─lib
    │          gcli.js
    │          
    ├─menuitems
    │  └─lib
    │          menuitems.js
    │          
    ├─r2d2b2g
    │  ├─data
    │  │  │  content-script.js
    │  │  │  
    │  │  ├─content
    │  │  │  │  index.html
    │  │  │  │  watermark.png
    │  │  │  │  
    │  │  │  ├─css
    │  │  │  │      main.css
    │  │  │  │      normalize.css
    │  │  │  │      
    │  │  │  └─js
    │  │  │      │  main.js
    │  │  │      │  plugins.js
    │  │  │      │  
    │  │  │      └─vendor
    │  │  │              jquery-1.8.3.min.js
    │  │  │              modernizr-2.6.1.min.js
    │  │  │              
    │  │  ├─template
    │  │  │  │  index.html
    │  │  │  │  manifest.webapp
    │  │  │  │  
    │  │  │  └─style
    │  │  │      └─icons
    │  │  │              Blank.png
    │  │  │              
    │  │  └─win32
    │  │      └─b2g
    │  │          │  AccessibleMarshal.dll
    │  │          │  b2g-bin.exe
    │  │          │  chrome.manifest
    │  │          │  crashreporter.exe
    │  │          │  crashreporter.ini
    │  │          │  dependentlibs.list
    │  │          │  freebl3.dll
    │  │          │  gkmedias.dll
    │  │          │  greprefs.js
    │  │          │  libEGL.dll
    │  │          │  libGLESv2.dll
    │  │          │  mozalloc.dll
    │  │          │  mozglue.dll
    │  │          │  mozjs.dll
    │  │          │  mozsqlite3.dll
    │  │          │  msvcp100.dll
    │  │          │  msvcr100.dll
    │  │          │  nspr4.dll
    │  │          │  nss3.dll
    │  │          │  nssckbi.dll
    │  │          │  nssdbm3.dll
    │  │          │  nssutil3.dll
    │  │          │  platform.ini
    │  │          │  plc4.dll
    │  │          │  plds4.dll
    │  │          │  plugin-container.exe
    │  │          │  precomplete
    │  │          │  removed-files
    │  │          │  smime3.dll
    │  │          │  softokn3.dll
    │  │          │  ssl3.dll
    │  │          │  xpcom.dll
    │  │          │  xul.dll
    │  │          │  
    │  │          ├─chrome
    │  │          │  │  chrome.jar
    │  │          │  │  en-US.jar
    │  │          │  │  es-ES.jar
    │  │          │  │  localized.manifest
    │  │          │  │  marionette.jar
    │  │          │  │  nonlocalized.manifest
    │  │          │  │  pippki.jar
    │  │          │  │  pt-BR.jar
    │  │          │  │  reftest.jar
    │  │          │  │  toolkit.jar
    │  │          │  │  xslt-qa.jar
    │  │          │  │  
    │  │          │  └─icons
    │  │          │      └─default
    │  │          │              b2g.ico
    │  │          │              
    │  │          ├─components
    │  │          │      ActivitiesGlue.js
    │  │          │      ActivityOptions.js
    │  │          │      ActivityProxy.js
    │  │          │      ActivityRequestHandler.js
    │  │          │      ActivityWrapper.js
    │  │          │      addonManager.js
    │  │          │      AlarmsManager.js
    │  │          │      AlertsService.js
    │  │          │      amContentHandler.js
    │  │          │      amWebInstallListener.js
    │  │          │      AppProtocolHandler.js
    │  │          │      AppsService.js
    │  │          │      b2g.xpt
    │  │          │      browser.xpt
    │  │          │      BrowserElementParent.js
    │  │          │      components.manifest
    │  │          │      ConsoleAPI.js
    │  │          │      ContactManager.js
    │  │          │      contentAreaDropListener.js
    │  │          │      ContentHandler.js
    │  │          │      ContentPermissionPrompt.js
    │  │          │      contentSecurityPolicy.js
    │  │          │      crypto-SDR.js
    │  │          │      DirectoryProvider.js
    │  │          │      FeedProcessor.js
    │  │          │      interfaces.manifest
    │  │          │      jsconsole-clhandler.js
    │  │          │      MailtoProtocolHandler.js
    │  │          │      marionettecomponent.js
    │  │          │      messageWakeupService.js
    │  │          │      MozKeyboard.js
    │  │          │      nsBadCertHandler.js
    │  │          │      nsBlocklistService.js
    │  │          │      nsContentDispatchChooser.js
    │  │          │      nsContentPrefService.js
    │  │          │      nsDefaultCLH.js
    │  │          │      nsDOMIdentity.js
    │  │          │      nsDownloadManagerUI.js
    │  │          │      nsFormAutoComplete.js
    │  │          │      nsFormHistory.js
    │  │          │      nsHandlerService.js
    │  │          │      nsHelperAppDlg.js
    │  │          │      nsIDService.js
    │  │          │      nsINIProcessor.js
    │  │          │      nsInputListAutoComplete.js
    │  │          │      nsLoginInfo.js
    │  │          │      nsLoginManager.js
    │  │          │      nsLoginManagerPrompter.js
    │  │          │      nsPrompter.js
    │  │          │      nsUpdateTimerManager.js
    │  │          │      nsURLFormatter.js
    │  │          │      nsWebHandlerApp.js
    │  │          │      Payment.js
    │  │          │      PaymentFlowInfo.js
    │  │          │      PaymentGlue.js
    │  │          │      PaymentRequestInfo.js
    │  │          │      PermissionPromptService.js
    │  │          │      PermissionSettings.js
    │  │          │      ProcessGlobal.js
    │  │          │      RecoveryService.js
    │  │          │      SettingsManager.js
    │  │          │      SettingsService.js
    │  │          │      SiteSpecificUserAgent.js
    │  │          │      SmsProtocolHandler.js
    │  │          │      storage-Legacy.js
    │  │          │      storage-mozStorage.js
    │  │          │      SystemMessageInternal.js
    │  │          │      SystemMessageManager.js
    │  │          │      TCPSocket.js
    │  │          │      TCPSocketParentIntermediary.js
    │  │          │      TelemetryPing.js
    │  │          │      TelProtocolHandler.js
    │  │          │      txEXSLTRegExFunctions.js
    │  │          │      Webapps.js
    │  │          │      YoutubeProtocolHandler.js
    │  │          │      
    │  │          ├─defaults
    │  │          │  ├─autoconfig
    │  │          │  │      platform.js
    │  │          │  │      prefcalls.js
    │  │          │  │      
    │  │          │  └─pref
    │  │          │          b2g-l10n.js
    │  │          │          b2g.js
    │  │          │          
    │  │          ├─dictionaries
    │  │          │      en-US.aff
    │  │          │      en-US.dic
    │  │          │      
    │  │          ├─hyphenation
    │  │          │      hyph_af.dic
    │  │          │      hyph_bg.dic
    │  │          │      hyph_ca.dic
    │  │          │      hyph_cy.dic
    │  │          │      hyph_da.dic
    │  │          │      hyph_de-1901.dic
    │  │          │      hyph_de-1996.dic
    │  │          │      hyph_de-CH.dic
    │  │          │      hyph_en_US.dic
    │  │          │      hyph_eo.dic
    │  │          │      hyph_es.dic
    │  │          │      hyph_et.dic
    │  │          │      hyph_fi.dic
    │  │          │      hyph_fr.dic
    │  │          │      hyph_gl.dic
    │  │          │      hyph_hr.dic
    │  │          │      hyph_hsb.dic
    │  │          │      hyph_hu.dic
    │  │          │      hyph_ia.dic
    │  │          │      hyph_is.dic
    │  │          │      hyph_it.dic
    │  │          │      hyph_kmr.dic
    │  │          │      hyph_la.dic
    │  │          │      hyph_lt.dic
    │  │          │      hyph_mn.dic
    │  │          │      hyph_nb.dic
    │  │          │      hyph_nl.dic
    │  │          │      hyph_nn.dic
    │  │          │      hyph_pt.dic
    │  │          │      hyph_ru.dic
    │  │          │      hyph_sh.dic
    │  │          │      hyph_sl.dic
    │  │          │      hyph_sv.dic
    │  │          │      hyph_tr.dic
    │  │          │      hyph_uk.dic
    │  │          │      
    │  │          └─modules
    │  │              │  ActivitiesService.jsm
    │  │              │  ActivitiesServiceFilter.jsm
    │  │              │  AddonLogging.jsm
    │  │              │  AddonManager.jsm
    │  │              │  AddonRepository.jsm
    │  │              │  AddonUpdateChecker.jsm
    │  │              │  AlarmDB.jsm
    │  │              │  AlarmService.jsm
    │  │              │  AppDownloadManager.jsm
    │  │              │  AppsServiceChild.jsm
    │  │              │  AppsUtils.jsm
    │  │              │  BrowserElementPromptService.jsm
    │  │              │  CertUtils.jsm
    │  │              │  ChromeManifestParser.jsm
    │  │              │  CommonDialog.jsm
    │  │              │  ConsoleAPIStorage.jsm
    │  │              │  ContactDB.jsm
    │  │              │  ContactService.jsm
    │  │              │  CrashSubmit.jsm
    │  │              │  CSPUtils.jsm
    │  │              │  ctypes.jsm
    │  │              │  debug.js
    │  │              │  DeferredTask.jsm
    │  │              │  Dict.jsm
    │  │              │  DOMIdentity.jsm
    │  │              │  DOMRequestHelper.jsm
    │  │              │  DownloadLastDir.jsm
    │  │              │  DownloadPaths.jsm
    │  │              │  DownloadTaskbarProgress.jsm
    │  │              │  DownloadUtils.jsm
    │  │              │  FileUtils.jsm
    │  │              │  ForgetAboutSite.jsm
    │  │              │  FrameWorker.jsm
    │  │              │  FreeSpaceWatcher.jsm
    │  │              │  Geometry.jsm
    │  │              │  IndexedDBHelper.jsm
    │  │              │  InlineSpellChecker.jsm
    │  │              │  ISO8601DateUtils.jsm
    │  │              │  jsdebugger.jsm
    │  │              │  Keyboard.jsm
    │  │              │  KeyValueParser.jsm
    │  │              │  LightweightThemeConsumer.jsm
    │  │              │  LightweightThemeImageOptimizer.jsm
    │  │              │  LightweightThemeManager.jsm
    │  │              │  mcc_iso3166_table.jsm
    │  │              │  MessagePortBase.jsm
    │  │              │  MessagePortWorker.js
    │  │              │  Microformats.js
    │  │              │  MozSocialAPI.jsm
    │  │              │  NetUtil.jsm
    │  │              │  nsFormAutoCompleteResult.jsm
    │  │              │  ObjectWrapper.jsm
    │  │              │  OfflineCacheInstaller.jsm
    │  │              │  osfile.jsm
    │  │              │  PageMenu.jsm
    │  │              │  Payment.jsm
    │  │              │  PerfMeasurement.jsm
    │  │              │  PermissionPromptHelper.jsm
    │  │              │  PermissionSettings.jsm
    │  │              │  PermissionsInstaller.jsm
    │  │              │  PermissionsTable.jsm
    │  │              │  PhoneNumber.jsm
    │  │              │  PhoneNumberMetaData.jsm
    │  │              │  PhoneNumberUtils.jsm
    │  │              │  PluginProvider.jsm
    │  │              │  PluralForm.jsm
    │  │              │  PopupNotifications.jsm
    │  │              │  PrivateBrowsingUtils.jsm
    │  │              │  Profiler.jsm
    │  │              │  PropertyListUtils.jsm
    │  │              │  reflect.jsm
    │  │              │  Services.jsm
    │  │              │  SettingsChangeNotifier.jsm
    │  │              │  SettingsDB.jsm
    │  │              │  SettingsQueue.jsm
    │  │              │  SignInToWebsite.jsm
    │  │              │  SocialService.jsm
    │  │              │  SpellCheckDictionaryBootstrap.js
    │  │              │  SystemMessagePermissionsChecker.jsm
    │  │              │  Task.jsm
    │  │              │  TelemetryStopwatch.jsm
    │  │              │  TelURIParser.jsm
    │  │              │  Troubleshoot.jsm
    │  │              │  UpdateChannel.jsm
    │  │              │  UserAgentOverrides.jsm
    │  │              │  WebappOSUtils.jsm
    │  │              │  Webapps.jsm
    │  │              │  WebappsInstaller.jsm
    │  │              │  WindowDraggingUtils.jsm
    │  │              │  WorkerAPI.jsm
    │  │              │  XPCOMUtils.jsm
    │  │              │  XPIProvider.jsm
    │  │              │  XPIProviderUtils.js
    │  │              │  
    │  │              ├─accessibility
    │  │              │      AccessFu.jsm
    │  │              │      EventManager.jsm
    │  │              │      Presenters.jsm
    │  │              │      TouchAdapter.jsm
    │  │              │      TraversalRules.jsm
    │  │              │      Utils.jsm
    │  │              │      UtteranceGenerator.jsm
    │  │              │      
    │  │              ├─commonjs
    │  │              │  │  loader.js
    │  │              │  │  
    │  │              │  └─promise
    │  │              │          core.js
    │  │              │          
    │  │              ├─devtools
    │  │              │      Console.jsm
    │  │              │      dbg-client.jsm
    │  │              │      dbg-server.jsm
    │  │              │      NetworkHelper.jsm
    │  │              │      Require.jsm
    │  │              │      SourceMap.jsm
    │  │              │      WebConsoleClient.jsm
    │  │              │      WebConsoleUtils.jsm
    │  │              │      _Promise.jsm
    │  │              │      
    │  │              ├─identity
    │  │              │      Identity.jsm
    │  │              │      IdentityProvider.jsm
    │  │              │      IdentityStore.jsm
    │  │              │      IdentityUtils.jsm
    │  │              │      jwcrypto.jsm
    │  │              │      LogUtils.jsm
    │  │              │      MinimalIdentity.jsm
    │  │              │      RelyingParty.jsm
    │  │              │      Sandbox.jsm
    │  │              │      
    │  │              ├─osfile
    │  │              │      osfile_async_front.jsm
    │  │              │      osfile_async_worker.js
    │  │              │      osfile_shared_allthreads.jsm
    │  │              │      osfile_shared_front.jsm
    │  │              │      osfile_unix_allthreads.jsm
    │  │              │      osfile_unix_back.jsm
    │  │              │      osfile_unix_front.jsm
    │  │              │      osfile_win_allthreads.jsm
    │  │              │      osfile_win_back.jsm
    │  │              │      osfile_win_front.jsm
    │  │              │      ospath_unix_back.jsm
    │  │              │      ospath_win_back.jsm
    │  │              │      
    │  │              ├─services
    │  │              │  └─metrics
    │  │              │          collector.jsm
    │  │              │          dataprovider.jsm
    │  │              │          
    │  │              └─services-common
    │  │                  │  async.js
    │  │                  │  bagheeraclient.js
    │  │                  │  log4moz.js
    │  │                  │  observers.js
    │  │                  │  preferences.js
    │  │                  │  rest.js
    │  │                  │  storageservice.js
    │  │                  │  stringbundle.js
    │  │                  │  tokenserverclient.js
    │  │                  │  utils.js
    │  │                  │  
    │  │                  └─res
    │  │                      │  contenteditable.css
    │  │                      │  designmode.css
    │  │                      │  EditorOverride.css
    │  │                      │  grabber.gif
    │  │                      │  langGroups.properties
    │  │                      │  language.properties
    │  │                      │  svg.css
    │  │                      │  table-add-column-after-active.gif
    │  │                      │  table-add-column-after-hover.gif
    │  │                      │  table-add-column-after.gif
    │  │                      │  table-add-column-before-active.gif
    │  │                      │  table-add-column-before-hover.gif
    │  │                      │  table-add-column-before.gif
    │  │                      │  table-add-row-after-active.gif
    │  │                      │  table-add-row-after-hover.gif
    │  │                      │  table-add-row-after.gif
    │  │                      │  table-add-row-before-active.gif
    │  │                      │  table-add-row-before-hover.gif
    │  │                      │  table-add-row-before.gif
    │  │                      │  table-remove-column-active.gif
    │  │                      │  table-remove-column-hover.gif
    │  │                      │  table-remove-column.gif
    │  │                      │  table-remove-row-active.gif
    │  │                      │  table-remove-row-hover.gif
    │  │                      │  table-remove-row.gif
    │  │                      │  
    │  │                      ├─dtd
    │  │                      │      htmlmathml-f.ent
    │  │                      │      
    │  │                      ├─entityTables
    │  │                      │      html40Latin1.properties
    │  │                      │      html40Special.properties
    │  │                      │      html40Symbols.properties
    │  │                      │      htmlEntityVersions.properties
    │  │                      │      mathml20.properties
    │  │                      │      transliterate.properties
    │  │                      │      
    │  │                      ├─fonts
    │  │                      │      mathfont.properties
    │  │                      │      mathfontAsanaMath.properties
    │  │                      │      mathfontMathJax_Main.properties
    │  │                      │      mathfontStandardSymbolsL.properties
    │  │                      │      mathfontSTIXNonUnicode.properties
    │  │                      │      mathfontSTIXSize1.properties
    │  │                      │      mathfontSTIXSizeOneSym.properties
    │  │                      │      mathfontSymbol.properties
    │  │                      │      mathfontUnicode.properties
    │  │                      │      
    │  │                      └─html
    │  │                              folder.png
    │  │                              
    │  ├─lib
    │  │      file.js
    │  │      main.js
    │  │      pingback-server.js
    │  │      remote-simulator-client.js
    │  │      
    │  └─tests
    ├─subprocess
    │  └─lib
    │          subprocess.js
    │          subprocess_worker_unix.js
    │          subprocess_worker_win.js
    │          
    └─vold-utils
        └─lib
                unload+.js


前回は、UNIXのtreeコマンドの方が良いと言ったけど、treeが大きくなるんだったら、Windowsのtreeコマンドのほうがいくらか見やすいな。

それはともかく「r2d2b2g\data\win32\b2g」というディレクトリに.dllファイルがあるんですが、それはWindows用のライブラリファイルなわけです。その中にWindowsネイティブな関数が入っているわけです。だから、その時点でエミュレータであることはまず無いと踏みました。同様にMacでも.dylibファイルが入っていたので、エミュレータではなく、あくまでシミュレータなのだなと分かったのでした。いや、自分が勝手に勘違いしてただけ…。

ですから、HTML5に則った互換性は普通にあるけど、本体側は動く仕組みが全く同じものではない、ということです。とはいえ、同じライブラリをARM用にコンパイルするだけで、実際さほど変わらない状況になるんだと思います。それこそ、Android用のFirefoxとそう変わらない次元の状態でしょうね。だから、コアの部分はWindowsとMacの挙動の差程度のブレしか無いはずです。


と余談はここまでにして、application.zipの中身を見てみます。

C:\APPLICATION.ZIP
│  index.html
│  manifest.webapp
│
├─js
│  │  activities.js
│  │  twittershare.js
│  │
│  └─ext
│          oauth.js
│          sha1.js
│
├─shared
│  └─js
│          custom_dialog.js
│
└─style
    │  custom_dialog.css
    │  twittershare.css
    │
    ├─icons
    │      share.png
    │
    └─images
        │  close.png
        │  default.png
        │  default_profile_2_normal.png
        │  header.png
        │  negative.png
        │  pattern.png
        │  progress.png
        │  separator-large.png
        │  separator.png
        │  shadow.png
        │  shadow_input.png
        │  subheader.png
        │  twitter-bird-light-bgs.png
        │
        └─ui
                default.png
                gradient.png
                negative.png
                pattern.png



index.htmlは初めに読み込まれるのかな? 使うJavaScriptやCSSのファイルや、アイコンなどのイメージなどの指定をしている。zipの中身のディレクトリを相対パスで指定してあげているので、決め打ちでフォルダを作らなくても最悪ZIPファイルのルートにファイルを全部ぶっこんでもよさそうな感じではある(実際やってないので、てきとう)。

manifest.webapp はJSONみたいですね。{ }がウザったいが、JavaScriptだからJSONってことなんでしょうね。ここにindex.htmlの指定があるので、こっちのほうが一番先に読み込まれる模様。恐らく、このファイルの名前をしていれば、JSONであると前提として初めに読み込まれるのかも。manifest.webapp はapplication.zipの外にも中にもあるんだけど、diffかけたら、どっちもおんなじファイルでした。何の意味があるのかなぁ。どっちかあればいいと思うんだけど、余計な混乱を招きそうで嫌だ。

基本的な事柄は以上に終始する。同じフォルダ構成にしたほうが、他人が見てもわかるし、管理しやすいのでしょうが、別にmanifest.webappとHTMLの書き方によっては、実はどうでも良い仕組みにはなっていそう。ディレクトリ構成をカッチリ作りこむ必要はない。ん~後はケーススタディになりますかね。JavaScriptでどうするかの問題な気がします。


タグ:Firefox OS
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。