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

Side by Side Diff: third_party/WebKit/Source/core/dom/PendingScript.cpp

Issue 2023683002: Tidy PendingScript (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove prefinalizer Created 4 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
« no previous file with comments | « third_party/WebKit/Source/core/dom/PendingScript.h ('k') | no next file » | 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 29 matching lines...) Expand all
40 } 40 }
41 41
42 PendingScript::PendingScript(Element* element, ScriptResource* resource) 42 PendingScript::PendingScript(Element* element, ScriptResource* resource)
43 : m_watchingForLoad(false) 43 : m_watchingForLoad(false)
44 , m_element(element) 44 , m_element(element)
45 , m_integrityFailure(false) 45 , m_integrityFailure(false)
46 , m_parserBlockingLoadStartTime(0) 46 , m_parserBlockingLoadStartTime(0)
47 , m_client(nullptr) 47 , m_client(nullptr)
48 { 48 {
49 setScriptResource(resource); 49 setScriptResource(resource);
50 ThreadState::current()->registerPreFinalizer(this);
51 } 50 }
52 51
53 PendingScript::~PendingScript() 52 PendingScript::~PendingScript()
54 { 53 {
54 // Verify explicit dispose().
55 CHECK(!m_client && !m_element && !m_streamer);
55 } 56 }
56 57
57 void PendingScript::dispose() 58 void PendingScript::dispose()
58 { 59 {
59 if (!m_client) 60 if (!m_client)
60 return; 61 return;
61 stopWatchingForLoad(); 62 stopWatchingForLoad();
62 releaseElementAndClear(); 63 releaseElementAndClear();
63 } 64 }
64 65
65 PendingScript& PendingScript::operator=(const PendingScript& other)
66 {
67 if (this == &other)
68 return *this;
69
70 m_watchingForLoad = other.m_watchingForLoad;
71 m_element = other.m_element;
72 m_startingPosition = other.m_startingPosition;
73 m_integrityFailure = other.m_integrityFailure;
74 m_streamer = other.m_streamer;
75 this->ResourceOwner<ScriptResource, ScriptResourceClient>::operator=(other);
76 return *this;
77 }
78
79 void PendingScript::watchForLoad(ScriptResourceClient* client) 66 void PendingScript::watchForLoad(ScriptResourceClient* client)
80 { 67 {
81 DCHECK(!m_watchingForLoad); 68 DCHECK(!m_watchingForLoad);
82 // addClient() will call streamingFinished() if the load is complete. Caller s 69 // addClient() will call streamingFinished() if the load is complete. Caller s
83 // who do not expect to be re-entered from this call should not call 70 // who do not expect to be re-entered from this call should not call
84 // watchForLoad for a PendingScript which isReady. We also need to set 71 // watchForLoad for a PendingScript which isReady. We also need to set
85 // m_watchingForLoad early, since addClient() can result in calling 72 // m_watchingForLoad early, since addClient() can result in calling
86 // notifyFinished and further stopWatchingForLoad(). 73 // notifyFinished and further stopWatchingForLoad().
87 m_watchingForLoad = true; 74 m_watchingForLoad = true;
88 m_client = client; 75 m_client = client;
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 bool PendingScript::errorOccurred() const 221 bool PendingScript::errorOccurred() const
235 { 222 {
236 if (resource()) 223 if (resource())
237 return resource()->errorOccurred(); 224 return resource()->errorOccurred();
238 if (m_streamer && m_streamer->resource()) 225 if (m_streamer && m_streamer->resource())
239 return m_streamer->resource()->errorOccurred(); 226 return m_streamer->resource()->errorOccurred();
240 return false; 227 return false;
241 } 228 }
242 229
243 } // namespace blink 230 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/PendingScript.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698