<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Mozilla 2</title>
	<atom:link href="http://blog.jjgod.org/2006/12/04/mozilla-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jjgod.org/2006/12/04/mozilla-2/</link>
	<description>Random notes &#38; thoughts by Jiang Jiang.</description>
	<lastBuildDate>Thu, 02 Feb 2012 01:25:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Yiwu sourcing agent</title>
		<link>http://blog.jjgod.org/2006/12/04/mozilla-2/comment-page-1/#comment-45102</link>
		<dc:creator>Yiwu sourcing agent</dc:creator>
		<pubDate>Sun, 27 Jan 2008 14:17:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jjgod.org/2006/12/04/mozilla-2/#comment-45102</guid>
		<description>&lt;p&gt;呵呵。路过下。。。。有点高深，看不懂哦。&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>呵呵。路过下。。。。有点高深，看不懂哦。</p>]]></content:encoded>
	</item>
	<item>
		<title>By: qyb</title>
		<link>http://blog.jjgod.org/2006/12/04/mozilla-2/comment-page-1/#comment-10834</link>
		<dc:creator>qyb</dc:creator>
		<pubDate>Wed, 06 Dec 2006 01:35:27 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jjgod.org/2006/12/04/mozilla-2/#comment-10834</guid>
		<description>&lt;p&gt;ActivePython 有一个项目叫 PyXPCOM，事实上一直在 mozilla 的 cvs 里 extensions 目录下。我曾经在 win32 下编译过一次，试了试用 python 去连接 XPCOM 服务，但没尝试写一个 xpcom service. 但肯定是可用的。 用 JavaScript 编写 XPCOM 服务我是以前听我的同事说的，&quot;基于Mozilla 的扩展开发&quot;就是他写的，我认为他是这个领域的专家，所以有此一说。&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>ActivePython 有一个项目叫 PyXPCOM，事实上一直在 mozilla 的 cvs 里 extensions 目录下。我曾经在 win32 下编译过一次，试了试用 python 去连接 XPCOM 服务，但没尝试写一个 xpcom service. 但肯定是可用的。 用 JavaScript 编写 XPCOM 服务我是以前听我的同事说的，&#8221;基于Mozilla 的扩展开发&#8221;就是他写的，我认为他是这个领域的专家，所以有此一说。</p>]]></content:encoded>
	</item>
	<item>
		<title>By: jjgod</title>
		<link>http://blog.jjgod.org/2006/12/04/mozilla-2/comment-page-1/#comment-10815</link>
		<dc:creator>jjgod</dc:creator>
		<pubDate>Tue, 05 Dec 2006 05:39:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jjgod.org/2006/12/04/mozilla-2/#comment-10815</guid>
		<description>&lt;p&gt;qyb: &lt;/p&gt;

&lt;p&gt;不好意思，我没说清楚，他们的趋势应该是慢慢减少 XPCOM 的使用，尤其是多余的一些 API。举的一个例子是，原来的:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;PRBool
nsXULDocument::OnDocumentParserError()
{
// don&#039;t report errors that are from overlays
if (mCurrentPrototype &amp;&amp; mMasterPrototype != mCurrentPrototype) {
    nsCOMPtr&lt;nsIURI&gt; uri;
    nsresult rv = mCurrentPrototype-&gt;GetURI(getter_AddRefs(uri));
    if (NS_SUCCEEDED(rv)) {
    PRBool isChrome = IsChromeURI(uri);
    if (isChrome) {
        nsCOMPtr os(
        do_GetService(&quot;@mozilla.org/observer-service;1&quot;));
        if (os)
        os-&gt;NotifyObservers(uri, &quot;xul-overlay-parsererror&quot;,
                            EmptyString().get());
    }
    }
    return PR_FALSE;
}
return PR_TRUE;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;可以简化为:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;bool
XULDocument::OnDocumentParserError()
{
// don&#039;t report errors that are from overlays
if (mCurrentPrototype &amp;&amp; mMasterPrototype != mCurrentPrototype) {
    IURI *uri = mCurrentPrototype-&gt;GetURI();
    if (IsChromeURI(uri)) {
    GetObserverService()-&gt;NotifyObservers(uri, &quot;xul-overlay-parsererror&quot;);
    }
    return false;
}
return true;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;另外，能说说“用 JavaScript/Python 实现 XPCOM”的思路吗？在 Mozilla 的核心代码还是用 C++ 写的情况下。&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>qyb: </p>

<p>不好意思，我没说清楚，他们的趋势应该是慢慢减少 XPCOM 的使用，尤其是多余的一些 API。举的一个例子是，原来的:</p>

<pre><code>PRBool
nsXULDocument::OnDocumentParserError()
{
// don't report errors that are from overlays
if (mCurrentPrototype &amp;&amp; mMasterPrototype != mCurrentPrototype) {
    nsCOMPtr&lt;nsIURI&gt; uri;
    nsresult rv = mCurrentPrototype-&gt;GetURI(getter_AddRefs(uri));
    if (NS_SUCCEEDED(rv)) {
    PRBool isChrome = IsChromeURI(uri);
    if (isChrome) {
        nsCOMPtr os(
        do_GetService("@mozilla.org/observer-service;1"));
        if (os)
        os-&gt;NotifyObservers(uri, "xul-overlay-parsererror",
                            EmptyString().get());
    }
    }
    return PR_FALSE;
}
return PR_TRUE;
}
</code></pre>

<p>可以简化为:</p>

<pre><code>bool
XULDocument::OnDocumentParserError()
{
// don't report errors that are from overlays
if (mCurrentPrototype &amp;&amp; mMasterPrototype != mCurrentPrototype) {
    IURI *uri = mCurrentPrototype-&gt;GetURI();
    if (IsChromeURI(uri)) {
    GetObserverService()-&gt;NotifyObservers(uri, "xul-overlay-parsererror");
    }
    return false;
}
return true;
}
</code></pre>

<p>另外，能说说“用 JavaScript/Python 实现 XPCOM”的思路吗？在 Mozilla 的核心代码还是用 C++ 写的情况下。</p>]]></content:encoded>
	</item>
	<item>
		<title>By: qyb</title>
		<link>http://blog.jjgod.org/2006/12/04/mozilla-2/comment-page-1/#comment-10797</link>
		<dc:creator>qyb</dc:creator>
		<pubDate>Mon, 04 Dec 2006 16:17:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jjgod.org/2006/12/04/mozilla-2/#comment-10797</guid>
		<description>&lt;p&gt;放弃 XPCOM??  那跨平台跨语言的优势怎么办？&lt;/p&gt;

&lt;p&gt;用 C++ 来保证跨平台可以理解，但用 JavaScript/Python 实现 XPCOM 也是很有意义的啊.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>放弃 XPCOM??  那跨平台跨语言的优势怎么办？</p>

<p>用 C++ 来保证跨平台可以理解，但用 JavaScript/Python 实现 XPCOM 也是很有意义的啊.</p>]]></content:encoded>
	</item>
</channel>
</rss>

