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

Side by Side Diff: Source/core/dom/custom/CustomElementMicrotaskImportStep.cpp

Issue 288323004: HTML Imports: Get rid of needsProcessOrStop() from dom/custom/ (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 { 59 {
60 m_queue = CustomElementMicrotaskQueue::create(); 60 m_queue = CustomElementMicrotaskQueue::create();
61 m_import.clear(); 61 m_import.clear();
62 } 62 }
63 63
64 bool CustomElementMicrotaskImportStep::shouldWaitForImport() const 64 bool CustomElementMicrotaskImportStep::shouldWaitForImport() const
65 { 65 {
66 return m_import && !m_import->isLoaded(); 66 return m_import && !m_import->isLoaded();
67 } 67 }
68 68
69 bool CustomElementMicrotaskImportStep::shouldStopProcessing() const
70 {
71 return m_import && m_import->isSync();
72 }
73
74 void CustomElementMicrotaskImportStep::didUpgradeAllCustomElements() 69 void CustomElementMicrotaskImportStep::didUpgradeAllCustomElements()
75 { 70 {
76 ASSERT(m_queue); 71 ASSERT(m_queue);
77 if (m_import) 72 if (m_import)
78 m_import->didFinishUpgradingCustomElements(); 73 m_import->didFinishUpgradingCustomElements();
79 } 74 }
80 75
81 CustomElementMicrotaskStep::Result CustomElementMicrotaskImportStep::process() 76 CustomElementMicrotaskStep::Result CustomElementMicrotaskImportStep::process()
82 { 77 {
83 Result result = m_queue->dispatch(); 78 m_queue->dispatch();
84 if (!(result & ShouldStop) && !shouldWaitForImport()) 79 if (!m_queue->isEmpty() || shouldWaitForImport())
85 didUpgradeAllCustomElements(); 80 return Processing;
86 81
87 if (shouldWaitForImport()) 82 didUpgradeAllCustomElements();
88 result = Result(result | ShouldRemain | ShouldStop); 83 return FinishedProcessing;
89 if (!shouldStopProcessing())
90 result = Result(result & ~ShouldStop);
91 return result;
92 }
93
94 bool CustomElementMicrotaskImportStep::needsProcessOrStop() const
95 {
96 return shouldStopProcessing() || m_queue->needsProcessOrStop();
97 } 84 }
98 85
99 void CustomElementMicrotaskImportStep::trace(Visitor* visitor) 86 void CustomElementMicrotaskImportStep::trace(Visitor* visitor)
100 { 87 {
101 visitor->trace(m_queue); 88 visitor->trace(m_queue);
102 CustomElementMicrotaskStep::trace(visitor); 89 CustomElementMicrotaskStep::trace(visitor);
103 } 90 }
104 91
105 #if !defined(NDEBUG) 92 #if !defined(NDEBUG)
106 void CustomElementMicrotaskImportStep::show(unsigned indent) 93 void CustomElementMicrotaskImportStep::show(unsigned indent)
107 { 94 {
108 fprintf(stderr, "%*sImport(wait=%d sync=%d, url=%s)\n", indent, "", shouldWa itForImport(), shouldStopProcessing(), m_import ? m_import->url().string().utf8( ).data() : "null"); 95 fprintf(stderr, "%*sImport(wait=%d sync=%d, url=%s)\n", indent, "", shouldWa itForImport(), m_import && m_import->isSync(), m_import ? m_import->url().string ().utf8().data() : "null");
109 m_queue->show(indent + 1); 96 m_queue->show(indent + 1);
110 } 97 }
111 #endif 98 #endif
112 99
113 } // namespace WebCore 100 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/dom/custom/CustomElementMicrotaskImportStep.h ('k') | Source/core/dom/custom/CustomElementMicrotaskQueue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698