@@ -11,6 +11,10 @@ external Chrome get chrome;
1111@anonymous
1212class Chrome {
1313 external Action get action;
14+ external Debugger get debugger;
15+ external Runtime get runtime;
16+ external Scripting get scripting;
17+ external Tabs get tabs;
1418}
1519
1620@JS ()
@@ -26,9 +30,109 @@ class OnClickedHandler {
2630 external void addListener (void Function (Tab tab) callback);
2731}
2832
33+ @JS ()
34+ @anonymous
35+ class Debugger {
36+ // https://developer.chrome.com/docs/extensions/reference/debugger/#method-attach
37+ external void attach (
38+ Debuggee target, String requiredVersion, Function ? callback);
39+
40+ // https://developer.chrome.com/docs/extensions/reference/debugger/#method-sendCommand
41+ external void sendCommand (Debuggee target, String method,
42+ Object ? commandParams, Function ? callback);
43+ }
44+
45+ @JS ()
46+ @anonymous
47+ class Runtime {
48+ // https://developer.chrome.com/docs/extensions/reference/runtime/#method-sendMessage
49+ external void sendMessage (
50+ String ? id, Object ? message, Object ? options, Function ? callback);
51+
52+ // https://developer.chrome.com/docs/extensions/reference/runtime/#method-getURL
53+ external String getURL (String path);
54+
55+ // https://developer.chrome.com/docs/extensions/reference/runtime/#event-onMessage
56+ external OnMessageHandler get onMessage;
57+ }
58+
59+ @JS ()
60+ @anonymous
61+ class OnMessageHandler {
62+ external void addListener (
63+ void Function (dynamic , MessageSender , Function ) callback);
64+ }
65+
66+ @JS ()
67+ @anonymous
68+ class Scripting {
69+ // https://developer.chrome.com/docs/extensions/reference/scripting/#method-executeScript
70+ external executeScript (InjectDetails details, Function ? callback);
71+ }
72+
73+ @JS ()
74+ @anonymous
75+ class Tabs {
76+ // https://developer.chrome.com/docs/extensions/reference/tabs/#method-query
77+ external Object query (QueryInfo queryInfo);
78+
79+ // https://developer.chrome.com/docs/extensions/reference/tabs/#method-create
80+ external Object create (TabInfo tabInfo);
81+ }
82+
83+ @JS ()
84+ @anonymous
85+ class Debuggee {
86+ external int get tabId;
87+ external String get extensionId;
88+ external String get targetId;
89+ external factory Debuggee ({int tabId, String ? extensionId, String ? targetId});
90+ }
91+
92+ @JS ()
93+ @anonymous
94+ class MessageSender {
95+ external String ? get id;
96+ external Tab ? get tab;
97+ external String ? get url;
98+ external factory MessageSender ({String ? id, String ? url, Tab ? tab});
99+ }
100+
101+ @JS ()
102+ @anonymous
103+ class TabInfo {
104+ external bool ? get active;
105+ external bool ? get pinned;
106+ external String ? get url;
107+ external factory TabInfo ({bool ? active, bool ? pinned, String ? url});
108+ }
109+
110+ @JS ()
111+ @anonymous
112+ class QueryInfo {
113+ external bool get active;
114+ external bool get currentWindow;
115+ external factory QueryInfo ({bool ? active, bool ? currentWindow});
116+ }
117+
29118@JS ()
30119@anonymous
31120class Tab {
32121 external int get id;
33122 external String get url;
34123}
124+
125+ @JS ()
126+ @anonymous
127+ class InjectDetails {
128+ external Target get target;
129+ external List <String >? get files;
130+ external factory InjectDetails ({Target target, List <String > files});
131+ }
132+
133+ @JS ()
134+ @anonymous
135+ class Target {
136+ external int get tabId;
137+ external factory Target ({int tabId});
138+ }
0 commit comments