2015-06-07 14 views
5

Tôi có một phần mở rộng loại bỏ các tải thực hiện trong Google Chrome sử dụng dòng mã này trong trang nền của tôi:Sử dụng chrome.browsingData.remove() trong chế độ ẩn danh

chrome.browsingData.remove({ "since": 0 }, { "downloads": true }); 

Khi tải xuống là trong một cửa sổ bình thường tuy nhiên, nó hoạt động khi tải xuống đã được thực hiện trong cửa sổ Chrome ẩn danh mà nó không bị xóa. phần mở rộng của tôi được kích hoạt trong chế độ ẩn danh và trang nền có thể phát hiện khi quá trình tải trang ẩn danh đã được hoàn thành sử dụng:

chrome.downloads.onChanged.addListener(function(download) { 
    if (download.state && download.state.current == "complete") { 
     // The code here is fired even if the download has been completed in incognito mode 
    } 
} 

Có cách nào để loại bỏ các dữ liệu duyệt web trong cửa sổ ẩn danh từ một trang nền ?

+1

Điều này có thể liên quan đến việc bạn đang sử dụng chế độ ẩn danh ['spanning' hoặc' split'] (https://developer.chrome.com/extensions/manifest/incognito) cho tiện ích mở rộng của bạn. Tôi sẽ tưởng tượng nếu bạn đang sử dụng chế độ 'spanning', một bản tải xuống nhận được ở chế độ ẩn danh sẽ kích hoạt sự kiện, nhưng cuộc gọi để xóa các lần tải xuống trong cấu hình chrome chính - sau đó là các API riêng biệt. Hãy thử chế độ 'split' nếu bạn chưa có! –

+0

Thay vào đó, hãy thử sử dụng ['chrome.downloads.erase'] (https://developer.chrome.com/extensions/downloads#method-erase). Chỉ có một sự phụ thuộc vào một API duy nhất có nghĩa là ít thay đổi khi một cái gì đó bị phản đối! –

+0

@ JimO'Brien Bạn có thể thay đổi nhận xét đầu tiên của bạn trong một câu trả lời, đó là giải pháp hoàn hảo và giải thích cho vấn đề này! –

Trả lời

4

Sự cố bạn đang gặp phải là tiện ích của bạn đang chạy trong spanning incognito mode. Điều này có nghĩa là tiện ích chạy dưới một quy trình duy nhất được đính kèm với hồ sơ đã cài đặt tiện ích (nghĩa là không phải cửa sổ ẩn danh). Trong trường hợp này, API chrome.downloads kích hoạt sự kiện onChanged để tải xuống trong cả cấu hình ẩn danh và bình thường, nhưng API chrome.browsingData chỉ áp dụng cho cấu hình bình thường. Thay vào đó, bạn muốn sử dụng chế độ ẩn danh split chế độ ẩn danh. Điều này có nghĩa là tiện ích mở rộng chạy riêng trong mỗi tiểu sử sử dụng nó (tức là cửa sổ ẩn danh có bản sao tiện ích đang chạy của riêng nó). Điều này có nghĩa là khi bạn gọi API chrome.browsingData, nó sẽ áp dụng cho cửa sổ kích hoạt sự kiện.

Các vấn đề liên quan