Changeset 8e5aff


Ignore:
Timestamp:
Apr 7, 2010, 1:20:46 PM (10 years ago)
Author:
rene <rene@…>
Branches:
multiEdit, ng_0.6, ng_0.6_help, ng_0.8, ng_0.9
Children:
c05d83
Parents:
ce8828
Message:

final help-test implementation

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • chrome/content/v_identity/vI_htmlTextBox.xml

    rce8828 r8e5aff  
    8686    </binding>
    8787
    88     <binding id="vI_remoteBrowserBox" extends="chrome://mozapps/content/update/updates.xml#remotecontent">
     88    <binding id="vI_remoteBrowserBox">
    8989    <content>
    90         <xul:hbox flex="1" >
     90        <xul:vbox flex="1" >
    9191            <xul:vbox class="vI_remoteBrowserBoxProgressmeter" flex="1" >
    9292                <xul:progressmeter mode="undetermined" />
    9393                <xul:spacer flex="1" />
    9494            </xul:vbox>
    95             <xul:browser class="vI_browserBox" hidden="true" flex="1" />
    96         </xul:hbox>
     95            <xul:browser xbl:inherits="src=url" class="vI_browserBox" hidden="true" flex="1" disablehistory="true" />
     96            <xul:button xbl:inherits="tooltiptext=url" label="Open in Browser"
     97                    oncommand="vI_prefDialog.openURL(this.tooltipText)" />
     98        </xul:vbox>
    9799    </content>
    98100    <resources>
     
    100102    </resources>
    101103    <implementation>
     104    <destructor><![CDATA[
     105        // clean up the listener but you may not have one if you never showed
     106        // the page with a <remotecontent> element
     107        if (this._remoteProgressListener) this._content.webProgress.removeProgressListener(this._remoteProgressListener);
     108    ]]></destructor>
     109    <field name="_init">null</field>
     110    <method name="init">
     111    <body><![CDATA[
     112        if (this._init) return;
     113       
     114        // just to be safe, turn off js, auth, plugins, and subframes
     115        var docShell = this._content.docShell;
     116        docShell.allowJavascript = false;
     117        docShell.allowAuth = false;
     118        docShell.allowPlugins = false;
     119        //allow redirects
     120        //docShell.allowMetaRedirects = false;
     121        docShell.allowSubframes = false;
     122        //allow images
     123        //docShell.allowImages = false;
     124       
     125        this._init = true;
     126    ]]></body>
     127    </method>
     128    <field name="_remoteProgressListener">null</field>
     129    <property name="url">
     130        <getter><![CDATA[
     131        return this.getAttribute("url");
     132        ]]></getter>
     133        <setter><![CDATA[
     134        this.init();
     135        if (this._remoteProgressListener)
     136            this._content.webProgress.removeProgressListener(this._remoteProgressListener);
     137        var self = this;
     138
     139        this._remoteProgressListener = {
     140            QueryInterface: function(aIID) {
     141                if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
     142                    aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
     143                    aIID.equals(Components.interfaces.nsISupports))
     144                    return this;
     145                throw Components.results.NS_NOINTERFACE;
     146            },
     147            onLocationChange: function() {},
     148            onProgressChange: function() {},
     149            onStatusChange:   function() {},
     150            onSecurityChange: function() {},
     151            onStateChange:    function(aWebProgress, aRequest, aStateFlags, aStatus) {
     152                if (!aRequest)
     153                    return;
     154
     155                const nsIWebProgressListener =
     156                    Components.interfaces.nsIWebProgressListener;
     157           
     158                if (aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK)
     159                {
     160                    if (aStateFlags & nsIWebProgressListener.STATE_START) self.onStart();
     161                    else if (aStateFlags & nsIWebProgressListener.STATE_STOP) {
     162                        const nsIHttpChannel = Components.interfaces.nsIHttpChannel;
     163                        try {
     164                            var channel = aRequest.QueryInterface(nsIHttpChannel);
     165                            if (channel.requestSucceeded) {
     166                                // if we get here, the load was OK, report success
     167                                self.onLoad();
     168                                return;
     169                            }
     170                        } catch (ex) {
     171                            // the channel.requestSucceeded can throw
     172                            // NS_ERROR_NOT_AVAILABLE if you can't reach the server
     173                            // so we treat that as an error
     174                        }
     175                        // everything else (like a 404) is an error
     176                        self.onError();
     177                    }
     178                }
     179            }
     180        }
     181        this._content.webProgress.addProgressListener(this._remoteProgressListener,Components.interfaces.nsIWebProgress.NOTIFY_ALL);
     182        // load the url now that the listener is registered
     183        this.setAttribute("url", val);
     184        ]]></setter>
     185    </property>
    102186    <field name="_content">
    103187        document.getAnonymousElementByAttribute(this, "class", "vI_browserBox");
  • chrome/content/v_identity/vI_prefDialog.js

    rce8828 r8e5aff  
    2525var vI_prefDialog = {
    2626    help : function() {
    27         var selTabIndex = document.getElementById('prefTabbox').selectedIndex;
    28         // var selTab = this.currentIndex
    29         window.openDialog("chrome://v_identity/content/vI_Help.xul",0,"chrome, dialog=no, alwaysRaised, resizable=yes", "docSmartReply.html")
     27        var browserElem = document.getElementById("vI_remoteBrowserBox");
     28        if (browserElem.getAttribute("hidden")) {
     29            window.resizeBy( 200, 0);
     30            vI_prefDialog.updateHelpUrl();
     31            browserElem.removeAttribute("hidden");
     32        } else {
     33            window.resizeBy( -(browserElem.clientWidth-1), 0);
     34            browserElem.setAttribute("hidden", "true");
     35        }
    3036    },
    3137
     
    3541        var currentVersion = document.getElementById("extVersion").getAttribute("value").split(/\./);
    3642        var extVersion = currentVersion[0] + "." + currentVersion[1];
    37         var url = "https://www.absorb.it/virtual-id/wiki/docs/" + extVersion + "/tab" + panelIndex + "tree" + prefTree.currentIndex;
    38         dump("url: " + url + "\n");
    39 //      document.getElementById("vI_remoteBrowserBox").localCss = "localDoc.css";
     43        var url = "https://www.absorb.it/virtual-id/wiki/docs/" + extVersion + "/tab" + panelIndex + "/tree" + prefTree.currentIndex;
    4044        document.getElementById("vI_remoteBrowserBox").url = url;
    4145    },
     
    301305            var uri = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURI);
    302306            var protocolSvc = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"].getService(Components.interfaces.nsIExternalProtocolService);
    303 
     307        dump("load url " + aURL + "\n");
    304308            uri.spec = aURL;
    305309            protocolSvc.loadUrl(uri);
  • chrome/content/v_identity/vI_prefDialog.xul

    rce8828 r8e5aff  
    692692    </tabpanels>
    693693</tabbox>
    694 <browserbox id="vI_remoteBrowserBox" class="vI_remoteBrowserBox" localCss="localDoc.css" flex="1"/>
     694<browserbox id="vI_remoteBrowserBox" class="vI_remoteBrowserBox" localCss="localDoc.css" flex="1" hidden="true" />
    695695<label id="extVersion" value="&vident.version;" hidden="true" />
    696696</hbox>
  • install.rdf

    rce8828 r8e5aff  
    77                   em:id="{3550f703-e582-4d05-9a08-453d09bdfdc6}"
    88                   em:minVersion="1.5"
    9                    em:maxVersion="3.0.*" />
     9                   em:maxVersion="3.1.*" />
    1010  <!-- Seamonkey -->
    1111  <RDF:Description RDF:about="rdf:#$rjP94"
Note: See TracChangeset for help on using the changeset viewer.