Fix up unit_test.isolate file to compile on linux.
[chromium-blink-merge.git] / chrome_frame / chrome_tab.idl
blob3e1af75d0a1b892448a20b99aa7a5abe2701b30e
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // This file will be processed by the MIDL tool to
6 // produce the type library (chrome_tab.tlb) and marshalling code.
8 #include "olectl.h"
9 import "oaidl.idl";
10 import "ocidl.idl";
13 object,
14 uuid(FB243E4B-8AC2-4840-95F2-91B9AF9CFF10),
15 dual,
16 nonextensible,
17 helpstring("IChromeFrame Interface"),
18 pointer_default(unique)
20 interface IChromeFrame : IDispatch {
21 [propget, id(1)]
22 HRESULT src([out, retval] BSTR* src);
23 [propput, id(1)]
24 HRESULT src([in] BSTR src);
26 [id(3)]
27 HRESULT postMessage([in] BSTR message, [in, optional] VARIANT target);
29 [id(4), propget]
30 HRESULT onload([out, retval] VARIANT* onload_handler);
31 [id(4), propput]
32 HRESULT onload([in] VARIANT onload_handler);
34 [propget, id(5)]
35 HRESULT onloaderror([out, retval] VARIANT* onerror_handler);
36 [propput, id(5)]
37 HRESULT onloaderror([in] VARIANT onerror_handler);
39 [propget, id(6)]
40 HRESULT onmessage([out, retval] VARIANT* onmessage_handler);
41 [propput, id(6)]
42 HRESULT onmessage([in] VARIANT onmessage_handler);
44 [propget, id(DISPID_READYSTATE)]
45 HRESULT readyState([out, retval] long* ready_state);
47 [id(7)]
48 HRESULT addEventListener([in] BSTR event_type, [in] IDispatch* listener,
49 [in, optional] VARIANT use_capture);
51 [id(8)]
52 HRESULT removeEventListener([in] BSTR event_type, [in] IDispatch* listener,
53 [in, optional] VARIANT use_capture);
55 [propget, id(9)]
56 HRESULT version([out, retval] BSTR* version);
58 [id(10), hidden]
59 // This method is available only when the control is in privileged mode.
60 HRESULT postPrivateMessage([in] BSTR message,
61 [in] BSTR origin,
62 [in] BSTR target);
64 [propget, id(11)]
65 HRESULT useChromeNetwork([out, retval] VARIANT_BOOL* pVal);
66 [propput, id(11)]
67 HRESULT useChromeNetwork([in] VARIANT_BOOL newVal);
69 [id(12), hidden]
70 // Deprecated. Returns E_NOTIMPL.
71 HRESULT installExtension([in] BSTR crx_path);
73 [id(13), hidden]
74 // Deprecated. Returns E_NOTIMPL.
75 HRESULT loadExtension([in] BSTR extension_path);
77 [id(14), hidden]
78 // Deprecated. Returns E_NOTIMPL.
79 HRESULT getEnabledExtensions();
81 [id(15)]
82 // This method bootstraps the BHO if it is not already loaded.
83 HRESULT registerBhoIfNeeded();
87 object,
88 uuid(E98FDFD9-312B-444a-A640-8E88F3CC08B8),
89 oleautomation,
90 nonextensible,
91 hidden,
93 // Internal implementation interface. Not intended as an API. May change
94 // frequently, don't treat this as frozen.
95 interface IChromeFramePrivileged : IUnknown {
96 // If the host returns false for wants_privileged, the control
97 // won't enable privileged mode.
98 HRESULT GetWantsPrivileged([out] boolean *wants_privileged);
99 // The profile name we want to use.
100 HRESULT GetChromeProfileName([out] BSTR *profile_name);
101 // Called when an automation version mismatch occurs. Returns S_OK if
102 // a dialog should be showed to the user by this CF instance, S_FALSE if
103 // not.
104 HRESULT ShouldShowVersionMismatchDialog();
105 // Allows the host to return the navigation url during the creation of the
106 // ChromeFrameActiveX instance.
107 HRESULT GetNavigationUrl([out] BSTR* url);
110 // Expose this service to the ChromeFrame control to trigger privileged
111 // mode. If the control is in privileged mode, it will forward messages
112 // to the onmessage handler irrespective of origin.
113 cpp_quote("#define SID_ChromeFramePrivileged __uuidof(IChromeFramePrivileged)")
115 typedef enum {
116 CF_EVENT_DISPID_ONLOAD = 1,
117 CF_EVENT_DISPID_ONLOADERROR,
118 CF_EVENT_DISPID_ONMESSAGE,
119 CF_EVENT_DISPID_ONPRIVATEMESSAGE,
120 CF_EVENT_DISPID_ONCHANNELERROR,
121 CF_EVENT_DISPID_ONCLOSE,
122 CF_EVENT_DISPID_ONREADYSTATECHANGED = DISPID_READYSTATECHANGE,
123 } ChromeFrameEventDispId;
126 uuid(6F2664E1-FF6E-488A-BCD1-F4CA6001DFCC),
127 version(1.0),
128 helpstring("ChromeTab 1.0 Type Library")
130 library ChromeTabLib {
131 importlib("stdole2.tlb");
133 [uuid(388B5D64-CE67-415b-9B0F-745C56E868E7)]
134 dispinterface DIChromeFrameEvents {
135 properties:
136 // None.
138 methods:
139 [id(CF_EVENT_DISPID_ONLOAD)]
140 void onload();
142 [id(CF_EVENT_DISPID_ONLOADERROR)]
143 void onloaderror();
145 [id(CF_EVENT_DISPID_ONMESSAGE)]
146 void onmessage([in] IDispatch* event);
148 [id(CF_EVENT_DISPID_ONREADYSTATECHANGED)]
149 void onreadystatechanged();
151 [id(CF_EVENT_DISPID_ONPRIVATEMESSAGE)]
152 // This event is only fired when the control is in privileged mode.
153 void onprivatemessage([in] IDispatch* event, [in] BSTR target);
155 [id(CF_EVENT_DISPID_ONCHANNELERROR)]
156 // This event is fired when there is an error in communication channel with
157 // Chrome and Automation must be reconnected to continue.
158 void onchannelerror();
160 [id(CF_EVENT_DISPID_ONCLOSE)]
161 // This event is fired when the script inside the page wants to close it.
162 // This is just a notification, there is no way to prevent the script from
163 // closing.
164 void onclose();
167 [uuid(BB1176EE-20DD-41DC-9D1E-AC1335C7BBB0)]
168 coclass HtmlFilter {
169 [default] interface IUnknown;
172 [uuid(9875BFAF-B04D-445E-8A69-BE36838CDE3E)]
173 coclass ChromeProtocol {
174 [default] interface IUnknown;
177 [uuid(3E1D0E7F-F5E3-44CC-AA6A-C0A637619AB8), control]
178 coclass ChromeActiveDocument {
179 [default] interface IChromeFrame;
182 [uuid(E0A900DF-9611-4446-86BD-4B1D47E7DB2A), control]
183 coclass ChromeFrame {
184 [default] interface IChromeFrame;
185 [default, source] dispinterface DIChromeFrameEvents;
188 [uuid(ECB3C477-1A0A-44bd-BB57-78F9EFE34FA7)]
189 coclass ChromeFrameBHO {
190 [default] interface IUnknown;