# contentTracing
`content-tracing` 模塊是用來收集由底層的Chromium content 模塊 產生的搜索數據. 這個模塊不具備web接口,所有需要我們在chrome瀏覽器中添加 `chrome://tracing/` 來加載生成文件從而查看結果.
```javascript
const contentTracing = require('electron').contentTracing;
const options = {
categoryFilter: '*',
traceOptions: 'record-until-full,enable-sampling'
}
contentTracing.startRecording(options, function() {
console.log('Tracing started');
setTimeout(function() {
contentTracing.stopRecording('', function(path) {
console.log('Tracing data recorded to ' + path);
});
}, 5000);
});
```
## 方法
`content-tracing` 模塊的方法如下:
### `contentTracing.getCategories(callback)`
* `callback` Function
獲得一組分類組. 分類組可以更改為新的代碼路徑。
一旦所有的子進程都接受到了`getCategories`方法請求, 分類組將調用 `callback`.
### `contentTracing.startRecording(options, callback)`
* `options` Object
* `categoryFilter` String
* `traceOptions` String
* `callback` Function
開始向所有進程進行記錄.(recording)
一旦收到可以開始記錄的請求,記錄將會立馬啟動并且在子進程是異步記錄聽的. 當所有的子進程都收到 `startRecording` 請求的時候,`callback` 將會被調用.
`categoryFilter`是一個過濾器,它用來控制那些分類組應該被用來查找.過濾器應當有一個可選的 `-` 前綴來排除匹配的分類組.不允許同一個列表既是包含又是排斥.
例子:
* `test_MyTest*`,
* `test_MyTest*,test_OtherStuff`,
* `"-excluded_category1,-excluded_category2`
`traceOptions` 控制著哪種查找應該被啟動,這是一個用逗號分隔的列表.可用參數如下:
* `record-until-full`
* `record-continuously`
* `trace-to-console`
* `enable-sampling`
* `enable-systrace`
前3個參數是來查找記錄模塊,并且以后都互斥.如果在`traceOptions` 中超過一個跟蹤
記錄模式,那最后一個的優先級最高.如果沒有指明跟蹤
記錄模式,那么它默認為 `record-until-full`.
在 `traceOptions` 中的參數被解析應用之前,查找參數初始化默認為 (`record_mode` 設置為
`record-until-full`, `enable_sampling` 和 `enable_systrace` 設置為 `false`).
### `contentTracing.stopRecording(resultFilePath, callback)`
* `resultFilePath` String
* `callback` Function
停止對所有子進程的記錄.
子進程通常緩存查找數據,并且僅僅將數據截取和發送給主進程.這有利于在通過 IPC 發送查找數據之前減小查找時的運行開銷,這樣做很有價值.因此,發送查找數據,我們應當異步通知所有子進程來截取任何待查找的數據.
一旦所有子進程接收到了 `stopRecording` 請求,將調用 `callback` ,并且返回一個包含查找數據的文件.
如果 `resultFilePath` 不為空,那么將把查找數據寫入其中,否則寫入一個臨時文件.實際文件路徑如果不為空,則將調用 `callback` .
### `contentTracing.startMonitoring(options, callback)`
* `options` Object
* `categoryFilter` String
* `traceOptions` String
* `callback` Function
開始向所有進程進行監聽.(monitoring)
一旦收到可以開始監聽的請求,記錄將會立馬啟動并且在子進程是異步記監聽的. 當所有的子進程都收到 `startMonitoring` 請求的時候,`callback` 將會被調用.
### `contentTracing.stopMonitoring(callback)`
* `callback` Function
停止對所有子進程的監聽.
一旦所有子進程接收到了 `stopMonitoring` 請求,將調用 `callback` .
### `contentTracing.captureMonitoringSnapshot(resultFilePath, callback)`
* `resultFilePath` String
* `callback` Function
獲取當前監聽的查找數據.
子進程通常緩存查找數據,并且僅僅將數據截取和發送給主進程.因為如果直接通過 IPC 來發送查找數據的代價昂貴,我們寧愿避免不必要的查找運行開銷.因此,為了停止查找,我們應當異步通知所有子進程來截取任何待查找的數據.
一旦所有子進程接收到了 `captureMonitoringSnapshot` 請求,將調用 `callback` ,并且返回一個包含查找數據的文件.
### `contentTracing.getTraceBufferUsage(callback)`
* `callback` Function
通過查找 buffer 進程來獲取百分比最大使用量.當確定了TraceBufferUsage 的值確定的時候,就調用 `callback` .
### `contentTracing.setWatchEvent(categoryName, eventName, callback)`
* `categoryName` String
* `eventName` String
* `callback` Function
任意時刻在任何進程上指定事件發生時將調用 `callback` .
### `contentTracing.cancelWatchEvent()`
取消 watch 事件. 如果啟動查找,這或許會造成 watch 事件的回調函數 出錯.
- 介紹
- 常見問題
- Electron 常見問題
- 向導
- 支持平臺
- 分發應用
- 提交應用到 Mac App Store
- 打包應用
- 使用 Node 原生模塊
- 主進程調試
- 使用 Selenium 和 WebDriver
- 使用開發人員工具擴展
- 使用 Pepper Flash 插件
- 使用 Widevine CDM 插件
- 教程
- 快速入門
- 桌面環境集成
- 在線/離線事件探測
- API文檔
- 簡介
- 進程對象
- 支持的 Chrome 命令行開關
- 環境變量
- 自定義的 DOM 元素
- File 對象
- <webview> 標簽
- window.open 函數
- 在主進程內可用的模塊
- app
- autoUpdater
- BrowserWindow
- contentTracing
- dialog
- globalShortcut
- ipcMain
- Menu
- MenuItem
- powerMonitor
- powerSaveBlocker
- protocol
- session
- webContents
- Tray
- 在渲染進程(網頁)內可用的模塊
- desktopCapturer
- ipcRenderer
- remote
- webFrame
- 在兩種進程中都可用的模塊
- clipboard
- crashReporter
- nativeImage
- screen
- shell
- 開發
- 代碼規范
- 源碼目錄結構
- 與 NW.js(原 node-webkit)在技術上的差異
- 構建系統概覽
- 構建步驟(OS X)
- 構建步驟(Windows)
- 構建步驟(Linux)
- 在調試中使用 Symbol Server