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,
ScriptSourceCode source_code(GetElement()->TextFromChildren(),
source_location_type_, document_url,
StartingPosition());
return ClassicScript::Create(source_code, options_);
return ClassicScript::Create(source_code, options_, kSharableCrossOrigin);
}
DCHECK(GetResource()->IsLoaded());
......@@ -247,7 +247,8 @@ ClassicScript* ClassicPendingScript::GetSource(const KURL& document_url,
!streamer_->StreamingSuppressed();
ScriptSourceCode source_code(streamer_ready ? streamer_ : nullptr,
GetResource());
return ClassicScript::Create(source_code, options_);
return ClassicScript::Create(source_code, options_,
GetResource()->CalculateAccessControlStatus());
}
void ClassicPendingScript::SetStreamer(ScriptStreamer* streamer) {
......
......@@ -10,7 +10,6 @@
#include "core/frame/UseCounter.h"
#include "core/inspector/ConsoleMessage.h"
#include "core/loader/AllowedByNosniff.h"
#include "platform/loader/fetch/AccessControlStatus.h"
#include "platform/network/mime/MIMETypeRegistry.h"
namespace blink {
......@@ -29,19 +28,8 @@ bool ClassicScript::CheckMIMETypeBeforeRunScript(
void ClassicScript::RunScript(LocalFrame* frame,
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(
GetScriptSourceCode(), FetchOptions(), access_control_status);
GetScriptSourceCode(), FetchOptions(), access_control_status_);
}
} // namespace blink
......@@ -8,6 +8,8 @@
#include "bindings/core/v8/ScriptSourceCode.h"
#include "core/CoreExport.h"
#include "core/dom/Script.h"
#include "core/loader/resource/ScriptResource.h"
#include "platform/loader/fetch/AccessControlStatus.h"
#include "platform/loader/fetch/ScriptFetchOptions.h"
namespace blink {
......@@ -15,8 +17,10 @@ namespace blink {
class CORE_EXPORT ClassicScript final : public Script {
public:
static ClassicScript* Create(const ScriptSourceCode& script_source_code,
const ScriptFetchOptions& fetch_options) {
return new ClassicScript(script_source_code, fetch_options);
const ScriptFetchOptions& fetch_options,
AccessControlStatus access_control_status) {
return new ClassicScript(script_source_code, fetch_options,
access_control_status);
}
void Trace(blink::Visitor*);
......@@ -27,8 +31,11 @@ class CORE_EXPORT ClassicScript final : public Script {
private:
ClassicScript(const ScriptSourceCode& script_source_code,
const ScriptFetchOptions& fetch_options)
: Script(fetch_options), script_source_code_(script_source_code) {}
const ScriptFetchOptions& fetch_options,
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; }
bool CheckMIMETypeBeforeRunScript(Document* context_document,
......@@ -39,6 +46,7 @@ class CORE_EXPORT ClassicScript final : public Script {
}
const ScriptSourceCode script_source_code_;
const AccessControlStatus access_control_status_;
};
} // 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