Show
Ignore:
Timestamp:
11/06/08 20:47:27 (6 years ago)
Author:
thorikawa
Message:

インポート機能搭載(β版)

Location:
platform/firefox/FireMobileSimulator/trunk/src
Files:
8 modified

Legend:

Unmodified
Added
Removed
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/common/carrier.js

    r20345 r22847  
    5252 * キャリア共通の属性  
    5353 */ 
    54 firemobilesimulator.common.carrier.deviceBasicAttribute = ["device", "useragent", "carrier"]; 
     54firemobilesimulator.common.carrier.deviceBasicAttribute = ["label", "useragent", "carrier"]; 
    5555 
    5656/** 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/core.js

    r20349 r22847  
    2727        dump("[msim]resetDevice.\n"); 
    2828        firemobilesimulator.common.pref.deletePref("msim.current.carrier"); 
    29         firemobilesimulator.common.pref.deletePref("msim.current.device"); 
    3029        firemobilesimulator.common.pref.deletePref("general.useragent.override"); 
    3130        firemobilesimulator.common.pref.deletePref("msim.current.useragent"); 
     
    3736firemobilesimulator.core.setDevice = function(carrier, id) { 
    3837 
    39         dump("[msim]setDevice:" + carrier + ",id:" + id + "\n"); 
     38        //dump("[msim]setDevice:" + carrier + ",id:" + id + "\n"); 
    4039 
    4140        if (!carrier || !id) { 
     
    4746        firemobilesimulator.common.pref.setUnicharPref("msim.current.carrier", 
    4847                        firemobilesimulator.common.pref.copyUnicharPref(pref_prefix + ".carrier")); 
    49         firemobilesimulator.common.pref.setUnicharPref("msim.current.device", 
    50                         firemobilesimulator.common.pref.copyUnicharPref(pref_prefix + ".device")); 
    5148 
    5249        var useragent = firemobilesimulator.common.pref.copyUnicharPref(pref_prefix 
     
    6663        parent.firemobilesimulator.overlay && parent.firemobilesimulator.overlay.updateIcon(parent); 
    6764}; 
     65 
     66firemobilesimulator.core.deleteDevice = function(carrier, deletedId) { 
     67        var prefPrefix = "msim.devicelist." + carrier + "." + deletedId + "." 
     68        firemobilesimulator.common.carrier.deviceBasicAttribute.concat(firemobilesimulator.common.carrier.deviceAttribute[carrier]).forEach(function(attribute){ 
     69                firemobilesimulator.common.pref.deletePref(prefPrefix+attribute); 
     70        }); 
     71 
     72        //既に使われている端末だったら設定をリセット 
     73        if(firemobilesimulator.common.pref.copyUnicharPref("msim.current.id") == deletedId && firemobilesimulator.common.pref.copyUnicharPref("msim.current.carrier") == carrier){ 
     74                firemobilesimulator.core.resetDevice(); 
     75        } 
     76 
     77        //各端末のidを再計算 
     78        var count = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + ".count"); 
     79        //dump(deletedId+":"+count+"\n"); 
     80        //dump((deletedId+1)+":"+count+"\n"); 
     81        for(var i=deletedId+1; i<=count; i++){ 
     82                //dump("[msim]Debug : Id is not the last one. Re-arrange ids.\n"); 
     83                var sPrefPrefix = "msim.devicelist." + carrier + "." + i + "."; 
     84                var ePrefPrefix = "msim.devicelist." + carrier + "." + (i-1) + "."; 
     85                firemobilesimulator.common.carrier.deviceBasicAttribute.concat(firemobilesimulator.common.carrier.deviceAttribute[carrier]).forEach(function(attribute){ 
     86                        firemobilesimulator.common.pref.setUnicharPref(ePrefPrefix+attribute, firemobilesimulator.common.pref.copyUnicharPref(sPrefPrefix+attribute)); 
     87                }); 
     88        } 
     89        firemobilesimulator.common.pref.setIntPref("msim.devicelist." + carrier + ".count", count-1); 
     90}; 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/dialogs/device.js

    r20324 r22847  
    6666                //r.replaceChild(carrierList, r); 
    6767 
    68                 document.getElementById("msim.options.device.device").disabled = false; 
     68                document.getElementById("msim.options.device.label").disabled = false; 
    6969 
    7070        } else if (firemobilesimulator.options.dialogs.device.windowType == "edit") { 
     
    7676                dump(firemobilesimulator.options.dialogs.device.carrier + "\n"); 
    7777                dump(firemobilesimulator.options.dialogs.device.id + "\n"); 
    78                 document.getElementById("msim.options.device.device").value = firemobilesimulator.common.pref 
    79                                 .copyUnicharPref("msim.devicelist." 
    80                                                 + firemobilesimulator.options.dialogs.device.carrier 
    81                                                 + "." + firemobilesimulator.options.dialogs.device.id 
    82                                                 + ".device"); 
     78                document.getElementById("msim.options.device.label").value = firemobilesimulator.common.pref 
     79                                .copyUnicharPref("msim.devicelist." 
     80                                                + firemobilesimulator.options.dialogs.device.carrier 
     81                                                + "." + firemobilesimulator.options.dialogs.device.id 
     82                                                + ".label"); 
    8383                //<textbox id="msim.options.device.carrier" size="50" disabled="true"/> 
    8484                var carrierTextBox = document.createElement("textbox"); 
     
    205205                dump("save-id:" + saveId + "\n"); 
    206206 
    207                 var deviceName = document.getElementById("msim.options.device.device").value; 
     207                var deviceName = document.getElementById("msim.options.device.label").value; 
    208208                var userAgent = document 
    209209                                .getElementById("msim.options.device.useragent").value; 
     
    221221                firemobilesimulator.common.pref.setUnicharPref("msim.devicelist." 
    222222                                                + firemobilesimulator.options.dialogs.device.carrier 
    223                                                 + "." + saveId + ".device", deviceName); 
     223                                                + "." + saveId + ".label", deviceName); 
    224224                firemobilesimulator.common.pref.setUnicharPref("msim.devicelist." 
    225225                                                + firemobilesimulator.options.dialogs.device.carrier 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/dialogs/device.xul

    r20324 r22847  
    2727                <rows id="msim.options.device.rows"> 
    2828                        <row align="center"> 
    29                                 <label control="msim.options.device.device" value="&msim.options.device.device;"/> 
    30                                 <textbox id="msim.options.device.device" size="50"/> 
     29                                <label control="msim.options.device.label" value="&msim.options.device.device;"/> 
     30                                <textbox id="msim.options.device.label" size="50"/> 
    3131                        </row> 
    3232                        <row id="msim.options.device.carrier.row" align="center"> 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/options.js

    r22799 r22847  
    1919 
    2020var firemobilesimulator; 
    21 if(!firemobilesimulator) firemobilesimulator = {}; 
    22 if(!firemobilesimulator.options) firemobilesimulator.options = {}; 
     21if (!firemobilesimulator) 
     22        firemobilesimulator = {}; 
     23if (!firemobilesimulator.options) 
     24        firemobilesimulator.options = {}; 
    2325 
    2426firemobilesimulator.options.optionsDataBoolean = new Array(); 
    2527firemobilesimulator.options.optionsDataInteger = new Array(); 
    26 firemobilesimulator.options.optionsDataString  = new Array(); 
    27  
    28 //Adds a device 
    29 firemobilesimulator.options.addDevice = function(){ 
     28firemobilesimulator.options.optionsDataString = new Array(); 
     29 
     30// Adds a device 
     31firemobilesimulator.options.addDevice = function() { 
    3032        var retVals = {}; 
    31         if(window.openDialog("chrome://msim/content/options/dialogs/device.xul", "msim-device-dialog", "centerscreen,chrome,modal,resizable", "add", null, null, retVals)){ 
    32                 if(retVals.id && retVals.carrier){ 
     33        if (window.openDialog("chrome://msim/content/options/dialogs/device.xul", 
     34                        "msim-device-dialog", "centerscreen,chrome,modal,resizable", "add", 
     35                        null, null, retVals)) { 
     36                if (retVals.id && retVals.carrier) { 
    3337                        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    34                         var deviceBox    = pageDocument.getElementById("msim-listbox"); 
    35                         var listItem = deviceBox.appendItem(retVals.carrier + ":" + retVals.deviceName, retVals.userAgent); 
     38                        var deviceBox = pageDocument.getElementById("msim-listbox"); 
     39                        var listItem = deviceBox.appendItem(retVals.carrier + ":" 
     40                                                        + retVals.deviceName, retVals.userAgent); 
    3641                        listItem.setAttribute("carrier", retVals.carrier); 
    3742                        listItem.setAttribute("id", retVals.id); 
     
    3944                        deviceBox.selectItem(listItem); 
    4045                } 
    41         }else{ 
     46        } else { 
    4247                dump("canceld?\n"); 
    4348        } 
    4449}; 
    4550 
    46 //Handles changing the options page 
    47 firemobilesimulator.options.changePage = function(pageList){ 
     51// Handles changing the options page 
     52firemobilesimulator.options.changePage = function(pageList) { 
    4853        firemobilesimulator.options.storeOptions(); 
    49         document.getElementById("msim-options-iframe").setAttribute("src", pageList.selectedItem.getAttribute("value")); 
    50 }; 
    51  
    52 //Deletes a device 
    53 firemobilesimulator.options.deleteDevice = function(){ 
    54         var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    55         var deviceBox    = pageDocument.getElementById("msim-listbox"); 
     54        document.getElementById("msim-options-iframe").setAttribute("src", 
     55                        pageList.selectedItem.getAttribute("value")); 
     56}; 
     57 
     58// Deletes a device 
     59firemobilesimulator.options.deleteDevice = function() { 
     60        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
     61        var deviceBox = pageDocument.getElementById("msim-listbox"); 
    5662        var selectedItem = deviceBox.selectedItem; 
    57         if(selectedItem && confirm(document.getElementById("msim-string-bundle").getString("msim_deleteConfirmation"))){ 
     63        if (selectedItem 
     64                        && confirm(document.getElementById("msim-string-bundle") 
     65                                        .getString("msim_deleteConfirmation"))) { 
    5866                var carrier = selectedItem.getAttribute("carrier"); 
    5967                var deletedId = parseInt(selectedItem.getAttribute("id")); 
    60                 var prefPrefix = "msim.devicelist." + carrier + "." + deletedId + "." 
    61                 firemobilesimulator.common.carrier.deviceBasicAttribute.concat(firemobilesimulator.common.carrier.deviceAttribute[carrier]).forEach(function(attribute){ 
    62                         firemobilesimulator.common.pref.deletePref(prefPrefix+attribute); 
    63                 }); 
    64  
    65                 //既に使われている端末だったら設定をリセット 
    66                 if(firemobilesimulator.common.pref.copyUnicharPref("msim.current.id") == deletedId && firemobilesimulator.common.pref.copyUnicharPref("msim.current.carrier") == carrier){ 
    67                         firemobilesimulator.core.resetDevice(); 
    68                 } 
    69  
    70                 //各端末のidを再計算 
    71                 var count = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + ".count"); 
    72                 dump(deletedId+":"+count+"\n"); 
    73                 dump((deletedId+1)+":"+count+"\n"); 
    74                 for(var i=deletedId+1; i<=count; i++){ 
    75                         dump("[msim]Debug : Id is not the last one.Re-arrange ids.\n"); 
    76                         var sPrefPrefix = "msim.devicelist." + carrier + "." + i + "."; 
    77                         var ePrefPrefix = "msim.devicelist." + carrier + "." + (i-1) + "."; 
    78                         firemobilesimulator.common.carrier.deviceBasicAttribute.concat(firemobilesimulator.common.carrier.deviceAttribute[carrier]).forEach(function(attribute){ 
    79                                 firemobilesimulator.common.pref.setUnicharPref(ePrefPrefix+attribute, firemobilesimulator.common.pref.copyUnicharPref(sPrefPrefix+attribute)); 
    80                         }); 
    81                 } 
    82                 firemobilesimulator.common.pref.setIntPref("msim.devicelist." + carrier + ".count", count-1); 
    83  
     68                firemobilesimulator.core.deleteDevice(carrier, deletedId); 
    8469                deviceBox.removeChild(selectedItem); 
    8570        } 
    8671}; 
    8772 
    88 //Edits a device 
    89 firemobilesimulator.options.editDevice = function(){ 
    90         var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    91         var deviceBox    = pageDocument.getElementById("msim-listbox"); 
     73// Edits a device 
     74firemobilesimulator.options.editDevice = function() { 
     75        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
     76        var deviceBox = pageDocument.getElementById("msim-listbox"); 
    9277        var selectedItem = deviceBox.selectedItem; 
    9378        var retVals = {}; 
    94         if(selectedItem){ 
     79        if (selectedItem) { 
    9580                var carrier = selectedItem.getAttribute("carrier"); 
    9681                var id = selectedItem.getAttribute("id"); 
    97                 if(window.openDialog("chrome://msim/content/options/dialogs/device.xul", "msim-device-dialog", "centerscreen,chrome,modal,resizable", "edit", carrier, id, retVals)){ 
    98                         //setDevice(carrier, id); 
    99                         if(retVals.id && retVals.carrier){ 
    100                                 if(firemobilesimulator.common.pref.copyUnicharPref("msim.current.id") == retVals.id && firemobilesimulator.common.pref.copyUnicharPref("msim.current.carrier") == retVals.carrier){ 
    101                                         firemobilesimulator.core.setDevice(retVals.carrier, retVals.id); 
     82                if (window.openDialog( 
     83                                "chrome://msim/content/options/dialogs/device.xul", 
     84                                "msim-device-dialog", "centerscreen,chrome,modal,resizable", 
     85                                "edit", carrier, id, retVals)) { 
     86                        // setDevice(carrier, id); 
     87                        if (retVals.id && retVals.carrier) { 
     88                                if (firemobilesimulator.common.pref 
     89                                                .copyUnicharPref("msim.current.id") == retVals.id 
     90                                                && firemobilesimulator.common.pref 
     91                                                                .copyUnicharPref("msim.current.carrier") == retVals.carrier) { 
     92                                        firemobilesimulator.core.setDevice(retVals.carrier, 
     93                                                        retVals.id); 
    10294                                } 
    10395                        } 
    10496                } 
    105         }else{ 
     97        } else { 
    10698                dump("[msim]Error : Device is not selected.\n"); 
    10799        } 
     
    109101 
    110102// Initializes the options dialog box 
    111 firemobilesimulator.options.initializeOptions = function() 
    112 { 
    113         var selectedPage = document.getElementById("msim-page-list").selectedItem.getAttribute("value"); 
     103firemobilesimulator.options.initializeOptions = function() { 
     104        var selectedPage = document.getElementById("msim-page-list").selectedItem 
     105                        .getAttribute("value"); 
    114106 
    115107        // If this is the general page 
    116         if(selectedPage.indexOf("general") != -1){ 
     108        if (selectedPage.indexOf("general") != -1) { 
    117109                firemobilesimulator.options.initializeGeneral(); 
    118         }else if(selectedPage.indexOf("idno") != -1){ 
     110        } else if (selectedPage.indexOf("idno") != -1) { 
    119111                firemobilesimulator.options.initializeIdno(); 
    120         }else if(selectedPage.indexOf("devices") != -1){ 
     112        } else if (selectedPage.indexOf("devices") != -1) { 
    121113                firemobilesimulator.options.initializeDevices(); 
    122         }else if(selectedPage.indexOf("gps") != -1){ 
     114        } else if (selectedPage.indexOf("gps") != -1) { 
    123115                firemobilesimulator.options.initializeGps(); 
    124         }else if(selectedPage.indexOf("pictogram") != -1){ 
     116        } else if (selectedPage.indexOf("pictogram") != -1) { 
    125117                firemobilesimulator.options.initializePictogram(); 
    126118        } 
     
    128120 
    129121// Initializes the general page 
    130 firemobilesimulator.options.initializeGeneral = function() 
    131 { 
    132         var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    133         pageDocument.getElementById("msim-checkbox-general-force-screen-width").checked = firemobilesimulator.common.pref.getBoolPref("msim.config.general.force-screen-width"); 
    134         pageDocument.getElementById("msim-checkbox-general-reset-device-onquit").checked = firemobilesimulator.common.pref.getBoolPref("msim.config.general.reset-device-onquit"); 
     122firemobilesimulator.options.initializeGeneral = function() { 
     123        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
     124        pageDocument.getElementById("msim-checkbox-general-force-screen-width").checked = firemobilesimulator.common.pref 
     125                        .getBoolPref("msim.config.general.force-screen-width"); 
     126        pageDocument.getElementById("msim-checkbox-general-reset-device-onquit").checked = firemobilesimulator.common.pref 
     127                        .getBoolPref("msim.config.general.reset-device-onquit"); 
    135128}; 
    136129 
    137130// Initializes the general page 
    138 firemobilesimulator.options.initializeIdno = function() 
    139 { 
    140         var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    141         pageDocument.getElementById("msim-textbox-docomo-uid").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.uid")); 
    142         pageDocument.getElementById("msim-textbox-docomo-ser").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.ser")); 
    143         pageDocument.getElementById("msim-textbox-docomo-icc").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.icc")); 
    144         pageDocument.getElementById("msim-textbox-docomo-guid").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.guid")); 
    145         pageDocument.getElementById("msim-textbox-au-uid").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.uid")); 
    146         pageDocument.getElementById("msim-textbox-softbank-uid").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.SB.uid")); 
    147         pageDocument.getElementById("msim-textbox-softbank-serial").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.SB.serial")); 
     131firemobilesimulator.options.initializeIdno = function() { 
     132        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
     133        pageDocument.getElementById("msim-textbox-docomo-uid").setAttribute( 
     134                        "value", 
     135                        firemobilesimulator.common.pref 
     136                                        .copyUnicharPref("msim.config.DC.uid")); 
     137        pageDocument.getElementById("msim-textbox-docomo-ser").setAttribute( 
     138                        "value", 
     139                        firemobilesimulator.common.pref 
     140                                        .copyUnicharPref("msim.config.DC.ser")); 
     141        pageDocument.getElementById("msim-textbox-docomo-icc").setAttribute( 
     142                        "value", 
     143                        firemobilesimulator.common.pref 
     144                                        .copyUnicharPref("msim.config.DC.icc")); 
     145        pageDocument.getElementById("msim-textbox-docomo-guid").setAttribute( 
     146                        "value", 
     147                        firemobilesimulator.common.pref 
     148                                        .copyUnicharPref("msim.config.DC.guid")); 
     149        pageDocument.getElementById("msim-textbox-au-uid").setAttribute( 
     150                        "value", 
     151                        firemobilesimulator.common.pref 
     152                                        .copyUnicharPref("msim.config.AU.uid")); 
     153        pageDocument.getElementById("msim-textbox-softbank-uid").setAttribute( 
     154                        "value", 
     155                        firemobilesimulator.common.pref 
     156                                        .copyUnicharPref("msim.config.SB.uid")); 
     157        pageDocument.getElementById("msim-textbox-softbank-serial").setAttribute( 
     158                        "value", 
     159                        firemobilesimulator.common.pref 
     160                                        .copyUnicharPref("msim.config.SB.serial")); 
    148161}; 
    149162 
    150163// Initializes the devices page 
    151 firemobilesimulator.options.initializeDevices = function(){ 
     164firemobilesimulator.options.initializeDevices = function() { 
    152165        dump("firemobilesimulator.options.initializeDevices\n"); 
    153166        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    154         var deviceBox    = pageDocument.getElementById("msim-listbox"); 
    155         var deviceCount  = 0; 
    156  
    157         while(deviceBox.lastChild.tagName != "listhead"){ 
    158                 dump("removeList:"+deviceBox.lastChild.tagName+"\n"); 
     167        var deviceBox = pageDocument.getElementById("msim-listbox"); 
     168        var deviceCount = 0; 
     169 
     170        while (deviceBox.lastChild.tagName != "listhead") { 
     171                dump("removeList:" + deviceBox.lastChild.tagName + "\n"); 
    159172                deviceBox.removeChild(deviceBox.lastChild); 
    160173        } 
    161174 
    162         firemobilesimulator.common.carrier.carrierArray.forEach(function(carrier){ 
    163  
    164                 deviceCount = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + ".count"); 
    165                 for(var i = 1; i <= deviceCount; i++){ 
    166                         var device = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".device"); 
    167                         var useragent = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".useragent"); 
    168                         if(device){ 
    169                                 var listItem = deviceBox.appendItem(carrier + ":" + device, useragent); 
     175        firemobilesimulator.common.carrier.carrierArray.forEach(function(carrier) { 
     176 
     177                deviceCount = firemobilesimulator.common.pref 
     178                                .getIntPref("msim.devicelist." + carrier + ".count"); 
     179                for (var i = 1; i <= deviceCount; i++) { 
     180                        var device = firemobilesimulator.common.pref 
     181                                        .copyUnicharPref("msim.devicelist." + carrier + "." + i 
     182                                                        + ".label"); 
     183                        var useragent = firemobilesimulator.common.pref 
     184                                        .copyUnicharPref("msim.devicelist." + carrier + "." + i 
     185                                                        + ".useragent"); 
     186                        if (device) { 
     187                                var listItem = deviceBox.appendItem(carrier + ":" + device, 
     188                                                useragent); 
    170189                                listItem.setAttribute("carrier", carrier); 
    171190                                listItem.setAttribute("id", i); 
     
    178197 
    179198// Saves the user's options 
    180 firemobilesimulator.options.saveOptions = function(){ 
    181         var option      = null; 
     199firemobilesimulator.options.saveOptions = function() { 
     200        var option = null; 
    182201        var optionValue = null; 
    183202 
     
    186205 
    187206        // Loop through the boolean options 
    188         for(option in firemobilesimulator.options.optionsDataBoolean){ 
    189                 firemobilesimulator.common.pref.setBoolPref(option, firemobilesimulator.options.optionsDataBoolean[option]); 
     207        for (option in firemobilesimulator.options.optionsDataBoolean) { 
     208                firemobilesimulator.common.pref.setBoolPref(option, 
     209                                firemobilesimulator.options.optionsDataBoolean[option]); 
    190210        } 
    191211 
    192212        // Loop through the integer options 
    193         for(option in firemobilesimulator.options.optionsDataInteger){ 
    194                 firemobilesimulator.common.pref.setIntPref(option, firemobilesimulator.options.optionsDataInteger[option]); 
     213        for (option in firemobilesimulator.options.optionsDataInteger) { 
     214                firemobilesimulator.common.pref.setIntPref(option, 
     215                                firemobilesimulator.options.optionsDataInteger[option]); 
    195216        } 
    196217 
    197218        // Loop through the string options 
    198         for(option in firemobilesimulator.options.optionsDataString){ 
    199                 firemobilesimulator.common.pref.setUnicharPref(option, firemobilesimulator.options.optionsDataString[option]); 
     219        for (option in firemobilesimulator.options.optionsDataString) { 
     220                firemobilesimulator.common.pref.setUnicharPref(option, 
     221                                firemobilesimulator.options.optionsDataString[option]); 
    200222        } 
    201223}; 
    202224 
    203225// Stores the user's options to be saved later 
    204 firemobilesimulator.options.storeOptions = function(){ 
    205         var iFrame       = document.getElementById("msim-options-iframe"); 
    206         var iFrameSrc    = iFrame.getAttribute("src"); 
     226firemobilesimulator.options.storeOptions = function() { 
     227        var iFrame = document.getElementById("msim-options-iframe"); 
     228        var iFrameSrc = iFrame.getAttribute("src"); 
    207229        var pageDocument = iFrame.contentDocument; 
    208230 
    209231        // If this is the general page 
    210         if(iFrameSrc.indexOf("general") != -1){ 
     232        if (iFrameSrc.indexOf("general") != -1) { 
    211233                dump("[msim]store general.\n"); 
    212                 firemobilesimulator.options.optionsDataBoolean["msim.config.general.force-screen-width"]  = pageDocument.getElementById("msim-checkbox-general-force-screen-width").checked; 
    213                 firemobilesimulator.options.optionsDataBoolean["msim.config.general.reset-device-onquit"] = pageDocument.getElementById("msim-checkbox-general-reset-device-onquit").checked; 
    214                 //Nothing to do 
    215         }else if(iFrameSrc.indexOf("idno") != -1){ 
     234                firemobilesimulator.options.optionsDataBoolean["msim.config.general.force-screen-width"] = pageDocument 
     235                                .getElementById("msim-checkbox-general-force-screen-width").checked; 
     236                firemobilesimulator.options.optionsDataBoolean["msim.config.general.reset-device-onquit"] = pageDocument 
     237                                .getElementById("msim-checkbox-general-reset-device-onquit").checked; 
     238                // Nothing to do 
     239        } else if (iFrameSrc.indexOf("idno") != -1) { 
    216240                dump("[msim]store idno.\n"); 
    217                 firemobilesimulator.options.optionsDataString["msim.config.DC.uid"]    = pageDocument.getElementById("msim-textbox-docomo-uid").value; 
    218                 firemobilesimulator.options.optionsDataString["msim.config.DC.ser"]    = pageDocument.getElementById("msim-textbox-docomo-ser").value; 
    219                 firemobilesimulator.options.optionsDataString["msim.config.DC.icc"]    = pageDocument.getElementById("msim-textbox-docomo-icc").value; 
    220                 firemobilesimulator.options.optionsDataString["msim.config.DC.guid"]   = pageDocument.getElementById("msim-textbox-docomo-guid").value; 
    221                 firemobilesimulator.options.optionsDataString["msim.config.AU.uid"]    = pageDocument.getElementById("msim-textbox-au-uid").value; 
    222                 firemobilesimulator.options.optionsDataString["msim.config.SB.uid"]    = pageDocument.getElementById("msim-textbox-softbank-uid").value; 
    223                 firemobilesimulator.options.optionsDataString["msim.config.SB.serial"] = pageDocument.getElementById("msim-textbox-softbank-serial").value; 
    224                 var carrier = firemobilesimulator.common.pref.copyUnicharPref("msim.current.carrier"); 
    225                 if(carrier == firemobilesimulator.common.carrier.SOFTBANK){ 
     241                firemobilesimulator.options.optionsDataString["msim.config.DC.uid"] = pageDocument 
     242                                .getElementById("msim-textbox-docomo-uid").value; 
     243                firemobilesimulator.options.optionsDataString["msim.config.DC.ser"] = pageDocument 
     244                                .getElementById("msim-textbox-docomo-ser").value; 
     245                firemobilesimulator.options.optionsDataString["msim.config.DC.icc"] = pageDocument 
     246                                .getElementById("msim-textbox-docomo-icc").value; 
     247                firemobilesimulator.options.optionsDataString["msim.config.DC.guid"] = pageDocument 
     248                                .getElementById("msim-textbox-docomo-guid").value; 
     249                firemobilesimulator.options.optionsDataString["msim.config.AU.uid"] = pageDocument 
     250                                .getElementById("msim-textbox-au-uid").value; 
     251                firemobilesimulator.options.optionsDataString["msim.config.SB.uid"] = pageDocument 
     252                                .getElementById("msim-textbox-softbank-uid").value; 
     253                firemobilesimulator.options.optionsDataString["msim.config.SB.serial"] = pageDocument 
     254                                .getElementById("msim-textbox-softbank-serial").value; 
     255                var carrier = firemobilesimulator.common.pref 
     256                                .copyUnicharPref("msim.current.carrier"); 
     257                if (carrier == firemobilesimulator.common.carrier.SOFTBANK) { 
    226258                        dump("[msim]Debug : Current Carrier is SoftBank. Replace User-Agent.\n"); 
    227                         var id = firemobilesimulator.common.pref.copyUnicharPref("msim.current.id"); 
    228                         var useragent = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist."+carrier+"."+id+".useragent"); 
    229                         var newUserAgent = firemobilesimulator.common.carrier.getSoftBankUserAgent(useragent, firemobilesimulator.options.optionsDataString["msim.config.SB.serial"]); 
     259                        var id = firemobilesimulator.common.pref 
     260                                        .copyUnicharPref("msim.current.id"); 
     261                        var useragent = firemobilesimulator.common.pref 
     262                                        .copyUnicharPref("msim.devicelist." + carrier + "." + id 
     263                                                        + ".useragent"); 
     264                        var newUserAgent = firemobilesimulator.common.carrier 
     265                                        .getSoftBankUserAgent( 
     266                                                        useragent, 
     267                                                        firemobilesimulator.options.optionsDataString["msim.config.SB.serial"]); 
    230268                        firemobilesimulator.options.optionsDataString["general.useragent.override"] = newUserAgent; 
    231269                        firemobilesimulator.options.optionsDataString["msim.current.useragent"] = newUserAgent; 
    232270                } 
    233         }else if(iFrameSrc.indexOf("devices") != -1){ 
    234                 //Nothing to do 
    235         }else if(iFrameSrc.indexOf("gps") != -1){ 
     271        } else if (iFrameSrc.indexOf("devices") != -1) { 
     272                // Nothing to do 
     273        } else if (iFrameSrc.indexOf("gps") != -1) { 
    236274                dump("[msim]store gps.\n"); 
    237                 firemobilesimulator.options.optionsDataString["msim.config.DC.gps.areacode"] = pageDocument.getElementById("msim-textbox-docomo-gps-areacode").value; 
    238                 firemobilesimulator.options.optionsDataString["msim.config.DC.gps.areaname"] = pageDocument.getElementById("msim-textbox-docomo-gps-areaname").value; 
    239                 firemobilesimulator.options.optionsDataString["msim.config.DC.gps.lat"]      = pageDocument.getElementById("msim-textbox-docomo-gps-lat").value; 
    240                 firemobilesimulator.options.optionsDataString["msim.config.DC.gps.lon"]      = pageDocument.getElementById("msim-textbox-docomo-gps-lon").value; 
    241                 firemobilesimulator.options.optionsDataString["msim.config.DC.gps.alt"]      = pageDocument.getElementById("msim-textbox-docomo-gps-alt").value; 
    242                 firemobilesimulator.options.optionsDataString["msim.config.AU.gps.lat"]      = pageDocument.getElementById("msim-textbox-au-gps-lat").value; 
    243                 firemobilesimulator.options.optionsDataString["msim.config.AU.gps.lon"]      = pageDocument.getElementById("msim-textbox-au-gps-lon").value; 
    244         }else if(iFrameSrc.indexOf("pictogram") != -1){ 
     275                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.areacode"] = pageDocument 
     276                                .getElementById("msim-textbox-docomo-gps-areacode").value; 
     277                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.areaname"] = pageDocument 
     278                                .getElementById("msim-textbox-docomo-gps-areaname").value; 
     279                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.lat"] = pageDocument 
     280                                .getElementById("msim-textbox-docomo-gps-lat").value; 
     281                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.lon"] = pageDocument 
     282                                .getElementById("msim-textbox-docomo-gps-lon").value; 
     283                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.alt"] = pageDocument 
     284                                .getElementById("msim-textbox-docomo-gps-alt").value; 
     285                firemobilesimulator.options.optionsDataString["msim.config.AU.gps.lat"] = pageDocument 
     286                                .getElementById("msim-textbox-au-gps-lat").value; 
     287                firemobilesimulator.options.optionsDataString["msim.config.AU.gps.lon"] = pageDocument 
     288                                .getElementById("msim-textbox-au-gps-lon").value; 
     289        } else if (iFrameSrc.indexOf("pictogram") != -1) { 
    245290                dump("[msim]store pictogram.\n"); 
    246                 firemobilesimulator.options.optionsDataBoolean["msim.config.DC.pictogram.enabled"] = pageDocument.getElementById("msim-textbox-docomo-pictogram-enabled").checked; 
    247                 firemobilesimulator.options.optionsDataBoolean["msim.config.AU.pictogram.enabled"] = pageDocument.getElementById("msim-textbox-au-pictogram-enabled").checked; 
    248                 firemobilesimulator.options.optionsDataBoolean["msim.config.SB.pictogram.enabled"] = pageDocument.getElementById("msim-textbox-softbank-pictogram-enabled").checked; 
     291                firemobilesimulator.options.optionsDataBoolean["msim.config.DC.pictogram.enabled"] = pageDocument 
     292                                .getElementById("msim-textbox-docomo-pictogram-enabled").checked; 
     293                firemobilesimulator.options.optionsDataBoolean["msim.config.AU.pictogram.enabled"] = pageDocument 
     294                                .getElementById("msim-textbox-au-pictogram-enabled").checked; 
     295                firemobilesimulator.options.optionsDataBoolean["msim.config.SB.pictogram.enabled"] = pageDocument 
     296                                .getElementById("msim-textbox-softbank-pictogram-enabled").checked; 
    249297        } 
    250298}; 
    251299 
    252300// Called whenever the device box is selected 
    253 firemobilesimulator.options.deviceSelected = function(){ 
     301firemobilesimulator.options.deviceSelected = function() { 
    254302        dump("something selected\n"); 
    255303        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    256         var deviceBox    = pageDocument.getElementById("msim-listbox"); 
     304        var deviceBox = pageDocument.getElementById("msim-listbox"); 
    257305        var selectedItem = deviceBox.selectedItem; 
    258         var editButton   = pageDocument.getElementById("msim-edit"); 
    259         if(selectedItem){ 
     306        var editButton = pageDocument.getElementById("msim-edit"); 
     307        if (selectedItem) { 
    260308                editButton.disabled = false; 
    261         }else{ 
     309        } else { 
    262310                editButton.disabled = true; 
    263311        } 
    264312}; 
    265313 
    266 firemobilesimulator.options.clearAllDeviceSettings = function(){ 
    267         if(confirm(document.getElementById("msim-string-bundle").getString("msim_clearAllConfirmation"))){ 
    268                 firemobilesimulator.common.carrier.carrierArray.forEach(function(carrier){ 
    269                         dump("target carrier is "+carrier+"\n"); 
    270                         firemobilesimulator.common.pref.deletePref("msim.devicelist." + carrier + ".count"); 
    271                         var count = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + ".count"); 
    272                         for(var i=1; i<=count; i++){ 
     314firemobilesimulator.options.clearAllDeviceSettings = function() { 
     315        if (confirm(document.getElementById("msim-string-bundle") 
     316                        .getString("msim_clearAllConfirmation"))) { 
     317                firemobilesimulator.common.carrier.carrierArray.forEach(function( 
     318                                carrier) { 
     319                        dump("target carrier is " + carrier + "\n"); 
     320                        firemobilesimulator.common.pref.deletePref("msim.devicelist." 
     321                                        + carrier + ".count"); 
     322                        var count = firemobilesimulator.common.pref 
     323                                        .getIntPref("msim.devicelist." + carrier + ".count"); 
     324                        for (var i = 1; i <= count; i++) { 
    273325                                var prefPrefix = "msim.devicelist." + carrier + "." + i + "."; 
    274326 
    275                                 dump("target firemobilesimulator.common.pref.x is "+prefPrefix+"\n"); 
    276                                 firemobilesimulator.common.carrier.deviceBasicAttribute.concat(firemobilesimulator.common.carrier.deviceAttribute[carrier]).forEach(function(attribute){ 
    277                                         firemobilesimulator.common.pref.deletePref(prefPrefix+attribute); 
    278                                 }); 
     327                                dump("target firemobilesimulator.common.pref.x is " 
     328                                                + prefPrefix + "\n"); 
     329                                firemobilesimulator.common.carrier.deviceBasicAttribute 
     330                                                .concat(firemobilesimulator.common.carrier.deviceAttribute[carrier]) 
     331                                                .forEach(function(attribute) { 
     332                                                        firemobilesimulator.common.pref 
     333                                                                        .deletePref(prefPrefix + attribute); 
     334                                                }); 
    279335                        } 
    280336                }); 
    281337 
    282338                firemobilesimulator.common.pref.deletePref("msim.current.carrier"); 
    283                 firemobilesimulator.common.pref.deletePref("msim.current.device"); 
    284                 firemobilesimulator.common.pref.deletePref("general.useragent.override"); 
     339                firemobilesimulator.common.pref.deletePref("msim.current.label"); 
     340                firemobilesimulator.common.pref 
     341                                .deletePref("general.useragent.override"); 
    285342                firemobilesimulator.common.pref.deletePref("msim.current.useragent"); 
    286343                firemobilesimulator.common.pref.deletePref("msim.current.id"); 
     
    292349 
    293350// Initializes the general page 
    294 firemobilesimulator.options.initializeGps = function() 
    295 { 
    296         var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    297         pageDocument.getElementById("msim-textbox-docomo-gps-areacode").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.areacode")); 
    298         pageDocument.getElementById("msim-textbox-docomo-gps-areaname").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.areaname")); 
    299         pageDocument.getElementById("msim-textbox-docomo-gps-lat").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.lat")); 
    300         pageDocument.getElementById("msim-textbox-docomo-gps-lon").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.lon")); 
    301         pageDocument.getElementById("msim-textbox-docomo-gps-alt").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.alt")); 
    302         pageDocument.getElementById("msim-textbox-au-gps-lat").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.lat")); 
    303         pageDocument.getElementById("msim-textbox-au-gps-lon").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.lon")); 
    304 }; 
    305  
    306 firemobilesimulator.options.initializePictogram = function() 
    307 { 
     351firemobilesimulator.options.initializeGps = function() { 
     352        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
     353        pageDocument.getElementById("msim-textbox-docomo-gps-areacode") 
     354                        .setAttribute( 
     355                                        "value", 
     356                                        firemobilesimulator.common.pref 
     357                                                        .copyUnicharPref("msim.config.DC.gps.areacode")); 
     358        pageDocument.getElementById("msim-textbox-docomo-gps-areaname") 
     359                        .setAttribute( 
     360                                        "value", 
     361                                        firemobilesimulator.common.pref 
     362                                                        .copyUnicharPref("msim.config.DC.gps.areaname")); 
     363        pageDocument.getElementById("msim-textbox-docomo-gps-lat").setAttribute( 
     364                        "value", 
     365                        firemobilesimulator.common.pref 
     366                                        .copyUnicharPref("msim.config.DC.gps.lat")); 
     367        pageDocument.getElementById("msim-textbox-docomo-gps-lon").setAttribute( 
     368                        "value", 
     369                        firemobilesimulator.common.pref 
     370                                        .copyUnicharPref("msim.config.DC.gps.lon")); 
     371        pageDocument.getElementById("msim-textbox-docomo-gps-alt").setAttribute( 
     372                        "value", 
     373                        firemobilesimulator.common.pref 
     374                                        .copyUnicharPref("msim.config.DC.gps.alt")); 
     375        pageDocument.getElementById("msim-textbox-au-gps-lat").setAttribute( 
     376                        "value", 
     377                        firemobilesimulator.common.pref 
     378                                        .copyUnicharPref("msim.config.AU.gps.lat")); 
     379        pageDocument.getElementById("msim-textbox-au-gps-lon").setAttribute( 
     380                        "value", 
     381                        firemobilesimulator.common.pref 
     382                                        .copyUnicharPref("msim.config.AU.gps.lon")); 
     383}; 
     384 
     385firemobilesimulator.options.initializePictogram = function() { 
    308386        dump("[msim]initializePictogram.\n"); 
    309387        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    310         pageDocument.getElementById("msim-textbox-docomo-pictogram-enabled").checked = firemobilesimulator.common.pref.getBoolPref("msim.config.DC.pictogram.enabled"); 
    311         pageDocument.getElementById("msim-textbox-au-pictogram-enabled").checked = firemobilesimulator.common.pref.getBoolPref("msim.config.AU.pictogram.enabled"); 
    312         pageDocument.getElementById("msim-textbox-softbank-pictogram-enabled").checked = firemobilesimulator.common.pref.getBoolPref("msim.config.SB.pictogram.enabled"); 
    313 }; 
    314  
    315 //XMLでのエクスポート 
    316 firemobilesimulator.options.exportDevices = function() 
    317 { 
    318     var filePicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker); 
    319     var result     = null; 
    320  
    321     filePicker.defaultExtension = "xml"; 
    322     filePicker.defaultString    = "firemobilesimulator.xml"; 
    323  
    324     filePicker.appendFilter("XML Files", "*.xml"); 
    325     filePicker.init(window, "Export Devices", filePicker.modeSave); 
    326  
    327     result = filePicker.show(); 
    328  
    329     if(result == filePicker.returnOK || result == filePicker.returnReplace) 
    330     { 
    331         var file          = filePicker.file; 
    332         var listItem      = null; 
    333         var outputStream  = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); 
    334         var xmlDocument   = document.implementation.createDocument("", "", null); 
    335         var rootElement   = xmlDocument.createElement("firemobilesimulator"); 
    336         var xmlSerializer = new XMLSerializer(); 
    337  
    338         if(!file.exists()){ 
    339                 file.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 00644); 
    340         } 
    341  
    342         var eDeviceList = xmlDocument.createElement("DeviceList"); 
    343  
    344         // Loop through the possible user agents 
    345                 firemobilesimulator.common.carrier.carrierArray.forEach(function(carrier){ 
    346                         var deviceCount = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + ".count"); 
    347                         for(var i = 1; i <= deviceCount; i++){ 
     388        pageDocument.getElementById("msim-textbox-docomo-pictogram-enabled").checked = firemobilesimulator.common.pref 
     389                        .getBoolPref("msim.config.DC.pictogram.enabled"); 
     390        pageDocument.getElementById("msim-textbox-au-pictogram-enabled").checked = firemobilesimulator.common.pref 
     391                        .getBoolPref("msim.config.AU.pictogram.enabled"); 
     392        pageDocument.getElementById("msim-textbox-softbank-pictogram-enabled").checked = firemobilesimulator.common.pref 
     393                        .getBoolPref("msim.config.SB.pictogram.enabled"); 
     394}; 
     395 
     396// XMLでのエクスポート 
     397firemobilesimulator.options.exportDevices = function() { 
     398        var filePicker = Components.classes["@mozilla.org/filepicker;1"] 
     399                        .createInstance(Components.interfaces.nsIFilePicker); 
     400        var result = null; 
     401 
     402        filePicker.defaultExtension = "xml"; 
     403        filePicker.defaultString = "firemobilesimulator.xml"; 
     404 
     405        filePicker.appendFilter("XML Files", "*.xml"); 
     406        filePicker.init(window, "Export Devices", filePicker.modeSave); 
     407 
     408        result = filePicker.show(); 
     409 
     410        if (result == filePicker.returnOK || result == filePicker.returnReplace) { 
     411                var file = filePicker.file; 
     412                var listItem = null; 
     413                var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"] 
     414                                .createInstance(Components.interfaces.nsIFileOutputStream); 
     415                var xmlDocument = document.implementation.createDocument("", "", null); 
     416                var rootElement = xmlDocument.createElement("firemobilesimulator"); 
     417                var xmlSerializer = new XMLSerializer(); 
     418 
     419                if (!file.exists()) { 
     420                        file.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 00644); 
     421                } 
     422 
     423                var eDeviceList = xmlDocument.createElement("DeviceList"); 
     424 
     425                // Loop through the possible user agents 
     426                firemobilesimulator.common.carrier.carrierArray.forEach(function( 
     427                                carrier) { 
     428                        var deviceCount = firemobilesimulator.common.pref 
     429                                        .getIntPref("msim.devicelist." + carrier + ".count"); 
     430                        for (var i = 1; i <= deviceCount; i++) { 
    348431 
    349432                                var eDevice = xmlDocument.createElement("Device"); 
    350433                                rootElement.appendChild(eDevice); 
    351434 
    352                                 var deviceName = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".device"); 
    353                                 var useragent = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".useragent"); 
    354                                 var extraHeaderCount = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + "." + i + ".extra-header.count"); 
    355                                 var screenWidth = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".screen-width"); 
    356                                 var screenHeight = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".screen-height"); 
     435                                var deviceName = firemobilesimulator.common.pref 
     436                                                .copyUnicharPref("msim.devicelist." + carrier + "." + i 
     437                                                                + ".label"); 
     438                                var useragent = firemobilesimulator.common.pref 
     439                                                .copyUnicharPref("msim.devicelist." + carrier + "." + i 
     440                                                                + ".useragent"); 
     441                                var extraHeaderCount = firemobilesimulator.common.pref 
     442                                                .getIntPref("msim.devicelist." + carrier + "." + i 
     443                                                                + ".extra-header.count"); 
     444                                var screenWidth = firemobilesimulator.common.pref 
     445                                                .copyUnicharPref("msim.devicelist." + carrier + "." + i 
     446                                                                + ".screen-width"); 
     447                                var screenHeight = firemobilesimulator.common.pref 
     448                                                .copyUnicharPref("msim.devicelist." + carrier + "." + i 
     449                                                                + ".screen-height"); 
    357450 
    358451                                var eId = xmlDocument.createElement("Id"); 
    359452                                eId.appendChild(xmlDocument.createTextNode(i)); 
    360453                                var eDeviceName = xmlDocument.createElement("DeviceName"); 
    361                                 eDeviceName.appendChild(xmlDocument.createTextNode(deviceName)); 
     454                                eDeviceName.appendChild(xmlDocument.createTextNode(deviceName)) 
    362455                                var eUserAgent = xmlDocument.createElement("UserAgent"); 
    363456                                eUserAgent.appendChild(xmlDocument.createTextNode(useragent)); 
     
    365458                                eCarrier.appendChild(xmlDocument.createTextNode(carrier)); 
    366459                                var eScreenWidth = xmlDocument.createElement("ScreenWidth"); 
    367                                 eScreenWidth.appendChild(xmlDocument.createTextNode(screenWidth)); 
     460                                eScreenWidth.appendChild(xmlDocument 
     461                                                .createTextNode(screenWidth)); 
    368462                                var eScreenHeight = xmlDocument.createElement("ScreenHeight"); 
    369                                 eScreenHeight.appendChild(xmlDocument.createTextNode(screenHeight)); 
     463                                eScreenHeight.appendChild(xmlDocument 
     464                                                .createTextNode(screenHeight)); 
    370465                                var eExtraHeaders = xmlDocument.createElement("ExtraHeaders"); 
    371466 
    372                                 for(var j = 1; j <= extraHeaderCount; j++){ 
     467                                for (var j = 1; j <= extraHeaderCount; j++) { 
    373468                                        var eExtraHeader = xmlDocument.createElement("Header"); 
    374                                         var headerName = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".extra-header."+j+".name"); 
    375                                         var headerValue = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".extra-header."+j+".value"); 
     469                                        var headerName = firemobilesimulator.common.pref 
     470                                                        .copyUnicharPref("msim.devicelist." + carrier + "." 
     471                                                                        + i + ".extra-header." + j + ".name"); 
     472                                        var headerValue = firemobilesimulator.common.pref 
     473                                                        .copyUnicharPref("msim.devicelist." + carrier + "." 
     474                                                                        + i + ".extra-header." + j + ".value"); 
    376475                                        var eHeaderName = xmlDocument.createElement("Name"); 
    377476                                        var eHeaderValue = xmlDocument.createElement("Value"); 
    378                                         eHeaderName.appendChild(xmlDocument.createTextNode(headerName)); 
    379                                         eHeaderValue.appendChild(xmlDocument.createTextNode(headerValue)); 
     477                                        eHeaderName.appendChild(xmlDocument 
     478                                                        .createTextNode(headerName)); 
     479                                        eHeaderValue.appendChild(xmlDocument 
     480                                                        .createTextNode(headerValue)); 
    380481                                        eExtraHeader.appendChild(eHeaderName); 
    381482                                        eExtraHeader.appendChild(eHeaderValue); 
     
    392493                }); 
    393494 
    394         rootElement.appendChild(eDeviceList); 
    395         xmlDocument.appendChild(rootElement); 
    396  
    397         outputStream.init(file, 0x04 | 0x08 | 0x20, 00644, null); 
    398         //日本語を含むUTF-8対応 
    399         var xmlContent = unescape(encodeURIComponent(XML(xmlSerializer.serializeToString(xmlDocument)).toXMLString())); 
    400         outputStream.write(xmlContent, xmlContent.length); 
    401         outputStream.close(); 
    402     } 
    403     return; 
    404 }; 
    405  
    406 firemobilesimulator.options.importDevices = function() 
    407 { 
    408     var filePicker   = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker); 
    409     var stringBundle = document.getElementById("msim-string-bundle"); 
    410  
    411     filePicker.appendFilter("XML Files", "*.xml"); 
    412     filePicker.init(window, "Import Devices", filePicker.modeOpen); 
    413  
    414     // If the user selected an XML file 
    415     if(filePicker.show() != filePicker.returnOK){ 
    416         dump("not ok\n"); 
    417         return; 
    418     } 
    419  
    420     var file     = filePicker.file; 
    421     var filePath = file.path; 
    422  
    423     // If the file exists, is a file and is readable 
    424     if(!file.exists() || !file.isFile() || !file.isReadable()){ 
    425         alert(stringBundle.getFormattedString("msim_importFileFailed", [filePath])); 
    426         return; 
    427     } 
    428  
    429     var request     = new XMLHttpRequest(); 
    430     var xmlDocument = null; 
    431  
    432     request.open("get", "file://" + filePath, false); 
    433     request.send(null); 
    434  
    435     var xmlDocumentNode = request.responseXML; 
    436     var xmlDocumentElement = xmlDocumentNode.documentElement; 
    437  
    438     // If the file could not be parsed correctly 
    439     if(xmlDocumentNode.nodeName == "parsererror"){ 
    440         alert(stringBundle.getFormattedString("msim_importParserError", [filePath])); 
     495                rootElement.appendChild(eDeviceList); 
     496                xmlDocument.appendChild(rootElement); 
     497 
     498                outputStream.init(file, 0x04 | 0x08 | 0x20, 00644, null); 
     499                // 日本語を含むUTF-8対応 
     500                var xmlContent = unescape(encodeURIComponent(XML(xmlSerializer 
     501                                .serializeToString(xmlDocument)).toXMLString())); 
     502                outputStream.write(xmlContent, xmlContent.length); 
     503                outputStream.close(); 
     504        } 
    441505        return; 
    442     } 
     506}; 
     507 
     508firemobilesimulator.options.importDevices = function() { 
     509        var filePicker = Components.classes["@mozilla.org/filepicker;1"] 
     510                        .createInstance(Components.interfaces.nsIFilePicker); 
     511        var stringBundle = document.getElementById("msim-string-bundle"); 
     512 
     513        filePicker.appendFilter("XML Files", "*.xml"); 
     514        filePicker.init(window, "Import Devices", filePicker.modeOpen); 
     515 
     516        // If the user selected an XML file 
     517        if (filePicker.show() != filePicker.returnOK) { 
     518                dump("not ok\n"); 
     519                return; 
     520        } 
     521 
     522        var file = filePicker.file; 
     523        var filePath = file.path; 
     524 
     525        // If the file exists, is a file and is readable 
     526        if (!file.exists() || !file.isFile() || !file.isReadable()) { 
     527                alert(stringBundle.getFormattedString("msim_importFileFailed", 
     528                                [filePath])); 
     529                return; 
     530        } 
     531 
     532        var request = new XMLHttpRequest(); 
     533        var xmlDocument = null; 
     534 
     535        request.open("get", "file://" + filePath, false); 
     536        request.send(null); 
     537 
     538        var xmlDocumentNode = request.responseXML; 
     539        var xmlDocumentElement = xmlDocumentNode.documentElement; 
     540 
     541        // If the file could not be parsed correctly 
     542        if (xmlDocumentNode.nodeName == "parsererror") { 
     543                alert(stringBundle.getFormattedString("msim_importParserError", 
     544                                [filePath])); 
     545                return; 
     546        } 
    443547 
    444548        var deviceResults = null; 
    445549        var deviceElement = null; 
    446     var xPathEvaluator    = new XPathEvaluator(); 
    447     var resolver          = xPathEvaluator.createNSResolver(xmlDocumentElement); 
    448     deviceResults = xPathEvaluator.evaluate("//DeviceList/Device", xmlDocumentNode, resolver, XPathResult.ANY_TYPE, null); 
    449  
    450     if(deviceResults.length == 0){ 
    451                 alert(stringBundle.getFormattedString("msim_importParserError", [filePath])); 
     550        var xPathEvaluator = new XPathEvaluator(); 
     551        var resolver = xPathEvaluator.createNSResolver(xmlDocumentElement); 
     552        deviceResults = xPathEvaluator.evaluate("//DeviceList/Device", 
     553                        xmlDocumentNode, resolver, XPathResult.ORDERED_NODE_ITERATOR_TYPE, 
     554                        null); 
     555 
     556        if (deviceResults.length == 0) { 
     557                alert(stringBundle.getFormattedString("msim_importParserError", 
     558                                [filePath])); 
    452559                return; 
    453     } 
    454  
    455     // If no user agents were found 
    456     /* 
    457         if(pageDocument.getElementById("useragentswitcher.import.overwrite").checked){ 
    458         // While there are user agents 
    459         while(userAgentBox.getRowCount() > 0){ 
    460             userAgentBox.removeItemAt(0); 
    461         } 
    462     } 
    463     */ 
    464  
    465     while((deviceElement = deviceResults.iterateNext()) != null){ 
    466         var id = xPathEvaluator.evaluate("Id", deviceElement, resolver, XPathResult.STRING_TYPE, null).stringValue; 
    467         var deviceName = xPathEvaluator.evaluate("DeviceName", deviceElement, resolver, XPathResult.STRING_TYPE, null).stringValue; 
    468         var userAgent = xPathEvaluator.evaluate("UserAgent", deviceElement, resolver, XPathResult.STRING_TYPE, null).stringValue; 
    469         var carrier = xPathEvaluator.evaluate("Carrier", deviceElement, resolver, XPathResult.STRING_TYPE, null).stringValue; 
    470         var headerResults = xPathEvaluator.evaluate("ExtraHeaders", deviceElement, resolver, XPathResult.ANY_TYPE, null).stringValue; 
    471         var deviceName = xPathEvaluator.evaluate("DeviceName", deviceElement, resolver, XPathResult.STRING_TYPE, null).stringValue; 
    472         dump("deviceName:"+deviceName+"\n"); 
    473     } 
     560        } 
     561 
     562        var devices = new Array(); 
     563        var ovarrideFlag = false; 
     564        var i = 0; 
     565        while ((deviceElement = deviceResults.iterateNext()) != null) { 
     566                var id = xPathEvaluator.evaluate("Id", deviceElement, resolver, 
     567                                XPathResult.STRING_TYPE, null).stringValue; 
     568                var label = xPathEvaluator.evaluate("DeviceName", deviceElement, 
     569                                resolver, XPathResult.STRING_TYPE, null).stringValue; 
     570                var useragent = xPathEvaluator.evaluate("UserAgent", deviceElement, 
     571                                resolver, XPathResult.STRING_TYPE, null).stringValue; 
     572                var carrier = xPathEvaluator.evaluate("Carrier", deviceElement, 
     573                                resolver, XPathResult.STRING_TYPE, null).stringValue; 
     574                var headerResults = xPathEvaluator.evaluate("ExtraHeaders/Header", 
     575                                deviceElement, resolver, 
     576                                XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); 
     577                var headerElement = null; 
     578                var deviceCount = firemobilesimulator.common.pref 
     579                                .getIntPref("msim.devicelist." + carrier + ".count"); 
     580 
     581                // idが空番の場合、自動的に新規のIDを発行する 
     582                if (deviceCount >= id) { 
     583                        // 既存のidの場合 
     584                        ovarrideFlag = true; 
     585                } 
     586 
     587                var headers = new Array(); 
     588                var j = 0; 
     589                while ((headerElement = headerResults.iterateNext()) != null) { 
     590                        var name = xPathEvaluator.evaluate("Name", headerElement, resolver, 
     591                                        XPathResult.STRING_TYPE, null).stringValue; 
     592                        var value = xPathEvaluator.evaluate("Value", headerElement, 
     593                                        resolver, XPathResult.STRING_TYPE, null).stringValue; 
     594                        headers[j] = { 
     595                                name : name, 
     596                                value : value 
     597                        }; 
     598                        j++; 
     599                } 
     600                devices[i] = { 
     601                        id : id, 
     602                        label : label, 
     603                        useragent : useragent, 
     604                        carrier : carrier, 
     605                        headers : headers 
     606                }; 
     607                i++; 
     608        } 
     609        // update preference 
     610        devices.forEach(function(device) { 
     611                var id = device.id; 
     612                var carrier = device.carrier; 
     613                for (var key in device) { 
     614                        var value = device[key]; 
     615                        if (key == "headers") { 
     616                                var i = 0; 
     617                                dump("length:" + value.length + "\n"); 
     618                                dump("value:" + value + "\n"); 
     619                                value.forEach(function(header) { 
     620                                        firemobilesimulator.common.pref.setUnicharPref( 
     621                                                        "msim.devicelist." + carrier + "." + id 
     622                                                                        + ".extra-header." + i + ".name", 
     623                                                        header.name); 
     624                                        firemobilesimulator.common.pref.setUnicharPref( 
     625                                                        "msim.devicelist." + carrier + "." + id 
     626                                                                        + ".extra-header." + i + ".value", 
     627                                                        header.value); 
     628                                        dump("set:msim.devicelist." + carrier + "." + id 
     629                                                        + ".extra-header." + i + ".name:" + header.name 
     630                                                        + "\n"); 
     631                                        dump("set:msim.devicelist." + carrier + "." + id 
     632                                                        + ".extra-header." + i + ".value:" + header.value 
     633                                                        + "\n"); 
     634                                        i++; 
     635                                }); 
     636                                dump("set:" + "msim.devicelist." + carrier + "." + id 
     637                                                + ".extra-header.count:" + value.length + "\n"); 
     638                                firemobilesimulator.common.pref.setIntPref("msim.devicelist." 
     639                                                                + carrier + "." + id + ".extra-header.count", 
     640                                                value.length); 
     641                        } else { 
     642                                firemobilesimulator.common.pref.setUnicharPref( 
     643                                                "msim.devicelist." + carrier + "." + id + "." + key, 
     644                                                value); 
     645                                dump("set:msim.devicelist." + carrier + "." + id + "." + key 
     646                                                + ":" + value + "\n"); 
     647                        } 
     648                } 
     649        }); 
    474650        return; 
    475651}; 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/overlay.js

    r22777 r22847  
    119119                        var device = firemobilesimulator.common.pref 
    120120                                        .copyUnicharPref("msim.devicelist." + carrier + "." + i 
    121                                                         + ".device"); 
     121                                                        + ".label"); 
    122122                        var useragent = firemobilesimulator.common.pref 
    123123                                        .copyUnicharPref("msim.devicelist." + carrier + "." + i 
  • platform/firefox/FireMobileSimulator/trunk/src/components/msimModifyHeaders.js

    r20355 r22847  
    4747                        if (topic == "http-on-modify-request") { 
    4848                                var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel); 
    49                                 var device = firemobilesimulator.common.pref 
    50                                                 .copyUnicharPref("msim.current.device"); 
    5149                                var id = firemobilesimulator.common.pref 
    5250                                                .copyUnicharPref("msim.current.id"); 
  • platform/firefox/FireMobileSimulator/trunk/src/defaults/preferences/msim.js

    r22799 r22847  
    2828 
    2929pref("msim.devicelist.DC.count", 2); 
    30 pref("msim.devicelist.DC.1.device", "P903i"); 
     30pref("msim.devicelist.DC.1.label", "P903i"); 
    3131pref("msim.devicelist.DC.1.carrier", "DC"); 
    3232pref("msim.devicelist.DC.1.useragent", "DoCoMo/2.0 P903i(c100;TB;W24H12)"); 
    3333pref("msim.devicelist.DC.1.screen-width", "240"); 
    3434pref("msim.devicelist.DC.1.screen-height", "270"); 
    35 pref("msim.devicelist.DC.2.device", "N505i"); 
     35pref("msim.devicelist.DC.2.label", "N505i"); 
    3636pref("msim.devicelist.DC.2.carrier", "DC"); 
    3737pref("msim.devicelist.DC.2.useragent", "DoCoMo/1.0/N505i/c20/TB/W20H10"); 
     
    4040 
    4141pref("msim.devicelist.AU.count", 2); 
    42 pref("msim.devicelist.AU.1.device", "W53CA"); 
     42pref("msim.devicelist.AU.1.label", "W53CA"); 
    4343pref("msim.devicelist.AU.1.carrier", "AU"); 
    4444pref("msim.devicelist.AU.1.useragent", "KDDI-CA39 UP.Browser/6.2.0.13.1.5 (GUI) MMP/2.0"); 
     
    6666pref("msim.devicelist.AU.1.screen-width", "232"); 
    6767pref("msim.devicelist.AU.1.screen-height", "348"); 
    68 pref("msim.devicelist.AU.2.device", "C5001T"); 
     68pref("msim.devicelist.AU.2.label", "C5001T"); 
    6969pref("msim.devicelist.AU.2.carrier", "AU"); 
    7070pref("msim.devicelist.AU.2.useragent", "KDDI-TS21 UP.Browser/6.0.2.273 (GUI) MMP/1.1"); 
     
    9292 
    9393pref("msim.devicelist.SB.count", 14); 
    94 pref("msim.devicelist.SB.1.device", "J-PHONE J-SH02(C2型)"); 
     94pref("msim.devicelist.SB.1.label", "J-PHONE J-SH02(C2型)"); 
    9595pref("msim.devicelist.SB.1.carrier", "SB"); 
    9696pref("msim.devicelist.SB.1.useragent", "J-PHONE/2.0/J-SH02"); 
     
    102102pref("msim.devicelist.SB.1.screen-width", "96"); 
    103103pref("msim.devicelist.SB.1.screen-height", "98"); 
    104 pref("msim.devicelist.SB.2.device", "J-PHONE J-T07(C3型)"); 
     104pref("msim.devicelist.SB.2.label", "J-PHONE J-T07(C3型)"); 
    105105pref("msim.devicelist.SB.2.carrier", "SB"); 
    106106pref("msim.devicelist.SB.2.useragent", "J-PHONE/3.0/J-T07"); 
     
    112112pref("msim.devicelist.SB.2.screen-width", "144"); 
    113113pref("msim.devicelist.SB.2.screen-height", "136"); 
    114 pref("msim.devicelist.SB.3.device", "J-PHONE J-SH010(C4型)"); 
     114pref("msim.devicelist.SB.3.label", "J-PHONE J-SH010(C4型)"); 
    115115pref("msim.devicelist.SB.3.carrier", "SB"); 
    116116pref("msim.devicelist.SB.3.useragent", "J-PHONE/3.0/J-SH10"); 
     
    122122pref("msim.devicelist.SB.3.screen-width", "240"); 
    123123pref("msim.devicelist.SB.3.screen-height", "260"); 
    124 pref("msim.devicelist.SB.4.device", "J-SH51(P4(1)型)"); 
     124pref("msim.devicelist.SB.4.label", "J-SH51(P4(1)型)"); 
    125125pref("msim.devicelist.SB.4.carrier", "SB"); 
    126126pref("msim.devicelist.SB.4.useragent", "J-PHONE/4.0/J-SH51[/Serial] SH/0001aa Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0"); 
     
    132132pref("msim.devicelist.SB.4.screen-width", "120"); 
    133133pref("msim.devicelist.SB.4.screen-height", "130"); 
    134 pref("msim.devicelist.SB.5.device", "V601N(P4(2)型)"); 
     134pref("msim.devicelist.SB.5.label", "V601N(P4(2)型)"); 
    135135pref("msim.devicelist.SB.5.carrier", "SB"); 
    136136pref("msim.devicelist.SB.5.useragent", "J-PHONE/4.2/V601N[/Serial] N/01000100Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.1"); 
     
    142142pref("msim.devicelist.SB.5.screen-width", "160"); 
    143143pref("msim.devicelist.SB.5.screen-height", "180"); 
    144 pref("msim.devicelist.SB.6.device", "J-SH53(P5型)"); 
     144pref("msim.devicelist.SB.6.label", "J-SH53(P5型)"); 
    145145pref("msim.devicelist.SB.6.carrier", "SB"); 
    146146pref("msim.devicelist.SB.6.useragent", "J-PHONE/4.2/J-SH53[/Serial] SH/0003aa Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.2.1"); 
     
    152152pref("msim.devicelist.SB.6.screen-width", "240"); 
    153153pref("msim.devicelist.SB.6.screen-height", "260"); 
    154 pref("msim.devicelist.SB.7.device", "V602T(P6型)"); 
     154pref("msim.devicelist.SB.7.label", "V602T(P6型)"); 
    155155pref("msim.devicelist.SB.7.carrier", "SB"); 
    156156pref("msim.devicelist.SB.7.useragent", "J-PHONE/4.3/V602T[/Serial] TS/2.00 Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.2.2"); 
     
    162162pref("msim.devicelist.SB.7.screen-width", "240"); 
    163163pref("msim.devicelist.SB.7.screen-height", "261"); 
    164 pref("msim.devicelist.SB.8.device", "V604SH(P7型)"); 
     164pref("msim.devicelist.SB.8.label", "V604SH(P7型)"); 
    165165pref("msim.devicelist.SB.8.carrier", "SB"); 
    166166pref("msim.devicelist.SB.8.useragent", "J-PHONE/4.3/V604SH[/Serial] SH/0009aa Profile/MIDP-1.0Configuration/CLDC-1.0 Ext-Profile/JSCL-1.3.2"); 
     
    172172pref("msim.devicelist.SB.8.screen-width", "240"); 
    173173pref("msim.devicelist.SB.8.screen-height", "260"); 
    174 pref("msim.devicelist.SB.9.device", "Vodafone V801SA(W型)"); 
     174pref("msim.devicelist.SB.9.label", "Vodafone V801SA(W型)"); 
    175175pref("msim.devicelist.SB.9.carrier", "SB"); 
    176176pref("msim.devicelist.SB.9.useragent", "J-PHONE/5.0/V801SA[/Serial] SA/0001JPProfile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0"); 
     
    182182pref("msim.devicelist.SB.9.screen-width", "240"); 
    183183pref("msim.devicelist.SB.9.screen-height", "256"); 
    184 pref("msim.devicelist.SB.10.device", "Vodafone 702MO(3GC型)"); 
     184pref("msim.devicelist.SB.10.label", "Vodafone 702MO(3GC型)"); 
    185185pref("msim.devicelist.SB.10.carrier", "SB"); 
    186186pref("msim.devicelist.SB.10.useragent", "MOT-V980/80.2F.2E. MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1"); 
     
    192192pref("msim.devicelist.SB.10.screen-width", "176"); 
    193193pref("msim.devicelist.SB.10.screen-height", "220"); 
    194 pref("msim.devicelist.SB.11.device", "Vodafone 702NK(NOKIA 6630)(3GC型)"); 
     194pref("msim.devicelist.SB.11.label", "Vodafone 702NK(NOKIA 6630)(3GC型)"); 
    195195pref("msim.devicelist.SB.11.carrier", "SB"); 
    196196pref("msim.devicelist.SB.11.useragent", "Vodafone/1.0/V702NK/NKJ001[/Serial] Series60/2.6 Nokia6630/2.39.148 Profile/MIDP-2.0 Configuration/CLDC-1.1"); 
     
    202202pref("msim.devicelist.SB.11.screen-width", "176"); 
    203203pref("msim.devicelist.SB.11.screen-height", "208"); 
    204 pref("msim.devicelist.SB.12.device", "Vodafone 903SH(3GC型)"); 
     204pref("msim.devicelist.SB.12.label", "Vodafone 903SH(3GC型)"); 
    205205pref("msim.devicelist.SB.12.carrier", "SB"); 
    206206pref("msim.devicelist.SB.12.useragent", "Vodafone/1.0/V903SH/SHJ001[/Serial] Browser/UP.Browser/7.0.2.1Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.1.0"); 
     
    212212pref("msim.devicelist.SB.12.screen-width", "240"); 
    213213pref("msim.devicelist.SB.12.screen-height", "320"); 
    214 pref("msim.devicelist.SB.13.device", "SoftBank 920SH/920SH YK(3GC型)"); 
     214pref("msim.devicelist.SB.13.label", "SoftBank 920SH/920SH YK(3GC型)"); 
    215215pref("msim.devicelist.SB.13.carrier", "SB"); 
    216216pref("msim.devicelist.SB.13.useragent", "SoftBank/1.0/920SH/SHJ001[/Serial] Browser/NetFront/3.4 Profile/MIDP-2.0 Configuration/CLDC-1.1"); 
     
    222222pref("msim.devicelist.SB.13.screen-width", "480"); 
    223223pref("msim.devicelist.SB.13.screen-height", "854"); 
    224 pref("msim.devicelist.SB.14.device", "iPhone 3G"); 
     224pref("msim.devicelist.SB.14.label", "iPhone 3G"); 
    225225pref("msim.devicelist.SB.14.carrier", "SB"); 
    226226pref("msim.devicelist.SB.14.useragent", "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20");