1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
/*
* Copyright (C) 2009 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef WebDocument_h
#define WebDocument_h
#include "WebDraggableRegion.h"
#include "WebExceptionCode.h"
#include "WebFrame.h"
#include "WebNode.h"
#include "public/platform/WebReferrerPolicy.h"
#include "public/platform/WebSecurityOrigin.h"
#include "public/platform/WebVector.h"
#if BLINK_IMPLEMENTATION
namespace WTF { template <typename T> class PassRefPtr; }
#endif
namespace v8 {
class Value;
template <class T> class Local;
}
namespace blink {
class Document;
class DocumentType;
class WebAXObject;
class WebElement;
class WebFormElement;
class WebElementCollection;
class WebString;
class WebURL;
struct WebDistillabilityFeatures;
// Provides readonly access to some properties of a DOM document.
class WebDocument : public WebNode {
public:
WebDocument() { }
WebDocument(const WebDocument& e) : WebNode(e) { }
WebDocument& operator=(const WebDocument& e)
{
WebNode::assign(e);
return *this;
}
void assign(const WebDocument& e) { WebNode::assign(e); }
BLINK_EXPORT WebURL url() const;
// Note: Security checks should use the getSecurityOrigin(), not url().
BLINK_EXPORT WebSecurityOrigin getSecurityOrigin() const;
BLINK_EXPORT bool isSecureContext(WebString& errorMessage) const;
BLINK_EXPORT WebString encoding() const;
BLINK_EXPORT WebString contentLanguage() const;
BLINK_EXPORT WebString referrer() const;
BLINK_EXPORT WebColor themeColor() const;
// The url of the OpenSearch Desription Document (if any).
BLINK_EXPORT WebURL openSearchDescriptionURL() const;
// Returns the frame the document belongs to or 0 if the document is frameless.
BLINK_EXPORT WebLocalFrame* frame() const;
BLINK_EXPORT bool isHTMLDocument() const;
BLINK_EXPORT bool isXHTMLDocument() const;
BLINK_EXPORT bool isPluginDocument() const;
BLINK_EXPORT WebURL baseURL() const;
// The firstPartyForCookies is used to compute whether this document
// appears in a "third-party" context for the purpose of third-party
// cookie blocking.
BLINK_EXPORT WebURL firstPartyForCookies() const;
BLINK_EXPORT WebElement documentElement() const;
BLINK_EXPORT WebElement body() const;
BLINK_EXPORT WebElement head();
BLINK_EXPORT WebString title() const;
BLINK_EXPORT WebString contentAsTextForTesting() const;
BLINK_EXPORT WebElementCollection all();
BLINK_EXPORT void forms(WebVector<WebFormElement>&) const;
BLINK_EXPORT WebURL completeURL(const WebString&) const;
BLINK_EXPORT WebElement getElementById(const WebString&) const;
BLINK_EXPORT WebElement focusedElement() const;
BLINK_EXPORT void cancelFullScreen();
BLINK_EXPORT WebElement fullScreenElement() const;
BLINK_EXPORT WebReferrerPolicy referrerPolicy() const;
BLINK_EXPORT WebString outgoingReferrer();
// Accessibility support. These methods should only be called on the
// top-level document, because one accessibility cache spans all of
// the documents on the page.
// Gets the accessibility object for this document.
BLINK_EXPORT WebAXObject accessibilityObject() const;
// Gets the accessibility object for an object on this page by ID.
BLINK_EXPORT WebAXObject accessibilityObjectFromID(int axID) const;
// Gets the accessibility object that has focus.
BLINK_EXPORT WebAXObject focusedAccessibilityObject() const;
// Inserts the given CSS source code as a stylesheet in the document.
BLINK_EXPORT void insertStyleSheet(const WebString& sourceCode);
// Arranges to call WebFrameClient::didMatchCSS(frame(), ...) when one of
// the selectors matches or stops matching an element in this document.
// Each call to this method overrides any previous calls.
BLINK_EXPORT void watchCSSSelectors(const WebVector<WebString>& selectors);
BLINK_EXPORT WebVector<WebDraggableRegion> draggableRegions() const;
BLINK_EXPORT v8::Local<v8::Value> registerEmbedderCustomElement(const WebString& name, v8::Local<v8::Value> options, WebExceptionCode&);
BLINK_EXPORT WebURL manifestURL() const;
BLINK_EXPORT bool manifestUseCredentials() const;
BLINK_EXPORT WebDistillabilityFeatures distillabilityFeatures();
#if BLINK_IMPLEMENTATION
BLINK_EXPORT WebDocument(const PassRefPtrWillBeRawPtr<Document>&);
BLINK_EXPORT WebDocument& operator=(const PassRefPtrWillBeRawPtr<Document>&);
BLINK_EXPORT operator PassRefPtrWillBeRawPtr<Document>() const;
#endif
};
DECLARE_WEB_NODE_TYPE_CASTS(WebDocument);
} // namespace blink
#endif
|