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

Side by Side Diff: Source/core/dom/Document.h

Issue 107073003: Introduce DEFINE_DOCUMENT_TYPE_CASTS, and use it (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years 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
« no previous file with comments | « no previous file | Source/core/html/HTMLDocument.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
9 * Copyright (C) 2011 Google Inc. All rights reserved. 9 * Copyright (C) 2011 Google Inc. All rights reserved.
10 * 10 *
(...skipping 1329 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 } 1340 }
1341 1341
1342 inline const Document* toDocument(const ExecutionContext* executionContext) 1342 inline const Document* toDocument(const ExecutionContext* executionContext)
1343 { 1343 {
1344 ASSERT_WITH_SECURITY_IMPLICATION(!executionContext || executionContext->isDo cument()); 1344 ASSERT_WITH_SECURITY_IMPLICATION(!executionContext || executionContext->isDo cument());
1345 return static_cast<const Document*>(executionContext); 1345 return static_cast<const Document*>(executionContext);
1346 } 1346 }
1347 1347
1348 DEFINE_NODE_TYPE_CASTS(Document, isDocumentNode()); 1348 DEFINE_NODE_TYPE_CASTS(Document, isDocumentNode());
1349 1349
1350 #define DEFINE_DOCUMENT_TYPE_CASTS(thisType) \
1351 DEFINE_TYPE_CASTS(thisType, Document, document, document->is##thisType(), do cument.is##thisType())
1352
1350 // All these varations are needed to avoid ambiguous overloads with the Node and TreeScope versions. 1353 // All these varations are needed to avoid ambiguous overloads with the Node and TreeScope versions.
1351 inline bool operator==(const Document& a, const Document& b) { return &a == &b; } 1354 inline bool operator==(const Document& a, const Document& b) { return &a == &b; }
1352 inline bool operator==(const Document& a, const Document* b) { return &a == b; } 1355 inline bool operator==(const Document& a, const Document* b) { return &a == b; }
1353 inline bool operator==(const Document* a, const Document& b) { return a == &b; } 1356 inline bool operator==(const Document* a, const Document& b) { return a == &b; }
1354 inline bool operator!=(const Document& a, const Document& b) { return !(a == b); } 1357 inline bool operator!=(const Document& a, const Document& b) { return !(a == b); }
1355 inline bool operator!=(const Document& a, const Document* b) { return !(a == b); } 1358 inline bool operator!=(const Document& a, const Document* b) { return !(a == b); }
1356 inline bool operator!=(const Document* a, const Document& b) { return !(a == b); } 1359 inline bool operator!=(const Document* a, const Document& b) { return !(a == b); }
1357 1360
1358 // Put these methods here, because they require the Document definition, but we really want to inline them. 1361 // Put these methods here, because they require the Document definition, but we really want to inline them.
1359 1362
1360 inline bool Node::isDocumentNode() const 1363 inline bool Node::isDocumentNode() const
1361 { 1364 {
1362 return this == documentInternal(); 1365 return this == documentInternal();
1363 } 1366 }
1364 1367
1365 Node* eventTargetNodeForDocument(Document*); 1368 Node* eventTargetNodeForDocument(Document*);
1366 1369
1367 } // namespace WebCore 1370 } // namespace WebCore
1368 1371
1369 #endif // Document_h 1372 #endif // Document_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/html/HTMLDocument.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698