标签: xpcom

使用C++ XPCOM扩展访问Firefox上的选项卡

我应该使用哪些XPCOM接口来检测选项卡的打开,关闭和切换,还可以从firefox扩展中获取相关的URL?我已经看到了在JS中管理选项卡的代码实例,但是从C++开始呢?

c++ xpcom firefox-addon tabbed-browsing

3
推荐指数
1
解决办法
2406
查看次数

在JSM中访问window对象

我正在创建一个firefox扩展.我想在JSM文件中获取对窗口对象的引用.
然后使用导入文件

Components.utils.import("resource://js/my_module.jsm");
Run Code Online (Sandbox Code Playgroud)

在my_module.jsm中有这一行:

var jQenv = window.content.document;
Run Code Online (Sandbox Code Playgroud)

抛出错误,"窗口未定义"

如何访问JSM文件中的窗口对象?

javascript xpcom

3
推荐指数
1
解决办法
850
查看次数

Firefox 3.6中的Components.interfaces.nsIProcess2 - 它去了哪里?

我正在测试一个包含Firefox扩展作为一个组件的应用程序.它最初是在FF3.5.5是最新版本时部署的,并且在3.5.6和3.5.7中幸存下来.但是在FF3.6上我在我的错误控制台中得到以下内容:

Warning: reference to undefined property Components.interfaces.nsIProcess2
Source file: chrome://overthewall/content/otwhelper.js
Line: 55

Error: Component returned failure code: 0x80570018 (NS_ERROR_XPC_BAD_IID) 
         [nsIJSCID.createInstance]
Source file: chrome://overthewall/content/otwhelper.js
Line: 55
Run Code Online (Sandbox Code Playgroud)

抛出错误的函数是:

48 function otwRunHelper(cmd, aCallback) {
49  var file =
50      Components.classes["@mozilla.org/file/local;1"].
51      createInstance(Components.interfaces.nsILocalFile);
52  file.initWithPath(otwRegInstallDir+'otwhelper.exe');
53
54  otwProcess = Components.classes["@mozilla.org/process/util;1"]
55                  .createInstance(Components.interfaces.nsIProcess2);
56
57  otwProcess.init(file);
58  var params = new Array();
59  params = cmd.split(' ');
60  
61  otwNextCallback = aCallback;
62  otwObserver = new otwHelperProcess();
63  otwProcess.runAsync(params, params.length, otwObserver, false);
64 }
Run Code Online (Sandbox Code Playgroud)

如您所见,所有这些函数都运行一个外部EXE帮助文件(由注册表项定位)和一些命令行参数,并设置一个Observer以异步等待响应并处理Exit代码. …

xpcom firefox3.6

2
推荐指数
1
解决办法
842
查看次数

在firefox中启动时设置首选项

提前感谢大家 -

我需要在启动时加载任何窗口之前加载首选项.下面是我一直在使用的一些/组件代码.SetPreference方法在调用时似乎失败了(之后没有任何执行) - 我假设因为它所需的资源在执行时不可用......或者我做错了.有关此代码的任何建议或在启动时设置首选项的其他方法吗?

再次感谢,

山姆

出于某种原因,SO的代码格式无法正常工作 - 这里也是代码的链接 - http://samingrassia.com/_FILES/startup.js

Components.utils.import('resource://gre/modules/XPCOMUtils.jsm');

const Cc = Components.classes;
const Ci = Components.interfaces;

const ObserverService = Cc['@mozilla.org/observer-service;1'].getService(Ci.nsIObserverService);

function MyStartupService() {};

MyStartupService.prototype = {
  observe : function(aSubject, aTopic, aData) {
    switch (aTopic) {
      case 'xpcom-startup':
        this.SetPreference("my.extension.is_running", "false");
        break;
      case 'app-startup':
        this.SetPreference("my.extension.is_running", "false");
        ObserverService.addObserver(this, 'final-ui-startup', false);
        break;
      case 'final-ui-startup':

        //make sure is_running is set to false
        this.SetPreference("my.extension.is_running", "false");

        ObserverService.removeObserver(this, 'final-ui-startup');
        const WindowWatcher = Cc['@mozilla.org/embedcomp/window-watcher;1'].getService(Ci.nsIWindowWatcher);
        WindowWatcher.registerNotification(this);
        break;
      case 'domwindowopened':
        this.initWindow(aSubject);
        break;
    }
  },
  SetPreference : …
Run Code Online (Sandbox Code Playgroud)

javascript xpcom firefox-addon

2
推荐指数
1
解决办法
1431
查看次数

如何用XUL读/写文件?

我正在使用xul来编写firefox扩展,因此我需要从本地文件读取/写入.如何在以下目录"c:/ data"中创建例如文件"temp.txt "

javascript file-io xul xpcom firefox-addon

2
推荐指数
2
解决办法
4009
查看次数

如何使用xpcom更改firefox代理设置

我有一个在localhost(127.0.0.1)上运行的代理服务器,我已经厌倦了培训用户如何在firefox中切换代理以绕过被阻止的网站.
我决定写一个插件.我想知道如何使用xpcom告诉firefox使用某个代理例如
http,使用127.0.0.1端口8080.
互联网上的例子很少.

谢谢

javascript xpcom firefox-addon

2
推荐指数
1
解决办法
2450
查看次数

我遇到了NS_BASE_STREAM_CLOSED错误,该怎么办?

我刚刚加入了一个网站项目。为了进行处理,我克隆了git repo并在VPS上设置了一个新的LEMP堆栈来服务该页面。要使该程序运行,需要花费大量的工作(我的第一次尝试是在笔记本电脑上,甚至无法正常运行第一个index.php)。现在我可以显示主页,除了字体之外的所有内容似乎都可以加载。

有许多链接可以动态生成页面。在最终产品上,将使用新数据创建这些数据。目前,数据只是从数据库中提取的,因此我们可以调整其显示方式。我的问题是这些页面不会大量加载。我可以在Windows 7,Fedora或Debian的Firefox,Chrome,Brave或Konqueror中尝试此操作都没有关系。

Wactching FF的开发工具,服务器批准请求并提供页面(代码200),但是页面上没有呈现任何内容(黑屏),控制台中也没有显示任何内容。除非我运行AdBlock Ultimate之类的基于JS的扩展程序,否则JS调试器也不会显示任何内容。如果我正在运行AdBlock,则页面的名称将显示在Sources下,并且唯一的错误是:

    Error loading this URL: Could not load the source for http://dubyahdubyah/reports/view/506.
[Exception... "Component returned failure code: 0x80470002 (NS_BASE_STREAM_CLOSED) [nsIInputStream.available]"  nsresult: "0x80470002 (NS_BASE_STREAM_CLOSED)"  location: "JS frame :: resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/DevToolsUtils.js :: onResponse :: line 453"  data: no]
Stack: onResponse@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/DevToolsUtils.js:453:23
onStopRequest@resource://gre/modules/NetUtil.jsm:128:17
Line: 453, column: 0
Run Code Online (Sandbox Code Playgroud)

我整天都在搜索谷歌,我厌倦了用键盘敲打我的头。

javascript php webpage xpcom nginx

2
推荐指数
1
解决办法
4142
查看次数