Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(325)

Side by Side Diff: third_party/WebKit/Source/web/WebNode.cpp

Issue 2888203006: Move the logic to retrieve the WebPluginContainer to LocalFrame and Node. (Closed)
Patch Set: Ensure we have a valid PluginView before using it. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 #include "core/layout/LayoutObject.h" 48 #include "core/layout/LayoutObject.h"
49 #include "core/layout/LayoutPart.h" 49 #include "core/layout/LayoutPart.h"
50 #include "modules/accessibility/AXObjectImpl.h" 50 #include "modules/accessibility/AXObjectImpl.h"
51 #include "platform/wtf/PtrUtil.h" 51 #include "platform/wtf/PtrUtil.h"
52 #include "public/platform/WebString.h" 52 #include "public/platform/WebString.h"
53 #include "public/web/WebAXObject.h" 53 #include "public/web/WebAXObject.h"
54 #include "public/web/WebDOMEvent.h" 54 #include "public/web/WebDOMEvent.h"
55 #include "public/web/WebDocument.h" 55 #include "public/web/WebDocument.h"
56 #include "public/web/WebElement.h" 56 #include "public/web/WebElement.h"
57 #include "public/web/WebElementCollection.h" 57 #include "public/web/WebElementCollection.h"
58 #include "public/web/WebPluginContainer.h"
59 58
60 namespace blink { 59 namespace blink {
61 60
62 void WebNode::Reset() { 61 void WebNode::Reset() {
63 private_.Reset(); 62 private_.Reset();
64 } 63 }
65 64
66 void WebNode::Assign(const WebNode& other) { 65 void WebNode::Assign(const WebNode& other) {
67 private_ = other.private_; 66 private_ = other.private_;
68 } 67 }
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 if (!private_->IsContainerNode()) 166 if (!private_->IsContainerNode())
168 return WebElement(); 167 return WebElement();
169 return ToContainerNode(private_.Get()) 168 return ToContainerNode(private_.Get())
170 ->QuerySelector(selector, IGNORE_EXCEPTION_FOR_TESTING); 169 ->QuerySelector(selector, IGNORE_EXCEPTION_FOR_TESTING);
171 } 170 }
172 171
173 bool WebNode::Focused() const { 172 bool WebNode::Focused() const {
174 return private_->IsFocused(); 173 return private_->IsFocused();
175 } 174 }
176 175
177 WebPluginContainer* WebNode::PluginContainerFromNode(const Node* node) {
178 if (!node)
179 return nullptr;
180
181 if (!isHTMLObjectElement(node) && !isHTMLEmbedElement(node))
182 return nullptr;
183
184 LayoutObject* object = node->GetLayoutObject();
185 if (object && object->IsLayoutPart()) {
186 PluginView* plugin = ToLayoutPart(object)->Plugin();
187 if (plugin && plugin->IsPluginContainer())
188 return ToWebPluginContainerBase(plugin);
189 }
190
191 return nullptr;
192 }
193
194 WebPluginContainer* WebNode::PluginContainer() const { 176 WebPluginContainer* WebNode::PluginContainer() const {
195 return PluginContainerFromNode(ConstUnwrap<Node>()); 177 return private_->GetWebPluginContainerBase();
196 } 178 }
197 179
198 WebAXObject WebNode::AccessibilityObject() { 180 WebAXObject WebNode::AccessibilityObject() {
199 WebDocument web_document = GetDocument(); 181 WebDocument web_document = GetDocument();
200 const Document* doc = GetDocument().ConstUnwrap<Document>(); 182 const Document* doc = GetDocument().ConstUnwrap<Document>();
201 AXObjectCacheBase* cache = ToAXObjectCacheBase(doc->ExistingAXObjectCache()); 183 AXObjectCacheBase* cache = ToAXObjectCacheBase(doc->ExistingAXObjectCache());
202 Node* node = Unwrap<Node>(); 184 Node* node = Unwrap<Node>();
203 return cache ? WebAXObject(cache->Get(node)) : WebAXObject(); 185 return cache ? WebAXObject(cache->Get(node)) : WebAXObject();
204 } 186 }
205 187
206 WebNode::WebNode(Node* node) : private_(node) {} 188 WebNode::WebNode(Node* node) : private_(node) {}
207 189
208 WebNode& WebNode::operator=(Node* node) { 190 WebNode& WebNode::operator=(Node* node) {
209 private_ = node; 191 private_ = node;
210 return *this; 192 return *this;
211 } 193 }
212 194
213 WebNode::operator Node*() const { 195 WebNode::operator Node*() const {
214 return private_.Get(); 196 return private_.Get();
215 } 197 }
216 198
217 } // namespace blink 199 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebLocalFrameImpl.cpp ('k') | third_party/WebKit/Source/web/WebPluginContainerImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698