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

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

Issue 2657263002: Experiment with blocking script inside fragment-parser-inserted `<iframe srcdoc>`.
Patch Set: Bitwise logic is hard. Created 3 years, 10 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
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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights
6 * reserved. 6 * reserved.
7 * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> 7 * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 m_willBeParserExecuted(false), 73 m_willBeParserExecuted(false),
74 m_readyToBeParserExecuted(false), 74 m_readyToBeParserExecuted(false),
75 m_willExecuteWhenDocumentFinishedParsing(false), 75 m_willExecuteWhenDocumentFinishedParsing(false),
76 m_forceAsync(!parserInserted), 76 m_forceAsync(!parserInserted),
77 m_createdDuringDocumentWrite(createdDuringDocumentWrite), 77 m_createdDuringDocumentWrite(createdDuringDocumentWrite),
78 m_asyncExecType(ScriptRunner::None), 78 m_asyncExecType(ScriptRunner::None),
79 m_documentWriteIntervention( 79 m_documentWriteIntervention(
80 DocumentWriteIntervention::DocumentWriteInterventionNone) { 80 DocumentWriteIntervention::DocumentWriteInterventionNone) {
81 DCHECK(m_element); 81 DCHECK(m_element);
82 if (parserInserted && element->document().scriptableDocumentParser() && 82 if (parserInserted && element->document().scriptableDocumentParser() &&
83 !element->document().isInDocumentWrite()) 83 !element->document().isInDocumentWrite()) {
84 m_startLineNumber = 84 m_startLineNumber =
85 element->document().scriptableDocumentParser()->lineNumber(); 85 element->document().scriptableDocumentParser()->lineNumber();
86 }
87
88 // Experiment based on https://github.com/whatwg/html/issues/2300.
89 if (!alreadyStarted && element->document().isFragmentParserCreatedSrcdoc()) {
90 UseCounter::count(element->document(),
91 UseCounter::ScriptInsideFragmentParserInsertedSrcdoc);
92 if (RuntimeEnabledFeatures::
93 scriptInsideParserInsertedSrcdocIsAlreadyStartedEnabled()) {
94 m_alreadyStarted = true;
95 }
96 }
86 } 97 }
87 98
88 ScriptLoader::~ScriptLoader() {} 99 ScriptLoader::~ScriptLoader() {}
89 100
90 DEFINE_TRACE(ScriptLoader) { 101 DEFINE_TRACE(ScriptLoader) {
91 visitor->trace(m_element); 102 visitor->trace(m_element);
92 visitor->trace(m_resource); 103 visitor->trace(m_resource);
93 visitor->trace(m_pendingScript); 104 visitor->trace(m_pendingScript);
94 PendingScriptClient::trace(visitor); 105 PendingScriptClient::trace(visitor);
95 } 106 }
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 if (isHTMLScriptLoader(element)) 653 if (isHTMLScriptLoader(element))
643 return toHTMLScriptElement(element)->loader(); 654 return toHTMLScriptElement(element)->loader();
644 655
645 if (isSVGScriptLoader(element)) 656 if (isSVGScriptLoader(element))
646 return toSVGScriptElement(element)->loader(); 657 return toSVGScriptElement(element)->loader();
647 658
648 return 0; 659 return 0;
649 } 660 }
650 661
651 } // namespace blink 662 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/Document.cpp ('k') | third_party/WebKit/Source/core/frame/UseCounter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698