2011-12-03 39 views
6

Tôi chưa bao giờ thực sự viết thực sự tiện ích mở rộng của Chrome. Tôi đã làm một trong đó chỉ là một danh sách thả xuống của các liên kết một thời gian trở lại, nhưng điều đó không thực sự đếm. Dù sao, thay vì lặn đầu tiên trở lại vào bộ sưu tập lớn các hướng dẫn về cách viết các tiện ích mở rộng của Chrome, tôi đã hình dung rằng tôi có thể đảm bảo ý tưởng của mình là có thể trước tiên.Tiện ích mở rộng của Chrome có thể ghi vào một tệp trong thư mục hệ thống của Chrome không?

Kế hoạch của tôi là: Tôi muốn theo dõi bản nhạc đang phát trong trình phát của Pandora và gửi thông tin bản nhạc tới nguồn bên ngoài trình duyệt (trong trường hợp của tôi là một tập lệnh Python).

Tự mình nhận thông tin không hề khó; giao diện HTML5 mới của họ làm cho phần đó trở nên siêu đơn giản. Vấn đề là truyền đạt thông tin đó một khi tôi đã nhận được nó. Tôi muốn tránh phải tải dữ liệu lên máy chủ web và yêu cầu Python kéo nó từ đó. Rõ ràng, Chrome sẽ không làm cho nó dễ dàng cho các phần mở rộng để gửi tin nhắn DBus hoặc bất cứ điều gì, nhưng nó có thể ghi vào một tập tin trong thư mục hệ thống của Chrome một nơi nào đó, và có Python nhặt nó lên? Tôi có hoàn toàn lố bịch khi hỏi một câu hỏi như vậy không?

EDIT: Tôi nghĩ tôi sẽ báo cáo lại những gì tôi thực sự đã làm cho bất kỳ ai xảy ra bởi câu hỏi này trong tương lai. Vì tôi chỉ cần mở rộng này để làm việc trên một máy tính duy nhất (tôi), tôi chỉ cần cài đặt mod_python cho Apache và có phần mở rộng của tôi gửi dữ liệu của nó thẳng đến kịch bản Python của tôi đang chờ trên localhost. Điều này có lợi thế là không cần phải thăm dò ý kiến ​​một URL hoặc tập tin từ Python, như tôi đã giả định ban đầu tôi cần. Nó cũng tránh giới thiệu những rủi ro an ninh tiềm ẩn liên quan đến NPAPI.

Trả lời

3

Cách duy nhất để làm điều này, mà tôi có thể nghĩ đến, sẽ là với một số NPAPI extension. NPAPI cho phép bạn bao gồm một nhị phân gốc với phần mở rộng của bạn mà plugin của bạn sau đó có thể giao tiếp với. Bạn có thể làm khá nhiều thứ bạn thích trong nhị phân đó.

Tuy nhiên, chú ý đến cảnh báo trên trang tôi liên kết với trên:

NPAPI là một cái búa thực sự lớn mà chỉ nên được sử dụng khi không có cách tiếp cận khác sẽ làm việc.

Mã đang chạy trong plugin NPAPI có đầy đủ quyền của người dùng hiện tại và không được sandboxed hoặc che chắn bởi đầu vào độc hại của Google Chrome theo bất kỳ cách nào. Bạn nên đặc biệt là thận trọng khi xử lý dữ liệu nhập từ các nguồn không đáng tin cậy, chẳng hạn như khi làm việc với các tập lệnh nội dung hoặc XMLHttpRequest.

Do các nguy cơ bảo mật bổ sung NPAPI đặt ra cho người dùng, tiện ích sử dụng nó sẽ yêu cầu xem xét thủ công trước khi được chấp nhận trong Cửa hàng Chrome Store.

0

Đây là một câu hỏi cũ, nhưng đây là một lựa chọn:

Nếu bạn viết thư cho localStorage từ phần mở rộng, bạn có thể truy cập vào thư mục địa phương lưu trữ của Chrome, nơi mỗi trang web và mở rộng thuận tiện cho tập tin riêng của mình. Trong Linux, thư mục nằm ở ~/.config/google-chrome/Default/Local Storage và trong Windows là %LocalAppData%\Google\Chrome\User Data\Default\Local Storage. Tôi không có máy Mac để kiểm tra, nhưng nó không khó để tìm thấy.

Dữ liệu là các cửa hàng giống như cái nhìn trong nháy mắt là JSON bên trong SQLite. Tôi đã không cố gắng biến nó thành một cái gì đó hữu ích, nhưng thông tin là tất cả ở đó. Tôi vừa làm một bài kiểm tra nhanh và tệp có vẻ được cập nhật ngay sau khi bạn viết thư cho localStorage, vì vậy bạn có thể đặt trình xem hệ thống tệp trên đó và nhận thông báo bất cứ khi nào nó thay đổi.

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