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

Side by Side Diff: third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.h

Issue 2837363003: 2. Remove HTMLParserScriptRunner's prefinalizer (Closed)
Patch Set: Rebase 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp » ('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) 2010 Google, Inc. All Rights Reserved. 2 * Copyright (C) 2010 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 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 // 48 //
49 // If a script blocks parsing, this class is responsible for holding it, and 49 // If a script blocks parsing, this class is responsible for holding it, and
50 // executing it when required. 50 // executing it when required.
51 // 51 //
52 // An HTMLParserScriptRunner is owned by its host, an HTMLDocumentParser. 52 // An HTMLParserScriptRunner is owned by its host, an HTMLDocumentParser.
53 class HTMLParserScriptRunner final 53 class HTMLParserScriptRunner final
54 : public GarbageCollectedFinalized<HTMLParserScriptRunner>, 54 : public GarbageCollectedFinalized<HTMLParserScriptRunner>,
55 private PendingScriptClient { 55 private PendingScriptClient {
56 WTF_MAKE_NONCOPYABLE(HTMLParserScriptRunner); 56 WTF_MAKE_NONCOPYABLE(HTMLParserScriptRunner);
57 USING_GARBAGE_COLLECTED_MIXIN(HTMLParserScriptRunner); 57 USING_GARBAGE_COLLECTED_MIXIN(HTMLParserScriptRunner);
58 USING_PRE_FINALIZER(HTMLParserScriptRunner, Detach);
59 58
60 public: 59 public:
61 static HTMLParserScriptRunner* Create(HTMLParserReentryPermit* reentry_permit, 60 static HTMLParserScriptRunner* Create(HTMLParserReentryPermit* reentry_permit,
62 Document* document, 61 Document* document,
63 HTMLParserScriptRunnerHost* host) { 62 HTMLParserScriptRunnerHost* host) {
64 return new HTMLParserScriptRunner(reentry_permit, document, host); 63 return new HTMLParserScriptRunner(reentry_permit, document, host);
65 } 64 }
66 ~HTMLParserScriptRunner(); 65 ~HTMLParserScriptRunner();
67 66
68 // Prepares this object to be destroyed. Invoked when the parser is detached, 67 // Invoked when the parser is detached.
69 // or failing that, as a pre-finalizer. 68 //
69 // We don't need to call Detach() as a prefinalizer, because PendingScripts
70 // are Dispose()d in PendingScripts' prefinalizers.
70 void Detach(); 71 void Detach();
71 72
72 // Processes the passed in script and any pending scripts if possible. 73 // Processes the passed in script and any pending scripts if possible.
73 // This does not necessarily run the script immediately. For instance, 74 // This does not necessarily run the script immediately. For instance,
74 // execution may not happen until the script loads from the network, or after 75 // execution may not happen until the script loads from the network, or after
75 // the document finishes parsing. 76 // the document finishes parsing.
76 void ProcessScriptElement(Element*, 77 void ProcessScriptElement(Element*,
77 const TextPosition& script_start_position); 78 const TextPosition& script_start_position);
78 79
79 // Invoked when the parsing-blocking script resource has loaded, to execute 80 // Invoked when the parsing-blocking script resource has loaded, to execute
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 // https://html.spec.whatwg.org/#pending-parsing-blocking-script 131 // https://html.spec.whatwg.org/#pending-parsing-blocking-script
131 Member<PendingScript> parser_blocking_script_; 132 Member<PendingScript> parser_blocking_script_;
132 133
133 // https://html.spec.whatwg.org/#list-of-scripts-that-will-execute-when-the-do cument-has-finished-parsing 134 // https://html.spec.whatwg.org/#list-of-scripts-that-will-execute-when-the-do cument-has-finished-parsing
134 HeapDeque<Member<PendingScript>> scripts_to_execute_after_parsing_; 135 HeapDeque<Member<PendingScript>> scripts_to_execute_after_parsing_;
135 }; 136 };
136 137
137 } // namespace blink 138 } // namespace blink
138 139
139 #endif 140 #endif
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698