Changeset 211313 in webkit
- Timestamp:
- Jan 27, 2017 4:47:30 PM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r211283 r211313 1068 1068 animation/WebAnimation.cpp 1069 1069 1070 bindings/js/CachedModuleScript.cpp1071 1070 bindings/js/CachedModuleScriptLoader.cpp 1072 1071 bindings/js/CachedScriptFetcher.cpp -
trunk/Source/WebCore/ChangeLog
r211309 r211313 1 2017-01-27 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 Merge CachedModuleScript and LoadableModuleScript 4 https://bugs.webkit.org/show_bug.cgi?id=167500 5 6 Reviewed by Darin Adler. 7 8 CachedModuleScript becomes duplicate with LoadableModuleScript. 9 And CachedModuleScript does not offer any meaningful functionality 10 to LoadableModuleScript. 11 This patch merges CachedModuleScript to LoadableModuleScript. 12 13 No behavior change. 14 15 * CMakeLists.txt: 16 * WebCore.xcodeproj/project.pbxproj: 17 * bindings/js/CachedModuleScript.cpp: Removed. 18 * bindings/js/CachedModuleScript.h: Removed. 19 * bindings/js/CachedModuleScriptClient.h: Removed. 20 * bindings/js/JSBindingsAllInOne.cpp: 21 * bindings/js/ScriptController.cpp: 22 (WebCore::ScriptController::loadModuleScriptInWorld): 23 (WebCore::ScriptController::loadModuleScript): 24 (WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld): 25 (WebCore::ScriptController::linkAndEvaluateModuleScript): 26 (WebCore::ScriptController::setupModuleScriptHandlers): 27 * bindings/js/ScriptController.h: 28 * dom/LoadableModuleScript.cpp: 29 (WebCore::LoadableModuleScript::create): 30 (WebCore::LoadableModuleScript::LoadableModuleScript): 31 (WebCore::LoadableModuleScript::~LoadableModuleScript): 32 (WebCore::LoadableModuleScript::isLoaded): 33 (WebCore::LoadableModuleScript::error): 34 (WebCore::LoadableModuleScript::wasCanceled): 35 (WebCore::LoadableModuleScript::notifyLoadCompleted): 36 (WebCore::LoadableModuleScript::notifyLoadFailed): 37 (WebCore::LoadableModuleScript::notifyLoadWasCanceled): 38 (WebCore::LoadableModuleScript::execute): 39 (WebCore::LoadableModuleScript::load): 40 (WebCore::LoadableModuleScript::notifyFinished): Deleted. 41 * dom/LoadableModuleScript.h: 42 * dom/ScriptElement.cpp: 43 (WebCore::ScriptElement::executeModuleScript): 44 * dom/ScriptElement.h: 45 1 46 2017-01-27 Michael Saboff <msaboff@apple.com> 2 47 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r211294 r211313 6304 6304 E30592671E27A3D100D57C98 /* CachedScriptFetcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E30592651E27A3C600D57C98 /* CachedScriptFetcher.cpp */; }; 6305 6305 E30592681E27A3D100D57C98 /* CachedScriptFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E30592661E27A3C600D57C98 /* CachedScriptFetcher.h */; settings = {ATTRIBUTES = (Private, ); }; }; 6306 E307DECC1D81E4B300141CAF /* CachedModuleScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E307DEC91D81E46E00141CAF /* CachedModuleScript.cpp */; };6307 E307DECD1D81E4B600141CAF /* CachedModuleScript.h in Headers */ = {isa = PBXBuildFile; fileRef = E307DECA1D81E46E00141CAF /* CachedModuleScript.h */; settings = {ATTRIBUTES = (Private, ); }; };6308 E307DECE1D81E4BA00141CAF /* CachedModuleScriptClient.h in Headers */ = {isa = PBXBuildFile; fileRef = E307DECB1D81E49500141CAF /* CachedModuleScriptClient.h */; settings = {ATTRIBUTES = (Private, ); }; };6309 6306 E307DECF1D81E4C300141CAF /* CachedModuleScriptLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E307DEC61D81E44800141CAF /* CachedModuleScriptLoader.cpp */; }; 6310 6307 E307DED01D81E4C700141CAF /* CachedModuleScriptLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = E307DEC71D81E44800141CAF /* CachedModuleScriptLoader.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 14361 14358 E307DEC71D81E44800141CAF /* CachedModuleScriptLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedModuleScriptLoader.h; sourceTree = "<group>"; }; 14362 14359 E307DEC81D81E44800141CAF /* CachedModuleScriptLoaderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedModuleScriptLoaderClient.h; sourceTree = "<group>"; }; 14363 E307DEC91D81E46E00141CAF /* CachedModuleScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedModuleScript.cpp; sourceTree = "<group>"; };14364 E307DECA1D81E46E00141CAF /* CachedModuleScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedModuleScript.h; sourceTree = "<group>"; };14365 E307DECB1D81E49500141CAF /* CachedModuleScriptClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedModuleScriptClient.h; sourceTree = "<group>"; };14366 14360 E307DED21D81E4ED00141CAF /* LoadableModuleScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoadableModuleScript.cpp; sourceTree = "<group>"; }; 14367 14361 E307DED31D81E4ED00141CAF /* LoadableModuleScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadableModuleScript.h; sourceTree = "<group>"; }; … … 22135 22129 14DFB33F0A7DF7630018F769 /* Derived Sources */, 22136 22130 2DFA488E1DB541C200362B99 /* BufferSource.h */, 22137 E307DEC91D81E46E00141CAF /* CachedModuleScript.cpp */,22138 E307DECA1D81E46E00141CAF /* CachedModuleScript.h */,22139 E307DECB1D81E49500141CAF /* CachedModuleScriptClient.h */,22140 22131 E307DEC61D81E44800141CAF /* CachedModuleScriptLoader.cpp */, 22141 22132 E307DEC71D81E44800141CAF /* CachedModuleScriptLoader.h */, … … 25170 25161 BCB16C1C0979C3BD00467741 /* CachedImage.h in Headers */, 25171 25162 319FBD5F15D2F464009640A6 /* CachedImageClient.h in Headers */, 25172 E307DECD1D81E4B600141CAF /* CachedModuleScript.h in Headers */,25173 E307DECE1D81E4BA00141CAF /* CachedModuleScriptClient.h in Headers */,25174 25163 E307DED01D81E4C700141CAF /* CachedModuleScriptLoader.h in Headers */, 25175 25164 E307DED11D81E4CB00141CAF /* CachedModuleScriptLoaderClient.h in Headers */, … … 29080 29069 51C0AA410F2AA15E001648C2 /* CachedFrame.cpp in Sources */, 29081 29070 BCB16C1B0979C3BD00467741 /* CachedImage.cpp in Sources */, 29082 E307DECC1D81E4B300141CAF /* CachedModuleScript.cpp in Sources */,29083 29071 E307DECF1D81E4C300141CAF /* CachedModuleScriptLoader.cpp in Sources */, 29084 29072 5101846A0B08602A004A825F /* CachedPage.cpp in Sources */, -
trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
r210780 r211313 26 26 // This all-in-one cpp file cuts down on template bloat to allow us to build our Windows release build. 27 27 28 #include "CachedModuleScript.cpp"29 28 #include "CachedModuleScriptLoader.cpp" 30 29 #include "CallbackFunction.cpp" -
trunk/Source/WebCore/bindings/js/ScriptController.cpp
r211280 r211313 23 23 24 24 #include "BridgeJSC.h" 25 #include "CachedModuleScript.h"26 25 #include "CachedScriptFetcher.h" 27 26 #include "CommonVM.h" … … 37 36 #include "JSDocument.h" 38 37 #include "JSMainThreadExecState.h" 38 #include "LoadableModuleScript.h" 39 39 #include "MainFrame.h" 40 40 #include "MemoryPressureHandler.h" … … 187 187 } 188 188 189 void ScriptController::loadModuleScriptInWorld( CachedModuleScript& moduleScript, const String& moduleName, CachedScriptFetcher& scriptFetcher, DOMWrapperWorld& world)189 void ScriptController::loadModuleScriptInWorld(LoadableModuleScript& moduleScript, const String& moduleName, DOMWrapperWorld& world) 190 190 { 191 191 JSLockHolder lock(world.vm()); … … 194 194 auto& state = *shell.window()->globalExec(); 195 195 196 auto& promise = JSMainThreadExecState::loadModule(state, moduleName, JSC::JSScriptFetcher::create(state.vm(), { & scriptFetcher}));196 auto& promise = JSMainThreadExecState::loadModule(state, moduleName, JSC::JSScriptFetcher::create(state.vm(), { &moduleScript })); 197 197 setupModuleScriptHandlers(moduleScript, promise, world); 198 198 } 199 199 200 void ScriptController::loadModuleScript( CachedModuleScript& moduleScript, const String& moduleName, CachedScriptFetcher& scriptFetcher)201 { 202 loadModuleScriptInWorld(moduleScript, moduleName, scriptFetcher,mainThreadNormalWorld());203 } 204 205 void ScriptController::loadModuleScriptInWorld( CachedModuleScript& moduleScript, const ScriptSourceCode& sourceCode, CachedScriptFetcher& scriptFetcher, DOMWrapperWorld& world)200 void ScriptController::loadModuleScript(LoadableModuleScript& moduleScript, const String& moduleName) 201 { 202 loadModuleScriptInWorld(moduleScript, moduleName, mainThreadNormalWorld()); 203 } 204 205 void ScriptController::loadModuleScriptInWorld(LoadableModuleScript& moduleScript, const ScriptSourceCode& sourceCode, DOMWrapperWorld& world) 206 206 { 207 207 JSLockHolder lock(world.vm()); … … 210 210 auto& state = *shell.window()->globalExec(); 211 211 212 auto& promise = JSMainThreadExecState::loadModule(state, sourceCode.jsSourceCode(), JSC::JSScriptFetcher::create(state.vm(), { & scriptFetcher}));212 auto& promise = JSMainThreadExecState::loadModule(state, sourceCode.jsSourceCode(), JSC::JSScriptFetcher::create(state.vm(), { &moduleScript })); 213 213 setupModuleScriptHandlers(moduleScript, promise, world); 214 214 } 215 215 216 void ScriptController::loadModuleScript( CachedModuleScript& moduleScript, const ScriptSourceCode& sourceCode, CachedScriptFetcher& scriptFetcher)217 { 218 loadModuleScriptInWorld(moduleScript, sourceCode, scriptFetcher,mainThreadNormalWorld());219 } 220 221 JSC::JSValue ScriptController::linkAndEvaluateModuleScriptInWorld( CachedModuleScript& moduleScript, DOMWrapperWorld& world)216 void ScriptController::loadModuleScript(LoadableModuleScript& moduleScript, const ScriptSourceCode& sourceCode) 217 { 218 loadModuleScriptInWorld(moduleScript, sourceCode, mainThreadNormalWorld()); 219 } 220 221 JSC::JSValue ScriptController::linkAndEvaluateModuleScriptInWorld(LoadableModuleScript& moduleScript, DOMWrapperWorld& world) 222 222 { 223 223 JSLockHolder lock(world.vm()); … … 241 241 } 242 242 243 JSC::JSValue ScriptController::linkAndEvaluateModuleScript( CachedModuleScript& moduleScript)243 JSC::JSValue ScriptController::linkAndEvaluateModuleScript(LoadableModuleScript& moduleScript) 244 244 { 245 245 return linkAndEvaluateModuleScriptInWorld(moduleScript, mainThreadNormalWorld()); … … 369 369 } 370 370 371 void ScriptController::setupModuleScriptHandlers( CachedModuleScript& moduleScriptRef, JSInternalPromise& promise, DOMWrapperWorld& world)371 void ScriptController::setupModuleScriptHandlers(LoadableModuleScript& moduleScriptRef, JSInternalPromise& promise, DOMWrapperWorld& world) 372 372 { 373 373 auto& shell = *windowShell(world); … … 381 381 JSC::PrivateName moduleLoaderFetchingIsCanceledSymbol = m_moduleLoaderFetchingIsCanceledSymbol; 382 382 383 RefPtr< CachedModuleScript> moduleScript(&moduleScriptRef);383 RefPtr<LoadableModuleScript> moduleScript(&moduleScriptRef); 384 384 385 385 auto& fulfillHandler = *JSNativeStdFunction::create(state.vm(), shell.window(), 1, String(), [moduleScript](ExecState* exec) { -
trunk/Source/WebCore/bindings/js/ScriptController.h
r210627 r211313 52 52 namespace WebCore { 53 53 54 class CachedModuleScript;55 54 class CachedScriptFetcher; 56 55 class Frame; 57 56 class HTMLDocument; 58 57 class HTMLPlugInElement; 58 class LoadableModuleScript; 59 59 class SecurityOrigin; 60 60 class ScriptSourceCode; … … 115 115 JSC::JSValue evaluateInWorld(const ScriptSourceCode&, DOMWrapperWorld&, ExceptionDetails* = nullptr); 116 116 117 void loadModuleScriptInWorld( CachedModuleScript&, const String& moduleName, CachedScriptFetcher&, DOMWrapperWorld&);118 void loadModuleScript( CachedModuleScript&, const String& moduleName, CachedScriptFetcher&);119 void loadModuleScriptInWorld( CachedModuleScript&, const ScriptSourceCode&, CachedScriptFetcher&, DOMWrapperWorld&);120 void loadModuleScript( CachedModuleScript&, const ScriptSourceCode&, CachedScriptFetcher&);121 122 JSC::JSValue linkAndEvaluateModuleScriptInWorld( CachedModuleScript& , DOMWrapperWorld&);123 JSC::JSValue linkAndEvaluateModuleScript( CachedModuleScript&);117 void loadModuleScriptInWorld(LoadableModuleScript&, const String& moduleName, DOMWrapperWorld&); 118 void loadModuleScript(LoadableModuleScript&, const String& moduleName); 119 void loadModuleScriptInWorld(LoadableModuleScript&, const ScriptSourceCode&, DOMWrapperWorld&); 120 void loadModuleScript(LoadableModuleScript&, const ScriptSourceCode&); 121 122 JSC::JSValue linkAndEvaluateModuleScriptInWorld(LoadableModuleScript& , DOMWrapperWorld&); 123 JSC::JSValue linkAndEvaluateModuleScript(LoadableModuleScript&); 124 124 125 125 JSC::JSValue evaluateModule(const URL&, JSC::JSModuleRecord&, DOMWrapperWorld&); … … 182 182 private: 183 183 WEBCORE_EXPORT JSDOMWindowShell* initScript(DOMWrapperWorld&); 184 void setupModuleScriptHandlers( CachedModuleScript&, JSC::JSInternalPromise&, DOMWrapperWorld&);184 void setupModuleScriptHandlers(LoadableModuleScript&, JSC::JSInternalPromise&, DOMWrapperWorld&); 185 185 186 186 void disconnectPlatformScriptObjects(); -
trunk/Source/WebCore/dom/LoadableModuleScript.cpp
r210585 r211313 27 27 #include "LoadableModuleScript.h" 28 28 29 #include "Document.h" 30 #include "Frame.h" 31 #include "ScriptController.h" 29 32 #include "ScriptElement.h" 30 33 … … 33 36 Ref<LoadableModuleScript> LoadableModuleScript::create(const String& nonce, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree) 34 37 { 35 return adoptRef(*new LoadableModuleScript(nonce, crossOriginMode, charset, initiatorName, isInUserAgentShadowTree , CachedModuleScript::create()));38 return adoptRef(*new LoadableModuleScript(nonce, crossOriginMode, charset, initiatorName, isInUserAgentShadowTree)); 36 39 } 37 40 38 LoadableModuleScript::LoadableModuleScript(const String& nonce, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree , Ref<CachedModuleScript>&& moduleScript)41 LoadableModuleScript::LoadableModuleScript(const String& nonce, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree) 39 42 : LoadableScript(nonce, crossOriginMode, charset, initiatorName, isInUserAgentShadowTree) 40 , m_moduleScript(WTFMove(moduleScript))41 43 { 42 m_moduleScript->addClient(*this);43 44 } 44 45 45 46 LoadableModuleScript::~LoadableModuleScript() 46 47 { 47 m_moduleScript->removeClient(*this);48 48 } 49 49 50 50 bool LoadableModuleScript::isLoaded() const 51 51 { 52 return m_ moduleScript->isLoaded();52 return m_isLoaded; 53 53 } 54 54 55 55 std::optional<LoadableScript::Error> LoadableModuleScript::error() const 56 56 { 57 return m_ moduleScript->error();57 return m_error; 58 58 } 59 59 60 60 bool LoadableModuleScript::wasCanceled() const 61 61 { 62 return m_ moduleScript->wasCanceled();62 return m_wasCanceled; 63 63 } 64 64 65 void LoadableModuleScript::notify Finished(CachedModuleScript&)65 void LoadableModuleScript::notifyLoadCompleted(UniquedStringImpl& moduleKey) 66 66 { 67 m_moduleKey = &moduleKey; 68 m_isLoaded = true; 69 notifyClientFinished(); 70 } 71 72 void LoadableModuleScript::notifyLoadFailed(LoadableScript::Error&& error) 73 { 74 m_error = WTFMove(error); 75 m_isLoaded = true; 76 notifyClientFinished(); 77 } 78 79 void LoadableModuleScript::notifyLoadWasCanceled() 80 { 81 m_wasCanceled = true; 82 m_isLoaded = true; 67 83 notifyClientFinished(); 68 84 } … … 70 86 void LoadableModuleScript::execute(ScriptElement& scriptElement) 71 87 { 72 scriptElement.executeModuleScript( m_moduleScript.get());88 scriptElement.executeModuleScript(*this); 73 89 } 74 90 75 91 void LoadableModuleScript::load(Document& document, const URL& rootURL) 76 92 { 77 m_moduleScript->load(document, rootURL, *this); 93 if (auto* frame = document.frame()) 94 frame->script().loadModuleScript(*this, rootURL.string()); 78 95 } 79 96 80 97 void LoadableModuleScript::load(Document& document, const ScriptSourceCode& sourceCode) 81 98 { 82 m_moduleScript->load(document, sourceCode, *this); 99 if (auto* frame = document.frame()) 100 frame->script().loadModuleScript(*this, sourceCode); 83 101 } 84 102 -
trunk/Source/WebCore/dom/LoadableModuleScript.h
r211280 r211313 26 26 #pragma once 27 27 28 #include "CachedModuleScript.h"29 #include "CachedModuleScriptClient.h"30 28 #include "LoadableScript.h" 31 29 #include <wtf/TypeCasts.h> … … 33 31 namespace WebCore { 34 32 35 class LoadableModuleScript final : public LoadableScript, private CachedModuleScriptClient { 33 class ScriptSourceCode; 34 35 class LoadableModuleScript final : public LoadableScript { 36 36 public: 37 37 virtual ~LoadableModuleScript(); … … 42 42 std::optional<Error> error() const final; 43 43 bool wasCanceled() const final; 44 45 CachedModuleScript& moduleScript() { return m_moduleScript.get(); }46 44 47 45 bool isClassicScript() const final { return false; } … … 55 53 void load(Document&, const ScriptSourceCode&); 56 54 55 void notifyLoadCompleted(UniquedStringImpl&); 56 void notifyLoadFailed(LoadableScript::Error&&); 57 void notifyLoadWasCanceled(); 58 59 UniquedStringImpl* moduleKey() const { return m_moduleKey.get(); } 60 57 61 private: 58 LoadableModuleScript(const String& nonce, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree , Ref<CachedModuleScript>&&);62 LoadableModuleScript(const String& nonce, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree); 59 63 60 void notifyFinished(CachedModuleScript&) final; 61 62 Ref<CachedModuleScript> m_moduleScript; 64 RefPtr<UniquedStringImpl> m_moduleKey; 65 std::optional<LoadableScript::Error> m_error; 66 bool m_wasCanceled { false }; 67 bool m_isLoaded { false }; 63 68 }; 64 69 -
trunk/Source/WebCore/dom/ScriptElement.cpp
r211078 r211313 25 25 #include "ScriptElement.h" 26 26 27 #include "CachedModuleScript.h"28 27 #include "CachedResourceLoader.h" 29 28 #include "CachedResourceRequest.h" … … 391 390 } 392 391 393 void ScriptElement::executeModuleScript( CachedModuleScript& moduleScript)392 void ScriptElement::executeModuleScript(LoadableModuleScript& loadableModuleScript) 394 393 { 395 394 // https://html.spec.whatwg.org/multipage/scripting.html#execute-the-script-block 396 395 397 ASSERT(! moduleScript.error());396 ASSERT(!loadableModuleScript.error()); 398 397 399 398 auto& document = m_element.document(); … … 405 404 CurrentScriptIncrementer currentScriptIncrementer(document, m_element); 406 405 407 frame->script().linkAndEvaluateModuleScript( moduleScript);406 frame->script().linkAndEvaluateModuleScript(loadableModuleScript); 408 407 } 409 408 -
trunk/Source/WebCore/dom/ScriptElement.h
r211280 r211313 31 31 namespace WebCore { 32 32 33 class CachedModuleScript;34 33 class CachedScript; 35 34 class ContainerNode; 36 35 class Element; 36 class LoadableModuleScript; 37 37 class PendingScript; 38 38 class ScriptSourceCode; … … 52 52 WEBCORE_EXPORT String scriptContent() const; 53 53 void executeClassicScript(const ScriptSourceCode&); 54 void executeModuleScript( CachedModuleScript&);54 void executeModuleScript(LoadableModuleScript&); 55 55 56 56 void executePendingScript(PendingScript&);
Note: See TracChangeset
for help on using the changeset viewer.