webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
PolicyDelegate.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2007, 2009, 2015 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * 3. Neither the name of Apple Inc. ("Apple") nor the names of
14  * its contributors may be used to endorse or promote products derived
15  * from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #ifndef PolicyDelegate_h
30 #define PolicyDelegate_h
31 
32 #include <WebKit/WebKit.h>
33 
34 class TestRunner;
35 
36 class PolicyDelegate : public IWebPolicyDelegate {
37 public:
39 
40  // IUnknown
41  virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
42  virtual ULONG STDMETHODCALLTYPE AddRef();
43  virtual ULONG STDMETHODCALLTYPE Release();
44 
45  // IWebPolicyDelegate
46  virtual HRESULT STDMETHODCALLTYPE decidePolicyForNavigationAction(_In_opt_ IWebView*, _In_opt_ IPropertyBag* actionInformation,
47  _In_opt_ IWebURLRequest*, _In_opt_ IWebFrame*, _In_opt_ IWebPolicyDecisionListener*);
48  virtual HRESULT STDMETHODCALLTYPE decidePolicyForNewWindowAction(_In_opt_ IWebView*, _In_opt_ IPropertyBag* actionInformation,
49  _In_opt_ IWebURLRequest*, _In_ BSTR frameName, _In_opt_ IWebPolicyDecisionListener*)
50  {
51  return E_NOTIMPL;
52  }
53 
54  virtual HRESULT STDMETHODCALLTYPE decidePolicyForMIMEType(_In_opt_ IWebView*, _In_ BSTR type, _In_opt_ IWebURLRequest*,
55  _In_opt_ IWebFrame*, _In_opt_ IWebPolicyDecisionListener*)
56  {
57  return E_NOTIMPL;
58  }
59 
60  virtual HRESULT STDMETHODCALLTYPE unableToImplementPolicyWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebFrame*);
61 
62  // PolicyDelegate
63  void setPermissive(bool permissive) { m_permissiveDelegate = permissive; }
64  void setControllerToNotifyDone(TestRunner* controller) { m_controllerToNotifyDone = controller; }
65 
66 private:
67  TestRunner* m_controllerToNotifyDone { nullptr };
68  ULONG m_refCount { 1 };
69  bool m_permissiveDelegate { false };
70 };
71 
72 #endif // PolicyDelegate_h
Definition: run_test.mm:22
Definition: IWebURLRequest.idl:46
void setControllerToNotifyDone(TestRunner *controller)
Definition: PolicyDelegate.h:64
virtual HRESULT STDMETHODCALLTYPE decidePolicyForNewWindowAction(_In_opt_ IWebView *, _In_opt_ IPropertyBag *actionInformation, _In_opt_ IWebURLRequest *, _In_ BSTR frameName, _In_opt_ IWebPolicyDecisionListener *)
Definition: PolicyDelegate.h:48
unsigned long ULONG
Definition: MD5.h:32
Definition: IWebError.idl:130
HRESULT
Definition: RenderThemeWin.cpp:150
Definition: PolicyDelegate.h:34
void setPermissive(bool permissive)
Definition: PolicyDelegate.h:63
std::unique_ptr< FecController > controller
Definition: fec_controller_unittest.cc:49
virtual HRESULT STDMETHODCALLTYPE decidePolicyForMIMEType(_In_opt_ IWebView *, _In_ BSTR type, _In_opt_ IWebURLRequest *, _In_opt_ IWebFrame *, _In_opt_ IWebPolicyDecisionListener *)
Definition: PolicyDelegate.h:54
wchar_t * BSTR
Definition: BString.h:36
PolicyDelegate()
Definition: PolicyDelegate.cpp:57
Definition: IWebFrame.idl:66
EGLenum type
Definition: eglext.h:63
virtual HRESULT STDMETHODCALLTYPE unableToImplementPolicyWithError(_In_opt_ IWebView *, _In_opt_ IWebError *, _In_opt_ IWebFrame *)
Definition: PolicyDelegate.cpp:158
Definition: IWebPolicyDelegate.idl:154
Definition: IWebView.idl:161
virtual ULONG STDMETHODCALLTYPE Release()
Definition: PolicyDelegate.cpp:83
virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void **ppvObject)
Definition: PolicyDelegate.cpp:62
virtual HRESULT STDMETHODCALLTYPE decidePolicyForNavigationAction(_In_opt_ IWebView *, _In_opt_ IPropertyBag *actionInformation, _In_opt_ IWebURLRequest *, _In_opt_ IWebFrame *, _In_opt_ IWebPolicyDecisionListener *)
Definition: PolicyDelegate.cpp:92
Definition: IWebPolicyDelegate.idl:81
virtual ULONG STDMETHODCALLTYPE AddRef()
Definition: PolicyDelegate.cpp:78