Commit 06a8b24d authored by Carlos IL's avatar Carlos IL Committed by Commit Bot

Remove autoupgrades for blockable content, split for passive.

This removes MC autoupgrades for blockable content (including
websockets) and adds a parameter to disable them for images. This
matches the behavior planned for launch.

Bug: 1025274, 1027686
Change-Id: Iaef5800c09368a547f6301c88208c535b60f9bdf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1928239Reviewed-by: default avatarCaleb Rouleau <crouleau@chromium.org>
Reviewed-by: default avatarMike West <mkwst@chromium.org>
Commit-Queue: Carlos IL <carlosil@chromium.org>
Auto-Submit: Carlos IL <carlosil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#718332}
parent f0408b3a
...@@ -241,9 +241,7 @@ const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges", ...@@ -241,9 +241,7 @@ const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",
base::FEATURE_DISABLED_BY_DEFAULT}; base::FEATURE_DISABLED_BY_DEFAULT};
const char kMixedContentAutoupgradeModeParamName[] = "mode"; const char kMixedContentAutoupgradeModeParamName[] = "mode";
const char kMixedContentAutoupgradeModeBlockable[] = "blockable"; const char kMixedContentAutoupgradeModeNoImages[] = "no-images";
const char kMixedContentAutoupgradeModeOptionallyBlockable[] =
"optionally-blockable";
// Decodes jpeg 4:2:0 formatted images to YUV instead of RGBX and stores in this // Decodes jpeg 4:2:0 formatted images to YUV instead of RGBX and stores in this
// format in the image decode cache. See crbug.com/919627 for details on the // format in the image decode cache. See crbug.com/919627 for details on the
......
...@@ -71,9 +71,7 @@ BLINK_COMMON_EXPORT extern const base::Feature kPrefetchPrivacyChanges; ...@@ -71,9 +71,7 @@ BLINK_COMMON_EXPORT extern const base::Feature kPrefetchPrivacyChanges;
BLINK_COMMON_EXPORT extern const base::Feature kWebComponentsV0Enabled; BLINK_COMMON_EXPORT extern const base::Feature kWebComponentsV0Enabled;
BLINK_COMMON_EXPORT extern const char kMixedContentAutoupgradeModeParamName[]; BLINK_COMMON_EXPORT extern const char kMixedContentAutoupgradeModeParamName[];
BLINK_COMMON_EXPORT extern const char kMixedContentAutoupgradeModeBlockable[]; BLINK_COMMON_EXPORT extern const char kMixedContentAutoupgradeModeNoImages[];
BLINK_COMMON_EXPORT extern const char
kMixedContentAutoupgradeModeOptionallyBlockable[];
BLINK_COMMON_EXPORT extern const base::Feature kDecodeJpeg420ImagesToYUV; BLINK_COMMON_EXPORT extern const base::Feature kDecodeJpeg420ImagesToYUV;
BLINK_COMMON_EXPORT extern const base::Feature kDecodeLossyWebPImagesToYUV; BLINK_COMMON_EXPORT extern const base::Feature kDecodeLossyWebPImagesToYUV;
......
...@@ -341,7 +341,7 @@ class FrameFetchContextModifyRequestTest : public FrameFetchContextTest { ...@@ -341,7 +341,7 @@ class FrameFetchContextModifyRequestTest : public FrameFetchContextTest {
const KURL input_url(input); const KURL input_url(input);
const KURL main_frame_url(main_frame); const KURL main_frame_url(main_frame);
ResourceRequest resource_request(input_url); ResourceRequest resource_request(input_url);
resource_request.SetRequestContext(mojom::RequestContextType::SCRIPT); resource_request.SetRequestContext(mojom::RequestContextType::IMAGE);
RecreateFetchContext(main_frame_url); RecreateFetchContext(main_frame_url);
document->SetInsecureRequestPolicy(policy); document->SetInsecureRequestPolicy(policy);
......
...@@ -660,11 +660,14 @@ bool MixedContentChecker::IsMixedFormAction( ...@@ -660,11 +660,14 @@ bool MixedContentChecker::IsMixedFormAction(
} }
bool MixedContentChecker::ShouldAutoupgrade(HttpsState context_https_state, bool MixedContentChecker::ShouldAutoupgrade(HttpsState context_https_state,
WebMixedContentContextType type) { mojom::RequestContextType type) {
// We are currently not autoupgrading plugin loaded content, which is why
// strict_mixed_content_for_plugin is hardcoded to true.
if (!base::FeatureList::IsEnabled( if (!base::FeatureList::IsEnabled(
blink::features::kMixedContentAutoupgrade) || blink::features::kMixedContentAutoupgrade) ||
context_https_state == HttpsState::kNone || context_https_state == HttpsState::kNone ||
type == WebMixedContentContextType::kNotMixedContent) { WebMixedContent::ContextTypeFromRequestContext(type, true) !=
WebMixedContentContextType::kOptionallyBlockable) {
return false; return false;
} }
...@@ -673,13 +676,8 @@ bool MixedContentChecker::ShouldAutoupgrade(HttpsState context_https_state, ...@@ -673,13 +676,8 @@ bool MixedContentChecker::ShouldAutoupgrade(HttpsState context_https_state,
blink::features::kMixedContentAutoupgradeModeParamName); blink::features::kMixedContentAutoupgradeModeParamName);
if (autoupgrade_mode == if (autoupgrade_mode ==
blink::features::kMixedContentAutoupgradeModeBlockable) { blink::features::kMixedContentAutoupgradeModeNoImages) {
return type == WebMixedContentContextType::kBlockable || return type != mojom::RequestContextType::IMAGE;
type == WebMixedContentContextType::kShouldBeBlockable;
}
if (autoupgrade_mode ==
blink::features::kMixedContentAutoupgradeModeOptionallyBlockable) {
return type == WebMixedContentContextType::kOptionallyBlockable;
} }
// Otherwise we default to autoupgrading all mixed content. // Otherwise we default to autoupgrading all mixed content.
...@@ -774,24 +772,6 @@ ConsoleMessage* MixedContentChecker::CreateConsoleMessageAboutFetchAutoupgrade( ...@@ -774,24 +772,6 @@ ConsoleMessage* MixedContentChecker::CreateConsoleMessageAboutFetchAutoupgrade(
mojom::ConsoleMessageLevel::kWarning, message); mojom::ConsoleMessageLevel::kWarning, message);
} }
// static
ConsoleMessage*
MixedContentChecker::CreateConsoleMessageAboutWebSocketAutoupgrade(
const KURL& main_resource_url,
const KURL& mixed_content_url) {
String message = String::Format(
"Mixed Content: The page at '%s' was loaded over HTTPS, but attempted "
"to connect to the insecure WebSocket endpoint '%s'. "
"This request was automatically upgraded to HTTPS, For more "
"information see "
"https://chromium.googlesource.com/chromium/src/+/master/docs/security/"
"autoupgrade-mixed.md",
main_resource_url.ElidedString().Utf8().c_str(),
mixed_content_url.ElidedString().Utf8().c_str());
return ConsoleMessage::Create(mojom::ConsoleMessageSource::kSecurity,
mojom::ConsoleMessageLevel::kWarning, message);
}
WebMixedContentContextType MixedContentChecker::ContextTypeForInspector( WebMixedContentContextType MixedContentChecker::ContextTypeForInspector(
LocalFrame* frame, LocalFrame* frame,
const ResourceRequest& request) { const ResourceRequest& request) {
...@@ -831,14 +811,11 @@ void MixedContentChecker::UpgradeInsecureRequest( ...@@ -831,14 +811,11 @@ void MixedContentChecker::UpgradeInsecureRequest(
if (!(fetch_client_settings_object->GetInsecureRequestsPolicy() & if (!(fetch_client_settings_object->GetInsecureRequestsPolicy() &
kUpgradeInsecureRequests)) { kUpgradeInsecureRequests)) {
mojom::RequestContextType context = resource_request.GetRequestContext(); mojom::RequestContextType context = resource_request.GetRequestContext();
// TODO(carlosil): Handle strict_mixed_content_checking_for_plugin
// correctly.
if (context != mojom::RequestContextType::UNSPECIFIED && if (context != mojom::RequestContextType::UNSPECIFIED &&
resource_request.Url().ProtocolIs("http") && resource_request.Url().ProtocolIs("http") &&
!fetch_client_settings_object->GetMixedAutoUpgradeOptOut() && !fetch_client_settings_object->GetMixedAutoUpgradeOptOut() &&
MixedContentChecker::ShouldAutoupgrade( MixedContentChecker::ShouldAutoupgrade(
fetch_client_settings_object->GetHttpsState(), fetch_client_settings_object->GetHttpsState(), context)) {
WebMixedContent::ContextTypeFromRequestContext(context, false))) {
if (execution_context_for_logging->IsDocument()) { if (execution_context_for_logging->IsDocument()) {
Document* document = Document* document =
static_cast<Document*>(execution_context_for_logging); static_cast<Document*>(execution_context_for_logging);
......
...@@ -95,7 +95,7 @@ class CORE_EXPORT MixedContentChecker final { ...@@ -95,7 +95,7 @@ class CORE_EXPORT MixedContentChecker final {
SecurityViolationReportingPolicy::kReport); SecurityViolationReportingPolicy::kReport);
static bool ShouldAutoupgrade(HttpsState context_https_state, static bool ShouldAutoupgrade(HttpsState context_https_state,
WebMixedContentContextType type); mojom::RequestContextType type);
static void CheckMixedPrivatePublic(LocalFrame*, static void CheckMixedPrivatePublic(LocalFrame*,
const AtomicString& resource_ip_address); const AtomicString& resource_ip_address);
...@@ -121,10 +121,6 @@ class CORE_EXPORT MixedContentChecker final { ...@@ -121,10 +121,6 @@ class CORE_EXPORT MixedContentChecker final {
const KURL& main_resource_url, const KURL& main_resource_url,
const KURL& mixed_content_url); const KURL& mixed_content_url);
static ConsoleMessage* CreateConsoleMessageAboutWebSocketAutoupgrade(
const KURL& main_resource_url,
const KURL& mixed_content_url);
// Upgrade the insecure requests. // Upgrade the insecure requests.
// https://w3c.github.io/webappsec-upgrade-insecure-requests/ // https://w3c.github.io/webappsec-upgrade-insecure-requests/
// Upgrading itself is done based on |fetch_client_settings_object|. // Upgrading itself is done based on |fetch_client_settings_object|.
......
...@@ -61,7 +61,6 @@ ...@@ -61,7 +61,6 @@
#include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/heap/persistent.h"
#include "third_party/blink/renderer/platform/instrumentation/histogram.h" #include "third_party/blink/renderer/platform/instrumentation/histogram.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/loader/mixed_content_autoupgrade_status.h"
#include "third_party/blink/renderer/platform/network/network_log.h" #include "third_party/blink/renderer/platform/network/network_log.h"
#include "third_party/blink/renderer/platform/weborigin/known_ports.h" #include "third_party/blink/renderer/platform/weborigin/known_ports.h"
#include "third_party/blink/renderer/platform/weborigin/security_origin.h" #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
...@@ -528,8 +527,6 @@ void DOMWebSocket::ContextLifecycleStateChanged( ...@@ -528,8 +527,6 @@ void DOMWebSocket::ContextLifecycleStateChanged(
void DOMWebSocket::DidConnect(const String& subprotocol, void DOMWebSocket::DidConnect(const String& subprotocol,
const String& extensions) { const String& extensions) {
NETWORK_DVLOG(1) << "WebSocket " << this << " DidConnect()"; NETWORK_DVLOG(1) << "WebSocket " << this << " DidConnect()";
common_.LogMixedAutoupgradeStatus(
MixedContentAutoupgradeStatus::kResponseReceived);
if (common_.GetState() != kConnecting) if (common_.GetState() != kConnecting)
return; return;
common_.SetState(kOpen); common_.SetState(kOpen);
...@@ -592,8 +589,6 @@ void DOMWebSocket::DidReceiveBinaryMessage( ...@@ -592,8 +589,6 @@ void DOMWebSocket::DidReceiveBinaryMessage(
void DOMWebSocket::DidError() { void DOMWebSocket::DidError() {
NETWORK_DVLOG(1) << "WebSocket " << this << " DidError()"; NETWORK_DVLOG(1) << "WebSocket " << this << " DidError()";
if (common_.GetState() == kConnecting)
common_.LogMixedAutoupgradeStatus(MixedContentAutoupgradeStatus::kFailed);
ReflectBufferedAmountConsumption(); ReflectBufferedAmountConsumption();
common_.SetState(kClosed); common_.SetState(kClosed);
event_queue_->Dispatch(Event::Create(event_type_names::kError)); event_queue_->Dispatch(Event::Create(event_type_names::kError));
......
...@@ -236,26 +236,6 @@ TEST(DOMWebSocketTest, insecureRequestsDoNotUpgrade) { ...@@ -236,26 +236,6 @@ TEST(DOMWebSocketTest, insecureRequestsDoNotUpgrade) {
EXPECT_EQ(KURL("ws://example.com/endpoint"), websocket_scope.Socket().url()); EXPECT_EQ(KURL("ws://example.com/endpoint"), websocket_scope.Socket().url());
} }
TEST(DOMWebSocketTest, mixedContentAutoUpgrade) {
base::test::ScopedFeatureList scoped_feature_list;
scoped_feature_list.InitAndEnableFeature(features::kMixedContentAutoupgrade);
V8TestingScope scope(KURL("https://example.com"));
DOMWebSocketTestScope websocket_scope(scope.GetExecutionContext());
{
InSequence s;
EXPECT_CALL(websocket_scope.Channel(),
Connect(KURL("wss://example.com/endpoint"), String()))
.WillOnce(Return(true));
}
scope.GetDocument().SetInsecureRequestPolicy(kLeaveInsecureRequestsAlone);
websocket_scope.Socket().Connect("ws://example.com/endpoint",
Vector<String>(), scope.GetExceptionState());
EXPECT_FALSE(scope.GetExceptionState().HadException());
EXPECT_EQ(DOMWebSocket::kConnecting, websocket_scope.Socket().readyState());
EXPECT_EQ(KURL("wss://example.com/endpoint"), websocket_scope.Socket().url());
}
TEST(DOMWebSocketTest, channelConnectSuccess) { TEST(DOMWebSocketTest, channelConnectSuccess) {
V8TestingScope scope; V8TestingScope scope;
DOMWebSocketTestScope websocket_scope(scope.GetExecutionContext()); DOMWebSocketTestScope websocket_scope(scope.GetExecutionContext());
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "third_party/blink/renderer/core/loader/mixed_content_checker.h" #include "third_party/blink/renderer/core/loader/mixed_content_checker.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/loader/mixed_content_autoupgrade_status.h"
#include "third_party/blink/renderer/modules/websockets/websocket_channel.h" #include "third_party/blink/renderer/modules/websockets/websocket_channel.h"
#include "third_party/blink/renderer/platform/weborigin/known_ports.h" #include "third_party/blink/renderer/platform/weborigin/known_ports.h"
...@@ -45,23 +44,11 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect( ...@@ -45,23 +44,11 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
execution_context->GetSecurityContext().GetInsecureRequestPolicy() & execution_context->GetSecurityContext().GetInsecureRequestPolicy() &
kUpgradeInsecureRequests; kUpgradeInsecureRequests;
if ((upgrade_insecure_requests_set || if (upgrade_insecure_requests_set && url_.Protocol() == "ws" &&
MixedContentChecker::ShouldAutoupgrade(
execution_context->GetHttpsState(),
WebMixedContentContextType::kBlockable)) &&
url_.Protocol() == "ws" &&
!SecurityOrigin::Create(url_)->IsPotentiallyTrustworthy()) { !SecurityOrigin::Create(url_)->IsPotentiallyTrustworthy()) {
if (upgrade_insecure_requests_set) { UseCounter::Count(
UseCounter::Count( execution_context,
execution_context, WebFeature::kUpgradeInsecureRequestsUpgradedRequestWebsocket);
WebFeature::kUpgradeInsecureRequestsUpgradedRequestWebsocket);
} else {
was_autoupgraded_to_wss_ = true;
LogMixedAutoupgradeStatus(MixedContentAutoupgradeStatus::kStarted);
execution_context->AddConsoleMessage(
MixedContentChecker::CreateConsoleMessageAboutWebSocketAutoupgrade(
execution_context->Url(), url_));
}
url_.SetProtocol("wss"); url_.SetProtocol("wss");
if (url_.Port() == 80) if (url_.Port() == 80)
url_.SetPort(443); url_.SetPort(443);
...@@ -198,15 +185,6 @@ void WebSocketCommon::CloseInternal(int code, ...@@ -198,15 +185,6 @@ void WebSocketCommon::CloseInternal(int code,
channel->Close(code, cleansed_reason); channel->Close(code, cleansed_reason);
} }
void WebSocketCommon::LogMixedAutoupgradeStatus(
blink::MixedContentAutoupgradeStatus status) const {
if (!was_autoupgraded_to_wss_)
return;
// For websockets we use the response received element to log successful
// connections.
UMA_HISTOGRAM_ENUMERATION("MixedAutoupgrade.Websocket.Status", status);
}
inline bool WebSocketCommon::IsValidSubprotocolCharacter(UChar character) { inline bool WebSocketCommon::IsValidSubprotocolCharacter(UChar character) {
const UChar kMinimumProtocolCharacter = '!'; // U+0021. const UChar kMinimumProtocolCharacter = '!'; // U+0021.
const UChar kMaximumProtocolCharacter = '~'; // U+007E. const UChar kMaximumProtocolCharacter = '~'; // U+007E.
......
...@@ -49,10 +49,6 @@ class MODULES_EXPORT WebSocketCommon { ...@@ -49,10 +49,6 @@ class MODULES_EXPORT WebSocketCommon {
WebSocketChannel*, WebSocketChannel*,
ExceptionState&); ExceptionState&);
// Logs "MixedAutoupgrade.Websocket.Status" histogram. Does nothing unless
// |was_autoupgraded_to_wss_| is true.
void LogMixedAutoupgradeStatus(blink::MixedContentAutoupgradeStatus) const;
State GetState() const { return state_; } State GetState() const { return state_; }
void SetState(State state) { state_ = state; } void SetState(State state) { state_ = state; }
const KURL& Url() const { return url_; } const KURL& Url() const { return url_; }
...@@ -76,7 +72,6 @@ class MODULES_EXPORT WebSocketCommon { ...@@ -76,7 +72,6 @@ class MODULES_EXPORT WebSocketCommon {
static bool IsValidSubprotocolCharacter(UChar character); static bool IsValidSubprotocolCharacter(UChar character);
KURL url_; KURL url_;
bool was_autoupgraded_to_wss_ = false;
State state_ = kConnecting; State state_ = kConnecting;
DISALLOW_COPY_AND_ASSIGN(WebSocketCommon); DISALLOW_COPY_AND_ASSIGN(WebSocketCommon);
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include "third_party/blink/renderer/platform/bindings/v8_binding.h" #include "third_party/blink/renderer/platform/bindings/v8_binding.h"
#include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/heap/heap.h"
#include "third_party/blink/renderer/platform/heap/visitor.h" #include "third_party/blink/renderer/platform/heap/visitor.h"
#include "third_party/blink/renderer/platform/loader/mixed_content_autoupgrade_status.h"
#include "third_party/blink/renderer/platform/wtf/assertions.h" #include "third_party/blink/renderer/platform/wtf/assertions.h"
namespace blink { namespace blink {
...@@ -463,8 +462,6 @@ void WebSocketStream::DidConnect(const String& subprotocol, ...@@ -463,8 +462,6 @@ void WebSocketStream::DidConnect(const String& subprotocol,
return; return;
ScriptState::Scope scope(script_state_); ScriptState::Scope scope(script_state_);
common_.LogMixedAutoupgradeStatus(
MixedContentAutoupgradeStatus::kResponseReceived);
if (common_.GetState() != WebSocketCommon::kConnecting) if (common_.GetState() != WebSocketCommon::kConnecting)
return; return;
common_.SetState(WebSocketCommon::kOpen); common_.SetState(WebSocketCommon::kOpen);
...@@ -538,7 +535,6 @@ void WebSocketStream::DidClose( ...@@ -538,7 +535,6 @@ void WebSocketStream::DidClose(
ScriptState::Scope scope(script_state_); ScriptState::Scope scope(script_state_);
if (!was_ever_connected_) { if (!was_ever_connected_) {
connection_resolver_->Reject(CreateNetworkErrorDOMException()); connection_resolver_->Reject(CreateNetworkErrorDOMException());
common_.LogMixedAutoupgradeStatus(MixedContentAutoupgradeStatus::kFailed);
} }
bool all_data_was_consumed = sink_ ? sink_->AllDataHasBeenConsumed() : true; bool all_data_was_consumed = sink_ ? sink_->AllDataHasBeenConsumed() : true;
bool was_clean = common_.GetState() == WebSocketCommon::kClosing && bool was_clean = common_.GetState() == WebSocketCommon::kClosing &&
......
...@@ -1389,7 +1389,8 @@ crbug.com/869492 virtual/threaded/external/wpt/feature-policy/experimental-featu ...@@ -1389,7 +1389,8 @@ crbug.com/869492 virtual/threaded/external/wpt/feature-policy/experimental-featu
crbug.com/869492 virtual/threaded/external/wpt/feature-policy/experimental-features/lazyload/lazyload-enabled-image-tentative.sub.html [ Skip ] crbug.com/869492 virtual/threaded/external/wpt/feature-policy/experimental-features/lazyload/lazyload-enabled-image-tentative.sub.html [ Skip ]
crbug.com/869492 virtual/threaded/external/wpt/feature-policy/experimental-features/lazyload/lazyload-image-attribute-on-sanity-check-tentative.sub.html [ Skip ] crbug.com/869492 virtual/threaded/external/wpt/feature-policy/experimental-features/lazyload/lazyload-image-attribute-on-sanity-check-tentative.sub.html [ Skip ]
# Tests that only work when the mixed content autoupgrade experiment is enabled # Tests that only work when the mixed content autoupgrade feature is enabled.
# Covered in virtual test suite.
http/tests/mixed-autoupgrade [ Skip ] http/tests/mixed-autoupgrade [ Skip ]
# Not expected to pass in default configuration, only virtual test suite. # Not expected to pass in default configuration, only virtual test suite.
......
...@@ -389,20 +389,6 @@ ...@@ -389,20 +389,6 @@
{ {
"prefix" : "autoupgrade-optionally-blockable-mixed-content", "prefix" : "autoupgrade-optionally-blockable-mixed-content",
"bases": ["http/tests/mixed-autoupgrade/optionally"], "bases": ["http/tests/mixed-autoupgrade/optionally"],
"args": ["--enable-features=AutoupgradeMixedContent<AU",
"--force-fieldtrials=AU/G1",
"--force-fieldtrial-params=AU.G1:mode/optionally-blockable"]
},
{
"prefix" : "autoupgrade-blockable-mixed-content",
"bases": ["http/tests/mixed-autoupgrade/blockable"],
"args": ["--enable-features=AutoupgradeMixedContent<AU",
"--force-fieldtrials=AU/G1",
"--force-fieldtrial-params=AU.G1:mode/blockable"]
},
{
"prefix" : "autoupgrade-all-mixed-content",
"bases": ["http/tests/mixed-autoupgrade/all"],
"args": ["--enable-features=AutoupgradeMixedContent"] "args": ["--enable-features=AutoupgradeMixedContent"]
}, },
{ {
......
<!DOCTYPE html>
<html>
<head>
<title>Autoupgrade mixed content: All.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="http://web-platform.test:8443/mixed-autoupgrade/resources/test.js"></script>
</head>
<body>
<script>
async_test(t => pass_test(t), "Script autoupgraded");
async_test(t => assert_image_loads(t), "Image autoupgraded");
function assert_image_loads(test) {
var url = new URL("http://web-platform.test:8443/mixed-autoupgrade/resources/pass.png")
var i = document.createElement('img');
i.onload = test.step_func_done(_ => {
assert_equals(i.naturalHeight, 64, "Height.");
assert_equals(i.naturalWidth, 168, "Width.");
});
i.onerror = test.unreached_func("Image should load successfully from " + url);
i.src = url;
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Autoupgrade mixed content: Blockable.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="http://web-platform.test:8443/mixed-autoupgrade/resources/test.js"></script>
</head>
<body>
<script>
async_test(t => pass_test(t), "Script autoupgraded");
</script>
</body>
</html>
Tests that depend on the AutoupgradeMixedContent feature with the "mode" parameter set to "all".
\ No newline at end of file
Tests that depend on the AutoupgradeMixedContent feature with the "mode" parameter set to "blockable".
Tests that depend on the AutoupgradeMixedContent feature with the "mode" parameter set to "optionally-blockable". Tests that depend on the AutoupgradeMixedContent feature.
...@@ -285,6 +285,7 @@ crbug.com/948789 [ android-nexus-5x ] startup.mobile/maps_pwa:with_http_cache [ ...@@ -285,6 +285,7 @@ crbug.com/948789 [ android-nexus-5x ] startup.mobile/maps_pwa:with_http_cache [
# Benchmark: system_health.common_desktop # Benchmark: system_health.common_desktop
crbug.com/984599 [ linux ] system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018 [ Skip ] crbug.com/984599 [ linux ] system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/984599 [ win10 ] system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018 [ Skip ] crbug.com/984599 [ win10 ] system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/1027686 [ desktop ] system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/773084 [ mac ] system_health.common_desktop/browse:tools:maps [ Skip ] crbug.com/773084 [ mac ] system_health.common_desktop/browse:tools:maps [ Skip ]
crbug.com/903417 [ mac ] system_health.common_desktop/long_running:tools:gmail-foreground [ Skip ] crbug.com/903417 [ mac ] system_health.common_desktop/long_running:tools:gmail-foreground [ Skip ]
crbug.com/903417 [ win ] system_health.common_desktop/long_running:tools:gmail-foreground [ Skip ] crbug.com/903417 [ win ] system_health.common_desktop/long_running:tools:gmail-foreground [ Skip ]
...@@ -320,6 +321,7 @@ crbug.com/923116 [ android ] system_health.common_mobile/browse:shopping:avito [ ...@@ -320,6 +321,7 @@ crbug.com/923116 [ android ] system_health.common_mobile/browse:shopping:avito [
crbug.com/923527 [ android-webview ] system_health.common_mobile/load:media:soundcloud:2018 [ Skip ] crbug.com/923527 [ android-webview ] system_health.common_mobile/load:media:soundcloud:2018 [ Skip ]
crbug.com/954949 [ android-nexus-5x android-webview ] system_health.common_mobile/browse:news:washingtonpost [ Skip ] crbug.com/954949 [ android-nexus-5x android-webview ] system_health.common_mobile/browse:news:washingtonpost [ Skip ]
crbug.com/961417 [ android-go ] system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ] crbug.com/961417 [ android-go ] system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/1027686 [ android ] system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/979786 [ android-nexus-5x android-webview ] system_health.common_mobile/browse:news:cricbuzz [ Skip ] crbug.com/979786 [ android-nexus-5x android-webview ] system_health.common_mobile/browse:news:cricbuzz [ Skip ]
crbug.com/1002640 [ android-pixel-2 ] system_health.common_mobile/browse:chrome:newtab [ Skip ] crbug.com/1002640 [ android-pixel-2 ] system_health.common_mobile/browse:chrome:newtab [ Skip ]
crbug.com/1002665 [ android-pixel-2 ] system_health.common_mobile/browse:chrome:omnibox [ Skip ] crbug.com/1002665 [ android-pixel-2 ] system_health.common_mobile/browse:chrome:omnibox [ Skip ]
...@@ -329,6 +331,7 @@ crbug.com/1026822 [ android-go android-webview ] system_health.common_mobile/bro ...@@ -329,6 +331,7 @@ crbug.com/1026822 [ android-go android-webview ] system_health.common_mobile/bro
crbug.com/1026822 [ android-go android-webview ] system_health.common_mobile/browse:news:cnn:2018 [ Skip ] crbug.com/1026822 [ android-go android-webview ] system_health.common_mobile/browse:news:cnn:2018 [ Skip ]
# Benchmark: system_health.memory_desktop # Benchmark: system_health.memory_desktop
crbug.com/1027686 [ linux ] system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/984599 [ linux ] system_health.memory_desktop/long_running:tools:gmail-foreground [ Skip ] crbug.com/984599 [ linux ] system_health.memory_desktop/long_running:tools:gmail-foreground [ Skip ]
crbug.com/984599 [ mac ] system_health.memory_desktop/long_running:tools:gmail-background [ Skip ] crbug.com/984599 [ mac ] system_health.memory_desktop/long_running:tools:gmail-background [ Skip ]
crbug.com/1000426 [ win ] system_health.memory_desktop/long_running:tools:gmail-background [ Skip ] crbug.com/1000426 [ win ] system_health.memory_desktop/long_running:tools:gmail-background [ Skip ]
...@@ -393,6 +396,7 @@ crbug.com/923527 [ android-webview ] system_health.memory_mobile/load:media:soun ...@@ -393,6 +396,7 @@ crbug.com/923527 [ android-webview ] system_health.memory_mobile/load:media:soun
crbug.com/947267 [ android-nexus-5x ] system_health.memory_mobile/background:media:imgur [ Skip ] crbug.com/947267 [ android-nexus-5x ] system_health.memory_mobile/background:media:imgur [ Skip ]
crbug.com/954949 [ android-nexus-5x android-webview ] system_health.memory_mobile/browse:news:washingtonpost [ Skip ] crbug.com/954949 [ android-nexus-5x android-webview ] system_health.memory_mobile/browse:news:washingtonpost [ Skip ]
crbug.com/961417 [ android-go ] system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ] crbug.com/961417 [ android-go ] system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/1027686 [ android ] system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/1016701 [ android-nexus-5x ] system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ] crbug.com/1016701 [ android-nexus-5x ] system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/1002640 [ android-pixel-2 ] system_health.memory_mobile/browse:chrome:newtab [ Skip ] crbug.com/1002640 [ android-pixel-2 ] system_health.memory_mobile/browse:chrome:newtab [ Skip ]
crbug.com/1002665 [ android-pixel-2 ] system_health.memory_mobile/browse:chrome:omnibox [ Skip ] crbug.com/1002665 [ android-pixel-2 ] system_health.memory_mobile/browse:chrome:omnibox [ Skip ]
...@@ -444,6 +448,7 @@ crbug.com/923116 [ android ] v8.browsing_mobile/browse:shopping:avito [ Skip ] ...@@ -444,6 +448,7 @@ crbug.com/923116 [ android ] v8.browsing_mobile/browse:shopping:avito [ Skip ]
crbug.com/929839 [ android-go ] v8.browsing_mobile/browse:chrome:newtab [ Skip ] crbug.com/929839 [ android-go ] v8.browsing_mobile/browse:chrome:newtab [ Skip ]
crbug.com/954949 [ android-nexus-5x android-webview ] v8.browsing_mobile/browse:news:washingtonpost [ Skip ] crbug.com/954949 [ android-nexus-5x android-webview ] v8.browsing_mobile/browse:news:washingtonpost [ Skip ]
crbug.com/961417 [ android-go ] v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ] crbug.com/961417 [ android-go ] v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/1027686 [ android ] v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018 [ Skip ]
crbug.com/979786 [ android-nexus-5x android-webview ] v8.browsing_mobile/browse:media:flickr_infinite_scroll [ Skip ] crbug.com/979786 [ android-nexus-5x android-webview ] v8.browsing_mobile/browse:media:flickr_infinite_scroll [ Skip ]
crbug.com/1002640 [ android-pixel-2 ] v8.browsing_mobile/browse:chrome:newtab [ Skip ] crbug.com/1002640 [ android-pixel-2 ] v8.browsing_mobile/browse:chrome:newtab [ Skip ]
crbug.com/1002665 [ android-pixel-2 ] v8.browsing_mobile/browse:chrome:omnibox [ Skip ] crbug.com/1002665 [ android-pixel-2 ] v8.browsing_mobile/browse:chrome:omnibox [ Skip ]
......
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