Commit c0392816 authored by Hiroshige Hayashizaki's avatar Hiroshige Hayashizaki Committed by Commit Bot

Move AccessControlStatus logic from ClassicScript to ClassicPendingScript

Preparation for removing ScriptSourceCode::GetResource().

Bug: 788828
Change-Id: Ic1196997f2b7a0dd6f7febca476d45c4f4128598
Reviewed-on: https://chromium-review.googlesource.com/786891
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521883}
parent f28f29f4
...@@ -239,7 +239,7 @@ ClassicScript* ClassicPendingScript::GetSource(const KURL& document_url, ...@@ -239,7 +239,7 @@ ClassicScript* ClassicPendingScript::GetSource(const KURL& document_url,
ScriptSourceCode source_code(GetElement()->TextFromChildren(), ScriptSourceCode source_code(GetElement()->TextFromChildren(),
source_location_type_, document_url, source_location_type_, document_url,
StartingPosition()); StartingPosition());
return ClassicScript::Create(source_code, options_); return ClassicScript::Create(source_code, options_, kSharableCrossOrigin);
} }
DCHECK(GetResource()->IsLoaded()); DCHECK(GetResource()->IsLoaded());
...@@ -247,7 +247,8 @@ ClassicScript* ClassicPendingScript::GetSource(const KURL& document_url, ...@@ -247,7 +247,8 @@ ClassicScript* ClassicPendingScript::GetSource(const KURL& document_url,
!streamer_->StreamingSuppressed(); !streamer_->StreamingSuppressed();
ScriptSourceCode source_code(streamer_ready ? streamer_ : nullptr, ScriptSourceCode source_code(streamer_ready ? streamer_ : nullptr,
GetResource()); GetResource());
return ClassicScript::Create(source_code, options_); return ClassicScript::Create(source_code, options_,
GetResource()->CalculateAccessControlStatus());
} }
void ClassicPendingScript::SetStreamer(ScriptStreamer* streamer) { void ClassicPendingScript::SetStreamer(ScriptStreamer* streamer) {
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include "core/frame/UseCounter.h" #include "core/frame/UseCounter.h"
#include "core/inspector/ConsoleMessage.h" #include "core/inspector/ConsoleMessage.h"
#include "core/loader/AllowedByNosniff.h" #include "core/loader/AllowedByNosniff.h"
#include "platform/loader/fetch/AccessControlStatus.h"
#include "platform/network/mime/MIMETypeRegistry.h" #include "platform/network/mime/MIMETypeRegistry.h"
namespace blink { namespace blink {
...@@ -29,19 +28,8 @@ bool ClassicScript::CheckMIMETypeBeforeRunScript( ...@@ -29,19 +28,8 @@ bool ClassicScript::CheckMIMETypeBeforeRunScript(
void ClassicScript::RunScript(LocalFrame* frame, void ClassicScript::RunScript(LocalFrame* frame,
const SecurityOrigin* security_origin) const { const SecurityOrigin* security_origin) const {
const bool is_external_script = GetScriptSourceCode().GetResource();
AccessControlStatus access_control_status = kNotSharableCrossOrigin;
if (!is_external_script) {
access_control_status = kSharableCrossOrigin;
} else {
CHECK(GetScriptSourceCode().GetResource());
access_control_status =
GetScriptSourceCode().GetResource()->CalculateAccessControlStatus();
}
frame->GetScriptController().ExecuteScriptInMainWorld( frame->GetScriptController().ExecuteScriptInMainWorld(
GetScriptSourceCode(), FetchOptions(), access_control_status); GetScriptSourceCode(), FetchOptions(), access_control_status_);
} }
} // namespace blink } // namespace blink
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
#include "bindings/core/v8/ScriptSourceCode.h" #include "bindings/core/v8/ScriptSourceCode.h"
#include "core/CoreExport.h" #include "core/CoreExport.h"
#include "core/dom/Script.h" #include "core/dom/Script.h"
#include "core/loader/resource/ScriptResource.h"
#include "platform/loader/fetch/AccessControlStatus.h"
#include "platform/loader/fetch/ScriptFetchOptions.h" #include "platform/loader/fetch/ScriptFetchOptions.h"
namespace blink { namespace blink {
...@@ -15,8 +17,10 @@ namespace blink { ...@@ -15,8 +17,10 @@ namespace blink {
class CORE_EXPORT ClassicScript final : public Script { class CORE_EXPORT ClassicScript final : public Script {
public: public:
static ClassicScript* Create(const ScriptSourceCode& script_source_code, static ClassicScript* Create(const ScriptSourceCode& script_source_code,
const ScriptFetchOptions& fetch_options) { const ScriptFetchOptions& fetch_options,
return new ClassicScript(script_source_code, fetch_options); AccessControlStatus access_control_status) {
return new ClassicScript(script_source_code, fetch_options,
access_control_status);
} }
void Trace(blink::Visitor*); void Trace(blink::Visitor*);
...@@ -27,8 +31,11 @@ class CORE_EXPORT ClassicScript final : public Script { ...@@ -27,8 +31,11 @@ class CORE_EXPORT ClassicScript final : public Script {
private: private:
ClassicScript(const ScriptSourceCode& script_source_code, ClassicScript(const ScriptSourceCode& script_source_code,
const ScriptFetchOptions& fetch_options) const ScriptFetchOptions& fetch_options,
: Script(fetch_options), script_source_code_(script_source_code) {} AccessControlStatus access_control_status)
: Script(fetch_options),
script_source_code_(script_source_code),
access_control_status_(access_control_status) {}
ScriptType GetScriptType() const override { return ScriptType::kClassic; } ScriptType GetScriptType() const override { return ScriptType::kClassic; }
bool CheckMIMETypeBeforeRunScript(Document* context_document, bool CheckMIMETypeBeforeRunScript(Document* context_document,
...@@ -39,6 +46,7 @@ class CORE_EXPORT ClassicScript final : public Script { ...@@ -39,6 +46,7 @@ class CORE_EXPORT ClassicScript final : public Script {
} }
const ScriptSourceCode script_source_code_; const ScriptSourceCode script_source_code_;
const AccessControlStatus access_control_status_;
}; };
} // namespace blink } // namespace blink
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment