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

Unified Diff: Source/core/dom/Document.cpp

Issue 281383006: Navigation transitions: Added createStyledMarkupForNavigationTransition (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Missing NULL check Created 6 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/dom/Document.cpp
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
index cb50f4c117380d975a04297d252c80c508966a40..cfbf236b6849c2e674069ea85bf9cfbcd10fe579 100644
--- a/Source/core/dom/Document.cpp
+++ b/Source/core/dom/Document.cpp
@@ -100,6 +100,7 @@
#include "core/editing/Editor.h"
#include "core/editing/FrameSelection.h"
#include "core/editing/SpellChecker.h"
+#include "core/editing/markup.h"
#include "core/events/BeforeUnloadEvent.h"
#include "core/events/Event.h"
#include "core/events/EventFactory.h"
@@ -5673,6 +5674,43 @@ Element* Document::activeElement() const
return body();
}
+void Document::getTransitionElementData(Vector<TransitionElementData>* elementData, ExceptionState& exceptionState)
esprehn 2014/06/13 08:47:05 Since this is only used in tests, lets put it in I
+{
+ ASSERT(elementData);
+
+ RefPtr<HTMLCollection> metaElements = getElementsByTagName(HTMLNames::metaTag.localName());
esprehn 2014/06/13 08:47:06 We don't normally allow code like this in core/, e
oystein (OOO til 10th of July) 2014/06/17 21:07:06 Replaced getElementsByTagName with Traversal<HTMLM
+ unsigned length = metaElements->length();
+ for (unsigned i = 0; i < length; ++i) {
+ ASSERT(metaElements->item(i)->isHTMLElement());
+ HTMLMetaElement* metaElement = toHTMLMetaElement(metaElements->item(i));
+ if (metaElement->name() != "transition-elements")
+ continue;
+
+ Vector<String> tokens;
+ String(metaElement->content().impl()).split(';', tokens);
+ if (tokens.size() != 2)
+ continue;
+
+ RefPtr<NodeList> nodeList = querySelectorAll(AtomicString(tokens[0]), exceptionState);
+ if (!nodeList || exceptionState.hadException())
+ continue;
+
+ String markup;
+ unsigned nodeListLength = nodeList->length();
+ for (unsigned nodeIdx = 0; nodeIdx < nodeListLength; ++nodeIdx) {
+ Node* node = nodeList->item(nodeIdx);
+ markup = markup + createStyledMarkupForNavigationTransition(node);
+ }
+
+ if (!markup.isEmpty()) {
+ TransitionElementData newElements;
+ newElements.scope = tokens[1];
+ newElements.markup = markup;
+ elementData->append(newElements);
+ }
+ }
+}
+
bool Document::hasFocus() const
{
Page* page = this->page();

Powered by Google App Engine
This is Rietveld 408576698