diff --git a/DEPS b/DEPS index afbdcb1..9d5b61c 100644 --- a/DEPS +++ b/DEPS
@@ -40,11 +40,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '4ed5dac522f66bbe13ed10548dc57a8138234356', + 'skia_revision': 'fd7819c5d8779e7394277abb49e0a0b2b03d1045', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '444d885e98c9b91130ad91583f6c5e9ff5b9e67d', + 'v8_revision': '7e8e04e46a4079e1d459575c2b0e3485ae252537', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -52,7 +52,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '5978e28d3adc30d09c5cbdf51aa1e4b8dbfff6b1', + 'angle_revision': '794607025b69599dd2607391cb13e51f39423f5d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling build tools # and whatever else without interference from each other. @@ -64,7 +64,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': '52998a4ce205708f6e00a007f3d1e57b24eb1c8b', + 'pdfium_revision': '20eafda108cf9b0ab336fb8ab5d83a011f7b8307', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling openmax_dl # and whatever else without interference from each other. @@ -96,7 +96,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': 'a3798635175e53f40f7548875b4eb9cec5baf055', + 'catapult_revision': '32bdd960945af3580a61f9640bbfe72677e458ac', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other.
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index 8697e0b2..04c1ca6 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -421,6 +421,8 @@ "system/night_light/night_light_controller.h", "system/night_light/night_light_toggle_button.cc", "system/night_light/night_light_toggle_button.h", + "system/night_light/time_of_day.cc", + "system/night_light/time_of_day.h", "system/night_light/tray_night_light.cc", "system/night_light/tray_night_light.h", "system/overview/overview_button_tray.cc", @@ -1212,6 +1214,7 @@ "system/network/tray_network_unittest.cc", "system/network/vpn_list_unittest.cc", "system/night_light/night_light_controller_unittest.cc", + "system/night_light/time_of_day_unittest.cc", "system/night_light/tray_night_light_unittest.cc", "system/overview/overview_button_tray_unittest.cc", "system/palette/mock_palette_tool_delegate.cc",
diff --git a/ash/DEPS b/ash/DEPS index b667574..57532307 100644 --- a/ash/DEPS +++ b/ash/DEPS
@@ -18,6 +18,7 @@ "+services/ui/public", "+skia/ext", "+third_party/cros_system_api", + "+third_party/icu", "+third_party/skia", "+net", "+ui",
diff --git a/ash/public/cpp/ash_pref_names.cc b/ash/public/cpp/ash_pref_names.cc index 1cb9e585..683f378 100644 --- a/ash/public/cpp/ash_pref_names.cc +++ b/ash/public/cpp/ash_pref_names.cc
@@ -16,6 +16,24 @@ // (most warm). const char kNightLightTemperature[] = "ash.night_light.color_temperature"; +// An integer pref storing the type of automatic scheduling of turning on and +// off the NightLight feature. Valid values are: +// 0 -> NightLight is never turned on or off automatically. +// 1 -> NightLight is turned on and off at the sunset and sunrise times +// respectively. +// 2 -> NightLight schedule times are explicitly set by the user. +// +// See ash::NightLightController::ScheduleType. +const char kNightLightScheduleType[] = "ash.night_light.schedule_type"; + +// Integer prefs storing the start and end times of the automatic schedule at +// which NightLight turns on and off respectively when the schedule type is set +// to a custom schedule. The times are represented as the number of minutes from +// 00:00 (12:00 AM) regardless of the date or the timezone. +// See ash::TimeOfDayTime. +const char kNightLightCustomStartTime[] = "ash.night_light.custom_start_time"; +const char kNightLightCustomEndTime[] = "ash.night_light.custom_end_time"; + } // namespace prefs } // namespace ash
diff --git a/ash/public/cpp/ash_pref_names.h b/ash/public/cpp/ash_pref_names.h index ea59a58..5a4e8d4 100644 --- a/ash/public/cpp/ash_pref_names.h +++ b/ash/public/cpp/ash_pref_names.h
@@ -13,6 +13,9 @@ ASH_PUBLIC_EXPORT extern const char kNightLightEnabled[]; ASH_PUBLIC_EXPORT extern const char kNightLightTemperature[]; +ASH_PUBLIC_EXPORT extern const char kNightLightScheduleType[]; +ASH_PUBLIC_EXPORT extern const char kNightLightCustomStartTime[]; +ASH_PUBLIC_EXPORT extern const char kNightLightCustomEndTime[]; } // namespace prefs
diff --git a/ash/system/night_light/night_light_controller.cc b/ash/system/night_light/night_light_controller.cc index cdbc238a..7b82a77d 100644 --- a/ash/system/night_light/night_light_controller.cc +++ b/ash/system/night_light/night_light_controller.cc
@@ -12,6 +12,7 @@ #include "base/time/time.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" +#include "third_party/icu/source/i18n/astro.h" #include "ui/compositor/layer.h" #include "ui/compositor/scoped_layer_animation_settings.h" @@ -19,14 +20,65 @@ namespace { +// Default start time at 6:00 PM as an offset from 00:00. +const int kDefaultStartTimeOffsetMinutes = 18 * 60; + +// Default end time at 6:00 AM as an offset from 00:00. +const int kDefaultEndTimeOffsetMinutes = 6 * 60; + constexpr float kDefaultColorTemperature = 0.5f; -// The duration of the temperature change animation when the change is a result -// of a manual user setting. -// TODO(afakhry): Add automatic schedule animation duration when you implement -// that part. It should be large enough (20 seconds as agreed) to give the user -// a nice smooth transition. -constexpr int kManualToggleAnimationDurationSec = 2; +// The duration of the temperature change animation for +// AnimationDurationType::kShort. +constexpr int kManualAnimationDurationSec = 2; + +// The duration of the temperature change animation for +// AnimationDurationType::kLong. +constexpr int kAutomaticAnimationDurationSec = 20; + +class NightLightControllerDelegateImpl : public NightLightController::Delegate { + public: + NightLightControllerDelegateImpl() { + // TODO(afakhry): Implement geolocation position retrieval. + } + ~NightLightControllerDelegateImpl() override = default; + + // ash::NightLightController::Delegate: + base::Time GetNow() const override { return base::Time::Now(); } + base::Time GetSunsetTime() const override { return GetSunRiseSet(false); } + base::Time GetSunriseTime() const override { return GetSunRiseSet(true); } + + private: + base::Time GetSunRiseSet(bool sunrise) const { + if (!ValidatePosition()) { + return sunrise ? TimeOfDay(kDefaultEndTimeOffsetMinutes).ToTimeToday() + : TimeOfDay(kDefaultStartTimeOffsetMinutes).ToTimeToday(); + } + + icu::CalendarAstronomer astro(longitude_, latitude_); + // For sunset and sunrise times calculations to be correct, the time of the + // icu::CalendarAstronomer object should be set to a time near local noon. + // This avoids having the computation flopping over into an adjacent day. + // See the documentation of icu::CalendarAstronomer::getSunRiseSet(). + // Note that the icu calendar works with milliseconds since epoch, and + // base::Time::FromDoubleT() / ToDoubleT() work with seconds since epoch. + const double noon_today_sec = TimeOfDay(12 * 60).ToTimeToday().ToDoubleT(); + astro.setTime(noon_today_sec * 1000.0); + const double sun_rise_set_ms = astro.getSunRiseSet(sunrise); + return base::Time::FromDoubleT(sun_rise_set_ms / 1000.0); + } + + bool ValidatePosition() const { + // TODO(afakhry): Replace with geoposition APIs. + return false; + } + + // Stub values to be replaced by actual geoposition APIs. + double latitude_ = 0.0; + double longitude_ = 0.0; + + DISALLOW_COPY_AND_ASSIGN(NightLightControllerDelegateImpl); +}; // Applies the given |layer_temperature| to all the layers of the root windows // with the given |animation_duration|. @@ -69,6 +121,12 @@ registry->RegisterBooleanPref(prefs::kNightLightEnabled, false); registry->RegisterDoublePref(prefs::kNightLightTemperature, kDefaultColorTemperature); + registry->RegisterIntegerPref(prefs::kNightLightScheduleType, + static_cast<int>(ScheduleType::kNone)); + registry->RegisterIntegerPref(prefs::kNightLightCustomStartTime, + kDefaultStartTimeOffsetMinutes); + registry->RegisterIntegerPref(prefs::kNightLightCustomEndTime, + kDefaultEndTimeOffsetMinutes); } void NightLightController::AddObserver(Observer* observer) { @@ -91,9 +149,40 @@ return kDefaultColorTemperature; } -void NightLightController::SetEnabled(bool enabled) { - if (active_user_pref_service_) +NightLightController::ScheduleType NightLightController::GetScheduleType() + const { + if (active_user_pref_service_) { + return static_cast<ScheduleType>( + active_user_pref_service_->GetInteger(prefs::kNightLightScheduleType)); + } + + return ScheduleType::kNone; +} + +TimeOfDay NightLightController::GetCustomStartTime() const { + if (active_user_pref_service_) { + return TimeOfDay(active_user_pref_service_->GetInteger( + prefs::kNightLightCustomStartTime)); + } + + return TimeOfDay(kDefaultStartTimeOffsetMinutes); +} + +TimeOfDay NightLightController::GetCustomEndTime() const { + if (active_user_pref_service_) { + return TimeOfDay( + active_user_pref_service_->GetInteger(prefs::kNightLightCustomEndTime)); + } + + return TimeOfDay(kDefaultEndTimeOffsetMinutes); +} + +void NightLightController::SetEnabled(bool enabled, + AnimationDuration animation_type) { + if (active_user_pref_service_) { + animation_duration_ = animation_type; active_user_pref_service_->SetBoolean(prefs::kNightLightEnabled, enabled); + } } void NightLightController::SetColorTemperature(float temperature) { @@ -105,8 +194,31 @@ } } +void NightLightController::SetScheduleType(ScheduleType type) { + if (active_user_pref_service_) { + active_user_pref_service_->SetInteger(prefs::kNightLightScheduleType, + static_cast<int>(type)); + } +} + +void NightLightController::SetCustomStartTime(TimeOfDay start_time) { + if (active_user_pref_service_) { + active_user_pref_service_->SetInteger( + prefs::kNightLightCustomStartTime, + start_time.offset_minutes_from_zero_hour()); + } +} + +void NightLightController::SetCustomEndTime(TimeOfDay end_time) { + if (active_user_pref_service_) { + active_user_pref_service_->SetInteger( + prefs::kNightLightCustomEndTime, + end_time.offset_minutes_from_zero_hour()); + } +} + void NightLightController::Toggle() { - SetEnabled(!GetEnabled()); + SetEnabled(!GetEnabled(), AnimationDuration::kShort); } void NightLightController::OnActiveUserSessionChanged( @@ -114,15 +226,27 @@ // Initial login and user switching in multi profiles. pref_change_registrar_.reset(); active_user_pref_service_ = Shell::Get()->GetActiveUserPrefService(); + delegate_ = base::MakeUnique<NightLightControllerDelegateImpl>(); InitFromUserPrefs(); } -void NightLightController::Refresh() { - // TODO(afakhry): Add here refreshing of start and end times, when you - // implement the automatic schedule settings. +void NightLightController::SetDelegateForTesting( + std::unique_ptr<Delegate> delegate) { + delegate_ = std::move(delegate); +} + +void NightLightController::RefreshLayersTemperature() { ApplyColorTemperatureToLayers( GetEnabled() ? GetColorTemperature() : 0.0f, - base::TimeDelta::FromSeconds(kManualToggleAnimationDurationSec)); + base::TimeDelta::FromSeconds(animation_duration_ == + AnimationDuration::kShort + ? kManualAnimationDurationSec + : kAutomaticAnimationDurationSec)); + + // Reset the animation type back to manual to consume any automatically set + // animations. + last_animation_duration_ = animation_duration_; + animation_duration_ = AnimationDuration::kShort; Shell::Get()->SetCursorCompositingEnabled(GetEnabled()); } @@ -139,6 +263,18 @@ prefs::kNightLightTemperature, base::Bind(&NightLightController::OnColorTemperaturePrefChanged, base::Unretained(this))); + pref_change_registrar_->Add( + prefs::kNightLightScheduleType, + base::Bind(&NightLightController::OnScheduleParamsPrefsChanged, + base::Unretained(this))); + pref_change_registrar_->Add( + prefs::kNightLightCustomStartTime, + base::Bind(&NightLightController::OnScheduleParamsPrefsChanged, + base::Unretained(this))); + pref_change_registrar_->Add( + prefs::kNightLightCustomEndTime, + base::Bind(&NightLightController::OnScheduleParamsPrefsChanged, + base::Unretained(this))); } void NightLightController::InitFromUserPrefs() { @@ -148,7 +284,7 @@ } StartWatchingPrefsChanges(); - Refresh(); + Refresh(true /* did_schedule_change */); NotifyStatusChanged(); } @@ -159,13 +295,141 @@ void NightLightController::OnEnabledPrefChanged() { DCHECK(active_user_pref_service_); - Refresh(); + Refresh(false /* did_schedule_change */); NotifyStatusChanged(); } void NightLightController::OnColorTemperaturePrefChanged() { DCHECK(active_user_pref_service_); - Refresh(); + RefreshLayersTemperature(); +} + +void NightLightController::OnScheduleParamsPrefsChanged() { + DCHECK(active_user_pref_service_); + Refresh(true /* did_schedule_change */); +} + +void NightLightController::Refresh(bool did_schedule_change) { + RefreshLayersTemperature(); + + const ScheduleType type = GetScheduleType(); + switch (type) { + case ScheduleType::kNone: + timer_.Stop(); + return; + + case ScheduleType::kSunsetToSunrise: + RefreshScheduleTimer(delegate_->GetSunsetTime(), + delegate_->GetSunriseTime(), did_schedule_change); + return; + + case ScheduleType::kCustom: + RefreshScheduleTimer(GetCustomStartTime().ToTimeToday(), + GetCustomEndTime().ToTimeToday(), + did_schedule_change); + return; + } +} + +void NightLightController::RefreshScheduleTimer(base::Time start_time, + base::Time end_time, + bool did_schedule_change) { + if (GetScheduleType() == ScheduleType::kNone) { + NOTREACHED(); + timer_.Stop(); + return; + } + + // NOTE: Users can set any weird combinations. + if (end_time <= start_time) { + // Example: + // Start: 9:00 PM, End: 6:00 AM. + // + // 6:00 21:00 + // <----- + ------------------ + -----> + // | | + // end start + // + // From our perspective, the end time is always a day later. + end_time += base::TimeDelta::FromDays(1); + } + + DCHECK_GE(end_time, start_time); + + // The target status that we need to set NightLight to now if a change of + // status is needed immediately. + bool enable_now = false; + + // Where are we now with respect to the start and end times? + const base::Time now = delegate_->GetNow(); + if (now < start_time) { + // Example: + // Start: 6:00 PM today, End: 6:00 AM tomorrow, Now: 4:00 PM. + // + // <----- + ----------- + ----------- + -----> + // | | | + // now start end + // + // In this case, we need to disable NightLight immediately if it's enabled. + enable_now = false; + } else if (now >= start_time && now < end_time) { + // Example: + // Start: 6:00 PM today, End: 6:00 AM tomorrow, Now: 11:00 PM. + // + // <----- + ----------- + ----------- + -----> + // | | | + // start now end + // + // Start NightLight right away. Our future start time is a day later than + // its current value. + enable_now = true; + start_time += base::TimeDelta::FromDays(1); + } else { // now >= end_time. + // Example: + // Start: 6:00 PM today, End: 10:00 PM today, Now: 11:00 PM. + // + // <----- + ----------- + ----------- + -----> + // | | | + // start end now + // + // In this case, our future start and end times are a day later from their + // current values. NightLight needs to be ended immediately if it's already + // enabled. + enable_now = false; + start_time += base::TimeDelta::FromDays(1); + end_time += base::TimeDelta::FromDays(1); + } + + // After the above processing, the start and end time are all in the future. + DCHECK_GE(start_time, now); + DCHECK_GE(end_time, now); + + if (did_schedule_change && enable_now != GetEnabled()) { + // If the change in the schedule introduces a change in the status, then + // calling SetEnabled() is all we need, since it will trigger a change in + // the user prefs to which we will respond by calling Refresh(). This will + // end up in this function again, adjusting all the needed schedules. + SetEnabled(enable_now, AnimationDuration::kShort); + return; + } + + // We reach here in one of the following conditions: + // 1) If schedule changes don't result in changes in the status, we need to + // explicitly update the timer to re-schedule the next toggle to account for + // any changes. + // 2) The user has just manually toggled the status of NightLight either from + // the System Menu or System Settings. In this case, we respect the user + // wish and maintain the current status that he desires, but we schedule the + // status to be toggled according to the time that corresponds with the + // opposite status of the current one. + ScheduleNextToggle(GetEnabled() ? end_time - now : start_time - now); +} + +void NightLightController::ScheduleNextToggle(base::TimeDelta delay) { + timer_.Start( + FROM_HERE, delay, + base::Bind(&NightLightController::SetEnabled, base::Unretained(this), + !GetEnabled(), AnimationDuration::kLong)); } } // namespace ash
diff --git a/ash/system/night_light/night_light_controller.h b/ash/system/night_light/night_light_controller.h index bdef68d..b9eef8f 100644 --- a/ash/system/night_light/night_light_controller.h +++ b/ash/system/night_light/night_light_controller.h
@@ -9,7 +9,10 @@ #include "ash/ash_export.h" #include "ash/session/session_observer.h" +#include "ash/system/night_light/time_of_day.h" #include "base/observer_list.h" +#include "base/time/time.h" +#include "base/timer/timer.h" #include "components/prefs/pref_change_registrar.h" class PrefRegistrySimple; @@ -23,6 +26,46 @@ // screen. class ASH_EXPORT NightLightController : public SessionObserver { public: + enum class ScheduleType : int { + // Automatic toggling of NightLight is turned off. + kNone = 0, + + // Turned automatically on at the user's local sunset time, and off at the + // user's local sunrise time. + kSunsetToSunrise = 1, + + // Toggled automatically based on the custom set start and end times + // selected by the user from the system settings. + kCustom = 2, + }; + + enum class AnimationDuration { + // Short animation (2 seconds) used for manual changes of NightLight status + // and temperature by the user. + kShort, + + // Long animation (20 seconds) used for applying the color temperature + // gradually as a result of getting into or out of the automatically + // scheduled NightLight mode. This gives the user a smooth transition. + kLong, + }; + + // This class enables us to inject fake values for "Now" as well as the sunset + // and sunrise times, so that we can reliably test the behavior in various + // schedule types and times. + class Delegate { + public: + // NightLightController owns the delegate. + virtual ~Delegate() {} + + // Gets the current time. + virtual base::Time GetNow() const = 0; + + // Gets the sunset and sunrise times. + virtual base::Time GetSunsetTime() const = 0; + virtual base::Time GetSunriseTime() const = 0; + }; + class Observer { public: // Emitted when the NightLight status is changed. @@ -40,24 +83,40 @@ static void RegisterPrefs(PrefRegistrySimple* registry); + AnimationDuration animation_duration() const { return animation_duration_; } + AnimationDuration last_animation_duration() const { + return last_animation_duration_; + } + const base::OneShotTimer& timer() const { return timer_; } + void AddObserver(Observer* observer); void RemoveObserver(Observer* observer); // Get the NightLight settings stored in the current active user prefs. bool GetEnabled() const; float GetColorTemperature() const; + ScheduleType GetScheduleType() const; + TimeOfDay GetCustomStartTime() const; + TimeOfDay GetCustomEndTime() const; // Set the desired NightLight settings in the current active user prefs. - void SetEnabled(bool enabled); + void SetEnabled(bool enabled, AnimationDuration animation_type); void SetColorTemperature(float temperature); + void SetScheduleType(ScheduleType type); + void SetCustomStartTime(TimeOfDay start_time); + void SetCustomEndTime(TimeOfDay end_time); + // This is always called as a result of a user action and will always use the + // AnimationDurationType::kShort. void Toggle(); // ash::SessionObserver: void OnActiveUserSessionChanged(const AccountId& account_id) override; + void SetDelegateForTesting(std::unique_ptr<Delegate> delegate); + private: - void Refresh(); + void RefreshLayersTemperature(); void StartWatchingPrefsChanges(); @@ -71,14 +130,50 @@ // Called when the user pref for the color temperature is changed. void OnColorTemperaturePrefChanged(); + // Called when any of the schedule related prefs (schedule type, custom start + // and end times) are changed. + void OnScheduleParamsPrefsChanged(); + + // Refreshes the state of NightLight according to the currently set + // parameters. |did_schedule_change| is true when Refresh() is called as a + // result of a change in one of the schedule related prefs, and false + // otherwise. + void Refresh(bool did_schedule_change); + + // Given the desired start and end times that determine the time interval + // during which NightLight will be ON, depending on the time of "now", it + // refreshes the |timer_| to either schedule the future start or end of + // NightLight mode, as well as update the current status if needed. + // For |did_schedule_change|, see Refresh() above. + // This function should never be called if the schedule type is |kNone|. + void RefreshScheduleTimer(base::Time start_time, + base::Time end_time, + bool did_schedule_change); + + // Schedule the upcoming next toggle of NightLight mode. This is used for the + // automatic status changes of NightLight which always use an + // AnimationDurationType::kLong. + void ScheduleNextToggle(base::TimeDelta delay); + // The observed session controller instance from which we know when to // initialize the NightLight settings from the user preferences. SessionController* const session_controller_; + std::unique_ptr<Delegate> delegate_; + // The pref service of the currently active user. Can be null in // ash_unittests. PrefService* active_user_pref_service_ = nullptr; + // The animation duration of any upcoming future change. + AnimationDuration animation_duration_ = AnimationDuration::kShort; + // The animation duration of the change that was just performed. + AnimationDuration last_animation_duration_ = AnimationDuration::kShort; + + // The timer that schedules the start and end of NightLight when the schedule + // type is either kSunsetToSunrise or kCustom. + base::OneShotTimer timer_; + // The registrar used to watch NightLight prefs changes in the above // |active_user_pref_service_| from outside ash. // NOTE: Prefs are how Chrome communicates changes to the NightLight settings
diff --git a/ash/system/night_light/night_light_controller_unittest.cc b/ash/system/night_light/night_light_controller_unittest.cc index 8307834d..267e325e 100644 --- a/ash/system/night_light/night_light_controller_unittest.cc +++ b/ash/system/night_light/night_light_controller_unittest.cc
@@ -16,6 +16,8 @@ #include "ash/test/ash_test_helper.h" #include "ash/test/test_session_controller_client.h" #include "ash/test/test_shell_delegate.h" +#include "base/bind.h" +#include "base/callback_forward.h" #include "base/command_line.h" #include "base/macros.h" #include "components/prefs/testing_pref_service.h" @@ -64,6 +66,28 @@ DISALLOW_COPY_AND_ASSIGN(TestObserver); }; +class TestDelegate : public NightLightController::Delegate { + public: + TestDelegate() = default; + ~TestDelegate() override = default; + + void SetFakeNow(TimeOfDay time) { fake_now_ = time.ToTimeToday(); } + void SetFakeSunset(TimeOfDay time) { fake_sunset_ = time.ToTimeToday(); } + void SetFakeSunrise(TimeOfDay time) { fake_sunrise_ = time.ToTimeToday(); } + + // ash::NightLightController::Delegate + base::Time GetNow() const override { return fake_now_; } + base::Time GetSunsetTime() const override { return fake_sunset_; } + base::Time GetSunriseTime() const override { return fake_sunrise_; } + + private: + base::Time fake_now_; + base::Time fake_sunset_; + base::Time fake_sunrise_; + + DISALLOW_COPY_AND_ASSIGN(TestDelegate); +}; + class NightLightTest : public test::AshTestBase { public: NightLightTest() = default; @@ -76,6 +100,8 @@ return &user2_pref_service_; } + TestDelegate* delegate() const { return delegate_; } + // ash::test::AshTestBase: void SetUp() override { // Explicitly enable the NightLight feature for the tests. @@ -90,6 +116,9 @@ // Simulate user 1 login. InjectTestPrefService(&user1_pref_service_); SwitchActiveUser(kUser1Email); + + delegate_ = new TestDelegate; + GetController()->SetDelegateForTesting(base::WrapUnique(delegate_)); } void CreateTestUserSessions() { @@ -108,10 +137,17 @@ pref_service); } + void SetNightLightEnabled(bool enabled) { + GetController()->SetEnabled( + enabled, NightLightController::AnimationDuration::kShort); + } + private: TestingPrefServiceSimple user1_pref_service_; TestingPrefServiceSimple user2_pref_service_; + TestDelegate* delegate_ = nullptr; + DISALLOW_COPY_AND_ASSIGN(NightLightTest); }; @@ -127,7 +163,7 @@ TestObserver observer; NightLightController* controller = GetController(); - controller->SetEnabled(false); + SetNightLightEnabled(false); ASSERT_FALSE(controller->GetEnabled()); EXPECT_TRUE(TestLayersTemperature(0.0f)); controller->Toggle(); @@ -151,7 +187,7 @@ TestObserver observer; NightLightController* controller = GetController(); - controller->SetEnabled(false); + SetNightLightEnabled(false); ASSERT_FALSE(controller->GetEnabled()); // Setting the temperature while NightLight is disabled only changes the @@ -164,7 +200,7 @@ // When NightLight is enabled, temperature changes actually affect the root // layers temperatures. - controller->SetEnabled(true); + SetNightLightEnabled(true); ASSERT_TRUE(controller->GetEnabled()); const float temperature2 = 0.7f; controller->SetColorTemperature(temperature2); @@ -175,14 +211,14 @@ // doesn't change, however the temperatures set on the root layers are all // 0.0f. Observers only receive an enabled status change notification; no // temperature change notification. - controller->SetEnabled(false); + SetNightLightEnabled(false); ASSERT_FALSE(controller->GetEnabled()); EXPECT_FALSE(observer.status()); EXPECT_EQ(temperature2, controller->GetColorTemperature()); EXPECT_TRUE(TestLayersTemperature(0.0f)); // When re-enabled, the stored temperature is re-applied. - controller->SetEnabled(true); + SetNightLightEnabled(true); EXPECT_TRUE(observer.status()); ASSERT_TRUE(controller->GetEnabled()); EXPECT_TRUE(TestLayersTemperature(temperature2)); @@ -198,7 +234,7 @@ // Test start with user1 logged in. NightLightController* controller = GetController(); - controller->SetEnabled(true); + SetNightLightEnabled(true); EXPECT_TRUE(controller->GetEnabled()); const float user1_temperature = 0.8f; controller->SetColorTemperature(user1_temperature); @@ -251,6 +287,248 @@ EXPECT_FALSE(controller->GetEnabled()); } +// Tests transitioning from kNone to kCustom and back to kNone schedule types. +TEST_F(NightLightTest, TestScheduleNoneToCustomTransition) { + if (Shell::GetAshConfig() == Config::MASH) { + // PrefChangeRegistrar doesn't work on mash. crbug.com/721961. + return; + } + + NightLightController* controller = GetController(); + // Now is 6:00 PM. + delegate()->SetFakeNow(TimeOfDay(18 * 60)); + SetNightLightEnabled(false); + controller->SetScheduleType(NightLightController::ScheduleType::kNone); + // Start time is at 3:00 PM and end time is at 8:00 PM. + controller->SetCustomStartTime(TimeOfDay(15 * 60)); + controller->SetCustomEndTime(TimeOfDay(20 * 60)); + + // 15:00 18:00 20:00 + // <----- + ----------- + ----------- + -----> + // | | | + // start now end + // + // Even though "Now" is inside the NightLight interval, nothing should change, + // since the schedule type is "none". + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + + // Now change the schedule type to custom, NightLight should turn on + // immediately with a short animation duration, and the timer should be + // running with a delay of exactly 2 hours scheduling the end. + controller->SetScheduleType(NightLightController::ScheduleType::kCustom); + EXPECT_TRUE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(controller->GetColorTemperature())); + EXPECT_EQ(NightLightController::AnimationDuration::kShort, + controller->last_animation_duration()); + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(2), + controller->timer().GetCurrentDelay()); + EXPECT_TRUE(controller->timer().user_task()); + + // If the user changes the schedule type to "none", the NightLight status + // should not change, but the timer should not be running. + controller->SetScheduleType(NightLightController::ScheduleType::kNone); + EXPECT_TRUE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(controller->GetColorTemperature())); + EXPECT_FALSE(controller->timer().IsRunning()); +} + +// Tests what happens when the time now reaches the end of the NightLight +// interval when NightLight mode is on. +TEST_F(NightLightTest, TestCustomScheduleReachingEndTime) { + if (Shell::GetAshConfig() == Config::MASH) { + // PrefChangeRegistrar doesn't work on mash. crbug.com/721961. + return; + } + + NightLightController* controller = GetController(); + delegate()->SetFakeNow(TimeOfDay(18 * 60)); + controller->SetCustomStartTime(TimeOfDay(15 * 60)); + controller->SetCustomEndTime(TimeOfDay(20 * 60)); + controller->SetScheduleType(NightLightController::ScheduleType::kCustom); + EXPECT_TRUE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(controller->GetColorTemperature())); + + // Simulate reaching the end time by triggering the timer's user task. Make + // sure that NightLight ended with a long animation. + // + // 15:00 20:00 + // <----- + ------------------------ + -----> + // | | + // start end & now + // + // Now is 8:00 PM. + delegate()->SetFakeNow(TimeOfDay(20 * 60)); + controller->timer().user_task().Run(); + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + EXPECT_EQ(NightLightController::AnimationDuration::kLong, + controller->last_animation_duration()); + // The timer should still be running, but now scheduling the start at 3:00 PM + // tomorrow which is 19 hours from "now" (8:00 PM). + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(19), + controller->timer().GetCurrentDelay()); +} + +// Tests that user toggles from the system menu or system settings override any +// status set by an automatic schedule. +TEST_F(NightLightTest, TestExplicitUserTogglesWhileScheduleIsActive) { + if (Shell::GetAshConfig() == Config::MASH) { + // PrefChangeRegistrar doesn't work on mash. crbug.com/721961. + return; + } + + // Start with the below custom schedule, where NightLight is off. + // + // 15:00 20:00 23:00 + // <----- + ----------------- + ------------ + ----> + // | | | + // start end now + // + NightLightController* controller = GetController(); + delegate()->SetFakeNow(TimeOfDay(23 * 60)); + controller->SetCustomStartTime(TimeOfDay(15 * 60)); + controller->SetCustomEndTime(TimeOfDay(20 * 60)); + controller->SetScheduleType(NightLightController::ScheduleType::kCustom); + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + + // What happens if the user manually turns NightLight on while the schedule + // type says it should be off? + // User toggles either from the system menu or the System Settings toggle + // button must override any automatic schedule, and should be performed with + // the short animation duration. + controller->Toggle(); + EXPECT_TRUE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(controller->GetColorTemperature())); + EXPECT_EQ(NightLightController::AnimationDuration::kShort, + controller->last_animation_duration()); + // The timer should still be running, but NightLight should automatically + // turn off at 8:00 PM tomorrow, which is 21 hours from now (11:00 PM). + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(21), + controller->timer().GetCurrentDelay()); + + // Manually turning it back off should also be respected, and this time the + // start is scheduled at 3:00 PM tomorrow after 19 hours from "now" (8:00 PM). + controller->Toggle(); + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + EXPECT_EQ(NightLightController::AnimationDuration::kShort, + controller->last_animation_duration()); + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(16), + controller->timer().GetCurrentDelay()); +} + +// Tests that changing the custom start and end times, in such a way that +// shouldn't change the current status, only updates the timer but doesn't +// change the status. +TEST_F(NightLightTest, TestChangingStartTimesThatDontChangeTheStatus) { + if (Shell::GetAshConfig() == Config::MASH) { + // PrefChangeRegistrar doesn't work on mash. crbug.com/721961. + return; + } + + // 16:00 18:00 22:00 + // <----- + ----------- + ----------- + -----> + // | | | + // now start end + // + NightLightController* controller = GetController(); + delegate()->SetFakeNow(TimeOfDay(16 * 60)); // 4:00 PM. + SetNightLightEnabled(false); + controller->SetScheduleType(NightLightController::ScheduleType::kNone); + controller->SetCustomStartTime(TimeOfDay(18 * 60)); // 6:00 PM. + controller->SetCustomEndTime(TimeOfDay(22 * 60)); // 10:00 PM. + + // Since now is outside the NightLight interval, changing the schedule type + // to kCustom, shouldn't affect the status. Validate the timer is running with + // a 2-hour delay. + controller->SetScheduleType(NightLightController::ScheduleType::kCustom); + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(2), + controller->timer().GetCurrentDelay()); + + // Change the start time in such a way that doesn't change the status, but + // despite that, confirm that schedule has been updated. + controller->SetCustomStartTime(TimeOfDay(19 * 60)); // 7:00 PM. + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(3), + controller->timer().GetCurrentDelay()); + + // Changing the end time in a similar fashion to the above and expect no + // change. + controller->SetCustomEndTime(TimeOfDay(23 * 60)); // 11:00 PM. + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(3), + controller->timer().GetCurrentDelay()); +} + +// Tests the behavior of the sunset to sunrise automatic schedule type. +TEST_F(NightLightTest, TestSunsetSunrise) { + if (Shell::GetAshConfig() == Config::MASH) { + // PrefChangeRegistrar doesn't work on mash. crbug.com/721961. + return; + } + + // 16:00 18:00 20:00 22:00 5:00 + // <----- + ----------- + ------- + -------- + --------------- + -------> + // | | | | | + // now custom start sunset custom end sunrise + // + NightLightController* controller = GetController(); + delegate()->SetFakeNow(TimeOfDay(16 * 60)); // 4:00 PM. + delegate()->SetFakeSunset(TimeOfDay(20 * 60)); // 8:00 PM. + delegate()->SetFakeSunrise(TimeOfDay(5 * 60)); // 5:00 AM. + SetNightLightEnabled(false); + controller->SetScheduleType(NightLightController::ScheduleType::kNone); + controller->SetCustomStartTime(TimeOfDay(18 * 60)); // 6:00 PM. + controller->SetCustomEndTime(TimeOfDay(22 * 60)); // 10:00 PM. + + // Custom times should have no effect when the schedule type is sunset to + // sunrise. + controller->SetScheduleType( + NightLightController::ScheduleType::kSunsetToSunrise); + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(4), + controller->timer().GetCurrentDelay()); + + // Simulate reaching sunset. + delegate()->SetFakeNow(TimeOfDay(20 * 60)); // Now is 8:00 PM. + controller->timer().user_task().Run(); + EXPECT_TRUE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(controller->GetColorTemperature())); + EXPECT_EQ(NightLightController::AnimationDuration::kLong, + controller->last_animation_duration()); + // Timer is running scheduling the end at sunrise. + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(9), + controller->timer().GetCurrentDelay()); + + // Simulate reaching sunrise. + delegate()->SetFakeNow(TimeOfDay(5 * 60)); // Now is 5:00 AM. + controller->timer().user_task().Run(); + EXPECT_FALSE(controller->GetEnabled()); + EXPECT_TRUE(TestLayersTemperature(0.0f)); + EXPECT_EQ(NightLightController::AnimationDuration::kLong, + controller->last_animation_duration()); + // Timer is running scheduling the start at the next sunset. + EXPECT_TRUE(controller->timer().IsRunning()); + EXPECT_EQ(base::TimeDelta::FromHours(15), + controller->timer().GetCurrentDelay()); +} + } // namespace } // namespace ash
diff --git a/ash/system/night_light/time_of_day.cc b/ash/system/night_light/time_of_day.cc new file mode 100644 index 0000000..b76ca23 --- /dev/null +++ b/ash/system/night_light/time_of_day.cc
@@ -0,0 +1,57 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/system/night_light/time_of_day.h" + +#include "base/i18n/time_formatting.h" +#include "base/strings/utf_string_conversions.h" + +namespace ash { + +namespace { + +constexpr int kMaxOffsetMinutes = 24 * 60; + +} // namespace + +TimeOfDay::TimeOfDay(int offset_minutes) + : offset_minutes_from_zero_hour_( + offset_minutes == kMaxOffsetMinutes ? 0 : offset_minutes) { + DCHECK_LE(offset_minutes_from_zero_hour_, kMaxOffsetMinutes); +} + +// static +TimeOfDay TimeOfDay::FromTime(const base::Time& time) { + base::Time::Exploded exploded; + time.LocalExplode(&exploded); + return TimeOfDay(exploded.hour * 60 + exploded.minute); +} + +bool TimeOfDay::operator==(const TimeOfDay& rhs) const { + return offset_minutes_from_zero_hour_ == rhs.offset_minutes_from_zero_hour_; +} + +base::Time TimeOfDay::ToTimeToday() const { + base::Time::Exploded now; + base::Time::Now().LocalExplode(&now); + now.hour = (offset_minutes_from_zero_hour_ / 60) % 24; + now.minute = offset_minutes_from_zero_hour_ % 60; + now.second = 0; + now.millisecond = 0; + base::Time result; + if (base::Time::FromLocalExploded(now, &result)) + return result; + + // Daylight saving time can cause FromLocalExploded() to fail on the + // transition day in the spring when TimeOfDay == 2:30 AM, and the time goes + // instantaneously from 1:59 AM 3:00 AM. In this very rare case, it's OK for + // this function to fail. + return base::Time(); +} + +std::string TimeOfDay::ToString() const { + return base::UTF16ToUTF8(base::TimeFormatTimeOfDay(ToTimeToday())); +} + +} // namespace ash
diff --git a/ash/system/night_light/time_of_day.h b/ash/system/night_light/time_of_day.h new file mode 100644 index 0000000..ed68ea6 --- /dev/null +++ b/ash/system/night_light/time_of_day.h
@@ -0,0 +1,52 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_SYSTEM_NIGHT_LIGHT_TIME_OF_DAY_H_ +#define ASH_SYSTEM_NIGHT_LIGHT_TIME_OF_DAY_H_ + +#include <string> + +#include "ash/ash_export.h" +#include "base/time/time.h" + +namespace ash { + +// Represents the time of the day as a simple number of minutes since 00:00 +// regardless of the date or the timezone. This makes it simple to persist this +// as an integer user pref. +class ASH_EXPORT TimeOfDay { + public: + // |offset_minutes| is the number of minutes since 00:00. If |offset_minutes| + // is equal to the offset minutes in 24 hours, it will be reset to 0 to + // represent the time 00:00 (12:00 AM). Offsets greater than the minutes in + // 24 hours are not allowed. + explicit TimeOfDay(int offset_minutes); + TimeOfDay(const TimeOfDay& other) = default; + TimeOfDay& operator=(const TimeOfDay& rhs) = default; + ~TimeOfDay() = default; + + // Converts to a minutes offset representation from |time| dropping the + // seconds and milliseconds. + static TimeOfDay FromTime(const base::Time& time); + + bool operator==(const TimeOfDay& rhs) const; + + int offset_minutes_from_zero_hour() const { + return offset_minutes_from_zero_hour_; + } + + // Converts to an actual point in time today. If this fail for some reason, + // base::Time() will be returned. + base::Time ToTimeToday() const; + + // Converts to a string in the format "3:07 PM". + std::string ToString() const; + + private: + int offset_minutes_from_zero_hour_; +}; + +} // namespace ash + +#endif // ASH_SYSTEM_NIGHT_LIGHT_TIME_OF_DAY_H_
diff --git a/ash/system/night_light/time_of_day_unittest.cc b/ash/system/night_light/time_of_day_unittest.cc new file mode 100644 index 0000000..5b5cbd0 --- /dev/null +++ b/ash/system/night_light/time_of_day_unittest.cc
@@ -0,0 +1,72 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/system/night_light/time_of_day.h" + +#include "base/i18n/rtl.h" +#include "base/test/icu_test_util.h" +#include "base/time/time.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash { + +namespace { + +TEST(TimeOfDayTest, TestEquality) { + // Test created TimeOfDay objects with equal offsets are equal. + TimeOfDay time1(18 * 60 + 32); // 6:32 PM. + TimeOfDay time2(18 * 60 + 32); // 6:32 PM. + EXPECT_EQ(time1, time2); + TimeOfDay time3(time1); + EXPECT_EQ(time1, time3); + EXPECT_EQ(time2, time3); + TimeOfDay time4(9 * 60 + 59); // 9:59 AM. + EXPECT_FALSE(time1 == time4); + time1 = time4; + EXPECT_EQ(time1, time4); +} + +TEST(TimeOfDayTest, TestSeveralOffsets) { + // Ensure US locale to make sure time format is expected. + base::test::ScopedRestoreICUDefaultLocale restore_locale; + base::i18n::SetICUDefaultLocale("en_US"); + + // 6:32 PM ==> 18:32. + TimeOfDay time1(18 * 60 + 32); + EXPECT_EQ("6:32 PM", time1.ToString()); + + // 9:59 AM. + TimeOfDay time2(9 * 60 + 59); + EXPECT_EQ("9:59 AM", time2.ToString()); + + // Border times: 00:00 and 24:00. + TimeOfDay time3(0); + TimeOfDay time4(24 * 60); + EXPECT_EQ("12:00 AM", time3.ToString()); + EXPECT_EQ("12:00 AM", time4.ToString()); +} + +TEST(TimeOfDayTest, TestFromTime) { + // "Now" today and "now" tomorrow should have the same minutes offset from + // 00:00. + // Assume that "now" is Tuesday May 23, 2017 at 10:30 AM. + base::Time::Exploded now; + now.year = 2017; + now.month = 5; // May. + now.day_of_week = 2; // Tuesday. + now.day_of_month = 23; + now.hour = 10; + now.minute = 30; + now.second = 0; + now.millisecond = 0; + + base::Time now_today = base::Time::Now(); + ASSERT_TRUE(base::Time::FromLocalExploded(now, &now_today)); + base::Time now_tomorrow = now_today + base::TimeDelta::FromDays(1); + EXPECT_EQ(TimeOfDay::FromTime(now_today), TimeOfDay::FromTime(now_tomorrow)); +} + +} // namespace + +} // namespace ash
diff --git a/base/android/field_trial_list.cc b/base/android/field_trial_list.cc index 5150b812..b2f332b 100644 --- a/base/android/field_trial_list.cc +++ b/base/android/field_trial_list.cc
@@ -6,8 +6,12 @@ #include <jni.h> +#include <map> +#include <string> + #include "base/android/jni_string.h" #include "base/metrics/field_trial.h" +#include "base/metrics/field_trial_params.h" #include "jni/FieldTrialList_jni.h" using base::android::ConvertJavaStringToUTF8; @@ -31,6 +35,18 @@ return base::FieldTrialList::TrialExists(trial_name); } +static ScopedJavaLocalRef<jstring> GetVariationParameter( + JNIEnv* env, + const JavaParamRef<jclass>& clazz, + const JavaParamRef<jstring>& jtrial_name, + const JavaParamRef<jstring>& jparameter_key) { + std::map<std::string, std::string> parameters; + base::GetFieldTrialParams(ConvertJavaStringToUTF8(env, jtrial_name), + ¶meters); + return ConvertUTF8ToJavaString( + env, parameters[ConvertJavaStringToUTF8(env, jparameter_key)]); +} + namespace base { namespace android {
diff --git a/base/android/java/src/org/chromium/base/FieldTrialList.java b/base/android/java/src/org/chromium/base/FieldTrialList.java index cfd7d5c..c3468a4 100644 --- a/base/android/java/src/org/chromium/base/FieldTrialList.java +++ b/base/android/java/src/org/chromium/base/FieldTrialList.java
@@ -31,6 +31,16 @@ return nativeTrialExists(trialName); } + /** + * @param trialName The name of the trial with the parameter. + * @param parameterKey The key of the parameter. + * @return The value of the parameter or an empty string if not found. + */ + public static String getVariationParameter(String trialName, String parameterKey) { + return nativeGetVariationParameter(trialName, parameterKey); + } + private static native String nativeFindFullName(String trialName); private static native boolean nativeTrialExists(String trialName); + private static native String nativeGetVariationParameter(String trialName, String parameterKey); }
diff --git a/base/test/thread_test_helper.cc b/base/test/thread_test_helper.cc index 38edc9d..037de2b 100644 --- a/base/test/thread_test_helper.cc +++ b/base/test/thread_test_helper.cc
@@ -13,15 +13,15 @@ namespace base { ThreadTestHelper::ThreadTestHelper( - scoped_refptr<SingleThreadTaskRunner> target_thread) + scoped_refptr<SequencedTaskRunner> target_sequence) : test_result_(false), - target_thread_(std::move(target_thread)), + target_sequence_(std::move(target_sequence)), done_event_(WaitableEvent::ResetPolicy::AUTOMATIC, WaitableEvent::InitialState::NOT_SIGNALED) {} bool ThreadTestHelper::Run() { - if (!target_thread_->PostTask( - FROM_HERE, base::BindOnce(&ThreadTestHelper::RunInThread, this))) { + if (!target_sequence_->PostTask( + FROM_HERE, base::BindOnce(&ThreadTestHelper::RunOnSequence, this))) { return false; } base::ThreadRestrictions::ScopedAllowWait allow_wait; @@ -33,7 +33,7 @@ ThreadTestHelper::~ThreadTestHelper() {} -void ThreadTestHelper::RunInThread() { +void ThreadTestHelper::RunOnSequence() { RunTest(); done_event_.Signal(); }
diff --git a/base/test/thread_test_helper.h b/base/test/thread_test_helper.h index 829a619..935e7efc 100644 --- a/base/test/thread_test_helper.h +++ b/base/test/thread_test_helper.h
@@ -8,21 +8,21 @@ #include "base/compiler_specific.h" #include "base/macros.h" #include "base/memory/ref_counted.h" -#include "base/single_thread_task_runner.h" +#include "base/sequenced_task_runner.h" #include "base/synchronization/waitable_event.h" namespace base { -// Helper class that executes code on a given thread while blocking on the -// invoking thread. To use, derive from this class and overwrite RunTest. An -// alternative use of this class is to use it directly. It will then block -// until all pending tasks on a given thread have been executed. +// Helper class that executes code on a given target sequence/thread while +// blocking on the invoking sequence/thread. To use, derive from this class and +// overwrite RunTest. An alternative use of this class is to use it directly. It +// will then block until all pending tasks on a given sequence/thread have been +// executed. class ThreadTestHelper : public RefCountedThreadSafe<ThreadTestHelper> { public: - explicit ThreadTestHelper( - scoped_refptr<SingleThreadTaskRunner> target_thread); + explicit ThreadTestHelper(scoped_refptr<SequencedTaskRunner> target_sequence); - // True if RunTest() was successfully executed on the target thread. + // True if RunTest() was successfully executed on the target sequence. bool Run() WARN_UNUSED_RESULT; virtual void RunTest(); @@ -36,10 +36,10 @@ void set_test_result(bool test_result) { test_result_ = test_result; } private: - void RunInThread(); + void RunOnSequence(); bool test_result_; - scoped_refptr<SingleThreadTaskRunner> target_thread_; + scoped_refptr<SequencedTaskRunner> target_sequence_; WaitableEvent done_event_; DISALLOW_COPY_AND_ASSIGN(ThreadTestHelper);
diff --git a/build/android/gyp/util/proguard_util.py b/build/android/gyp/util/proguard_util.py index 6fc57d9f..be6eae2 100644 --- a/build/android/gyp/util/proguard_util.py +++ b/build/android/gyp/util/proguard_util.py
@@ -163,12 +163,16 @@ def _WriteFlagsFile(self, out): # Quite useful for auditing proguard flags. - for config in self._configs: + for config in sorted(self._configs): out.write('#' * 80 + '\n') out.write(config + '\n') out.write('#' * 80 + '\n') with open(config) as config_file: - out.write(config_file.read().rstrip()) + contents = config_file.read().rstrip() + # Remove numbers from generated rule comments to make file more + # diff'able. + contents = re.sub(r' #generated:\d+', '', contents) + out.write(contents) out.write('\n\n') out.write('#' * 80 + '\n') out.write('Command-line\n')
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni index a679569..b681f02 100644 --- a/build/config/android/internal_rules.gni +++ b/build/config/android/internal_rules.gni
@@ -852,6 +852,11 @@ "testonly", ]) script = "//build/android/gyp/proguard.py" + + # http://crbug.com/725224. Speculative fix for bots running out of memory. + # TODO(agrieve): Change this to an explicit pool once those are supported. + # http://crbug.com/635308 + console = true if (defined(invoker.proguard_jar_path)) { _proguard_jar_path = invoker.proguard_jar_path } else { @@ -1029,6 +1034,12 @@ script = "//build/android/gyp/main_dex_list.py" depfile = "$target_gen_dir/$target_name.d" + # http://crbug.com/725224. Speculative fix for bots running out of + # memory. + # TODO(agrieve): Change this to an explicit pool once those are + # supported. http://crbug.com/635308 + console = true + main_dex_rules = "//build/android/main_dex_classes.flags" if (defined(invoker.proguard_jar_path)) { @@ -1095,6 +1106,12 @@ invoker.output, ] + if (defined(invoker.use_pool) && invoker.use_pool) { + # TODO(agrieve): Change this to an explicit pool once those are + # supported. http://crbug.com/635308 + console = true + } + rebased_output = rebase_path(invoker.output, root_build_dir) args = [
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni index 6aeabdc..de71733 100644 --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni
@@ -2063,6 +2063,9 @@ } args = [ "--inputs=@FileArg($_dex_arg_key)" ] } + + # http://crbug.com/725224. Speculative fix for bots running out of memory. + use_pool = true } _native_libs_file_arg_dep = ":$build_config_target"
diff --git a/cc/resources/shared_bitmap.cc b/cc/resources/shared_bitmap.cc index 2eb128a..c863995c 100644 --- a/cc/resources/shared_bitmap.cc +++ b/cc/resources/shared_bitmap.cc
@@ -8,6 +8,7 @@ #include <stdint.h> #include "base/logging.h" +#include "base/memory/shared_memory_handle.h" #include "base/numerics/safe_math.h" #include "base/rand_util.h" #include "base/strings/string_number_conversions.h"
diff --git a/cc/resources/shared_bitmap.h b/cc/resources/shared_bitmap.h index 464ac5c6..ac91c35 100644 --- a/cc/resources/shared_bitmap.h +++ b/cc/resources/shared_bitmap.h
@@ -14,6 +14,10 @@ #include "gpu/command_buffer/common/mailbox.h" #include "ui/gfx/geometry/size.h" +namespace base { +class SharedMemoryHandle; +} + namespace cc { typedef gpu::Mailbox SharedBitmapId; @@ -30,6 +34,10 @@ const SharedBitmapId& id() { return id_; } + // Returns the shared memory's handle when the back end is base::SharedMemory. + // Otherwise, this returns an invalid handle. + virtual base::SharedMemoryHandle GetSharedMemoryHandle() const = 0; + // Returns true if the size is valid and false otherwise. static bool SizeInBytes(const gfx::Size& size, size_t* size_in_bytes); // Dies with a CRASH() if the size can not be represented as a positive number
diff --git a/cc/test/test_shared_bitmap_manager.cc b/cc/test/test_shared_bitmap_manager.cc index 604f669..ca4b50f 100644 --- a/cc/test/test_shared_bitmap_manager.cc +++ b/cc/test/test_shared_bitmap_manager.cc
@@ -12,6 +12,7 @@ namespace cc { namespace { + class OwnedSharedBitmap : public SharedBitmap { public: OwnedSharedBitmap(std::unique_ptr<base::SharedMemory> shared_memory, @@ -21,10 +22,26 @@ ~OwnedSharedBitmap() override {} + // SharedBitmap: + base::SharedMemoryHandle GetSharedMemoryHandle() const override { + return shared_memory_->handle(); + } + private: std::unique_ptr<base::SharedMemory> shared_memory_; }; +class UnownedSharedBitmap : public SharedBitmap { + public: + UnownedSharedBitmap(uint8_t* pixels, const SharedBitmapId& id) + : SharedBitmap(pixels, id) {} + + // SharedBitmap: + base::SharedMemoryHandle GetSharedMemoryHandle() const override { + return base::SharedMemoryHandle(); + } +}; + } // namespace TestSharedBitmapManager::TestSharedBitmapManager() {} @@ -48,7 +65,7 @@ if (bitmap_map_.find(id) == bitmap_map_.end()) return nullptr; uint8_t* pixels = static_cast<uint8_t*>(bitmap_map_[id]->memory()); - return base::MakeUnique<SharedBitmap>(pixels, id); + return base::MakeUnique<UnownedSharedBitmap>(pixels, id); } } // namespace cc
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java index a2b232b..f87f1633 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java
@@ -299,7 +299,7 @@ if (currentBackground != null && currentBackground.getConstantState() != null) { Drawable backgroundClone = currentBackground.getConstantState().newDrawable(footerView.getResources()); - newBackground = new LayerDrawable(new Drawable[] {pulse, backgroundClone}); + newBackground = new LayerDrawable(new Drawable[] {backgroundClone, pulse}); } view.setBackground(newBackground);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java index 056449c8..c6587af 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java
@@ -473,7 +473,7 @@ background = background.getConstantState().newDrawable(resources); } - LayerDrawable drawable = new LayerDrawable(new Drawable[] {pulse, background}); + LayerDrawable drawable = new LayerDrawable(new Drawable[] {background, pulse}); view.setBackground(drawable); pulse.start(); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java index 97be0329..8d5c0f97 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java
@@ -936,7 +936,7 @@ ApiCompatibilityUtils.setTextAppearance(labelView, isEnabled ? R.style.PaymentsUiSectionDefaultText : R.style.PaymentsUiSectionDisabledText); - labelView.setText(convertOptionToString(mOption, + labelView.setText(convertOptionToString(mOption, false, /* excludeMainLabel */ mDelegate.isBoldLabelNeeded(OptionSection.this), false /* singleLine */)); labelView.setEnabled(isEnabled); @@ -1063,6 +1063,12 @@ */ private boolean mSetDisplaySummaryInSingleLineInNormalMode = true; + /** + * Indicates whether the summary should be split to display in left and right summary + * text views in {@link DISPLAY_MODE_NORMAL}. + */ + private boolean mSplitSummaryInDisplayModeNormal; + /** Indicates whether the summary is set to R.style.PaymentsUiSectionDescriptiveText. */ private boolean mSummaryInDescriptiveText; @@ -1175,6 +1181,18 @@ mSetDisplaySummaryInSingleLineInNormalMode = singleLine; } + /** + * Specify whether the summary should be split to display under DISPLAY_MODE_NORMAL. + * + * @param splitSummary If true split the display of summary in the left and right + * text views in {@link DISPLAY_MODE_NORMAL}, the summary is + * split into 'label' and the rest('sublabel', 'Tertiary label'). + * Otherwise the entire summary is displayed in the left text view. + */ + public void setSplitSummaryInDisplayModeNormal(boolean splitSummary) { + mSplitSummaryInDisplayModeNormal = splitSummary; + } + /** Updates the View to account for the new {@link SectionInformation} being passed in. */ public void update(SectionInformation information) { mSectionInformation = information; @@ -1292,9 +1310,20 @@ getSummaryLeftTextView(), R.style.PaymentsUiSectionDefaultText); mSummaryInDescriptiveText = false; } - setSummaryText(convertOptionToString(selectedItem, false /* useBoldLabel */, - mSummaryInSingleLine), - null); + // Split summary in DISPLAY_MODE_NORMAL if caller specified. The first part is + // displayed on the left summary text view aligned to the left. The second part is + // displayed on the right summary text view aligned to the right. + boolean splitSummary = + mSplitSummaryInDisplayModeNormal && (mDisplayMode == DISPLAY_MODE_NORMAL); + if (splitSummary) { + setSummaryText(selectedItem.getLabel(), + convertOptionToString(selectedItem, true /* excludeMainLabel */, + false /* useBoldLabel */, mSummaryInSingleLine)); + } else { + setSummaryText(convertOptionToString(selectedItem, false /* excludeMainLabel */, + false /* useBoldLabel */, mSummaryInSingleLine), + null); + } } updateControlLayout(); @@ -1349,17 +1378,20 @@ } } - private CharSequence convertOptionToString( - PaymentOption item, boolean useBoldLabel, boolean singleLine) { - SpannableStringBuilder builder = new SpannableStringBuilder(item.getLabel()); + private CharSequence convertOptionToString(PaymentOption item, boolean excludeMainLabel, + boolean useBoldLabel, boolean singleLine) { + SpannableStringBuilder builder = new SpannableStringBuilder(); + if (!excludeMainLabel) { + builder.append(item.getLabel()); + if (useBoldLabel) { + builder.setSpan( + new StyleSpan(android.graphics.Typeface.BOLD), 0, builder.length(), 0); + } + } + String labelSeparator = singleLine ? getContext().getString(R.string.autofill_address_summary_separator) : "\n"; - if (useBoldLabel) { - builder.setSpan( - new StyleSpan(android.graphics.Typeface.BOLD), 0, builder.length(), 0); - } - if (!TextUtils.isEmpty(item.getSublabel())) { if (builder.length() > 0) builder.append(labelSeparator); builder.append(item.getSublabel()); @@ -1398,10 +1430,18 @@ * Returns the label of the section summary. */ @VisibleForTesting - public TextView getSummaryLabelForTest() { + public TextView getLeftSummaryLabelForTest() { return getSummaryLeftTextView(); } + /** + * Returns the right summary text view. + */ + @VisibleForTesting + public TextView getRightSummaryLabelForTest() { + return getSummaryRightTextView(); + } + /** Returns the number of option labels. */ @VisibleForTesting public int getNumberOfOptionLabelsForTest() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java index d5adeeb..1848ed9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java
@@ -543,6 +543,10 @@ // Display the summary of the selected address in multiple lines on bottom sheet. mShippingAddressSection.setDisplaySummaryInSingleLineInNormalMode(false); + // Display selected shipping option name in the left summary text view and + // the cost in the right summary text view on bottom sheet. + mShippingOptionSection.setSplitSummaryInDisplayModeNormal(true); + // Some sections conditionally allow adding new options. mShippingOptionSection.setCanAddItems(false); mPaymentMethodSection.setCanAddItems(canAddCards);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java index 5c660be..4731c08 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
@@ -313,7 +313,7 @@ } else if (PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION.equals(preference.getKey())) { setUpListPreference(preference, mSite.getProtectedMediaIdentifierPermission()); } else if (PREF_SUBRESOURCE_FILTER_PERMISSION.equals(preference.getKey())) { - setUpListPreference(preference, mSite.getSubresourceFilterPermission()); + setUpSubresourceFilterPreference(preference); } if (permissionPreferenceKeys.contains(preference.getKey())) { @@ -497,6 +497,37 @@ } /** + * Updates the subresource filter list preference based on subresource filter activation. This + * has some custom behavior. + * 1. If the site is filtering, the permission should show up even if it is set as the default + * (e.g. |preference| is null). + * 2. The BLOCK string is custom. + */ + private void setUpSubresourceFilterPreference(Preference preference) { + // If the subresource filter is activated, then this site will have resources filtered + // unless there is an explicit permission disallowing the filtering. + boolean subresourceFilterActivated = WebsitePreferenceBridge.getSubresourceFilterActivated( + mSite.getAddress().getOrigin()); + ContentSetting permission = mSite.getSubresourceFilterPermission(); + + // If |permission| is null, there is no explicit (non-default) permission set for this site. + // However, if the filtering is activated, we still want to show the permission as BLOCK. + if (permission == null && !subresourceFilterActivated) { + setUpListPreference(preference, null); + return; + } + setUpListPreference(preference, permission == null ? ContentSetting.BLOCK : permission); + + // The subresource filter permission has a custom BLOCK string. + ListPreference listPreference = (ListPreference) preference; + Resources res = getResources(); + listPreference.setEntries( + new String[] {res.getString(R.string.website_settings_permissions_allow), + res.getString(R.string.subresource_filter_permission_block)}); + listPreference.setValueIndex(permission == ContentSetting.ALLOW ? 0 : 1); + } + + /** * Returns true if the current host matches the default search engine host and location for the * default search engine is being granted via x-geo. * @param context The current context.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java index df376b27..d0a7c40 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.preferences.website; +import org.chromium.chrome.browser.ContentSettingsType; import org.chromium.chrome.browser.util.MathUtils; import java.io.Serializable; @@ -375,9 +376,15 @@ * Sets the Subresource Filter permission. */ public void setSubresourceFilterPermission(ContentSetting value) { - if (mSubresourceFilterException != null) { - mSubresourceFilterException.setContentSetting(value); + // It is possible to set the permission without having an existing exception, because we can + // show the BLOCK state even when this permission is set to the default. In that case, just + // set an exception now to BLOCK to enable changing the permission. + if (mSubresourceFilterException == null) { + setSubresourceFilterException(new ContentSettingException( + ContentSettingsType.CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, + getAddress().getOrigin(), ContentSetting.BLOCK, "")); } + mSubresourceFilterException.setContentSetting(value); } /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java index fcbba04d..d8740f6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java
@@ -240,6 +240,14 @@ nativeSetDSEGeolocationSetting(setting); } + /** + * Returns whether this origin is activated for subresource filtering, and will have + * resources filtered unless they are explicitly allowed via a permission. + */ + public static boolean getSubresourceFilterActivated(String origin) { + return nativeGetSubresourceFilterActivated(origin); + } + private static native void nativeGetGeolocationOrigins(Object list, boolean managedOnly); static native int nativeGetGeolocationSettingForOrigin( String origin, String embedder, boolean isIncognito); @@ -284,4 +292,5 @@ String origin, boolean isIncognito); private static native boolean nativeGetDSEGeolocationSetting(); private static native void nativeSetDSEGeolocationSetting(boolean setting); + private static native boolean nativeGetSubresourceFilterActivated(String origin); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarPhone.java index 67a74465..3550acc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarPhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarPhone.java
@@ -446,6 +446,8 @@ setContentDescription( getResources().getString(R.string.bottom_sheet_accessibility_toolbar)); } + + mBottomSheet.showHelpBubbleIfNecessary(); } /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java index 425ecda..9747c715 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java
@@ -41,7 +41,6 @@ import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; import org.chromium.chrome.browser.ntp.NativePageFactory; import org.chromium.chrome.browser.tab.Tab; -import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.toolbar.ActionModeController.ActionBarDelegate; @@ -227,9 +226,6 @@ /** Whether the sheet is currently open. */ private boolean mIsSheetOpen; - /** Whether the root view has been laid out at least once. **/ - private boolean mHasRootLayoutOccurred; - /** The activity displaying the bottom sheet. */ private ChromeActivity mActivity; @@ -557,19 +553,6 @@ */ public void setTabModelSelector(TabModelSelector tabModelSelector) { mTabModelSelector = tabModelSelector; - - if (mHasRootLayoutOccurred && mTabModelSelector.isTabStateInitialized()) { - showHelpBubbleIfNecessary(); - } else if (!mTabModelSelector.isTabStateInitialized()) { - mTabModelSelector.addObserver(new EmptyTabModelSelectorObserver() { - @Override - public void onTabStateInitialized() { - if (mHasRootLayoutOccurred) showHelpBubbleIfNecessary(); - mTabModelSelector.removeObserver(this); - } - }); - } - mNtpController.setTabModelSelector(tabModelSelector); } @@ -664,13 +647,6 @@ cancelAnimation(); setSheetState(mCurrentState, false); } - - if (!mHasRootLayoutOccurred && mTabModelSelector != null - && mTabModelSelector.isTabStateInitialized()) { - showHelpBubbleIfNecessary(); - } - - mHasRootLayoutOccurred = true; } }); @@ -1344,13 +1320,11 @@ && !blockPeekingSwipes; } - private void showHelpBubbleIfNecessary() { - // The help bubble should only be shown after layout has occurred so that the anchor view is - // in the correct position on the screen. It also must be shown after the tab state has been - // initialized so that any tab that auto-opens the BottomSheet has had a chance to do so. - assert mHasRootLayoutOccurred && mTabModelSelector != null - && mTabModelSelector.isTabStateInitialized(); - + /** + * Show the in-product help bubble for the {@link BottomSheet} if it has not already been shown. + * This method must be called after the toolbar has had at least one layout pass. + */ + public void showHelpBubbleIfNecessary() { // If FRE is not complete, the FRE screen is likely covering ChromeTabbedActivity so the // help bubble should not be shown. Also skip showing if the bottom sheet is already open. if (!FirstRunStatus.getFirstRunFlowComplete() || mCurrentState != SHEET_STATE_PEEK) return;
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd index c4bdf29..45bedbe7 100644 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -741,6 +741,9 @@ <message name="IDS_SUBRESOURCE_FILTER_PERMISSION_TITLE" desc="Title for the subresource filter permission [CHAR-LIMIT=32]" translateable="false"> Subresource Filter </message> + <message name="IDS_SUBRESOURCE_FILTER_PERMISSION_BLOCK" desc="The Blocked string for the subresource filter permission" translateable="false"> + Block (subresource filter) + </message> <message name="IDS_PUSH_NOTIFICATIONS_PERMISSION_TITLE" desc="Title for the permission for showing push notifications [CHAR-LIMIT=32]"> Notifications </message>
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni index 1232e38..b27c70c 100644 --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni
@@ -2,6 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//components/offline_pages/features/features.gni") + chrome_java_sources = [ "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java", @@ -1806,7 +1808,7 @@ ] # Only used for testing, should not be shipped to end users. -if (!is_official_build) { +if (enable_offline_pages_harness) { chrome_java_sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ] chrome_test_java_sources += [ "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageSavePageLaterEvaluationTest.java" ] }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestAbortTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestAbortTest.java index 024d116..77e62fb 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestAbortTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestAbortTest.java
@@ -12,6 +12,7 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; +import org.chromium.base.test.util.RetryOnFailure; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.autofill.AutofillTestHelper; @@ -53,6 +54,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testAbortBeforePayClicked() throws InterruptedException, ExecutionException, TimeoutException { mPaymentRequestTestRule.triggerUIAndWait(mPaymentRequestTestRule.getReadyToPay()); @@ -64,6 +66,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testAbortWhileUnmaskingCard() throws InterruptedException, ExecutionException, TimeoutException { mPaymentRequestTestRule.triggerUIAndWait(mPaymentRequestTestRule.getReadyToPay());
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestMetricsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestMetricsTest.java index 9149eb73..3b5e81b84 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestMetricsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestMetricsTest.java
@@ -23,6 +23,7 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.DisabledTest; import org.chromium.base.test.util.Feature; +import org.chromium.base.test.util.RetryOnFailure; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.ChromeSwitches; @@ -69,6 +70,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testSuccessCheckoutFunnel() throws InterruptedException, ExecutionException, TimeoutException { // Initiate a payment request. @@ -109,6 +111,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testAbortMetrics_AbortedByUser_CancelButton() throws InterruptedException, ExecutionException, TimeoutException { mPaymentRequestTestRule.triggerUIAndWait("ccBuy", mPaymentRequestTestRule.getReadyToPay()); @@ -139,6 +142,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testAbortMetrics_AbortedByUser_XButton() throws InterruptedException, ExecutionException, TimeoutException { mPaymentRequestTestRule.triggerUIAndWait("ccBuy", mPaymentRequestTestRule.getReadyToPay()); @@ -160,6 +164,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testAbortMetrics_AbortedByUser_BackButton() throws InterruptedException, ExecutionException, TimeoutException { mPaymentRequestTestRule.triggerUIAndWait("ccBuy", mPaymentRequestTestRule.getReadyToPay()); @@ -187,6 +192,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testAbortMetrics_AbortedByUser_TabClosed() throws InterruptedException, ExecutionException, TimeoutException { mPaymentRequestTestRule.triggerUIAndWait("ccBuy", mPaymentRequestTestRule.getReadyToPay()); @@ -208,6 +214,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testAbortMetrics_AbortedByMerchant() throws InterruptedException, ExecutionException, TimeoutException { mPaymentRequestTestRule.triggerUIAndWait("ccBuy", mPaymentRequestTestRule.getReadyToPay()); @@ -230,6 +237,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testMetrics_NoMatchingPaymentMethod() throws InterruptedException, ExecutionException, TimeoutException { // Android Pay is supported but no instruments are present. @@ -258,6 +266,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testMetrics_NoSupportedPaymentMethod() throws InterruptedException, ExecutionException, TimeoutException { mPaymentRequestTestRule.openPageAndClickNodeAndWait( @@ -281,6 +290,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testSelectedPaymentMethod_CreditCard() throws InterruptedException, ExecutionException, TimeoutException { // Complete a Payment Request with a credit card. @@ -302,6 +312,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testSelectedPaymentMethod_AndroidPay() throws InterruptedException, ExecutionException, TimeoutException { // Complete a Payment Request with Android Pay. @@ -322,6 +333,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure public void testMetrics_SkippedShow() throws InterruptedException, ExecutionException, TimeoutException { // Complete a Payment Request with Android Pay. @@ -348,6 +360,7 @@ @Test @MediumTest @Feature({"Payments"}) + @RetryOnFailure @CommandLineFlags.Add({"disable-features=" + ChromeFeatureList.WEB_PAYMENTS_SINGLE_APP_UI_SKIP}) public void testMetrics_SkippedShow_Disabled() throws InterruptedException, ExecutionException, TimeoutException {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShippingAddressAndOptionTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShippingAddressAndOptionTest.java index 299b6fc3..903ebe6d 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShippingAddressAndOptionTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShippingAddressAndOptionTest.java
@@ -74,8 +74,12 @@ // Make sure shipping option summary on bottom sheet is displayed in a single line // as expected. - Assert.assertEquals("Free global shipping, $0.00", - mPaymentRequestTestRule.getShippingOptionSummaryLabel()); + Assert.assertEquals( + "Free global shipping", mPaymentRequestTestRule.getShippingOptionSummaryLabel()); + + // Make sure shipping cost is displayed in the right summary text view. + Assert.assertEquals( + "$0.00", mPaymentRequestTestRule.getShippingOptionCostSummaryLabelOnBottomSheet()); } /** Verifies that the shipping address format in fullsheet mode is as expected. */
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestCommon.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestCommon.java index e25e1e4..fab95e18 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestCommon.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestCommon.java
@@ -404,7 +404,7 @@ @Override public String call() { return mUI.getShippingAddressSectionForTest() - .getSummaryLabelForTest() + .getLeftSummaryLabelForTest() .getText() .toString(); } @@ -416,7 +416,19 @@ @Override public String call() { return mUI.getShippingOptionSectionForTest() - .getSummaryLabelForTest() + .getLeftSummaryLabelForTest() + .getText() + .toString(); + } + }); + } + + protected String getShippingOptionCostSummaryOnBottomSheet() throws ExecutionException { + return ThreadUtils.runOnUiThreadBlocking(new Callable<String>() { + @Override + public String call() { + return mUI.getShippingOptionSectionForTest() + .getRightSummaryLabelForTest() .getText() .toString(); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java index 19865e6..dfd0fef 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java
@@ -274,6 +274,13 @@ return mTestCommon.getShippingOptionSummary(); } + /** + * Returns the cost text of the shipping option section on the bottom sheet. + */ + protected String getShippingOptionCostSummaryLabelOnBottomSheet() throws ExecutionException { + return mTestCommon.getShippingOptionCostSummaryOnBottomSheet(); + } + /** Returns the focused view in the card editor view. */ protected View getCardEditorFocusedView() { return mTestCommon.getCardEditorFocusedView();
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index f01e9e4..33b1773 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -4343,7 +4343,7 @@ ] # Used for testing only, should not be shipped to end users. - if (!is_official_build) { + if (enable_offline_pages_harness) { sources += [ "../android/java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ] } jni_package = "chrome"
diff --git a/chrome/browser/android/preferences/website_preference_bridge.cc b/chrome/browser/android/preferences/website_preference_bridge.cc index e8585d9..af0537d 100644 --- a/chrome/browser/android/preferences/website_preference_bridge.cc +++ b/chrome/browser/android/preferences/website_preference_bridge.cc
@@ -823,6 +823,16 @@ return search_helper->SetDSEGeolocationSetting(setting); } +static jboolean GetSubresourceFilterActivated( + JNIEnv* env, + const JavaParamRef<jclass>& clazz, + const JavaParamRef<jstring>& jorigin) { + GURL url(ConvertJavaStringToUTF8(env, jorigin)); + return !!GetHostContentSettingsMap(false)->GetWebsiteSetting( + url, GURL(), CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER_DATA, std::string(), + nullptr); +} + // Register native methods bool RegisterWebsitePreferenceBridge(JNIEnv* env) { return RegisterNativesImpl(env);
diff --git a/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc b/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc index b0ab216..f6f5635 100644 --- a/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc +++ b/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
@@ -1017,6 +1017,9 @@ // CrossProcessFrameConnector::TransformPointToRootCoordSpace. IN_PROC_BROWSER_TEST_F(WebViewContextMenuInteractiveTest, ContextMenuParamCoordinates) { + if (base::FeatureList::IsEnabled(features::kGuestViewCrossProcessFrames)) + return; + TestHelper("testCoordinates", "web_view/context_menus/coordinates", NO_TEST_SERVER); ASSERT_TRUE(guest_web_contents());
diff --git a/chrome/browser/global_keyboard_shortcuts_cocoa_mac.mm b/chrome/browser/global_keyboard_shortcuts_cocoa_mac.mm index 88543bc4..e47c2648 100644 --- a/chrome/browser/global_keyboard_shortcuts_cocoa_mac.mm +++ b/chrome/browser/global_keyboard_shortcuts_cocoa_mac.mm
@@ -17,40 +17,42 @@ const std::vector<KeyboardShortcutData>& GetWindowKeyboardShortcutTable() { // clang-format off CR_DEFINE_STATIC_LOCAL(std::vector<KeyboardShortcutData>, result, ({ - //cmd shift cntrl option vkeycode char command - //--- ----- ----- ------ -------- ---- ------- + //cmd shift cntrl option vkeycode char command + //--- ----- ----- ------ -------- ---- ------- // '{' / '}' characters should be matched earlier than virtual key codes // (so we can match alt-8 as '{' on German keyboards). - {true, false, false, false, 0, '}', IDC_SELECT_NEXT_TAB}, - {true, false, false, false, 0, '{', IDC_SELECT_PREVIOUS_TAB}, - {false, false, true, false, kVK_PageDown, 0, IDC_SELECT_NEXT_TAB}, - {false, false, true, false, kVK_Tab, 0, IDC_SELECT_NEXT_TAB}, - {false, false, true, false, kVK_PageUp, 0, IDC_SELECT_PREVIOUS_TAB}, - {false, true, true, false, kVK_Tab, 0, IDC_SELECT_PREVIOUS_TAB}, + {true, false, false, false, 0, '}', IDC_SELECT_NEXT_TAB}, + {true, false, false, false, 0, '{', IDC_SELECT_PREVIOUS_TAB}, + {true, true, false, false, kVK_ANSI_RightBracket, 0, IDC_SELECT_NEXT_TAB}, + {true, true, false, false, kVK_ANSI_LeftBracket, 0, IDC_SELECT_PREVIOUS_TAB}, + {false, false, true, false, kVK_PageDown, 0, IDC_SELECT_NEXT_TAB}, + {false, false, true, false, kVK_Tab, 0, IDC_SELECT_NEXT_TAB}, + {false, false, true, false, kVK_PageUp, 0, IDC_SELECT_PREVIOUS_TAB}, + {false, true, true, false, kVK_Tab, 0, IDC_SELECT_PREVIOUS_TAB}, - //cmd shift cntrl option vkeycode char command - //--- ----- ----- ------ -------- ---- ------- + //cmd shift cntrl option vkeycode char command + //--- ----- ----- ------ -------- ---- ------- // Cmd-0..8 select the nth tab, with cmd-9 being "last tab". - {true, false, false, false, kVK_ANSI_1, 0, IDC_SELECT_TAB_0}, - {true, false, false, false, kVK_ANSI_Keypad1, 0, IDC_SELECT_TAB_0}, - {true, false, false, false, kVK_ANSI_2, 0, IDC_SELECT_TAB_1}, - {true, false, false, false, kVK_ANSI_Keypad2, 0, IDC_SELECT_TAB_1}, - {true, false, false, false, kVK_ANSI_3, 0, IDC_SELECT_TAB_2}, - {true, false, false, false, kVK_ANSI_Keypad3, 0, IDC_SELECT_TAB_2}, - {true, false, false, false, kVK_ANSI_4, 0, IDC_SELECT_TAB_3}, - {true, false, false, false, kVK_ANSI_Keypad4, 0, IDC_SELECT_TAB_3}, - {true, false, false, false, kVK_ANSI_5, 0, IDC_SELECT_TAB_4}, - {true, false, false, false, kVK_ANSI_Keypad5, 0, IDC_SELECT_TAB_4}, - {true, false, false, false, kVK_ANSI_6, 0, IDC_SELECT_TAB_5}, - {true, false, false, false, kVK_ANSI_Keypad6, 0, IDC_SELECT_TAB_5}, - {true, false, false, false, kVK_ANSI_7, 0, IDC_SELECT_TAB_6}, - {true, false, false, false, kVK_ANSI_Keypad7, 0, IDC_SELECT_TAB_6}, - {true, false, false, false, kVK_ANSI_8, 0, IDC_SELECT_TAB_7}, - {true, false, false, false, kVK_ANSI_Keypad8, 0, IDC_SELECT_TAB_7}, - {true, false, false, false, kVK_ANSI_9, 0, IDC_SELECT_LAST_TAB}, - {true, false, false, false, kVK_ANSI_Keypad9, 0, IDC_SELECT_LAST_TAB}, - {true, true, false, false, kVK_ANSI_M, 0, IDC_SHOW_AVATAR_MENU}, - {true, false, false, true, kVK_ANSI_L, 0, IDC_SHOW_DOWNLOADS}, + {true, false, false, false, kVK_ANSI_1, 0, IDC_SELECT_TAB_0}, + {true, false, false, false, kVK_ANSI_Keypad1, 0, IDC_SELECT_TAB_0}, + {true, false, false, false, kVK_ANSI_2, 0, IDC_SELECT_TAB_1}, + {true, false, false, false, kVK_ANSI_Keypad2, 0, IDC_SELECT_TAB_1}, + {true, false, false, false, kVK_ANSI_3, 0, IDC_SELECT_TAB_2}, + {true, false, false, false, kVK_ANSI_Keypad3, 0, IDC_SELECT_TAB_2}, + {true, false, false, false, kVK_ANSI_4, 0, IDC_SELECT_TAB_3}, + {true, false, false, false, kVK_ANSI_Keypad4, 0, IDC_SELECT_TAB_3}, + {true, false, false, false, kVK_ANSI_5, 0, IDC_SELECT_TAB_4}, + {true, false, false, false, kVK_ANSI_Keypad5, 0, IDC_SELECT_TAB_4}, + {true, false, false, false, kVK_ANSI_6, 0, IDC_SELECT_TAB_5}, + {true, false, false, false, kVK_ANSI_Keypad6, 0, IDC_SELECT_TAB_5}, + {true, false, false, false, kVK_ANSI_7, 0, IDC_SELECT_TAB_6}, + {true, false, false, false, kVK_ANSI_Keypad7, 0, IDC_SELECT_TAB_6}, + {true, false, false, false, kVK_ANSI_8, 0, IDC_SELECT_TAB_7}, + {true, false, false, false, kVK_ANSI_Keypad8, 0, IDC_SELECT_TAB_7}, + {true, false, false, false, kVK_ANSI_9, 0, IDC_SELECT_LAST_TAB}, + {true, false, false, false, kVK_ANSI_Keypad9, 0, IDC_SELECT_LAST_TAB}, + {true, true, false, false, kVK_ANSI_M, 0, IDC_SHOW_AVATAR_MENU}, + {true, false, false, true, kVK_ANSI_L, 0, IDC_SHOW_DOWNLOADS}, })); // clang-format on return result;
diff --git a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc index f9a93716..de309085 100644 --- a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc +++ b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
@@ -149,37 +149,88 @@ offline_pages::kOffliningRecentPagesFeature); } -void RegisterRecentTabProvider(OfflinePageModel* offline_page_model, - RequestCoordinator* request_coordinator, - ContentSuggestionsService* service, - PrefService* pref_service) { +void RegisterRecentTabProviderIfEnabled(ContentSuggestionsService* service, + Profile* profile, + OfflinePageModel* offline_page_model) { + if (!IsRecentTabProviderEnabled()) { + return; + } + + RequestCoordinator* request_coordinator = + RequestCoordinatorFactory::GetForBrowserContext(profile); offline_pages::DownloadUIAdapter* ui_adapter = offline_pages:: RecentTabsUIAdapterDelegate::GetOrCreateRecentTabsUIAdapter( offline_page_model, request_coordinator); auto provider = base::MakeUnique<RecentTabSuggestionsProvider>( - service, ui_adapter, pref_service); + service, ui_adapter, profile->GetPrefs()); service->RegisterProvider(std::move(provider)); + + offline_pages::PrefetchService* prefetch_service = + offline_pages::PrefetchServiceFactory::GetForBrowserContext(profile); + prefetch_service->ObserveContentSuggestionsService(service); } #endif // BUILDFLAG(ENABLE_OFFLINE_PAGES) #if defined(OS_ANDROID) -void RegisterDownloadsProvider(OfflinePageModel* offline_page_model, - DownloadManager* download_manager, - DownloadHistory* download_history, - ContentSuggestionsService* service, - PrefService* pref_service) { +bool AreAssetDownloadsEnabled() { + return !IsChromeHomeEnabled() && + base::FeatureList::IsEnabled( + features::kAssetDownloadSuggestionsFeature); +} + +bool AreOfflinePageDownloadsEnabled() { + return !IsChromeHomeEnabled() && + base::FeatureList::IsEnabled( + features::kOfflinePageDownloadSuggestionsFeature); +} + +bool IsDownloadsProviderEnabled() { + return AreAssetDownloadsEnabled() || AreOfflinePageDownloadsEnabled(); +} + +void RegisterDownloadsProviderIfEnabled(ContentSuggestionsService* service, + Profile* profile, + OfflinePageModel* offline_page_model) { + if (!IsDownloadsProviderEnabled()) { + return; + } + + offline_page_model = + AreOfflinePageDownloadsEnabled() ? offline_page_model : nullptr; + DownloadManager* download_manager = + AreAssetDownloadsEnabled() + ? content::BrowserContext::GetDownloadManager(profile) + : nullptr; + DownloadCoreService* download_core_service = + DownloadCoreServiceFactory::GetForBrowserContext(profile); + DownloadHistory* download_history = + download_core_service->GetDownloadHistory(); + auto provider = base::MakeUnique<DownloadSuggestionsProvider>( service, offline_page_model, download_manager, download_history, - pref_service, base::MakeUnique<base::DefaultClock>()); + profile->GetPrefs(), base::MakeUnique<base::DefaultClock>()); service->RegisterProvider(std::move(provider)); } #endif // OS_ANDROID -void RegisterBookmarkProvider(BookmarkModel* bookmark_model, - ContentSuggestionsService* service) { +bool IsBookmarkProviderEnabled(BookmarkModel* bookmark_model) { + return base::FeatureList::IsEnabled( + ntp_snippets::kBookmarkSuggestionsFeature) && + bookmark_model && // |bookmark_model| can be null in tests. + !IsChromeHomeEnabled(); +} + +void RegisterBookmarkProviderIfEnabled(ContentSuggestionsService* service, + Profile* profile) { + BookmarkModel* bookmark_model = + BookmarkModelFactory::GetForBrowserContext(profile); + if (!IsBookmarkProviderEnabled(bookmark_model)) { + return; + } + auto provider = base::MakeUnique<BookmarkSuggestionsProvider>(service, bookmark_model); service->RegisterProvider(std::move(provider)); @@ -193,24 +244,40 @@ base::FeatureList::IsEnabled(chrome::android::kPhysicalWebFeature); } -void RegisterPhysicalWebPageProvider( +void RegisterPhysicalWebPageProviderIfEnabled( ContentSuggestionsService* service, - PhysicalWebDataSource* physical_web_data_source, - PrefService* pref_service) { + Profile* profile) { + if (!IsPhysicalWebPageProviderEnabled()) { + return; + } + + PhysicalWebDataSource* physical_web_data_source = + g_browser_process->GetPhysicalWebDataSource(); auto provider = base::MakeUnique<PhysicalWebPageSuggestionsProvider>( - service, physical_web_data_source, pref_service); + service, physical_web_data_source, profile->GetPrefs()); service->RegisterProvider(std::move(provider)); } #endif // OS_ANDROID -void RegisterArticleProvider(SigninManagerBase* signin_manager, - OAuth2TokenService* token_service, - ContentSuggestionsService* service, - LanguageModel* language_model, - UserClassifier* user_classifier, - PrefService* pref_service, - Profile* profile) { +bool IsArticleProviderEnabled() { + return base::FeatureList::IsEnabled(ntp_snippets::kArticleSuggestionsFeature); +} + +void RegisterArticleProviderIfEnabled(ContentSuggestionsService* service, + Profile* profile, + SigninManagerBase* signin_manager, + UserClassifier* user_classifier) { + if (!IsArticleProviderEnabled()) { + return; + } + + PrefService* pref_service = profile->GetPrefs(); + OAuth2TokenService* token_service = + ProfileOAuth2TokenServiceFactory::GetForProfile(profile); + LanguageModel* language_model = + LanguageModelFactory::GetInstance()->GetForBrowserContext(profile); + scoped_refptr<net::URLRequestContextGetter> request_context = content::BrowserContext::GetDefaultStoragePartition(profile) ->GetURLRequestContext(); @@ -258,13 +325,24 @@ service->RegisterProvider(std::move(provider)); } -void RegisterForeignSessionsProvider(SyncService* sync_service, - ContentSuggestionsService* service, - PrefService* pref_service) { +bool IsForeignSessionsProviderEnabled() { + return base::FeatureList::IsEnabled( + ntp_snippets::kForeignSessionsSuggestionsFeature); +} + +void RegisterForeignSessionsProviderIfEnabled( + ContentSuggestionsService* service, + Profile* profile) { + if (!IsForeignSessionsProviderEnabled()) { + return; + } + + SyncService* sync_service = + ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile); std::unique_ptr<TabDelegateSyncAdapter> sync_adapter = base::MakeUnique<TabDelegateSyncAdapter>(sync_service); auto provider = base::MakeUnique<ForeignSessionsSuggestionsProvider>( - service, std::move(sync_adapter), pref_service); + service, std::move(sync_adapter), profile->GetPrefs()); service->RegisterProvider(std::move(provider)); } @@ -323,6 +401,13 @@ pref_service, base::MakeUnique<base::DefaultClock>()); auto* user_classifier_raw = user_classifier.get(); +#if BUILDFLAG(ENABLE_OFFLINE_PAGES) + OfflinePageModel* offline_page_model = + OfflinePageModelFactory::GetForBrowserContext(profile); +#else + OfflinePageModel* offline_page_model = nullptr; +#endif // BUILDFLAG(ENABLE_OFFLINE_PAGES) + // Create the RemoteSuggestionsScheduler. PersistentScheduler* persistent_scheduler = nullptr; #if defined(OS_ANDROID) @@ -347,76 +432,19 @@ pref_service, std::move(category_ranker), std::move(user_classifier), std::move(scheduler)); + RegisterArticleProviderIfEnabled(service, profile, signin_manager, + user_classifier_raw); + RegisterBookmarkProviderIfEnabled(service, profile); + RegisterForeignSessionsProviderIfEnabled(service, profile); + +#if defined(OS_ANDROID) + RegisterDownloadsProviderIfEnabled(service, profile, offline_page_model); + RegisterPhysicalWebPageProviderIfEnabled(service, profile); +#endif // OS_ANDROID + #if BUILDFLAG(ENABLE_OFFLINE_PAGES) - OfflinePageModel* offline_page_model = - OfflinePageModelFactory::GetForBrowserContext(profile); - if (IsRecentTabProviderEnabled()) { - RequestCoordinator* request_coordinator = - RequestCoordinatorFactory::GetForBrowserContext(profile); - RegisterRecentTabProvider(offline_page_model, request_coordinator, service, - pref_service); - } - - offline_pages::PrefetchService* prefetch_service = - offline_pages::PrefetchServiceFactory::GetForBrowserContext(profile); - prefetch_service->ObserveContentSuggestionsService(service); -#endif // BUILDFLAG(ENABLE_OFFLINE_PAGES) - -#if defined(OS_ANDROID) - bool show_asset_downloads = - !IsChromeHomeEnabled() && - base::FeatureList::IsEnabled(features::kAssetDownloadSuggestionsFeature); - bool show_offline_page_downloads = - !IsChromeHomeEnabled() && - base::FeatureList::IsEnabled( - features::kOfflinePageDownloadSuggestionsFeature); - if (show_asset_downloads || show_offline_page_downloads) { - DownloadManager* download_manager = - content::BrowserContext::GetDownloadManager(profile); - DownloadCoreService* download_core_service = - DownloadCoreServiceFactory::GetForBrowserContext(profile); - DownloadHistory* download_history = - download_core_service->GetDownloadHistory(); - RegisterDownloadsProvider( - show_offline_page_downloads ? offline_page_model : nullptr, - show_asset_downloads ? download_manager : nullptr, download_history, - service, pref_service); - } -#endif // OS_ANDROID - - // |bookmark_model| can be null in tests. - BookmarkModel* bookmark_model = - BookmarkModelFactory::GetForBrowserContext(profile); - if (base::FeatureList::IsEnabled(ntp_snippets::kBookmarkSuggestionsFeature) && - bookmark_model && !IsChromeHomeEnabled()) { - RegisterBookmarkProvider(bookmark_model, service); - } - -#if defined(OS_ANDROID) - if (IsPhysicalWebPageProviderEnabled()) { - PhysicalWebDataSource* physical_web_data_source = - g_browser_process->GetPhysicalWebDataSource(); - RegisterPhysicalWebPageProvider(service, physical_web_data_source, - pref_service); - } -#endif // OS_ANDROID - - if (base::FeatureList::IsEnabled(ntp_snippets::kArticleSuggestionsFeature)) { - OAuth2TokenService* token_service = - ProfileOAuth2TokenServiceFactory::GetForProfile(profile); - LanguageModel* language_model = - LanguageModelFactory::GetInstance()->GetForBrowserContext(profile); - RegisterArticleProvider(signin_manager, token_service, service, - language_model, user_classifier_raw, pref_service, - profile); - } - - if (base::FeatureList::IsEnabled( - ntp_snippets::kForeignSessionsSuggestionsFeature)) { - SyncService* sync_service = - ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile); - RegisterForeignSessionsProvider(sync_service, service, pref_service); - } + RegisterRecentTabProviderIfEnabled(service, profile, offline_page_model); +#endif return service;
diff --git a/chrome/browser/resources/omnibox/omnibox.html b/chrome/browser/resources/omnibox/omnibox.html index aff0ab5..3f34ae2 100644 --- a/chrome/browser/resources/omnibox/omnibox.html +++ b/chrome/browser/resources/omnibox/omnibox.html
@@ -6,7 +6,9 @@ <link rel="stylesheet" href="chrome://resources/css/text_defaults.css"> <link rel="stylesheet" href="omnibox.css"> <script src="chrome://resources/js/cr.js"></script> + <script src="chrome://resources/js/mojo_bindings.js"></script> <script src="chrome://resources/js/util.js"></script> + <script src="chrome/browser/ui/webui/omnibox/omnibox.mojom.js"></script> <script src="omnibox.js"></script> </head> <body>
diff --git a/chrome/browser/resources/omnibox/omnibox.js b/chrome/browser/resources/omnibox/omnibox.js index 2570deb..6e82ebf 100644 --- a/chrome/browser/resources/omnibox/omnibox.js +++ b/chrome/browser/resources/omnibox/omnibox.js
@@ -106,7 +106,7 @@ * @const */ var PROPERTY_OUTPUT_ORDER = [ - new PresentationInfoRecord('Provider', '', 'provider_name', true, + new PresentationInfoRecord('Provider', '', 'providerName', true, 'The AutocompleteProvider suggesting this result.'), new PresentationInfoRecord('Type', '', 'type', true, 'The type of the result.'), @@ -115,7 +115,7 @@ new PresentationInfoRecord('Contents', '', 'contents', true, 'The text that is presented identifying the result.'), new PresentationInfoRecord( - 'Can Be Default', '', 'allowed_to_be_default_match', false, + 'Can Be Default', '', 'allowedToBeDefaultMatch', false, 'A green checkmark indicates that the result can be the default ' + 'match (i.e., can be the match that pressing enter in the omnibox ' + 'navigates to).'), @@ -123,18 +123,18 @@ 'A green checkmark indicates that the result has been bookmarked.'), new PresentationInfoRecord('Description', '', 'description', false, 'The page title of the result.'), - new PresentationInfoRecord('URL', '', 'destination_url', true, + new PresentationInfoRecord('URL', '', 'destinationUrl', true, 'The URL for the result.'), - new PresentationInfoRecord('Fill Into Edit', '', 'fill_into_edit', false, + new PresentationInfoRecord('Fill Into Edit', '', 'fillIntoEdit', false, 'The text shown in the omnibox when the result is selected.'), new PresentationInfoRecord( - 'Inline Autocompletion', '', 'inline_autocompletion', false, + 'Inline Autocompletion', '', 'inlineAutocompletion', false, 'The text shown in the omnibox as a blue highlight selection ' + 'following the cursor, if this match is shown inline.'), new PresentationInfoRecord('Del', '', 'deletable', false, 'A green checkmark indicates that the result can be deleted from ' + 'the visit history.'), - new PresentationInfoRecord('Prev', '', 'from_previous', false, ''), + new PresentationInfoRecord('Prev', '', 'fromPrevious', false, ''), new PresentationInfoRecord( 'Tran', 'http://code.google.com/codesearch#OAMlx_jo-ck/src/content/public/' + @@ -142,11 +142,11 @@ 'transition', false, 'How the user got to the result.'), new PresentationInfoRecord( - 'Done', '', 'provider_done', false, + 'Done', '', 'providerDone', false, 'A green checkmark indicates that the provider is done looking for ' + 'more results.'), new PresentationInfoRecord( - 'Associated Keyword', '', 'associated_keyword', false, + 'Associated Keyword', '', 'associatedKeyword', false, 'If non-empty, a "press tab to search" hint will be shown and will ' + 'engage this keyword.'), new PresentationInfoRecord( @@ -157,14 +157,14 @@ 'The number of matches that have been marked as duplicates of this ' + 'match.'), new PresentationInfoRecord( - 'Additional Info', '', 'additional_info', false, + 'Additional Info', '', 'additionalInfo', false, 'Provider-specific information about the result.') ]; /** * Returns an HTML Element of type table row that contains the * headers we'll use for labeling the columns. If we're in - * detailed_mode, we use all the headers. If not, we only use ones + * detailedMode, we use all the headers. If not, we only use ones * marked displayAlways. */ function createAutocompleteResultTableHeader() { @@ -203,9 +203,9 @@ propertyName) { var cell = document.createElement('td'); if (propertyName in autocompleteSuggestion) { - if (propertyName == 'additional_info') { - // |additional_info| embeds a two-column table of provider-specific data - // within this cell. |additional_info| is an array of + if (propertyName == 'additionalInfo') { + // |additionalInfo| embeds a two-column table of provider-specific data + // within this cell. |additionalInfo| is an array of // AutocompleteAdditionalInfo. var additionalInfoTable = document.createElement('table'); for (var i = 0; i < autocompleteSuggestion[propertyName].length; i++) { @@ -281,18 +281,18 @@ if (inDetailedMode || showIncompleteResults) { var p1 = document.createElement('p'); p1.textContent = 'elapsed time = ' + - result.time_since_omnibox_started_ms + 'ms'; + result.timeSinceOmniboxStartedMs + 'ms'; output.appendChild(p1); var p2 = document.createElement('p'); p2.textContent = 'all providers done = ' + result.done; output.appendChild(p2); var p3 = document.createElement('p'); p3.textContent = 'host = ' + result.host; - if ('is_typed_host' in result) { - // Only output the is_typed_host information if available. (It may + if ('isTypedHost' in result) { + // Only output the isTypedHost information if available. (It may // be missing if the history database lookup failed.) - p3.textContent = p3.textContent + ' has is_typed_host = ' + - result.is_typed_host; + p3.textContent = p3.textContent + ' has isTypedHost = ' + + result.isTypedHost; } output.appendChild(p3); } @@ -305,7 +305,7 @@ // Add combined/merged result table. var p = document.createElement('p'); - p.appendChild(addResultTableToOutput(result.combined_results)); + p.appendChild(addResultTableToOutput(result.combinedResults)); output.appendChild(p); // Move forward only if you want to display per provider results. @@ -322,8 +322,8 @@ // Add the per-provider result tables with labels. We do not append the // combined/merged result table since we already have the per provider // results. - for (var i = 0; i < result.results_by_provider.length; i++) { - var providerResults = result.results_by_provider[i]; + for (var i = 0; i < result.resultsByProvider.length; i++) { + var providerResults = result.resultsByProvider[i]; // If we have no results we do not display anything. if (providerResults.results.length == 0) { continue; @@ -414,39 +414,30 @@ var browserProxy = null; function initializeProxies() { - return importModules([ - 'mojo/public/js/bindings', - 'chrome/browser/ui/webui/omnibox/omnibox.mojom', - 'content/public/renderer/frame_interfaces', - ]).then(function(modules) { - var bindings = modules[0]; - var mojom = modules[1]; - var frameInterfaces = modules[2]; + browserProxy = new mojom.OmniboxPageHandlerPtr; + Mojo.bindInterface(mojom.OmniboxPageHandler.name, + mojo.makeRequest(browserProxy).handle); - browserProxy = new mojom.OmniboxPageHandlerPtr( - frameInterfaces.getInterface(mojom.OmniboxPageHandler.name)); + /** @constructor */ + var OmniboxPageImpl = function(request) { + this.binding_ = new mojo.Binding(mojom.OmniboxPage, this, request); + }; - /** @constructor */ - var OmniboxPageImpl = function() { - this.binding = new bindings.Binding(mojom.OmniboxPage, this); - }; + OmniboxPageImpl.prototype = { + /** @override */ + handleNewAutocompleteResult: function(result) { + progressiveAutocompleteResults.push(result); + refresh(); + }, + }; - OmniboxPageImpl.prototype = { - /** @override */ - handleNewAutocompleteResult: function(result) { - progressiveAutocompleteResults.push(result); - refresh(); - }, - }; - - pageImpl = new OmniboxPageImpl(); - browserProxy.setClientPage(pageImpl.binding.createInterfacePtrAndBind()); - }); + var client = new mojom.OmniboxPagePtr; + pageImpl = new OmniboxPageImpl(mojo.makeRequest(client)); + browserProxy.setClientPage(client); } document.addEventListener('DOMContentLoaded', function() { - return initializeProxies().then(function() { - initialize(); - }); + initializeProxies(); + initialize(); }); })();
diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm index 2350df54..d0f2a2e3 100644 --- a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm +++ b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm
@@ -636,6 +636,7 @@ cellFrame, NSOffsetRect(cellFrame, origin.x, origin.y)); renderRect.size.width = std::min(NSWidth(renderRect), static_cast<CGFloat>(maxWidth)); + renderRect.size.height = std::min(NSWidth(renderRect), kDefaultTextHeight); if (!NSIsEmptyRect(renderRect)) { [attributedString drawWithRect:FlipIfRTL(renderRect, cellFrame) options:NSStringDrawingUsesLineFragmentOrigin |
diff --git a/chrome/browser/ui/layout_constants.cc b/chrome/browser/ui/layout_constants.cc index 9fd179c6..06dbe30d3 100644 --- a/chrome/browser/ui/layout_constants.cc +++ b/chrome/browser/ui/layout_constants.cc
@@ -12,8 +12,10 @@ const bool hybrid = ui::MaterialDesignController::GetMode() == ui::MaterialDesignController::MATERIAL_HYBRID; switch (constant) { + case LOCATION_BAR_BUBBLE_VERTICAL_PADDING: + return hybrid ? 1 : 3; case LOCATION_BAR_BUBBLE_FONT_VERTICAL_PADDING: - return hybrid ? 4 : 2; + return hybrid ? 3 : 2; case LOCATION_BAR_BUBBLE_ANCHOR_VERTICAL_INSET: if (ui::MaterialDesignController::IsSecondaryUiMaterial()) return 1;
diff --git a/chrome/browser/ui/layout_constants.h b/chrome/browser/ui/layout_constants.h index aff8a33..fbd87d7 100644 --- a/chrome/browser/ui/layout_constants.h +++ b/chrome/browser/ui/layout_constants.h
@@ -9,6 +9,10 @@ #include "ui/gfx/geometry/size.h" enum LayoutConstant { + // The vertical padding (additional to TOOLBAR_ELEMENT_PADDING) above and + // below location bar bubbles. + LOCATION_BAR_BUBBLE_VERTICAL_PADDING, + // The vertical padding between the edge of a location bar bubble and its // contained text. LOCATION_BAR_BUBBLE_FONT_VERTICAL_PADDING,
diff --git a/chrome/browser/ui/views/importer/import_lock_dialog_view.cc b/chrome/browser/ui/views/importer/import_lock_dialog_view.cc index 0cc5107..f12b9907 100644 --- a/chrome/browser/ui/views/importer/import_lock_dialog_view.cc +++ b/chrome/browser/ui/views/importer/import_lock_dialog_view.cc
@@ -63,10 +63,7 @@ void ImportLockDialogView::Layout() { gfx::Rect bounds(GetLocalBounds()); const ChromeLayoutProvider* provider = ChromeLayoutProvider::Get(); - bounds.Inset(provider->GetDistanceMetric( - views::DISTANCE_DIALOG_CONTENTS_HORIZONTAL_MARGIN), - provider->GetDistanceMetric( - views::DISTANCE_DIALOG_CONTENTS_VERTICAL_MARGIN)); + bounds.Inset(provider->GetInsetsMetric(views::INSETS_DIALOG_CONTENTS)); description_label_->SetBoundsRect(bounds); }
diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc index de83948..210a4c6 100644 --- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc +++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
@@ -123,7 +123,7 @@ // the bubble should be smaller, so use an empty border to shrink down the // content bounds so the background gets painted correctly. SetBorder(views::CreateEmptyBorder( - gfx::Insets(LocationBarView::kBubbleVerticalPadding, 0))); + gfx::Insets(GetLayoutConstant(LOCATION_BAR_BUBBLE_VERTICAL_PADDING), 0))); set_notify_enter_exit_on_child(true);
diff --git a/chrome/browser/ui/views/location_bar/keyword_hint_view.cc b/chrome/browser/ui/views/location_bar/keyword_hint_view.cc index 4e4dcc61..5a19d58 100644 --- a/chrome/browser/ui/views/location_bar/keyword_hint_view.cc +++ b/chrome/browser/ui/views/location_bar/keyword_hint_view.cc
@@ -11,6 +11,7 @@ #include "base/macros.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url_service_factory.h" +#include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/views/location_bar/background_with_1_px_border.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/grit/generated_resources.h" @@ -65,7 +66,7 @@ chip_label_->SetBackgroundColor(tab_bg_color); chip_container_->SetBorder(views::CreateEmptyBorder( - gfx::Insets(LocationBarView::kBubbleVerticalPadding, 0))); + gfx::Insets(GetLayoutConstant(LOCATION_BAR_BUBBLE_VERTICAL_PADDING), 0))); chip_container_->SetBackground(base::MakeUnique<BackgroundWith1PxBorder>( tab_bg_color, tab_border_color)); chip_container_->AddChildView(chip_label_);
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc index 3603e71..0d88605 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -173,7 +173,7 @@ // Determine the font for use inside the bubbles. const int bubble_padding = - kBubbleVerticalPadding + + GetLayoutConstant(LOCATION_BAR_BUBBLE_VERTICAL_PADDING) + GetLayoutConstant(LOCATION_BAR_BUBBLE_FONT_VERTICAL_PADDING); const int bubble_height = location_height - (bubble_padding * 2);
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.h b/chrome/browser/ui/views/location_bar/location_bar_view.h index 3f567992..506285c 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.h +++ b/chrome/browser/ui/views/location_bar/location_bar_view.h
@@ -106,9 +106,6 @@ // each icon view should be kIconWidth + 2 * kIconInteriorPadding. static constexpr int kIconInteriorPadding = 4; - // The additional vertical padding of a bubble. - static constexpr int kBubbleVerticalPadding = 3; - // The location bar view's class name. static const char kViewClassName[];
diff --git a/chrome/browser/ui/views/passwords/account_chooser_dialog_view.cc b/chrome/browser/ui/views/passwords/account_chooser_dialog_view.cc index 4250a66..b6a7a62 100644 --- a/chrome/browser/ui/views/passwords/account_chooser_dialog_view.cc +++ b/chrome/browser/ui/views/passwords/account_chooser_dialog_view.cc
@@ -43,8 +43,9 @@ views::ColumnSet* column_set = layout->AddColumnSet(type); const int horizontal_padding = type == SINGLE_VIEW_COLUMN_SET - ? ChromeLayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_DIALOG_CONTENTS_HORIZONTAL_MARGIN) + ? ChromeLayoutProvider::Get() + ->GetInsetsMetric(views::INSETS_DIALOG_CONTENTS) + .left() : 0; column_set->AddPaddingColumn(0, horizontal_padding); column_set->AddColumn(views::GridLayout::FILL,
diff --git a/chrome/browser/ui/views/profiles/profile_chooser_view.cc b/chrome/browser/ui/views/profiles/profile_chooser_view.cc index bfc03b8..f68f6d6 100644 --- a/chrome/browser/ui/views/profiles/profile_chooser_view.cc +++ b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
@@ -481,9 +481,9 @@ int back_button_width = back_button_->GetPreferredSize().width(); back_button_->SetBounds(0, 0, back_button_width, height()); int label_padding = - back_button_width + - ChromeLayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_DIALOG_CONTENTS_HORIZONTAL_MARGIN); + back_button_width + ChromeLayoutProvider::Get() + ->GetInsetsMetric(views::INSETS_DIALOG_CONTENTS) + .left(); int label_width = width() - 2 * label_padding; DCHECK_GT(label_width, 0); title_label_->SetBounds(label_padding, 0, label_width, height());
diff --git a/chrome/browser/ui/webui/omnibox/BUILD.gn b/chrome/browser/ui/webui/omnibox/BUILD.gn index 30f9b31..bf547a0 100644 --- a/chrome/browser/ui/webui/omnibox/BUILD.gn +++ b/chrome/browser/ui/webui/omnibox/BUILD.gn
@@ -8,7 +8,4 @@ sources = [ "omnibox.mojom", ] - - # TODO(crbug.com/699569): Convert to use the new JS bindings. - use_new_js_bindings = false }
diff --git a/chrome/browser/ui/webui/omnibox/omnibox_ui.cc b/chrome/browser/ui/webui/omnibox/omnibox_ui.cc index 439115e..2568cda 100644 --- a/chrome/browser/ui/webui/omnibox/omnibox_ui.cc +++ b/chrome/browser/ui/webui/omnibox/omnibox_ui.cc
@@ -20,7 +20,7 @@ content::WebUIDataSource::Create(chrome::kChromeUIOmniboxHost); source->AddResourcePath("omnibox.css", IDR_OMNIBOX_CSS); source->AddResourcePath("omnibox.js", IDR_OMNIBOX_JS); - source->AddResourcePath("chrome/browser/ui/webui/omnibox/omnibox.mojom", + source->AddResourcePath("chrome/browser/ui/webui/omnibox/omnibox.mojom.js", IDR_OMNIBOX_MOJO_JS); source->SetDefaultResource(IDR_OMNIBOX_HTML);
diff --git a/chrome/common/net/x509_certificate_model_unittest.cc b/chrome/common/net/x509_certificate_model_unittest.cc index 0aeb057..450844d 100644 --- a/chrome/common/net/x509_certificate_model_unittest.cc +++ b/chrome/common/net/x509_certificate_model_unittest.cc
@@ -76,8 +76,8 @@ EXPECT_EQ("Certificate Subject Key ID", extensions[1].name); EXPECT_EQ( - "notcrit\nKey ID: BC F7 30 D1 3C C0 F2 79 FA EF 9F C9 6C 5C 93 F3\n8A " - "68 AB 83", + "notcrit\nKey ID: 9B 26 0B 8A 98 A9 BB 1D B9 1F 1C E3 1A 40 33 ED\n8E " + "17 88 AB", extensions[1].value); EXPECT_EQ("Certificate Key Usage", extensions[2].name); @@ -330,10 +330,10 @@ net::GetTestCertsDirectory(), "root_ca_cert.pem")); ASSERT_TRUE(cert.get()); - EXPECT_EQ("PKCS #1 SHA-1 With RSA Encryption", + EXPECT_EQ("PKCS #1 SHA-256 With RSA Encryption", x509_certificate_model::ProcessSecAlgorithmSignature( cert->os_cert_handle())); - EXPECT_EQ("PKCS #1 SHA-1 With RSA Encryption", + EXPECT_EQ("PKCS #1 SHA-256 With RSA Encryption", x509_certificate_model::ProcessSecAlgorithmSignatureWrap( cert->os_cert_handle())); EXPECT_EQ("PKCS #1 RSA Encryption", @@ -365,22 +365,22 @@ EXPECT_EQ( "Modulus (2048 bits):\n" - " B6 49 41 E3 42 01 51 A8 7F 3C 7A 71 D3 FB CD 91\n" - "35 17 84 1A 8E F6 36 C7 D1 70 1D FA 86 F3 6E BB\n" - "76 6F E8 32 2E 37 FD 38 92 3D 68 E4 8A 7D 42 33\n" - "14 46 1B DC 04 F6 91 6E 54 40 C4 0A 09 FD EC 2D\n" - "62 E2 5E E1 BA 2C 9C C1 B1 60 4C DA C7 F8 22 5C\n" - "82 20 65 42 1E 56 77 75 4F EB 90 2C 4A EA 57 0E\n" - "22 8D 6C 95 AC 11 EA CC D7 EE F6 70 0D 09 DD A6\n" - "35 61 5D C9 76 6D B0 F2 1E BF 30 86 D8 77 52 36\n" - "95 97 0E D1 46 C5 ED 81 3D 1B B0 F2 61 95 3C C1\n" - "40 38 EF 5F 5D BA 61 9F EF 2B 9C 9F 85 89 74 70\n" - "63 D5 76 E8 35 7E CE 01 E1 F3 11 11 90 1C 0D F5\n" - "FD 8D CE 10 6C AD 7C 55 1A 21 6F D7 2D F4 78 15\n" - "EA 2F 38 BD 91 9E 3C 1D 07 46 F5 43 C1 82 8B AF\n" - "12 53 65 19 8A 69 69 66 06 B2 DA 0B FA 2A 00 A1\n" - "2A 15 84 49 F1 01 BF 9B 30 06 D0 15 A0 1F 9D 51\n" - "91 47 E1 53 5F EF 5E EC C2 61 79 C2 14 9F C4 E3\n" + " C6 81 1F 92 73 B6 58 85 D9 8D AC B7 20 FD C7 BF\n" + "40 B2 EA FA E5 0B 52 01 8F 9A C1 EB 7A 80 C1 F3\n" + "89 A4 3E D5 1B 61 CC B5 CF 80 B1 1A DB BB 25 E0\n" + "18 BF 92 69 26 50 CD E7 3F FF 0D 3C B4 1F 14 12\n" + "AB 67 37 DE 07 03 6C 12 74 82 36 AC C3 D4 D3 64\n" + "9F 91 ED 5B F6 A9 7A A4 9C 98 E8 65 6C 94 E1 CB\n" + "55 73 AE F8 1D 50 B0 78 E5 74 FF B1 37 2C CB 19\n" + "3D A4 8C E7 76 4E 86 5C 3F DF B3 ED 45 23 4F 54\n" + "9B 33 C6 89 5E 13 1D DD 7D 59 A5 07 34 28 86 27\n" + "1F FA 9E 53 4F 2A B6 42 AD 37 12 62 F5 72 36 B6\n" + "02 12 40 44 FE C7 9E 95 89 43 51 5E B4 6E C7 67\n" + "80 58 43 BE CC 07 28 BD 59 FF 1C 4C 8D 90 42 F4\n" + "CF FD 54 00 4F 48 72 2B E1 67 3C 84 17 68 95 BF\n" + "CA 07 7B DF 86 9D 56 E3 32 E3 70 87 B7 F8 3A F7\n" + "E3 6E 65 14 7C BB 76 B7 17 F1 42 8C 6F 2A 34 64\n" + "10 35 14 8C 85 F6 57 BF F3 5C 55 9D AD 03 10 F3\n" "\n" " Public Exponent (24 bits):\n" " 01 00 01", @@ -409,22 +409,22 @@ ASSERT_TRUE(cert.get()); EXPECT_EQ( - "57 07 29 FB 7F E8 FF B0 E6 D8 58 6A C3 90 A1 38\n" - "1C B4 F3 68 B1 EC E8 89 23 24 D7 A8 F2 21 C3 60\n" - "E4 A4 49 5C 00 BF DF C7 82 78 80 2B 18 F7 AD DD\n" - "D0 62 5E A7 B0 CC F0 AA B4 CE 70 12 59 65 67 76\n" - "05 00 18 9A FF C4 2A 17 E3 F1 55 D8 BE 5C 5E EB\n" - "CA CB 53 87 10 D5 09 32 36 A7 5E 41 F4 53 DA 7E\n" - "56 60 D2 7E 4E 9A A5 08 5F 5D 75 E9 E7 30 CB 22\n" - "E9 EF 19 49 83 A5 23 A1 F8 60 4C E5 36 D5 39 78\n" - "18 F1 5E BF CE AA 0B 53 81 2C 78 A9 0A 6B DB 13\n" - "10 21 14 7F 1B 70 3D 89 1A 40 8A 06 2C 5D 50 19\n" - "62 F9 C7 45 89 F2 3D 66 05 3D 7D 75 5B 55 1E 80\n" - "42 72 A1 9A 7C 6D 0A 74 F6 EE A6 21 6C 3A 98 FB\n" - "77 82 5F F2 6B 56 E6 DD 9B 8E 50 F0 C6 AE FD EA\n" - "A6 05 07 A9 26 06 56 B3 B2 D9 B2 37 A0 21 3E 79\n" - "06 1F B9 51 BE F4 B1 49 4D 90 B5 33 E5 0E C7 5E\n" - "5B 40 C5 6A 04 D1 43 7A 94 6A A4 4F 61 FC 82 E0", + "5B 53 FF 6D D5 0A 43 A5 0F D4 7D C6 5D 88 E3 98\n" + "9D 67 EB 32 82 B3 0F F5 C1 78 F8 05 4A BF BC 21\n" + "05 EE 21 08 2C B2 15 A1 B8 B2 F6 A3 15 61 E4 C1\n" + "AD 84 A4 A7 40 0C 87 09 5F 2B 1B F9 4D 6C 92 7D\n" + "CB 7E 2B B0 01 0A ED 40 E5 4E AF 1A F1 0D EC 1D\n" + "9E 96 C7 D4 61 64 39 23 FA 5F 29 C4 2A 3A B8 ED\n" + "8A 72 50 6A AC 45 04 76 09 A8 3D 57 D7 F0 4B AE\n" + "46 B4 83 C1 14 50 2A 19 59 53 B2 4D AE FC 2F 40\n" + "49 C8 AD 4D 9D C8 22 8D 8C 01 DB 31 33 5A F4 BC\n" + "4C 9B ED D7 E3 43 D9 E8 1D 53 8B 30 D8 81 9E 72\n" + "AB 9E CE B8 F5 83 93 F2 72 DB DE CD B0 52 9A 45\n" + "4D CF E7 21 D8 CE 16 64 8F 42 AF C1 87 A8 F9 D5\n" + "E2 03 DD BA 6B 1B 7C 7D A0 38 33 61 39 B4 DD 5C\n" + "69 17 79 02 3A EC 1D 6F 5E BB 13 FB A6 82 5D 07\n" + "20 FC 86 FE 6E 8B AC E1 C2 18 A2 FE 3F 95 66 D3\n" + "69 8A 00 06 2C 56 37 34 B9 B6 31 DE 0F F6 44 39", x509_certificate_model::ProcessRawBitsSignatureWrap( cert->os_cert_handle())); }
diff --git a/chrome/test/base/mash_browser_tests_main.cc b/chrome/test/base/mash_browser_tests_main.cc index dbdeaf1..aca66ca7 100644 --- a/chrome/test/base/mash_browser_tests_main.cc +++ b/chrome/test/base/mash_browser_tests_main.cc
@@ -18,6 +18,7 @@ #include "base/process/launch.h" #include "base/run_loop.h" #include "base/sys_info.h" +#include "base/task_scheduler/task_scheduler.h" #include "base/threading/thread_task_runner_handle.h" #include "base/values.h" #include "chrome/app/mash/embedded_services.h" @@ -189,9 +190,14 @@ base::debug::EnableInProcessStackDumping(); #endif + base::TaskScheduler::CreateAndStartWithDefaultParams("StandaloneService"); + command_line->AppendSwitch(ui::switches::kUseTestConfig); service_manager::RunStandaloneService(base::Bind(&StartEmbeddedService)); *exit_code = 0; + + base::TaskScheduler::GetInstance()->Shutdown(); + return true; }
diff --git a/chrome/test/chromedriver/VERSION b/chrome/test/chromedriver/VERSION index 072e6513..81b133a 100644 --- a/chrome/test/chromedriver/VERSION +++ b/chrome/test/chromedriver/VERSION
@@ -1 +1 @@ -2.29 +2.30
diff --git a/chrome/test/data/webui/bluetooth_internals_browsertest.js b/chrome/test/data/webui/bluetooth_internals_browsertest.js index a7ab6ad..4cf4ec1 100644 --- a/chrome/test/data/webui/bluetooth_internals_browsertest.js +++ b/chrome/test/data/webui/bluetooth_internals_browsertest.js
@@ -38,7 +38,7 @@ ROOT_PATH + 'ui/webui/resources/js/promise_resolver.js', ROOT_PATH + 'ui/webui/resources/js/cr.js', ROOT_PATH + 'ui/webui/resources/js/util.js', - ROOT_PATH + 'chrome/test/data/webui/settings/test_browser_proxy.js', + ROOT_PATH + 'chrome/test/data/webui/test_browser_proxy.js', ], preLoad: function() { @@ -57,10 +57,10 @@ * page. * * @constructor - * @extends {TestBrowserProxyBase} + * @extends {TestBrowserProxy} */ var TestAdapterFactoryProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getAdapter', ]); @@ -71,7 +71,7 @@ }; TestAdapterFactoryProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, getAdapter: function() { this.methodCalled('getAdapter'); @@ -85,10 +85,10 @@ /** * A test adapter proxy for the chrome://bluetooth-internals page. * @constructor - * @extends {TestBrowserProxyBase} + * @extends {TestBrowserProxy} */ var TestAdapterProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getInfo', 'getDevices', 'setClient', @@ -101,7 +101,7 @@ }; TestAdapterProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, connectToDevice: function(address) { assert(this.deviceProxyMap.has(address), 'Device does not exist'); @@ -149,11 +149,11 @@ * page. Proxies are generated by a TestAdapterProxy which provides * the DeviceInfo. * @constructor - * @extends {TestBrowserProxyBase} + * @extends {TestBrowserProxy} * @param {!device.DeviceInfo} info */ var TestDeviceProxy = function(info) { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getInfo', 'getServices', ]); @@ -164,7 +164,7 @@ } TestDeviceProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, disconnect: function() { this.binding.close();
diff --git a/chrome/test/data/webui/md_user_manager/test_profile_browser_proxy.js b/chrome/test/data/webui/md_user_manager/test_profile_browser_proxy.js index 3f803a8..aa78559 100644 --- a/chrome/test/data/webui/md_user_manager/test_profile_browser_proxy.js +++ b/chrome/test/data/webui/md_user_manager/test_profile_browser_proxy.js
@@ -7,10 +7,10 @@ * * @constructor * @implements {signin.ProfileBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestProfileBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getAvailableIcons', 'getSignedInUsers', 'launchGuestUser', @@ -39,7 +39,7 @@ }; TestProfileBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** * @param {!Array<!AvatarIcon>} icons
diff --git a/chrome/test/data/webui/md_user_manager/user_manager_browsertest.js b/chrome/test/data/webui/md_user_manager/user_manager_browsertest.js index e204d7c..931f2be 100644 --- a/chrome/test/data/webui/md_user_manager/user_manager_browsertest.js +++ b/chrome/test/data/webui/md_user_manager/user_manager_browsertest.js
@@ -25,7 +25,7 @@ /** @override */ extraLibraries: PolymerTest.getLibraries(ROOT_PATH).concat([ - '../settings/test_browser_proxy.js', + '../test_browser_proxy.js', 'control_bar_tests.js', 'create_profile_tests.js', 'import_supervised_user_tests.js',
diff --git a/chrome/test/data/webui/print_preview/native_layer_stub.js b/chrome/test/data/webui/print_preview/native_layer_stub.js index 92f9f29..33aca5f 100644 --- a/chrome/test/data/webui/print_preview/native_layer_stub.js +++ b/chrome/test/data/webui/print_preview/native_layer_stub.js
@@ -6,10 +6,10 @@ /** * Test version of the native layer. * @constructor - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ function NativeLayerStub() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getInitialSettings', 'getPrinters', 'setupPrinter' ]); /** @@ -65,7 +65,7 @@ } NativeLayerStub.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ getInitialSettings: function() {
diff --git a/chrome/test/data/webui/print_preview/print_preview_destination_search_test.js b/chrome/test/data/webui/print_preview/print_preview_destination_search_test.js index f22b75ff..eb665ca 100644 --- a/chrome/test/data/webui/print_preview/print_preview_destination_search_test.js +++ b/chrome/test/data/webui/print_preview/print_preview_destination_search_test.js
@@ -25,7 +25,7 @@ /** @override */ extraLibraries: PolymerTest.getLibraries(ROOT_PATH).concat([ - ROOT_PATH + 'chrome/test/data/webui/settings/test_browser_proxy.js', + ROOT_PATH + 'chrome/test/data/webui/test_browser_proxy.js', 'native_layer_stub.js', ]),
diff --git a/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js b/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js index ef6c932..f0f47db 100644 --- a/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js +++ b/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js
@@ -55,7 +55,7 @@ ROOT_PATH + 'third_party/mocha/mocha.js', ROOT_PATH + 'chrome/test/data/webui/mocha_adapter.js', ROOT_PATH + 'ui/webui/resources/js/util.js', - ROOT_PATH + 'chrome/test/data/webui/settings/test_browser_proxy.js', + ROOT_PATH + 'chrome/test/data/webui/test_browser_proxy.js', 'print_preview_tests.js', 'native_layer_stub.js', ],
diff --git a/chrome/test/data/webui/settings/about_page_tests.js b/chrome/test/data/webui/settings/about_page_tests.js index 32837a6..d2d69132 100644 --- a/chrome/test/data/webui/settings/about_page_tests.js +++ b/chrome/test/data/webui/settings/about_page_tests.js
@@ -6,7 +6,7 @@ /** * @constructor * @implements {settings.AboutPageBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestAboutPageBrowserProxy = function() { var methodNames = [ @@ -27,7 +27,7 @@ if (cr.isMac) methodNames.push('promoteUpdater'); - settings.TestBrowserProxy.call(this, methodNames); + TestBrowserProxy.call(this, methodNames); /** @private {!UpdateStatus} */ this.updateStatus_ = UpdateStatus.UPDATED; @@ -53,7 +53,7 @@ }; TestAboutPageBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @param {!UpdateStatus} updateStatus */ setUpdateStatus: function(updateStatus) {
diff --git a/chrome/test/data/webui/settings/android_apps_page_test.js b/chrome/test/data/webui/settings/android_apps_page_test.js index 64cf36d..ccc51f0 100644 --- a/chrome/test/data/webui/settings/android_apps_page_test.js +++ b/chrome/test/data/webui/settings/android_apps_page_test.js
@@ -5,17 +5,17 @@ /** * @constructor * @implements {settings.AndroidAppsBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ function TestAndroidAppsBrowserProxy() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'requestAndroidAppsInfo', 'showAndroidAppsSettings', ]); } TestAndroidAppsBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ requestAndroidAppsInfo: function() {
diff --git a/chrome/test/data/webui/settings/appearance_fonts_page_test.js b/chrome/test/data/webui/settings/appearance_fonts_page_test.js index 84f90d5..6cf466a4 100644 --- a/chrome/test/data/webui/settings/appearance_fonts_page_test.js +++ b/chrome/test/data/webui/settings/appearance_fonts_page_test.js
@@ -5,10 +5,10 @@ /** * @constructor * @implements {settings.FontsBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestFontsBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'fetchFontsData', 'observeAdvancedFontExtensionAvailable', 'openAdvancedFontSettings', @@ -22,7 +22,7 @@ }; TestFontsBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ fetchFontsData: function() {
diff --git a/chrome/test/data/webui/settings/appearance_page_test.js b/chrome/test/data/webui/settings/appearance_page_test.js index bc3cb04..dd7e859c 100644 --- a/chrome/test/data/webui/settings/appearance_page_test.js +++ b/chrome/test/data/webui/settings/appearance_page_test.js
@@ -5,10 +5,10 @@ /** * @constructor * @implements {settings.AppearanceBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestAppearanceBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getDefaultZoom', 'getThemeInfo', 'isSupervised', @@ -29,7 +29,7 @@ }; TestAppearanceBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ getDefaultZoom: function() { @@ -289,4 +289,4 @@ assertEquals(homeUrlInput.value, 'test'); }); }); -}); \ No newline at end of file +});
diff --git a/chrome/test/data/webui/settings/basic_page_browsertest.js b/chrome/test/data/webui/settings/basic_page_browsertest.js index 66533a1..fcf5a38 100644 --- a/chrome/test/data/webui/settings/basic_page_browsertest.js +++ b/chrome/test/data/webui/settings/basic_page_browsertest.js
@@ -17,7 +17,7 @@ /** @override */ extraLibraries: SettingsPageBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', ]), }; @@ -39,10 +39,10 @@ * This fake SearchManager just hides and re-displays the sections on search. * * @implements {SearchManager} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestSearchManager = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'search', ]); @@ -51,7 +51,7 @@ } TestSearchManager.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ search: function(text, page) {
diff --git a/chrome/test/data/webui/settings/certificate_manager_page_test.js b/chrome/test/data/webui/settings/certificate_manager_page_test.js index 5204b80..712d2e38 100644 --- a/chrome/test/data/webui/settings/certificate_manager_page_test.js +++ b/chrome/test/data/webui/settings/certificate_manager_page_test.js
@@ -10,10 +10,10 @@ * * @constructor * @implements {settings.CertificatesBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestCertificatesBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'deleteCertificate', 'editCaCertificateTrust', 'exportCertificate', @@ -37,7 +37,7 @@ }; TestCertificatesBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** * @param {!CaTrustInfo} caTrustInfo
diff --git a/chrome/test/data/webui/settings/chrome_cleanup_page_test.js b/chrome/test/data/webui/settings/chrome_cleanup_page_test.js index fb7fb53..cd619a6 100644 --- a/chrome/test/data/webui/settings/chrome_cleanup_page_test.js +++ b/chrome/test/data/webui/settings/chrome_cleanup_page_test.js
@@ -5,10 +5,10 @@ /** * @constructor * @implements {settings.ChromeCleanupProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestChromeCleanupProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'dismissCleanupPage', 'getChromeCleanupVisibility', 'registerChromeCleanupObserver', @@ -18,7 +18,7 @@ }; TestChromeCleanupProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ dismissCleanupPage: function() {
diff --git a/chrome/test/data/webui/settings/cr_settings_browsertest.js b/chrome/test/data/webui/settings/cr_settings_browsertest.js index 1cf266d6..c402224 100644 --- a/chrome/test/data/webui/settings/cr_settings_browsertest.js +++ b/chrome/test/data/webui/settings/cr_settings_browsertest.js
@@ -188,7 +188,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ 'test_util.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_lifetime_browser_proxy.js', 'about_page_tests.js', ]), @@ -344,7 +344,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'fingerprint_browsertest_chromeos.js', ]), }; @@ -370,7 +370,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'people_page_change_picture_test.js', ]), }; @@ -397,7 +397,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'people_page_manage_profile_test.js', ]), }; @@ -424,7 +424,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'people_page_test.js', ]), }; @@ -450,7 +450,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'people_page_sync_page_test.js', ]), }; @@ -499,7 +499,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_lifetime_browser_proxy.js', 'test_reset_browser_proxy.js', 'reset_page_test.js', @@ -526,7 +526,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_reset_browser_proxy.js', 'reset_profile_banner_test.js', ]), @@ -551,7 +551,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ ROOT_PATH + 'ui/webui/resources/js/promise_resolver.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'appearance_page_test.js', ]), }; @@ -576,7 +576,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ ROOT_PATH + 'ui/webui/resources/js/promise_resolver.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'appearance_fonts_page_test.js', ]), }; @@ -601,7 +601,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'chrome_cleanup_page_test.js', ]), }; @@ -626,7 +626,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ ROOT_PATH + 'ui/webui/resources/js/promise_resolver.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'downloads_page_test.js', ]), }; @@ -652,7 +652,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'default_browser_browsertest.js', ]), }; @@ -678,7 +678,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'import_data_dialog_test.js', ]), }; @@ -703,7 +703,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_search_engines_browser_proxy.js', 'search_page_test.js', ]), @@ -730,7 +730,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_extension_control_browser_proxy.js', 'test_search_engines_browser_proxy.js', 'search_engines_page_test.js', @@ -760,7 +760,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ 'test_util.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'certificate_manager_page_test.js', ]), }; @@ -788,7 +788,7 @@ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ ROOT_PATH + 'ui/webui/resources/js/promise_resolver.js', 'test_util.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_privacy_page_browser_proxy.js', 'privacy_page_test.js', ]), @@ -818,7 +818,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'site_data_details_subpage_tests.js', ]), @@ -842,7 +842,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'category_default_setting_tests.js', ]), @@ -866,7 +866,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'category_setting_exceptions_tests.js', ]), @@ -895,7 +895,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'all_sites_tests.js', ]), @@ -919,7 +919,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'site_details_tests.js', ]), @@ -943,7 +943,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'site_details_permission_tests.js', ]), @@ -972,7 +972,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'site_list_tests.js', ]), @@ -1004,7 +1004,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'zoom_levels_tests.js', ]), @@ -1028,7 +1028,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'usb_devices_tests.js', ]), @@ -1052,7 +1052,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'protocol_handlers_tests.js', ]), @@ -1074,7 +1074,7 @@ browsePreload: 'chrome://md-settings/site_settings/site_data.html', extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_site_settings_prefs_browser_proxy.js', 'site_data_test.js', ]), @@ -1249,7 +1249,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_lifetime_browser_proxy.js', 'system_page_tests.js', ]), @@ -1272,7 +1272,7 @@ browsePreload: 'chrome://md-settings/on_startup_page/startup_urls_page.html', extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'startup_urls_page_test.js', ]), }; @@ -1299,7 +1299,7 @@ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ '../fake_chrome_event.js', 'fake_settings_private.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'fake_language_settings_private.js', 'edit_dictionary_page_test.js', ]), @@ -1327,7 +1327,7 @@ ROOT_PATH + 'ui/webui/resources/js/promise_resolver.js', '../fake_chrome_event.js', 'test_util.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'fake_language_settings_private.js', 'fake_settings_private.js', 'fake_input_method_private.js', @@ -1357,7 +1357,7 @@ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ '../fake_chrome_event.js', 'test_util.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'fake_settings_private.js', 'fake_language_settings_private.js', 'fake_input_method_private.js', @@ -1503,7 +1503,7 @@ /** @override */ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_util.js', 'settings_main_test.js', ]), @@ -1590,7 +1590,7 @@ browsePreload: 'chrome://md-settings/privacy_page/privacy_page.html', extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_privacy_page_browser_proxy.js', 'metrics_reporting_tests.js', ]), @@ -1626,7 +1626,7 @@ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ ROOT_PATH + 'ui/webui/resources/js/assert.js', 'test_util.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'cups_printer_page_tests.js', ]), }; @@ -1655,7 +1655,7 @@ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ ROOT_PATH + 'ui/webui/resources/js/promise_resolver.js', - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'android_apps_page_test.js', ]), }; @@ -1703,7 +1703,7 @@ 'chrome://md-settings/controls/extension_controlled_indicator.html', extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', 'test_extension_control_browser_proxy.js', 'extension_controlled_indicator_tests.js', ]),
diff --git a/chrome/test/data/webui/settings/cups_printer_page_tests.js b/chrome/test/data/webui/settings/cups_printer_page_tests.js index 329dc84..715fd44 100644 --- a/chrome/test/data/webui/settings/cups_printer_page_tests.js +++ b/chrome/test/data/webui/settings/cups_printer_page_tests.js
@@ -5,10 +5,10 @@ /** * @constructor * @implements {settings.CupsPrintersBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestCupsPrintersBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getCupsPrintersList', 'getCupsPrinterManufacturersList', 'getCupsPrinterModelsList', @@ -18,7 +18,7 @@ }; TestCupsPrintersBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, printerList: [], manufacturers: [],
diff --git a/chrome/test/data/webui/settings/default_browser_browsertest.js b/chrome/test/data/webui/settings/default_browser_browsertest.js index c312ecc..4ad425d6 100644 --- a/chrome/test/data/webui/settings/default_browser_browsertest.js +++ b/chrome/test/data/webui/settings/default_browser_browsertest.js
@@ -10,10 +10,10 @@ * * @constructor * @implements {settings.DefaultBrowserBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestDefaultBrowserBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'requestDefaultBrowserState', 'setAsDefaultBrowser', ]); @@ -28,7 +28,7 @@ }; TestDefaultBrowserBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ requestDefaultBrowserState: function() {
diff --git a/chrome/test/data/webui/settings/downloads_page_test.js b/chrome/test/data/webui/settings/downloads_page_test.js index c9f50ce..7d3f971 100644 --- a/chrome/test/data/webui/settings/downloads_page_test.js +++ b/chrome/test/data/webui/settings/downloads_page_test.js
@@ -5,10 +5,10 @@ /** * @constructor * @implements {settings.DownloadsBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestDownloadsBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'initializeDownloads', 'selectDownloadLocation', 'resetAutoOpenFileTypes', @@ -16,7 +16,7 @@ }; TestDownloadsBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ initializeDownloads: function() {
diff --git a/chrome/test/data/webui/settings/easy_unlock_browsertest_chromeos.js b/chrome/test/data/webui/settings/easy_unlock_browsertest_chromeos.js index b95b73d..dc0f9c0 100644 --- a/chrome/test/data/webui/settings/easy_unlock_browsertest_chromeos.js +++ b/chrome/test/data/webui/settings/easy_unlock_browsertest_chromeos.js
@@ -18,7 +18,7 @@ /** @override */ extraLibraries: PolymerTest.getLibraries(ROOT_PATH).concat([ - 'test_browser_proxy.js', + '../test_browser_proxy.js', ]), }; @@ -36,10 +36,10 @@ * * @constructor * @implements {settings.EasyUnlockBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestEasyUnlockBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getEnabledStatus', 'startTurnOnFlow', 'getTurnOffFlowStatus', @@ -52,7 +52,7 @@ }; TestEasyUnlockBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** * @param {boolean} easyUnlockEnabled
diff --git a/chrome/test/data/webui/settings/fake_language_settings_private.js b/chrome/test/data/webui/settings/fake_language_settings_private.js index 9bd3bfdc..f95ded0 100644 --- a/chrome/test/data/webui/settings/fake_language_settings_private.js +++ b/chrome/test/data/webui/settings/fake_language_settings_private.js
@@ -32,7 +32,7 @@ this.onInputMethodRemoved = new FakeChromeEvent(); // List of method names expected to be tested with whenCalled() - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getSpellcheckWords', ]); @@ -110,7 +110,7 @@ } FakeLanguageSettingsPrivate.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, // Methods for use in testing. /** @param {SettingsPrefsElement} */
diff --git a/chrome/test/data/webui/settings/fingerprint_browsertest_chromeos.js b/chrome/test/data/webui/settings/fingerprint_browsertest_chromeos.js index 8a42a3a..0c3dee9 100644 --- a/chrome/test/data/webui/settings/fingerprint_browsertest_chromeos.js +++ b/chrome/test/data/webui/settings/fingerprint_browsertest_chromeos.js
@@ -5,10 +5,10 @@ /** * @constructor * @implements {settings.FingerprintBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestFingerprintBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getFingerprintsList', 'getNumFingerprints', 'startEnroll', @@ -25,7 +25,7 @@ }; TestFingerprintBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @ param {!Array<string>} fingerprints */ setFingerprints: function(fingerprints) {
diff --git a/chrome/test/data/webui/settings/import_data_dialog_test.js b/chrome/test/data/webui/settings/import_data_dialog_test.js index 66c6220..4f29a779 100644 --- a/chrome/test/data/webui/settings/import_data_dialog_test.js +++ b/chrome/test/data/webui/settings/import_data_dialog_test.js
@@ -5,10 +5,10 @@ /** * @constructor * @implements {settings.ImportDataBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestImportDataBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'initializeImportDialog', 'importFromBookmarksFile', 'importData', @@ -19,7 +19,7 @@ }; TestImportDataBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @param {!Array<!settings.BrowserProfile} browserProfiles */ setBrowserProfiles: function(browserProfiles) {
diff --git a/chrome/test/data/webui/settings/people_page_change_picture_test.js b/chrome/test/data/webui/settings/people_page_change_picture_test.js index 5a20bf9..a9492a3 100644 --- a/chrome/test/data/webui/settings/people_page_change_picture_test.js +++ b/chrome/test/data/webui/settings/people_page_change_picture_test.js
@@ -6,10 +6,10 @@ /** * @constructor * @implements {settings.ChangePictureBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestChangePictureBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'initialize', 'selectDefaultImage', 'selectOldImage', @@ -20,7 +20,7 @@ }; TestChangePictureBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ initialize: function() {
diff --git a/chrome/test/data/webui/settings/people_page_manage_profile_test.js b/chrome/test/data/webui/settings/people_page_manage_profile_test.js index c9ccb2f..0af15d9 100644 --- a/chrome/test/data/webui/settings/people_page_manage_profile_test.js +++ b/chrome/test/data/webui/settings/people_page_manage_profile_test.js
@@ -6,10 +6,10 @@ /** * @constructor * @implements {settings.ManageProfileBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestManageProfileBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getAvailableIcons', 'setProfileIconToGaiaAvatar', 'setProfileIconToDefaultAvatar', @@ -24,7 +24,7 @@ }; TestManageProfileBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @param {!ProfileShortcutStatus} status */ setProfileShortcutStatus: function(status) {
diff --git a/chrome/test/data/webui/settings/people_page_sync_page_test.js b/chrome/test/data/webui/settings/people_page_sync_page_test.js index d222865b..686ff4c2 100644 --- a/chrome/test/data/webui/settings/people_page_sync_page_test.js +++ b/chrome/test/data/webui/settings/people_page_sync_page_test.js
@@ -6,10 +6,10 @@ /** * @constructor * @implements {settings.SyncBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestSyncBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'didNavigateToSyncPage', 'didNavigateAwayFromSyncPage', 'setSyncDatatypes', @@ -21,7 +21,7 @@ }; TestSyncBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ didNavigateToSyncPage: function() {
diff --git a/chrome/test/data/webui/settings/people_page_test.js b/chrome/test/data/webui/settings/people_page_test.js index 16c7a47..ca99ca1 100644 --- a/chrome/test/data/webui/settings/people_page_test.js +++ b/chrome/test/data/webui/settings/people_page_test.js
@@ -6,10 +6,10 @@ /** * @constructor * @implements {settings.ProfileInfoBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestProfileInfoBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getProfileInfo', 'getProfileStatsCount', 'getProfileManagesSupervisedUsers', @@ -22,7 +22,7 @@ }; TestProfileInfoBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ getProfileInfo: function() { @@ -45,17 +45,17 @@ /** * @constructor * @implements {settings.SyncBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestSyncBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getSyncStatus', 'signOut', ]); }; TestSyncBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ getSyncStatus: function() {
diff --git a/chrome/test/data/webui/settings/privacy_page_test.js b/chrome/test/data/webui/settings/privacy_page_test.js index 50bd749..3af6cd7a 100644 --- a/chrome/test/data/webui/settings/privacy_page_test.js +++ b/chrome/test/data/webui/settings/privacy_page_test.js
@@ -9,7 +9,7 @@ * @implements {settings.ClearBrowsingDataBrowserProxy} */ function TestClearBrowsingDataBrowserProxy() { - settings.TestBrowserProxy.call( + TestBrowserProxy.call( this, ['initialize', 'clearBrowsingData', 'getImportantSites']); /** @@ -28,7 +28,7 @@ } TestClearBrowsingDataBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @param {!Promise} promise */ setClearBrowsingDataPromise: function(promise) {
diff --git a/chrome/test/data/webui/settings/settings_main_test.js b/chrome/test/data/webui/settings/settings_main_test.js index 590af52..9d03322 100644 --- a/chrome/test/data/webui/settings/settings_main_test.js +++ b/chrome/test/data/webui/settings/settings_main_test.js
@@ -10,10 +10,10 @@ * TestProxy). * * @implements {SearchManager} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestSearchManager = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'search', ]); @@ -25,7 +25,7 @@ } TestSearchManager.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** * @param {boolean} matchesFound
diff --git a/chrome/test/data/webui/settings/startup_urls_page_test.js b/chrome/test/data/webui/settings/startup_urls_page_test.js index 1377b75..fa2aec6 100644 --- a/chrome/test/data/webui/settings/startup_urls_page_test.js +++ b/chrome/test/data/webui/settings/startup_urls_page_test.js
@@ -6,10 +6,10 @@ /** * @constructor * @implements {settings.StartupUrlsPageBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ function TestStartupUrlsPageBrowserProxy() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'addStartupPage', 'editStartupPage', 'loadStartupPages', @@ -23,7 +23,7 @@ } TestStartupUrlsPageBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @param {boolean} isValid */ setUrlValidity: function(isValid) {
diff --git a/chrome/test/data/webui/settings/system_page_tests.js b/chrome/test/data/webui/settings/system_page_tests.js index 1a29b99..7e27668 100644 --- a/chrome/test/data/webui/settings/system_page_tests.js +++ b/chrome/test/data/webui/settings/system_page_tests.js
@@ -11,11 +11,11 @@ * @implements {settings.SystemPageBrowserProxy} */ function TestSystemPageBrowserProxy() { - settings.TestBrowserProxy.call(this, ['showProxySettings']); + TestBrowserProxy.call(this, ['showProxySettings']); } TestSystemPageBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ showProxySettings: function() {
diff --git a/chrome/test/data/webui/settings/test_browser_proxy.js b/chrome/test/data/webui/settings/test_browser_proxy.js deleted file mode 100644 index 9d88210..0000000 --- a/chrome/test/data/webui/settings/test_browser_proxy.js +++ /dev/null
@@ -1,89 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -cr.define('settings', function() { - /** - * A base class for all test browser proxies to inherit from. Provides helper - * methods for allowing tests to track when a method was called. - * - * Subclasses are responsible for calling |methodCalled|, when a method is - * called, which will trigger callers of |whenCalled| to get notified. - * For example: - * -------------------------------------------------------------------------- - * var MyTestBrowserProxy = function() { - * TestBrowserProxy.call(this, ['myMethod']); - * }; - * MyTestBrowserProxy.prototype = function() { - * __proto__: TestBrowserProxy.prototype, - * - * myMethod: function(someId) { - * this.methodCalled('myMethod', someId); - * }, - * }; - * - * // Test code sample - * - * var testBrowserProxy = new MyTestBrowserProxy(); - * // ...Replacing real proxy with test proxy.... - * simulateClickFooButton(); - * testBrowserProxy.whenCalled('fooMethod').then(function(id) { - * assertEquals(EXPECTED_ID, id); - * }); - * -------------------------------------------------------------------------- - * - * @constructor - * @param {!Array<string>} methodNames Names of all methods whose calls - * need to be tracked. - */ - var TestBrowserProxy = function(methodNames) { - /** @private {!Map<string, !PromiseResolver>} */ - this.resolverMap_ = new Map(); - methodNames.forEach(this.resetResolver, this); - }; - - TestBrowserProxy.prototype = { - /** - * Called by subclasses when a tracked method is called from the code that - * is being tested. - * @param {string} methodName - * @param {*=} opt_arg Optional argument to be forwarded to the testing - * code, useful for checking whether the proxy method was called with - * the expected arguments. - * @protected - */ - methodCalled: function(methodName, opt_arg) { - this.resolverMap_.get(methodName).resolve(opt_arg); - }, - - /** - * @param {string} methodName - * @return {!Promise} A promise that is resolved when the given method - * is called. - */ - whenCalled: function(methodName) { - return this.resolverMap_.get(methodName).promise; - }, - - /** - * Resets the PromiseResolver associated with the given method. - * @param {string} methodName - */ - resetResolver: function(methodName) { - this.resolverMap_.set(methodName, new PromiseResolver()); - }, - - /** - * Resets all PromiseResolvers. - */ - reset: function() { - this.resolverMap_.forEach(function(value, methodName) { - this.resolverMap_.set(methodName, new PromiseResolver()); - }.bind(this)); - }, - }; - - return { - TestBrowserProxy: TestBrowserProxy, - }; -});
diff --git a/chrome/test/data/webui/settings/test_extension_control_browser_proxy.js b/chrome/test/data/webui/settings/test_extension_control_browser_proxy.js index 2d08c2a9..3a70370 100644 --- a/chrome/test/data/webui/settings/test_extension_control_browser_proxy.js +++ b/chrome/test/data/webui/settings/test_extension_control_browser_proxy.js
@@ -5,17 +5,17 @@ /** * @constructor * @implements {settings.ExtensionControlBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ function TestExtensionControlBrowserProxy() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'disableExtension', 'manageExtension', ]); } TestExtensionControlBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ disableExtension: function(extensionId) {
diff --git a/chrome/test/data/webui/settings/test_languages_browser_proxy.js b/chrome/test/data/webui/settings/test_languages_browser_proxy.js index 5451cdc8..5304454 100644 --- a/chrome/test/data/webui/settings/test_languages_browser_proxy.js +++ b/chrome/test/data/webui/settings/test_languages_browser_proxy.js
@@ -6,14 +6,14 @@ /** * @constructor * @implements {settings.LanguagesBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestLanguagesBrowserProxy = function() { var methodNames = []; if (cr.isChromeOS || cr.isWindows) methodNames.push('getProspectiveUILanguage'); - settings.TestBrowserProxy.call(this, methodNames); + TestBrowserProxy.call(this, methodNames); /** @private {!LanguageSettingsPrivate} */ this.languageSettingsPrivate_ = new settings.FakeLanguageSettingsPrivate(); @@ -23,7 +23,7 @@ }; TestLanguagesBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ getLanguageSettingsPrivate: function() {
diff --git a/chrome/test/data/webui/settings/test_lifetime_browser_proxy.js b/chrome/test/data/webui/settings/test_lifetime_browser_proxy.js index dac0dcc..cb9f37e 100644 --- a/chrome/test/data/webui/settings/test_lifetime_browser_proxy.js +++ b/chrome/test/data/webui/settings/test_lifetime_browser_proxy.js
@@ -8,18 +8,18 @@ * * @constructor * @implements {settings.LifetimeBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestLifetimeBrowserProxy = function() { var methodNames = ['restart', 'relaunch']; if (cr.isChromeOS) methodNames.push('signOutAndRestart', 'factoryReset'); - settings.TestBrowserProxy.call(this, methodNames); + TestBrowserProxy.call(this, methodNames); }; TestLifetimeBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ restart: function() {
diff --git a/chrome/test/data/webui/settings/test_privacy_page_browser_proxy.js b/chrome/test/data/webui/settings/test_privacy_page_browser_proxy.js index 57bf33c..87424be7 100644 --- a/chrome/test/data/webui/settings/test_privacy_page_browser_proxy.js +++ b/chrome/test/data/webui/settings/test_privacy_page_browser_proxy.js
@@ -8,7 +8,7 @@ * @implements {settings.PrivacyPageBrowserProxy} */ function TestPrivacyPageBrowserProxy() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getMetricsReporting', 'getSafeBrowsingExtendedReporting', 'setMetricsReportingEnabled', @@ -18,7 +18,7 @@ } TestPrivacyPageBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @type {!MetricsReporting} */ metricsReporting: {
diff --git a/chrome/test/data/webui/settings/test_reset_browser_proxy.js b/chrome/test/data/webui/settings/test_reset_browser_proxy.js index 04780db..a6046d9 100644 --- a/chrome/test/data/webui/settings/test_reset_browser_proxy.js +++ b/chrome/test/data/webui/settings/test_reset_browser_proxy.js
@@ -6,10 +6,10 @@ /** * @constructor * @implements {settings.ResetBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestResetBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'performResetProfileSettings', 'onHideResetProfileDialog', 'onHideResetProfileBanner', @@ -21,7 +21,7 @@ }; TestResetBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ performResetProfileSettings: function(sendSettings, requestOrigin) {
diff --git a/chrome/test/data/webui/settings/test_search_engines_browser_proxy.js b/chrome/test/data/webui/settings/test_search_engines_browser_proxy.js index d1b0b2d..02dc557 100644 --- a/chrome/test/data/webui/settings/test_search_engines_browser_proxy.js +++ b/chrome/test/data/webui/settings/test_search_engines_browser_proxy.js
@@ -10,10 +10,10 @@ * * @constructor * @implements {settings.SearchEnginesBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestSearchEnginesBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'getSearchEnginesList', 'removeSearchEngine', 'searchEngineEditCancelled', @@ -47,7 +47,7 @@ }; TestSearchEnginesBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** @override */ setDefaultSearchEngine: function(modelIndex) {
diff --git a/chrome/test/data/webui/settings/test_site_settings_prefs_browser_proxy.js b/chrome/test/data/webui/settings/test_site_settings_prefs_browser_proxy.js index 97633e7..1ef3034 100644 --- a/chrome/test/data/webui/settings/test_site_settings_prefs_browser_proxy.js +++ b/chrome/test/data/webui/settings/test_site_settings_prefs_browser_proxy.js
@@ -76,10 +76,10 @@ * * @constructor * @implements {settings.SiteSettingsPrefsBrowserProxy} - * @extends {settings.TestBrowserProxy} + * @extends {TestBrowserProxy} */ var TestSiteSettingsPrefsBrowserProxy = function() { - settings.TestBrowserProxy.call(this, [ + TestBrowserProxy.call(this, [ 'fetchUsbDevices', 'fetchZoomLevels', 'getCookieDetails', @@ -123,7 +123,7 @@ }; TestSiteSettingsPrefsBrowserProxy.prototype = { - __proto__: settings.TestBrowserProxy.prototype, + __proto__: TestBrowserProxy.prototype, /** * Pretends an incognito session started or ended.
diff --git a/chrome/test/data/webui/test_browser_proxy.js b/chrome/test/data/webui/test_browser_proxy.js new file mode 100644 index 0000000..9d124ea --- /dev/null +++ b/chrome/test/data/webui/test_browser_proxy.js
@@ -0,0 +1,83 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * A base class for all test browser proxies to inherit from. Provides helper + * methods for allowing tests to track when a method was called. + * + * Subclasses are responsible for calling |methodCalled|, when a method is + * called, which will trigger callers of |whenCalled| to get notified. + * For example: + * -------------------------------------------------------------------------- + * var MyTestBrowserProxy = function() { + * TestBrowserProxy.call(this, ['myMethod']); + * }; + * MyTestBrowserProxy.prototype = function() { + * __proto__: TestBrowserProxy.prototype, + * + * myMethod: function(someId) { + * this.methodCalled('myMethod', someId); + * }, + * }; + * + * // Test code sample + * + * var testBrowserProxy = new MyTestBrowserProxy(); + * // ...Replacing real proxy with test proxy.... + * simulateClickFooButton(); + * testBrowserProxy.whenCalled('fooMethod').then(function(id) { + * assertEquals(EXPECTED_ID, id); + * }); + * -------------------------------------------------------------------------- + * + * @constructor + * @param {!Array<string>} methodNames Names of all methods whose calls + * need to be tracked. + */ +var TestBrowserProxy = function(methodNames) { + /** @private {!Map<string, !PromiseResolver>} */ + this.resolverMap_ = new Map(); + methodNames.forEach(this.resetResolver, this); +}; + +TestBrowserProxy.prototype = { + /** + * Called by subclasses when a tracked method is called from the code that + * is being tested. + * @param {string} methodName + * @param {*=} opt_arg Optional argument to be forwarded to the testing + * code, useful for checking whether the proxy method was called with + * the expected arguments. + * @protected + */ + methodCalled: function(methodName, opt_arg) { + this.resolverMap_.get(methodName).resolve(opt_arg); + }, + + /** + * @param {string} methodName + * @return {!Promise} A promise that is resolved when the given method + * is called. + */ + whenCalled: function(methodName) { + return this.resolverMap_.get(methodName).promise; + }, + + /** + * Resets the PromiseResolver associated with the given method. + * @param {string} methodName + */ + resetResolver: function(methodName) { + this.resolverMap_.set(methodName, new PromiseResolver()); + }, + + /** + * Resets all PromiseResolvers. + */ + reset: function() { + this.resolverMap_.forEach(function(value, methodName) { + this.resolverMap_.set(methodName, new PromiseResolver()); + }.bind(this)); + }, +};
diff --git a/components/certificate_reporting/error_report_unittest.cc b/components/certificate_reporting/error_report_unittest.cc index 18c548c..03667c5 100644 --- a/components/certificate_reporting/error_report_unittest.cc +++ b/components/certificate_reporting/error_report_unittest.cc
@@ -41,7 +41,7 @@ const char kDummyHostname[] = "dummy.hostname.com"; const char kDummyFailureLog[] = "dummy failure log"; -const char kTestCertFilename[] = "test_mail_google_com.pem"; +const char kTestCertFilename[] = "x509_verify_results.chain.pem"; const net::CertStatus kCertStatus = net::CERT_STATUS_COMMON_NAME_INVALID | net::CERT_STATUS_REVOKED; @@ -76,10 +76,17 @@ } std::string GetPEMEncodedChain() { - base::FilePath cert_path = - net::GetTestCertsDirectory().AppendASCII(kTestCertFilename); std::string cert_data; - EXPECT_TRUE(base::ReadFileToString(cert_path, &cert_data)); + std::vector<std::string> pem_certs; + scoped_refptr<net::X509Certificate> cert = + net::ImportCertFromFile(net::GetTestCertsDirectory(), kTestCertFilename); + if (!cert || !cert->GetPEMEncodedChain(&pem_certs)) { + ADD_FAILURE(); + return cert_data; + } + for (const auto& cert : pem_certs) { + cert_data += cert; + } return cert_data; }
diff --git a/components/sync/protocol/proto_value_conversions.cc b/components/sync/protocol/proto_value_conversions.cc index a565797..7df21d5 100644 --- a/components/sync/protocol/proto_value_conversions.cc +++ b/components/sync/protocol/proto_value_conversions.cc
@@ -112,22 +112,26 @@ void Visit(const P& parent_proto, const char* field_name, const google::protobuf::RepeatedPtrField<F>& repeated_field) { - std::unique_ptr<base::ListValue> list(new base::ListValue()); - for (const auto& field : repeated_field) { - list->Append(ToValue(field)); + if (!repeated_field.empty()) { + std::unique_ptr<base::ListValue> list(new base::ListValue()); + for (const auto& field : repeated_field) { + list->Append(ToValue(field)); + } + value_->Set(field_name, std::move(list)); } - value_->Set(field_name, std::move(list)); } template <class P, class F> void Visit(const P& parent_proto, const char* field_name, const google::protobuf::RepeatedField<F>& repeated_field) { - std::unique_ptr<base::ListValue> list(new base::ListValue()); - for (const auto& field : repeated_field) { - list->Append(ToValue(field)); + if (!repeated_field.empty()) { + std::unique_ptr<base::ListValue> list(new base::ListValue()); + for (const auto& field : repeated_field) { + list->Append(ToValue(field)); + } + value_->Set(field_name, std::move(list)); } - value_->Set(field_name, std::move(list)); } template <class P, class F>
diff --git a/components/viz/display_compositor/host_shared_bitmap_manager.cc b/components/viz/display_compositor/host_shared_bitmap_manager.cc index d781c94..0b8b359a 100644 --- a/components/viz/display_compositor/host_shared_bitmap_manager.cc +++ b/components/viz/display_compositor/host_shared_bitmap_manager.cc
@@ -51,6 +51,13 @@ manager_->FreeSharedMemoryFromMap(id()); } + // cc::SharedBitmap: + base::SharedMemoryHandle GetSharedMemoryHandle() const override { + if (!bitmap_data_->memory) + return base::SharedMemoryHandle(); + return bitmap_data_->memory->handle(); + } + private: scoped_refptr<BitmapData> bitmap_data_; HostSharedBitmapManager* manager_;
diff --git a/components/viz/display_compositor/host_shared_bitmap_manager_unittest.cc b/components/viz/display_compositor/host_shared_bitmap_manager_unittest.cc index ee7a92f1..c129e1d 100644 --- a/components/viz/display_compositor/host_shared_bitmap_manager_unittest.cc +++ b/components/viz/display_compositor/host_shared_bitmap_manager_unittest.cc
@@ -133,5 +133,27 @@ client.DidDeleteSharedBitmap(id); } +TEST_F(HostSharedBitmapManagerTest, SharedMemoryHandle) { + gfx::Size bitmap_size(1, 1); + size_t size_in_bytes; + EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); + std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); + auto shared_memory_guid = bitmap->handle().GetGUID(); + bitmap->CreateAndMapAnonymous(size_in_bytes); + memset(bitmap->memory(), 0xff, size_in_bytes); + cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); + + HostSharedBitmapManagerClient client(manager_.get()); + base::SharedMemoryHandle handle = bitmap->handle().Duplicate(); + client.ChildAllocatedSharedBitmap(size_in_bytes, handle, id); + + std::unique_ptr<cc::SharedBitmap> shared_bitmap; + shared_bitmap = manager_->GetSharedBitmapFromId(gfx::Size(1, 1), id); + EXPECT_EQ(shared_bitmap->GetSharedMemoryHandle().GetGUID(), + shared_memory_guid); + + client.DidDeleteSharedBitmap(id); +} + } // namespace } // namespace viz
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index b16b295..def8a56 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1122,6 +1122,8 @@ "renderer_host/input/motion_event_web.h", "renderer_host/input/mouse_wheel_event_queue.cc", "renderer_host/input/mouse_wheel_event_queue.h", + "renderer_host/input/mouse_wheel_phase_handler.cc", + "renderer_host/input/mouse_wheel_phase_handler.h", "renderer_host/input/mouse_wheel_rails_filter_mac.cc", "renderer_host/input/mouse_wheel_rails_filter_mac.h", "renderer_host/input/passthrough_touch_event_queue.cc",
diff --git a/content/browser/loader/resource_loader_unittest.cc b/content/browser/loader/resource_loader_unittest.cc index ff068e7..715b4818 100644 --- a/content/browser/loader/resource_loader_unittest.cc +++ b/content/browser/loader/resource_loader_unittest.cc
@@ -194,11 +194,6 @@ // Set up dummy values to use in test HTTPS requests. -scoped_refptr<net::X509Certificate> GetTestCert() { - return net::ImportCertFromFile(net::GetTestCertsDirectory(), - "test_mail_google_com.pem"); -} - const net::CertStatus kTestCertError = net::CERT_STATUS_DATE_INVALID; const int kTestSecurityBits = 256; // SSL3 TLS_DHE_RSA_WITH_AES_256_CBC_SHA @@ -222,7 +217,8 @@ void GetResponseInfo(net::HttpResponseInfo* info) override { // Get the original response info, but override the SSL info. net::URLRequestJob::GetResponseInfo(info); - info->ssl_info.cert = GetTestCert(); + info->ssl_info.cert = + net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem"); info->ssl_info.cert_status = kTestCertError; info->ssl_info.security_bits = kTestSecurityBits; info->ssl_info.connection_status = kTestConnectionStatus; @@ -599,7 +595,8 @@ // Set up the test client cert store. int store_request_count; std::vector<std::string> store_requested_authorities; - net::CertificateList dummy_certs(1, GetTestCert()); + net::CertificateList dummy_certs( + 1, net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem")); std::unique_ptr<ClientCertStoreStub> test_store(new ClientCertStoreStub( dummy_certs, &store_request_count, &store_requested_authorities)); SetClientCertStore(std::move(test_store));
diff --git a/content/browser/renderer_host/input/mouse_wheel_phase_handler.cc b/content/browser/renderer_host/input/mouse_wheel_phase_handler.cc new file mode 100644 index 0000000..318561b07 --- /dev/null +++ b/content/browser/renderer_host/input/mouse_wheel_phase_handler.cc
@@ -0,0 +1,99 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h" + +#include "content/browser/renderer_host/render_widget_host_impl.h" +#include "content/browser/renderer_host/render_widget_host_input_event_router.h" +#include "content/browser/renderer_host/render_widget_host_view_base.h" + +namespace content { +MouseWheelPhaseHandler::MouseWheelPhaseHandler( + RenderWidgetHostImpl* const host, + RenderWidgetHostViewBase* const host_view) + : host_(RenderWidgetHostImpl::From(host)), host_view_(host_view) {} + +void MouseWheelPhaseHandler::AddPhaseIfNeededAndScheduleEndEvent( + blink::WebMouseWheelEvent& mouse_wheel_event, + bool should_route_event) { + bool has_phase = + mouse_wheel_event.phase != blink::WebMouseWheelEvent::kPhaseNone || + mouse_wheel_event.momentum_phase != blink::WebMouseWheelEvent::kPhaseNone; + if (has_phase) { + if (mouse_wheel_event.phase == blink::WebMouseWheelEvent::kPhaseEnded) { + // Don't send the wheel end event immediately, start a timer instead to + // see whether momentum phase of the scrolling starts or not. + ScheduleMouseWheelEndDispatching(mouse_wheel_event, should_route_event); + } else if (mouse_wheel_event.phase == + blink::WebMouseWheelEvent::kPhaseBegan) { + // A new scrolling sequence has started, send the pending wheel end + // event to end the previous scrolling sequence. + DispatchPendingWheelEndEvent(); + } else if (mouse_wheel_event.momentum_phase == + blink::WebMouseWheelEvent::kPhaseBegan) { + // Momentum phase has started, drop the pending wheel end event to make + // sure that no wheel end event will be sent during the momentum phase + // of scrolling. + IgnorePendingWheelEndEvent(); + } + } else { // !has_phase + if (!mouse_wheel_end_dispatch_timer_.IsRunning()) { + mouse_wheel_event.phase = blink::WebMouseWheelEvent::kPhaseBegan; + ScheduleMouseWheelEndDispatching(mouse_wheel_event, should_route_event); + } else { // mouse_wheel_end_dispatch_timer_.IsRunning() + bool non_zero_delta = + mouse_wheel_event.delta_x || mouse_wheel_event.delta_y; + mouse_wheel_event.phase = + non_zero_delta ? blink::WebMouseWheelEvent::kPhaseChanged + : blink::WebMouseWheelEvent::kPhaseStationary; + mouse_wheel_end_dispatch_timer_.Reset(); + } + } +} + +void MouseWheelPhaseHandler::DispatchPendingWheelEndEvent() { + if (!mouse_wheel_end_dispatch_timer_.IsRunning()) + return; + + base::Closure task = mouse_wheel_end_dispatch_timer_.user_task(); + mouse_wheel_end_dispatch_timer_.Stop(); + task.Run(); +} + +void MouseWheelPhaseHandler::IgnorePendingWheelEndEvent() { + mouse_wheel_end_dispatch_timer_.Stop(); +} + +void MouseWheelPhaseHandler::SendSyntheticWheelEventWithPhaseEnded( + blink::WebMouseWheelEvent last_mouse_wheel_event, + bool should_route_event) { + DCHECK(host_view_->wheel_scroll_latching_enabled()); + blink::WebMouseWheelEvent mouse_wheel_event = last_mouse_wheel_event; + mouse_wheel_event.delta_x = 0; + mouse_wheel_event.delta_y = 0; + mouse_wheel_event.phase = blink::WebMouseWheelEvent::kPhaseEnded; + mouse_wheel_event.dispatch_type = + blink::WebInputEvent::DispatchType::kEventNonBlocking; + if (should_route_event) { + host_->delegate()->GetInputEventRouter()->RouteMouseWheelEvent( + host_view_, &mouse_wheel_event, + ui::LatencyInfo(ui::SourceEventType::WHEEL)); + } else { + host_view_->ProcessMouseWheelEvent( + mouse_wheel_event, ui::LatencyInfo(ui::SourceEventType::WHEEL)); + } +} + +void MouseWheelPhaseHandler::ScheduleMouseWheelEndDispatching( + blink::WebMouseWheelEvent wheel_event, + bool should_route_event) { + mouse_wheel_end_dispatch_timer_.Start( + FROM_HERE, + base::TimeDelta::FromMilliseconds( + kDefaultMouseWheelLatchingTransactionMs), + base::Bind(&MouseWheelPhaseHandler::SendSyntheticWheelEventWithPhaseEnded, + base::Unretained(this), wheel_event, should_route_event)); +} + +} // namespace content
diff --git a/content/browser/renderer_host/input/mouse_wheel_phase_handler.h b/content/browser/renderer_host/input/mouse_wheel_phase_handler.h new file mode 100644 index 0000000..aa4a20e4 --- /dev/null +++ b/content/browser/renderer_host/input/mouse_wheel_phase_handler.h
@@ -0,0 +1,50 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MOUSE_WHEEL_PHASE_HANDLER_H_ +#define MOUSE_WHEEL_PHASE_HANDLER_H_ + +#include "base/timer/timer.h" +#include "content/browser/renderer_host/render_widget_host_delegate.h" + +namespace content { +class RenderWidgetHostImpl; +class RenderWidgetHostViewBase; + +// The duration after which a synthetic wheel with zero deltas and +// phase = |kPhaseEnded| will be sent after the last wheel event. +const int64_t kDefaultMouseWheelLatchingTransactionMs = 100; + +class MouseWheelPhaseHandler { + public: + MouseWheelPhaseHandler(RenderWidgetHostImpl* const host, + RenderWidgetHostViewBase* const host_view); + ~MouseWheelPhaseHandler() {} + + void AddPhaseIfNeededAndScheduleEndEvent( + blink::WebMouseWheelEvent& mouse_wheel_event, + bool should_route_event); + void DispatchPendingWheelEndEvent(); + void IgnorePendingWheelEndEvent(); + bool HasPendingWheelEndEvent() const { + return mouse_wheel_end_dispatch_timer_.IsRunning(); + } + + private: + void SendSyntheticWheelEventWithPhaseEnded( + blink::WebMouseWheelEvent last_mouse_wheel_event, + bool should_route_event); + void ScheduleMouseWheelEndDispatching(blink::WebMouseWheelEvent wheel_event, + bool should_route_event); + + RenderWidgetHostImpl* const host_; + RenderWidgetHostViewBase* const host_view_; + base::OneShotTimer mouse_wheel_end_dispatch_timer_; + + DISALLOW_COPY_AND_ASSIGN(MouseWheelPhaseHandler); +}; + +} // namespace content + +#endif // MOUSE_WHEEL_PHASE_HANDLER_H_
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc index af376b9..492526c2 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -464,6 +464,7 @@ observing_root_window_(false), prev_top_shown_pix_(0.f), prev_bottom_shown_pix_(0.f), + mouse_wheel_phase_handler_(widget_host, this), weak_ptr_factory_(this) { // Set the layer which will hold the content layer for this view. The content // layer is managed by the DelegatedFrameHost. @@ -1823,13 +1824,19 @@ ui::LatencyInfo latency_info(ui::SourceEventType::WHEEL); latency_info.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); - if (SiteIsolationPolicy::AreCrossProcessFramesPossible() && - host_->delegate()->GetInputEventRouter()) { - blink::WebMouseWheelEvent wheel_event(event); + blink::WebMouseWheelEvent wheel_event(event); + bool should_route_event = + SiteIsolationPolicy::AreCrossProcessFramesPossible() && + host_->delegate()->GetInputEventRouter(); + if (wheel_scroll_latching_enabled()) { + mouse_wheel_phase_handler_.AddPhaseIfNeededAndScheduleEndEvent( + wheel_event, should_route_event); + } + if (should_route_event) { host_->delegate()->GetInputEventRouter()->RouteMouseWheelEvent( this, &wheel_event, latency_info); } else { - host_->ForwardWheelEventWithLatencyInfo(event, latency_info); + host_->ForwardWheelEventWithLatencyInfo(wheel_event, latency_info); } } @@ -1844,8 +1851,33 @@ ui::LatencyInfo latency_info = ui::WebInputEventTraits::CreateLatencyInfoForWebGestureEvent(event); - if (SiteIsolationPolicy::AreCrossProcessFramesPossible() && - host_->delegate()->GetInputEventRouter()) { + if (wheel_scroll_latching_enabled()) { + if (event.source_device == + blink::WebGestureDevice::kWebGestureDeviceTouchscreen) { + if (event.GetType() == blink::WebInputEvent::kGestureScrollBegin) { + // If there is a current scroll going on and a new scroll that isn't + // wheel based, send a synthetic wheel event with kPhaseEnded to cancel + // the current scroll. + mouse_wheel_phase_handler_.DispatchPendingWheelEndEvent(); + } else if (event.GetType() == blink::WebInputEvent::kGestureScrollEnd) { + // Make sure that the next wheel event will have phase = |kPhaseBegan|. + // This is for maintaining the correct phase info when some of the wheel + // events get ignored while a touchscreen scroll is going on. + mouse_wheel_phase_handler_.IgnorePendingWheelEndEvent(); + } + + } else if (event.GetType() == blink::WebInputEvent::kGestureFlingStart && + event.source_device == + blink::WebGestureDevice::kWebGestureDeviceTouchpad) { + // Ignore the pending wheel end event to avoid sending a wheel event with + // kPhaseEnded before a GFS. + mouse_wheel_phase_handler_.IgnorePendingWheelEndEvent(); + } + } + bool should_route_event = + SiteIsolationPolicy::AreCrossProcessFramesPossible() && + host_->delegate()->GetInputEventRouter(); + if (should_route_event) { blink::WebGestureEvent gesture_event(event); host_->delegate()->GetInputEventRouter()->RouteGestureEvent( this, &gesture_event, latency_info);
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h index b1816871..d7900c6 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.h +++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -24,6 +24,7 @@ #include "components/viz/frame_sinks/frame_evictor.h" #include "content/browser/accessibility/browser_accessibility_manager.h" #include "content/browser/android/content_view_core_impl_observer.h" +#include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h" #include "content/browser/renderer_host/input/stylus_text_selector.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" #include "content/browser/renderer_host/text_input_manager.h" @@ -430,6 +431,8 @@ base::ObserverList<DestructionObserver> destruction_observers_; + MouseWheelPhaseHandler mouse_wheel_phase_handler_; + base::WeakPtrFactory<RenderWidgetHostViewAndroid> weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAndroid);
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc index b6c9b0d4..6866b14 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -1804,7 +1804,7 @@ INPUT_EVENT_ACK_STATE_CONSUMED); sink_->ClearMessages(); - // Let the RenderWidgetHostViewEventHandler::mouse_wheel_phase_timer_ fire. A + // Let the MouseWheelPhaseHandler::mouse_wheel_end_dispatch_timer_ fire. A // synthetic wheel event with zero deltas and kPhaseEnded will be sent. base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), @@ -1866,7 +1866,7 @@ INPUT_EVENT_ACK_STATE_CONSUMED); sink_->ClearMessages(); - // Let the RenderWidgetHostViewEventHandler::mouse_wheel_phase_timer_ fire. No + // Let the MouseWheelPhaseHandler::mouse_wheel_end_dispatch_timer_ fire. No // synthetic wheel event will be sent since the timer has stopped. base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(),
diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h index ab9c08b..f416bcf9 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h
@@ -69,10 +69,6 @@ namespace content { -// The duration after which a synthetic wheel with zero deltas and -// phase = |kPhaseEnded| will be sent after the last wheel event. -const int64_t kDefaultMouseWheelLatchingTransactionMs = 100; - class BrowserAccessibilityDelegate; class BrowserAccessibilityManager; class RenderWidgetHostImpl;
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.cc b/content/browser/renderer_host/render_widget_host_view_event_handler.cc index 995d2e5..213ed4a 100644 --- a/content/browser/renderer_host/render_widget_host_view_event_handler.cc +++ b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -138,7 +138,8 @@ popup_child_host_view_(nullptr), popup_child_event_handler_(nullptr), delegate_(delegate), - window_(nullptr) {} + window_(nullptr), + mouse_wheel_phase_handler_(host, host_view) {} RenderWidgetHostViewEventHandler::~RenderWidgetHostViewEventHandler() {} @@ -341,7 +342,8 @@ if (mouse_wheel_event.delta_x != 0 || mouse_wheel_event.delta_y != 0) { bool should_route_event = ShouldRouteEvent(event); if (host_view_->wheel_scroll_latching_enabled()) - AddPhaseAndScheduleEndEvent(mouse_wheel_event, should_route_event); + mouse_wheel_phase_handler_.AddPhaseIfNeededAndScheduleEndEvent( + mouse_wheel_event, should_route_event); if (should_route_event) { host_->delegate()->GetInputEventRouter()->RouteMouseWheelEvent( host_view_, &mouse_wheel_event, *event->latency()); @@ -410,7 +412,8 @@ blink::WebMouseWheelEvent mouse_wheel_event = ui::MakeWebMouseWheelEvent( *event, base::Bind(&GetScreenLocationFromEvent)); if (host_view_->wheel_scroll_latching_enabled()) - AddPhaseAndScheduleEndEvent(mouse_wheel_event, should_route_event); + mouse_wheel_phase_handler_.AddPhaseIfNeededAndScheduleEndEvent( + mouse_wheel_event, should_route_event); if (should_route_event) { host_->delegate()->GetInputEventRouter()->RouteGestureEvent( host_view_, &gesture_event, @@ -435,9 +438,9 @@ } if (event->type() == ui::ET_SCROLL_FLING_START) { RecordAction(base::UserMetricsAction("TrackpadScrollFling")); - // Stop the timer to avoid sending a synthetic wheel event with - // kPhaseEnded. - mouse_wheel_end_dispatch_timer_.Stop(); + // Ignore the pending wheel end event to avoid sending a wheel event with + // kPhaseEnded before a GFS. + mouse_wheel_phase_handler_.IgnorePendingWheelEndEvent(); } } @@ -532,20 +535,15 @@ if (gesture.GetType() != blink::WebInputEvent::kUndefined) { if (event->type() == ui::ET_GESTURE_SCROLL_BEGIN) { RecordAction(base::UserMetricsAction("TouchscreenScroll")); - - if (mouse_wheel_end_dispatch_timer_.IsRunning()) { - // If there is a current scroll going on and a new scroll that isn't - // wheel based send a synthetic wheel event with kPhaseEnded to cancel - // the current scroll. - base::Closure task = mouse_wheel_end_dispatch_timer_.user_task(); - mouse_wheel_end_dispatch_timer_.Stop(); - task.Run(); - } + // If there is a current scroll going on and a new scroll that isn't + // wheel based send a synthetic wheel event with kPhaseEnded to cancel + // the current scroll. + mouse_wheel_phase_handler_.DispatchPendingWheelEndEvent(); } else if (event->type() == ui::ET_GESTURE_SCROLL_END) { // Make sure that the next wheel event will have phase = |kPhaseBegan|. // This is for maintaining the correct phase info when some of the wheel // events get ignored while a touchscreen scroll is going on. - mouse_wheel_end_dispatch_timer_.Stop(); + mouse_wheel_phase_handler_.IgnorePendingWheelEndEvent(); } else if (event->type() == ui::ET_SCROLL_FLING_START) { RecordAction(base::UserMetricsAction("TouchscreenScrollFling")); } @@ -911,51 +909,4 @@ host_->ForwardTouchEventWithLatencyInfo(event, latency); } -void RenderWidgetHostViewEventHandler::SendSyntheticWheelEventWithPhaseEnded( - blink::WebMouseWheelEvent last_mouse_wheel_event, - bool should_route_event) { - DCHECK(host_view_->wheel_scroll_latching_enabled()); - blink::WebMouseWheelEvent mouse_wheel_event = last_mouse_wheel_event; - mouse_wheel_event.delta_x = 0; - mouse_wheel_event.delta_y = 0; - mouse_wheel_event.phase = blink::WebMouseWheelEvent::kPhaseEnded; - mouse_wheel_event.dispatch_type = - blink::WebInputEvent::DispatchType::kEventNonBlocking; - if (should_route_event) { - host_->delegate()->GetInputEventRouter()->RouteMouseWheelEvent( - host_view_, &mouse_wheel_event, - ui::LatencyInfo(ui::SourceEventType::WHEEL)); - } else { - ProcessMouseWheelEvent(mouse_wheel_event, - ui::LatencyInfo(ui::SourceEventType::WHEEL)); - } -} - -void RenderWidgetHostViewEventHandler::AddPhaseAndScheduleEndEvent( - blink::WebMouseWheelEvent& mouse_wheel_event, - bool should_route_event) { - DCHECK_EQ(blink::WebMouseWheelEvent::kPhaseNone, mouse_wheel_event.phase); - DCHECK_EQ(blink::WebMouseWheelEvent::kPhaseNone, - mouse_wheel_event.momentum_phase); - - if (!mouse_wheel_end_dispatch_timer_.IsRunning()) { - mouse_wheel_event.phase = blink::WebMouseWheelEvent::kPhaseBegan; - mouse_wheel_end_dispatch_timer_.Start( - FROM_HERE, - base::TimeDelta::FromMilliseconds( - kDefaultMouseWheelLatchingTransactionMs), - base::Bind(&RenderWidgetHostViewEventHandler:: - SendSyntheticWheelEventWithPhaseEnded, - base::Unretained(this), mouse_wheel_event, - should_route_event)); - } else { - bool non_zero_delta = - mouse_wheel_event.delta_x || mouse_wheel_event.delta_y; - mouse_wheel_event.phase = non_zero_delta - ? blink::WebMouseWheelEvent::kPhaseChanged - : blink::WebMouseWheelEvent::kPhaseStationary; - mouse_wheel_end_dispatch_timer_.Reset(); - } -} - } // namespace content
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.h b/content/browser/renderer_host/render_widget_host_view_event_handler.h index c0bdfce4..24815cc 100644 --- a/content/browser/renderer_host/render_widget_host_view_event_handler.h +++ b/content/browser/renderer_host/render_widget_host_view_event_handler.h
@@ -8,7 +8,7 @@ #include <memory> #include "base/macros.h" -#include "base/timer/timer.h" +#include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h" #include "content/common/content_export.h" #include "content/public/browser/native_web_keyboard_event.h" #include "ui/aura/window_tracker.h" @@ -189,11 +189,6 @@ const ui::LatencyInfo& latency); void ProcessTouchEvent(const blink::WebTouchEvent& event, const ui::LatencyInfo& latency); - void SendSyntheticWheelEventWithPhaseEnded( - blink::WebMouseWheelEvent last_mouse_wheel_event, - bool should_route_event); - void AddPhaseAndScheduleEndEvent(blink::WebMouseWheelEvent& mouse_wheel_event, - bool should_route_event); // Whether return characters should be passed on to the RenderWidgetHostImpl. bool accept_return_character_; @@ -255,8 +250,7 @@ ui::EventHandler* popup_child_event_handler_; Delegate* const delegate_; aura::Window* window_; - - base::OneShotTimer mouse_wheel_end_dispatch_timer_; + MouseWheelPhaseHandler mouse_wheel_phase_handler_; DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewEventHandler); };
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h index 17803a94..a60dce5f 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -24,6 +24,7 @@ #include "base/time/time.h" #include "cc/surfaces/surface_id.h" #include "content/browser/renderer_host/browser_compositor_view_mac.h" +#include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h" #include "content/browser/renderer_host/input/mouse_wheel_rails_filter_mac.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" #include "content/browser/renderer_host/text_input_manager.h" @@ -411,6 +412,10 @@ // opaqueness changes. void UpdateBackgroundColorFromRenderer(SkColor color); + bool HasPendingWheelEndEventForTesting() { + return mouse_wheel_phase_handler_.HasPendingWheelEndEvent(); + } + // These member variables should be private, but the associated ObjC class // needs access to them and can't be made a friend. @@ -428,6 +433,8 @@ // determine if pinch gestures need to be thresholded. bool page_at_minimum_scale_; + MouseWheelPhaseHandler mouse_wheel_phase_handler_; + NSWindow* pepper_fullscreen_window() const { return pepper_fullscreen_window_; } @@ -487,12 +494,6 @@ // Get the focused view that should be used for retrieving the text selection. RenderWidgetHostViewBase* GetFocusedViewForTextSelection(); - void ScheduleMouseWheelEndDispatching(blink::WebMouseWheelEvent wheel_event, - bool should_route_event); - void DispatchPendingWheelEndEvent(); - void IgnorePendingWheelEndEvent(); - bool HasPendingWheelEndEvent(); - // Returns the RenderWidgetHostDelegate corresponding to the currently focused // RenderWidgetHost. It is different from |render_widget_host_->delegate()| // when there are focused inner WebContentses on the page. Also, this method @@ -575,8 +576,6 @@ SkColor background_color_ = SK_ColorTRANSPARENT; SkColor last_frame_root_background_color_ = SK_ColorTRANSPARENT; - base::OneShotTimer mouse_wheel_end_dispatch_timer_; - // Factory used to safely scope delayed calls to ShutdownHost(). base::WeakPtrFactory<RenderWidgetHostViewMac> weak_factory_;
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm index b71d8d6..9f5af20 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -440,6 +440,7 @@ bool is_guest_view_hack) : render_widget_host_(RenderWidgetHostImpl::From(widget)), page_at_minimum_scale_(true), + mouse_wheel_phase_handler_(RenderWidgetHostImpl::From(widget), this), is_loading_(false), allow_pause_for_resize_or_repaint_(true), is_guest_view_hack_(is_guest_view_hack), @@ -1751,50 +1752,6 @@ UpdateScreenInfo(cocoa_view_); } -void RenderWidgetHostViewMac::ScheduleMouseWheelEndDispatching( - blink::WebMouseWheelEvent wheel_event, - bool should_route_event) { - mouse_wheel_end_dispatch_timer_.Start( - FROM_HERE, - base::TimeDelta::FromMilliseconds( - kDefaultMouseWheelLatchingTransactionMs), - base::Bind( - &RenderWidgetHostViewMac::SendSyntheticWheelEventWithPhaseEnded, - base::Unretained(this), wheel_event, should_route_event)); -} - -void RenderWidgetHostViewMac::DispatchPendingWheelEndEvent() { - if (mouse_wheel_end_dispatch_timer_.IsRunning()) { - base::Closure task = mouse_wheel_end_dispatch_timer_.user_task(); - mouse_wheel_end_dispatch_timer_.Stop(); - task.Run(); - } -} - -void RenderWidgetHostViewMac::IgnorePendingWheelEndEvent() { - mouse_wheel_end_dispatch_timer_.Stop(); -} - -bool RenderWidgetHostViewMac::HasPendingWheelEndEvent() { - return mouse_wheel_end_dispatch_timer_.IsRunning(); -} - -void RenderWidgetHostViewMac::SendSyntheticWheelEventWithPhaseEnded( - blink::WebMouseWheelEvent wheel_event, - bool should_route_event) { - wheel_event.dispatch_type = - blink::WebInputEvent::DispatchType::kEventNonBlocking; - if (should_route_event) { - render_widget_host_->delegate() - ->GetInputEventRouter() - ->RouteMouseWheelEvent(this, &wheel_event, - ui::LatencyInfo(ui::SourceEventType::WHEEL)); - } else { - ProcessMouseWheelEvent(wheel_event, - ui::LatencyInfo(ui::SourceEventType::WHEEL)); - } -} - } // namespace content // RenderWidgetHostViewCocoa --------------------------------------------------- @@ -2396,7 +2353,8 @@ event, self); webEvent.rails_mode = mouseWheelFilter_.UpdateRailsMode(webEvent); if (renderWidgetHostView_->wheel_scroll_latching_enabled()) { - renderWidgetHostView_->ScheduleMouseWheelEndDispatching(webEvent, false); + renderWidgetHostView_->mouse_wheel_phase_handler_ + .AddPhaseIfNeededAndScheduleEndEvent(webEvent, false); } else { ui::LatencyInfo latency_info(ui::SourceEventType::WHEEL); latency_info.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); @@ -2609,25 +2567,15 @@ ui::LatencyInfo latency_info(ui::SourceEventType::WHEEL); latency_info.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); if (renderWidgetHostView_->wheel_scroll_latching_enabled()) { + renderWidgetHostView_->mouse_wheel_phase_handler_ + .AddPhaseIfNeededAndScheduleEndEvent( + webEvent, renderWidgetHostView_->ShouldRouteEvent(webEvent)); if (webEvent.phase == blink::WebMouseWheelEvent::kPhaseEnded) { - // Don't send the wheel end event immediately, start a timer instead to - // see whether momentum phase of the scrolling starts or not. - renderWidgetHostView_->ScheduleMouseWheelEndDispatching( - webEvent, renderWidgetHostView_->ShouldRouteEvent(webEvent)); + // A wheel end event is scheduled and will get dispatched if momentum + // phase doesn't start in 100ms. Don't sent the wheel end event + // immediately. return; } - if (webEvent.phase == blink::WebMouseWheelEvent::kPhaseBegan) { - // A new scrolling sequence has started, send the pending wheel end - // event to end the previous scrolling sequence. - renderWidgetHostView_->DispatchPendingWheelEndEvent(); - - } else if (webEvent.momentum_phase == - blink::WebMouseWheelEvent::kPhaseBegan) { - // Momentum phase has started, drop the pending wheel end event to make - // sure that no wheel end event will be sent during the momentum phase - // of scrolling. - renderWidgetHostView_->IgnorePendingWheelEndEvent(); - } } if (renderWidgetHostView_->ShouldRouteEvent(webEvent)) {
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm index 7bf0b1c..eaeffae 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
@@ -1387,7 +1387,7 @@ MockScrollWheelEventWithPhase(@selector(phaseEnded), 0); [view->cocoa_view() scrollWheel:wheelEvent2]; ASSERT_EQ(0U, process_host->sink().message_count()); - DCHECK(view->HasPendingWheelEndEvent()); + DCHECK(view->HasPendingWheelEndEventForTesting()); process_host->sink().ClearMessages(); host->ShutdownAndDestroyWidget(true); @@ -1433,7 +1433,7 @@ MockScrollWheelEventWithPhase(@selector(phaseEnded), 0); [view->cocoa_view() scrollWheel:wheelEvent2]; ASSERT_EQ(0U, process_host->sink().message_count()); - DCHECK(view->HasPendingWheelEndEvent()); + DCHECK(view->HasPendingWheelEndEventForTesting()); process_host->sink().ClearMessages(); // Send a wheel event with momentum phase started, this should stop the wheel @@ -1443,7 +1443,7 @@ ASSERT_TRUE(wheelEvent3); [view->cocoa_view() scrollWheel:wheelEvent3]; ASSERT_EQ(1U, process_host->sink().message_count()); - DCHECK(!view->HasPendingWheelEndEvent()); + DCHECK(!view->HasPendingWheelEndEventForTesting()); process_host->sink().ClearMessages(); host->ShutdownAndDestroyWidget(true); @@ -1489,7 +1489,7 @@ MockScrollWheelEventWithPhase(@selector(phaseEnded), 0); [view->cocoa_view() scrollWheel:wheelEvent2]; ASSERT_EQ(0U, process_host->sink().message_count()); - DCHECK(view->HasPendingWheelEndEvent()); + DCHECK(view->HasPendingWheelEndEventForTesting()); process_host->sink().ClearMessages(); // Send a wheel event with phase started, this should stop the wheel end @@ -1500,7 +1500,7 @@ ASSERT_TRUE(wheelEvent3); [view->cocoa_view() scrollWheel:wheelEvent3]; ASSERT_EQ(2U, process_host->sink().message_count()); - DCHECK(!view->HasPendingWheelEndEvent()); + DCHECK(!view->HasPendingWheelEndEventForTesting()); process_host->sink().ClearMessages(); host->ShutdownAndDestroyWidget(true);
diff --git a/content/browser/webui/shared_resources_data_source.cc b/content/browser/webui/shared_resources_data_source.cc index 9442629c..d9aaee7d 100644 --- a/content/browser/webui/shared_resources_data_source.cc +++ b/content/browser/webui/shared_resources_data_source.cc
@@ -39,6 +39,13 @@ {"../../views/resources/default_200_percent/common/", "images/2x/apps/"}, {"../../webui/resources/cr_elements/", "cr_elements/"}}; +const struct { + const char* const path; + const int resource_id; +} kAdditionalResourceMapEntries[] = { + {"js/mojo_bindings.js", IDR_WEBUI_MOJO_BINDINGS_JS}, +}; + void AddResource(const std::string& path, int resource_id, ResourcesMap* resources_map) { @@ -60,7 +67,10 @@ } } } - + for (size_t i = 0; i < arraysize(kAdditionalResourceMapEntries); ++i) { + const auto& entry = kAdditionalResourceMapEntries[i]; + AddResource(entry.path, entry.resource_id, result); + } return result; }
diff --git a/content/child/resource_dispatcher.cc b/content/child/resource_dispatcher.cc index f9768451..8e78c10 100644 --- a/content/child/resource_dispatcher.cc +++ b/content/child/resource_dispatcher.cc
@@ -666,11 +666,13 @@ scoped_refptr<base::SingleThreadTaskRunner> task_runner = loading_task_runner ? loading_task_runner : thread_task_runner_; std::unique_ptr<URLLoaderClientImpl> client( - new URLLoaderClientImpl(request_id, this, std::move(task_runner))); + new URLLoaderClientImpl(request_id, this, task_runner)); std::unique_ptr<ThrottlingURLLoader> url_loader = ThrottlingURLLoader::CreateLoaderAndStart( url_loader_factory, std::move(throttles), routing_id, request_id, - mojom::kURLLoadOptionNone, std::move(request), client.get()); + mojom::kURLLoadOptionNone, std::move(request), client.get(), + std::move(task_runner)); + ; pending_requests_[request_id]->url_loader = std::move(url_loader); pending_requests_[request_id]->url_loader_client = std::move(client); } else {
diff --git a/content/child/url_loader_client_impl.cc b/content/child/url_loader_client_impl.cc index 6671134..e49889b3 100644 --- a/content/child/url_loader_client_impl.cc +++ b/content/child/url_loader_client_impl.cc
@@ -17,8 +17,7 @@ int request_id, ResourceDispatcher* resource_dispatcher, scoped_refptr<base::SingleThreadTaskRunner> task_runner) - : binding_(this), - request_id_(request_id), + : request_id_(request_id), resource_dispatcher_(resource_dispatcher), task_runner_(std::move(task_runner)), weak_factory_(this) {} @@ -28,10 +27,6 @@ body_consumer_->Cancel(); } -void URLLoaderClientImpl::Bind(mojom::URLLoaderClientPtr* client_ptr) { - binding_.Bind(mojo::MakeRequest(client_ptr), task_runner_); -} - void URLLoaderClientImpl::SetDefersLoading() { is_deferred_ = true; if (body_consumer_)
diff --git a/content/child/url_loader_client_impl.h b/content/child/url_loader_client_impl.h index 39fb7db..872c678 100644 --- a/content/child/url_loader_client_impl.h +++ b/content/child/url_loader_client_impl.h
@@ -13,7 +13,6 @@ #include "content/common/content_export.h" #include "content/common/url_loader.mojom.h" #include "ipc/ipc_message.h" -#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/system/data_pipe.h" namespace base { @@ -37,8 +36,6 @@ scoped_refptr<base::SingleThreadTaskRunner> task_runner); ~URLLoaderClientImpl() override; - void Bind(mojom::URLLoaderClientPtr* client_ptr); - // Sets |is_deferred_|. From now, the received messages are not dispatched // to clients until UnsetDefersLoading is called. void SetDefersLoading(); @@ -69,7 +66,6 @@ bool NeedsStoringMessage() const; void StoreAndDispatch(const IPC::Message& message); - mojo::Binding<mojom::URLLoaderClient> binding_; scoped_refptr<URLResponseBodyConsumer> body_consumer_; mojom::DownloadedTempFilePtr downloaded_file_; std::vector<IPC::Message> deferred_messages_;
diff --git a/content/common/throttling_url_loader.cc b/content/common/throttling_url_loader.cc index 9f258c9..df1ef23 100644 --- a/content/common/throttling_url_loader.cc +++ b/content/common/throttling_url_loader.cc
@@ -4,8 +4,50 @@ #include "content/common/throttling_url_loader.h" +#include "base/single_thread_task_runner.h" + namespace content { +ThrottlingURLLoader::StartInfo::StartInfo( + mojom::URLLoaderFactory* in_url_loader_factory, + int32_t in_routing_id, + int32_t in_request_id, + uint32_t in_options, + std::unique_ptr<ResourceRequest> in_url_request, + scoped_refptr<base::SingleThreadTaskRunner> in_task_runner) + : url_loader_factory(in_url_loader_factory), + routing_id(in_routing_id), + request_id(in_request_id), + options(in_options), + url_request(std::move(in_url_request)), + task_runner(std::move(in_task_runner)) {} + +ThrottlingURLLoader::StartInfo::~StartInfo() = default; + +ThrottlingURLLoader::ResponseInfo::ResponseInfo( + const ResourceResponseHead& in_response_head, + const base::Optional<net::SSLInfo>& in_ssl_info, + mojom::DownloadedTempFilePtr in_downloaded_file) + : response_head(in_response_head), + ssl_info(in_ssl_info), + downloaded_file(std::move(in_downloaded_file)) {} + +ThrottlingURLLoader::ResponseInfo::~ResponseInfo() = default; + +ThrottlingURLLoader::RedirectInfo::RedirectInfo( + const net::RedirectInfo& in_redirect_info, + const ResourceResponseHead& in_response_head) + : redirect_info(in_redirect_info), response_head(in_response_head) {} + +ThrottlingURLLoader::RedirectInfo::~RedirectInfo() = default; + +ThrottlingURLLoader::PriorityInfo::PriorityInfo( + net::RequestPriority in_priority, + int32_t in_intra_priority_value) + : priority(in_priority), intra_priority_value(in_intra_priority_value) {} + +ThrottlingURLLoader::PriorityInfo::~PriorityInfo() = default; + // static std::unique_ptr<ThrottlingURLLoader> ThrottlingURLLoader::CreateLoaderAndStart( mojom::URLLoaderFactory* factory, @@ -14,11 +56,12 @@ int32_t request_id, uint32_t options, std::unique_ptr<ResourceRequest> url_request, - mojom::URLLoaderClient* client) { + mojom::URLLoaderClient* client, + scoped_refptr<base::SingleThreadTaskRunner> task_runner) { std::unique_ptr<ThrottlingURLLoader> loader( new ThrottlingURLLoader(std::move(throttles), client)); loader->Start(factory, routing_id, request_id, options, - std::move(url_request)); + std::move(url_request), std::move(task_runner)); return loader; } @@ -33,9 +76,8 @@ int32_t intra_priority_value) { if (!url_loader_ && !cancelled_by_throttle_) { DCHECK_EQ(DEFERRED_START, deferred_stage_); - set_priority_cached_ = true; - priority_ = priority; - intra_priority_value_ = intra_priority_value; + priority_info_ = + base::MakeUnique<PriorityInfo>(priority, intra_priority_value); return; } @@ -55,11 +97,13 @@ } } -void ThrottlingURLLoader::Start(mojom::URLLoaderFactory* factory, - int32_t routing_id, - int32_t request_id, - uint32_t options, - std::unique_ptr<ResourceRequest> url_request) { +void ThrottlingURLLoader::Start( + mojom::URLLoaderFactory* factory, + int32_t routing_id, + int32_t request_id, + uint32_t options, + std::unique_ptr<ResourceRequest> url_request, + scoped_refptr<base::SingleThreadTaskRunner> task_runner) { DCHECK_EQ(DEFERRED_NONE, deferred_stage_); DCHECK(!cancelled_by_throttle_); @@ -72,18 +116,17 @@ if (deferred) { deferred_stage_ = DEFERRED_START; - url_loader_factory_ = factory; - routing_id_ = routing_id; - request_id_ = request_id; - options_ = options; - url_request_ = std::move(url_request); + start_info_ = base::MakeUnique<StartInfo>(factory, routing_id, request_id, + options, std::move(url_request), + std::move(task_runner)); return; } } - factory->CreateLoaderAndStart(mojo::MakeRequest(&url_loader_), routing_id, - request_id, options, *url_request, - client_binding_.CreateInterfacePtrAndBind()); + factory->CreateLoaderAndStart( + mojo::MakeRequest(&url_loader_), routing_id, request_id, options, + *url_request, + client_binding_.CreateInterfacePtrAndBind(std::move(task_runner))); } void ThrottlingURLLoader::OnReceiveResponse( @@ -101,9 +144,8 @@ if (deferred) { deferred_stage_ = DEFERRED_RESPONSE; - response_head_ = response_head; - ssl_info_ = ssl_info; - downloaded_file_ = std::move(downloaded_file); + response_info_ = base::MakeUnique<ResponseInfo>( + response_head, ssl_info, std::move(downloaded_file)); client_binding_.PauseIncomingMethodCallProcessing(); return; } @@ -127,8 +169,8 @@ if (deferred) { deferred_stage_ = DEFERRED_REDIRECT; - redirect_info_ = redirect_info; - response_head_ = response_head; + redirect_info_ = + base::MakeUnique<RedirectInfo>(redirect_info, response_head); client_binding_.PauseIncomingMethodCallProcessing(); return; } @@ -212,25 +254,31 @@ switch (deferred_stage_) { case DEFERRED_START: { - url_loader_factory_->CreateLoaderAndStart( - mojo::MakeRequest(&url_loader_), routing_id_, request_id_, options_, - *url_request_, client_binding_.CreateInterfacePtrAndBind()); + start_info_->url_loader_factory->CreateLoaderAndStart( + mojo::MakeRequest(&url_loader_), start_info_->routing_id, + start_info_->request_id, start_info_->options, + *start_info_->url_request, + client_binding_.CreateInterfacePtrAndBind( + std::move(start_info_->task_runner))); - if (set_priority_cached_) { - set_priority_cached_ = false; - url_loader_->SetPriority(priority_, intra_priority_value_); + if (priority_info_) { + auto priority_info = std::move(priority_info_); + url_loader_->SetPriority(priority_info->priority, + priority_info->intra_priority_value); } break; } case DEFERRED_REDIRECT: { client_binding_.ResumeIncomingMethodCallProcessing(); - forwarding_client_->OnReceiveRedirect(redirect_info_, response_head_); + forwarding_client_->OnReceiveRedirect(redirect_info_->redirect_info, + redirect_info_->response_head); break; } case DEFERRED_RESPONSE: { client_binding_.ResumeIncomingMethodCallProcessing(); - forwarding_client_->OnReceiveResponse(response_head_, ssl_info_, - std::move(downloaded_file_)); + forwarding_client_->OnReceiveResponse( + response_info_->response_head, response_info_->ssl_info, + std::move(response_info_->downloaded_file)); break; } default:
diff --git a/content/common/throttling_url_loader.h b/content/common/throttling_url_loader.h index 202d51dc..98dc5e4 100644 --- a/content/common/throttling_url_loader.h +++ b/content/common/throttling_url_loader.h
@@ -7,12 +7,18 @@ #include <memory> +#include "base/memory/ref_counted.h" +#include "base/threading/thread_task_runner_handle.h" #include "content/common/content_export.h" #include "content/common/url_loader.mojom.h" #include "content/common/url_loader_factory.mojom.h" #include "content/public/common/url_loader_throttle.h" #include "mojo/public/cpp/bindings/binding.h" +namespace base { +class SingleThreadTaskRunner; +} + namespace content { namespace mojom { @@ -34,7 +40,9 @@ int32_t request_id, uint32_t options, std::unique_ptr<ResourceRequest> url_request, - mojom::URLLoaderClient* client); + mojom::URLLoaderClient* client, + scoped_refptr<base::SingleThreadTaskRunner> task_runner = + base::ThreadTaskRunnerHandle::Get()); ~ThrottlingURLLoader() override; @@ -49,7 +57,8 @@ int32_t routing_id, int32_t request_id, uint32_t options, - std::unique_ptr<ResourceRequest> url_request); + std::unique_ptr<ResourceRequest> url_request, + scoped_refptr<base::SingleThreadTaskRunner> task_runner); // mojom::URLLoaderClient implementation: void OnReceiveResponse(const ResourceResponseHead& response_head, @@ -87,27 +96,60 @@ mojom::URLLoaderAssociatedPtr url_loader_; + struct StartInfo { + StartInfo(mojom::URLLoaderFactory* in_url_loader_factory, + int32_t in_routing_id, + int32_t in_request_id, + uint32_t in_options, + std::unique_ptr<ResourceRequest> in_url_request, + scoped_refptr<base::SingleThreadTaskRunner> in_task_runner); + ~StartInfo(); + + mojom::URLLoaderFactory* url_loader_factory; + int32_t routing_id; + int32_t request_id; + uint32_t options; + std::unique_ptr<ResourceRequest> url_request; + // |task_runner_| is used to set up |client_binding_|. + scoped_refptr<base::SingleThreadTaskRunner> task_runner; + }; // Set if start is deferred. - mojom::URLLoaderFactory* url_loader_factory_ = nullptr; - int32_t routing_id_ = -1; - int32_t request_id_ = -1; - uint32_t options_ = mojom::kURLLoadOptionNone; - std::unique_ptr<ResourceRequest> url_request_; + std::unique_ptr<StartInfo> start_info_; - // Set if either response or redirect is deferred. - ResourceResponseHead response_head_; + struct ResponseInfo { + ResponseInfo(const ResourceResponseHead& in_response_head, + const base::Optional<net::SSLInfo>& in_ssl_info, + mojom::DownloadedTempFilePtr in_downloaded_file); + ~ResponseInfo(); + ResourceResponseHead response_head; + base::Optional<net::SSLInfo> ssl_info; + mojom::DownloadedTempFilePtr downloaded_file; + }; // Set if response is deferred. - base::Optional<net::SSLInfo> ssl_info_; - mojom::DownloadedTempFilePtr downloaded_file_; + std::unique_ptr<ResponseInfo> response_info_; + struct RedirectInfo { + RedirectInfo(const net::RedirectInfo& in_redirect_info, + const ResourceResponseHead& in_response_head); + ~RedirectInfo(); + + net::RedirectInfo redirect_info; + ResourceResponseHead response_head; + }; // Set if redirect is deferred. - net::RedirectInfo redirect_info_; + std::unique_ptr<RedirectInfo> redirect_info_; + struct PriorityInfo { + PriorityInfo(net::RequestPriority in_priority, + int32_t in_intra_priority_value); + ~PriorityInfo(); + + net::RequestPriority priority; + int32_t intra_priority_value; + }; // Set if request is deferred and SetPriority() is called. - bool set_priority_cached_ = false; - net::RequestPriority priority_ = net::MINIMUM_PRIORITY; - int32_t intra_priority_value_ = 0; + std::unique_ptr<PriorityInfo> priority_info_; DISALLOW_COPY_AND_ASSIGN(ThrottlingURLLoader); };
diff --git a/ios/chrome/browser/ui/payments/credit_card_edit_mediator.mm b/ios/chrome/browser/ui/payments/credit_card_edit_mediator.mm index 814e302..0b2f3c1 100644 --- a/ios/chrome/browser/ui/payments/credit_card_edit_mediator.mm +++ b/ios/chrome/browser/ui/payments/credit_card_edit_mediator.mm
@@ -49,6 +49,12 @@ @property(nonatomic, strong) NSMutableDictionary<NSNumber*, EditorField*>* fieldsMap; +// The reference to the autofill::CREDIT_CARD_EXP_MONTH field. +@property(nonatomic, strong) EditorField* creditCardExpMonthField; + +// The reference to the autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR field. +@property(nonatomic, strong) EditorField* creditCardExpYearField; + @end @implementation CreditCardEditViewControllerMediator @@ -59,6 +65,8 @@ @synthesize paymentRequest = _paymentRequest; @synthesize creditCard = _creditCard; @synthesize fieldsMap = _fieldsMap; +@synthesize creditCardExpMonthField = _creditCardExpMonthField; +@synthesize creditCardExpYearField = _creditCardExpYearField; - (instancetype)initWithPaymentRequest:(PaymentRequest*)paymentRequest creditCard:(autofill::CreditCard*)creditCard { @@ -83,7 +91,10 @@ - (void)setConsumer:(id<PaymentRequestEditConsumer>)consumer { _consumer = consumer; + [self.consumer setEditorFields:[self createEditorFields]]; + [self loadMonths]; + [self loadYears]; } - (void)setBillingProfile:(autofill::AutofillProfile*)billingProfile { @@ -155,6 +166,55 @@ #pragma mark - Helper methods +// Queries the month numbers. +- (void)loadMonths { + NSMutableArray<NSString*>* months = [[NSMutableArray alloc] init]; + + for (int month = 1; month <= 12; month++) { + NSString* monthString = [NSString stringWithFormat:@"%02d", month]; + [months addObject:monthString]; + } + + // Notify the view controller asynchronously to allow for the view to update. + __weak CreditCardEditViewControllerMediator* weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + [weakSelf.consumer setOptions:months + forEditorField:weakSelf.creditCardExpMonthField]; + }); +} + +// Queries the year numbers. +- (void)loadYears { + NSMutableArray<NSString*>* years = [[NSMutableArray alloc] init]; + + NSDateComponents* dateComponents = + [[NSCalendar currentCalendar] components:NSCalendarUnitYear + fromDate:[NSDate date]]; + + int currentYear = [dateComponents year]; + bool foundCardExpirationYear = false; + for (int year = currentYear; year < currentYear + 10; year++) { + NSString* yearString = [NSString stringWithFormat:@"%04d", year]; + if ([yearString isEqualToString:_creditCardExpYearField.value]) + foundCardExpirationYear = true; + [years addObject:yearString]; + } + + // Ensure that the expiration year on a user's saved card is + // always available as one of the options to select from. This is + // useful in the case that the user's card is expired. + if (!foundCardExpirationYear) { + [years insertObject:_creditCardExpYearField.value atIndex:0]; + } + + // Notify the view controller asynchronously to allow for the view to update. + __weak CreditCardEditViewControllerMediator* weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + [weakSelf.consumer setOptions:years + forEditorField:weakSelf.creditCardExpYearField]; + }); +} + - (NSArray<EditorField*>*)createEditorFields { NSMutableArray<EditorField*>* fields = [[NSMutableArray alloc] init]; @@ -220,11 +280,16 @@ } [fields addObject:creditCardNameField]; + NSDateComponents* dateComponents = [[NSCalendar currentCalendar] + components:NSCalendarUnitMonth | NSCalendarUnitYear + fromDate:[NSDate date]]; + // Expiration month field. + int currentMonth = [dateComponents month]; NSString* creditCardExpMonth = _creditCard ? [NSString stringWithFormat:@"%02d", _creditCard->expiration_month()] - : nil; + : [NSString stringWithFormat:@"%02d", currentMonth]; fieldKey = [NSNumber numberWithInt:AutofillUITypeCreditCardExpMonth]; EditorField* expirationMonthField = self.fieldsMap[fieldKey]; if (!expirationMonthField) { @@ -236,13 +301,15 @@ required:YES]; [self.fieldsMap setObject:expirationMonthField forKey:fieldKey]; } + self.creditCardExpMonthField = expirationMonthField; [fields addObject:expirationMonthField]; // Expiration year field. + int currentYear = [dateComponents year]; NSString* creditCardExpYear = _creditCard ? [NSString stringWithFormat:@"%04d", _creditCard->expiration_year()] - : nil; + : [NSString stringWithFormat:@"%04d", currentYear]; fieldKey = [NSNumber numberWithInt:AutofillUITypeCreditCardExpYear]; EditorField* expirationYearField = self.fieldsMap[fieldKey]; if (!expirationYearField) { @@ -254,6 +321,7 @@ required:YES]; [self.fieldsMap setObject:expirationYearField forKey:fieldKey]; } + self.creditCardExpYearField = expirationYearField; [fields addObject:expirationYearField]; // The billing address field appears after the expiration year field.
diff --git a/ios/web/public/test/BUILD.gn b/ios/web/public/test/BUILD.gn index 90975bd2..6c8c1fd 100644 --- a/ios/web/public/test/BUILD.gn +++ b/ios/web/public/test/BUILD.gn
@@ -3,6 +3,7 @@ # found in the LICENSE file. source_set("test") { + configs += [ "//build/config/compiler:enable_arc" ] testonly = true deps = [
diff --git a/ios/web/public/test/fakes/crw_test_web_state_observer.h b/ios/web/public/test/fakes/crw_test_web_state_observer.h index 9879352..f0c4bda 100644 --- a/ios/web/public/test/fakes/crw_test_web_state_observer.h +++ b/ios/web/public/test/fakes/crw_test_web_state_observer.h
@@ -11,6 +11,9 @@ // Test implementation of CRWWebStateObserver protocol. @interface CRWTestWebStateObserver : NSObject<CRWWebStateObserver> +// Arguments passed to |webState:navigationItemsPrunedCount:|. +@property(nonatomic, readonly) + web::TestNavigationItemsPrunedInfo* navigationItemsPrunedInfo; // Arguments passed to |webState:didStartNavigation:|. @property(nonatomic, readonly) web::TestDidStartNavigationInfo* didStartNavigationInfo;
diff --git a/ios/web/public/test/fakes/crw_test_web_state_observer.mm b/ios/web/public/test/fakes/crw_test_web_state_observer.mm index 2d806c22..0571b1c 100644 --- a/ios/web/public/test/fakes/crw_test_web_state_observer.mm +++ b/ios/web/public/test/fakes/crw_test_web_state_observer.mm
@@ -23,6 +23,9 @@ } @implementation CRWTestWebStateObserver { + // Arguments passed to |webState:navigationItemsPrunedCount:|. + std::unique_ptr<web::TestNavigationItemsPrunedInfo> + _navigationItemsPrunedInfo; // Arguments passed to |webState:didStartNavigation:|. std::unique_ptr<web::TestDidStartNavigationInfo> _didStartNavigationInfo; // Arguments passed to |webState:didFinishNavigationForURL:|. @@ -62,6 +65,10 @@ std::unique_ptr<web::TestStartLoadingInfo> _startLoadingInfo; } +- (web::TestNavigationItemsPrunedInfo*)navigationItemsPrunedInfo { + return _navigationItemsPrunedInfo.get(); +} + - (web::TestDidStartNavigationInfo*)didStartNavigationInfo { return _didStartNavigationInfo.get(); } @@ -130,6 +137,14 @@ #pragma mark CRWWebStateObserver methods - - (void)webState:(web::WebState*)webState + navigationItemsPrunedCount:(size_t)pruned_item_count { + _navigationItemsPrunedInfo = + base::MakeUnique<web::TestNavigationItemsPrunedInfo>(); + _navigationItemsPrunedInfo->web_state = webState; + _navigationItemsPrunedInfo->count = pruned_item_count; +} + +- (void)webState:(web::WebState*)webState didStartNavigation:(web::NavigationContext*)navigation { ASSERT_TRUE(!navigation->GetError() || !navigation->IsSameDocument()); _didStartNavigationInfo = base::MakeUnique<web::TestDidStartNavigationInfo>();
diff --git a/ios/web/public/test/js_test_util.h b/ios/web/public/test/js_test_util.h index ea21a50..c7b1e80 100644 --- a/ios/web/public/test/js_test_util.h +++ b/ios/web/public/test/js_test_util.h
@@ -27,7 +27,11 @@ // Executes JavaScript on |web_view| and returns the result as an id. // |error| can be null and will be updated only if script execution fails. -id ExecuteJavaScript(WKWebView* web_view, NSString* script, NSError** error); +// TODO(crbug.com/730062): Remove __unsafe_unretained when all callers are +// are converted to ARC. +id ExecuteJavaScript(WKWebView* web_view, + NSString* script, + NSError* __unsafe_unretained* error); // Executes JavaScript on |web_view| and returns the result as an id. // Fails if there was an error during script execution.
diff --git a/ios/web/public/test/js_test_util.mm b/ios/web/public/test/js_test_util.mm index 9ddf9a8..4f9c7545 100644 --- a/ios/web/public/test/js_test_util.mm +++ b/ios/web/public/test/js_test_util.mm
@@ -7,22 +7,25 @@ #import <WebKit/WebKit.h> #include "base/logging.h" -#import "base/mac/scoped_nsobject.h" #include "base/strings/sys_string_conversions.h" #import "ios/testing/wait_util.h" #import "ios/web/public/web_state/js/crw_js_injection_manager.h" #import "ios/web/public/web_state/js/crw_js_injection_receiver.h" #include "testing/gtest/include/gtest/gtest.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + namespace web { id ExecuteJavaScript(CRWJSInjectionManager* manager, NSString* script) { - __block base::scoped_nsobject<NSString> result; + __block NSString* result; __block bool completed = false; [manager executeJavaScript:script completionHandler:^(id execution_result, NSError* error) { DCHECK(!error); - result.reset([execution_result copy]); + result = [execution_result copy]; completed = true; }]; @@ -35,12 +38,12 @@ << "CRWJSInjectionManager failed to complete javascript execution.\n" << base::SysNSStringToUTF8( [[NSThread callStackSymbols] componentsJoinedByString:@"\n"]); - return [[result retain] autorelease]; + return result; } id ExecuteJavaScript(CRWJSInjectionReceiver* receiver, NSString* script) { - base::scoped_nsobject<CRWJSInjectionManager> manager( - [[CRWJSInjectionManager alloc] initWithReceiver:receiver]); + CRWJSInjectionManager* manager = + [[CRWJSInjectionManager alloc] initWithReceiver:receiver]; return ExecuteJavaScript(manager, script); } @@ -48,14 +51,16 @@ return ExecuteJavaScript(web_view, script, nullptr); } -id ExecuteJavaScript(WKWebView* web_view, NSString* script, NSError** error) { - __block base::scoped_nsobject<id> result; +id ExecuteJavaScript(WKWebView* web_view, + NSString* script, + NSError* __unsafe_unretained* error) { + __block id result; __block bool completed = false; + __block NSError* temp_error = nil; [web_view evaluateJavaScript:script completionHandler:^(id script_result, NSError* script_error) { - result.reset([script_result copy]); - if (error) - *error = [[script_error copy] autorelease]; + result = [script_result copy]; + temp_error = [script_error copy]; completed = true; }]; BOOL success = testing::WaitUntilConditionOrTimeout( @@ -66,7 +71,11 @@ EXPECT_TRUE(success) << "WKWebView failed to complete javascript execution.\n" << base::SysNSStringToUTF8([[NSThread callStackSymbols] componentsJoinedByString:@"\n"]); - return [[result retain] autorelease]; + if (error) { + NSError* __autoreleasing auto_released_error = temp_error; + *error = auto_released_error; + } + return result; } } // namespace web
diff --git a/ios/web/public/test/native_controller_test_util.mm b/ios/web/public/test/native_controller_test_util.mm index bee41ab..18ea8ad 100644 --- a/ios/web/public/test/native_controller_test_util.mm +++ b/ios/web/public/test/native_controller_test_util.mm
@@ -7,6 +7,10 @@ #import "ios/web/web_state/ui/crw_web_controller.h" #import "ios/web/web_state/web_state_impl.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + namespace web { namespace test {
diff --git a/ios/web/public/test/navigation_test_util.mm b/ios/web/public/test/navigation_test_util.mm index fb8904d..c546cec8 100644 --- a/ios/web/public/test/navigation_test_util.mm +++ b/ios/web/public/test/navigation_test_util.mm
@@ -6,6 +6,10 @@ #import "ios/web/public/navigation_manager.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + using web::NavigationManager; namespace web {
diff --git a/ios/web/public/test/scoped_testing_web_client.mm b/ios/web/public/test/scoped_testing_web_client.mm index 98807ea..2c883f8 100644 --- a/ios/web/public/test/scoped_testing_web_client.mm +++ b/ios/web/public/test/scoped_testing_web_client.mm
@@ -7,6 +7,10 @@ #include "base/logging.h" #import "ios/web/public/web_client.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + namespace web { ScopedTestingWebClient::ScopedTestingWebClient(
diff --git a/ios/web/public/test/test_redirect_observer.mm b/ios/web/public/test/test_redirect_observer.mm index d5762072..c162911 100644 --- a/ios/web/public/test/test_redirect_observer.mm +++ b/ios/web/public/test/test_redirect_observer.mm
@@ -11,6 +11,10 @@ #include "ios/web/public/web_state/navigation_context.h" #import "ios/web/public/web_state/web_state.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + namespace { // The key under which TestRedirectObservers are stored in a WebState's user // data.
diff --git a/ios/web/public/test/web_test.mm b/ios/web/public/test/web_test.mm index e3525b9..c9943dc9 100644 --- a/ios/web/public/test/web_test.mm +++ b/ios/web/public/test/web_test.mm
@@ -9,6 +9,10 @@ #include "ios/web/public/web_state/global_web_state_observer.h" #import "ios/web/public/test/fakes/test_web_client.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + namespace web { class WebTestRenderProcessCrashObserver : public GlobalWebStateObserver {
diff --git a/ios/web/public/test/web_test_with_web_state.mm b/ios/web/public/test/web_test_with_web_state.mm index 963c635..cdad447 100644 --- a/ios/web/public/test/web_test_with_web_state.mm +++ b/ios/web/public/test/web_test_with_web_state.mm
@@ -13,6 +13,10 @@ #import "ios/web/web_state/ui/crw_web_controller.h" #import "ios/web/web_state/web_state_impl.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + namespace { // Returns CRWWebController for the given |web_state|. CRWWebController* GetWebController(web::WebState* web_state) { @@ -127,18 +131,18 @@ } id WebTestWithWebState::ExecuteJavaScript(NSString* script) { - __block base::scoped_nsprotocol<id> executionResult; + __block id executionResult; __block bool executionCompleted = false; [GetWebController(web_state()) executeJavaScript:script completionHandler:^(id result, NSError* error) { - executionResult.reset([result copy]); + executionResult = [result copy]; executionCompleted = true; }]; base::test::ios::WaitUntilCondition(^{ return executionCompleted; }); - return [[executionResult retain] autorelease]; + return executionResult; } void WebTestWithWebState::DestroyWebState() {
diff --git a/ios/web/public/test/web_view_interaction_test_util.mm b/ios/web/public/test/web_view_interaction_test_util.mm index 9e629c5..ba7c730 100644 --- a/ios/web/public/test/web_view_interaction_test_util.mm +++ b/ios/web/public/test/web_view_interaction_test_util.mm
@@ -14,6 +14,10 @@ #import "ios/web/web_state/ui/crw_web_view_proxy_impl.h" #import "ios/web/web_state/web_state_impl.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + using web::NavigationManager; namespace web { @@ -30,7 +34,7 @@ __block std::unique_ptr<base::Value> result; __block bool did_finish = false; web_state->ExecuteJavaScript(base::UTF8ToUTF16(script), - base::BindBlock(^(const base::Value* value) { + base::BindBlockArc(^(const base::Value* value) { if (value) result = value->CreateDeepCopy(); did_finish = true;
diff --git a/ios/web/public/web_state/web_state_observer_bridge.h b/ios/web/public/web_state/web_state_observer_bridge.h index 7712ad7b..f60b59ab 100644 --- a/ios/web/public/web_state/web_state_observer_bridge.h +++ b/ios/web/public/web_state/web_state_observer_bridge.h
@@ -18,6 +18,10 @@ @protocol CRWWebStateObserver<NSObject> @optional +// Invoked by WebStateObserverBridge::NavigationItemsPruned. +- (void)webState:(web::WebState*)webState + navigationItemsPrunedCount:(size_t)pruned_item_count; + // Invoked by WebStateObserverBridge::NavigationItemCommitted. - (void)webState:(web::WebState*)webState didCommitNavigationWithDetails: @@ -99,6 +103,7 @@ ~WebStateObserverBridge() override; // web::WebStateObserver methods. + void NavigationItemsPruned(size_t pruned_item_count) override; void NavigationItemCommitted( const LoadCommittedDetails& load_details) override; void DidStartNavigation(NavigationContext* navigation_context) override;
diff --git a/ios/web/web_state/web_state_observer_bridge.mm b/ios/web/web_state/web_state_observer_bridge.mm index 04a67543..24d3e00a 100644 --- a/ios/web/web_state/web_state_observer_bridge.mm +++ b/ios/web/web_state/web_state_observer_bridge.mm
@@ -14,6 +14,14 @@ WebStateObserverBridge::~WebStateObserverBridge() { } +void WebStateObserverBridge::NavigationItemsPruned(size_t pruned_item_count) { + SEL selector = @selector(webState:navigationItemsPrunedCount:); + if ([observer_ respondsToSelector:selector]) { + [observer_ webState:web_state() + navigationItemsPrunedCount:pruned_item_count]; + } +} + void WebStateObserverBridge::NavigationItemCommitted( const web::LoadCommittedDetails& load_detatils) { SEL selector = @selector(webState:didCommitNavigationWithDetails:);
diff --git a/ios/web/web_state/web_state_observer_bridge_unittest.mm b/ios/web/web_state/web_state_observer_bridge_unittest.mm index 9b19baa..2bebe8d 100644 --- a/ios/web/web_state/web_state_observer_bridge_unittest.mm +++ b/ios/web/web_state/web_state_observer_bridge_unittest.mm
@@ -38,6 +38,17 @@ scoped_refptr<net::HttpResponseHeaders> response_headers_; }; +// Tests |webState:navigationItemsPrunedCount:| forwarding. +TEST_F(WebStateObserverBridgeTest, NavigationItemsPruned) { + ASSERT_FALSE([observer_ navigationItemsPrunedInfo]); + + bridge_->NavigationItemsPruned(1); + + ASSERT_TRUE([observer_ navigationItemsPrunedInfo]); + EXPECT_EQ(&test_web_state_, [observer_ navigationItemsPrunedInfo]->web_state); + EXPECT_EQ(1, [observer_ navigationItemsPrunedInfo]->count); +} + // Tests |webState:didStartNavigation:| forwarding. TEST_F(WebStateObserverBridgeTest, DidStartNavigation) { ASSERT_FALSE([observer_ didStartNavigationInfo]);
diff --git a/ios/web_view/BUILD.gn b/ios/web_view/BUILD.gn index 2907892..fbc8174 100644 --- a/ios/web_view/BUILD.gn +++ b/ios/web_view/BUILD.gn
@@ -168,9 +168,9 @@ ] } -# Same framework as ChromeWebView above, but also exposes CroNet. +# Same framework as ChromeWebView above, but also exposes Cronet. ios_framework_bundle("cronet_web_view_combined") { - output_name = "CroNetChromeWebView" + output_name = "CronetChromeWebView" info_plist = "Info.plist" public_headers = ios_web_view_public_headers
diff --git a/ios/web_view/internal/cwv_web_view.mm b/ios/web_view/internal/cwv_web_view.mm index d2992789..616defce 100644 --- a/ios/web_view/internal/cwv_web_view.mm +++ b/ios/web_view/internal/cwv_web_view.mm
@@ -77,12 +77,16 @@ @property(nonatomic, readwrite) double estimatedProgress; @property(nonatomic, readwrite) BOOL canGoBack; @property(nonatomic, readwrite) BOOL canGoForward; +@property(nonatomic, readwrite) NSURL* lastCommittedURL; @property(nonatomic, readwrite) BOOL loading; @property(nonatomic, readwrite, copy) NSString* title; +@property(nonatomic, readwrite) NSURL* visibleURL; // Updates the availability of the back/forward navigation properties exposed // through |canGoBack| and |canGoForward|. - (void)updateNavigationAvailability; +// Updates the URLs exposed through |lastCommittedURL| and |visibleURL|. +- (void)updateCurrentURLs; @end @@ -94,12 +98,14 @@ @synthesize canGoForward = _canGoForward; @synthesize configuration = _configuration; @synthesize estimatedProgress = _estimatedProgress; +@synthesize lastCommittedURL = _lastCommittedURL; @synthesize loading = _loading; @synthesize navigationDelegate = _navigationDelegate; @synthesize title = _title; @synthesize translationController = _translationController; @synthesize UIDelegate = _UIDelegate; @synthesize scrollView = _scrollView; +@synthesize visibleURL = _visibleURL; + (NSString*)userAgentProduct { return gUserAgentProduct; @@ -135,14 +141,6 @@ return self; } -- (NSURL*)visibleURL { - return net::NSURLWithGURL(_webState->GetVisibleURL()); -} - -- (NSURL*)lastCommittedURL { - return net::NSURLWithGURL(_webState->GetLastCommittedURL()); -} - - (void)goBack { if (_webState->GetNavigationManager()) _webState->GetNavigationManager()->GoBack(); @@ -173,6 +171,7 @@ params.extra_headers.reset([request.allHTTPHeaderFields copy]); params.post_data.reset([request.HTTPBody copy]); _webState->GetNavigationManager()->LoadURLWithParams(params); + [self updateCurrentURLs]; } - (void)evaluateJavaScript:(NSString*)javaScriptString @@ -191,6 +190,11 @@ // WebStateObserver implementation. - (void)webState:(web::WebState*)webState + navigationItemsPruned:(size_t)pruned_item_count { + [self updateCurrentURLs]; +} + +- (void)webState:(web::WebState*)webState didStartNavigation:(web::NavigationContext*)navigation { [self updateNavigationAvailability]; SEL selector = @selector(webViewDidStartProvisionalNavigation:); @@ -210,6 +214,7 @@ - (void)webState:(web::WebState*)webState didFinishNavigation:(web::NavigationContext*)navigation { [self updateNavigationAvailability]; + [self updateCurrentURLs]; } - (void)webState:(web::WebState*)webState didLoadPageWithSuccess:(BOOL)success { @@ -388,4 +393,9 @@ _webState && _webState->GetNavigationManager()->CanGoForward(); } +- (void)updateCurrentURLs { + self.lastCommittedURL = net::NSURLWithGURL(_webState->GetLastCommittedURL()); + self.visibleURL = net::NSURLWithGURL(_webState->GetVisibleURL()); +} + @end
diff --git a/ios/web_view/public/cwv_web_view.h b/ios/web_view/public/cwv_web_view.h index ad7592b..1265614 100644 --- a/ios/web_view/public/cwv_web_view.h +++ b/ios/web_view/public/cwv_web_view.h
@@ -42,10 +42,10 @@ // Whether or not this web view is loading a page. KVO compliant. @property(nonatomic, readonly, getter=isLoading) BOOL loading; -// The URL displayed in the url bar. +// The URL displayed in the url bar. KVO Compliant. @property(nonatomic, readonly) NSURL* visibleURL; -// The URL of the current document. +// The URL of the current document. KVO Compliant. @property(nonatomic, readonly) NSURL* lastCommittedURL; // The current page title. KVO compliant.
diff --git a/ios/web_view/test/chrome_web_view_kvo_inttest.mm b/ios/web_view/test/chrome_web_view_kvo_inttest.mm index a15f365..c7badae 100644 --- a/ios/web_view/test/chrome_web_view_kvo_inttest.mm +++ b/ios/web_view/test/chrome_web_view_kvo_inttest.mm
@@ -153,4 +153,43 @@ EXPECT_FALSE([observer.lastValue boolValue]); } +// Tests that CWVWebView correctly reports |visibleURL| and |lastCommittedURL|. +TEST_F(ChromeWebViewKvoTest, URLs) { + Observer* last_committed_url_observer = [[Observer alloc] init]; + [last_committed_url_observer setObservedObject:web_view_ + keyPath:@"lastCommittedURL"]; + + Observer* visible_url_observer = [[Observer alloc] init]; + [visible_url_observer setObservedObject:web_view_ keyPath:@"visibleURL"]; + + GURL page_2 = GetUrlForPageWithTitle("Page 2"); + NSURL* page_2_url = net::NSURLWithGURL(page_2); + + std::string page_1_html = base::StringPrintf( + "<a id='link_1' href='%s'>Link 1</a>", page_2.spec().c_str()); + NSURL* page_1_url = + net::NSURLWithGURL(GetUrlForPageWithTitleAndBody("Page 1", page_1_html)); + + [web_view_ loadRequest:[NSURLRequest requestWithURL:page_1_url]]; + + // |visibleURL| will update immediately + EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue); + + WaitForPageLoadCompletion(web_view_); + EXPECT_NSEQ(page_1_url, last_committed_url_observer.lastValue); + EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue); + + // Navigate to page 2. + EXPECT_TRUE(test::TapChromeWebViewElementWithId(web_view_, @"link_1")); + WaitForPageLoadCompletion(web_view_); + EXPECT_NSEQ(page_2_url, last_committed_url_observer.lastValue); + EXPECT_NSEQ(page_2_url, visible_url_observer.lastValue); + + // Navigate back to page 1. + [web_view_ goBack]; + WaitForPageLoadCompletion(web_view_); + EXPECT_NSEQ(page_1_url, last_committed_url_observer.lastValue); + EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue); +} + } // namespace ios_web_view
diff --git a/media/gpu/dxva_video_decode_accelerator_win.cc b/media/gpu/dxva_video_decode_accelerator_win.cc index c2c4629..0fdf3d6c 100644 --- a/media/gpu/dxva_video_decode_accelerator_win.cc +++ b/media/gpu/dxva_video_decode_accelerator_win.cc
@@ -1300,7 +1300,7 @@ static const gfx::Size kCachedH264Resolution = GetMaxResolutionForGUIDs( kDefaultMax, {DXVA2_ModeH264_E, DXVA2_Intel_ModeH264_E}, {gfx::Size(2560, 1440), gfx::Size(3840, 2160), gfx::Size(4096, 2160), - gfx::Size(4096, 2304), gfx::Size(7680, 4320)}); + gfx::Size(4096, 2304)}); return kCachedH264Resolution; }
diff --git a/net/BUILD.gn b/net/BUILD.gn index 43ecc96..3bfe976 100644 --- a/net/BUILD.gn +++ b/net/BUILD.gn
@@ -2387,7 +2387,6 @@ "data/ssl/certificates/start_after_expiry.pem", "data/ssl/certificates/subjectAltName_sanity_check.pem", "data/ssl/certificates/subjectAltName_www_example_com.pem", - "data/ssl/certificates/test_mail_google_com.pem", "data/ssl/certificates/thawte.single.pem", "data/ssl/certificates/tls_feature_extension.pem", "data/ssl/certificates/tripadvisor-verisign-chain.pem",
diff --git a/net/cert/cert_verify_proc.cc b/net/cert/cert_verify_proc.cc index 60fc941..a32173c 100644 --- a/net/cert/cert_verify_proc.cc +++ b/net/cert/cert_verify_proc.cc
@@ -804,36 +804,36 @@ // C=FR, ST=France, L=Paris, O=PM/SGDN, OU=DCSSI, // CN=IGC/A/emailAddress=igca@sgdn.pm.gouv.fr { - {0x79, 0x23, 0xd5, 0x8d, 0x0f, 0xe0, 0x3c, 0xe6, 0xab, 0xad, 0xae, - 0x27, 0x1a, 0x6d, 0x94, 0xf4, 0x14, 0xd1, 0xa8, 0x73}, + {0x79, 0x23, 0xd5, 0x8d, 0x0f, 0xe0, 0x3c, 0xe6, 0xab, 0xad, + 0xae, 0x27, 0x1a, 0x6d, 0x94, 0xf4, 0x14, 0xd1, 0xa8, 0x73}, kDomainsANSSI, }, // C=IN, O=India PKI, CN=CCA India 2007 // Expires: July 4th 2015. { - {0xfe, 0xe3, 0x95, 0x21, 0x2d, 0x5f, 0xea, 0xfc, 0x7e, 0xdc, 0xcf, - 0x88, 0x3f, 0x1e, 0xc0, 0x58, 0x27, 0xd8, 0xb8, 0xe4}, + {0xfe, 0xe3, 0x95, 0x21, 0x2d, 0x5f, 0xea, 0xfc, 0x7e, 0xdc, + 0xcf, 0x88, 0x3f, 0x1e, 0xc0, 0x58, 0x27, 0xd8, 0xb8, 0xe4}, kDomainsIndiaCCA, }, // C=IN, O=India PKI, CN=CCA India 2011 // Expires: March 11 2016. { - {0xf1, 0x42, 0xf6, 0xa2, 0x7d, 0x29, 0x3e, 0xa8, 0xf9, 0x64, 0x52, - 0x56, 0xed, 0x07, 0xa8, 0x63, 0xf2, 0xdb, 0x1c, 0xdf}, + {0xf1, 0x42, 0xf6, 0xa2, 0x7d, 0x29, 0x3e, 0xa8, 0xf9, 0x64, + 0x52, 0x56, 0xed, 0x07, 0xa8, 0x63, 0xf2, 0xdb, 0x1c, 0xdf}, kDomainsIndiaCCA, }, // C=IN, O=India PKI, CN=CCA India 2014 // Expires: March 5 2024. { - {0x36, 0x8c, 0x4a, 0x1e, 0x2d, 0xb7, 0x81, 0xe8, 0x6b, 0xed, 0x5a, - 0x0a, 0x42, 0xb8, 0xc5, 0xcf, 0x6d, 0xb3, 0x57, 0xe1}, + {0x36, 0x8c, 0x4a, 0x1e, 0x2d, 0xb7, 0x81, 0xe8, 0x6b, 0xed, + 0x5a, 0x0a, 0x42, 0xb8, 0xc5, 0xcf, 0x6d, 0xb3, 0x57, 0xe1}, kDomainsIndiaCCA, }, // Not a real certificate - just for testing. This is the SPKI hash of // the keys used in net/data/ssl/certificates/name_constraint_*.pem. { - {0x48, 0x49, 0x4a, 0xc5, 0x5a, 0x3e, 0xcd, 0xc5, 0x62, 0x9f, 0xef, - 0x23, 0x14, 0xad, 0x05, 0xa9, 0x2a, 0x5c, 0x39, 0xc0}, + {0x7b, 0x29, 0x02, 0xb7, 0x17, 0x63, 0x7f, 0xef, 0x53, 0x70, + 0xff, 0x9d, 0x95, 0xee, 0x11, 0x64, 0xe7, 0x2e, 0x59, 0xf2}, kDomainsTest, }, };
diff --git a/net/cert/cert_verify_proc_unittest.cc b/net/cert/cert_verify_proc_unittest.cc index 9f84e0e..beae1af 100644 --- a/net/cert/cert_verify_proc_unittest.cc +++ b/net/cert/cert_verify_proc_unittest.cc
@@ -1236,16 +1236,16 @@ std::vector<std::string> expected_public_key_hashes = { // Target - "sha1/fSQl8GTgpmark/9mDK9qzIIGfFE=", - "sha256/5I5+4ndAhwDiWd1WqfBgDkKAAIEhsq0MfAx25Hoc+dA=", + "sha1/eykCtxdjf+9TcP+dle4RZOcuWfI=", + "sha256/jpsUnwFFTO7e+l5zQDYhutkf7uA+dCVsWfRvv0UDX40=", // Intermediate - "sha1/7+0Ms07hEkAc6zVPOo+uLtMEwfU=", - "sha256/MtnqgdSwAIgEjse7SpxnmyKoo/RTiL9CDIWwFnz4nas=", + "sha1/UCuWOTyNcmLrd/Ie2jTjCHyGV7M=", + "sha256/D9u0epgvPYlG9YiVp7V+IMT+xhUpB5BhsS/INjDXc4Y=", // Trust anchor - "sha1/dJwvO4gEVIZvretArGyBNggjlrQ=", - "sha256/z7x1Szes+eQOqJp6rBK3u/tQMs55FYojZHUCFiBcjuc="}; + "sha1/7lRAdhiny84OU7rosLno5A+v0ls=", + "sha256/VypP3VWL7OaqTJ7mIBehWYlv8khPuFHpWiearZI2YjI="}; // |public_key_hashes| does not have an ordering guarantee. EXPECT_THAT(expected_public_key_hashes,
diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc index 94d76d5..b015999 100644 --- a/net/cookies/cookie_monster.cc +++ b/net/cookies/cookie_monster.cc
@@ -222,14 +222,12 @@ }; // For a CookieItVector iterator range [|it_begin|, |it_end|), -// sorts the first |num_sort| + 1 elements by LastAccessDate(). -// The + 1 element exists so for any interval of length <= |num_sort| starting -// from |cookies_its_begin|, a LastAccessDate() bound can be found. +// sorts the first |num_sort| elements by LastAccessDate(). void SortLeastRecentlyAccessed(CookieMonster::CookieItVector::iterator it_begin, CookieMonster::CookieItVector::iterator it_end, size_t num_sort) { - DCHECK_LT(static_cast<int>(num_sort), it_end - it_begin); - std::partial_sort(it_begin, it_begin + num_sort + 1, it_end, LRACookieSorter); + DCHECK_LE(static_cast<int>(num_sort), it_end - it_begin); + std::partial_sort(it_begin, it_begin + num_sort, it_end, LRACookieSorter); } // Given a single cookie vector |cookie_its|, pushs all of the secure cookies in @@ -2022,18 +2020,44 @@ SplitCookieVectorIntoSecureAndNonSecure(cookie_its, &secure_cookie_its, &non_secure_cookie_its); size_t non_secure_purge_goal = - std::min<size_t>(purge_goal, non_secure_cookie_its.size() - 1); + std::min<size_t>(purge_goal, non_secure_cookie_its.size()); + base::Time earliest_non_secure_access_time; size_t just_deleted = GarbageCollectLeastRecentlyAccessed( - current, safe_date, non_secure_purge_goal, non_secure_cookie_its); + current, safe_date, non_secure_purge_goal, non_secure_cookie_its, + &earliest_non_secure_access_time); num_deleted += just_deleted; - if (just_deleted < purge_goal && secure_cookie_its.size() > 0) { - size_t secure_purge_goal = std::min<size_t>( - purge_goal - just_deleted, secure_cookie_its.size() - 1); + if (secure_cookie_its.size() == 0) { + // This case is unlikely, but should still update + // |earliest_access_time_| if only have non-secure cookies. + earliest_access_time_ = earliest_non_secure_access_time; + // Garbage collection can't delete all cookies. + DCHECK(!earliest_access_time_.is_null()); + } else if (just_deleted < purge_goal) { + size_t secure_purge_goal = std::min<size_t>(purge_goal - just_deleted, + secure_cookie_its.size()); + base::Time earliest_secure_access_time; num_deleted += GarbageCollectLeastRecentlyAccessed( - current, safe_date, secure_purge_goal, secure_cookie_its); + current, safe_date, secure_purge_goal, secure_cookie_its, + &earliest_secure_access_time); + + if (!earliest_non_secure_access_time.is_null() && + earliest_non_secure_access_time < earliest_secure_access_time) { + earliest_access_time_ = earliest_non_secure_access_time; + } else { + earliest_access_time_ = earliest_secure_access_time; + } + + // Garbage collection can't delete all cookies. + DCHECK(!earliest_access_time_.is_null()); } + + // If there are secure cookies, but deleting non-secure cookies was enough + // to meet the purge goal, secure cookies are never examined, so + // |earliest_access_time_| can't be determined. Leaving it alone will mean + // it's no later than the real earliest last access time, so this won't + // lead to any problems. } } @@ -2132,13 +2156,17 @@ const base::Time& current, const base::Time& safe_date, size_t purge_goal, - CookieItVector cookie_its) { + CookieItVector cookie_its, + base::Time* earliest_time) { + DCHECK_LE(purge_goal, cookie_its.size()); DCHECK(thread_checker_.CalledOnValidThread()); - // Sorts up to *and including* |cookie_its[purge_goal]|, so - // |earliest_access_time| will be properly assigned even if + // Sorts up to *and including* |cookie_its[purge_goal]| (if it exists), so + // |earliest_time| will be properly assigned even if // |global_purge_it| == |cookie_its.begin() + purge_goal|. - SortLeastRecentlyAccessed(cookie_its.begin(), cookie_its.end(), purge_goal); + SortLeastRecentlyAccessed( + cookie_its.begin(), cookie_its.end(), + cookie_its.size() < purge_goal ? purge_goal + 1 : purge_goal); // Find boundary to cookies older than safe_date. CookieItVector::iterator global_purge_it = LowerBoundAccessDate( cookie_its.begin(), cookie_its.begin() + purge_goal, safe_date); @@ -2146,8 +2174,8 @@ size_t num_deleted = GarbageCollectDeleteRange(current, DELETE_COOKIE_EVICTED_GLOBAL, cookie_its.begin(), global_purge_it); - // Set access day to the oldest cookie that wasn't deleted. - earliest_access_time_ = (*global_purge_it)->second->LastAccessDate(); + if (global_purge_it != cookie_its.end()) + *earliest_time = (*global_purge_it)->second->LastAccessDate(); return num_deleted; }
diff --git a/net/cookies/cookie_monster.h b/net/cookies/cookie_monster.h index 1ddbccc..219b5b0 100644 --- a/net/cookies/cookie_monster.h +++ b/net/cookies/cookie_monster.h
@@ -257,8 +257,9 @@ // For garbage collection constants. FRIEND_TEST_ALL_PREFIXES(CookieMonsterTest, TestHostGarbageCollection); - FRIEND_TEST_ALL_PREFIXES(CookieMonsterTest, TestTotalGarbageCollection); FRIEND_TEST_ALL_PREFIXES(CookieMonsterTest, GarbageCollectionTriggers); + FRIEND_TEST_ALL_PREFIXES(CookieMonsterTest, + GarbageCollectWithSecureCookiesOnly); FRIEND_TEST_ALL_PREFIXES(CookieMonsterTest, TestGCTimes); // For validation of key values. @@ -605,10 +606,14 @@ // Helper for GarbageCollect(). Deletes cookies in |cookie_its| from least to // most recently used, but only before |safe_date|. Also will stop deleting // when the number of remaining cookies hits |purge_goal|. + // + // Sets |earliest_time| to be the earliest last access time of a cookie that + // was not deleted, or base::Time() if no such cookie exists. size_t GarbageCollectLeastRecentlyAccessed(const base::Time& current, const base::Time& safe_date, size_t purge_goal, - CookieItVector cookie_its); + CookieItVector cookie_its, + base::Time* earliest_time); // Find the key (for lookup in cookies_) based on the given domain. // See comment on keys before the CookieMap typedef. @@ -712,12 +717,12 @@ // Approximate date of access time of least recently accessed cookie // in |cookies_|. Note that this is not guaranteed to be accurate, only a) // to be before or equal to the actual time, and b) to be accurate - // immediately after a garbage collection that scans through all the cookies. - // This value is used to determine whether global garbage collection might - // find cookies to purge. - // Note: The default Time() constructor will create a value that compares - // earlier than any other time value, which is wanted. Thus this - // value is not initialized. + // immediately after a garbage collection that scans through all the cookies + // (When garbage collection does not scan through all cookies, it may not be + // updated). This value is used to determine whether global garbage collection + // might find cookies to purge. Note: The default Time() constructor will + // create a value that compares earlier than any other time value, which is + // wanted. Thus this value is not initialized. base::Time earliest_access_time_; // During loading, holds the set of all loaded cookie creation times. Used to
diff --git a/net/cookies/cookie_monster_unittest.cc b/net/cookies/cookie_monster_unittest.cc index 3b958f2..da46fd9 100644 --- a/net/cookies/cookie_monster_unittest.cc +++ b/net/cookies/cookie_monster_unittest.cc
@@ -2222,6 +2222,25 @@ } } +// Tests garbage collection when there are only secure cookies. +// See https://crbug/730000 +TEST_F(CookieMonsterTest, GarbageCollectWithSecureCookiesOnly) { + // Create a CookieMonster at its cookie limit. A bit confusing, but the second + // number is a subset of the first number. + std::unique_ptr<CookieMonster> cm = CreateMonsterFromStoreForGC( + CookieMonster::kMaxCookies /* num_secure_cookies */, + CookieMonster::kMaxCookies /* num_old_secure_cookies */, + 0 /* num_non_secure_cookies */, 0 /* num_old_non_secure_cookies */, + CookieMonster::kSafeFromGlobalPurgeDays * 2 /* days_old */); + EXPECT_EQ(CookieMonster::kMaxCookies, GetAllCookies(cm.get()).size()); + + // Trigger purge with a secure cookie (So there are still no insecure + // cookies). + SetCookie(cm.get(), GURL("https://newdomain.com"), "b=2; Secure"); + EXPECT_EQ(CookieMonster::kMaxCookies - CookieMonster::kPurgeCookies, + GetAllCookies(cm.get()).size()); +} + // Tests that if the main load event happens before the loaded event for a // particular key, the tasks for that key run first. TEST_F(CookieMonsterTest, WhileLoadingLoadCompletesBeforeKeyLoadCompletes) {
diff --git a/net/data/ssl/certificates/10_year_validity.pem b/net/data/ssl/certificates/10_year_validity.pem index 007bda4..47e0e10e 100644 --- a/net/data/ssl/certificates/10_year_validity.pem +++ b/net/data/ssl/certificates/10_year_validity.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 5 (0x5) + Serial Number: 12 (0xc) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Oct 30 00:00:00 2008 GMT Not After : Oct 29 00:00:00 2018 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:d7:0b:1b:f7:ce:03:86:eb:bd:cb:41:5b:31:e2: - a7:fe:b8:2e:a6:3d:e9:ed:c5:21:ca:e7:aa:1e:8f: - fb:e8:46:05:1f:64:af:7c:72:33:6b:80:41:a9:0b: - 79:ad:da:b2:4c:bd:28:76:0b:87:92:2a:fc:10:36: - 19:90:ec:97:e6:00:d3:a7:f6:7c:7c:41:a7:26:5d: - e7:f9:64:49:1f:1e:89:09:a3:08:e6:14:f8:da:52: - be:d8:f1:b2:8b:2a:ad:a8:15:02:df:de:89:86:d2: - 88:3d:b5:2a:72:c4:77:18:f2:8e:48:2c:5f:9d:85: - 77:2a:9d:36:3d:62:ea:04:1b:ad:3f:7e:53:3d:c9: - 3f:5e:de:02:0c:2f:1e:a5:b2:9c:d1:03:ce:5d:a6: - 88:28:29:bc:40:96:6d:e8:fd:99:1f:31:73:ab:a6: - 2b:de:51:28:e4:0f:24:12:29:6d:69:11:63:10:06: - c0:ab:b6:d1:7a:2c:9e:85:ee:93:4c:5e:2a:3d:82: - 36:60:5f:ae:cd:d4:e3:3c:c9:33:5b:5e:fe:f8:8f: - 7d:6b:09:01:99:dd:51:cf:c3:2c:69:ca:28:fc:0b: - 4f:95:89:52:b1:f7:6b:0f:c9:46:31:b0:61:88:ac: - 0e:c5:2e:45:9a:f3:64:33:01:7c:d4:52:b9:f3:69: - af:91 + 00:ae:21:b3:7f:5c:19:df:fd:97:51:cd:d4:30:35: + eb:50:4e:66:03:78:79:10:82:cb:02:5f:af:63:30: + 4a:54:ef:3e:3b:b8:76:7f:73:23:88:a7:4f:3c:65: + 78:1b:11:ea:49:f1:25:d4:cc:17:67:12:51:ce:a1: + f6:15:57:c6:9c:19:3c:8c:f0:9d:ce:c5:5e:a4:36: + d7:61:d3:21:21:c7:33:78:47:d6:74:e9:fa:b8:d8: + f2:f4:01:b4:ac:9f:69:d0:09:bc:1a:7c:35:7c:12: + c4:54:ba:5b:2b:80:37:6c:75:fe:08:36:44:bc:f1: + 3b:a9:c9:2b:a0:97:f8:75:4f:cd:27:24:f0:66:5e: + 8b:b9:b0:b1:49:50:80:80:00:de:83:e3:cb:09:c5: + 14:6e:9a:1f:28:0d:4a:7a:3b:90:19:13:e6:d0:32: + 08:6f:97:5f:2a:3e:a7:88:ef:98:01:fd:0c:2c:2b: + ba:5c:24:33:1d:b7:c3:48:55:d5:e3:5e:c0:ea:e9: + b2:8b:f5:b4:5d:10:50:48:88:59:0b:48:a5:80:94: + 2a:34:d6:b8:47:e6:ee:23:cc:e1:72:cf:ce:97:34: + 99:01:2f:66:7e:d4:39:be:5a:0a:01:47:8e:1d:5f: + 83:34:bf:69:6b:12:63:4c:47:25:0d:4c:b0:07:db: + 32:c7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - F4:E5:35:90:3B:34:F5:54:E9:40:D2:16:33:BE:45:0C:1C:AE:05:7B + 66:B2:C9:2E:D5:94:64:B0:57:CC:2C:7C:47:3E:4C:32:A0:62:1D:ED X509v3 Authority Key Identifier: - keyid:68:27:28:DC:F4:82:CD:72:02:F3:82:88:1E:BC:30:00:E6:7E:79:23 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 08:2e:a1:67:a4:4b:5c:4e:5c:63:a8:c5:21:93:6e:ef:37:97: - 5a:96:89:01:65:4d:2e:b8:78:58:28:ce:33:a7:6b:7f:85:c1: - d2:0c:5a:bd:ff:f8:96:4b:13:99:6a:9b:f8:ff:32:93:75:99: - 6f:44:7b:13:0b:df:cd:d0:2e:2f:5d:2b:41:8e:aa:05:f0:1c: - 60:27:e7:76:b5:8f:20:45:f8:6c:22:f9:34:f1:c7:70:41:1c: - 9f:6c:d4:08:7f:fb:aa:8f:4e:3b:69:b5:61:e5:e0:b0:bd:0e: - c8:d4:6c:45:8a:f4:2c:3d:3a:16:3b:b4:59:4d:6c:1e:a6:fb: - 00:ab:d2:9e:0b:00:02:ae:47:c7:06:14:c0:69:0d:21:96:f8: - 86:d6:f2:ad:34:dd:69:66:63:ed:b3:65:50:89:ef:83:c0:d0: - d6:63:a3:5f:e8:64:2b:25:22:92:78:c2:29:e4:84:8b:8e:69: - 2b:9e:0f:59:e7:b1:06:4c:e8:67:9c:95:8a:b8:4f:26:ed:09: - 2b:37:69:12:68:9d:6d:03:70:06:bf:45:79:d7:0d:78:d8:9b: - df:68:54:2e:56:b4:e5:82:22:50:4d:09:98:fc:ae:0c:28:cc: - d6:a6:ce:04:7b:ea:10:d4:03:97:a8:76:3c:d6:4c:ac:0b:20: - 2e:4c:22:89 + 5d:52:44:7e:39:ff:d6:01:44:8a:a3:f2:b2:13:98:d2:cd:e1: + 00:09:23:2d:05:3a:73:39:96:c6:88:c2:c1:5f:b8:8a:2b:18: + 8c:71:df:56:87:ed:8d:d1:14:36:c3:ef:58:8a:99:ce:88:ba: + f3:80:d6:7f:31:2e:3d:3a:22:7d:de:1b:33:94:33:b1:e4:cb: + 30:bc:a6:48:fa:f9:1f:f3:12:a8:9f:38:5c:10:7d:50:d2:65: + ab:10:06:19:de:2f:a5:42:3f:70:1b:99:79:96:9d:e2:74:2a: + 90:b7:a7:37:61:23:3e:b9:c2:ae:d8:1a:a5:00:60:c6:e8:48: + ce:98:3e:0a:04:12:0c:ce:e1:3b:7a:14:e8:0a:44:78:51:37: + 0d:98:05:f5:d6:43:f1:4e:a3:48:0b:ea:44:da:03:6a:90:a2: + be:85:91:b6:07:43:ec:32:f8:d8:36:7f:d9:17:c9:ee:7b:50: + d6:ef:2b:1f:f2:9c:41:35:9d:7d:8a:34:87:df:3e:c7:78:55: + cc:89:b5:30:07:13:66:a8:ab:f8:72:9f:13:ed:58:14:25:85: + 06:1d:56:5b:84:5b:8a:53:22:73:55:17:08:0a:38:d7:1e:2f: + 74:58:d2:2b:72:64:a0:40:eb:ac:1a:bd:c6:65:ea:a4:3e:13: + 62:04:39:e0 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBBTANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMDgxMDMwMDAwMDAwWhcNMTgxMDI5MDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1wsb984Dhuu9y0FbMeKn/rgupj3p -7cUhyueqHo/76EYFH2SvfHIza4BBqQt5rdqyTL0odguHkir8EDYZkOyX5gDTp/Z8 -fEGnJl3n+WRJHx6JCaMI5hT42lK+2PGyiyqtqBUC396JhtKIPbUqcsR3GPKOSCxf -nYV3Kp02PWLqBButP35TPck/Xt4CDC8epbKc0QPOXaaIKCm8QJZt6P2ZHzFzq6Yr -3lEo5A8kEiltaRFjEAbAq7bReiyehe6TTF4qPYI2YF+uzdTjPMkzW17++I99awkB -md1Rz8Msacoo/AtPlYlSsfdrD8lGMbBhiKwOxS5FmvNkMwF81FK582mvkQIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU9OU1kDs09VTpQNIWM75FDByu -BXswHwYDVR0jBBgwFoAUaCco3PSCzXIC84KIHrwwAOZ+eSMwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAAguoWekS1xOXGOoxSGTbu83l1qWiQFlTS64eFgozjOna3+FwdIMWr3/ -+JZLE5lqm/j/MpN1mW9EexML383QLi9dK0GOqgXwHGAn53a1jyBF+Gwi+TTxx3BB -HJ9s1Ah/+6qPTjtptWHl4LC9DsjUbEWK9Cw9OhY7tFlNbB6m+wCr0p4LAAKuR8cG -FMBpDSGW+IbW8q003WlmY+2zZVCJ74PA0NZjo1/oZCslIpJ4winkhIuOaSueD1nn -sQZM6GeclYq4TybtCSs3aRJonW0DcAa/RXnXDXjYm99oVC5WtOWCIlBNCZj8rgwo -zNamzgR76hDUA5eodjzWTKwLIC5MIok= +MIIDvzCCAqegAwIBAgIBDDANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTA4MTAzMDAw +MDAwMFoXDTE4MTAyOTAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAK4hs39cGd/9l1HN1DA161BOZgN4eRCCywJfr2MwSlTvPju4dn9zI4in +TzxleBsR6knxJdTMF2cSUc6h9hVXxpwZPIzwnc7FXqQ212HTISHHM3hH1nTp+rjY +8vQBtKyfadAJvBp8NXwSxFS6WyuAN2x1/gg2RLzxO6nJK6CX+HVPzSck8GZei7mw +sUlQgIAA3oPjywnFFG6aHygNSno7kBkT5tAyCG+XXyo+p4jvmAH9DCwrulwkMx23 +w0hV1eNewOrpsov1tF0QUEiIWQtIpYCUKjTWuEfm7iPM4XLPzpc0mQEvZn7UOb5a +CgFHjh1fgzS/aWsSY0xHJQ1MsAfbMscCAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFGayyS7VlGSwV8wsfEc+TDKgYh3tMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQBdUkR+Of/WAUSKo/Ky +E5jSzeEACSMtBTpzOZbGiMLBX7iKKxiMcd9Wh+2N0RQ2w+9YipnOiLrzgNZ/MS49 +OiJ93hszlDOx5MswvKZI+vkf8xKonzhcEH1Q0mWrEAYZ3i+lQj9wG5l5lp3idCqQ +t6c3YSM+ucKu2BqlAGDG6EjOmD4KBBIMzuE7ehToCkR4UTcNmAX11kPxTqNIC+pE +2gNqkKK+hZG2B0PsMvjYNn/ZF8nue1DW7ysf8pxBNZ19ijSH3z7HeFXMibUwBxNm +qKv4cp8T7VgUJYUGHVZbhFuKUyJzVRcICjjXHi90WNIrcmSgQOusGr3GZeqkPhNi +BDng -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/11_year_validity.pem b/net/data/ssl/certificates/11_year_validity.pem index 3e69b63..50eb089 100644 --- a/net/data/ssl/certificates/11_year_validity.pem +++ b/net/data/ssl/certificates/11_year_validity.pem
@@ -1,82 +1,84 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 6 (0x6) + Serial Number: 13 (0xd) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Oct 30 00:00:00 2014 GMT - Not After : Oct 30 00:00:00 2025 GMT + Not After : Jun 2 17:10:52 2028 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:d7:f7:09:26:5f:1c:c4:93:f4:16:d5:84:61:f5: - d9:93:eb:f2:c6:38:96:7f:a7:fe:ea:6b:88:68:bd: - 8a:81:5a:47:16:eb:54:5f:db:3c:98:21:b7:89:49: - cf:3c:c3:4d:ad:7f:54:d0:16:34:16:cb:66:4b:c9: - 86:c6:42:72:62:68:85:5d:ee:2c:18:9e:2f:99:06: - 89:f4:a6:8f:cd:65:48:d0:0f:98:08:46:ad:3c:30: - 0c:0c:85:50:66:66:2e:39:2a:d1:4c:6b:be:46:ce: - 33:be:d1:ec:2a:66:a7:a0:39:4a:c2:74:2a:1a:08: - d1:06:4d:ec:9d:42:69:61:8f:7c:e3:89:9f:a3:e4: - fe:65:bd:12:1d:1e:e8:81:9d:f4:89:93:9c:80:7c: - 14:aa:00:da:ed:f9:49:1a:f6:b0:c9:80:c7:fb:79: - b6:b5:26:88:74:52:fd:38:3a:cc:49:81:43:2a:d7: - 73:7f:a5:9e:78:a4:ca:55:2d:65:ee:1b:42:73:c4: - 07:3a:18:1e:45:9b:d5:26:be:d2:34:9d:ad:58:98: - a7:27:70:c4:aa:61:36:51:59:4a:4c:49:b4:4e:7f: - 59:63:3a:9f:fb:4d:5b:fd:b6:79:35:eb:06:9e:9b: - fb:90:40:99:4c:ec:07:fd:c4:2e:1a:fa:66:f5:ad: - b8:bd + 00:d2:33:c9:3e:ee:c5:00:08:54:d0:a9:26:f1:21: + 21:86:20:92:dc:1f:c9:0f:95:c3:60:8b:72:14:51: + 60:44:6e:b6:bd:f4:59:28:70:4c:df:87:e0:c9:2c: + db:c8:b3:4d:c8:72:92:0e:ab:55:a5:10:8e:e4:cf: + 77:23:77:25:a5:62:95:fc:32:b3:da:66:2f:ae:23: + 5e:3d:aa:1d:87:96:61:a5:eb:86:39:e1:74:a2:1d: + a2:50:e1:93:e6:dc:ab:70:99:e4:e4:49:72:6c:00: + e8:53:06:1f:86:19:37:79:83:2e:a5:69:b7:80:4c: + 06:f4:1c:6f:61:76:6b:71:da:ef:0d:2d:30:20:8c: + d1:69:9b:c1:63:00:6f:8f:af:6e:f0:0f:64:bd:fd: + 3a:17:dd:fe:62:44:b2:74:33:2d:98:de:04:e1:e9: + e7:92:1d:bf:9b:dc:3c:90:b9:db:1d:ba:cf:84:72: + 27:54:e9:59:10:37:44:db:5e:1c:ba:45:16:9c:9b: + 85:7d:c2:8f:74:da:8c:12:4f:fc:64:8f:4d:7b:91: + 84:2b:10:b6:a3:ab:f6:0d:f0:27:73:55:0c:2d:1c: + 2b:2f:7d:bc:46:70:c7:25:c1:b2:0c:2a:21:e5:a2: + 42:7f:91:4c:e7:f6:50:76:26:82:78:f0:50:88:45: + 68:71 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 97:61:9A:BC:B0:3B:CC:C3:44:D4:34:31:0A:3F:58:9E:4B:EB:33:95 + 49:8C:47:E1:3D:FB:65:5C:B5:B9:78:5A:DC:3D:AC:DC:C2:55:84:BA X509v3 Authority Key Identifier: - keyid:CA:0B:EE:C3:20:AD:63:FC:89:FA:71:69:49:E6:38:78:EC:F9:C6:55 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 30:97:5c:3b:08:b5:5c:f4:13:ad:16:4a:b4:2f:a9:10:f5:9c: - 5b:58:11:d8:87:53:3c:41:fb:ba:0e:98:7a:5a:aa:9c:b4:1e: - f6:ee:da:56:52:6a:ac:74:2f:6b:d8:c3:4e:b2:c5:ef:6b:55: - 2d:6e:1a:83:2c:63:ac:69:a0:1a:2b:18:a2:18:e7:30:9a:5a: - 35:c2:8e:1d:5f:4e:68:e3:40:97:78:e6:f1:37:5b:d9:ea:06: - 84:b3:65:4a:12:0c:7d:66:c4:97:f9:d1:6d:66:21:8e:52:fc: - 61:6b:0a:78:c7:0d:75:2d:8b:c6:1b:80:5a:f1:e7:ad:7f:a5: - 84:e6:16:b9:f7:89:84:84:0b:44:f7:a6:38:d6:3f:34:87:4e: - 17:08:2b:18:00:d7:c5:25:4c:35:40:95:78:a2:26:ef:96:5e: - d1:9f:a3:0f:62:ca:5a:2e:13:4e:cd:43:3e:31:dd:3d:b1:77: - c2:23:b7:79:f4:1a:fa:81:07:ae:9d:c5:8a:4c:15:24:43:97: - d7:b4:d8:c1:11:ba:08:66:76:5d:05:be:13:00:63:2c:77:21: - 25:fc:38:95:8d:e6:f0:10:90:22:38:57:9a:62:7e:5a:1f:71: - 3a:bf:3b:b0:d7:29:0d:8a:df:e5:0d:00:72:74:92:0e:9b:4a: - 7e:97:98:b4 + 16:b3:2e:6b:4a:d1:8b:ea:56:72:cd:e7:e7:51:1f:70:19:48: + 52:5c:6f:b6:ba:e0:f1:0a:0f:38:aa:ed:de:8c:32:56:74:1d: + 69:30:ee:68:ba:2b:7e:6b:93:f0:69:7f:5f:bb:18:88:41:3e: + 86:3a:00:f8:23:f9:d1:ab:53:9d:50:ea:2e:37:37:0d:0a:cc: + af:22:90:11:29:f3:b6:d4:28:47:83:75:66:19:19:88:a0:20: + 6b:64:7b:95:32:5d:85:14:c6:a6:77:11:a5:c4:72:72:c1:aa: + 3a:dd:ee:dc:28:71:4e:1e:ae:d5:1d:74:3e:71:8a:da:7e:f8: + 4c:2c:20:6c:01:ee:33:90:27:3a:5d:87:75:73:4c:24:c0:ad: + b0:6e:a3:32:bc:e4:93:53:73:40:cb:37:55:4b:d2:d5:79:b9: + 86:bc:69:35:d1:33:11:4a:33:ad:d1:78:18:99:c8:b0:fb:c6: + 82:40:87:56:47:ff:f1:ec:2a:07:53:ea:7f:17:a8:78:3c:21: + e5:e7:6e:54:16:02:8b:71:c9:fb:41:c4:f7:f0:1d:9d:8e:5b: + 94:6f:2c:25:12:95:02:ca:08:d5:42:16:fd:b8:dc:d8:4b:07: + 8f:bb:b2:4e:51:e8:32:87:61:a1:96:de:ff:24:86:4f:41:38: + 65:18:f0:b8 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBBjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTQxMDMwMDAwMDAwWhcNMjUxMDMwMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1/cJJl8cxJP0FtWEYfXZk+vyxjiW -f6f+6muIaL2KgVpHFutUX9s8mCG3iUnPPMNNrX9U0BY0FstmS8mGxkJyYmiFXe4s -GJ4vmQaJ9KaPzWVI0A+YCEatPDAMDIVQZmYuOSrRTGu+Rs4zvtHsKmanoDlKwnQq -GgjRBk3snUJpYY9844mfo+T+Zb0SHR7ogZ30iZOcgHwUqgDa7flJGvawyYDH+3m2 -tSaIdFL9ODrMSYFDKtdzf6WeeKTKVS1l7htCc8QHOhgeRZvVJr7SNJ2tWJinJ3DE -qmE2UVlKTEm0Tn9ZYzqf+01b/bZ5NesGnpv7kECZTOwH/cQuGvpm9a24vQIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUl2GavLA7zMNE1DQxCj9Ynkvr -M5UwHwYDVR0jBBgwFoAUygvuwyCtY/yJ+nFpSeY4eOz5xlUwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBADCXXDsItVz0E60WSrQvqRD1nFtYEdiHUzxB+7oOmHpaqpy0Hvbu2lZS -aqx0L2vYw06yxe9rVS1uGoMsY6xpoBorGKIY5zCaWjXCjh1fTmjjQJd45vE3W9nq -BoSzZUoSDH1mxJf50W1mIY5S/GFrCnjHDXUti8YbgFrx561/pYTmFrn3iYSEC0T3 -pjjWPzSHThcIKxgA18UlTDVAlXiiJu+WXtGfow9iylouE07NQz4x3T2xd8Ijt3n0 -GvqBB66dxYpMFSRDl9e02MERughmdl0FvhMAYyx3ISX8OJWN5vAQkCI4V5piflof -cTq/O7DXKQ2K3+UNAHJ0kg6bSn6XmLQ= +MIIDvzCCAqegAwIBAgIBDTANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE0MTAzMDAw +MDAwMFoXDTI4MDYwMjE3MTA1MlowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANIzyT7uxQAIVNCpJvEhIYYgktwfyQ+Vw2CLchRRYERutr30WShwTN+H +4Mks28izTchykg6rVaUQjuTPdyN3JaVilfwys9pmL64jXj2qHYeWYaXrhjnhdKId +olDhk+bcq3CZ5ORJcmwA6FMGH4YZN3mDLqVpt4BMBvQcb2F2a3Ha7w0tMCCM0Wmb +wWMAb4+vbvAPZL39Ohfd/mJEsnQzLZjeBOHp55Idv5vcPJC52x26z4RyJ1TpWRA3 +RNteHLpFFpybhX3Cj3TajBJP/GSPTXuRhCsQtqOr9g3wJ3NVDC0cKy99vEZwxyXB +sgwqIeWiQn+RTOf2UHYmgnjwUIhFaHECAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFEmMR+E9+2Vctbl4Wtw9rNzCVYS6MB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQAWsy5rStGL6lZyzefn +UR9wGUhSXG+2uuDxCg84qu3ejDJWdB1pMO5ouit+a5PwaX9fuxiIQT6GOgD4I/nR +q1OdUOouNzcNCsyvIpARKfO21ChHg3VmGRmIoCBrZHuVMl2FFMamdxGlxHJywao6 +3e7cKHFOHq7VHXQ+cYrafvhMLCBsAe4zkCc6XYd1c0wkwK2wbqMyvOSTU3NAyzdV +S9LVebmGvGk10TMRSjOt0XgYmciw+8aCQIdWR//x7CoHU+p/F6h4PCHl525UFgKL +ccn7QcT38B2djluUbywlEpUCygjVQhb9uNzYSwePu7JOUegyh2Ghlt7/JIZPQThl +GPC4 -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/39_months_after_2015_04.pem b/net/data/ssl/certificates/39_months_after_2015_04.pem index 5027de85..d988960a 100644 --- a/net/data/ssl/certificates/39_months_after_2015_04.pem +++ b/net/data/ssl/certificates/39_months_after_2015_04.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 7 (0x7) + Serial Number: 14 (0xe) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Apr 2 00:00:00 2015 GMT Not After : Jul 2 00:00:00 2018 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:eb:c3:3b:8e:08:b4:9d:a5:ab:35:d2:ab:9e:bb: - 3f:e6:fc:c0:5f:59:f0:40:f9:1d:d3:90:09:78:27: - 1d:78:71:9f:40:6b:71:f4:3b:1c:63:f4:44:1e:fc: - 09:66:5b:6d:20:d3:dd:42:f5:12:d0:ce:65:8b:28: - 5e:99:14:86:38:ca:e0:f6:2b:df:d8:99:e8:c6:4c: - b6:7e:3a:dd:45:89:4b:a5:98:81:26:14:4b:97:39: - be:ad:2d:53:64:fb:3d:2e:e8:e2:e7:92:3b:ed:81: - 29:67:96:0c:0d:67:ed:6c:52:27:c7:fb:61:43:57: - bc:5f:c5:08:2d:3f:97:92:33:f1:a4:a6:ea:02:c8: - cd:bd:01:62:d3:63:2b:91:c4:b6:5d:03:13:11:bc: - b2:72:13:90:2f:db:0d:34:79:e8:01:a0:fd:23:ed: - 22:10:c9:d8:ad:60:e1:79:a5:75:24:aa:13:7c:4d: - 71:c5:1d:94:92:ad:25:66:fa:b8:91:12:42:cd:8c: - 2e:e9:2e:5f:3f:b5:1f:ae:7e:09:7b:88:b8:93:c2: - 58:65:33:7b:2f:a2:71:45:e0:d4:79:1c:d4:8c:e7: - 6d:ff:bf:b3:59:b9:b0:a0:f2:fc:e6:8a:7d:31:1a: - bc:2e:38:3a:ce:16:85:47:a3:87:c5:f6:43:21:cb: - 56:eb + 00:ab:bd:7c:d8:34:99:c9:fa:d9:7e:0a:ac:77:89: + fb:de:ee:b0:ec:59:45:f6:a0:15:b9:60:2a:0a:8f: + 77:a7:43:dc:62:e6:20:9e:ef:9f:c3:4f:59:f4:cb: + 23:32:85:0f:a4:66:77:f6:bc:f2:1b:d1:b7:dc:c3: + 66:a0:83:37:73:2a:6a:80:9b:a1:aa:8c:18:ad:49: + b0:44:e8:cf:11:da:0d:52:ab:59:50:d4:87:c8:98: + 4f:fc:7e:46:49:53:e5:3b:10:dd:29:7b:0b:fa:38: + 76:7e:b5:a6:a8:9b:e4:20:b8:99:18:7d:57:46:dd: + 33:46:7a:2a:ae:dc:3b:18:1b:68:b3:36:37:6d:1a: + ec:78:f5:65:0f:5d:f9:1b:ec:68:7d:a4:83:79:ad: + cc:a0:68:4f:6c:5b:36:c1:48:0b:3f:3e:4c:ae:91: + de:4a:db:f6:a9:82:c2:54:9d:6f:28:db:00:bb:0f: + a4:44:43:40:c3:b0:e3:ec:f8:57:8c:c1:db:bb:00: + 64:15:48:06:7b:01:da:34:bc:ac:c1:61:ec:07:76: + 80:08:86:94:34:c4:d8:db:65:80:6a:7f:c0:b9:61: + f5:3c:92:99:45:ce:17:92:81:81:32:43:39:35:ac: + a4:04:5a:d6:f0:5e:01:3e:f2:3f:3b:74:c9:33:77: + 87:c1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - A9:39:E6:EB:3E:23:03:3A:4E:81:DC:F7:6D:77:83:46:8B:F0:8C:0E + 10:E9:95:5F:D7:78:0F:A8:F8:3C:89:9A:36:AA:E9:F2:52:C3:60:30 X509v3 Authority Key Identifier: - keyid:CA:0B:EE:C3:20:AD:63:FC:89:FA:71:69:49:E6:38:78:EC:F9:C6:55 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - ad:bd:f3:9d:e7:c9:0c:41:fa:c2:1c:a4:59:03:e3:ab:64:b0: - c9:3a:f6:9a:d8:fb:05:52:95:0d:d9:d0:fa:10:d4:2e:66:81: - b5:3b:11:01:f6:93:8d:2b:2f:f4:97:50:3c:36:3a:de:5d:eb: - 3e:93:d8:84:86:a2:dd:08:a7:b7:50:0b:df:18:a7:b7:5a:4b: - d3:99:69:ae:04:70:60:6f:76:1e:6f:69:15:fe:98:6e:a7:aa: - d8:7f:05:2e:da:16:fc:ff:fd:15:19:e2:3c:9e:82:70:29:0e: - 79:fb:2c:41:59:86:3d:aa:53:ee:b3:10:79:3e:d6:d6:5d:b1: - b9:bf:5a:83:3a:d4:3b:1e:98:97:bb:cf:79:ee:83:d1:4d:31: - 42:5e:7f:44:19:15:1f:65:bd:6c:ad:c1:b8:dc:2b:bb:64:d3: - 76:eb:8c:d6:79:7a:ab:55:20:9b:02:79:c5:f8:80:01:45:c8: - 0d:ce:54:be:5d:24:44:ea:52:54:f3:e2:9b:cd:20:7d:70:e6: - d2:ed:d6:51:d0:0c:fa:5d:73:93:40:39:37:bf:f6:4a:98:46: - e9:41:d7:21:3a:a9:3f:06:c8:b1:12:c9:3e:a6:69:cb:fd:e0: - 05:5f:03:e6:e4:8d:20:25:b6:18:2f:74:a4:50:a0:cb:1b:6e: - 46:d1:ad:a2 + 05:a5:b1:fe:ec:c3:19:31:04:40:47:70:79:b6:c3:99:ca:ff: + 26:f8:26:88:fc:c9:fc:30:27:d7:15:4e:cb:df:45:09:1e:ea: + bc:ac:9f:99:3a:a7:cc:bf:dd:93:a7:96:ff:5b:b9:9a:bb:49: + 1d:3c:ab:53:97:c8:83:4a:87:3d:e0:81:d1:47:68:ac:ea:1f: + bc:88:3c:74:17:39:34:23:4d:28:a5:db:20:16:c7:ea:08:ef: + c4:bc:f4:8c:5a:94:b0:f6:1a:23:e3:c3:e3:a6:ef:52:f8:70: + d1:59:95:21:e7:57:b6:bb:c8:05:6a:c7:7e:ba:b8:36:4b:75: + 5c:6c:74:1f:0d:a0:18:c9:ad:db:9a:b6:f8:eb:63:25:b8:88: + 48:b7:43:68:dd:6c:ce:0b:4f:c5:1f:7b:5f:94:c6:29:62:77: + 2a:85:9c:61:8b:a7:67:c8:17:5b:2f:a7:a5:0b:d2:d8:eb:1d: + 8f:ed:67:93:3a:df:f1:29:e9:97:71:a3:01:48:3d:be:f5:15: + 5d:f5:32:bc:18:52:9f:9c:3b:64:e8:a9:55:32:91:6d:c9:cc: + 84:65:16:39:4c:ad:20:2b:e9:e9:46:f3:71:7c:44:45:05:6f: + 68:86:66:5e:0c:e2:7d:86:65:9c:6e:e5:39:2d:a8:03:30:b2: + e2:77:5d:70 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBBzANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTUwNDAyMDAwMDAwWhcNMTgwNzAyMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA68M7jgi0naWrNdKrnrs/5vzAX1nw -QPkd05AJeCcdeHGfQGtx9DscY/REHvwJZlttINPdQvUS0M5liyhemRSGOMrg9ivf -2Jnoxky2fjrdRYlLpZiBJhRLlzm+rS1TZPs9Luji55I77YEpZ5YMDWftbFInx/th -Q1e8X8UILT+XkjPxpKbqAsjNvQFi02MrkcS2XQMTEbyychOQL9sNNHnoAaD9I+0i -EMnYrWDheaV1JKoTfE1xxR2Ukq0lZvq4kRJCzYwu6S5fP7Ufrn4Je4i4k8JYZTN7 -L6JxReDUeRzUjOdt/7+zWbmwoPL85op9MRq8Ljg6zhaFR6OHxfZDIctW6wIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUqTnm6z4jAzpOgdz3bXeDRovw -jA4wHwYDVR0jBBgwFoAUygvuwyCtY/yJ+nFpSeY4eOz5xlUwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAK29853nyQxB+sIcpFkD46tksMk69prY+wVSlQ3Z0PoQ1C5mgbU7EQH2 -k40rL/SXUDw2Ot5d6z6T2ISGot0Ip7dQC98Yp7daS9OZaa4EcGBvdh5vaRX+mG6n -qth/BS7aFvz//RUZ4jyegnApDnn7LEFZhj2qU+6zEHk+1tZdsbm/WoM61DsemJe7 -z3nug9FNMUJef0QZFR9lvWytwbjcK7tk03brjNZ5eqtVIJsCecX4gAFFyA3OVL5d -JETqUlTz4pvNIH1w5tLt1lHQDPpdc5NAOTe/9kqYRulB1yE6qT8GyLESyT6macv9 -4AVfA+bkjSAlthgvdKRQoMsbbkbRraI= +MIIDvzCCAqegAwIBAgIBDjANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE1MDQwMjAw +MDAwMFoXDTE4MDcwMjAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAKu9fNg0mcn62X4KrHeJ+97usOxZRfagFblgKgqPd6dD3GLmIJ7vn8NP +WfTLIzKFD6Rmd/a88hvRt9zDZqCDN3MqaoCboaqMGK1JsETozxHaDVKrWVDUh8iY +T/x+RklT5TsQ3Sl7C/o4dn61pqib5CC4mRh9V0bdM0Z6Kq7cOxgbaLM2N20a7Hj1 +ZQ9d+RvsaH2kg3mtzKBoT2xbNsFICz8+TK6R3krb9qmCwlSdbyjbALsPpERDQMOw +4+z4V4zB27sAZBVIBnsB2jS8rMFh7Ad2gAiGlDTE2NtlgGp/wLlh9TySmUXOF5KB +gTJDOTWspARa1vBeAT7yPzt0yTN3h8ECAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFBDplV/XeA+o+DyJmjaq6fJSw2AwMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQAFpbH+7MMZMQRAR3B5 +tsOZyv8m+CaI/Mn8MCfXFU7L30UJHuq8rJ+ZOqfMv92Tp5b/W7mau0kdPKtTl8iD +Soc94IHRR2is6h+8iDx0Fzk0I00opdsgFsfqCO/EvPSMWpSw9hoj48Pjpu9S+HDR +WZUh51e2u8gFasd+urg2S3VcbHQfDaAYya3bmrb462MluIhIt0No3WzOC0/FH3tf +lMYpYncqhZxhi6dnyBdbL6elC9LY6x2P7WeTOt/xKemXcaMBSD2+9RVd9TK8GFKf +nDtk6KlVMpFtycyEZRY5TK0gK+npRvNxfERFBW9ohmZeDOJ9hmWcbuU5LagDMLLi +d11w -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/40_months_after_2015_04.pem b/net/data/ssl/certificates/40_months_after_2015_04.pem index 870fefa..df5acc8c 100644 --- a/net/data/ssl/certificates/40_months_after_2015_04.pem +++ b/net/data/ssl/certificates/40_months_after_2015_04.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 8 (0x8) + Serial Number: 15 (0xf) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Apr 2 00:00:00 2015 GMT Not After : Aug 1 00:00:00 2018 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:ca:f6:72:04:1c:c2:c0:19:16:2a:2c:f4:c2:6d: - 39:46:7e:c5:df:2f:5e:47:1c:9f:38:56:fd:22:69: - fc:ba:f1:50:fb:93:33:13:8e:f7:c0:c7:3f:54:68: - 89:f7:d0:1a:59:98:f2:57:a3:4b:01:c5:0a:85:a9: - 44:85:4e:60:8b:87:60:c3:a7:90:d1:4b:92:a1:22: - 26:ac:87:bb:30:f9:55:78:57:d3:38:14:3d:d9:6a: - 6e:90:76:75:54:2e:9c:ba:95:d2:65:37:54:de:07: - e5:b0:a1:91:c1:d6:f1:e2:2e:93:49:9e:4e:c3:66: - 92:19:77:b4:ee:7d:18:99:37:27:2e:04:59:a0:ea: - c7:d4:6c:56:c6:72:6f:0f:b3:5e:3b:c0:1a:26:4d: - 6b:4d:c4:7f:66:1f:e3:72:83:0a:39:b5:08:4d:c2: - c0:49:b9:32:33:e3:7a:ba:00:36:b2:c3:0b:bd:d0: - 4a:d2:88:e7:bd:f9:6a:32:99:8a:c3:aa:9e:7a:1d: - ae:71:35:d6:3a:a9:c1:ea:a6:2f:18:e1:15:a2:b7: - db:8e:02:3b:ab:aa:a4:2c:d6:4f:60:d2:8d:bc:4a: - 0d:7c:d8:5e:0a:fb:fe:83:96:10:1f:d5:14:ab:0e: - 74:da:b8:b4:51:25:ec:ad:76:13:dd:1a:c7:55:e4: - 26:c7 + 00:b9:66:bc:55:7c:ca:70:eb:2e:6a:8b:11:8c:af: + 1e:2d:e2:ae:a5:b9:96:be:0a:16:08:2b:98:d6:8c: + a6:24:87:a8:0e:2e:23:f0:5a:8b:fa:6e:b7:dc:b2: + 2a:56:57:d7:76:91:69:c3:23:44:f3:40:74:d7:83: + 6d:fb:94:d9:e8:e6:34:96:2d:cb:43:02:69:c4:5f: + c0:01:09:9a:0f:55:5b:f5:b8:77:5e:ab:0b:58:46: + 1f:d4:42:59:43:3f:5a:92:5a:ca:22:8d:a9:18:ff: + ac:48:e9:f3:a4:a4:f3:d5:9b:e8:23:70:cd:26:f2: + 02:0b:e3:1e:a5:e6:ea:46:0f:39:06:fb:1b:f3:e9: + ce:65:df:15:e6:3f:72:c0:03:72:5e:3d:e0:4c:94: + 27:8c:ee:76:44:49:eb:f0:27:0f:d9:fc:02:fe:e5: + fd:70:d8:fe:8a:a6:99:61:52:76:b9:6b:af:89:50: + 84:ab:2b:c9:2a:13:0d:3b:f8:fe:50:61:a8:e0:57: + e1:f6:14:66:00:55:15:b3:99:03:be:fe:6f:24:39: + 12:b6:8b:bd:d5:60:7f:21:c2:24:68:07:62:dd:73: + 72:49:0a:09:cc:65:27:7c:37:0e:00:9b:b5:8a:4f: + 70:fb:c5:14:34:42:cb:27:4b:22:50:8d:5b:17:0f: + 9b:85 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 29:36:90:2F:BA:C1:EA:FD:D8:E1:4F:5E:D7:C2:9A:15:EA:1A:35:3C + CE:65:A6:37:A7:B6:38:4B:38:A3:6E:80:C7:7C:13:FB:51:C2:45:B6 X509v3 Authority Key Identifier: - keyid:CA:0B:EE:C3:20:AD:63:FC:89:FA:71:69:49:E6:38:78:EC:F9:C6:55 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - a5:a6:54:39:60:ca:39:94:e0:da:01:a1:3a:7b:1f:c1:33:61: - 4f:8d:57:2e:20:31:4f:11:29:bd:c3:8c:db:90:48:b3:3d:d6: - c9:ad:0b:5e:45:d3:fa:ee:1e:b4:ed:44:bf:21:d1:6a:b7:87: - bc:38:97:95:e1:d1:02:26:58:ac:b6:fc:01:8a:f1:cf:b6:a2: - 1a:b5:01:6c:fb:ce:33:61:be:d6:88:63:a7:94:76:2f:62:c2: - 2b:53:fb:d5:f8:12:0d:bd:d1:31:73:2c:65:87:a7:09:e2:49: - 9f:7a:38:c5:91:65:d8:69:10:93:ec:99:eb:17:c9:af:b3:1b: - 5e:34:2a:94:31:e8:8e:d2:19:86:46:c8:9b:0f:10:1f:ed:d3: - c8:d6:98:11:93:86:5d:49:01:19:db:01:c4:73:82:b2:41:6d: - be:0d:45:b0:4c:ad:e9:77:25:0f:a8:ff:a6:8e:60:8f:ca:58: - 19:b2:cb:9b:88:a2:44:2b:a2:2f:58:aa:09:6a:2a:55:51:e3: - 7c:68:35:8a:83:09:c9:c7:44:ae:ea:9c:58:b5:4f:33:0f:24: - f9:ee:9f:11:a0:28:04:98:7d:f8:e9:9c:48:d3:7c:8e:08:18: - b9:92:21:40:75:0f:36:96:ff:0f:ff:30:23:5c:0b:9d:e5:9a: - 5e:24:50:e3 + 25:63:1e:16:83:f3:48:52:80:be:0b:82:4c:24:27:58:44:b0: + 1a:38:e4:4d:49:b8:86:43:a2:c7:59:31:40:74:3b:a7:18:07: + 30:7d:f6:5c:e5:f3:1f:49:d3:32:1c:f1:b9:47:c8:52:5b:19: + 93:a9:6b:80:41:96:a9:35:ce:d1:ff:9d:82:c6:13:ca:04:56: + 38:fc:df:cf:5a:54:5f:77:a9:28:c5:c6:0b:0b:56:04:e8:37: + 73:d3:8e:b9:6f:c8:92:46:ab:35:07:5e:55:06:d2:fc:ac:8b: + e2:c7:4d:6c:30:1f:db:c1:29:b9:1b:2a:e1:b3:43:37:33:42: + ad:3a:fa:20:96:46:f5:84:ea:15:c2:83:c9:12:c7:71:54:37: + 53:88:45:00:aa:62:d9:c1:f5:1e:c5:f1:11:95:7d:31:54:21: + 56:37:1d:36:b0:42:c8:a8:6d:83:01:8d:14:f8:e3:88:05:b6: + 81:43:d3:19:5d:3b:f4:6b:81:cf:2b:e8:cd:57:54:0e:6f:7a: + ef:fc:47:e6:3c:a9:cb:14:4a:6e:29:c7:00:ae:86:c3:fe:74: + 38:92:37:bd:6a:08:97:f5:5c:26:b6:15:41:11:7a:1e:b9:71: + e7:9e:73:6b:f4:10:03:76:43:86:91:02:f8:30:4c:e7:bc:af: + 55:10:bf:52 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCDANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTUwNDAyMDAwMDAwWhcNMTgwODAxMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyvZyBBzCwBkWKiz0wm05Rn7F3y9e -RxyfOFb9Imn8uvFQ+5MzE473wMc/VGiJ99AaWZjyV6NLAcUKhalEhU5gi4dgw6eQ -0UuSoSImrIe7MPlVeFfTOBQ92WpukHZ1VC6cupXSZTdU3gflsKGRwdbx4i6TSZ5O -w2aSGXe07n0YmTcnLgRZoOrH1GxWxnJvD7NeO8AaJk1rTcR/Zh/jcoMKObUITcLA -SbkyM+N6ugA2ssMLvdBK0ojnvflqMpmKw6qeeh2ucTXWOqnB6qYvGOEVorfbjgI7 -q6qkLNZPYNKNvEoNfNheCvv+g5YQH9UUqw502ri0USXsrXYT3RrHVeQmxwIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUKTaQL7rB6v3Y4U9e18KaFeoa -NTwwHwYDVR0jBBgwFoAUygvuwyCtY/yJ+nFpSeY4eOz5xlUwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAKWmVDlgyjmU4NoBoTp7H8EzYU+NVy4gMU8RKb3DjNuQSLM91smtC15F -0/ruHrTtRL8h0Wq3h7w4l5Xh0QImWKy2/AGK8c+2ohq1AWz7zjNhvtaIY6eUdi9i -witT+9X4Eg290TFzLGWHpwniSZ96OMWRZdhpEJPsmesXya+zG140KpQx6I7SGYZG -yJsPEB/t08jWmBGThl1JARnbAcRzgrJBbb4NRbBMrel3JQ+o/6aOYI/KWBmyy5uI -okQroi9YqglqKlVR43xoNYqDCcnHRK7qnFi1TzMPJPnunxGgKASYffjpnEjTfI4I -GLmSIUB1DzaW/w//MCNcC53lml4kUOM= +MIIDvzCCAqegAwIBAgIBDzANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE1MDQwMjAw +MDAwMFoXDTE4MDgwMTAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALlmvFV8ynDrLmqLEYyvHi3irqW5lr4KFggrmNaMpiSHqA4uI/Bai/pu +t9yyKlZX13aRacMjRPNAdNeDbfuU2ejmNJYty0MCacRfwAEJmg9VW/W4d16rC1hG +H9RCWUM/WpJayiKNqRj/rEjp86Sk89Wb6CNwzSbyAgvjHqXm6kYPOQb7G/PpzmXf +FeY/csADcl494EyUJ4zudkRJ6/AnD9n8Av7l/XDY/oqmmWFSdrlrr4lQhKsrySoT +DTv4/lBhqOBX4fYUZgBVFbOZA77+byQ5EraLvdVgfyHCJGgHYt1zckkKCcxlJ3w3 +DgCbtYpPcPvFFDRCyydLIlCNWxcPm4UCAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFM5lpjentjhLOKNugMd8E/tRwkW2MB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQAlYx4Wg/NIUoC+C4JM +JCdYRLAaOORNSbiGQ6LHWTFAdDunGAcwffZc5fMfSdMyHPG5R8hSWxmTqWuAQZap +Nc7R/52CxhPKBFY4/N/PWlRfd6koxcYLC1YE6Ddz0465b8iSRqs1B15VBtL8rIvi +x01sMB/bwSm5Gyrhs0M3M0KtOvoglkb1hOoVwoPJEsdxVDdTiEUAqmLZwfUexfER +lX0xVCFWNx02sELIqG2DAY0U+OOIBbaBQ9MZXTv0a4HPK+jNV1QOb3rv/EfmPKnL +FEpuKccArobD/nQ4kje9agiX9VwmthVBEXoeuXHnnnNr9BADdkOGkQL4MEznvK9V +EL9S -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/60_months_after_2012_07.pem b/net/data/ssl/certificates/60_months_after_2012_07.pem index 38b5824..dab4d76 100644 --- a/net/data/ssl/certificates/60_months_after_2012_07.pem +++ b/net/data/ssl/certificates/60_months_after_2012_07.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 9 (0x9) + Serial Number: 16 (0x10) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Oct 30 00:00:00 2014 GMT Not After : Sep 30 00:00:00 2019 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:d0:ce:ff:98:a7:74:c4:bd:de:de:d3:b3:5a:fe: - 14:0f:ee:44:f8:08:cc:5e:bf:79:c9:be:0a:dc:ce: - b9:73:c4:af:c2:3d:35:6a:6f:a3:ed:5e:21:63:a2: - e1:39:c5:c3:0c:82:dd:da:e7:5f:c1:21:5d:34:0d: - e9:e3:2a:bf:6f:a8:9e:5a:74:a9:6c:57:83:c1:35: - f6:ce:58:78:0d:56:5a:f1:72:b9:62:12:76:50:fe: - 71:ef:e7:44:bb:47:e1:a4:fa:d6:03:5e:8f:a9:24: - 50:8f:e2:c2:8a:65:b6:57:8f:ee:0c:c9:2c:b9:9c: - 05:cf:38:36:c0:72:d6:fe:d6:da:2b:95:24:a4:93: - d2:62:6d:a4:b0:03:d1:36:1e:75:16:91:3e:f6:0f: - a0:b5:8f:77:75:af:b2:10:bc:78:9f:9c:73:31:ac: - 06:11:d9:32:29:9c:da:66:ff:fc:d8:b3:70:8f:f8: - df:67:06:e1:9c:a1:ea:ec:f1:e8:92:52:aa:9e:35: - c6:0c:d2:62:24:b0:ef:3e:9c:49:a7:b6:ee:de:2e: - 9c:56:6d:f5:0d:bb:e3:84:2b:b0:e2:7f:be:35:5a: - 02:50:d2:70:c4:a0:ed:a1:ab:28:99:d0:62:80:ef: - c1:26:6a:39:ab:28:e0:73:86:f4:da:50:91:ac:b4: - e3:21 + 00:d7:ad:de:70:7e:14:f1:ca:94:be:98:67:43:26: + f8:b3:52:cf:da:cf:a3:ef:1b:68:c6:bd:89:ed:dd: + 1d:c0:75:ee:5c:1c:bb:a4:da:d2:68:91:d9:52:ca: + 49:9c:f4:fd:2e:03:de:da:01:51:6e:11:53:e0:9f: + 3b:3b:f9:df:ed:18:ec:9c:54:90:4f:17:39:fd:5f: + d0:b3:37:1f:40:fe:8a:43:17:27:ed:81:d4:36:0b: + 8c:c8:0d:d1:a0:79:0b:2a:36:76:80:c0:11:d0:2c: + 30:2f:e0:97:8f:9a:2a:39:c7:98:81:91:c7:09:30: + 12:10:5f:8c:7f:bd:8f:42:20:e2:82:dd:26:3c:1f: + 2c:d1:9b:3c:92:25:8e:46:54:19:24:87:cc:e4:84: + d1:63:20:06:a9:08:53:cd:a6:81:bd:91:94:2b:4e: + 05:84:32:93:d6:ce:56:1d:80:6d:4f:bc:ef:cb:d0: + bc:d4:c8:ce:ff:ac:1f:41:cc:4e:fb:2e:14:a3:54: + 84:14:e4:5b:8b:f8:a4:d8:40:d9:11:12:1d:c5:6a: + d0:e7:13:e5:cb:97:9e:d2:61:64:c3:58:3a:c1:e2: + 07:5a:b8:32:27:b9:fa:67:4d:69:05:8e:c5:92:03: + c1:e8:b6:0e:94:a4:91:64:99:72:50:bb:d0:5b:68: + 2c:0d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - F3:14:F0:CF:F0:35:C1:32:21:09:26:7C:D4:17:38:F6:09:58:FB:F4 + BA:4E:4A:D5:D7:99:D0:37:13:7B:64:37:1A:0B:1F:5E:9D:93:1F:F4 X509v3 Authority Key Identifier: - keyid:85:AE:CA:C3:6C:F0:FC:C1:65:AF:18:CA:AB:FF:25:3F:54:9A:BF:EC + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - a0:ae:29:07:a4:72:63:78:32:8c:41:e1:e0:43:9f:e7:a3:88: - c7:75:25:55:e7:22:eb:18:8a:d3:af:11:e4:08:bd:70:4a:dc: - 90:3f:14:64:3b:ad:22:57:09:68:cf:94:1e:b9:93:2d:41:c2: - f9:04:7e:a1:51:48:ab:34:29:e4:34:c2:2c:7d:0f:34:fe:ae: - e9:c1:18:28:07:9f:96:71:76:76:2f:e7:7f:bd:9d:84:97:4a: - 0c:b1:b3:2a:a9:c6:7e:78:9e:cb:f7:29:8a:82:74:15:8e:91: - bc:36:26:38:f4:c8:94:e0:02:ff:47:fb:1e:ca:fd:f9:fb:fe: - 7d:15:cd:6f:36:7b:08:54:38:fd:ca:d0:c7:22:84:7e:58:5b: - f3:a4:7b:49:cb:9b:e0:23:36:2c:eb:b1:6d:34:12:7a:f1:12: - 67:59:02:d9:9f:4d:3a:01:3e:06:aa:00:37:c0:be:fe:de:6c: - c6:b4:33:17:df:d2:b3:95:4c:ef:4a:8e:39:03:2c:2e:56:5c: - 82:2e:c7:0b:be:51:52:05:8f:74:5d:5c:24:2d:15:4e:c4:41: - 86:26:e6:96:28:91:a7:06:94:ab:14:7a:1f:0c:0b:aa:b5:97: - f0:25:b6:4a:15:8a:d8:b8:09:01:22:fc:4c:43:cf:de:45:dc: - 0a:95:77:f6 + a2:e4:6c:8f:21:3b:6c:ee:16:f3:58:41:35:18:e2:a7:88:e5: + d5:7b:a5:4c:e3:36:9d:d9:f5:ba:98:38:6c:da:b8:b3:4e:fa: + c8:38:fa:a9:89:62:90:cb:ec:6a:26:ac:f3:7b:5c:f1:68:06: + dd:34:0f:fc:39:27:8f:fa:e9:c8:8e:81:0e:57:ca:40:6d:ee: + 79:a7:f7:02:28:18:60:2c:a7:81:c6:45:a2:2d:fc:2c:bc:87: + 76:3a:e1:b5:52:67:99:1b:0b:d6:f3:57:d5:29:ec:ee:a5:ea: + 1d:9c:29:ec:f9:f9:cf:48:72:86:15:99:a1:e6:55:e1:b6:e4: + 50:15:25:58:71:5e:26:a7:af:03:21:ce:ca:62:cd:98:d5:d4: + 0c:32:4a:05:82:35:2a:bd:06:ce:c2:05:01:55:82:ee:98:e2: + a7:07:55:1e:0c:4b:48:05:42:89:29:08:13:0a:f5:1d:7c:9f: + a4:09:99:35:bb:9b:44:ad:81:87:75:8a:b1:a0:bf:2d:46:c6: + 5b:90:84:03:20:6f:6e:d3:b9:52:44:06:28:3f:16:f2:75:27: + 66:01:70:39:79:39:84:ed:e5:61:b0:83:22:c9:f1:ad:ca:8a: + 6c:26:4a:c7:05:9a:7f:9f:29:6f:ed:a9:1e:8d:29:b5:08:26: + 21:61:c2:54 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCTANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTQxMDMwMDAwMDAwWhcNMTkwOTMwMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0M7/mKd0xL3e3tOzWv4UD+5E+AjM -Xr95yb4K3M65c8Svwj01am+j7V4hY6LhOcXDDILd2udfwSFdNA3p4yq/b6ieWnSp -bFeDwTX2zlh4DVZa8XK5YhJ2UP5x7+dEu0fhpPrWA16PqSRQj+LCimW2V4/uDMks -uZwFzzg2wHLW/tbaK5UkpJPSYm2ksAPRNh51FpE+9g+gtY93da+yELx4n5xzMawG -EdkyKZzaZv/82LNwj/jfZwbhnKHq7PHoklKqnjXGDNJiJLDvPpxJp7bu3i6cVm31 -DbvjhCuw4n++NVoCUNJwxKDtoasomdBigO/BJmo5qyjgc4b02lCRrLTjIQIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU8xTwz/A1wTIhCSZ81Bc49glY -+/QwHwYDVR0jBBgwFoAUha7Kw2zw/MFlrxjKq/8lP1Sav+wwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAKCuKQekcmN4MoxB4eBDn+ejiMd1JVXnIusYitOvEeQIvXBK3JA/FGQ7 -rSJXCWjPlB65ky1BwvkEfqFRSKs0KeQ0wix9DzT+runBGCgHn5ZxdnYv53+9nYSX -Sgyxsyqpxn54nsv3KYqCdBWOkbw2Jjj0yJTgAv9H+x7K/fn7/n0VzW82ewhUOP3K -0McihH5YW/Oke0nLm+AjNizrsW00EnrxEmdZAtmfTToBPgaqADfAvv7ebMa0Mxff -0rOVTO9KjjkDLC5WXIIuxwu+UVIFj3RdXCQtFU7EQYYm5pYokacGlKsUeh8MC6q1 -l/AltkoViti4CQEi/ExDz95F3AqVd/Y= +MIIDvzCCAqegAwIBAgIBEDANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE0MTAzMDAw +MDAwMFoXDTE5MDkzMDAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANet3nB+FPHKlL6YZ0Mm+LNSz9rPo+8baMa9ie3dHcB17lwcu6Ta0miR +2VLKSZz0/S4D3toBUW4RU+CfOzv53+0Y7JxUkE8XOf1f0LM3H0D+ikMXJ+2B1DYL +jMgN0aB5Cyo2doDAEdAsMC/gl4+aKjnHmIGRxwkwEhBfjH+9j0Ig4oLdJjwfLNGb +PJIljkZUGSSHzOSE0WMgBqkIU82mgb2RlCtOBYQyk9bOVh2AbU+878vQvNTIzv+s +H0HMTvsuFKNUhBTkW4v4pNhA2RESHcVq0OcT5cuXntJhZMNYOsHiB1q4Mie5+mdN +aQWOxZIDwei2DpSkkWSZclC70FtoLA0CAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFLpOStXXmdA3E3tkNxoLH16dkx/0MB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQCi5GyPITts7hbzWEE1 +GOKniOXVe6VM4zad2fW6mDhs2rizTvrIOPqpiWKQy+xqJqzze1zxaAbdNA/8OSeP ++unIjoEOV8pAbe55p/cCKBhgLKeBxkWiLfwsvId2OuG1UmeZGwvW81fVKezupeod +nCns+fnPSHKGFZmh5lXhtuRQFSVYcV4mp68DIc7KYs2Y1dQMMkoFgjUqvQbOwgUB +VYLumOKnB1UeDEtIBUKJKQgTCvUdfJ+kCZk1u5tErYGHdYqxoL8tRsZbkIQDIG9u +07lSRAYoPxbydSdmAXA5eTmE7eVhsIMiyfGtyopsJkrHBZp/nylv7akejSm1CCYh +YcJU -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/61_months_after_2012_07.pem b/net/data/ssl/certificates/61_months_after_2012_07.pem index eebdbc37..ef21ce9 100644 --- a/net/data/ssl/certificates/61_months_after_2012_07.pem +++ b/net/data/ssl/certificates/61_months_after_2012_07.pem
@@ -1,82 +1,84 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 10 (0xa) + Serial Number: 17 (0x11) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Oct 30 00:00:00 2014 GMT - Not After : Dec 19 23:35:24 2019 GMT + Not After : Jun 9 17:10:52 2022 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:ce:0e:90:96:f2:40:37:c6:86:dd:af:b7:23:d5: - 01:87:bc:1e:9f:0d:f1:4b:eb:6f:85:14:64:fe:e4: - 47:f7:52:a8:52:22:9c:2e:6f:b5:f6:36:c0:70:27: - e5:a9:8a:da:bd:04:06:1e:97:a4:48:06:56:2d:2a: - d1:81:2f:be:4e:22:68:34:54:de:38:df:1e:84:b7: - 5f:17:89:a7:98:62:db:94:9e:ac:df:91:a6:d5:91: - b5:c7:ae:89:6e:30:c1:5a:37:23:b8:d9:f8:b4:53: - 1b:f7:63:4f:2b:f9:c3:c7:37:1f:66:c7:e1:1c:d9: - 2b:68:b9:e5:58:65:68:e9:01:0b:fb:24:01:57:bc: - c5:94:b8:c8:27:dd:c9:b4:44:16:30:2b:cd:11:62: - 68:48:07:22:4b:b7:e5:e9:42:34:17:4e:f3:c9:d1: - 77:7d:97:9a:ec:ec:58:35:5b:3e:2c:21:31:fe:57: - 98:16:3f:fc:cb:00:7b:4d:6b:d9:99:3e:29:69:ae: - ef:01:64:4c:f7:cd:18:15:bd:48:19:e3:db:c1:a2: - d2:40:c2:69:53:43:39:cd:a6:c2:3a:57:23:39:27: - 7c:9f:1f:21:3f:bc:e1:f9:0b:37:59:f0:fc:c1:6f: - cf:2e:a9:59:d2:0d:32:dd:70:64:9a:e7:e8:eb:e4: - 69:53 + 00:e1:6a:f0:32:d3:9e:18:77:0f:08:d1:d0:03:11: + ac:65:b3:11:e5:dd:5f:ee:74:f5:ff:c8:b1:56:80: + fd:ad:af:82:24:95:c0:7d:99:d2:62:46:bb:fb:9e: + 75:40:5e:15:d0:9e:d9:29:0a:3f:25:bd:83:a5:da: + c6:41:99:59:b2:8e:7b:3e:bb:2d:0c:8f:ea:f9:26: + e5:c6:8f:4a:68:0b:fa:84:3c:1b:57:db:53:eb:6c: + af:9a:8a:7b:9b:b0:fb:cc:92:3e:8a:ea:24:d0:3c: + ff:06:c6:f0:79:b2:1b:8d:3f:3f:d6:ed:08:8c:48: + 9c:40:fa:f9:28:95:d1:f3:5e:8d:1b:4b:63:c4:d3: + 48:77:34:ee:82:db:6e:53:6b:32:ba:db:23:87:07: + 85:ad:26:9b:1b:d0:bb:2f:6b:48:c0:17:d0:2a:af: + 04:c2:87:10:5c:16:71:4c:a5:21:0d:5b:c0:80:1c: + c5:7c:39:4b:ca:93:23:5a:37:e4:fb:d2:7d:2c:f8: + 1b:20:bc:06:01:76:05:63:07:bd:3d:b7:6f:b2:dd: + 68:d9:88:76:9e:23:17:9a:8d:d1:58:b6:a9:9a:81: + 72:c0:8c:2b:8b:b3:e0:c5:93:b1:50:49:d3:ef:de: + 9b:e0:1f:75:77:cb:61:ae:f4:7a:f8:40:2e:88:77: + 67:bf Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 37:7B:6E:B4:DC:15:72:1F:4E:DB:39:37:A4:B1:F2:B7:7C:F8:C3:D5 + ED:25:EF:01:D1:A8:70:5C:5B:FD:6B:2C:9E:5E:69:2F:49:21:C1:DA X509v3 Authority Key Identifier: - keyid:CA:0B:EE:C3:20:AD:63:FC:89:FA:71:69:49:E6:38:78:EC:F9:C6:55 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 90:d9:88:2f:6e:fe:22:5c:be:f3:97:f7:50:4e:a2:de:cc:7b: - 33:c3:27:f3:38:15:46:f7:02:44:d4:87:84:23:15:44:8c:17: - 6f:10:bc:15:1a:83:bd:6d:94:dd:f4:9f:aa:91:01:85:80:27: - 88:af:e1:7a:54:9f:04:97:10:8b:05:b1:a2:4f:04:ff:36:a9: - c6:79:7d:2f:a1:49:f5:9a:ff:bb:5c:d8:f6:3f:54:d0:27:13: - fc:90:4b:e1:3f:ea:c8:98:65:3b:28:44:26:cb:45:14:62:f4: - b4:71:3a:d8:68:a2:ec:51:64:a3:d8:3b:80:a4:17:36:89:d3: - 8b:de:2a:1b:dc:2d:3f:4b:9e:ab:34:09:8c:44:30:da:1a:09: - 2f:61:cf:4b:7d:2f:14:7e:10:a3:a9:df:c6:db:68:77:43:92: - d1:df:93:ee:a6:54:f4:4d:cc:ea:a8:7a:b5:75:fc:25:1f:8e: - 6b:8e:50:ee:13:aa:7b:19:bc:63:0c:3f:b3:af:ee:2d:f3:42: - 40:dd:de:26:18:44:e0:06:a7:4d:17:93:a3:9d:81:da:1f:7f: - 81:55:46:5e:8f:44:5a:06:4a:fb:7c:43:95:20:97:d8:5b:d8: - c0:8c:31:03:21:ce:16:4a:f0:8f:41:69:6d:25:71:c9:79:3b: - 82:d2:2c:22 + 19:1d:92:62:5e:9f:3a:4b:20:2c:2e:1a:25:31:1d:95:b4:21: + d3:ec:ee:77:60:85:85:40:1c:eb:7f:22:9e:ab:1f:74:74:d5: + cc:4b:af:c4:cc:4f:60:ab:05:14:f1:35:20:b7:ec:92:56:0e: + 2d:b4:de:65:f2:50:31:19:ad:9e:7e:bb:50:05:e4:e7:d8:5d: + ed:d1:f8:58:75:5d:72:23:97:30:e6:e8:ac:83:35:1d:6a:5f: + 94:2f:55:59:1e:a5:a5:a1:90:86:d9:5b:0f:54:59:05:11:01: + ee:a7:fe:c9:a3:13:32:13:d8:c4:55:95:c6:cf:fa:be:a5:ff: + 57:4d:e7:15:de:7e:82:8d:7f:d1:3b:49:0f:98:dc:28:c7:af: + 62:aa:f8:bd:a4:db:aa:a5:56:d3:49:91:5a:86:28:b0:5a:90: + b9:7d:9f:e0:cc:f2:e3:dc:5e:f0:bf:92:38:7d:b8:d2:f4:af: + 83:ef:c7:02:60:e7:6b:12:d7:b9:ea:20:e7:3b:e4:75:61:cf: + 98:58:af:fe:11:81:08:b6:98:cc:ce:4f:d5:9c:93:88:c6:a7: + 52:31:53:d0:d0:cf:c5:65:e4:b3:0a:ef:4b:01:73:e3:8c:40: + 10:a4:52:4d:08:4c:85:8d:27:ad:f6:2f:4a:7a:9c:4b:d4:99: + 94:07:be:90 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTQxMDMwMDAwMDAwWhcNMTkxMjE5MjMzNTI0WjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzg6QlvJAN8aG3a+3I9UBh7wenw3x -S+tvhRRk/uRH91KoUiKcLm+19jbAcCflqYravQQGHpekSAZWLSrRgS++TiJoNFTe -ON8ehLdfF4mnmGLblJ6s35Gm1ZG1x66JbjDBWjcjuNn4tFMb92NPK/nDxzcfZsfh -HNkraLnlWGVo6QEL+yQBV7zFlLjIJ93JtEQWMCvNEWJoSAciS7fl6UI0F07zydF3 -fZea7OxYNVs+LCEx/leYFj/8ywB7TWvZmT4paa7vAWRM980YFb1IGePbwaLSQMJp -U0M5zabCOlcjOSd8nx8hP7zh+Qs3WfD8wW/PLqlZ0g0y3XBkmufo6+RpUwIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUN3tutNwVch9O2zk3pLHyt3z4 -w9UwHwYDVR0jBBgwFoAUygvuwyCtY/yJ+nFpSeY4eOz5xlUwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAJDZiC9u/iJcvvOX91BOot7MezPDJ/M4FUb3AkTUh4QjFUSMF28QvBUa -g71tlN30n6qRAYWAJ4iv4XpUnwSXEIsFsaJPBP82qcZ5fS+hSfWa/7tc2PY/VNAn -E/yQS+E/6siYZTsoRCbLRRRi9LRxOthoouxRZKPYO4CkFzaJ04veKhvcLT9Lnqs0 -CYxEMNoaCS9hz0t9LxR+EKOp38bbaHdDktHfk+6mVPRNzOqoerV1/CUfjmuOUO4T -qnsZvGMMP7Ov7i3zQkDd3iYYROAGp00Xk6Odgdoff4FVRl6PRFoGSvt8Q5Ugl9hb -2MCMMQMhzhZK8I9BaW0lccl5O4LSLCI= +MIIDvzCCAqegAwIBAgIBETANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE0MTAzMDAw +MDAwMFoXDTIyMDYwOTE3MTA1MlowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAOFq8DLTnhh3DwjR0AMRrGWzEeXdX+509f/IsVaA/a2vgiSVwH2Z0mJG +u/uedUBeFdCe2SkKPyW9g6XaxkGZWbKOez67LQyP6vkm5caPSmgL+oQ8G1fbU+ts +r5qKe5uw+8ySPorqJNA8/wbG8HmyG40/P9btCIxInED6+SiV0fNejRtLY8TTSHc0 +7oLbblNrMrrbI4cHha0mmxvQuy9rSMAX0CqvBMKHEFwWcUylIQ1bwIAcxXw5S8qT +I1o35PvSfSz4GyC8BgF2BWMHvT23b7LdaNmIdp4jF5qN0Vi2qZqBcsCMK4uz4MWT +sVBJ0+/em+AfdXfLYa70evhALoh3Z78CAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFO0l7wHRqHBcW/1rLJ5eaS9JIcHaMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQAZHZJiXp86SyAsLhol +MR2VtCHT7O53YIWFQBzrfyKeqx90dNXMS6/EzE9gqwUU8TUgt+ySVg4ttN5l8lAx +Ga2efrtQBeTn2F3t0fhYdV1yI5cw5uisgzUdal+UL1VZHqWloZCG2VsPVFkFEQHu +p/7JoxMyE9jEVZXGz/q+pf9XTecV3n6CjX/RO0kPmNwox69iqvi9pNuqpVbTSZFa +hiiwWpC5fZ/gzPLj3F7wv5I4fbjS9K+D78cCYOdrEte56iDnO+R1Yc+YWK/+EYEI +tpjMzk/VnJOIxqdSMVPQ0M/FZeSzCu9LAXPjjEAQpFJNCEyFjSet9i9KepxL1JmU +B76Q -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/README b/net/data/ssl/certificates/README index db150677..c465ad3 100644 --- a/net/data/ssl/certificates/README +++ b/net/data/ssl/certificates/README
@@ -99,12 +99,6 @@ https://www.google.com:443. - unittest.originbound.key.der: matching PrivateKeyInfo. -- test_mail_google_com.pem : A certificate signed by the test CA for - "mail.google.com". Because it is signed by that CA instead of the true CA - for that host, it will fail the - TransportSecurityState::IsChainOfPublicKeysPermitted test. Format - intentionally does not include diagnostic output. - - multivalue_rdn.pem : A regression test for http://crbug.com/101009. A certificate with all of the AttributeTypeAndValues stored within a single RelativeDistinguishedName, rather than one AVA per RDN as normally seen.
diff --git a/net/data/ssl/certificates/bad_validity.pem b/net/data/ssl/certificates/bad_validity.pem index adbca9d..cb51391 100644 --- a/net/data/ssl/certificates/bad_validity.pem +++ b/net/data/ssl/certificates/bad_validity.pem
@@ -1,37 +1,37 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDRJAE3URWl3WBC -/nCjgXcKbjJG0CdMnh7fM+UT3Q/K3bf/QNiupIOVN8CN4HcsinlHHcXFcRGGL64Z -xHq2RklGs8+Hm1UwhrAQ7BUjvcufCtmui1H5MDhr+511RWDVB9Qf4rzqLJWXVaYj -o9Ris5DwMk9MDJ9+9YIkORzcehJMwuTBjxhAKR/TqnGi9yLg4Pwy4UgVMKPFXaPd -JFYWVgpmiR36qgJFHpRJyH/vt0eS8iQP+5jbMh28RS+EVnKMGDcDFgeHNbJhftui -aVGb3JwL16QEIiFKci4ItM3gEXmMlryTJ72rFnGDO0l2v4GRmXtS4+k4LqsrwKeZ -fDgifeUFAgMBAAECggEATFOllfiju+r1LL4LgcDIHyhkdO+WyCGVBsS7v+oXz2Pn -uOKDsgkcdKLqRV08YScQZ+H3wb0oNh7EnWbVmhxAter9vHH2P0WIkER42phz7dFZ -7JewDQ+KJ+6mYpw1YMoAorpvU899sMNzZOJvqq36IY9a3VhmBUG4g1vMqrJqZ1S4 -nVKWHCbC0ErTIKUVTyIwTB2agJCA63bFz+ZMvnW9zLVj+nGRBx95F8JM5m1EYvzB -jZsGYz18Q7gp7zSlfUbxyWSjBmw5/HhskhUrInOqVHc/c9mijVWfrkzitwFWqEij -vgpGLUKzvcAueCU6Tp+CBH3GGLy8IaUzJYuO5+wQqQKBgQDpdH5zRAeyIXWQEbzy -KOImRFETIJ4KcBoKWr+I4/IHneIPmOKtDBHZQvqTvAb00tsM7VF/3RGsSsYY8yJC -zNkTog/wh/wkZhxlvwsu5a7/dBaXz0g4mvFlavve202e8wufSiSb0f1tyDrUwyRI -YscSrY2rLZhg9g6HNkMVjIta6wKBgQDlVmgjiDSIvhzInO80NKaVN4SDJsKTjbzV -DhHdsW7RgFQpuEQChbNxHkW6RjQdO0A01/4TRjmfWOrPKXY9TFUBFQw1Jbi/W/da -T6p1QlFaJUxXKQB1KnW/mtOS6GEm+2vcVKg87qUGCZtvtdt1l/N5lBBofCO2kLOu -Qv+31lPjzwKBgDVngMW9ekU1gj9Cz4ZV8+XtGt7VR1H78vkLaWVXP7aeV2haAQC1 -EiAxQkEpci3vTkzWvR4S5EgVktuCQwQk+EOVfy/266cn9LcRzO0dfbrSQ5jWwh6w -0yfwIU4JvOfvkWkO/PDoSKEkfNDPEy276u5K5W2TMJh9sTUdJJt5WyehAoGAaq2P -0X9pGHZ+gx7k8f7PwjdJ74vXFLXosZ5S1zHS36b2/1UUZav1tVekjapcUYCfNDWI -nUScRzAgQW8C7i6Ul+VHgW1ji7fmzl6iZtsLZohVA3IyIU436YHGit6HWo+3M405 -mOZVYwKTCBqq0/9zpQknvMKKBkE3I4dM1iHfcecCgYALR2AVz10mLwrtNc9vcnfF -wZk+x6NQRaEMp2hnQOccfF4Vt4PRD6YwwA6n6CJny8Eofo4k6LkpO982jakBh2SD -qU3Njrc0lZF6IaGNHqoYk+P0Fz6HuVIyT62FKsL7RreWfgGDeFmiLNYoKefenRa/ -54tB1YReM49UiW4CbBvwqQ== +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0v9KXM+UTW3dl +vXMadSibR1nmtzDoRjNtWFvaHwr/5OQt8h34iehkLvbDzdejjtf3zefYDhDD51bS +/OXm007i/4JNGGOHsKPe2u8KN3ustbdDzvIHOd8U6cOkQT5+aEc0m3thxBjmE86z +tKbgugPu5OvnqvRtvpdbqgaXUAHQeLjWkrDk4rlDiLWuFGR9UnDUBRwJJdXiT8mo +gttBMcO+RG8L1P2/we7ZYr87j7UAyNHfXUoTrXHkS1/R2XJMg9iTQL9szS9mDgTW +uUMoJMkl/Vlw/j3yqQpOwpvE3p5XXl0WJeZ4tkRJKZ32v3T7hdYN8WVY8ivWjxBJ +yAAtiOItAgMBAAECggEAXuyGumXEnl/g2oueEX0J8FKOgj4e7z0+8OQAiRLYgf9B +XmfTGZ3DcCnB6p8F6p2wCjIW2j64y0mJLZEnZAwBV/F8CuUOEErSJM2x0BnHV7Kv +JmtebDEWWTNTTcX9/gDhtF0bdQK5WMt6OKJdKZRHUITk52u+pov7jWZDw99+tG5w +InCv1RekWbAGZWLs9hyzpOpvp0tGM2O9+XCWQh/LLeLb5rJkTcH8NKv9Xh+tLeSU +i/FER+rQHsMVA4uHdBmRgPsBnPrJopcKWQImRXDGidEd5AUWLIECQdnZI8pbtmjV +0HZj+UuUlDFdALmCHX+NxR4Z+hyi+E96ZWw/J9FHwQKBgQDYX0e873Sf4tDOn0cZ +Olof3cXPri8ezKoeAD8tfY0bxLIoOwDUtJXZeGEZD3sduDJDCdvS1M/eeW04ePlx +kTmcDecaYm4t3KYzbPauudbMQEQFvsoivp8ct/synPcRtGPTHg+GUHaqWT1d4DjT +WClxx67ugD/YQYs5UY/uLjm4tQKBgQDV2lh1Uk3xBj15FZrzg/7GM7bK3L/Xcxzz +VewAksKuVEyoqHfZAo6P/xOiQkwc9kBoet43MiNyph/kYssQowE+Pg+WffB1Ve4F +kVsq6z1mwAfnYD6m4GHxfrV6VxwM3ItiX+PiKQ4YWsbyjc/vC4ZRSarLwbk8Woya +lNucr2hGmQKBgF5sdioFdaewm98Psz9XL61oYsLXCMkwF60v/mIjwEi19emIljw8 +8ogM+JKvJtM5ZvXKf5vqMyyrYPacFH9zGOj5SDlDa0GoYP9gNebaQtqv0P+Q2zV+ +aoFl6MGVrlyTlFy1aaD7zE1a1GT7TNEuUCfPNI/wd+wv7kn9RgpzMc1hAoGBAJrh +5Zkq/+olc9ZDcJMXsSkJgUURdhvrcjdGroOHx1oNEexA/3P7ZxchTa4ByDBdpS5G +drSRKp05dfWqG5o0BI140z9SfRnuH1KHAPlnoHPPdqn7ycSA1E7cT0GI33btMEIS +YvCEfYHkFRzM2qEtvp0W9o1WA/uTNSwrzZaAb8xZAoGAZZLwniPa8zkd+4WAPSN6 +LVj+1dGasfL/zftFhVxu0/KCpdggghG26Ej0ieG71k8Xg9tpZDJvo9Kj0s8Hu4Zu +TnhwwRVyUHls+Gl0t8XXV/ryRLHB8zY45k6A+Yvc/iOYQVmY2rE4kB4PDsrJ+d5P +wA1o1OPvcx28oBjHViWoWJQ= -----END PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) - Serial Number: 5 (0x5) + Serial Number: 8 (0x8) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Jan 1 00:00:00 1 GMT Not After : Jan 1 00:00:00 1 GMT @@ -40,70 +40,71 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:d1:24:01:37:51:15:a5:dd:60:42:fe:70:a3:81: - 77:0a:6e:32:46:d0:27:4c:9e:1e:df:33:e5:13:dd: - 0f:ca:dd:b7:ff:40:d8:ae:a4:83:95:37:c0:8d:e0: - 77:2c:8a:79:47:1d:c5:c5:71:11:86:2f:ae:19:c4: - 7a:b6:46:49:46:b3:cf:87:9b:55:30:86:b0:10:ec: - 15:23:bd:cb:9f:0a:d9:ae:8b:51:f9:30:38:6b:fb: - 9d:75:45:60:d5:07:d4:1f:e2:bc:ea:2c:95:97:55: - a6:23:a3:d4:62:b3:90:f0:32:4f:4c:0c:9f:7e:f5: - 82:24:39:1c:dc:7a:12:4c:c2:e4:c1:8f:18:40:29: - 1f:d3:aa:71:a2:f7:22:e0:e0:fc:32:e1:48:15:30: - a3:c5:5d:a3:dd:24:56:16:56:0a:66:89:1d:fa:aa: - 02:45:1e:94:49:c8:7f:ef:b7:47:92:f2:24:0f:fb: - 98:db:32:1d:bc:45:2f:84:56:72:8c:18:37:03:16: - 07:87:35:b2:61:7e:db:a2:69:51:9b:dc:9c:0b:d7: - a4:04:22:21:4a:72:2e:08:b4:cd:e0:11:79:8c:96: - bc:93:27:bd:ab:16:71:83:3b:49:76:bf:81:91:99: - 7b:52:e3:e9:38:2e:ab:2b:c0:a7:99:7c:38:22:7d: - e5:05 + 00:b4:bf:d2:97:33:e5:13:5b:77:65:bd:73:1a:75: + 28:9b:47:59:e6:b7:30:e8:46:33:6d:58:5b:da:1f: + 0a:ff:e4:e4:2d:f2:1d:f8:89:e8:64:2e:f6:c3:cd: + d7:a3:8e:d7:f7:cd:e7:d8:0e:10:c3:e7:56:d2:fc: + e5:e6:d3:4e:e2:ff:82:4d:18:63:87:b0:a3:de:da: + ef:0a:37:7b:ac:b5:b7:43:ce:f2:07:39:df:14:e9: + c3:a4:41:3e:7e:68:47:34:9b:7b:61:c4:18:e6:13: + ce:b3:b4:a6:e0:ba:03:ee:e4:eb:e7:aa:f4:6d:be: + 97:5b:aa:06:97:50:01:d0:78:b8:d6:92:b0:e4:e2: + b9:43:88:b5:ae:14:64:7d:52:70:d4:05:1c:09:25: + d5:e2:4f:c9:a8:82:db:41:31:c3:be:44:6f:0b:d4: + fd:bf:c1:ee:d9:62:bf:3b:8f:b5:00:c8:d1:df:5d: + 4a:13:ad:71:e4:4b:5f:d1:d9:72:4c:83:d8:93:40: + bf:6c:cd:2f:66:0e:04:d6:b9:43:28:24:c9:25:fd: + 59:70:fe:3d:f2:a9:0a:4e:c2:9b:c4:de:9e:57:5e: + 5d:16:25:e6:78:b6:44:49:29:9d:f6:bf:74:fb:85: + d6:0d:f1:65:58:f2:2b:d6:8f:10:49:c8:00:2d:88: + e2:2d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 54:54:26:B6:D4:1D:A7:E4:36:BE:65:51:D0:DC:4C:D5:34:44:3A:6B + E0:DC:E0:2F:07:88:74:3A:9F:D3:30:A3:71:8A:F9:D6:A5:E5:A6:53 X509v3 Authority Key Identifier: - keyid:F2:E4:D0:1B:1C:0E:46:12:B0:B1:D5:22:9E:F1:3F:84:B8:3B:6E:05 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 21:b6:a9:04:41:10:aa:62:e5:d3:fd:5b:55:c4:b6:4a:b4:f0: - c6:8f:53:7f:56:e4:09:c1:0f:83:7c:a3:6d:ad:e7:46:9f:47: - d0:a5:bc:be:04:9c:a0:37:a9:2d:92:2a:5b:9d:23:51:25:4c: - f1:f7:f0:0f:42:8b:59:63:dc:d3:f4:64:a3:d4:37:7c:2a:43: - 33:9a:8f:68:36:b3:b2:74:0d:28:f6:3b:49:73:9e:f7:58:72: - a6:76:1c:db:84:94:94:30:2a:9e:db:40:30:eb:57:a4:80:35: - 8b:56:ae:84:49:34:8e:4e:17:ab:b4:f0:b3:ad:17:6d:00:7d: - 08:5d:d9:74:35:c0:6d:68:a8:19:f7:cd:5d:f4:37:a1:8d:6d: - 3f:a5:13:40:8c:0f:3e:24:91:73:30:09:0b:27:97:40:fa:39: - 27:49:e6:44:2d:06:77:99:f8:f7:18:4c:d1:1e:27:6d:60:12: - a2:c9:a6:75:20:ff:5f:63:89:37:01:47:12:e9:16:75:49:5b: - ee:dd:9e:a6:e3:de:15:9b:5f:f3:2b:cd:cc:5f:14:68:29:92: - 84:79:7d:1a:46:3e:e0:14:01:d4:18:11:39:fa:57:cb:90:b0: - 8a:96:6a:12:7a:45:43:c4:a5:16:bc:56:5d:54:55:75:c7:bd: - f1:86:d4:d9 + 86:50:e0:4c:98:8e:43:69:c2:2f:f5:2e:2e:64:30:28:0f:49: + 48:d1:9a:61:bc:49:01:f8:84:0a:04:91:d4:04:ee:9d:02:fd: + 00:2b:6d:57:d5:23:c7:62:eb:e2:96:15:90:bb:1d:3a:8f:98: + 32:1b:0f:04:d1:e8:ce:e6:4f:a3:2b:3a:41:9c:04:15:b2:30: + 3d:ef:f9:d1:8f:73:f2:f6:f9:0b:2e:8a:05:ce:ec:8f:1d:f1: + 84:c0:ba:a3:ef:c3:1a:83:fb:19:1e:03:fd:46:3b:97:28:55: + af:0a:e9:3f:36:90:a0:8a:a6:13:ff:d1:10:ac:d1:7e:79:54: + ae:fe:74:b9:7c:3f:8c:b4:e1:3c:5d:0b:18:92:69:00:04:0a: + be:0a:c9:bd:57:ec:9b:c3:8d:d9:07:fd:97:5b:04:e9:b1:29: + d9:82:8e:f6:fe:ce:76:2c:b3:d4:3b:f3:06:6d:30:a6:b5:1d: + 4b:f0:8c:57:07:1d:0e:23:6e:e4:50:fb:ef:74:d7:78:ff:be: + 31:97:66:ce:9f:a8:98:48:21:97:56:29:d5:c2:6e:66:6f:9e: + f3:ad:cc:92:f0:ad:fb:0b:e7:90:42:f3:27:13:69:35:71:bb: + ee:9d:fd:dc:ee:3b:62:c4:2a:98:ca:15:6f:15:d9:f9:0f:82: + eb:fe:80:03 -----BEGIN CERTIFICATE----- -MIIDMjCCAhqgAwIBAgIBBTANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwIhgPMDAwMTAxMDEwMDAwMDBaGA8wMDAxMDEwMTAwMDAwMFowGzEZ -MBcGA1UEAxMQTGVhZiBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBANEkATdRFaXdYEL+cKOBdwpuMkbQJ0yeHt8z5RPdD8rdt/9A2K6k -g5U3wI3gdyyKeUcdxcVxEYYvrhnEerZGSUazz4ebVTCGsBDsFSO9y58K2a6LUfkw -OGv7nXVFYNUH1B/ivOoslZdVpiOj1GKzkPAyT0wMn371giQ5HNx6EkzC5MGPGEAp -H9OqcaL3IuDg/DLhSBUwo8Vdo90kVhZWCmaJHfqqAkUelEnIf++3R5LyJA/7mNsy -HbxFL4RWcowYNwMWB4c1smF+26JpUZvcnAvXpAQiIUpyLgi0zeAReYyWvJMnvasW -cYM7SXa/gZGZe1Lj6TguqyvAp5l8OCJ95QUCAwEAAaOBgDB+MAwGA1UdEwEB/wQC -MAAwHQYDVR0OBBYEFFRUJrbUHafkNr5lUdDcTNU0RDprMB8GA1UdIwQYMBaAFPLk -0BscDkYSsLHVIp7xP4S4O24FMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD -AjAPBgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQAhtqkEQRCqYuXT -/VtVxLZKtPDGj1N/VuQJwQ+DfKNtredGn0fQpby+BJygN6ktkipbnSNRJUzx9/AP -QotZY9zT9GSj1Dd8KkMzmo9oNrOydA0o9jtJc573WHKmdhzbhJSUMCqe20Aw61ek -gDWLVq6ESTSOThertPCzrRdtAH0IXdl0NcBtaKgZ981d9DehjW0/pRNAjA8+JJFz -MAkLJ5dA+jknSeZELQZ3mfj3GEzRHidtYBKiyaZ1IP9fY4k3AUcS6RZ1SVvu3Z6m -494Vm1/zK83MXxRoKZKEeX0aRj7gFAHUGBE5+lfLkLCKlmoSekVDxKUWvFZdVFV1 -x73xhtTZ +MIIDfjCCAmagAwIBAgIBCDANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMCIYDzAwMDEwMTAx +MDAwMDAwWhgPMDAwMTAxMDEwMDAwMDBaMBsxGTAXBgNVBAMTEExlYWYgQ2VydGlm +aWNhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0v9KXM+UTW3dl +vXMadSibR1nmtzDoRjNtWFvaHwr/5OQt8h34iehkLvbDzdejjtf3zefYDhDD51bS +/OXm007i/4JNGGOHsKPe2u8KN3ustbdDzvIHOd8U6cOkQT5+aEc0m3thxBjmE86z +tKbgugPu5OvnqvRtvpdbqgaXUAHQeLjWkrDk4rlDiLWuFGR9UnDUBRwJJdXiT8mo +gttBMcO+RG8L1P2/we7ZYr87j7UAyNHfXUoTrXHkS1/R2XJMg9iTQL9szS9mDgTW +uUMoJMkl/Vlw/j3yqQpOwpvE3p5XXl0WJeZ4tkRJKZ32v3T7hdYN8WVY8ivWjxBJ +yAAtiOItAgMBAAGjgYAwfjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTg3OAvB4h0 +Op/TMKNxivnWpeWmUzAfBgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAd +BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATAN +BgkqhkiG9w0BAQsFAAOCAQEAhlDgTJiOQ2nCL/UuLmQwKA9JSNGaYbxJAfiECgSR +1ATunQL9ACttV9Ujx2Lr4pYVkLsdOo+YMhsPBNHozuZPoys6QZwEFbIwPe/50Y9z +8vb5Cy6KBc7sjx3xhMC6o+/DGoP7GR4D/UY7lyhVrwrpPzaQoIqmE//REKzRfnlU +rv50uXw/jLThPF0LGJJpAAQKvgrJvVfsm8ON2Qf9l1sE6bEp2YKO9v7Odiyz1Dvz +Bm0wprUdS/CMVwcdDiNu5FD773TXeP++MZdmzp+omEghl1Yp1cJuZm+e863MkvCt ++wvnkELzJxNpNXG77p393O47YsQqmMoVbxXZ+Q+C6/6AAw== -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/crlset_by_intermediate_serial.raw b/net/data/ssl/certificates/crlset_by_intermediate_serial.raw index 5cde6fb..370d488 100644 --- a/net/data/ssl/certificates/crlset_by_intermediate_serial.raw +++ b/net/data/ssl/certificates/crlset_by_intermediate_serial.raw Binary files differ
diff --git a/net/data/ssl/certificates/crlset_by_leaf_spki.raw b/net/data/ssl/certificates/crlset_by_leaf_spki.raw index 750abff..acc4c15 100644 --- a/net/data/ssl/certificates/crlset_by_leaf_spki.raw +++ b/net/data/ssl/certificates/crlset_by_leaf_spki.raw Binary files differ
diff --git a/net/data/ssl/certificates/crlset_by_root_serial.raw b/net/data/ssl/certificates/crlset_by_root_serial.raw index 7478b636..31f6b462 100644 --- a/net/data/ssl/certificates/crlset_by_root_serial.raw +++ b/net/data/ssl/certificates/crlset_by_root_serial.raw Binary files differ
diff --git a/net/data/ssl/certificates/expired_cert.pem b/net/data/ssl/certificates/expired_cert.pem index 9f64afa..c68dbc7c 100644 --- a/net/data/ssl/certificates/expired_cert.pem +++ b/net/data/ssl/certificates/expired_cert.pem
@@ -1,37 +1,37 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5dX3Q/ESHxMTt -IN+IZ4u5ff7fqH6N6zSBxNjWaLPZp81HGjSQHIkDO1WKOitR2to7uC50i7qeavIW -gpQdWyP4dmjuoSvCXtsHGRfq8Csu7SIwmqgTUh10TiU5BIThhm+EvtqlFZOvjWls -bzRnqH6DksXEYZxxiLs7geLd2GXm6QkPJ6dyi9RjxXU8v1aK5/oOttOVPvHRNoqA -Ew78BukQTnK5bDGfloq+/tzsKtYnHwoZyQPfxRXmYvnhrpB2X2AINo68VxflajDB -kDGgZ7oMrEcWr201II93IHr27chdkHlY7A9yCYYWhwoUvlvFYQAqxZ112EBthRhe -ZkrTiYgrAgMBAAECggEBALeWo1H6KCzukLLc0+tH9X1OSLxHI+CBcZz0rGKzizZv -cjpsqpPua4OTfP40zyVcrKRpkzM0Dy07WSMHaHAXBOi07vMrARKMq+2+3Xpo/Zaa -kDnlH3Tg2N+FbDuhSZmnZ0XVWMQLNAOYzT/WZd4nYfYFmVjp9+A8Jnyl+1r5GQcX -Acbs2eQ54AWmrxpG7oXS/Ybn5DNWfxj0H4JTr9mtqatgl0kqCVaav0MCva6oe0xV -U54cDwCrlTgM5YIuMynF/q17dS6YpmICWJEzG18M5+k1XsWzvlLQza5l39i+Z8SH -/mkWOIlXxjTnlG82ni2ivGB7ts6cK9v8mCx9okBqKwECgYEA2fo+FUAgKbsRJ3jD -1P/Fc53GsxD5dbqCon5gDqxQy6RrJmWbyHFRvnPBWFYOVTvG85hHtrwtxcfPJ6f3 -ZZlVKSdg4P0RN8iNiI+yfZdueW0DPbt5bwUZ2q7wY34h4W28bJoDyhxyqC3CZabg -nbhnyKz7yvq4UhYg0EgxgAYOAEsCgYEA2c8jDZNuAG5PC/Vcx4bN2MdRaDXgrcNR -tmNTf+tV0c/q7VUmiLbtCCfQLgF/MWWCa7Gx3TpXYWeBugQ5javOH4EYt+tx7LKm -GPUJM5u3S53jL0nu7vY2h5RzJhvqMIKSnRn+ePMYoObNyq2vOLj7xAzy0OCqvb3w -NKsOvfZUa6ECgYEAruwSRhtftB1adsKC5LscSNukSK6mgcNacevYSe4eKE2Zbwa7 -LO9DGgLqdWkZt2xxC6p4YjxAvybJJpmz/uQ9Yvkm1WZAGvPmIGCwa/jJvsesgi2g -FWeSh9s7LZxas/zL6Jrvz5FksXGHPuvb9LW3E2M97HWm1LjNPFey4Xn6YmECgYAk -OcNGusKM58vV3VU1CkKqT1xGzM81l0q73wFAQU/guYgFOShTjLkXpieFv1H8UTnD -16YReWaXGLQG0DUSTwTVUI9f55TnHT9q3zZMkxWFShlDADTxIZooKpSMPhBRSSZB -YtVkIGp0OG75yrFd6cZV8SFhhDxhmnmdCOZGyfV4gQKBgFVaCbgC+TmsxOZJ9idK -k5QMolUGcjB8H5Mtb6wmU8XnT7AAv1VtBIWVu9SU0AeiQDHPNGux5z8fr1QLAxIB -NrevWo6XsKlSUHruFakIny0XadpKs0eFmyUh0v4H6bcOPifRubSx78seg3fx3Sji -8TvKB3jMM3QnimiLlaOzI4uR +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDOyfwsFGz4KjJt +FmfGaisMwi3KJcI5RWUWvll6c94BNuVv643WZGaq/Yfx8bPCvKr9T5Q/1QnkXwRW +v8eRnocK5obwTQz8l1Md8PXsl81sT982C5Lk+HDBbXNrOlS56Q1W7ggNnC7Yxe09 +KHoFI/BibDgHM/qeneNFmzfUEPVm1XbUgsQmodoV3e6Ncv4UlwjJ1n+3Zy+y09OQ +MGEjsnpSWnzQkwnYJTpPi8QslnkX4AoUf4Qt+cI5QU90A9ODDTTqRdifLFOH8XD5 +OXPcqGwwdAx22SpUkpp4WHyLbbjthWOBarE4pvVlM6IG8bnOaW23EXgGiJOx0j+F +PZv8UQ25AgMBAAECggEAWZd1Y/utgo91rYGpkHNrF2oBwLU/QuTn+USbK8yLgOcx +3J2npB13xdl2TsKzaUmoo3sY9dbtJD5ueM86PcL7KyPZjr8zQzSk1DITul/Cpoys +XpQBHqbs40DyYqCxGKL6HpGed5cVTOHj+T1SMGvzuBC+7Y/9oz8wunWXaI+4YsaN +KTcahUeyw3B3nGu59iy8FtIgZE+XpXw6HmIM6fFq2qL9F1yCyOev5qpMQD+WbBVp +p6GDmt02mgatrIx4hDd//OfGAeLdnlpOHbs2Dzs2BL2j+V0UbatpzCX+9U3zb526 +EYm1n6AOkHIrFRGSiGs/6XcB+rKG1wFqNL2WGFfkCQKBgQD8o7krKl6bzTR0gssg +BDggFSab5f12o+lm5BB5f8ZcTASSV9+LvlFuTOqg00JWrj3W4ykapGiqy5DUb/TC +9SUnHMWN+gWAP1byoqrvlsPGRvaOkZZZ8BMFlgaTVdmSYm2jEL41DhiOco7uxeID +hbGl969Az1DYqk6l0B8eXhvmhwKBgQDRiiIw611fCaWuN9mPZC1WMzKOhddSVqFK +VX9avQ5RF0BDDze4QmCC3pBOVQ54iUyawk3anMysirD4WFbJSSZ/LyV+ChGbLNW+ +C3WnCOEoGnfXYRO8Anpba4uRODQD8aFSDhOwiX9cnGhn0LK+JWUsO73ubFp232id +GJp4lnQ5vwKBgQCPMNitr4kJ82fMtakdT2bkQDiu2c8sJEEQ0SjJRHOQMoHQ1D9e +vBL5Wl0NpE+QQ5fHKN9OO2sbit9emMn4ietx3KvYCaJ+iufkA/CwdRonUmdCbR/z +f8+4Nc0qStlTT7hmWQIFniSq8CE1EjFE38zNjbHmINrowrZq4qgQlTRpFwKBgH0o +Pd3sZ7wBfiW+lEOSuYW4VOVOSluTBQnqYYRoUinbcnXbnBOCCjWBDL7NDTSwBcKW +dnwylgolWSktUsEt4UGsfn93Mib2s8CtBZw8sIgMrzJFeM0eycjbRuT5phAI/quN +XvNeXWWKws3nmSv8GB9Am+TScYJ5VPoonPOUIl3vAoGBAIopah8JtNrmpWchIO5+ +z7JeELzUWelGbKOoclWOVnaC80RWYaUe9Zf+6FDifSpbEo6Muf2dGm8+uC+DmQX0 +sXscgfZafFYDLIFHjvFrL3kQH06jKhcbD6s48YHlBCHVZx5SJLGbbiVOnYtPubIS +uCQfr9VlJkIUbJCn5ekytz9K -----END PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) - Serial Number: 1 (0x1) + Serial Number: 2 (0x2) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Jan 1 00:00:00 2006 GMT Not After : Jan 1 00:00:00 2007 GMT @@ -40,71 +40,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:b9:75:7d:d0:fc:44:87:c4:c4:ed:20:df:88:67: - 8b:b9:7d:fe:df:a8:7e:8d:eb:34:81:c4:d8:d6:68: - b3:d9:a7:cd:47:1a:34:90:1c:89:03:3b:55:8a:3a: - 2b:51:da:da:3b:b8:2e:74:8b:ba:9e:6a:f2:16:82: - 94:1d:5b:23:f8:76:68:ee:a1:2b:c2:5e:db:07:19: - 17:ea:f0:2b:2e:ed:22:30:9a:a8:13:52:1d:74:4e: - 25:39:04:84:e1:86:6f:84:be:da:a5:15:93:af:8d: - 69:6c:6f:34:67:a8:7e:83:92:c5:c4:61:9c:71:88: - bb:3b:81:e2:dd:d8:65:e6:e9:09:0f:27:a7:72:8b: - d4:63:c5:75:3c:bf:56:8a:e7:fa:0e:b6:d3:95:3e: - f1:d1:36:8a:80:13:0e:fc:06:e9:10:4e:72:b9:6c: - 31:9f:96:8a:be:fe:dc:ec:2a:d6:27:1f:0a:19:c9: - 03:df:c5:15:e6:62:f9:e1:ae:90:76:5f:60:08:36: - 8e:bc:57:17:e5:6a:30:c1:90:31:a0:67:ba:0c:ac: - 47:16:af:6d:35:20:8f:77:20:7a:f6:ed:c8:5d:90: - 79:58:ec:0f:72:09:86:16:87:0a:14:be:5b:c5:61: - 00:2a:c5:9d:75:d8:40:6d:85:18:5e:66:4a:d3:89: - 88:2b + 00:ce:c9:fc:2c:14:6c:f8:2a:32:6d:16:67:c6:6a: + 2b:0c:c2:2d:ca:25:c2:39:45:65:16:be:59:7a:73: + de:01:36:e5:6f:eb:8d:d6:64:66:aa:fd:87:f1:f1: + b3:c2:bc:aa:fd:4f:94:3f:d5:09:e4:5f:04:56:bf: + c7:91:9e:87:0a:e6:86:f0:4d:0c:fc:97:53:1d:f0: + f5:ec:97:cd:6c:4f:df:36:0b:92:e4:f8:70:c1:6d: + 73:6b:3a:54:b9:e9:0d:56:ee:08:0d:9c:2e:d8:c5: + ed:3d:28:7a:05:23:f0:62:6c:38:07:33:fa:9e:9d: + e3:45:9b:37:d4:10:f5:66:d5:76:d4:82:c4:26:a1: + da:15:dd:ee:8d:72:fe:14:97:08:c9:d6:7f:b7:67: + 2f:b2:d3:d3:90:30:61:23:b2:7a:52:5a:7c:d0:93: + 09:d8:25:3a:4f:8b:c4:2c:96:79:17:e0:0a:14:7f: + 84:2d:f9:c2:39:41:4f:74:03:d3:83:0d:34:ea:45: + d8:9f:2c:53:87:f1:70:f9:39:73:dc:a8:6c:30:74: + 0c:76:d9:2a:54:92:9a:78:58:7c:8b:6d:b8:ed:85: + 63:81:6a:b1:38:a6:f5:65:33:a2:06:f1:b9:ce:69: + 6d:b7:11:78:06:88:93:b1:d2:3f:85:3d:9b:fc:51: + 0d:b9 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - F6:5D:86:15:33:43:5B:6B:25:21:92:16:41:CC:8A:7F:D1:C7:9D:9F + AC:97:8A:09:35:95:6A:EB:AD:D3:05:F5:A8:58:AB:E6:58:95:3A:BD X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 8f:22:f8:a0:2d:23:83:e7:62:1f:1f:cb:e3:c8:96:6f:6a:b8: - 94:29:7d:d5:46:f1:78:02:e2:b6:4e:b0:57:a6:c1:e2:6c:ec: - f6:25:5b:7e:85:d8:32:1a:6c:a9:38:39:6f:f1:95:cb:56:94: - ab:d8:74:aa:67:cc:7f:8f:25:7c:e6:ff:d9:a0:f1:5e:44:1c: - d7:43:50:57:b9:88:02:0e:f5:38:23:44:c3:1c:5a:05:ef:2c: - 9f:09:8a:dc:8a:fe:60:85:a7:ba:6e:0a:c6:bb:ad:c0:18:01: - 4d:e8:85:13:50:5b:c4:0e:47:f5:9c:e4:85:cf:7c:d8:c2:9b: - 34:c1:1b:ce:4b:25:52:1b:07:89:9f:0d:d9:f2:b2:6a:e2:40: - ce:18:6d:3e:57:ed:eb:ec:66:5c:52:49:a3:d3:cb:90:81:ee: - 0b:6e:6f:23:54:d7:78:5b:31:5f:76:28:06:04:db:24:a0:17: - f2:f5:33:cd:c6:b1:e0:39:f9:14:36:8b:f4:a0:be:6a:a1:c8: - 09:45:8c:4c:4e:45:05:50:d4:da:53:63:34:2f:c8:7d:e5:39: - e9:9f:e7:96:28:f1:d0:49:bc:94:25:14:4f:7b:1f:44:f2:6d: - 76:0d:d0:7e:de:8b:b8:b5:7f:6b:a4:7e:d5:7f:e4:32:55:dd: - fb:ef:65:d2 + 97:9c:42:d2:b4:6f:c2:fd:d1:85:72:6f:92:9e:de:07:71:e8: + cc:6d:97:93:82:2c:0d:62:c0:4a:cd:bc:7a:55:82:08:5a:1f: + f9:aa:4a:16:35:de:19:86:25:12:93:0f:65:56:d7:bc:d3:6b: + f7:39:de:9e:fa:43:b1:39:b5:5b:d3:32:33:d9:6f:86:0c:f6: + 12:cc:0b:a7:27:54:36:55:ce:26:6c:e3:64:a2:b2:c6:a6:3e: + 94:16:ec:4e:c0:f3:cc:6f:54:ff:26:bf:ac:ae:0f:c3:69:a3: + 80:35:44:e3:28:9e:1b:7e:98:2c:a3:cc:ef:25:0e:25:3f:36: + c1:92:38:25:21:bf:d4:e5:0a:51:16:85:d6:36:ef:88:1a:56: + 2b:71:7c:88:50:c8:99:08:e2:a4:f0:50:12:c7:5f:6b:e8:01: + e8:26:06:a3:24:d0:3c:67:9e:88:96:fa:b2:26:47:08:93:94: + 74:f9:97:0f:c2:28:85:97:e1:dc:f3:1b:66:f1:71:d7:65:4e: + 34:d1:fa:56:84:be:a3:a9:8e:11:a1:03:fe:14:b8:a6:7f:ee: + 53:ce:e9:72:57:d8:3d:2d:54:0c:5a:80:1d:6a:4a:16:ab:fe: + 2b:07:05:cf:c5:a9:10:38:83:32:b5:bb:7c:81:39:a4:16:1a: + 0e:c5:1d:92 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBATANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMDYwMTAxMDAwMDAwWhcNMDcwMTAxMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuXV90PxEh8TE7SDfiGeLuX3+36h+ -jes0gcTY1miz2afNRxo0kByJAztVijorUdraO7gudIu6nmryFoKUHVsj+HZo7qEr -wl7bBxkX6vArLu0iMJqoE1IddE4lOQSE4YZvhL7apRWTr41pbG80Z6h+g5LFxGGc -cYi7O4Hi3dhl5ukJDyencovUY8V1PL9Wiuf6DrbTlT7x0TaKgBMO/AbpEE5yuWwx -n5aKvv7c7CrWJx8KGckD38UV5mL54a6Qdl9gCDaOvFcX5WowwZAxoGe6DKxHFq9t -NSCPdyB69u3IXZB5WOwPcgmGFocKFL5bxWEAKsWdddhAbYUYXmZK04mIKwIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU9l2GFTNDW2slIZIWQcyKf9HH -nZ8wHwYDVR0jBBgwFoAUvPcw0TzA8nn675/JbFyT84poq4MwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAI8i+KAtI4PnYh8fy+PIlm9quJQpfdVG8XgC4rZOsFemweJs7PYlW36F -2DIabKk4OW/xlctWlKvYdKpnzH+PJXzm/9mg8V5EHNdDUFe5iAIO9TgjRMMcWgXv -LJ8JityK/mCFp7puCsa7rcAYAU3ohRNQW8QOR/Wc5IXPfNjCmzTBG85LJVIbB4mf -DdnysmriQM4YbT5X7evsZlxSSaPTy5CB7gtubyNU13hbMV92KAYE2ySgF/L1M83G -seA5+RQ2i/SgvmqhyAlFjExORQVQ1NpTYzQvyH3lOemf55Yo8dBJvJQlFE97H0Ty -bXYN0H7ei7i1f2ukftV/5DJV3fvvZdI= +MIIDvzCCAqegAwIBAgIBAjANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTA2MDEwMTAw +MDAwMFoXDTA3MDEwMTAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAM7J/CwUbPgqMm0WZ8ZqKwzCLcolwjlFZRa+WXpz3gE25W/rjdZkZqr9 +h/Hxs8K8qv1PlD/VCeRfBFa/x5GehwrmhvBNDPyXUx3w9eyXzWxP3zYLkuT4cMFt +c2s6VLnpDVbuCA2cLtjF7T0oegUj8GJsOAcz+p6d40WbN9QQ9WbVdtSCxCah2hXd +7o1y/hSXCMnWf7dnL7LT05AwYSOyelJafNCTCdglOk+LxCyWeRfgChR/hC35wjlB +T3QD04MNNOpF2J8sU4fxcPk5c9yobDB0DHbZKlSSmnhYfIttuO2FY4FqsTim9WUz +ogbxuc5pbbcReAaIk7HSP4U9m/xRDbkCAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFKyXigk1lWrrrdMF9ahYq+ZYlTq9MB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQCXnELStG/C/dGFcm+S +nt4HcejMbZeTgiwNYsBKzbx6VYIIWh/5qkoWNd4ZhiUSkw9lVte802v3Od6e+kOx +ObVb0zIz2W+GDPYSzAunJ1Q2Vc4mbONkorLGpj6UFuxOwPPMb1T/Jr+srg/DaaOA +NUTjKJ4bfpgso8zvJQ4lPzbBkjglIb/U5QpRFoXWNu+IGlYrcXyIUMiZCOKk8FAS +x19r6AHoJgajJNA8Z56IlvqyJkcIk5R0+ZcPwiiFl+Hc8xtm8XHXZU400fpWhL6j +qY4RoQP+FLimf+5TzulyV9g9LVQMWoAdakoWq/4rBwXPxakQOIMytbt8gTmkFhoO +xR2S -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/intermediate_ca_cert.pem b/net/data/ssl/certificates/intermediate_ca_cert.pem index 952a230..db82c408 100644 --- a/net/data/ssl/certificates/intermediate_ca_cert.pem +++ b/net/data/ssl/certificates/intermediate_ca_cert.pem
@@ -1,104 +1,105 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCnUEvP8sppMxqR -73F9aDqvHusU7mSoK0HG7CtS6WasXU/9LrAxOWwugR6DXVmV0iqZ+/E4Lvk2UlN8 -6rrf+9aY9Mk50TRGZ4NBibzLlPkmPbC2aPeTa9RAJ1JhDyAekVg9YN1KHP5UPwxK -xFjXEf+oPPHNOfZIm6Ug28yQK/sfYutGTdPvA/j24IIFrypPAO3aYwRwQeYKk+lN -hdT3K4bzNeFptYH82k/LQpTJ13a6m1ef++/tJu8tU3MvkjFLOHuGZusNLvKTj8W7 -/swTUOkYHRhkmZHa3pYrCHIhI0JnmYaY/m/1jg5hsQp+9bjVpwagU+9/BNsRxAcK -R5bwk4LVAgMBAAECggEAfI59cfjIkRqXXC9KaNbwYTB+R93Vl5BkboehFR9m7Uim -ZNCeIHckP1amdZtINw334xy5jl8B7lvJhYRlzJt6PfJ135IL/aHQCDlXEKP9+2cP -qCxqqxgqMfxUCqes/LStYTw8YZFGEUfCieK0VKA0mHWOeX7+Bz2/579aAbaMQ+c2 -rlLIK9PelGPgRMSNHdNzusBG4qr4OBYeeAJ16gHBg4xVZPdp9ApM0UKN410M+gjx -509D/HiBhiswMOJBPpxypfbnjMaTUklt0KLGSCkwocrf9K+TnrwfQ1ZWfq2Hmlu3 -B99i6rtsOEMREq8kvV4yqTV0qBFXOmMZbmNFUiBwoQKBgQDal+ILQEywfpAEHAIw -p/F8WipX1K6XhsSumBRXg12yzE/oik7TOr6a5xML38d3Iml4S5IAhwFSVWZe/spU -fu2ZUhQOISWOZ+pIw/OJx1KIo1iiHDMOQZ7HC+QVk8zoXkZDRPdxP8UDEORGA7UV -TqmsNBnSbddCfbX7GAPs28AJvQKBgQDD8fWFxLotZh7RyhAdPdfCJcGhW7bDCAYU -Vg6T4ZXS6COFUIYlA794BwjtDisCNQUkLOcCI0J/diSXVJ8HbRCWTvMh6ZCM6No0 -gEgMABeUYaDvc2ca+bJ/9jN9YLXyZYfU3RAwX4V/rTcbwJTB/+tnHQLbcb7WyLEg -gyoDTlHS+QKBgDtv6QreJPworcgwRXgtckA51CGltwOEpZ5Dw+Q32BZx75hvYxeU -dZdxFYC5DGecd8k54y05iGZ2yisyZJmtGbYC12kwIiIip1W50lK4W/zDTapmuIs7 -1IyS8yXa1nCokbpg2ld024EF6swO3gI5LXGhiRPqwglWXVE1KnwRFJqRAoGAbiMB -c1gZoc0Fw7vFBPqu3MTmKnFnsAZBjIq2lO62jR7IYHXbgNCzfZ7OqJhPGmV851GJ -40y4YvagKKN64+ys5x+nT8d95YY4qEv2szAWEOQzVoRSTvpNF9nmJTIH8yCYkdBT -+iym2BYfpKzBsK3Nvl6zLW+o6gdScEjpg4QxP9kCgYEAt0k4F/1bbnWOA9NFoIEA -n8d9w4hyFpn4tYNcB/9PvXURDuPurOPEutydd/hFzgdewVu61dsb16rFNoAZOwPp -+BacwdewsPjrpA5Rr2sH7KsDwjOi+2TUACmt8ZZnAxCr96EeQje/ggUW2ukL7wza -bm82NyldWSM4JidPhoDyWjA= +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCd6b3kPUov+8L5 +5iIqQhVGHIyPR0zpxVeVH2ZwkyLwlMO7tVvvpG/Ix4mVdboMNr9Oa6k1RwhDnilq +4sP7A7cftuFRa+17Gcf5zjvcZelmx4OUxNFO7u1kS4HxGupaZBgbak6T0BNskGDK +0k63JBb4sghYnY2nM0UVNIGtLS2cYO/5K5j+edONLEjbEpH0Lvq/9SbBggWA3Uyo +cL+nvBA0dznbRwQP7USyZUYiIIhZKA/HDKK0kaWiqsoFn4qbbqPL1KToJHWdIIEi +W193PsnxHq7rijOMJ1sevm0hG0JyleOeEwN1p1jUvmgS/mOOSxF6NOeja91zrj4Z +muyRi3OvAgMBAAECggEBAJwu2gyK/fw1YqNtlS78izP7+p2fZJf2AejQ1K3VKQKP +8IOQHW0I0zLe/9oeRTPdVhtG6mVyat8N6GL6A+IZy54HcBTqzUgquJn++z/CYDWy +cRbMD0SllY/UCqIf/9gFFb7PxwX1D7EZn1Ia7ZW/kSTKWOzkb30GfXY6p2NTwr/d +psacQ5v6+o8z3RD2N44gPvrGA2d1P83YT0oIYwKAHtpu6c46CBQmf54lhjs1LdxE +UgF8w+Y8T8DZQ5WekchIWBcGZLiqBkm49+uBoGtlfrcszZkC3pnX++HoZAYE9ms4 +OCdWhEBHUyhd/os7GjaX+CGUM4nNx0LmoqeJBhBt0qkCgYEAzcsWqVYruimpnES+ +lzFIiFZXI6rYd7hkJ+semFst4UFQM51TE0gXkrzZdIu/rgmRlb05to739V1i2z0B +TxGka+WzL6j4ZtJjy2WBl35GceoeL5Iwbjs8OiJFr8TAkq9v3TT2iymuUDGSHCCz +1T9GfS4/zoLNGiqKOxp7O6ZwaC0CgYEAxHBFRtQ1eeKYL5FZwWv2JklivutDWURK +0dzbzsvKaUf40ZdZe+A6cFomckm7xubHwMckY+8Y011pgF581JWWIaRs8u8jJuWA +ajjfmFSC0L5uuk6qYHa9eWQu8LvUGmKX9SMs7Mt2h7BS+l+ZDbgr6LngoK1CWGEK +DLo0/fp7OMsCgYAi++RVUx3J3u1DcHhJ8YnYC31yxcdYytLT6mdgFRf+lADTVWpa ++8VuH4aEBoHGT0AdiXZ3L2S9pGt6w6smSuR9pyXH81yO9jMaz52xKDlHgjoxchOj +mZRKeasJD1SBWyuUGj3TOHm2jka9W13W4ZPVEfis3ZWKXjLzizPp1wiC3QKBgEMX +ESIKsiTptg5w9xWveMdEwxvvn/Xp9B/O7aeoRH5GnX1/0okTYQIkWAMqmZ5qDYkS +uqQC8himS7UTEFFOsZLV5HvoHrpXIc+lkwAkxPTkRU8ONPRzOW0vQTTpAZztVXbc +x6gsKVRYbU6jvdNItn5qlYRrCEDFC7ijFBw2I0WXAoGARVYDlmIrSvnwqZ07YzPa +QeLueBBfnHqN+7XAGTctn0MOhE96OgURw0lWVnyoGtTmUAHtdho5EeDDUxQm/n1x +whGM72yqlFlslpnodQUqAYz1Eqe+RgP9V8KXdUVz652jqZwhuqLBjtAc9e9knwR8 +MTmwsskxSp9DWTu+tCjNrwM= -----END PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity - Not Before: Dec 9 22:40:07 2016 GMT - Not After : Dec 7 22:40:07 2026 GMT + Not Before: Jun 5 17:10:45 2017 GMT + Not After : Jun 3 17:10:45 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:a7:50:4b:cf:f2:ca:69:33:1a:91:ef:71:7d:68: - 3a:af:1e:eb:14:ee:64:a8:2b:41:c6:ec:2b:52:e9: - 66:ac:5d:4f:fd:2e:b0:31:39:6c:2e:81:1e:83:5d: - 59:95:d2:2a:99:fb:f1:38:2e:f9:36:52:53:7c:ea: - ba:df:fb:d6:98:f4:c9:39:d1:34:46:67:83:41:89: - bc:cb:94:f9:26:3d:b0:b6:68:f7:93:6b:d4:40:27: - 52:61:0f:20:1e:91:58:3d:60:dd:4a:1c:fe:54:3f: - 0c:4a:c4:58:d7:11:ff:a8:3c:f1:cd:39:f6:48:9b: - a5:20:db:cc:90:2b:fb:1f:62:eb:46:4d:d3:ef:03: - f8:f6:e0:82:05:af:2a:4f:00:ed:da:63:04:70:41: - e6:0a:93:e9:4d:85:d4:f7:2b:86:f3:35:e1:69:b5: - 81:fc:da:4f:cb:42:94:c9:d7:76:ba:9b:57:9f:fb: - ef:ed:26:ef:2d:53:73:2f:92:31:4b:38:7b:86:66: - eb:0d:2e:f2:93:8f:c5:bb:fe:cc:13:50:e9:18:1d: - 18:64:99:91:da:de:96:2b:08:72:21:23:42:67:99: - 86:98:fe:6f:f5:8e:0e:61:b1:0a:7e:f5:b8:d5:a7: - 06:a0:53:ef:7f:04:db:11:c4:07:0a:47:96:f0:93: - 82:d5 + 00:9d:e9:bd:e4:3d:4a:2f:fb:c2:f9:e6:22:2a:42: + 15:46:1c:8c:8f:47:4c:e9:c5:57:95:1f:66:70:93: + 22:f0:94:c3:bb:b5:5b:ef:a4:6f:c8:c7:89:95:75: + ba:0c:36:bf:4e:6b:a9:35:47:08:43:9e:29:6a:e2: + c3:fb:03:b7:1f:b6:e1:51:6b:ed:7b:19:c7:f9:ce: + 3b:dc:65:e9:66:c7:83:94:c4:d1:4e:ee:ed:64:4b: + 81:f1:1a:ea:5a:64:18:1b:6a:4e:93:d0:13:6c:90: + 60:ca:d2:4e:b7:24:16:f8:b2:08:58:9d:8d:a7:33: + 45:15:34:81:ad:2d:2d:9c:60:ef:f9:2b:98:fe:79: + d3:8d:2c:48:db:12:91:f4:2e:fa:bf:f5:26:c1:82: + 05:80:dd:4c:a8:70:bf:a7:bc:10:34:77:39:db:47: + 04:0f:ed:44:b2:65:46:22:20:88:59:28:0f:c7:0c: + a2:b4:91:a5:a2:aa:ca:05:9f:8a:9b:6e:a3:cb:d4: + a4:e8:24:75:9d:20:81:22:5b:5f:77:3e:c9:f1:1e: + ae:eb:8a:33:8c:27:5b:1e:be:6d:21:1b:42:72:95: + e3:9e:13:03:75:a7:58:d4:be:68:12:fe:63:8e:4b: + 11:7a:34:e7:a3:6b:dd:73:ae:3e:19:9a:ec:91:8b: + 73:af Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: - F9:98:21:49:71:FA:8D:B9:20:F7:FE:5D:4D:41:E8:8B:6C:E0:62:C3 + 17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B X509v3 Key Usage: critical Certificate Sign, CRL Sign Signature Algorithm: sha256WithRSAEncryption - 50:c7:37:47:87:1a:8a:b2:cc:37:d0:f6:4a:46:ee:b5:85:90: - 35:a5:a0:c8:c7:c7:38:7d:5d:bb:e0:fc:0f:15:d3:75:50:e5: - 06:08:b5:ec:d7:e8:65:63:03:5a:38:3e:2c:5a:eb:28:a0:3c: - 70:3f:d4:30:25:20:dd:22:63:08:f0:9b:a9:c8:34:8f:f6:7c: - 5a:ce:10:72:5c:37:a0:01:a6:5e:1b:a4:60:e7:93:f6:42:61: - 2c:d1:57:67:16:d9:19:21:52:03:8c:9a:aa:75:10:ca:a1:bc: - 53:07:f1:6f:52:54:88:50:7d:11:ef:96:82:0d:e9:7d:c1:42: - 42:42:13:1f:48:ef:49:70:df:e1:30:f9:6f:2f:3d:cd:51:1c: - 14:9c:bd:12:0c:f2:d7:16:32:4a:d5:6b:4b:21:01:6c:4a:b1: - ee:7b:8c:d0:99:7e:5e:1e:ef:10:24:6e:e3:6f:e2:e0:4b:0b: - 42:79:78:ab:2b:af:54:82:c4:b1:57:a3:f0:6f:16:42:ed:61: - fc:69:5e:2b:09:14:4a:61:cc:6a:19:52:66:89:06:48:f1:b5: - 76:39:68:21:dc:68:9d:11:07:37:80:ae:37:77:b4:69:69:29: - ff:f6:fc:f1:50:bc:ee:9a:f9:ab:c8:bf:a6:65:51:cc:89:1e: - 2f:2c:95:e9 + 3e:f5:d7:fd:82:3b:1e:34:8c:66:a2:f3:5e:18:e1:f1:a9:75: + 9f:b5:93:e7:0a:8e:cf:0a:33:ed:49:cd:ce:ce:ca:5f:a3:1d: + 64:76:d3:84:16:fe:9d:88:ac:f4:d1:f8:36:2b:20:80:52:0a: + ef:e0:0f:64:27:55:35:a3:7b:c6:8a:7c:a5:c4:29:17:b1:fa: + d2:89:5d:13:6b:b8:03:cb:d7:12:d6:ce:24:f0:af:48:17:03: + 54:99:af:e9:cb:fd:44:44:18:23:61:90:f6:bd:55:65:06:c3: + 36:98:8d:ea:7d:0f:79:ef:b6:bb:22:28:03:a6:ec:d9:d4:1b: + 47:ac:2c:25:de:ef:1a:02:69:4c:18:bb:29:48:f4:9d:e1:52: + 42:64:6c:88:46:68:86:83:fd:24:f5:7d:05:d7:1a:7e:22:bc: + 49:75:9c:8a:4d:e8:f3:a2:eb:9b:83:70:a7:d6:dd:2f:05:2d: + aa:be:d7:ee:7b:8e:75:44:3b:da:df:85:61:bf:e9:3b:13:40: + 4e:8b:52:08:d9:e4:8c:54:da:41:db:7b:2c:05:5e:99:06:0d: + 02:8c:8e:19:8e:55:b0:3a:33:18:30:03:a7:ed:4a:e4:f8:58: + cc:12:b8:af:d6:66:55:29:ec:01:1f:92:ed:3d:4d:c3:71:3b: + e0:2f:70:90 -----BEGIN CERTIFICATE----- -MIIDPzCCAiegAwIBAgIBATANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTYxMjA5MjI0MDA3WhcNMjYxMjA3MjI0MDA3WjBrMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTEdMBsGA1UEAwwUVGVzdCBJbnRlcm1lZGlh -dGUgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnUEvP8sppMxqR -73F9aDqvHusU7mSoK0HG7CtS6WasXU/9LrAxOWwugR6DXVmV0iqZ+/E4Lvk2UlN8 -6rrf+9aY9Mk50TRGZ4NBibzLlPkmPbC2aPeTa9RAJ1JhDyAekVg9YN1KHP5UPwxK -xFjXEf+oPPHNOfZIm6Ug28yQK/sfYutGTdPvA/j24IIFrypPAO3aYwRwQeYKk+lN -hdT3K4bzNeFptYH82k/LQpTJ13a6m1ef++/tJu8tU3MvkjFLOHuGZusNLvKTj8W7 -/swTUOkYHRhkmZHa3pYrCHIhI0JnmYaY/m/1jg5hsQp+9bjVpwagU+9/BNsRxAcK -R5bwk4LVAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPmYIUlx -+o25IPf+XU1B6Its4GLDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC -AQEAUMc3R4cairLMN9D2SkbutYWQNaWgyMfHOH1du+D8DxXTdVDlBgi17NfoZWMD -Wjg+LFrrKKA8cD/UMCUg3SJjCPCbqcg0j/Z8Ws4Qclw3oAGmXhukYOeT9kJhLNFX -ZxbZGSFSA4yaqnUQyqG8Uwfxb1JUiFB9Ee+Wgg3pfcFCQkITH0jvSXDf4TD5by89 -zVEcFJy9Egzy1xYyStVrSyEBbEqx7nuM0Jl+Xh7vECRu42/i4EsLQnl4qyuvVILE -sVej8G8WQu1h/GleKwkUSmHMahlSZokGSPG1djloIdxonREHN4CuN3e0aWkp//b8 -8VC87pr5q8i/pmVRzIkeLyyV6Q== +MIIDizCCAnOgAwIBAgIBATANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE3MDYwNTE3 +MTA0NVoXDTI3MDYwMzE3MTA0NVowazELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExHTAbBgNVBAMMFFRlc3QgSW50ZXJtZWRpYXRlIENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAnem95D1KL/vC+eYiKkIVRhyMj0dM6cVXlR9mcJMi +8JTDu7Vb76RvyMeJlXW6DDa/TmupNUcIQ54pauLD+wO3H7bhUWvtexnH+c473GXp +ZseDlMTRTu7tZEuB8RrqWmQYG2pOk9ATbJBgytJOtyQW+LIIWJ2NpzNFFTSBrS0t +nGDv+SuY/nnTjSxI2xKR9C76v/UmwYIFgN1MqHC/p7wQNHc520cED+1EsmVGIiCI +WSgPxwyitJGloqrKBZ+Km26jy9Sk6CR1nSCBIltfdz7J8R6u64ozjCdbHr5tIRtC +cpXjnhMDdadY1L5oEv5jjksRejTno2vdc64+GZrskYtzrwIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQXXEXz0KwcEEyLQ0QgxN2TxcUZOzAOBgNV +HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAD711/2COx40jGai814Y4fGp +dZ+1k+cKjs8KM+1Jzc7Oyl+jHWR204QW/p2IrPTR+DYrIIBSCu/gD2QnVTWje8aK +fKXEKRex+tKJXRNruAPL1xLWziTwr0gXA1SZr+nL/UREGCNhkPa9VWUGwzaYjep9 +D3nvtrsiKAOm7NnUG0esLCXe7xoCaUwYuylI9J3hUkJkbIhGaIaD/ST1fQXXGn4i +vEl1nIpN6POi65uDcKfW3S8FLaq+1+57jnVEO9rfhWG/6TsTQE6LUgjZ5IxU2kHb +eywFXpkGDQKMjhmOVbA6MxgwA6ftSuT4WMwSuK/WZlUp7AEfku09TcNxO+AvcJA= -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/large_key.pem b/net/data/ssl/certificates/large_key.pem index fe8a1d6..94cb0c4 100644 --- a/net/data/ssl/certificates/large_key.pem +++ b/net/data/ssl/certificates/large_key.pem
@@ -1,194 +1,194 @@ Certificate: Data: Version: 1 (0x0) - Serial Number: 10746871423479549511 (0x95248e9ecb4b8e47) + Serial Number: 11333387438568092375 (0x9d4847d419b9b2d7) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Validity - Not Before: Dec 2 20:57:39 2015 GMT - Not After : Nov 29 20:57:39 2025 GMT + Not Before: Jun 5 17:10:51 2017 GMT + Not After : Jun 3 17:10:51 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (8200 bit) Modulus: - 00:df:c1:08:64:7a:31:df:14:95:3f:cd:6d:83:9c: - 3f:9d:f6:31:ce:29:40:76:5b:4f:9c:f2:5f:a5:bf: - d4:82:eb:67:1d:1a:18:c5:43:53:b6:9c:19:de:87: - da:53:fe:11:e8:cd:49:b6:5c:98:68:dc:ae:b2:3e: - 86:03:8a:a5:eb:a5:95:1a:01:b6:b7:67:84:5a:07: - cd:90:06:69:52:db:10:b8:73:f6:0f:e2:43:28:4b: - 5f:42:75:c9:78:65:bb:2d:4b:b9:e9:97:09:be:1f: - 49:5e:57:86:c7:3f:fb:eb:18:90:57:7e:86:c0:e1: - 77:ec:67:6e:27:eb:f7:80:7a:e6:b1:dd:78:c9:f2: - ef:1b:10:3e:e2:6f:89:8b:56:8d:69:d7:f0:1b:1e: - 35:d6:41:c6:1a:80:1f:15:be:0e:ae:c9:87:df:e8: - 80:a2:85:20:de:32:3a:f8:cc:12:72:eb:41:1e:2b: - 2a:29:3f:f7:e1:eb:29:99:ad:b4:8d:79:0a:99:8e: - 0f:4a:1f:44:e9:74:b7:17:cb:97:21:7a:7d:d5:6c: - a5:fd:d1:53:b5:21:8c:0a:53:4d:0a:e9:4d:40:52: - 0b:35:5f:40:09:09:1f:6d:b6:04:9c:75:f2:ee:32: - 89:d8:ff:a3:5b:37:93:69:f0:25:4c:ec:2a:a7:1e: - e2:29:33:ef:07:f4:61:8c:91:a9:bb:f9:89:ba:b2: - dd:98:08:91:bf:77:f6:bb:3b:f7:8a:f7:1c:d7:6b: - 17:d3:fa:62:12:2e:bb:d3:bf:78:a3:eb:1e:cb:00: - 70:6e:87:3f:9e:eb:fd:2d:32:77:f2:31:af:5c:dc: - 15:a7:2c:d9:ae:e7:fb:f8:01:4a:c9:45:f3:87:dc: - c7:cc:14:fe:7f:7d:46:94:08:ac:25:6a:18:02:49: - b5:aa:bd:4f:c5:1a:04:b8:ac:a1:6a:54:01:19:05: - f4:55:e0:08:98:67:f5:ec:61:09:ec:fc:81:9b:88: - 77:53:7a:d1:48:4c:8f:e2:b7:0d:06:04:bc:05:6e: - 0f:0a:a1:56:07:b1:13:41:90:49:fd:12:70:f6:01: - 57:ad:d6:2d:a2:a1:04:cf:d1:29:38:f5:68:76:58: - 9b:5d:1e:0f:2c:77:f6:f0:cf:d8:df:c5:d2:23:8b: - 34:a9:ae:94:67:74:4b:21:99:7c:bb:de:be:f9:5c: - b6:eb:14:2d:bb:38:56:fb:0c:7c:70:42:42:1b:1b: - 3c:98:6d:61:1f:16:32:ce:73:2a:23:9e:eb:e6:d1: - 89:0d:30:07:d2:94:09:8c:6d:38:49:e6:07:fd:bd: - 23:48:47:6c:ca:c0:da:50:e8:5f:06:08:72:e1:ca: - fd:91:fc:29:fc:26:40:ff:1d:78:16:23:1f:c2:64: - 41:04:b6:3c:40:b7:08:27:a6:7d:26:4a:fd:57:af: - ee:ba:e3:93:45:07:64:5c:5f:c0:a7:e8:a2:5b:a7: - 3d:da:d3:97:1f:7c:da:77:00:0d:30:3e:e3:ae:fd: - 4c:c7:18:e6:62:e0:9d:74:0f:90:00:aa:c2:32:de: - dc:d1:8f:d7:c3:c2:08:bf:d1:bd:7e:21:09:79:32: - 8f:1a:12:43:97:91:41:33:bd:d4:2e:3b:a9:6d:06: - 23:d1:da:7e:5f:45:27:d5:17:9c:0e:df:2c:d1:66: - cb:ed:ec:e3:c3:6b:ab:0d:ba:71:04:a4:92:a4:71: - 55:69:20:35:72:fd:ad:54:a8:cf:44:c3:9d:a1:5a: - 94:4d:05:62:5e:98:d6:25:c5:d6:cf:f5:ef:94:c0: - 2c:53:87:0b:9f:13:0f:63:c5:97:d5:5b:8a:46:7c: - 0e:28:de:66:96:74:df:2a:b2:b0:27:6d:4c:4f:54: - 72:d9:2d:ae:58:4f:d3:63:63:93:c2:34:57:66:3b: - 38:90:36:a9:a9:95:e6:7d:e8:84:87:68:73:9b:44: - 68:d9:69:1f:1c:1b:9d:58:44:77:72:e8:28:c1:1a: - 11:bd:5c:40:b7:d0:58:b9:58:91:9f:5b:30:94:33: - fa:f6:be:2a:59:8b:43:cc:e3:04:45:1b:43:7e:d7: - b5:f4:d3:dc:5d:65:ae:6b:d1:92:d2:f7:b6:8f:df: - c6:5c:00:c3:0b:37:28:33:33:dd:05:cb:3c:62:0d: - 0b:54:42:ea:9f:6c:e9:f2:ef:c7:ab:7c:5c:cf:18: - 55:35:1c:f7:72:8f:c3:d5:1b:c0:09:6f:44:e8:06: - 62:44:c4:0b:10:e2:c3:b1:9c:de:73:37:5d:51:bc: - b6:3f:38:1b:75:d9:26:df:4f:1a:eb:63:9c:e1:49: - 11:e4:cb:ec:e3:3a:b1:e2:00:8b:92:bb:73:fb:05: - 78:81:e7:ac:21:1b:23:c1:8f:8b:9c:52:bb:09:da: - 72:23:bf:81:e6:74:18:63:1f:84:9b:5d:06:92:72: - aa:84:50:f4:8f:2a:94:05:8f:42:5f:de:45:05:b2: - be:26:3d:dc:c4:ef:83:cb:aa:b4:67:2f:5c:e2:f9: - b3:9c:1f:f9:92:8f:40:4f:99:df:9a:5e:fd:c5:db: - 92:dc:a8:41:13:64:f4:bb:0a:65:87:dc:cf:39:30: - be:9e:3a:86:62:d6:2e:6f:17:8a:d9:77:3a:e2:8d: - 8f:08:eb:1e:fd:af:67:22:1d:ff:ff:b8:22:2b:93: - 51:1d:12:c7:6b:85:4d:b7:18:96:64:e2:25:06:ec: - 45:67:63:2b:b1:23 + 00:ba:ab:d2:c8:6c:04:5e:23:61:04:38:ed:eb:c1: + ab:c7:5d:fd:21:15:49:2b:91:45:47:4e:b0:83:56: + ce:05:7f:3c:c3:6d:d5:02:2a:a3:f5:9b:0e:26:63: + a2:22:73:4c:89:a5:49:37:f4:0e:be:62:0a:fc:a7: + 31:02:a7:74:d1:c1:64:d2:d6:db:21:90:c3:a3:c9: + b6:1f:6a:f7:e9:24:8b:c5:a2:c2:cd:d4:91:16:1b: + 69:ba:c3:62:05:90:fc:2f:83:5c:6c:fe:63:c8:31: + 78:6e:27:f8:e2:25:a6:36:1d:83:4a:6d:f0:18:be: + 7c:56:12:24:d8:be:12:17:7a:f8:0e:58:5b:6d:e7: + 00:9e:2e:cc:08:94:3b:b2:71:df:df:c5:f7:b1:bb: + 45:41:40:82:c1:bd:90:63:f6:fa:98:ce:c9:83:95: + 17:30:5d:b6:4b:43:4d:ee:d9:e3:54:70:4c:87:92: + 71:39:3c:f6:53:43:96:a7:94:c7:a9:a8:62:ce:90: + 0e:d7:b3:e7:e4:0c:ef:2c:9a:48:30:d1:60:3f:b5: + 8f:6b:84:24:62:24:36:0d:3f:2e:82:15:3e:62:67: + 12:7f:d4:6e:2c:8b:a8:6d:70:da:55:5e:1f:0d:b9: + cd:55:b1:d4:88:eb:c6:24:3d:68:6e:31:75:20:70: + e2:2e:f9:cf:e8:38:93:47:f7:5a:91:50:9e:ed:c0: + 89:a6:2a:4b:04:83:e3:7f:e8:b3:89:c6:f9:3b:64: + 91:66:03:8f:3f:87:4a:0f:88:cb:1d:b4:57:cd:d1: + 35:6d:fd:33:a2:b3:f2:af:84:d6:76:81:98:c4:bb: + b1:8d:2a:fe:33:80:9a:87:3e:04:6d:aa:c8:19:04: + ea:82:86:5a:4c:d7:e6:a2:f6:cb:90:6f:d9:6b:44: + c0:aa:1f:f4:d1:8e:89:dc:00:80:16:63:18:a4:97: + 1e:1d:dd:1a:b6:26:2d:02:a5:ad:77:cd:00:d7:2f: + d2:5a:69:10:d6:7a:1d:d4:35:b4:22:67:fa:fa:d3: + c1:60:ba:6e:24:88:86:84:19:d7:db:84:f9:46:47: + f7:bd:e5:e4:80:09:5a:6c:b7:d9:b6:91:b9:78:5d: + 4a:d1:d8:a3:1a:5c:f7:22:d7:64:1d:71:cf:98:6b: + 02:20:b3:6d:a3:84:d5:52:31:e1:9c:a8:36:6c:b2: + 3b:12:f5:65:99:61:17:66:a8:fe:f7:7c:5a:db:35: + 16:66:94:2b:03:9e:c6:3b:c1:f7:f4:d8:0a:8e:af: + 64:0f:a4:d2:af:59:87:99:99:e7:4b:eb:6d:23:53: + 8b:be:a0:3c:91:85:e6:ae:5a:79:c8:5e:0a:21:1b: + 8e:a5:8b:24:fb:5d:f7:8d:78:68:f3:83:df:21:e3: + 4d:50:ab:78:f6:93:af:ae:1c:66:77:96:72:8d:6d: + 94:83:a4:f3:81:e4:a7:a2:b6:5d:5c:14:0f:bd:9b: + 26:1c:5a:4a:2f:6d:dd:b3:3b:e1:c6:79:63:04:1e: + 95:f0:41:29:1f:8d:97:7a:3c:f9:bd:11:ea:70:1b: + 3d:6e:e1:c2:1c:45:19:5f:20:e1:5d:50:21:b5:9a: + f3:ab:2f:37:59:bc:7a:33:68:28:47:ad:27:f2:dd: + e7:56:ae:53:84:06:0c:72:d2:25:76:b5:71:31:db: + c5:25:d0:46:1a:61:84:8e:3f:e4:df:0e:76:56:fc: + d1:64:08:80:b7:38:79:85:1a:ef:de:02:40:af:d8: + 2e:5b:3b:3d:e0:b2:05:05:6f:6c:53:a3:84:d4:8b: + 6c:18:61:b2:05:a3:8a:1b:82:51:7f:bd:40:28:c7: + b4:d9:84:a1:40:72:93:4a:7d:00:29:e4:f8:1a:8a: + 5e:cc:8f:f3:45:01:b3:51:31:63:03:6a:5c:cc:0c: + 21:8c:a3:33:ff:af:21:56:0f:c1:f1:09:55:ca:a4: + 50:a8:47:ee:24:ad:d5:05:4b:c0:38:11:d4:ac:84: + 06:35:f3:7c:44:3e:b2:24:a2:46:7b:31:c6:e9:7a: + 4b:36:b0:db:12:01:c3:23:b5:8c:c8:fa:f2:09:ef: + d8:6d:9f:64:cf:34:6c:c5:aa:85:d4:c3:17:90:7a: + 9d:2c:2a:23:31:1b:87:68:16:40:0f:a4:c0:3f:b2: + 4b:5e:a8:ec:28:79:55:f8:da:25:06:6c:65:7f:de: + 85:d1:f3:da:e4:14:58:fa:9f:71:35:79:4c:81:92: + fa:af:b4:f9:f3:0f:27:2c:22:8b:65:f2:38:1d:da: + c2:2e:a7:46:61:44:f3:74:8e:44:62:ab:7f:39:84: + a9:08:fa:77:f3:7b:de:79:af:ea:b9:5b:ba:4b:2e: + 2a:4b:54:d2:8b:53:33:31:c2:ab:2c:63:d6:2d:85: + 43:0d:90:aa:dc:23:b5:7a:39:e2:99:6b:03:1b:b4: + c5:86:37:76:6d:38:70:af:3c:0d:69:e5:68:91:dd: + 37:35:0f:a4:1a:fd:4c:a0:9d:f9:bd:8d:ec:12:35: + 73:60:5b:5b:62:3b:ee:fa:c5:ce:d9:86:7e:c1:00: + c5:d2:6b:86:85:af:f4:03:32:72:00:90:37:82:29: + 79:47:43:38:98:73:64:4e:bd:35:5c:a7:6e:d5:4c: + 0d:3b:e1:85:e4:0a:36:9b:00:4b:a9:ec:52:14:50: + 81:1f:a3:26:a3:b5:1d:a0:76:0a:1b:bb:d6:c5:3f: + c3:41:fa:3e:6f:85 Exponent: 65537 (0x10001) Signature Algorithm: sha256WithRSAEncryption - ba:7f:75:5f:5f:e6:a9:7a:b2:53:a8:d4:02:60:21:29:ce:a5: - e3:95:8a:eb:22:d0:54:f3:76:1b:22:a4:bd:2b:fe:a0:0e:f4: - 46:8a:c4:b4:ee:58:ca:c0:dc:7a:1c:26:30:99:85:ed:e5:ae: - 3a:23:81:76:5b:b4:e8:50:33:6f:19:52:a6:03:82:c7:13:ce: - 4f:97:af:d7:42:6e:28:0f:f2:cf:e6:eb:f9:e9:65:40:2e:92: - 44:87:ac:f7:a3:65:84:a6:46:1e:c6:3c:23:9a:98:13:d8:f3: - ce:a0:20:06:d3:6a:ec:db:3f:d7:92:5c:01:a7:e1:c1:d9:ba: - 6f:1b:41:0f:ff:6d:80:dd:df:69:1b:45:36:f1:e4:1d:72:96: - 57:3d:8a:80:e3:ae:b4:91:8e:88:40:48:e6:33:0d:e7:ad:3f: - aa:d3:c1:96:f2:44:73:bb:51:56:ce:75:b5:e9:2d:f0:a7:9f: - 68:da:bb:17:9e:b4:c1:a2:81:15:be:28:43:f7:2c:20:35:94: - 17:33:99:52:33:8b:7b:72:12:27:df:88:29:11:93:2e:55:8a: - eb:63:56:14:e9:cb:58:e3:a6:52:e4:21:04:48:fc:09:a0:30: - 8a:8c:cf:df:b2:6c:5c:d3:96:0a:59:26:70:b5:fa:d0:1a:cf: - 06:e9:30:f8:a2:45:52:63:43:c9:8d:ee:13:35:c4:6d:fc:f9: - 16:4f:f7:5c:56:16:1a:1f:17:6c:f6:2e:20:d6:ec:57:0f:fa: - 34:1c:a7:b5:18:fa:7d:16:54:71:3e:cd:97:70:f8:b9:7d:ea: - 67:83:50:74:4d:a7:c5:90:a8:51:50:50:61:c9:31:06:63:7a: - 8d:3c:b9:eb:f5:31:3c:fa:be:4a:1e:2d:02:26:cb:7d:fb:54: - 21:16:7a:06:72:34:fd:1a:9c:36:9f:d0:4a:bf:df:86:74:0f: - fc:df:bf:32:6a:41:ae:24:67:a1:4a:f7:c8:cd:a1:6a:9b:c5: - 69:db:72:94:b9:85:13:ab:20:25:77:b2:2f:a4:40:ec:e9:0f: - 68:b2:a8:f7:78:50:f5:5b:30:6b:67:4a:f0:ca:57:18:0d:54: - 9a:bd:e4:33:24:9c:51:4a:6f:99:92:3e:05:0b:a8:d1:9f:a8: - d4:54:28:b0:8b:be:0a:ff:64:76:aa:76:7c:f0:23:3f:c1:8d: - 91:4f:04:37:2c:30:90:1e:6d:60:41:88:9d:b5:7b:0a:1b:98: - e5:15:58:47:d8:fd:11:d0:0f:5d:ec:6c:65:fd:3c:b1:4a:a4: - 7a:79:bd:e9:4d:4d:39:7b:9b:30:76:11:1c:c5:df:51:5b:7e: - 7b:44:1e:25:44:35:f3:71:19:3b:d4:7a:5e:db:3a:3c:85:54: - 0f:b1:d9:1d:ab:69:88:04:a1:2e:37:77:8d:97:aa:24:17:af: - 54:71:9f:ff:1d:74:e9:f3:7d:c8:79:e9:08:59:5f:dc:0e:d8: - b7:5b:fa:ee:4c:07:cf:51:fb:e7:5b:7c:d0:d5:85:f9:08:9c: - 81:6a:83:f7:15:cd:fc:4d:a5:a7:39:6b:b2:cc:f2:e9:90:b7: - ea:e5:5e:3a:a0:a9:1d:e5:8d:2f:80:9b:30:8a:f0:ff:d5:c2: - a6:0e:83:7b:80:ec:f4:7b:88:f4:ad:69:01:81:35:94:14:0c: - 8e:50:93:a5:39:17:5b:06:e0:70:3c:f9:6e:5e:09:89:84:23: - 74:12:42:82:22:78:bc:aa:64:d3:51:f4:c6:96:8a:33:19:56: - bb:21:6f:bd:dd:c9:0b:69:0e:2c:17:5e:67:12:64:08:21:fd: - 2e:5b:49:14:6e:9f:47:86:a4:99:4b:06:a5:50:20:30:a4:c7: - fb:32:d5:b6:5b:74:82:4c:7a:d0:e2:2b:99:7a:67:69:7a:3e: - d0:4e:65:eb:d3:ad:41:83:71:e1:c3:c7:69:36:03:ac:e4:0b: - cd:26:d7:00:36:88:26:36:22:fe:d4:d5:4f:79:5a:88:10:55: - 98:0d:e6:e3:49:c8:fb:b5:b3:b8:5c:cb:a3:57:80:a8:06:34: - 32:57:70:0a:df:78:d4:d1:f9:cc:27:ef:17:2e:38:26:e6:32: - ff:7d:a7:f8:44:b3:52:00:4c:a0:af:76:6a:a3:99:c2:a7:73: - c8:fd:9c:fa:40:c8:48:0f:83:e8:03:3f:2b:7e:3a:bc:3b:6c: - 43:af:2b:ca:a3:29:a7:2a:d2:c2:22:90:98:fb:7e:33:79:c3: - 6d:b9:56:96:bd:6d:f5:57:cf:79:03:77:e6:85:17:d2:7b:5a: - 67:6d:03:b2:cc:e0:4f:81:56:d7:54:f7:cd:31:c7:bd:cf:d4: - 19:9f:99:1b:91:69:28:9b:09:27:77:28:de:4f:cb:2a:38:4d: - 29:28:de:4f:a4:d4:e4:09:a2:a4:ca:dd:86:e4:fd:3b:95:1a: - 5a:74:9f:3b:af:32:d0:25:7a:67:c3:de:c6:93:0e:8a:6b:1e: - 79:89:4c:0c:86:91:cf:b5:bd:b3:3d:6c:c0:26:74:83:49:62: - cc:51:83:3a:e7:08:bb:17:67:17:c2:fa:9a:af:86:57:b8:44: - a6:3f:af:8f:21:85:bd:88:5b:ff:1b:af:78:3b:aa:90:74:ff: - 3a:f3:18:40:69:4f:35:a6:45:80:ff:99:7b:95:a3:51:1b:e0: - 26:cc:46:41:dc:4a:ca:54:a2:c1:14:d9:44:36:ba:eb:29 + 5a:d5:96:95:b5:3b:c2:47:95:f1:f1:b0:d7:a3:05:30:7b:80: + b1:2c:ef:aa:37:6c:de:df:78:69:76:ff:f0:11:90:a5:e9:86: + 49:29:73:df:2b:82:a9:7f:d4:64:3f:ce:16:7a:2d:39:8e:be: + 09:a6:95:c8:c3:e7:9a:75:e5:ff:9f:e0:0f:eb:b2:46:eb:2d: + 7f:da:67:95:37:45:c2:af:b8:50:1d:29:ef:f7:df:65:c8:36: + 98:77:d6:e0:e4:37:51:52:75:ff:ad:61:c0:aa:31:b0:bf:46: + ec:a4:a7:77:61:ad:b7:bf:6a:47:02:ed:e4:16:52:89:65:07: + 13:ca:aa:00:2a:5d:e4:dc:40:96:69:3c:41:f1:8f:9c:6d:e3: + 5c:0b:89:f1:ec:80:08:21:0f:dd:a3:53:1d:f2:f9:1b:82:20: + 7f:bf:10:04:92:65:a8:2c:9e:3b:c1:2d:37:7c:43:03:df:f1: + d0:7b:dc:33:55:52:55:da:6e:f6:bd:71:fe:79:f7:1b:c2:b2: + 65:c0:3f:5a:72:cc:b5:64:9d:7e:28:0c:29:b7:b4:fe:fc:85: + d5:60:a0:63:ee:e6:16:58:d1:d1:0e:0f:52:66:41:22:b8:5e: + e8:4f:a2:5c:16:ab:25:ed:93:5e:95:fc:d2:9e:f1:ba:76:6d: + ab:da:90:94:72:82:4a:0a:b8:ab:32:f0:6a:f7:57:41:fc:f3: + de:1d:79:97:b2:99:d5:d0:21:7b:e8:9a:21:1b:b2:2f:59:b5: + d9:45:d8:1a:50:29:24:88:00:97:9c:99:a6:3b:df:60:de:7b: + 3a:4b:4d:a4:05:38:1f:6f:bd:55:d7:b8:0f:3b:06:36:68:9e: + 9c:68:16:b5:0a:7d:f9:a6:5b:a0:1d:a9:6e:59:e3:69:12:0d: + fd:05:58:47:b3:71:65:13:45:dc:17:72:9d:2a:aa:9d:a9:03: + d2:9a:b1:11:0f:f9:9b:46:47:9d:d2:11:3e:94:9b:ea:17:a6: + 52:73:6c:c3:a0:6a:bf:84:94:fb:28:55:3d:eb:00:0d:0a:9d: + 68:d6:19:47:82:63:88:b4:1d:c4:30:fa:80:eb:59:08:96:8e: + b7:c0:96:ce:05:bc:e7:31:39:7f:9a:c9:63:a3:50:b2:40:33: + 18:50:e3:12:95:1a:87:39:62:eb:9c:3d:aa:d5:99:77:05:e3: + e3:6d:6b:b2:9e:86:30:fd:6f:ef:52:8d:95:7e:7c:e3:0e:2d: + e4:e3:f9:d2:66:7e:00:24:3d:9d:fc:b8:88:ca:b9:04:43:79: + 2c:50:30:85:3e:3a:f1:bb:d1:8a:e3:98:1c:ec:75:21:47:4e: + d8:f4:05:f8:c7:75:e0:89:37:2f:91:01:8c:dc:30:b9:16:4a: + c7:e4:ed:36:9d:5f:54:90:b8:e6:47:6d:c3:10:9f:16:56:2f: + dd:33:e7:2d:8e:0b:d4:97:50:da:e0:83:ee:54:30:b1:d9:cd: + 71:ff:00:b7:48:4d:e4:28:ac:cf:b1:01:77:bb:a9:dd:b5:3f: + 87:53:c9:f9:a6:86:3b:8c:fd:ba:aa:75:d7:1c:ca:48:70:6c: + c5:64:7c:94:ba:58:17:75:5f:ab:e7:4c:d2:5d:37:3a:9f:cb: + b4:37:e8:af:52:3f:5f:b4:bd:99:e9:79:6c:cc:e9:a4:99:2d: + d6:98:6d:bc:f4:2d:cf:4f:af:10:df:94:22:68:2a:2a:f4:f9: + 41:dc:a9:11:05:76:ae:f6:d8:af:1a:bc:27:8f:22:95:13:92: + 78:7f:60:43:a5:79:e4:4e:85:fc:32:0e:20:79:d9:90:81:ba: + 9f:f8:05:ba:98:bb:1f:36:52:1b:6a:c1:b9:6a:cc:e6:ea:21: + 7b:8e:1a:ac:b7:9c:c8:d5:f6:f7:1c:fd:a5:44:c5:7a:02:af: + b9:81:fb:d8:7e:89:dd:8b:05:96:a0:3d:b2:6f:af:bc:62:5d: + b5:0d:04:d7:09:24:77:d9:74:90:eb:9d:ae:bb:f2:60:83:22: + 09:86:0a:66:de:69:be:bd:c9:cf:31:e3:b9:32:3b:9d:6a:57: + 99:5f:6c:ba:c0:29:c0:d8:c6:b0:2b:11:9e:0c:11:0f:8d:67: + 2e:f3:b8:14:8e:dd:c4:e8:3c:c7:f9:81:8c:6a:77:7e:7d:86: + 7f:f2:7e:bd:38:03:10:2c:2f:13:e4:69:24:d4:2e:e3:7a:d0: + 1e:ed:79:49:06:22:6d:94:20:a0:73:22:18:09:01:4d:5b:5f: + 31:bd:37:13:a7:eb:9c:0a:9a:c1:c3:37:c4:62:07:c8:74:a1: + 5c:c8:d0:7f:4f:70:4a:53:a4:78:85:50:2a:a4:3e:0e:98:82: + 4d:2c:70:a0:71:3f:0b:ea:a0:11:e7:6b:00:02:a2:b6:83:99: + f3:18:68:ed:2d:2c:ef:02:ca:ab:d0:2c:0c:78:4b:ec:f1:03: + f4:d3:b9:df:36:a2:10:6d:3b:75:53:79:4c:6d:34:ae:cc:13: + 2f:d4:81:98:cd:94:9f:65:b7:20:a9:5e:64:51:01:09:b3:89: + 2f:bc:3b:38:0f:27:bb:59:72:0e:c0:47:18:65:50:77:48:b4: + d1:a8:b6:83:3f:55:86:3f:ac:ee:20:83:38:78:d3:ef:10:48: + 52:7d:92:ea:dc:5e:ad:24:0f:37:70:4c:a0:16:a2:59:3e:78: + 56:8f:d4:74:8b:c6:88:a6:3b:17:7c:34:bf:ab:19:21:f2 -----BEGIN CERTIFICATE----- -MIIJPjCCBSUCCQCVJI6ey0uORzANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJV +MIIJPjCCBSUCCQCdSEfUGbmy1zANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJV UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQ -MA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMB4XDTE1MTIwMjIw -NTczOVoXDTI1MTEyOTIwNTczOVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +MA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMB4XDTE3MDYwNTE3 +MTA1MVoXDTI3MDYwMzE3MTA1MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCBCMwDQYJKoZIhvcNAQEBBQADggQQADCC -BAsCggQCAN/BCGR6Md8UlT/NbYOcP532Mc4pQHZbT5zyX6W/1ILrZx0aGMVDU7ac -Gd6H2lP+EejNSbZcmGjcrrI+hgOKpeullRoBtrdnhFoHzZAGaVLbELhz9g/iQyhL -X0J1yXhluy1LuemXCb4fSV5Xhsc/++sYkFd+hsDhd+xnbifr94B65rHdeMny7xsQ -PuJviYtWjWnX8BseNdZBxhqAHxW+Dq7Jh9/ogKKFIN4yOvjMEnLrQR4rKik/9+Hr -KZmttI15CpmOD0ofROl0txfLlyF6fdVspf3RU7UhjApTTQrpTUBSCzVfQAkJH222 -BJx18u4yidj/o1s3k2nwJUzsKqce4ikz7wf0YYyRqbv5ibqy3ZgIkb939rs794r3 -HNdrF9P6YhIuu9O/eKPrHssAcG6HP57r/S0yd/Ixr1zcFacs2a7n+/gBSslF84fc -x8wU/n99RpQIrCVqGAJJtaq9T8UaBLisoWpUARkF9FXgCJhn9exhCez8gZuId1N6 -0UhMj+K3DQYEvAVuDwqhVgexE0GQSf0ScPYBV63WLaKhBM/RKTj1aHZYm10eDyx3 -9vDP2N/F0iOLNKmulGd0SyGZfLvevvlctusULbs4VvsMfHBCQhsbPJhtYR8WMs5z -KiOe6+bRiQ0wB9KUCYxtOEnmB/29I0hHbMrA2lDoXwYIcuHK/ZH8KfwmQP8deBYj -H8JkQQS2PEC3CCemfSZK/Vev7rrjk0UHZFxfwKfoolunPdrTlx982ncADTA+4679 -TMcY5mLgnXQPkACqwjLe3NGP18PCCL/RvX4hCXkyjxoSQ5eRQTO91C47qW0GI9Ha -fl9FJ9UXnA7fLNFmy+3s48Nrqw26cQSkkqRxVWkgNXL9rVSoz0TDnaFalE0FYl6Y -1iXF1s/175TALFOHC58TD2PFl9VbikZ8DijeZpZ03yqysCdtTE9UctktrlhP02Nj -k8I0V2Y7OJA2qamV5n3ohIdoc5tEaNlpHxwbnVhEd3LoKMEaEb1cQLfQWLlYkZ9b -MJQz+va+KlmLQ8zjBEUbQ37XtfTT3F1lrmvRktL3to/fxlwAwws3KDMz3QXLPGIN -C1RC6p9s6fLvx6t8XM8YVTUc93KPw9UbwAlvROgGYkTECxDiw7Gc3nM3XVG8tj84 -G3XZJt9PGutjnOFJEeTL7OM6seIAi5K7c/sFeIHnrCEbI8GPi5xSuwnaciO/geZ0 -GGMfhJtdBpJyqoRQ9I8qlAWPQl/eRQWyviY93MTvg8uqtGcvXOL5s5wf+ZKPQE+Z -35pe/cXbktyoQRNk9LsKZYfczzkwvp46hmLWLm8Xitl3OuKNjwjrHv2vZyId//+4 -IiuTUR0Sx2uFTbcYlmTiJQbsRWdjK7EjAgMBAAEwDQYJKoZIhvcNAQELBQADggQC -ALp/dV9f5ql6slOo1AJgISnOpeOViusi0FTzdhsipL0r/qAO9EaKxLTuWMrA3Hoc -JjCZhe3lrjojgXZbtOhQM28ZUqYDgscTzk+Xr9dCbigP8s/m6/npZUAukkSHrPej -ZYSmRh7GPCOamBPY886gIAbTauzbP9eSXAGn4cHZum8bQQ//bYDd32kbRTbx5B1y -llc9ioDjrrSRjohASOYzDeetP6rTwZbyRHO7UVbOdbXpLfCnn2jauxeetMGigRW+ -KEP3LCA1lBczmVIzi3tyEiffiCkRky5ViutjVhTpy1jjplLkIQRI/AmgMIqMz9+y -bFzTlgpZJnC1+tAazwbpMPiiRVJjQ8mN7hM1xG38+RZP91xWFhofF2z2LiDW7FcP -+jQcp7UY+n0WVHE+zZdw+Ll96meDUHRNp8WQqFFQUGHJMQZjeo08uev1MTz6vkoe -LQImy337VCEWegZyNP0anDaf0Eq/34Z0D/zfvzJqQa4kZ6FK98jNoWqbxWnbcpS5 -hROrICV3si+kQOzpD2iyqPd4UPVbMGtnSvDKVxgNVJq95DMknFFKb5mSPgULqNGf -qNRUKLCLvgr/ZHaqdnzwIz/BjZFPBDcsMJAebWBBiJ21ewobmOUVWEfY/RHQD13s -bGX9PLFKpHp5velNTTl7mzB2ERzF31FbfntEHiVENfNxGTvUel7bOjyFVA+x2R2r -aYgEoS43d42XqiQXr1Rxn/8ddOnzfch56QhZX9wO2Ldb+u5MB89R++dbfNDVhfkI -nIFqg/cVzfxNpac5a7LM8umQt+rlXjqgqR3ljS+AmzCK8P/VwqYOg3uA7PR7iPSt -aQGBNZQUDI5Qk6U5F1sG4HA8+W5eCYmEI3QSQoIieLyqZNNR9MaWijMZVrshb73d -yQtpDiwXXmcSZAgh/S5bSRRun0eGpJlLBqVQIDCkx/sy1bZbdIJMetDiK5l6Z2l6 -PtBOZevTrUGDceHDx2k2A6zkC80m1wA2iCY2Iv7U1U95WogQVZgN5uNJyPu1s7hc -y6NXgKgGNDJXcArfeNTR+cwn7xcuOCbmMv99p/hEs1IATKCvdmqjmcKnc8j9nPpA -yEgPg+gDPyt+Orw7bEOvK8qjKacq0sIikJj7fjN5w225Vpa9bfVXz3kDd+aFF9J7 -WmdtA7LM4E+BVtdU980xx73P1BmfmRuRaSibCSd3KN5Pyyo4TSko3k+k1OQJoqTK -3Ybk/TuVGlp0nzuvMtAlemfD3saTDoprHnmJTAyGkc+1vbM9bMAmdINJYsxRgzrn -CLsXZxfC+pqvhle4RKY/r48hhb2IW/8br3g7qpB0/zrzGEBpTzWmRYD/mXuVo1Eb -4CbMRkHcSspUosEU2UQ2uusp +BAsCggQCALqr0shsBF4jYQQ47evBq8dd/SEVSSuRRUdOsINWzgV/PMNt1QIqo/Wb +DiZjoiJzTImlSTf0Dr5iCvynMQKndNHBZNLW2yGQw6PJth9q9+kki8Wiws3UkRYb +abrDYgWQ/C+DXGz+Y8gxeG4n+OIlpjYdg0pt8Bi+fFYSJNi+Ehd6+A5YW23nAJ4u +zAiUO7Jx39/F97G7RUFAgsG9kGP2+pjOyYOVFzBdtktDTe7Z41RwTIeScTk89lND +lqeUx6moYs6QDtez5+QM7yyaSDDRYD+1j2uEJGIkNg0/LoIVPmJnEn/UbiyLqG1w +2lVeHw25zVWx1IjrxiQ9aG4xdSBw4i75z+g4k0f3WpFQnu3AiaYqSwSD43/os4nG ++TtkkWYDjz+HSg+Iyx20V83RNW39M6Kz8q+E1naBmMS7sY0q/jOAmoc+BG2qyBkE +6oKGWkzX5qL2y5Bv2WtEwKof9NGOidwAgBZjGKSXHh3dGrYmLQKlrXfNANcv0lpp +ENZ6HdQ1tCJn+vrTwWC6biSIhoQZ19uE+UZH973l5IAJWmy32baRuXhdStHYoxpc +9yLXZB1xz5hrAiCzbaOE1VIx4ZyoNmyyOxL1ZZlhF2ao/vd8Wts1FmaUKwOexjvB +9/TYCo6vZA+k0q9Zh5mZ50vrbSNTi76gPJGF5q5aecheCiEbjqWLJPtd9414aPOD +3yHjTVCrePaTr64cZneWco1tlIOk84Hkp6K2XVwUD72bJhxaSi9t3bM74cZ5YwQe +lfBBKR+Nl3o8+b0R6nAbPW7hwhxFGV8g4V1QIbWa86svN1m8ejNoKEetJ/Ld51au +U4QGDHLSJXa1cTHbxSXQRhphhI4/5N8Odlb80WQIgLc4eYUa794CQK/YLls7PeCy +BQVvbFOjhNSLbBhhsgWjihuCUX+9QCjHtNmEoUByk0p9ACnk+BqKXsyP80UBs1Ex +YwNqXMwMIYyjM/+vIVYPwfEJVcqkUKhH7iSt1QVLwDgR1KyEBjXzfEQ+siSiRnsx +xul6Szaw2xIBwyO1jMj68gnv2G2fZM80bMWqhdTDF5B6nSwqIzEbh2gWQA+kwD+y +S16o7Ch5VfjaJQZsZX/ehdHz2uQUWPqfcTV5TIGS+q+0+fMPJywii2XyOB3awi6n +RmFE83SORGKrfzmEqQj6d/N73nmv6rlbuksuKktU0otTMzHCqyxj1i2FQw2Qqtwj +tXo54plrAxu0xYY3dm04cK88DWnlaJHdNzUPpBr9TKCd+b2N7BI1c2BbW2I77vrF +ztmGfsEAxdJrhoWv9AMycgCQN4IpeUdDOJhzZE69NVynbtVMDTvhheQKNpsAS6ns +UhRQgR+jJqO1HaB2Chu71sU/w0H6Pm+FAgMBAAEwDQYJKoZIhvcNAQELBQADggQC +AFrVlpW1O8JHlfHxsNejBTB7gLEs76o3bN7feGl2//ARkKXphkkpc98rgql/1GQ/ +zhZ6LTmOvgmmlcjD55p15f+f4A/rskbrLX/aZ5U3RcKvuFAdKe/332XINph31uDk +N1FSdf+tYcCqMbC/Ruykp3dhrbe/akcC7eQWUollBxPKqgAqXeTcQJZpPEHxj5xt +41wLifHsgAghD92jUx3y+RuCIH+/EASSZagsnjvBLTd8QwPf8dB73DNVUlXabva9 +cf559xvCsmXAP1pyzLVknX4oDCm3tP78hdVgoGPu5hZY0dEOD1JmQSK4XuhPolwW +qyXtk16V/NKe8bp2bavakJRygkoKuKsy8Gr3V0H8894deZeymdXQIXvomiEbsi9Z +tdlF2BpQKSSIAJecmaY732DeezpLTaQFOB9vvVXXuA87BjZonpxoFrUKffmmW6Ad +qW5Z42kSDf0FWEezcWUTRdwXcp0qqp2pA9KasREP+ZtGR53SET6Um+oXplJzbMOg +ar+ElPsoVT3rAA0KnWjWGUeCY4i0HcQw+oDrWQiWjrfAls4FvOcxOX+ayWOjULJA +MxhQ4xKVGoc5YuucParVmXcF4+Nta7KehjD9b+9SjZV+fOMOLeTj+dJmfgAkPZ38 +uIjKuQRDeSxQMIU+OvG70YrjmBzsdSFHTtj0BfjHdeCJNy+RAYzcMLkWSsfk7Tad +X1SQuOZHbcMQnxZWL90z5y2OC9SXUNrgg+5UMLHZzXH/ALdITeQorM+xAXe7qd21 +P4dTyfmmhjuM/bqqddccykhwbMVkfJS6WBd1X6vnTNJdNzqfy7Q36K9SP1+0vZnp +eWzM6aSZLdaYbbz0Lc9PrxDflCJoKir0+UHcqREFdq722K8avCePIpUTknh/YEOl +eeROhfwyDiB52ZCBup/4BbqYux82UhtqwblqzObqIXuOGqy3nMjV9vcc/aVExXoC +r7mB+9h+id2LBZagPbJvr7xiXbUNBNcJJHfZdJDrna678mCDIgmGCmbeab69yc8x +47kyO51qV5lfbLrAKcDYxrArEZ4MEQ+NZy7zuBSO3cToPMf5gYxqd359hn/yfr04 +AxAsLxPkaSTULuN60B7teUkGIm2UIKBzIhgJAU1bXzG9NxOn65wKmsHDN8RiB8h0 +oVzI0H9PcEpTpHiFUCqkPg6Ygk0scKBxPwvqoBHnawACoraDmfMYaO0tLO8CyqvQ +LAx4S+zxA/TTud82ohBtO3VTeUxtNK7MEy/UgZjNlJ9ltyCpXmRRAQmziS+8OzgP +J7tZcg7ARxhlUHdItNGotoM/VYY/rO4ggzh40+8QSFJ9kurcXq0kDzdwTKAWolk+ +eFaP1HSLxoimOxd8NL+rGSHy -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/localhost_cert.pem b/net/data/ssl/certificates/localhost_cert.pem index 273a9c4..8a34ad36 100644 --- a/net/data/ssl/certificates/localhost_cert.pem +++ b/net/data/ssl/certificates/localhost_cert.pem
@@ -1,111 +1,112 @@ -----BEGIN PRIVATE KEY----- -MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQCvaqKl55EBl974 -UxivDfhGARaIX5OUIO9RVi98YYXMEoIGC9IcUtfFyMNzqyaR30HzslhsQrunl3J9 -voeZAU9zh/jr5kW/PKFL0DMeoKUEToDFCvZaLZoJljRZ8gZxPZ7+qBm/RancIMjm -mwce/v+rwh7k/gt1SbyhG7wD+8SzxC9ABYRwi9RbuKdfZ+KfpovU2uRPi8JYxSm2 -drgZCs4AEVFiIjvgkNv2rn93wx/blT0f4nse7oFboecSFT3U1Hu1P8MZP/tLEfhj -PWc/eitEiIKdBVVMMQcO1hQXpbLCTndVhmYOOd18+G/hkkuwynigtDKI8kQQGz64 -em09uCsDAgMBAAECggEBAJyRYjEQWfYBFuuwR4TfxCy/hdwc6r05FEIV2fZ7mQ+H -qXQ6EsRjEOIhCorwRVHH4rbgBVpDyfiRDYi8iY0AhWjKAVyUwMYrGJBxeV8p5X/N -jdPRsAbXUvihj4KEqklixcnoQmrdg/nNbWOfFaEN2yfz8N1U/ucl9G4cMhmgG3aS -94lppp5bqse61wVLKZUJVzBR7V0L8pgei7ZIJsI30k/gB+hqAiDlzL0veuTyhbP3 -wsr32bOCi8cBKro6wQkVIGWtkC7Rghz8VwfsR67Rxg+hsTPEJ34CFCl6TXctEItY -gEVwRgHdw3Oe/83xlzNfSkkkQ9CQDeL3kvhW0POjbbkCgYEA1Uish6WiLRVQpwnN -rSZNaLrH06Py20wpd2MKAp3p7JhsY1TO1IP1XPrq3899u8vNL6RjZ6fydspRLOOt -d9ZkzmOSz4R9J6HQSz3NAQrK2yHw/1RJ0W8IjVHI2R1tYjxvIC+NZiNdLd7vjsRL -Atz2R9B8hkvDEGB+aj4OqHuFCh8CgYEA0ox04N7yYkG8/i9Z+fQadgqSllgvb6w4 -hvKEhnwweu1q33n/YwZtQ89ElX0speK02ZH60AkNNXRRORVPCV60QhabXzax9Lba -J+m+NtAYPABwbXPRJq4S5z9toWoqxCxKc36sCJqjdDE637xtEe8ULh2WEGmCctjC -BpEk9xlMSp0CgYEArsLxu+RYUqCYiYZa5XnxC9OgUSaRpGdvwseAOEy0lI0AoxOm -tjO6JQnk0qbt26dO5a7JVPIklnmIskOMrBkcWJD2htuEwaixSDXHeQci2ROiqVSj -d9yHIWTWMjEOo+PpGnJcZkir3R5DJLRq0lnD42xN3KzPlOe8LcnTsPIlPPkCgYEA -qFZgREI8bM6+ekQFnlDKr0H4vXe4RYLelxZjWtsEL+SOpCp4RAYpaiPXY+X2wpKl -oaaTb60tAGYFYqxkyssLOCO3CcNDOLLRbUP3Lv/lwGNhgEEvIcvflUAjOQEXPE1l -IT5P8Xkh4o5R0fxnAAW0jsJc7rZM8+HWD0YQ1fdGBgkCgYEAvsEfq+E0t52Vvn+d -gxJE+N7Ny6Iu8cy47B0xKkyML//0vOquBun2cUYEqncloLI1a3wp1FykyJMJUX/d -ZTJl7u5hhLHkhxSDVmyccw4v3Zhsn5/qb18jseE42Nbhtf8VhkZLOSbiHmxjrNdH -V135E6sqWD6wkvGVbxn3haPe9+o= +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCr/csPH2W5PnS4 +Ei02FKhBPWHuDhF4L4KkDARe+0iCU0lRMclBEgVCefaM20QfPnhNJtfrJ0MVD3nP +4/iIZHDQXlWgXRGIYpqyysmN3p4L2VBrl2zqrWKWYZqQPRZokFUGYIpujqpF1Th5 +Zz2dDWlqb58gUnPye+HswAmTHNOmEXYQjRjoASS4LKc11ZZmFmQaS6h88v+yGYK7 ++ss4kbH2oxRH0OSuiyXPWf9Pl9urA6IobaY2CPgJxl6Cn//+I98IC2heb7/Tciax +FkwrjO+SmOeb2NCQg4dxcPGIhQmPO2ZrOgw+/uttvfuQ3H80Fls4+VgPmo8EQ3VL ++a5zXo7tAgMBAAECggEAQPqJlRUPoYTvI/v6CMyVJNDEBuRZxUZt3PyNSjU1l8dP +k9Vza5obUpoxg9XzTrqTSNK8EKOsvHA0XU6LvzvzQ0Xgo82FqjlWqOXkcC0DGQbp +UzzKcX9AGACYHJZ3uNmOxfIDWvGbcvazd2qB5KwEf6ncPKHqHFqhaIjFFUd2zu56 +4+DcVFKUrMR44KvTk1qe4R00u0kDsxZTLk70fzMkRl0qcy4oyjtOSeSEEqIKgcFS +jiXv2TM1XpMZ28P2VqA98yPhpuEnZepvTFtBth2fh3Be+rs/WxUiND+1/U4b40rH +nJr9w6z7xbpQw5FD3fqBhYK5/rsS2ghALYYaRsPuIQKBgQDiP0YJpflCrY1lbFjg +pdp+oGSqfWB0Ejq1UNnN2vVqFHykyykn+y2Tg2VTC6xsH1gqruy0DRJeHgzLj57K +5/LA98+xobxBcu1QuU0sMylWlMqmppPrHqNf7+ZzTP0LafbJAzpKGqyOIGMfeb6Z +94RwVDz9ykp/VzFg/dTTRKutUwKBgQDCm/iP0x9dC0Weif8wV3QzmjOGY4Oq2RZn +d4OOTL2UIVQq/wGbMomR6X89b/Frs5TCK79VQqffTKkxMWTF+ZZlFG7IFBnUKT84 +KXhqez/jtmyq4flGJ6J6SdrJCXJkXZwt1NLnIPwZctgaugrgh5vEBIln50wTGOXN +8EgDABEKvwKBgQCzPCsxE5LPlwxQUDBs8BeTf1+gjSjva02lPML/yTno6wf/yY72 +RI/LsCmCS9ox4fcIAYI19bEabLX4QfQrjOuMogWhFJ8+PlzxOYuAu5tBIykUMx02 +BBSruTMZHuHMvAqtHmh8MnuHMPM2CU3NTgBWuPWEnVC9ZwcQbqa/JETZTwKBgQCf +Oy0yyQT1hX6OTM0vSa87daVJBW27Qerx97j9ms7XQDn1ADfZO42ShOHmbAy2GfbS +tSbVZTekHr6lEIwq7J/gzsoiDUhg7uraUhxDy9qnwCDD5Sen/lAUDQ/lxEQD2RAr +8+Io2TVMwUoO/EBgHLUXurqO+JKnYYzOZxcU1V4cUwKBgQCWUtlDJR/gg83Q/HbC ++fPPSifL7nLDuzgDgf6oUp555dsUnU/CSyVhAAGWh/bkYi2Kb0c/5L4pMXlGSHMv +N/6Ek8JA+teaRojEtHqEkEQw6l6T61BxzpImO+KYw05mk+f/I8VoaG/cQkDLr48B +k7jie9XxUXWGXk5vCuvZgtcwQg== -----END PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) - Serial Number: - 12:78:95:65:51:49:92:01:32:10 + Serial Number: 7 (0x7) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity - Not Before: Apr 6 16:18:41 2015 GMT - Not After : Apr 3 16:18:41 2025 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=localhost Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:af:6a:a2:a5:e7:91:01:97:de:f8:53:18:af:0d: - f8:46:01:16:88:5f:93:94:20:ef:51:56:2f:7c:61: - 85:cc:12:82:06:0b:d2:1c:52:d7:c5:c8:c3:73:ab: - 26:91:df:41:f3:b2:58:6c:42:bb:a7:97:72:7d:be: - 87:99:01:4f:73:87:f8:eb:e6:45:bf:3c:a1:4b:d0: - 33:1e:a0:a5:04:4e:80:c5:0a:f6:5a:2d:9a:09:96: - 34:59:f2:06:71:3d:9e:fe:a8:19:bf:45:a9:dc:20: - c8:e6:9b:07:1e:fe:ff:ab:c2:1e:e4:fe:0b:75:49: - bc:a1:1b:bc:03:fb:c4:b3:c4:2f:40:05:84:70:8b: - d4:5b:b8:a7:5f:67:e2:9f:a6:8b:d4:da:e4:4f:8b: - c2:58:c5:29:b6:76:b8:19:0a:ce:00:11:51:62:22: - 3b:e0:90:db:f6:ae:7f:77:c3:1f:db:95:3d:1f:e2: - 7b:1e:ee:81:5b:a1:e7:12:15:3d:d4:d4:7b:b5:3f: - c3:19:3f:fb:4b:11:f8:63:3d:67:3f:7a:2b:44:88: - 82:9d:05:55:4c:31:07:0e:d6:14:17:a5:b2:c2:4e: - 77:55:86:66:0e:39:dd:7c:f8:6f:e1:92:4b:b0:ca: - 78:a0:b4:32:88:f2:44:10:1b:3e:b8:7a:6d:3d:b8: - 2b:03 + 00:ab:fd:cb:0f:1f:65:b9:3e:74:b8:12:2d:36:14: + a8:41:3d:61:ee:0e:11:78:2f:82:a4:0c:04:5e:fb: + 48:82:53:49:51:31:c9:41:12:05:42:79:f6:8c:db: + 44:1f:3e:78:4d:26:d7:eb:27:43:15:0f:79:cf:e3: + f8:88:64:70:d0:5e:55:a0:5d:11:88:62:9a:b2:ca: + c9:8d:de:9e:0b:d9:50:6b:97:6c:ea:ad:62:96:61: + 9a:90:3d:16:68:90:55:06:60:8a:6e:8e:aa:45:d5: + 38:79:67:3d:9d:0d:69:6a:6f:9f:20:52:73:f2:7b: + e1:ec:c0:09:93:1c:d3:a6:11:76:10:8d:18:e8:01: + 24:b8:2c:a7:35:d5:96:66:16:64:1a:4b:a8:7c:f2: + ff:b2:19:82:bb:fa:cb:38:91:b1:f6:a3:14:47:d0: + e4:ae:8b:25:cf:59:ff:4f:97:db:ab:03:a2:28:6d: + a6:36:08:f8:09:c6:5e:82:9f:ff:fe:23:df:08:0b: + 68:5e:6f:bf:d3:72:26:b1:16:4c:2b:8c:ef:92:98: + e7:9b:d8:d0:90:83:87:71:70:f1:88:85:09:8f:3b: + 66:6b:3a:0c:3e:fe:eb:6d:bd:fb:90:dc:7f:34:16: + 5b:38:f9:58:0f:9a:8f:04:43:75:4b:f9:ae:73:5e: + 8e:ed Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 87:A2:09:4C:8C:84:57:D1:4A:30:35:53:8C:1D:04:01:18:21:15:CA + FD:CB:18:66:1A:6B:34:2F:F7:F4:26:D0:37:12:5D:4B:70:93:87:CD X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: DNS:localhost Signature Algorithm: sha256WithRSAEncryption - 9f:37:2e:c1:f9:7d:09:d6:94:52:09:bd:f1:b2:f7:3e:67:6e: - 10:0b:65:cb:0e:c4:e7:cc:f7:25:9f:01:c0:e1:41:65:eb:bd: - 61:f8:89:be:73:29:ad:07:15:98:89:ea:f0:77:d6:8e:20:35: - 2b:0e:f3:64:05:f2:f0:20:73:56:23:0d:51:d9:19:b5:a8:cc: - a4:87:bb:63:2f:d1:e0:52:d0:5e:ae:93:c7:90:81:78:36:d4: - e6:a5:cc:db:c6:be:af:17:5b:80:83:34:2b:2d:dc:1e:f3:4c: - a0:04:70:f4:aa:90:1d:08:65:20:54:e1:32:5f:80:12:3e:76: - aa:1b:b9:2f:a7:36:54:99:a3:45:e4:43:1b:08:17:11:81:d0: - 32:1d:68:c2:d1:b1:33:04:92:95:63:b8:26:18:79:12:ab:77: - 14:80:58:4a:8a:a4:4e:ec:2e:07:02:22:de:67:92:03:54:0f: - 31:6e:15:aa:53:6a:40:5b:d0:04:4e:c9:dc:a3:2a:0b:52:c9: - 8b:92:9b:f4:4a:11:1b:e8:c1:da:54:9b:5c:ac:62:85:ce:ac: - 9a:3d:0e:f5:4c:be:9d:53:5b:3e:bb:c0:a2:fe:a7:b2:10:eb: - 02:d5:ce:ea:86:05:6e:77:c3:23:2d:45:c1:37:98:7b:6c:89: - 13:92:95:8b + 5f:9d:b6:22:48:7d:cd:6a:8e:f8:06:9f:64:98:f0:a2:66:1b: + 47:28:5d:97:8c:fd:36:38:bf:0e:ee:d9:3c:45:86:5b:af:6f: + 12:b2:be:55:10:e5:4d:b9:10:f3:1e:ed:66:ed:f3:7b:5b:c3: + e8:90:3a:57:26:db:51:89:1e:9e:cb:78:30:f9:f9:a2:40:da: + 65:ba:ed:65:c3:75:b3:45:43:be:88:e3:37:41:75:02:96:c0: + eb:49:d5:62:6a:5f:71:90:20:ad:8a:29:7e:84:56:aa:f3:24: + 7f:37:a6:81:89:56:54:e2:fb:e9:27:e7:de:ae:e1:0a:fe:b6: + 7e:cc:2e:69:9c:f8:8c:f3:64:09:a3:a2:62:99:4f:ff:1d:bb: + 5a:b3:8b:7e:8a:46:05:6c:32:1f:44:56:de:cf:b1:b7:33:0d: + b2:f9:08:76:3d:8e:4a:f4:77:1b:87:96:ae:49:a0:46:b0:97: + f8:0d:26:26:d3:70:39:9c:76:eb:6e:dc:0e:38:f6:d7:fe:c3: + fc:fe:4f:41:3f:81:3c:d2:da:8a:8a:39:70:da:04:ef:be:39: + 0f:5a:5f:d7:2e:28:dd:ae:e6:e2:52:8f:55:72:51:ad:51:c6: + 8b:48:17:bc:13:a5:19:19:f6:70:f3:12:6c:52:45:b1:6c:8c: + aa:b1:49:ee -----BEGIN CERTIFICATE----- -MIIDgjCCAmqgAwIBAgIKEniVZVFJkgEyEDANBgkqhkiG9w0BAQsFADAXMRUwEwYD -VQQDDAxUZXN0IFJvb3QgQ0EwHhcNMTUwNDA2MTYxODQxWhcNMjUwNDAzMTYxODQx -WjBgMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN -TW91bnRhaW4gVmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJbG9jYWxo -b3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr2qipeeRAZfe+FMY -rw34RgEWiF+TlCDvUVYvfGGFzBKCBgvSHFLXxcjDc6smkd9B87JYbEK7p5dyfb6H -mQFPc4f46+ZFvzyhS9AzHqClBE6AxQr2Wi2aCZY0WfIGcT2e/qgZv0Wp3CDI5psH -Hv7/q8Ie5P4LdUm8oRu8A/vEs8QvQAWEcIvUW7inX2fin6aL1NrkT4vCWMUptna4 -GQrOABFRYiI74JDb9q5/d8Mf25U9H+J7Hu6BW6HnEhU91NR7tT/DGT/7SxH4Yz1n -P3orRIiCnQVVTDEHDtYUF6Wywk53VYZmDjndfPhv4ZJLsMp4oLQyiPJEEBs+uHpt -PbgrAwIDAQABo4GGMIGDMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFIeiCUyMhFfR -SjA1U4wdBAEYIRXKMB8GA1UdIwQYMBaAFLz3MNE8wPJ5+u+fyWxck/OKaKuDMB0G -A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAUBgNVHREEDTALgglsb2NhbGhv -c3QwDQYJKoZIhvcNAQELBQADggEBAJ83LsH5fQnWlFIJvfGy9z5nbhALZcsOxOfM -9yWfAcDhQWXrvWH4ib5zKa0HFZiJ6vB31o4gNSsO82QF8vAgc1YjDVHZGbWozKSH -u2Mv0eBS0F6uk8eQgXg21OalzNvGvq8XW4CDNCst3B7zTKAEcPSqkB0IZSBU4TJf -gBI+dqobuS+nNlSZo0XkQxsIFxGB0DIdaMLRsTMEkpVjuCYYeRKrdxSAWEqKpE7s -LgcCIt5nkgNUDzFuFapTakBb0AROydyjKgtSyYuSm/RKERvowdpUm1ysYoXOrJo9 -DvVMvp1TWz67wKL+p7IQ6wLVzuqGBW53wyMtRcE3mHtsiROSlYs= +MIIDxTCCAq2gAwIBAgIBBzANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE3MDYwNTE3 +MTA0NloXDTI3MDYwMzE3MTA0NlowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAKv9yw8fZbk+dLgSLTYUqEE9Ye4OEXgvgqQMBF77SIJTSVExyUESBUJ5 +9ozbRB8+eE0m1+snQxUPec/j+IhkcNBeVaBdEYhimrLKyY3engvZUGuXbOqtYpZh +mpA9FmiQVQZgim6OqkXVOHlnPZ0NaWpvnyBSc/J74ezACZMc06YRdhCNGOgBJLgs +pzXVlmYWZBpLqHzy/7IZgrv6yziRsfajFEfQ5K6LJc9Z/0+X26sDoihtpjYI+AnG +XoKf//4j3wgLaF5vv9NyJrEWTCuM75KY55vY0JCDh3Fw8YiFCY87Zms6DD7+6229 ++5DcfzQWWzj5WA+ajwRDdUv5rnNeju0CAwEAAaOBhjCBgzAMBgNVHRMBAf8EAjAA +MB0GA1UdDgQWBBT9yxhmGms0L/f0JtA3El1LcJOHzTAfBgNVHSMEGDAWgBSbJguK +mKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +FAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQBfnbYiSH3N +ao74Bp9kmPCiZhtHKF2XjP02OL8O7tk8RYZbr28Ssr5VEOVNuRDzHu1m7fN7W8Po +kDpXJttRiR6ey3gw+fmiQNpluu1lw3WzRUO+iOM3QXUClsDrSdVial9xkCCtiil+ +hFaq8yR/N6aBiVZU4vvpJ+feruEK/rZ+zC5pnPiM82QJo6JimU//Hbtas4t+ikYF +bDIfRFbez7G3Mw2y+Qh2PY5K9Hcbh5auSaBGsJf4DSYm03A5nHbrbtwOOPbX/sP8 +/k9BP4E80tqKijlw2gTvvjkPWl/XLijdrubiUo9VclGtUcaLSBe8E6UZGfZw8xJs +UkWxbIyqsUnu -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/name_constraint_bad.pem b/net/data/ssl/certificates/name_constraint_bad.pem index 9ee785dc..f311771 100644 --- a/net/data/ssl/certificates/name_constraint_bad.pem +++ b/net/data/ssl/certificates/name_constraint_bad.pem
@@ -1,109 +1,111 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDD5m1zsjUwajot -NE67oL3Ln1Gj5dOIy85u4iS4bA29+3VCpDpFSb8q+atKgK4VM4H41gZ4ilk6T4Nw -bh0z9PDQBIH8s5Yd0Xkqf3Ji0SDRsqBn+kQ2BXKHjup34lQrCgJ2BPoqle9Aj+Jd -Z2mjnCB2C5E8it8BYziraCdsXLC8wRBDoWFi6laPMuEd910uTaav4/MZ3y6SBJLm -+Q0URXm5d5msqK7KuAVlgYDdnzS1iRNiGH2fPU/NHw1NMsJyM5b3MEwu72YDzmxS -9QTpAp5vVPxKbMIhGqkVZpcfEVkB4FMZYueAJtr761dUhzZSSGoB3/D54cghc6ly -9HySHvFDAgMBAAECggEAfp4WClyZwlQ2i/cuGFm5sr2j7/JhOh64q7ShFU5Jx4ya -6trpCtWyqN08mGf5nJxxGluDTS/moii4hNe3KljbuSfguGt+0IEO9qfvT+1pcAAr -a2k34068CuAVrizsR/EtTAjFhPbp7+nP3p0zi1sjJAkv81iy8NunyioEqSZz2Vsw -ngPFuJeytOgeczoE69yzP1L0BaM46jOKXezXahC31lwtG+U5tLvElU0b/To/7GTg -+u5qnsJ87wHYkOctXvqH+L1JeMkc7RWCo0h4Kbk3ur1kDokjqUV4FGQSaMyIy0PC -ndk9WZhUV03v+Lsy3gzBM8261HOiTSMRz/+KrYqAOQKBgQD6ET0Hm11FIUFSeM/I -Dbxb41oN4ODl4YUgGk/9jPX8/ztvrGddh3VGWD4KUVNlWLioBX/t7FH5paGtd6tg -ZG8X3n48DaJ5h4u95ulAzcVjrkF4aNahy4aMmofdpe4S3+7HwlBcfIocO9WpAtL0 -pzFjlXivLQgUQow67tbG2dYrPQKBgQDIjDWWSqn6kB1zFyI6Hh9HhfFAKCRvCIzQ -OvqIOCtExP4U4mE0rUY7RWkFrRTDoMmYCwRuCohL1C4p6i/2AwK1mhS8OgPji7YV -zgYZuw2lSmp1lqzRmiLaOZxLcEKWlHQ1C9Sq606T7YAhgXi3tDfQ53gb1uFDvt1h -rE3AkU1WfwKBgHZ2EBk4aljDRjSRcqzshNxquVB1xVRhHzV0AYy1aBpvtnJSk6zk -7JNkXg95My6BdwhxgobtOnAvHIYWeKLzMQV3qwk71EoKAhL1/m1qjSWJeQ5Xa8W9 -qoGU+uPvJPbgCjerP3JwtORnG/Iymki3o1fviPpDNN6UH+YTGr+cli5pAoGBAKnT -4gU1kR/4LpgpvPhOTdq5mITl+YR1Txl++G2mcy23TBrPYdXD7jd/HeKKoYzQeibh -HY06KhVcxwMDqD3CaubyZiDHWEe3Jijs4MmlV3bjv6d4Qzz0NBNsuehAVoNBj+7j -5+IdhdtLQjgddebLHIExosqgev5tgPeXe/hYk49tAoGBALENmfF8ORreFf+aOd4+ -w/CZB2VaN4p0N6I+w2HPRRJO6Rhk0Pe6NtPkxbUS0x/cm+WOpvSbntH1DOjigL8e -mo+n2Ym+lrtYmEtB/M2C1k29pwaGYMfEIP3URUuYNEpWvTs6AOY7Sp5QN/X/v9ES -76pTvCiginWRyEeR+6vrDGM8 +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0v9KXM+UTW3dl +vXMadSibR1nmtzDoRjNtWFvaHwr/5OQt8h34iehkLvbDzdejjtf3zefYDhDD51bS +/OXm007i/4JNGGOHsKPe2u8KN3ustbdDzvIHOd8U6cOkQT5+aEc0m3thxBjmE86z +tKbgugPu5OvnqvRtvpdbqgaXUAHQeLjWkrDk4rlDiLWuFGR9UnDUBRwJJdXiT8mo +gttBMcO+RG8L1P2/we7ZYr87j7UAyNHfXUoTrXHkS1/R2XJMg9iTQL9szS9mDgTW +uUMoJMkl/Vlw/j3yqQpOwpvE3p5XXl0WJeZ4tkRJKZ32v3T7hdYN8WVY8ivWjxBJ +yAAtiOItAgMBAAECggEAXuyGumXEnl/g2oueEX0J8FKOgj4e7z0+8OQAiRLYgf9B +XmfTGZ3DcCnB6p8F6p2wCjIW2j64y0mJLZEnZAwBV/F8CuUOEErSJM2x0BnHV7Kv +JmtebDEWWTNTTcX9/gDhtF0bdQK5WMt6OKJdKZRHUITk52u+pov7jWZDw99+tG5w +InCv1RekWbAGZWLs9hyzpOpvp0tGM2O9+XCWQh/LLeLb5rJkTcH8NKv9Xh+tLeSU +i/FER+rQHsMVA4uHdBmRgPsBnPrJopcKWQImRXDGidEd5AUWLIECQdnZI8pbtmjV +0HZj+UuUlDFdALmCHX+NxR4Z+hyi+E96ZWw/J9FHwQKBgQDYX0e873Sf4tDOn0cZ +Olof3cXPri8ezKoeAD8tfY0bxLIoOwDUtJXZeGEZD3sduDJDCdvS1M/eeW04ePlx +kTmcDecaYm4t3KYzbPauudbMQEQFvsoivp8ct/synPcRtGPTHg+GUHaqWT1d4DjT +WClxx67ugD/YQYs5UY/uLjm4tQKBgQDV2lh1Uk3xBj15FZrzg/7GM7bK3L/Xcxzz +VewAksKuVEyoqHfZAo6P/xOiQkwc9kBoet43MiNyph/kYssQowE+Pg+WffB1Ve4F +kVsq6z1mwAfnYD6m4GHxfrV6VxwM3ItiX+PiKQ4YWsbyjc/vC4ZRSarLwbk8Woya +lNucr2hGmQKBgF5sdioFdaewm98Psz9XL61oYsLXCMkwF60v/mIjwEi19emIljw8 +8ogM+JKvJtM5ZvXKf5vqMyyrYPacFH9zGOj5SDlDa0GoYP9gNebaQtqv0P+Q2zV+ +aoFl6MGVrlyTlFy1aaD7zE1a1GT7TNEuUCfPNI/wd+wv7kn9RgpzMc1hAoGBAJrh +5Zkq/+olc9ZDcJMXsSkJgUURdhvrcjdGroOHx1oNEexA/3P7ZxchTa4ByDBdpS5G +drSRKp05dfWqG5o0BI140z9SfRnuH1KHAPlnoHPPdqn7ycSA1E7cT0GI33btMEIS +YvCEfYHkFRzM2qEtvp0W9o1WA/uTNSwrzZaAb8xZAoGAZZLwniPa8zkd+4WAPSN6 +LVj+1dGasfL/zftFhVxu0/KCpdggghG26Ej0ieG71k8Xg9tpZDJvo9Kj0s8Hu4Zu +TnhwwRVyUHls+Gl0t8XXV/ryRLHB8zY45k6A+Yvc/iOYQVmY2rE4kB4PDsrJ+d5P +wA1o1OPvcx28oBjHViWoWJQ= -----END PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) - Serial Number: 3 (0x3) + Serial Number: 5 (0x5) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity - Not Before: Dec 21 20:35:47 2015 GMT - Not After : Dec 18 20:35:47 2025 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: CN=Leaf certificate Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:c3:e6:6d:73:b2:35:30:6a:3a:2d:34:4e:bb:a0: - bd:cb:9f:51:a3:e5:d3:88:cb:ce:6e:e2:24:b8:6c: - 0d:bd:fb:75:42:a4:3a:45:49:bf:2a:f9:ab:4a:80: - ae:15:33:81:f8:d6:06:78:8a:59:3a:4f:83:70:6e: - 1d:33:f4:f0:d0:04:81:fc:b3:96:1d:d1:79:2a:7f: - 72:62:d1:20:d1:b2:a0:67:fa:44:36:05:72:87:8e: - ea:77:e2:54:2b:0a:02:76:04:fa:2a:95:ef:40:8f: - e2:5d:67:69:a3:9c:20:76:0b:91:3c:8a:df:01:63: - 38:ab:68:27:6c:5c:b0:bc:c1:10:43:a1:61:62:ea: - 56:8f:32:e1:1d:f7:5d:2e:4d:a6:af:e3:f3:19:df: - 2e:92:04:92:e6:f9:0d:14:45:79:b9:77:99:ac:a8: - ae:ca:b8:05:65:81:80:dd:9f:34:b5:89:13:62:18: - 7d:9f:3d:4f:cd:1f:0d:4d:32:c2:72:33:96:f7:30: - 4c:2e:ef:66:03:ce:6c:52:f5:04:e9:02:9e:6f:54: - fc:4a:6c:c2:21:1a:a9:15:66:97:1f:11:59:01:e0: - 53:19:62:e7:80:26:da:fb:eb:57:54:87:36:52:48: - 6a:01:df:f0:f9:e1:c8:21:73:a9:72:f4:7c:92:1e: - f1:43 + 00:b4:bf:d2:97:33:e5:13:5b:77:65:bd:73:1a:75: + 28:9b:47:59:e6:b7:30:e8:46:33:6d:58:5b:da:1f: + 0a:ff:e4:e4:2d:f2:1d:f8:89:e8:64:2e:f6:c3:cd: + d7:a3:8e:d7:f7:cd:e7:d8:0e:10:c3:e7:56:d2:fc: + e5:e6:d3:4e:e2:ff:82:4d:18:63:87:b0:a3:de:da: + ef:0a:37:7b:ac:b5:b7:43:ce:f2:07:39:df:14:e9: + c3:a4:41:3e:7e:68:47:34:9b:7b:61:c4:18:e6:13: + ce:b3:b4:a6:e0:ba:03:ee:e4:eb:e7:aa:f4:6d:be: + 97:5b:aa:06:97:50:01:d0:78:b8:d6:92:b0:e4:e2: + b9:43:88:b5:ae:14:64:7d:52:70:d4:05:1c:09:25: + d5:e2:4f:c9:a8:82:db:41:31:c3:be:44:6f:0b:d4: + fd:bf:c1:ee:d9:62:bf:3b:8f:b5:00:c8:d1:df:5d: + 4a:13:ad:71:e4:4b:5f:d1:d9:72:4c:83:d8:93:40: + bf:6c:cd:2f:66:0e:04:d6:b9:43:28:24:c9:25:fd: + 59:70:fe:3d:f2:a9:0a:4e:c2:9b:c4:de:9e:57:5e: + 5d:16:25:e6:78:b6:44:49:29:9d:f6:bf:74:fb:85: + d6:0d:f1:65:58:f2:2b:d6:8f:10:49:c8:00:2d:88: + e2:2d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 64:AD:F5:F3:4B:2D:70:3A:13:B7:0D:D6:8F:9F:82:37:C3:58:73:A8 + E0:DC:E0:2F:07:88:74:3A:9F:D3:30:A3:71:8A:F9:D6:A5:E5:A6:53 X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: DNS:test.ExAmPlE.CoM, DNS:test.ExAmPlE.OrG Signature Algorithm: sha256WithRSAEncryption - af:4e:e7:07:29:47:e4:18:64:96:83:22:3c:21:4c:dc:41:90: - c9:28:5b:a7:ce:e9:ad:da:28:04:90:f6:62:c9:6c:0e:a1:98: - 3a:19:ec:28:f5:b7:cf:07:cd:b3:0c:d0:97:a4:3d:e2:fe:0c: - d8:68:f4:cf:57:18:3e:58:f9:ed:1b:2f:f5:11:e4:4d:61:93: - b3:f3:1c:bc:53:cf:8b:81:2e:1b:a3:28:f6:df:ae:82:74:99: - 75:62:51:3d:78:1d:65:3d:eb:0a:7b:60:0e:3a:c7:ff:57:1c: - a4:9e:19:66:ef:18:78:b1:d6:1f:27:31:e0:a6:a2:27:42:15: - 2f:2a:38:e7:4a:0c:3b:8e:4d:c2:a1:27:45:32:0d:c4:b8:51: - 70:41:a6:1a:2f:13:d0:f8:3d:fa:76:0c:57:ad:3e:86:ec:1c: - 05:ea:81:d2:33:35:0b:1e:ab:86:2a:94:ee:44:9f:a4:1a:fe: - 94:0c:7f:f7:e7:17:1f:cc:1c:b8:cc:5a:55:ce:b1:d8:2e:0b: - 3d:8c:19:fc:c2:6b:da:c8:1d:b7:27:fa:bb:90:04:a6:53:bb: - 94:7b:cb:a3:ec:80:7e:18:2e:86:aa:41:97:43:c7:25:1f:33: - a3:ee:93:00:c5:ec:31:da:0e:40:f2:a2:a9:39:42:a8:e1:65: - ed:c7:65:f0 + 92:fd:ff:16:24:68:99:2d:98:cd:7c:63:d8:89:31:a1:5b:51: + 19:85:21:d9:2c:a0:f9:a0:40:5d:e4:a7:c5:8c:9c:fe:cd:1c: + 8d:7e:9d:22:fb:0a:66:dc:6a:3d:e9:7a:3c:b6:51:15:f9:49: + 4b:0b:53:a3:f4:91:0b:f5:0d:78:b5:aa:3b:11:8d:9c:d2:b8: + 34:e2:53:07:49:d0:97:29:62:ca:6b:25:c0:ab:af:8e:a5:7c: + 1d:7f:12:52:12:cc:00:f3:78:f8:dd:0d:a0:96:3b:7f:fd:35: + 69:2c:23:a4:3a:fd:91:3b:c3:57:46:95:d8:a1:07:15:94:22: + 4a:e8:09:ca:ab:3a:e9:81:3a:3a:3d:6d:90:2c:db:4f:ec:a1: + a3:1f:66:20:78:a8:61:55:ac:a8:f2:a5:83:1e:7f:08:98:89: + f2:b6:bd:a4:12:71:bd:8e:89:bf:c1:d5:11:a8:3f:4c:13:7a: + 36:c9:6e:89:bb:d2:20:6d:7c:f2:db:3c:e5:9e:bb:12:7e:52: + 80:fd:d2:0a:71:7a:28:ab:70:76:1c:5d:e7:22:70:1d:cf:5b: + 15:0b:df:2f:46:18:79:01:cb:a4:86:b1:0c:e9:3a:1c:ce:58: + af:b7:ad:24:e4:b7:4e:7e:06:89:b6:47:49:56:9c:a6:c1:d8: + 3a:48:e1:a7 -----BEGIN CERTIFICATE----- -MIIDTTCCAjWgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTUxMjIxMjAzNTQ3WhcNMjUxMjE4MjAzNTQ3WjAbMRkwFwYD -VQQDExBMZWFmIGNlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAw+Ztc7I1MGo6LTROu6C9y59Ro+XTiMvObuIkuGwNvft1QqQ6RUm/Kvmr -SoCuFTOB+NYGeIpZOk+DcG4dM/Tw0ASB/LOWHdF5Kn9yYtEg0bKgZ/pENgVyh47q -d+JUKwoCdgT6KpXvQI/iXWdpo5wgdguRPIrfAWM4q2gnbFywvMEQQ6FhYupWjzLh -HfddLk2mr+PzGd8ukgSS5vkNFEV5uXeZrKiuyrgFZYGA3Z80tYkTYhh9nz1PzR8N -TTLCcjOW9zBMLu9mA85sUvUE6QKeb1T8SmzCIRqpFWaXHxFZAeBTGWLngCba++tX -VIc2UkhqAd/w+eHIIXOpcvR8kh7xQwIDAQABo4GfMIGcMAwGA1UdEwEB/wQCMAAw -HQYDVR0OBBYEFGSt9fNLLXA6E7cN1o+fgjfDWHOoMB8GA1UdIwQYMBaAFLz3MNE8 -wPJ5+u+fyWxck/OKaKuDMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAt -BgNVHREEJjAkghB0ZXN0LkV4QW1QbEUuQ29NghB0ZXN0LkV4QW1QbEUuT3JHMA0G -CSqGSIb3DQEBCwUAA4IBAQCvTucHKUfkGGSWgyI8IUzcQZDJKFunzumt2igEkPZi -yWwOoZg6Gewo9bfPB82zDNCXpD3i/gzYaPTPVxg+WPntGy/1EeRNYZOz8xy8U8+L -gS4boyj2366CdJl1YlE9eB1lPesKe2AOOsf/Vxyknhlm7xh4sdYfJzHgpqInQhUv -KjjnSgw7jk3CoSdFMg3EuFFwQaYaLxPQ+D36dgxXrT6G7BwF6oHSMzULHquGKpTu -RJ+kGv6UDH/35xcfzBy4zFpVzrHYLgs9jBn8wmvayB23J/q7kASmU7uUe8uj7IB+ -GC6GqkGXQ8clHzOj7pMAxewx2g5A8qKpOUKo4WXtx2Xw +MIIDmTCCAoGgAwIBAgIBBTANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE3MDYwNTE3 +MTA0NloXDTI3MDYwMzE3MTA0NlowGzEZMBcGA1UEAxMQTGVhZiBjZXJ0aWZpY2F0 +ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALS/0pcz5RNbd2W9cxp1 +KJtHWea3MOhGM21YW9ofCv/k5C3yHfiJ6GQu9sPN16OO1/fN59gOEMPnVtL85ebT +TuL/gk0YY4ewo97a7wo3e6y1t0PO8gc53xTpw6RBPn5oRzSbe2HEGOYTzrO0puC6 +A+7k6+eq9G2+l1uqBpdQAdB4uNaSsOTiuUOIta4UZH1ScNQFHAkl1eJPyaiC20Ex +w75EbwvU/b/B7tlivzuPtQDI0d9dShOtceRLX9HZckyD2JNAv2zNL2YOBNa5Qygk +ySX9WXD+PfKpCk7Cm8TenldeXRYl5ni2REkpnfa/dPuF1g3xZVjyK9aPEEnIAC2I +4i0CAwEAAaOBnzCBnDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTg3OAvB4h0Op/T +MKNxivnWpeWmUzAfBgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNV +HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwLQYDVR0RBCYwJIIQdGVzdC5FeEFt +UGxFLkNvTYIQdGVzdC5FeEFtUGxFLk9yRzANBgkqhkiG9w0BAQsFAAOCAQEAkv3/ +FiRomS2YzXxj2IkxoVtRGYUh2Syg+aBAXeSnxYyc/s0cjX6dIvsKZtxqPel6PLZR +FflJSwtTo/SRC/UNeLWqOxGNnNK4NOJTB0nQlyliymslwKuvjqV8HX8SUhLMAPN4 ++N0NoJY7f/01aSwjpDr9kTvDV0aV2KEHFZQiSugJyqs66YE6Oj1tkCzbT+yhox9m +IHioYVWsqPKlgx5/CJiJ8ra9pBJxvY6Jv8HVEag/TBN6NsluibvSIG188ts85Z67 +En5SgP3SCnF6KKtwdhxd5yJwHc9bFQvfL0YYeQHLpIaxDOk6HM5Yr7etJOS3Tn4G +ibZHSVacpsHYOkjhpw== -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/name_constraint_good.pem b/net/data/ssl/certificates/name_constraint_good.pem index 683deebc..3aae4c9 100644 --- a/net/data/ssl/certificates/name_constraint_good.pem +++ b/net/data/ssl/certificates/name_constraint_good.pem
@@ -1,110 +1,112 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDD5m1zsjUwajot -NE67oL3Ln1Gj5dOIy85u4iS4bA29+3VCpDpFSb8q+atKgK4VM4H41gZ4ilk6T4Nw -bh0z9PDQBIH8s5Yd0Xkqf3Ji0SDRsqBn+kQ2BXKHjup34lQrCgJ2BPoqle9Aj+Jd -Z2mjnCB2C5E8it8BYziraCdsXLC8wRBDoWFi6laPMuEd910uTaav4/MZ3y6SBJLm -+Q0URXm5d5msqK7KuAVlgYDdnzS1iRNiGH2fPU/NHw1NMsJyM5b3MEwu72YDzmxS -9QTpAp5vVPxKbMIhGqkVZpcfEVkB4FMZYueAJtr761dUhzZSSGoB3/D54cghc6ly -9HySHvFDAgMBAAECggEAfp4WClyZwlQ2i/cuGFm5sr2j7/JhOh64q7ShFU5Jx4ya -6trpCtWyqN08mGf5nJxxGluDTS/moii4hNe3KljbuSfguGt+0IEO9qfvT+1pcAAr -a2k34068CuAVrizsR/EtTAjFhPbp7+nP3p0zi1sjJAkv81iy8NunyioEqSZz2Vsw -ngPFuJeytOgeczoE69yzP1L0BaM46jOKXezXahC31lwtG+U5tLvElU0b/To/7GTg -+u5qnsJ87wHYkOctXvqH+L1JeMkc7RWCo0h4Kbk3ur1kDokjqUV4FGQSaMyIy0PC -ndk9WZhUV03v+Lsy3gzBM8261HOiTSMRz/+KrYqAOQKBgQD6ET0Hm11FIUFSeM/I -Dbxb41oN4ODl4YUgGk/9jPX8/ztvrGddh3VGWD4KUVNlWLioBX/t7FH5paGtd6tg -ZG8X3n48DaJ5h4u95ulAzcVjrkF4aNahy4aMmofdpe4S3+7HwlBcfIocO9WpAtL0 -pzFjlXivLQgUQow67tbG2dYrPQKBgQDIjDWWSqn6kB1zFyI6Hh9HhfFAKCRvCIzQ -OvqIOCtExP4U4mE0rUY7RWkFrRTDoMmYCwRuCohL1C4p6i/2AwK1mhS8OgPji7YV -zgYZuw2lSmp1lqzRmiLaOZxLcEKWlHQ1C9Sq606T7YAhgXi3tDfQ53gb1uFDvt1h -rE3AkU1WfwKBgHZ2EBk4aljDRjSRcqzshNxquVB1xVRhHzV0AYy1aBpvtnJSk6zk -7JNkXg95My6BdwhxgobtOnAvHIYWeKLzMQV3qwk71EoKAhL1/m1qjSWJeQ5Xa8W9 -qoGU+uPvJPbgCjerP3JwtORnG/Iymki3o1fviPpDNN6UH+YTGr+cli5pAoGBAKnT -4gU1kR/4LpgpvPhOTdq5mITl+YR1Txl++G2mcy23TBrPYdXD7jd/HeKKoYzQeibh -HY06KhVcxwMDqD3CaubyZiDHWEe3Jijs4MmlV3bjv6d4Qzz0NBNsuehAVoNBj+7j -5+IdhdtLQjgddebLHIExosqgev5tgPeXe/hYk49tAoGBALENmfF8ORreFf+aOd4+ -w/CZB2VaN4p0N6I+w2HPRRJO6Rhk0Pe6NtPkxbUS0x/cm+WOpvSbntH1DOjigL8e -mo+n2Ym+lrtYmEtB/M2C1k29pwaGYMfEIP3URUuYNEpWvTs6AOY7Sp5QN/X/v9ES -76pTvCiginWRyEeR+6vrDGM8 +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0v9KXM+UTW3dl +vXMadSibR1nmtzDoRjNtWFvaHwr/5OQt8h34iehkLvbDzdejjtf3zefYDhDD51bS +/OXm007i/4JNGGOHsKPe2u8KN3ustbdDzvIHOd8U6cOkQT5+aEc0m3thxBjmE86z +tKbgugPu5OvnqvRtvpdbqgaXUAHQeLjWkrDk4rlDiLWuFGR9UnDUBRwJJdXiT8mo +gttBMcO+RG8L1P2/we7ZYr87j7UAyNHfXUoTrXHkS1/R2XJMg9iTQL9szS9mDgTW +uUMoJMkl/Vlw/j3yqQpOwpvE3p5XXl0WJeZ4tkRJKZ32v3T7hdYN8WVY8ivWjxBJ +yAAtiOItAgMBAAECggEAXuyGumXEnl/g2oueEX0J8FKOgj4e7z0+8OQAiRLYgf9B +XmfTGZ3DcCnB6p8F6p2wCjIW2j64y0mJLZEnZAwBV/F8CuUOEErSJM2x0BnHV7Kv +JmtebDEWWTNTTcX9/gDhtF0bdQK5WMt6OKJdKZRHUITk52u+pov7jWZDw99+tG5w +InCv1RekWbAGZWLs9hyzpOpvp0tGM2O9+XCWQh/LLeLb5rJkTcH8NKv9Xh+tLeSU +i/FER+rQHsMVA4uHdBmRgPsBnPrJopcKWQImRXDGidEd5AUWLIECQdnZI8pbtmjV +0HZj+UuUlDFdALmCHX+NxR4Z+hyi+E96ZWw/J9FHwQKBgQDYX0e873Sf4tDOn0cZ +Olof3cXPri8ezKoeAD8tfY0bxLIoOwDUtJXZeGEZD3sduDJDCdvS1M/eeW04ePlx +kTmcDecaYm4t3KYzbPauudbMQEQFvsoivp8ct/synPcRtGPTHg+GUHaqWT1d4DjT +WClxx67ugD/YQYs5UY/uLjm4tQKBgQDV2lh1Uk3xBj15FZrzg/7GM7bK3L/Xcxzz +VewAksKuVEyoqHfZAo6P/xOiQkwc9kBoet43MiNyph/kYssQowE+Pg+WffB1Ve4F +kVsq6z1mwAfnYD6m4GHxfrV6VxwM3ItiX+PiKQ4YWsbyjc/vC4ZRSarLwbk8Woya +lNucr2hGmQKBgF5sdioFdaewm98Psz9XL61oYsLXCMkwF60v/mIjwEi19emIljw8 +8ogM+JKvJtM5ZvXKf5vqMyyrYPacFH9zGOj5SDlDa0GoYP9gNebaQtqv0P+Q2zV+ +aoFl6MGVrlyTlFy1aaD7zE1a1GT7TNEuUCfPNI/wd+wv7kn9RgpzMc1hAoGBAJrh +5Zkq/+olc9ZDcJMXsSkJgUURdhvrcjdGroOHx1oNEexA/3P7ZxchTa4ByDBdpS5G +drSRKp05dfWqG5o0BI140z9SfRnuH1KHAPlnoHPPdqn7ycSA1E7cT0GI33btMEIS +YvCEfYHkFRzM2qEtvp0W9o1WA/uTNSwrzZaAb8xZAoGAZZLwniPa8zkd+4WAPSN6 +LVj+1dGasfL/zftFhVxu0/KCpdggghG26Ej0ieG71k8Xg9tpZDJvo9Kj0s8Hu4Zu +TnhwwRVyUHls+Gl0t8XXV/ryRLHB8zY45k6A+Yvc/iOYQVmY2rE4kB4PDsrJ+d5P +wA1o1OPvcx28oBjHViWoWJQ= -----END PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) - Serial Number: 4 (0x4) + Serial Number: 6 (0x6) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity - Not Before: Dec 21 20:35:47 2015 GMT - Not After : Dec 18 20:35:47 2025 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: CN=Leaf Certificate Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:c3:e6:6d:73:b2:35:30:6a:3a:2d:34:4e:bb:a0: - bd:cb:9f:51:a3:e5:d3:88:cb:ce:6e:e2:24:b8:6c: - 0d:bd:fb:75:42:a4:3a:45:49:bf:2a:f9:ab:4a:80: - ae:15:33:81:f8:d6:06:78:8a:59:3a:4f:83:70:6e: - 1d:33:f4:f0:d0:04:81:fc:b3:96:1d:d1:79:2a:7f: - 72:62:d1:20:d1:b2:a0:67:fa:44:36:05:72:87:8e: - ea:77:e2:54:2b:0a:02:76:04:fa:2a:95:ef:40:8f: - e2:5d:67:69:a3:9c:20:76:0b:91:3c:8a:df:01:63: - 38:ab:68:27:6c:5c:b0:bc:c1:10:43:a1:61:62:ea: - 56:8f:32:e1:1d:f7:5d:2e:4d:a6:af:e3:f3:19:df: - 2e:92:04:92:e6:f9:0d:14:45:79:b9:77:99:ac:a8: - ae:ca:b8:05:65:81:80:dd:9f:34:b5:89:13:62:18: - 7d:9f:3d:4f:cd:1f:0d:4d:32:c2:72:33:96:f7:30: - 4c:2e:ef:66:03:ce:6c:52:f5:04:e9:02:9e:6f:54: - fc:4a:6c:c2:21:1a:a9:15:66:97:1f:11:59:01:e0: - 53:19:62:e7:80:26:da:fb:eb:57:54:87:36:52:48: - 6a:01:df:f0:f9:e1:c8:21:73:a9:72:f4:7c:92:1e: - f1:43 + 00:b4:bf:d2:97:33:e5:13:5b:77:65:bd:73:1a:75: + 28:9b:47:59:e6:b7:30:e8:46:33:6d:58:5b:da:1f: + 0a:ff:e4:e4:2d:f2:1d:f8:89:e8:64:2e:f6:c3:cd: + d7:a3:8e:d7:f7:cd:e7:d8:0e:10:c3:e7:56:d2:fc: + e5:e6:d3:4e:e2:ff:82:4d:18:63:87:b0:a3:de:da: + ef:0a:37:7b:ac:b5:b7:43:ce:f2:07:39:df:14:e9: + c3:a4:41:3e:7e:68:47:34:9b:7b:61:c4:18:e6:13: + ce:b3:b4:a6:e0:ba:03:ee:e4:eb:e7:aa:f4:6d:be: + 97:5b:aa:06:97:50:01:d0:78:b8:d6:92:b0:e4:e2: + b9:43:88:b5:ae:14:64:7d:52:70:d4:05:1c:09:25: + d5:e2:4f:c9:a8:82:db:41:31:c3:be:44:6f:0b:d4: + fd:bf:c1:ee:d9:62:bf:3b:8f:b5:00:c8:d1:df:5d: + 4a:13:ad:71:e4:4b:5f:d1:d9:72:4c:83:d8:93:40: + bf:6c:cd:2f:66:0e:04:d6:b9:43:28:24:c9:25:fd: + 59:70:fe:3d:f2:a9:0a:4e:c2:9b:c4:de:9e:57:5e: + 5d:16:25:e6:78:b6:44:49:29:9d:f6:bf:74:fb:85: + d6:0d:f1:65:58:f2:2b:d6:8f:10:49:c8:00:2d:88: + e2:2d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 64:AD:F5:F3:4B:2D:70:3A:13:B7:0D:D6:8F:9F:82:37:C3:58:73:A8 + E0:DC:E0:2F:07:88:74:3A:9F:D3:30:A3:71:8A:F9:D6:A5:E5:A6:53 X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: DNS:test.ExAmPlE.CoM, DNS:example.notarealtld, DNS:*.test2.ExAmPlE.CoM, DNS:*.example2.notarealtld Signature Algorithm: sha256WithRSAEncryption - 22:eb:19:0b:53:ae:ac:05:af:4f:70:28:c5:ae:8b:c4:6e:d7: - 2a:7a:58:a4:44:7b:46:be:6e:01:6c:b6:d0:15:48:51:10:c7: - 27:ae:8a:de:52:82:91:70:36:dd:d7:55:ac:52:b2:c8:33:53: - fc:a1:e3:c1:80:6b:e6:46:fb:9c:0d:09:bf:91:c2:ee:25:77: - 39:69:7c:d2:f1:95:f0:2d:1e:fd:52:eb:1a:38:60:34:db:f4: - 43:a2:18:a9:b7:25:14:53:1a:1f:42:97:ab:25:7c:bb:25:88: - 56:fe:ac:d3:6f:5c:fe:90:e4:99:83:91:74:c0:dc:bb:a2:54: - 91:16:dd:d9:12:a5:22:6f:7a:1e:18:ab:54:63:18:4d:79:7c: - cb:16:78:04:2c:4d:32:13:2c:21:30:c9:22:b3:c7:41:7d:85: - 0f:9f:91:13:88:dd:b6:35:2e:de:a4:b7:72:d3:a0:f1:64:1c: - 30:b9:65:9e:4f:f3:5b:2b:7d:42:7b:7c:21:54:bf:c2:b0:02: - 2f:4e:10:2d:40:11:08:70:36:5c:66:e9:b6:3b:6a:9f:dd:7f: - f9:42:04:d0:8c:3c:93:54:5d:9f:d2:34:c4:67:d7:7c:ee:3f: - 22:4f:71:86:af:b1:79:6f:00:b4:65:60:58:ed:ef:16:cd:e5: - 97:e0:b8:49 + 0e:29:bf:01:d0:62:9a:8d:ca:d5:3b:2a:9e:58:06:70:87:61: + 96:bc:0e:82:15:4d:98:82:b6:09:0a:22:91:29:ba:7a:17:78: + 9b:5d:fb:4b:d6:2d:75:4c:bb:75:ea:3f:23:0c:01:43:2c:26: + 75:22:05:cc:ac:36:8b:53:b3:ac:f1:4a:08:f5:da:d4:4a:4c: + 35:ae:10:f2:85:12:0f:60:b0:f3:25:8d:30:04:36:59:3e:66: + c9:dc:f9:36:4f:dc:71:c5:bb:f3:0b:7a:8b:1c:a8:38:45:fb: + cf:46:8c:df:f5:18:92:c0:4f:ac:f3:8c:30:81:a9:05:63:b1: + 2a:64:d9:25:01:61:53:24:09:0e:51:6b:6e:0c:85:03:b4:23: + 95:1e:5a:9c:a9:f3:83:c0:2a:8b:a2:97:03:be:ff:6d:4d:9b: + c4:8a:e2:d8:88:58:d4:73:32:3e:6a:33:69:2c:5d:d7:b5:97: + bb:71:df:5f:1d:d7:1a:8b:e6:00:c8:38:65:f0:ad:24:47:5a: + d3:b5:fd:23:e3:61:8a:89:05:7f:07:95:b3:41:61:41:b0:38: + c8:a8:ef:90:5b:34:00:81:86:13:e1:4d:1f:f7:29:f2:25:4d: + 4d:1b:2b:8e:58:75:c6:54:3b:5f:eb:13:09:56:f0:42:cc:16: + d2:12:d7:e5 -----BEGIN CERTIFICATE----- -MIIDfTCCAmWgAwIBAgIBBDANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTUxMjIxMjAzNTQ3WhcNMjUxMjE4MjAzNTQ3WjAbMRkwFwYD -VQQDExBMZWFmIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAw+Ztc7I1MGo6LTROu6C9y59Ro+XTiMvObuIkuGwNvft1QqQ6RUm/Kvmr -SoCuFTOB+NYGeIpZOk+DcG4dM/Tw0ASB/LOWHdF5Kn9yYtEg0bKgZ/pENgVyh47q -d+JUKwoCdgT6KpXvQI/iXWdpo5wgdguRPIrfAWM4q2gnbFywvMEQQ6FhYupWjzLh -HfddLk2mr+PzGd8ukgSS5vkNFEV5uXeZrKiuyrgFZYGA3Z80tYkTYhh9nz1PzR8N -TTLCcjOW9zBMLu9mA85sUvUE6QKeb1T8SmzCIRqpFWaXHxFZAeBTGWLngCba++tX -VIc2UkhqAd/w+eHIIXOpcvR8kh7xQwIDAQABo4HPMIHMMAwGA1UdEwEB/wQCMAAw -HQYDVR0OBBYEFGSt9fNLLXA6E7cN1o+fgjfDWHOoMB8GA1UdIwQYMBaAFLz3MNE8 -wPJ5+u+fyWxck/OKaKuDMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBd -BgNVHREEVjBUghB0ZXN0LkV4QW1QbEUuQ29NghNleGFtcGxlLm5vdGFyZWFsdGxk -ghMqLnRlc3QyLkV4QW1QbEUuQ29NghYqLmV4YW1wbGUyLm5vdGFyZWFsdGxkMA0G -CSqGSIb3DQEBCwUAA4IBAQAi6xkLU66sBa9PcCjFrovEbtcqelikRHtGvm4BbLbQ -FUhREMcnroreUoKRcDbd11WsUrLIM1P8oePBgGvmRvucDQm/kcLuJXc5aXzS8ZXw -LR79UusaOGA02/RDohiptyUUUxofQperJXy7JYhW/qzTb1z+kOSZg5F0wNy7olSR -Ft3ZEqUib3oeGKtUYxhNeXzLFngELE0yEywhMMkis8dBfYUPn5ETiN22NS7epLdy -06DxZBwwuWWeT/NbK31Ce3whVL/CsAIvThAtQBEIcDZcZum2O2qf3X/5QgTQjDyT -VF2f0jTEZ9d87j8iT3GGr7F5bwC0ZWBY7e8WzeWX4LhJ +MIIDyTCCArGgAwIBAgIBBjANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE3MDYwNTE3 +MTA0NloXDTI3MDYwMzE3MTA0NlowGzEZMBcGA1UEAxMQTGVhZiBDZXJ0aWZpY2F0 +ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALS/0pcz5RNbd2W9cxp1 +KJtHWea3MOhGM21YW9ofCv/k5C3yHfiJ6GQu9sPN16OO1/fN59gOEMPnVtL85ebT +TuL/gk0YY4ewo97a7wo3e6y1t0PO8gc53xTpw6RBPn5oRzSbe2HEGOYTzrO0puC6 +A+7k6+eq9G2+l1uqBpdQAdB4uNaSsOTiuUOIta4UZH1ScNQFHAkl1eJPyaiC20Ex +w75EbwvU/b/B7tlivzuPtQDI0d9dShOtceRLX9HZckyD2JNAv2zNL2YOBNa5Qygk +ySX9WXD+PfKpCk7Cm8TenldeXRYl5ni2REkpnfa/dPuF1g3xZVjyK9aPEEnIAC2I +4i0CAwEAAaOBzzCBzDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTg3OAvB4h0Op/T +MKNxivnWpeWmUzAfBgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNV +HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwXQYDVR0RBFYwVIIQdGVzdC5FeEFt +UGxFLkNvTYITZXhhbXBsZS5ub3RhcmVhbHRsZIITKi50ZXN0Mi5FeEFtUGxFLkNv +TYIWKi5leGFtcGxlMi5ub3RhcmVhbHRsZDANBgkqhkiG9w0BAQsFAAOCAQEADim/ +AdBimo3K1TsqnlgGcIdhlrwOghVNmIK2CQoikSm6ehd4m137S9YtdUy7deo/IwwB +QywmdSIFzKw2i1OzrPFKCPXa1EpMNa4Q8oUSD2Cw8yWNMAQ2WT5mydz5Nk/cccW7 +8wt6ixyoOEX7z0aM3/UYksBPrPOMMIGpBWOxKmTZJQFhUyQJDlFrbgyFA7QjlR5a +nKnzg8Aqi6KXA77/bU2bxIri2IhY1HMyPmozaSxd17WXu3HfXx3XGovmAMg4ZfCt +JEda07X9I+NhiokFfweVs0FhQbA4yKjvkFs0AIGGE+FNH/cp8iVNTRsrjlh1xlQ7 +X+sTCVbwQswW0hLX5Q== -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/ok_cert.pem b/net/data/ssl/certificates/ok_cert.pem index 82239d0..a594b8e 100644 --- a/net/data/ssl/certificates/ok_cert.pem +++ b/net/data/ssl/certificates/ok_cert.pem
@@ -1,110 +1,112 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC1+PQy2PX0Zcrp -0Mvd6ZehbpDi9LKyFtCb4plX7XvGW29JwZQAqQ1dtTX0Ons8GAajeFpo/6YFH30Q -CK4JbNzv3biXnmzOy6DcMysele8d+9Pa+D5X7YuOnoZNEqYMMCPvCEVPIRJCiIcB -2KUyn7c472Ctt0drO0umXCtWclzRtTiHmew7/8YC74Y47uIFxvBm4hiRUOVXIyeZ -u9tJJIhmqBSWfhptKuH/GPVqN9KIqHnJuVD1mmgLBJ5oAh2hceCJFboqSAZ6eNPR -DHeDmIP4ueJgIJIHm9TIwPpaWp0mQMI1ZQDzoOLTIU2lxJGIkBSnXvcTt+oror3X -hBgat3tdAgMBAAECggEABykz2uhkzWhQEuFvlF0D5YtnUjcU7SMutGO3axliXIzu -lTVz8I62gvCFngXLIbNEV5x92lHtI5h4oG/nAWHyU9Ii2HyYhY7H1sKAuORnk4N8 -c8p/EZC8hDFC0behJyuhzl9B8vo3ML0UqwLuhU55tFjfMhbbTaH4uSQ5ZF59vpbV -BLe+j3+0BWINSi65KrE/V9PAlH0IuSir4YYuFcJApZIMdiXGqb1mnnUn4CkMmmeH -JvRaYvrxD14T/lzMVzBkR0bez5jYe7syspCe+mmyqIS0mTOw8rQER1vL/DHcyJsG -inG5IazyDaCvgqNAEKzeh0AC3aoel86lURIlt/TrFQKBgQDrSKIvDDXFpYxtpJYt -Q+gyUqN/QPwGVL39n7kSpBoFWKsP9eSGKjVfD4PJboYjE0pcoci4ohsOHmyHpaqi -lAzy4oGd5VqEfu4qz65W7xFwZnMnxLv7OZeHzZG7nw2PIT6k57hNd0/IEndFLHZU -zBm56Ow/Czkb4HA/IR5RQG4SywKBgQDF/qst7PVtWOm6wJ3boJNl7QasWTRKsNxg -DkEo76dOwq2BSFTO+WYKWFPsOYrlnHbf3Ni869WB/vGwE8IecOH0Ir39plbRb2nc -WRW13mljwTET9AGb0/nhPkduYPyN7Gjvy1DTTz5e47rk5881siU8dPCSvgygo9DO -vy+ZlAtddwKBgQCIGa3ndTKtsAO5cNmGOZ/ZbEAzXk3rA54bVgdipxZ+PTpGs0CL -82KIKJtdK9ff9kqvps5LL0pjMmopVUWNYgLThP7hbUidGCeBED2TABugX0MBoCX1 -Pu1OmzVPyMO5Jcvs7DWKahf2begcVYnlp2LCTeBK350baQrFGc1FxvVlXQKBgHrS -y7/2oh1OLdgTCxoml6mAC0a5I6493sebsCJD4McED3wGsc2fewRp3M3KuHZNxJSE -vNMdfVpiG+39o8scfZ7kOnXyTSMo+UOe48/pg/lE7DwTfzf6nKV06/z2H1WvVT2E -I8SiAO/+V38OqkUGGQFTDbYKPW0dkjfe9BlSdGZrAoGAfbDe3biBtcMw57AKTf78 -i+dku+lnVkAmPOr1I6nnN2qGUdbXjbV2EE88BSo4OF6TF7C6dwicQuv5PxpozCRM -NkdqZ7UT2h7JX0KybnrIvHefboG/pK/Jjg9cEBhN1P6y6+pyzWKa7Nc1c0pXRqz6 -FzMv6eiJALyDSTm0ChEm6ug= +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0v9KXM+UTW3dl +vXMadSibR1nmtzDoRjNtWFvaHwr/5OQt8h34iehkLvbDzdejjtf3zefYDhDD51bS +/OXm007i/4JNGGOHsKPe2u8KN3ustbdDzvIHOd8U6cOkQT5+aEc0m3thxBjmE86z +tKbgugPu5OvnqvRtvpdbqgaXUAHQeLjWkrDk4rlDiLWuFGR9UnDUBRwJJdXiT8mo +gttBMcO+RG8L1P2/we7ZYr87j7UAyNHfXUoTrXHkS1/R2XJMg9iTQL9szS9mDgTW +uUMoJMkl/Vlw/j3yqQpOwpvE3p5XXl0WJeZ4tkRJKZ32v3T7hdYN8WVY8ivWjxBJ +yAAtiOItAgMBAAECggEAXuyGumXEnl/g2oueEX0J8FKOgj4e7z0+8OQAiRLYgf9B +XmfTGZ3DcCnB6p8F6p2wCjIW2j64y0mJLZEnZAwBV/F8CuUOEErSJM2x0BnHV7Kv +JmtebDEWWTNTTcX9/gDhtF0bdQK5WMt6OKJdKZRHUITk52u+pov7jWZDw99+tG5w +InCv1RekWbAGZWLs9hyzpOpvp0tGM2O9+XCWQh/LLeLb5rJkTcH8NKv9Xh+tLeSU +i/FER+rQHsMVA4uHdBmRgPsBnPrJopcKWQImRXDGidEd5AUWLIECQdnZI8pbtmjV +0HZj+UuUlDFdALmCHX+NxR4Z+hyi+E96ZWw/J9FHwQKBgQDYX0e873Sf4tDOn0cZ +Olof3cXPri8ezKoeAD8tfY0bxLIoOwDUtJXZeGEZD3sduDJDCdvS1M/eeW04ePlx +kTmcDecaYm4t3KYzbPauudbMQEQFvsoivp8ct/synPcRtGPTHg+GUHaqWT1d4DjT +WClxx67ugD/YQYs5UY/uLjm4tQKBgQDV2lh1Uk3xBj15FZrzg/7GM7bK3L/Xcxzz +VewAksKuVEyoqHfZAo6P/xOiQkwc9kBoet43MiNyph/kYssQowE+Pg+WffB1Ve4F +kVsq6z1mwAfnYD6m4GHxfrV6VxwM3ItiX+PiKQ4YWsbyjc/vC4ZRSarLwbk8Woya +lNucr2hGmQKBgF5sdioFdaewm98Psz9XL61oYsLXCMkwF60v/mIjwEi19emIljw8 +8ogM+JKvJtM5ZvXKf5vqMyyrYPacFH9zGOj5SDlDa0GoYP9gNebaQtqv0P+Q2zV+ +aoFl6MGVrlyTlFy1aaD7zE1a1GT7TNEuUCfPNI/wd+wv7kn9RgpzMc1hAoGBAJrh +5Zkq/+olc9ZDcJMXsSkJgUURdhvrcjdGroOHx1oNEexA/3P7ZxchTa4ByDBdpS5G +drSRKp05dfWqG5o0BI140z9SfRnuH1KHAPlnoHPPdqn7ycSA1E7cT0GI33btMEIS +YvCEfYHkFRzM2qEtvp0W9o1WA/uTNSwrzZaAb8xZAoGAZZLwniPa8zkd+4WAPSN6 +LVj+1dGasfL/zftFhVxu0/KCpdggghG26Ej0ieG71k8Xg9tpZDJvo9Kj0s8Hu4Zu +TnhwwRVyUHls+Gl0t8XXV/ryRLHB8zY45k6A+Yvc/iOYQVmY2rE4kB4PDsrJ+d5P +wA1o1OPvcx28oBjHViWoWJQ= -----END PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) - Serial Number: 2 (0x2) + Serial Number: 3 (0x3) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity - Not Before: Aug 14 03:05:29 2014 GMT - Not After : Aug 11 03:05:29 2024 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:b5:f8:f4:32:d8:f5:f4:65:ca:e9:d0:cb:dd:e9: - 97:a1:6e:90:e2:f4:b2:b2:16:d0:9b:e2:99:57:ed: - 7b:c6:5b:6f:49:c1:94:00:a9:0d:5d:b5:35:f4:3a: - 7b:3c:18:06:a3:78:5a:68:ff:a6:05:1f:7d:10:08: - ae:09:6c:dc:ef:dd:b8:97:9e:6c:ce:cb:a0:dc:33: - 2b:1e:95:ef:1d:fb:d3:da:f8:3e:57:ed:8b:8e:9e: - 86:4d:12:a6:0c:30:23:ef:08:45:4f:21:12:42:88: - 87:01:d8:a5:32:9f:b7:38:ef:60:ad:b7:47:6b:3b: - 4b:a6:5c:2b:56:72:5c:d1:b5:38:87:99:ec:3b:ff: - c6:02:ef:86:38:ee:e2:05:c6:f0:66:e2:18:91:50: - e5:57:23:27:99:bb:db:49:24:88:66:a8:14:96:7e: - 1a:6d:2a:e1:ff:18:f5:6a:37:d2:88:a8:79:c9:b9: - 50:f5:9a:68:0b:04:9e:68:02:1d:a1:71:e0:89:15: - ba:2a:48:06:7a:78:d3:d1:0c:77:83:98:83:f8:b9: - e2:60:20:92:07:9b:d4:c8:c0:fa:5a:5a:9d:26:40: - c2:35:65:00:f3:a0:e2:d3:21:4d:a5:c4:91:88:90: - 14:a7:5e:f7:13:b7:ea:2b:a2:bd:d7:84:18:1a:b7: - 7b:5d + 00:b4:bf:d2:97:33:e5:13:5b:77:65:bd:73:1a:75: + 28:9b:47:59:e6:b7:30:e8:46:33:6d:58:5b:da:1f: + 0a:ff:e4:e4:2d:f2:1d:f8:89:e8:64:2e:f6:c3:cd: + d7:a3:8e:d7:f7:cd:e7:d8:0e:10:c3:e7:56:d2:fc: + e5:e6:d3:4e:e2:ff:82:4d:18:63:87:b0:a3:de:da: + ef:0a:37:7b:ac:b5:b7:43:ce:f2:07:39:df:14:e9: + c3:a4:41:3e:7e:68:47:34:9b:7b:61:c4:18:e6:13: + ce:b3:b4:a6:e0:ba:03:ee:e4:eb:e7:aa:f4:6d:be: + 97:5b:aa:06:97:50:01:d0:78:b8:d6:92:b0:e4:e2: + b9:43:88:b5:ae:14:64:7d:52:70:d4:05:1c:09:25: + d5:e2:4f:c9:a8:82:db:41:31:c3:be:44:6f:0b:d4: + fd:bf:c1:ee:d9:62:bf:3b:8f:b5:00:c8:d1:df:5d: + 4a:13:ad:71:e4:4b:5f:d1:d9:72:4c:83:d8:93:40: + bf:6c:cd:2f:66:0e:04:d6:b9:43:28:24:c9:25:fd: + 59:70:fe:3d:f2:a9:0a:4e:c2:9b:c4:de:9e:57:5e: + 5d:16:25:e6:78:b6:44:49:29:9d:f6:bf:74:fb:85: + d6:0d:f1:65:58:f2:2b:d6:8f:10:49:c8:00:2d:88: + e2:2d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 82:04:1D:BD:05:71:83:6F:F6:98:19:4D:4F:11:46:88:4D:9B:BF:A8 + E0:DC:E0:2F:07:88:74:3A:9F:D3:30:A3:71:8A:F9:D6:A5:E5:A6:53 X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 84:dc:10:04:8d:bd:3f:c1:3e:fb:68:4b:3f:35:e4:5d:02:eb: - 73:e6:0e:74:16:e4:c5:30:6b:05:94:4e:9c:69:10:5e:7a:af: - a4:76:c6:28:a7:1a:c1:5c:7e:1d:5e:1c:5e:87:97:fe:5c:5b: - 28:47:31:b1:79:4a:f8:36:f6:b1:52:b8:d5:ab:6b:86:ef:ec: - 3d:ed:50:0b:40:37:65:0b:22:3a:b7:af:d4:04:36:f0:f0:d2: - 9a:16:69:5d:8b:25:03:f6:05:87:5e:48:bd:25:15:c4:3b:6a: - ed:63:d8:87:55:8e:3e:1c:44:de:eb:1b:dd:c4:73:c7:a6:6a: - 12:6d:48:d5:e5:12:6a:a8:55:26:26:0d:7e:bc:cd:71:85:b1: - 8a:76:e4:5a:1a:c5:9c:26:bf:d7:5e:57:14:fa:b6:52:cf:85: - 90:0a:e8:7f:69:e1:b0:94:1b:ac:64:5a:e9:38:cc:53:9e:fd: - c6:d4:e1:5e:9c:37:22:2e:4b:d9:81:5f:59:e1:43:a7:7b:ed: - a7:23:20:fd:04:91:f0:1d:4e:6c:c0:de:ab:9a:19:2b:4f:00: - a3:1d:58:74:c9:32:6e:ee:35:b6:33:4c:64:8d:6e:ec:a8:8e: - d7:33:c7:33:c6:92:8a:ce:b5:f6:5d:8e:12:52:ec:9d:0a:cf: - 4b:3b:dd:f3 + 7a:14:44:2e:50:34:5c:0b:98:e4:5f:76:99:ba:e4:de:64:4a: + 8c:54:be:c9:5e:0b:e0:16:ac:d7:b0:f6:fc:cc:87:66:c6:bf: + ed:10:37:f0:5f:1d:aa:0d:fd:83:a7:1b:6c:ec:5a:b8:be:a5: + 30:8a:62:b8:a9:5d:ca:ee:17:8b:9d:65:76:f8:50:6f:57:57: + 9e:49:f6:7b:01:08:fe:49:44:64:76:5c:a8:e3:6a:f8:d7:eb: + 75:dd:05:1f:f9:9d:1f:b5:1f:76:eb:a2:d2:58:b2:ab:ba:47: + 88:33:19:3b:de:13:a4:9b:fb:bc:7a:78:53:77:4d:1d:cb:f1: + 4d:f5:d3:85:04:51:ec:79:53:2c:a5:63:71:22:47:51:20:b8: + 0e:9a:2c:9f:40:d4:60:c4:d6:1d:39:fd:1e:11:f1:0b:47:c1: + e7:e9:68:d9:f3:00:1b:bc:ee:29:ed:14:eb:ce:ed:5c:fd:16: + 74:33:e3:4b:90:80:f9:e8:1a:db:97:bd:06:0b:68:79:eb:cd: + 4b:3f:00:0e:69:9e:ff:99:64:39:91:e9:12:c8:98:e6:2d:f1: + 75:d9:bf:a1:f5:15:40:b7:93:2b:5d:98:24:da:f3:6e:8e:cb: + 20:19:fe:27:6d:68:78:29:9c:90:ea:aa:ec:ef:bf:19:74:32: + e6:c9:f5:27 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTQwODE0MDMwNTI5WhcNMjQwODExMDMwNTI5WjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtfj0Mtj19GXK6dDL3emXoW6Q4vSy -shbQm+KZV+17xltvScGUAKkNXbU19Dp7PBgGo3haaP+mBR99EAiuCWzc7924l55s -zsug3DMrHpXvHfvT2vg+V+2Ljp6GTRKmDDAj7whFTyESQoiHAdilMp+3OO9grbdH -aztLplwrVnJc0bU4h5nsO//GAu+GOO7iBcbwZuIYkVDlVyMnmbvbSSSIZqgUln4a -bSrh/xj1ajfSiKh5yblQ9ZpoCwSeaAIdoXHgiRW6KkgGenjT0Qx3g5iD+LniYCCS -B5vUyMD6WlqdJkDCNWUA86Di0yFNpcSRiJAUp173E7fqK6K914QYGrd7XQIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUggQdvQVxg2/2mBlNTxFGiE2b -v6gwHwYDVR0jBBgwFoAUvPcw0TzA8nn675/JbFyT84poq4MwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAITcEASNvT/BPvtoSz815F0C63PmDnQW5MUwawWUTpxpEF56r6R2xiin -GsFcfh1eHF6Hl/5cWyhHMbF5Svg29rFSuNWra4bv7D3tUAtAN2ULIjq3r9QENvDw -0poWaV2LJQP2BYdeSL0lFcQ7au1j2IdVjj4cRN7rG93Ec8emahJtSNXlEmqoVSYm -DX68zXGFsYp25FoaxZwmv9deVxT6tlLPhZAK6H9p4bCUG6xkWuk4zFOe/cbU4V6c -NyIuS9mBX1nhQ6d77acjIP0EkfAdTmzA3quaGStPAKMdWHTJMm7uNbYzTGSNbuyo -jtczxzPGkorOtfZdjhJS7J0Kz0s73fM= +MIIDvzCCAqegAwIBAgIBAzANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE3MDYwNTE3 +MTA0NloXDTI3MDYwMzE3MTA0NlowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALS/0pcz5RNbd2W9cxp1KJtHWea3MOhGM21YW9ofCv/k5C3yHfiJ6GQu +9sPN16OO1/fN59gOEMPnVtL85ebTTuL/gk0YY4ewo97a7wo3e6y1t0PO8gc53xTp +w6RBPn5oRzSbe2HEGOYTzrO0puC6A+7k6+eq9G2+l1uqBpdQAdB4uNaSsOTiuUOI +ta4UZH1ScNQFHAkl1eJPyaiC20Exw75EbwvU/b/B7tlivzuPtQDI0d9dShOtceRL +X9HZckyD2JNAv2zNL2YOBNa5QygkySX9WXD+PfKpCk7Cm8TenldeXRYl5ni2REkp +nfa/dPuF1g3xZVjyK9aPEEnIAC2I4i0CAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFODc4C8HiHQ6n9Mwo3GK+dal5aZTMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQB6FEQuUDRcC5jkX3aZ +uuTeZEqMVL7JXgvgFqzXsPb8zIdmxr/tEDfwXx2qDf2Dpxts7Fq4vqUwimK4qV3K +7heLnWV2+FBvV1eeSfZ7AQj+SURkdlyo42r41+t13QUf+Z0ftR9266LSWLKrukeI +Mxk73hOkm/u8enhTd00dy/FN9dOFBFHseVMspWNxIkdRILgOmiyfQNRgxNYdOf0e +EfELR8Hn6WjZ8wAbvO4p7RTrzu1c/RZ0M+NLkID56Brbl70GC2h5681LPwAOaZ7/ +mWQ5kekSyJjmLfF12b+h9RVAt5MrXZgk2vNujssgGf4nbWh4KZyQ6qrs778ZdDLm +yfUn -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/ok_cert_by_intermediate.pem b/net/data/ssl/certificates/ok_cert_by_intermediate.pem index 73d2742e..5c92ba6f 100644 --- a/net/data/ssl/certificates/ok_cert_by_intermediate.pem +++ b/net/data/ssl/certificates/ok_cert_by_intermediate.pem
@@ -1,30 +1,30 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC/o1248m3ahtTW -3Qyg28CaxDu3lQaaEdfPjdAc75ncit2HvdkOuRFpr5RXEa+LhhYIWcj+/oa6Jgn+ -8FG6FENkyGWFH8tEOfaTV5g08r8GdzYCatmZBPTiXX/b7fIUXUhysls0st/qVqvT -iPZYRM9AM/7JtbjD4nNZDabmyVuRkkLB8lgxEuBXX5R8di3SrOfCYqKI6IPPiJ7t -umcJYbgfWqXhdMqHGDtd0O/CRfUmJRjKmsX3YZuw+xwECgNZ14fGUWU7bnR2UOfC -UgBaRVmOL2kdg6545QNmFT97QpPwxRqtluTnCTEOTZe1nptjeNMOyifSZCeSwt5r -Llzwf3jZAgMBAAECggEAKxcAq+VW7hwDH4z0mfbPh/03sD/CDEKW1AR/FwKJBh3z -UeJOPBFA6RKhuDIx1p1/tsD5gNyaTqDe/oPq3HxR6wdkTFqpyd1+pAK+JqmuajXD -3ydHZjDHH18GsNz/4bRX5fJUr7TIxFhYqmfRfGd8cmM+lvxVXzY72XpIXPxJqqFk -40AticFiOdMqVp/6gBBBx8TovTDnJCnvMFanNXh8qsfxwWQNS92U/OJ+uaLj1mLd -r2pkMh5VIEzfxgWTTNsRLMOksnmLNLNQZ58UJMNfhJpjBCZ0yMw5EArolQLOyl77 -yHlAmSvZWBw216zij6TfcsBmZgdrNsF6GJ92ThwAAQKBgQDgtf8/LUoOv0OGPP8J -Sa+1Ch+l3Lkezdx0p07hES3wNPcnh8yqLXAVt4CllaJKBJTDP5gqCZXTiLFMVwZY -P0/NznTom/84CiEsm4EpdAUndPxM8Np+MZezch2aMlODDZEzfGOJs8Wd/a2UC9kW -VgPIB3hBAZU+k7OSaeMu2BYq2QKBgQDaUnaO+YTJ5QKwZ94+8MI9JIyjIiZss4wk -Qm1WgYToYUZeOQjg+iDELqlQFCahhPTiba8oovsv3BfHAkE2mMB22BccV8BwtZfg -fG+goXbhEumYubMKNg0ST5/wVczPncBxfHCgpdg9G15vKmbV/7VEbwBM/idHiLTy -DIYgPVb+AQKBgA4QlidYKFh/9DQEwVnNeOf1+EEjbZrV+8R5bGB9+MgeKJIa196W -9XsGf1Dd6siDPORzqIyJCQ2ycpZ6o/UGEXKqR3r/uJvDVow6N31mu6PamKggMyzO -4dXjgKLUH5IGWV5FnN1TmTzoUeMAUtgpDheJECfRd4vxJr41TnjyIYERAoGALJbV -AgRyG237a537JS207hnt40+RO3g8MhejDxzq0S802P+bEZ/kW00QZXuIHEr0XN57 -/Le0x6SS8qFCQm1WOa+OoMpHUn20JDQl9E+l4Pgk331l1LsPVmMOzl4ns2uLp2H7 -+sOEc46IbfniAOj106E8FX1+9jw0gI8QQbtlbgECgYA/QsKOQnnUoikpIsKRfJ7x -S8AERMBXLa1Q9lPtaiCF7lQSkLUfn2goSWVUCEPD6mgsbOcq2hlY9HXQaVispSrm -aUb8tCSa/cM9Gldxl0Jt1rSW4O0H2mw6vwjihZ0MGMfM921+x95vxNylHZxp2eYZ -vKJsYp14tT/JqNH+qQN2mQ== +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0v9KXM+UTW3dl +vXMadSibR1nmtzDoRjNtWFvaHwr/5OQt8h34iehkLvbDzdejjtf3zefYDhDD51bS +/OXm007i/4JNGGOHsKPe2u8KN3ustbdDzvIHOd8U6cOkQT5+aEc0m3thxBjmE86z +tKbgugPu5OvnqvRtvpdbqgaXUAHQeLjWkrDk4rlDiLWuFGR9UnDUBRwJJdXiT8mo +gttBMcO+RG8L1P2/we7ZYr87j7UAyNHfXUoTrXHkS1/R2XJMg9iTQL9szS9mDgTW +uUMoJMkl/Vlw/j3yqQpOwpvE3p5XXl0WJeZ4tkRJKZ32v3T7hdYN8WVY8ivWjxBJ +yAAtiOItAgMBAAECggEAXuyGumXEnl/g2oueEX0J8FKOgj4e7z0+8OQAiRLYgf9B +XmfTGZ3DcCnB6p8F6p2wCjIW2j64y0mJLZEnZAwBV/F8CuUOEErSJM2x0BnHV7Kv +JmtebDEWWTNTTcX9/gDhtF0bdQK5WMt6OKJdKZRHUITk52u+pov7jWZDw99+tG5w +InCv1RekWbAGZWLs9hyzpOpvp0tGM2O9+XCWQh/LLeLb5rJkTcH8NKv9Xh+tLeSU +i/FER+rQHsMVA4uHdBmRgPsBnPrJopcKWQImRXDGidEd5AUWLIECQdnZI8pbtmjV +0HZj+UuUlDFdALmCHX+NxR4Z+hyi+E96ZWw/J9FHwQKBgQDYX0e873Sf4tDOn0cZ +Olof3cXPri8ezKoeAD8tfY0bxLIoOwDUtJXZeGEZD3sduDJDCdvS1M/eeW04ePlx +kTmcDecaYm4t3KYzbPauudbMQEQFvsoivp8ct/synPcRtGPTHg+GUHaqWT1d4DjT +WClxx67ugD/YQYs5UY/uLjm4tQKBgQDV2lh1Uk3xBj15FZrzg/7GM7bK3L/Xcxzz +VewAksKuVEyoqHfZAo6P/xOiQkwc9kBoet43MiNyph/kYssQowE+Pg+WffB1Ve4F +kVsq6z1mwAfnYD6m4GHxfrV6VxwM3ItiX+PiKQ4YWsbyjc/vC4ZRSarLwbk8Woya +lNucr2hGmQKBgF5sdioFdaewm98Psz9XL61oYsLXCMkwF60v/mIjwEi19emIljw8 +8ogM+JKvJtM5ZvXKf5vqMyyrYPacFH9zGOj5SDlDa0GoYP9gNebaQtqv0P+Q2zV+ +aoFl6MGVrlyTlFy1aaD7zE1a1GT7TNEuUCfPNI/wd+wv7kn9RgpzMc1hAoGBAJrh +5Zkq/+olc9ZDcJMXsSkJgUURdhvrcjdGroOHx1oNEexA/3P7ZxchTa4ByDBdpS5G +drSRKp05dfWqG5o0BI140z9SfRnuH1KHAPlnoHPPdqn7ycSA1E7cT0GI33btMEIS +YvCEfYHkFRzM2qEtvp0W9o1WA/uTNSwrzZaAb8xZAoGAZZLwniPa8zkd+4WAPSN6 +LVj+1dGasfL/zftFhVxu0/KCpdggghG26Ej0ieG71k8Xg9tpZDJvo9Kj0s8Hu4Zu +TnhwwRVyUHls+Gl0t8XXV/ryRLHB8zY45k6A+Yvc/iOYQVmY2rE4kB4PDsrJ+d5P +wA1o1OPvcx28oBjHViWoWJQ= -----END PRIVATE KEY----- Certificate: Data: @@ -33,80 +33,80 @@ Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA Validity - Not Before: Dec 9 22:40:08 2016 GMT - Not After : Dec 7 22:40:08 2026 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:bf:a3:5d:b8:f2:6d:da:86:d4:d6:dd:0c:a0:db: - c0:9a:c4:3b:b7:95:06:9a:11:d7:cf:8d:d0:1c:ef: - 99:dc:8a:dd:87:bd:d9:0e:b9:11:69:af:94:57:11: - af:8b:86:16:08:59:c8:fe:fe:86:ba:26:09:fe:f0: - 51:ba:14:43:64:c8:65:85:1f:cb:44:39:f6:93:57: - 98:34:f2:bf:06:77:36:02:6a:d9:99:04:f4:e2:5d: - 7f:db:ed:f2:14:5d:48:72:b2:5b:34:b2:df:ea:56: - ab:d3:88:f6:58:44:cf:40:33:fe:c9:b5:b8:c3:e2: - 73:59:0d:a6:e6:c9:5b:91:92:42:c1:f2:58:31:12: - e0:57:5f:94:7c:76:2d:d2:ac:e7:c2:62:a2:88:e8: - 83:cf:88:9e:ed:ba:67:09:61:b8:1f:5a:a5:e1:74: - ca:87:18:3b:5d:d0:ef:c2:45:f5:26:25:18:ca:9a: - c5:f7:61:9b:b0:fb:1c:04:0a:03:59:d7:87:c6:51: - 65:3b:6e:74:76:50:e7:c2:52:00:5a:45:59:8e:2f: - 69:1d:83:ae:78:e5:03:66:15:3f:7b:42:93:f0:c5: - 1a:ad:96:e4:e7:09:31:0e:4d:97:b5:9e:9b:63:78: - d3:0e:ca:27:d2:64:27:92:c2:de:6b:2e:5c:f0:7f: - 78:d9 + 00:b4:bf:d2:97:33:e5:13:5b:77:65:bd:73:1a:75: + 28:9b:47:59:e6:b7:30:e8:46:33:6d:58:5b:da:1f: + 0a:ff:e4:e4:2d:f2:1d:f8:89:e8:64:2e:f6:c3:cd: + d7:a3:8e:d7:f7:cd:e7:d8:0e:10:c3:e7:56:d2:fc: + e5:e6:d3:4e:e2:ff:82:4d:18:63:87:b0:a3:de:da: + ef:0a:37:7b:ac:b5:b7:43:ce:f2:07:39:df:14:e9: + c3:a4:41:3e:7e:68:47:34:9b:7b:61:c4:18:e6:13: + ce:b3:b4:a6:e0:ba:03:ee:e4:eb:e7:aa:f4:6d:be: + 97:5b:aa:06:97:50:01:d0:78:b8:d6:92:b0:e4:e2: + b9:43:88:b5:ae:14:64:7d:52:70:d4:05:1c:09:25: + d5:e2:4f:c9:a8:82:db:41:31:c3:be:44:6f:0b:d4: + fd:bf:c1:ee:d9:62:bf:3b:8f:b5:00:c8:d1:df:5d: + 4a:13:ad:71:e4:4b:5f:d1:d9:72:4c:83:d8:93:40: + bf:6c:cd:2f:66:0e:04:d6:b9:43:28:24:c9:25:fd: + 59:70:fe:3d:f2:a9:0a:4e:c2:9b:c4:de:9e:57:5e: + 5d:16:25:e6:78:b6:44:49:29:9d:f6:bf:74:fb:85: + d6:0d:f1:65:58:f2:2b:d6:8f:10:49:c8:00:2d:88: + e2:2d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 1A:DE:3A:BF:17:09:87:0A:D0:12:6B:C9:47:D2:A7:EB:ED:5B:04:99 + E0:DC:E0:2F:07:88:74:3A:9F:D3:30:A3:71:8A:F9:D6:A5:E5:A6:53 X509v3 Authority Key Identifier: - keyid:F9:98:21:49:71:FA:8D:B9:20:F7:FE:5D:4D:41:E8:8B:6C:E0:62:C3 + keyid:17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 8a:ac:de:1c:d2:ca:a7:b3:f8:26:34:2e:a7:b4:ef:7e:26:08: - 5b:f4:78:ec:37:4a:a8:02:c8:37:cc:45:7c:e3:bd:5c:e3:87: - 24:ea:4f:1a:dd:f5:d7:a3:de:2f:78:6a:e9:3a:4d:87:3a:9b: - 7c:5c:5b:59:b4:2f:9e:1d:6d:29:9f:60:c0:d8:b7:87:0c:4b: - 59:ac:b3:0d:5c:11:4f:24:09:4e:7c:84:72:00:8c:12:b7:84: - 8a:80:91:97:4e:22:17:e0:5f:83:fd:97:6c:51:b3:03:c0:a2: - 3c:f8:9e:24:a1:c1:b7:14:a0:6b:30:e8:62:b8:84:87:6b:ae: - e0:d2:56:f0:08:f6:d6:0e:1a:8d:5e:8b:06:b3:1e:14:6c:1b: - 72:e9:46:25:cb:97:b7:d5:4e:79:20:37:05:a4:51:8e:d4:40: - 3f:de:6f:c7:32:b8:28:2e:2a:08:c0:51:4e:32:1b:6c:c9:c0: - 03:b3:b6:3e:fd:46:1e:5b:b7:6f:ef:97:ae:df:03:e9:4e:64: - 39:94:fa:6f:65:71:11:dc:f7:4d:ed:48:c4:3d:7a:55:b8:c6: - f5:04:a4:d8:06:cd:c7:42:48:eb:d0:7a:4c:21:db:44:e7:c2: - 68:a7:45:9f:54:2c:15:71:b5:74:c6:bf:1b:3c:eb:78:89:6f: - 19:3a:69:02 + 43:f7:63:38:a3:30:3f:ab:e6:6c:42:a1:dd:ff:8d:f6:ad:b2: + eb:b6:9e:4b:bd:90:fc:d8:f4:f0:5a:42:fc:be:5b:cc:c7:24: + 2f:91:48:a6:a1:bb:a2:b7:19:61:21:ac:d3:81:ee:6e:bb:04: + 2d:16:b5:7e:cb:e6:a3:17:8f:3e:65:4d:1d:8d:c1:da:3d:3b: + ad:a1:b3:e8:f5:e3:16:13:17:0a:a3:45:e0:cf:84:b2:3d:e8: + 38:69:31:46:e8:8c:10:63:0f:5e:6b:f4:10:25:23:98:b8:5c: + d9:06:78:83:18:70:09:a6:ef:8f:e9:f5:ff:b3:44:85:35:f6: + 69:61:0b:2a:8d:de:87:1c:ec:dc:50:c7:67:ef:88:2c:28:de: + c0:db:6e:21:20:00:c5:5b:5d:ef:36:c6:0a:e9:06:a3:25:3e: + 4d:13:fa:f0:3f:bc:fe:9c:68:48:ff:ec:1b:e7:2c:39:ac:88: + 2b:a0:88:96:11:3e:f0:20:e2:29:fc:bd:d3:d3:ca:24:63:58: + 17:15:c3:ac:19:21:cb:21:29:fc:53:e7:3b:cf:c2:0a:5e:f4: + ce:f1:9e:77:38:d4:c6:90:4e:94:fe:2e:97:cb:1a:94:2a:1e: + 8c:3b:db:36:65:c6:19:ba:d7:0b:03:22:e5:92:e2:f6:3e:df: + 99:ce:6b:49 -----BEGIN CERTIFICATE----- MIIDxzCCAq+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBrMQswCQYDVQQGEwJVUzET MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G A1UECgwHVGVzdCBDQTEdMBsGA1UEAwwUVGVzdCBJbnRlcm1lZGlhdGUgQ0EwHhcN -MTYxMjA5MjI0MDA4WhcNMjYxMjA3MjI0MDA4WjBgMQswCQYDVQQGEwJVUzETMBEG +MTcwNjA1MTcxMDQ2WhcNMjcwNjAzMTcxMDQ2WjBgMQswCQYDVQQGEwJVUzETMBEG A1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UE CgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAv6NduPJt2obU1t0MoNvAmsQ7t5UGmhHXz43QHO+Z3Ird -h73ZDrkRaa+UVxGvi4YWCFnI/v6GuiYJ/vBRuhRDZMhlhR/LRDn2k1eYNPK/Bnc2 -AmrZmQT04l1/2+3yFF1IcrJbNLLf6lar04j2WETPQDP+ybW4w+JzWQ2m5slbkZJC -wfJYMRLgV1+UfHYt0qznwmKiiOiDz4ie7bpnCWG4H1ql4XTKhxg7XdDvwkX1JiUY -yprF92GbsPscBAoDWdeHxlFlO250dlDnwlIAWkVZji9pHYOueOUDZhU/e0KT8MUa -rZbk5wkxDk2XtZ6bY3jTDson0mQnksLeay5c8H942QIDAQABo4GAMH4wDAYDVR0T -AQH/BAIwADAdBgNVHQ4EFgQUGt46vxcJhwrQEmvJR9Kn6+1bBJkwHwYDVR0jBBgw -FoAU+ZghSXH6jbkg9/5dTUHoi2zgYsMwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG -AQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQELBQADggEBAIqs3hzS -yqez+CY0Lqe0734mCFv0eOw3SqgCyDfMRXzjvVzjhyTqTxrd9dej3i94auk6TYc6 -m3xcW1m0L54dbSmfYMDYt4cMS1mssw1cEU8kCU58hHIAjBK3hIqAkZdOIhfgX4P9 -l2xRswPAojz4niShwbcUoGsw6GK4hIdrruDSVvAI9tYOGo1eiwazHhRsG3LpRiXL -l7fVTnkgNwWkUY7UQD/eb8cyuCguKgjAUU4yG2zJwAOztj79Rh5bt2/vl67fA+lO -ZDmU+m9lcRHc903tSMQ9elW4xvUEpNgGzcdCSOvQekwh20TnwminRZ9ULBVxtXTG -vxs863iJbxk6aQI= +AAOCAQ8AMIIBCgKCAQEAtL/SlzPlE1t3Zb1zGnUom0dZ5rcw6EYzbVhb2h8K/+Tk +LfId+InoZC72w83Xo47X983n2A4Qw+dW0vzl5tNO4v+CTRhjh7Cj3trvCjd7rLW3 +Q87yBznfFOnDpEE+fmhHNJt7YcQY5hPOs7Sm4LoD7uTr56r0bb6XW6oGl1AB0Hi4 +1pKw5OK5Q4i1rhRkfVJw1AUcCSXV4k/JqILbQTHDvkRvC9T9v8Hu2WK/O4+1AMjR +311KE61x5Etf0dlyTIPYk0C/bM0vZg4E1rlDKCTJJf1ZcP498qkKTsKbxN6eV15d +FiXmeLZESSmd9r90+4XWDfFlWPIr1o8QScgALYjiLQIDAQABo4GAMH4wDAYDVR0T +AQH/BAIwADAdBgNVHQ4EFgQU4NzgLweIdDqf0zCjcYr51qXlplMwHwYDVR0jBBgw +FoAUF1xF89CsHBBMi0NEIMTdk8XFGTswHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG +AQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQELBQADggEBAEP3Yzij +MD+r5mxCod3/jfatsuu2nku9kPzY9PBaQvy+W8zHJC+RSKahu6K3GWEhrNOB7m67 +BC0WtX7L5qMXjz5lTR2Nwdo9O62hs+j14xYTFwqjReDPhLI96DhpMUbojBBjD15r +9BAlI5i4XNkGeIMYcAmm74/p9f+zRIU19mlhCyqN3occ7NxQx2fviCwo3sDbbiEg +AMVbXe82xgrpBqMlPk0T+vA/vP6caEj/7BvnLDmsiCugiJYRPvAg4in8vdPTyiRj +WBcVw6wZIcshKfxT5zvPwgpe9M7xnnc41MaQTpT+LpfLGpQqHow72zZlxhm61wsD +IuWS4vY+35nOa0k= -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/post_june_2016.pem b/net/data/ssl/certificates/post_june_2016.pem index 2046819..cc272ad 100644 --- a/net/data/ssl/certificates/post_june_2016.pem +++ b/net/data/ssl/certificates/post_june_2016.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 22 (0x16) + Serial Number: 23 (0x17) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Jun 1 00:00:00 2016 GMT Not After : Jul 3 00:00:00 2017 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:a0:2c:97:63:20:82:b4:59:56:80:66:89:38:1c: - 11:9e:5d:c0:e0:4f:15:07:93:aa:ca:1f:d5:e6:46: - 6f:50:1d:47:f3:28:a5:49:20:11:e4:8d:38:74:c1: - 6b:ed:95:bb:4e:60:f9:8b:d1:c9:7e:3a:2b:e6:ff: - 1a:6c:7c:3e:91:f8:2f:7a:52:ed:a8:9b:8f:fe:be: - ea:ed:cf:45:9d:33:0b:b6:f5:3b:eb:59:68:73:35: - 7e:47:e5:c9:2f:c7:5d:fb:bf:0d:f6:e6:09:50:6d: - 9a:45:3a:b1:b7:21:6c:ea:83:df:4d:7c:96:84:3a: - 1e:2e:22:d1:30:62:48:a5:d4:56:98:6b:77:7e:be: - 64:58:4a:18:b8:29:f5:f1:9c:3e:69:8d:33:ca:d5: - e1:7d:11:a5:8c:86:97:b3:8e:d2:fe:a0:3b:15:26: - 22:c9:72:ac:4d:02:25:4c:de:75:b2:6d:9c:a1:38: - 72:b9:84:f0:0e:83:71:6d:02:32:2b:13:cc:e9:fd: - 43:e4:e9:9c:a4:9c:b8:6a:81:d8:3b:5f:91:54:03: - 8c:fd:8e:e0:33:68:08:00:63:c7:c9:23:be:a2:50: - 94:85:88:d7:1c:23:19:1b:00:60:41:28:a8:a4:58: - db:0b:84:48:39:f7:4e:5a:77:dd:fd:90:e3:2e:a1: - a2:43 + 00:cc:24:fe:ba:05:d1:11:43:16:d3:95:5f:fa:79: + 1a:22:55:fc:43:d5:03:e2:c9:d3:32:53:bc:72:e3: + b6:b9:04:bd:3c:b4:04:55:64:a7:77:ef:ee:00:6e: + 5e:14:d5:a8:97:42:33:37:54:43:34:10:85:cd:10: + ad:b4:18:49:9c:a9:63:27:c4:bd:53:4a:39:45:ec: + 8b:88:8d:bf:b4:5f:fe:3e:1b:d5:ac:d1:23:fd:0c: + bd:09:3d:0c:8b:79:a0:89:b7:d6:16:73:07:b5:90: + 18:49:09:ed:80:26:19:e4:06:fb:71:16:97:f4:16: + 53:84:1b:33:92:22:08:c6:43:82:f5:02:d1:a1:4f: + a8:c8:97:46:e0:39:64:6d:b3:4c:e4:45:87:50:5f: + 37:aa:7a:de:00:58:bf:b3:68:31:5c:5d:5c:ab:e9: + 26:b7:06:4c:25:2f:42:63:d7:5a:ed:0f:45:59:8d: + fc:8a:ef:4f:16:b9:60:b4:bf:c6:a7:1a:50:53:3e: + 3b:0f:af:de:eb:12:da:80:c3:ca:bb:8f:03:74:d3: + fc:8a:e4:b2:7e:9a:d5:eb:74:9c:eb:c7:d5:79:6f: + 13:0e:ea:b9:5a:90:04:6b:e7:a0:39:fa:e0:ad:29: + 6d:2a:c7:3d:e6:06:70:a6:99:f7:4d:02:10:39:51: + 4a:13 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - E4:33:1D:DC:72:6A:BD:68:62:A5:08:96:78:ED:40:A6:4A:3D:D4:C6 + E3:14:30:A9:76:2F:F9:DE:0D:D7:82:DF:8A:8B:5A:FE:84:EF:65:49 X509v3 Authority Key Identifier: - keyid:43:43:FB:54:41:BE:07:E9:5B:E2:B9:75:97:6A:52:DE:F4:28:02:53 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 22:d0:60:a1:65:62:e8:7c:a8:58:87:5b:21:38:32:94:41:1e: - 39:9a:f0:4d:eb:9e:14:1c:61:53:5f:f4:f6:d7:d4:29:81:d6: - cc:67:ca:83:fc:e6:1e:31:bd:7f:89:76:d2:9e:26:1f:10:2e: - a4:61:33:24:a7:eb:ec:26:bb:20:c9:3b:d4:cb:9d:72:31:e0: - 23:13:b0:5d:d9:df:c9:49:50:84:29:2f:01:31:83:3c:13:6d: - d7:81:27:d2:2e:34:26:e8:ae:0d:99:03:31:71:de:e3:16:aa: - 09:32:79:52:cf:d3:75:e5:0d:ed:a7:99:6c:9c:98:93:72:a2: - 3d:3e:93:52:51:cd:76:60:a6:d0:b9:52:ec:02:cc:41:9e:5d: - 66:be:5c:9b:3c:81:e5:9a:17:13:c2:be:2c:c6:ac:26:4e:18: - 84:a2:12:8a:87:78:61:6c:46:2d:a9:93:8c:e9:f5:7b:a9:f7: - c5:58:00:8c:29:eb:23:e6:bf:93:58:f2:f9:7d:79:2b:51:6d: - c4:ff:22:3f:67:ab:b6:c7:97:47:98:f8:ef:4d:02:e9:25:0a: - 34:7d:52:35:5d:72:47:0a:e4:b9:6a:25:41:ab:9a:b1:1c:00: - f0:5b:a9:09:2e:12:43:1c:9a:03:9c:61:2c:b9:e8:a3:f1:e6: - eb:3e:ee:d9 + 6a:ca:b3:de:fd:7e:b9:3c:8a:ad:4e:e6:a3:40:f1:c4:10:5e: + d5:72:9f:ca:6b:ea:de:c3:d6:48:38:59:72:cc:77:b9:c1:9e: + 7f:a4:02:4f:57:ad:bd:4f:d5:66:a7:82:f3:85:ea:6a:b5:e8: + eb:21:a5:bc:cd:89:43:97:50:54:44:5e:b4:e8:98:98:0d:b1: + 12:69:d3:62:ae:77:0e:1b:3c:02:93:29:49:96:e2:7b:9f:c8: + 58:84:f3:a0:bb:26:99:71:80:c6:2e:99:4c:00:4f:90:08:e2: + e3:cf:9d:f1:71:40:a0:78:8f:dd:e1:ea:28:74:4e:83:3e:60: + 20:45:d4:68:28:cc:55:0d:d7:4e:7e:48:a7:aa:f4:fa:20:b8: + 74:76:f5:49:f6:e3:2c:e8:3f:f3:2e:84:a9:81:ce:4e:b9:87: + 5f:2e:fd:12:8a:ca:fb:53:46:b5:2d:16:57:fd:ca:64:5e:77: + 26:48:f6:52:29:70:a1:67:c2:5c:10:13:07:5a:1b:d5:9f:38: + 19:5c:d8:a1:e3:1b:09:3b:ff:56:fd:7d:57:74:5f:9c:14:92: + b3:3e:8f:f6:0b:f0:f5:25:4f:0b:05:de:ad:87:9a:4f:e4:b7: + b4:2d:de:31:2c:14:49:bf:ef:0a:0c:b6:4f:1e:53:d4:50:23: + c7:b4:78:66 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBFjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTYwNjAxMDAwMDAwWhcNMTcwNzAzMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoCyXYyCCtFlWgGaJOBwRnl3A4E8V -B5Oqyh/V5kZvUB1H8yilSSAR5I04dMFr7ZW7TmD5i9HJfjor5v8abHw+kfgvelLt -qJuP/r7q7c9FnTMLtvU761loczV+R+XJL8dd+78N9uYJUG2aRTqxtyFs6oPfTXyW -hDoeLiLRMGJIpdRWmGt3fr5kWEoYuCn18Zw+aY0zytXhfRGljIaXs47S/qA7FSYi -yXKsTQIlTN51sm2coThyuYTwDoNxbQIyKxPM6f1D5OmcpJy4aoHYO1+RVAOM/Y7g -M2gIAGPHySO+olCUhYjXHCMZGwBgQSiopFjbC4RIOfdOWnfd/ZDjLqGiQwIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU5DMd3HJqvWhipQiWeO1Apko9 -1MYwHwYDVR0jBBgwFoAUQ0P7VEG+B+lb4rl1l2pS3vQoAlMwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBACLQYKFlYuh8qFiHWyE4MpRBHjma8E3rnhQcYVNf9PbX1CmB1sxnyoP8 -5h4xvX+JdtKeJh8QLqRhMySn6+wmuyDJO9TLnXIx4CMTsF3Z38lJUIQpLwExgzwT -bdeBJ9IuNCborg2ZAzFx3uMWqgkyeVLP03XlDe2nmWycmJNyoj0+k1JRzXZgptC5 -UuwCzEGeXWa+XJs8geWaFxPCvizGrCZOGISiEoqHeGFsRi2pk4zp9Xup98VYAIwp -6yPmv5NY8vl9eStRbcT/Ij9nq7bHl0eY+O9NAuklCjR9UjVdckcK5LlqJUGrmrEc -APBbqQkuEkMcmgOcYSy56KPx5us+7tk= +MIIDvzCCAqegAwIBAgIBFzANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE2MDYwMTAw +MDAwMFoXDTE3MDcwMzAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAMwk/roF0RFDFtOVX/p5GiJV/EPVA+LJ0zJTvHLjtrkEvTy0BFVkp3fv +7gBuXhTVqJdCMzdUQzQQhc0QrbQYSZypYyfEvVNKOUXsi4iNv7Rf/j4b1azRI/0M +vQk9DIt5oIm31hZzB7WQGEkJ7YAmGeQG+3EWl/QWU4QbM5IiCMZDgvUC0aFPqMiX +RuA5ZG2zTORFh1BfN6p63gBYv7NoMVxdXKvpJrcGTCUvQmPXWu0PRVmN/IrvTxa5 +YLS/xqcaUFM+Ow+v3usS2oDDyruPA3TT/Irksn6a1et0nOvH1XlvEw7quVqQBGvn +oDn64K0pbSrHPeYGcKaZ900CEDlRShMCAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFOMUMKl2L/neDdeC34qLWv6E72VJMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQBqyrPe/X65PIqtTuaj +QPHEEF7Vcp/Ka+rew9ZIOFlyzHe5wZ5/pAJPV629T9Vmp4LzhepqtejrIaW8zYlD +l1BURF606JiYDbESadNirncOGzwCkylJluJ7n8hYhPOguyaZcYDGLplMAE+QCOLj +z53xcUCgeI/d4eoodE6DPmAgRdRoKMxVDddOfkinqvT6ILh0dvVJ9uMs6D/zLoSp +gc5OuYdfLv0Sisr7U0a1LRZX/cpkXncmSPZSKXChZ8JcEBMHWhvVnzgZXNih4xsJ +O/9W/X1XdF+cFJKzPo/2C/D1JU8LBd6th5pP5Le0Ld4xLBRJv+8KDLZPHlPUUCPH +tHhm -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/pre_br_validity_bad_121.pem b/net/data/ssl/certificates/pre_br_validity_bad_121.pem index 2c84c2ba..2bf5369b 100644 --- a/net/data/ssl/certificates/pre_br_validity_bad_121.pem +++ b/net/data/ssl/certificates/pre_br_validity_bad_121.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 10 (0xa) + Serial Number: 20 (0x14) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Jan 1 00:00:00 2008 GMT Not After : May 1 00:00:00 2018 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:e0:4b:de:53:9a:c3:32:75:8a:df:91:7b:fa:47: - 88:9c:d5:ac:88:6e:84:21:65:07:96:c6:0b:09:f9: - 16:b6:3b:1b:ae:9f:3e:48:8b:ac:ef:2e:71:38:3a: - f9:21:b0:71:61:cd:1f:0f:fa:cc:48:d0:f4:2a:0f: - 82:90:3a:e5:f4:c5:12:d7:8e:d5:fb:9c:28:82:8e: - 49:2a:1f:38:81:21:ca:df:79:30:5d:33:ce:d4:20: - 1a:22:65:25:72:fe:72:9b:a2:56:50:c9:4f:cb:ed: - 75:18:be:1e:7d:c6:62:26:a8:9d:2d:1a:a4:ab:02: - c2:1d:da:a7:dd:06:6a:0b:f2:97:91:27:dc:f0:c5: - a0:5c:17:fd:18:71:a6:c4:1f:71:27:01:9f:4d:ee: - 77:64:51:4d:28:fc:f8:bb:8a:ab:ca:97:f4:ae:58: - 89:c0:3a:20:0c:d6:6b:56:c2:ff:d7:b1:6b:78:c8: - 2f:4f:46:67:a3:37:7f:66:8b:6b:4d:8d:35:c2:d0: - f1:7b:d7:b8:f2:b0:75:e6:b8:77:bc:16:38:4d:83: - ab:36:3d:48:e2:28:02:a3:35:88:53:aa:e8:01:a0: - a1:2c:99:b1:9d:92:fe:9e:eb:a1:84:90:f5:32:0e: - ff:a2:64:c5:12:7c:8b:57:40:75:bd:e7:81:c0:83: - e2:35 + 00:9f:eb:e4:9c:a0:87:13:91:5c:dd:4b:ca:0d:15: + 66:ba:86:05:e4:f7:32:b3:ea:9b:57:9f:77:a6:52: + 39:7d:62:4f:c8:f4:24:c9:47:8d:1f:0a:a2:ce:13: + 90:a1:27:ab:4d:7d:ca:66:64:44:7b:5c:82:00:b0: + 3a:2f:da:ab:d3:f8:c1:22:09:49:3d:26:96:59:25: + ec:58:9f:2e:82:82:63:6e:dc:4a:87:ad:fd:c1:ef: + 44:34:a5:9d:d2:48:25:ca:f5:20:3f:e3:2b:6d:9a: + b7:d1:c5:e9:53:7f:f0:ab:b0:29:5a:1e:a1:8b:fb: + 6a:b8:99:5b:61:7f:ca:4d:5c:b9:50:5d:f2:52:de: + ec:06:62:e3:ff:95:2c:51:04:2c:95:6c:56:cf:a1: + 2d:78:be:7c:a2:a7:53:1f:52:96:e1:a2:cc:72:c2: + e6:a4:62:da:e8:94:2a:3b:e0:25:f0:6c:d2:a5:16: + ba:1f:75:52:8a:5e:7b:4d:0a:79:c9:14:bf:dc:ac: + 8c:d3:03:01:fe:05:8b:00:e8:17:f7:11:9b:ca:f8: + d4:80:58:7f:77:4b:f4:17:87:5f:f4:98:a4:1b:3c: + 8c:c8:a4:1d:26:02:4a:24:b5:e8:7c:e0:38:bc:e8: + 90:d5:fa:91:6a:3d:97:7c:ed:f5:22:f3:29:3d:3d: + c5:33 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 0F:E1:A5:2E:CA:40:B3:BF:40:51:3A:6B:85:09:E2:D1:00:8F:7D:25 + 09:3A:F7:03:5A:79:7A:04:12:F8:DA:B6:8D:5F:90:7F:FD:9D:EE:67 X509v3 Authority Key Identifier: - keyid:EE:54:52:3A:28:73:20:9D:56:2D:2A:98:F4:9C:B1:7D:FB:C5:22:47 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 35:f9:a3:c9:fb:f1:1d:52:2e:ce:a4:a6:f3:2a:eb:ec:19:39: - fd:4a:c6:ca:f4:2a:b1:cc:c5:62:8e:51:89:ec:8b:2c:11:87: - a6:df:7b:ad:5d:91:e0:ed:86:71:4c:89:1f:fa:cd:0d:08:02: - cb:c1:74:e4:80:c5:80:48:fb:63:63:c1:f7:c4:71:9b:ea:b6: - 0e:6b:4f:e3:89:f5:fd:77:a3:fb:50:d1:bc:ec:64:a1:04:f7: - e8:e9:5d:57:fd:14:67:1c:19:25:a4:3e:90:31:0a:32:09:46: - c7:de:ca:f3:b7:47:d8:bd:5f:e3:45:4f:a9:37:8f:76:d1:bb: - 0c:a0:3a:70:49:32:a6:ba:35:49:70:2a:cb:c3:b4:02:25:6d: - 99:f9:4e:ff:49:d9:a0:b4:f5:fb:a5:bf:36:a5:c9:44:29:9a: - f8:82:3d:9e:bb:92:33:84:e7:77:7c:26:de:8d:00:78:a8:1b: - bd:e8:61:1b:ff:c2:b6:63:97:73:8a:ae:fe:23:07:58:fe:1c: - 28:70:83:0c:c3:dc:e2:15:4e:2a:a8:9c:79:ba:5b:a1:66:cb: - 7e:52:61:3a:a7:57:3b:70:1f:6a:e5:b2:57:61:00:be:d0:04: - c3:61:aa:50:40:52:a5:c8:8d:b9:3a:a6:48:72:70:21:af:ba: - fd:86:8d:57 + 38:14:a7:3c:63:ee:dd:f9:f5:9e:55:09:97:55:fc:3e:2d:09: + f8:45:20:c0:05:9c:cd:96:87:f6:2d:d6:e0:9b:34:b8:16:03: + 40:39:1c:a5:02:c9:01:9d:2d:bb:52:f2:65:45:94:49:43:a0: + 1a:2f:26:c3:5d:cf:41:66:be:02:0b:37:0b:4e:66:3b:66:13: + 7f:10:8e:8b:6a:84:4e:50:ec:f0:0c:26:4d:dc:4d:2e:93:4b: + 19:98:18:12:2d:80:dd:55:12:d4:41:6c:53:50:2f:d7:4e:da: + fd:0c:5a:fc:f6:fc:02:30:3f:72:8c:2a:34:1e:9c:0c:96:3f: + 1f:54:79:97:d4:97:7b:81:bc:5b:22:42:0c:dd:6b:3a:04:30: + 7b:71:35:df:9b:32:95:86:07:2d:15:ef:a7:1e:8b:ec:fc:27: + 49:29:fd:a1:7f:01:88:13:6f:5d:8f:6b:be:21:57:2d:5a:c3: + cd:30:46:f6:5e:2b:ca:ce:48:f8:5b:ba:f6:40:97:31:c6:c3: + ea:31:55:64:9a:8b:93:6c:cb:e5:0e:f7:3d:f2:13:8e:bb:1e: + 39:09:3e:62:0a:d7:2c:c9:5c:35:db:8b:d7:e6:c8:27:f3:09: + e0:3f:e4:98:8d:e5:db:2c:d6:8b:9f:85:24:4f:15:98:af:86: + 85:b6:13:1f -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMDgwMTAxMDAwMDAwWhcNMTgwNTAxMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4EveU5rDMnWK35F7+keInNWsiG6E -IWUHlsYLCfkWtjsbrp8+SIus7y5xODr5IbBxYc0fD/rMSND0Kg+CkDrl9MUS147V -+5wogo5JKh84gSHK33kwXTPO1CAaImUlcv5ym6JWUMlPy+11GL4efcZiJqidLRqk -qwLCHdqn3QZqC/KXkSfc8MWgXBf9GHGmxB9xJwGfTe53ZFFNKPz4u4qrypf0rliJ -wDogDNZrVsL/17FreMgvT0Znozd/ZotrTY01wtDxe9e48rB15rh3vBY4TYOrNj1I -4igCozWIU6roAaChLJmxnZL+nuuhhJD1Mg7/omTFEnyLV0B1veeBwIPiNQIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUD+GlLspAs79AUTprhQni0QCP -fSUwHwYDVR0jBBgwFoAU7lRSOihzIJ1WLSqY9JyxffvFIkcwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBADX5o8n78R1SLs6kpvMq6+wZOf1Kxsr0KrHMxWKOUYnsiywRh6bfe61d -keDthnFMiR/6zQ0IAsvBdOSAxYBI+2NjwffEcZvqtg5rT+OJ9f13o/tQ0bzsZKEE -9+jpXVf9FGccGSWkPpAxCjIJRsfeyvO3R9i9X+NFT6k3j3bRuwygOnBJMqa6NUlw -KsvDtAIlbZn5Tv9J2aC09fulvzalyUQpmviCPZ67kjOE53d8Jt6NAHioG73oYRv/ -wrZjl3OKrv4jB1j+HChwgwzD3OIVTiqonHm6W6Fmy35SYTqnVztwH2rlsldhAL7Q -BMNhqlBAUqXIjbk6pkhycCGvuv2GjVc= +MIIDvzCCAqegAwIBAgIBFDANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTA4MDEwMTAw +MDAwMFoXDTE4MDUwMTAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAJ/r5JyghxORXN1Lyg0VZrqGBeT3MrPqm1efd6ZSOX1iT8j0JMlHjR8K +os4TkKEnq019ymZkRHtcggCwOi/aq9P4wSIJST0mllkl7FifLoKCY27cSoet/cHv +RDSlndJIJcr1ID/jK22at9HF6VN/8KuwKVoeoYv7ariZW2F/yk1cuVBd8lLe7AZi +4/+VLFEELJVsVs+hLXi+fKKnUx9SluGizHLC5qRi2uiUKjvgJfBs0qUWuh91Uope +e00KeckUv9ysjNMDAf4FiwDoF/cRm8r41IBYf3dL9BeHX/SYpBs8jMikHSYCSiS1 +6HzgOLzokNX6kWo9l3zt9SLzKT09xTMCAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFAk69wNaeXoEEvjato1fkH/9ne5nMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQA4FKc8Y+7d+fWeVQmX +Vfw+LQn4RSDABZzNlof2LdbgmzS4FgNAORylAskBnS27UvJlRZRJQ6AaLybDXc9B +Zr4CCzcLTmY7ZhN/EI6LaoROUOzwDCZN3E0uk0sZmBgSLYDdVRLUQWxTUC/XTtr9 +DFr89vwCMD9yjCo0HpwMlj8fVHmX1Jd7gbxbIkIM3Ws6BDB7cTXfmzKVhgctFe+n +Hovs/CdJKf2hfwGIE29dj2u+IVctWsPNMEb2XivKzkj4W7r2QJcxxsPqMVVkmouT +bMvlDvc98hOOux45CT5iCtcsyVw124vX5sgn8wngP+SYjeXbLNaLn4UkTxWYr4aF +thMf -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/pre_br_validity_bad_2020.pem b/net/data/ssl/certificates/pre_br_validity_bad_2020.pem index 2a4de2d..10a08549 100644 --- a/net/data/ssl/certificates/pre_br_validity_bad_2020.pem +++ b/net/data/ssl/certificates/pre_br_validity_bad_2020.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 11 (0xb) + Serial Number: 21 (0x15) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: May 1 00:00:00 2012 GMT Not After : Jul 3 00:00:00 2019 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:ac:f5:76:f7:0e:a7:1b:fd:50:52:81:ae:bb:59: - c5:21:00:6f:a4:ef:ca:e0:12:78:4a:f6:78:fc:8a: - c8:d4:76:37:15:9e:7f:46:83:f3:c7:57:fa:ec:79: - c4:51:4e:b5:76:09:07:2d:91:5d:7f:25:95:fa:98: - 59:66:84:b4:a3:01:be:3c:cd:2a:71:9e:83:82:94: - 4b:28:33:af:0a:57:a0:16:28:8f:9a:2b:7b:50:0c: - e0:0e:3f:58:49:09:70:c5:99:17:ae:df:e0:83:98: - 09:0a:a8:a7:d6:ca:b4:86:49:03:86:f5:76:b5:0f: - 8a:a8:f2:b9:d3:f5:a5:32:b1:e8:50:5a:cf:45:7a: - b9:81:26:08:69:24:d0:ac:ea:27:c4:69:0e:65:45: - 0f:cc:d4:b4:81:81:d0:e0:52:04:17:3e:74:fd:be: - 3b:de:29:11:41:7d:91:19:45:03:1a:8b:f9:93:ac: - 61:91:ce:4d:da:b2:1b:b1:2e:14:20:c3:44:78:17: - 70:1c:1e:cd:e2:86:bf:e4:63:b9:cb:aa:fa:1c:ae: - 63:4a:fe:a4:df:71:e7:ad:49:40:97:75:d4:b0:90: - eb:9b:d1:92:07:a8:f1:b7:29:77:d7:17:c9:e6:55: - 5d:26:85:09:03:e9:b2:96:18:97:c6:7f:f7:1c:f9: - 2d:a7 + 00:e8:84:db:5e:7d:ea:ce:7c:36:6f:2c:8b:48:0a: + c4:c3:48:44:4a:75:7d:85:c0:86:c3:77:ed:55:4b: + 0d:0c:62:9f:90:5b:56:8f:db:80:a5:64:4c:b9:fa: + 64:9f:93:1e:bd:b5:bf:94:04:52:fa:9a:db:87:d1: + 9a:19:da:d4:5e:47:36:31:24:3e:62:60:34:34:d9: + 17:6e:89:14:04:f2:98:32:19:70:f4:5a:2a:a0:26: + 90:26:f6:5a:e4:a7:ad:23:d8:18:a3:bd:a0:a3:d5: + e0:de:fb:81:28:39:c4:b9:65:f7:5c:6e:ae:82:ef: + cd:14:75:53:45:31:de:1f:dd:61:de:ff:2d:11:7e: + 23:b6:bc:c1:d8:71:71:0c:14:af:d2:03:b2:38:35: + 83:39:48:d3:c4:a2:0c:76:c2:93:a7:de:78:56:db: + 27:67:92:a1:29:d7:aa:ed:25:27:9e:3e:17:aa:10: + 2a:10:d4:e2:db:43:cc:64:99:78:63:85:78:f6:e1: + 1e:c7:9a:a2:e2:98:8f:e9:10:93:3e:06:db:14:70: + fb:21:7f:6d:16:a6:13:e2:54:59:eb:66:75:26:e6: + 60:12:c1:51:6c:63:7a:1a:cf:18:52:dc:db:a0:7d: + 2d:92:ad:f1:4f:e5:2c:1c:14:81:1a:db:63:6a:2f: + 75:b1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - A2:3D:78:98:07:E9:84:62:82:AF:66:FF:8F:00:F4:9F:79:AA:EB:A5 + A6:5C:B0:9B:17:D4:01:25:77:C5:1A:B6:E6:A2:D8:53:1D:18:93:6C X509v3 Authority Key Identifier: - keyid:EE:54:52:3A:28:73:20:9D:56:2D:2A:98:F4:9C:B1:7D:FB:C5:22:47 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 3b:66:76:fa:c8:d3:a1:14:64:26:5b:e5:36:6c:e3:5f:53:fd: - dd:50:9e:01:36:2a:3a:08:ec:bc:1e:76:b5:fd:5f:39:a8:79: - a8:a7:9f:f0:8d:48:ba:d1:af:77:ed:bf:3a:1b:35:b7:ff:90: - 1a:09:74:bf:1b:15:19:33:8b:f3:a8:61:da:c7:d0:fe:76:52: - 15:5a:cf:a5:3d:c7:fc:05:c7:d2:e3:38:d3:ea:19:46:5b:94: - 8e:75:aa:6e:ab:f3:64:47:7d:f5:65:93:68:54:a5:97:dc:f8: - 1e:f5:fa:f4:8f:47:f6:d8:c5:85:67:6f:03:2f:82:67:0c:6f: - 35:2a:e2:f3:c8:56:be:8f:59:3a:6a:fc:0a:e1:40:dc:28:53: - d0:1f:60:d1:2b:2c:a9:88:f3:82:63:67:1e:79:4e:0b:d5:90: - 69:9e:91:af:57:9a:fc:db:5c:44:84:0e:dc:05:f7:91:ec:16: - 9a:ad:b0:48:62:c5:3c:c0:ca:7f:43:06:34:ae:50:a0:2e:90: - fa:21:2b:14:1f:be:51:c3:4f:c6:c4:9e:60:e4:b7:1c:82:f1: - ef:9f:97:0c:bc:4a:90:86:35:90:da:e4:e7:83:80:8b:7c:7e: - 82:89:cc:c3:67:90:42:30:7e:c1:ba:b0:59:ae:f5:29:88:75: - 16:ff:df:2f + 47:a5:c1:c8:64:68:17:77:f1:42:e1:2a:ae:0d:0a:6d:17:04: + a8:72:aa:7b:0a:46:ee:62:f1:61:28:f5:84:c5:f7:d0:fd:81: + 41:dc:77:b9:80:2d:24:35:c3:2f:86:ba:74:3b:48:3f:be:59: + 60:92:11:e8:57:0d:fa:7b:ef:a8:21:20:0d:77:27:c7:5d:51: + b3:03:06:a0:9b:5a:12:67:49:65:64:9c:b2:68:fe:1a:50:2e: + a9:f6:dd:d2:a5:07:a8:b1:24:65:71:1b:d6:1b:23:c6:7c:28: + 24:5e:df:1c:56:1d:0b:c5:dd:bb:07:5a:d2:86:55:df:76:95: + 19:b7:72:53:cb:1d:97:42:3b:7e:c5:98:24:46:73:4e:6d:81: + c8:b5:3e:8c:12:ec:6e:a5:51:a5:fa:0d:10:b8:39:4a:dd:26: + 51:b1:7d:4d:c6:c7:a7:6d:8d:aa:d8:19:da:c0:a0:d7:6d:5f: + 71:97:8e:16:1f:2a:6f:0b:3d:73:2d:60:1d:9f:07:4f:17:65: + 26:d9:c5:d6:9d:04:d9:b0:b9:b0:02:48:63:4e:fd:43:ac:7b: + 5c:87:80:e8:14:9d:59:fc:f8:a6:af:87:30:52:6d:c9:ab:23: + b7:88:9a:19:0f:38:a1:fe:78:90:34:1c:a4:19:48:c7:55:01: + 65:28:69:1b -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCzANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTIwNTAxMDAwMDAwWhcNMTkwNzAzMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArPV29w6nG/1QUoGuu1nFIQBvpO/K -4BJ4SvZ4/IrI1HY3FZ5/RoPzx1f67HnEUU61dgkHLZFdfyWV+phZZoS0owG+PM0q -cZ6DgpRLKDOvClegFiiPmit7UAzgDj9YSQlwxZkXrt/gg5gJCqin1sq0hkkDhvV2 -tQ+KqPK50/WlMrHoUFrPRXq5gSYIaSTQrOonxGkOZUUPzNS0gYHQ4FIEFz50/b47 -3ikRQX2RGUUDGov5k6xhkc5N2rIbsS4UIMNEeBdwHB7N4oa/5GO5y6r6HK5jSv6k -33HnrUlAl3XUsJDrm9GSB6jxtyl31xfJ5lVdJoUJA+mylhiXxn/3HPktpwIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUoj14mAfphGKCr2b/jwD0n3mq -66UwHwYDVR0jBBgwFoAU7lRSOihzIJ1WLSqY9JyxffvFIkcwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBADtmdvrI06EUZCZb5TZs419T/d1QngE2KjoI7LwedrX9Xzmoeainn/CN -SLrRr3ftvzobNbf/kBoJdL8bFRkzi/OoYdrH0P52UhVaz6U9x/wFx9LjONPqGUZb -lI51qm6r82RHffVlk2hUpZfc+B71+vSPR/bYxYVnbwMvgmcMbzUq4vPIVr6PWTpq -/ArhQNwoU9AfYNErLKmI84JjZx55TgvVkGmeka9XmvzbXESEDtwF95HsFpqtsEhi -xTzAyn9DBjSuUKAukPohKxQfvlHDT8bEnmDktxyC8e+flwy8SpCGNZDa5OeDgIt8 -foKJzMNnkEIwfsG6sFmu9SmIdRb/3y8= +MIIDvzCCAqegAwIBAgIBFTANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTEyMDUwMTAw +MDAwMFoXDTE5MDcwMzAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAOiE21596s58Nm8si0gKxMNIREp1fYXAhsN37VVLDQxin5BbVo/bgKVk +TLn6ZJ+THr21v5QEUvqa24fRmhna1F5HNjEkPmJgNDTZF26JFATymDIZcPRaKqAm +kCb2WuSnrSPYGKO9oKPV4N77gSg5xLll91xuroLvzRR1U0Ux3h/dYd7/LRF+I7a8 +wdhxcQwUr9IDsjg1gzlI08SiDHbCk6feeFbbJ2eSoSnXqu0lJ54+F6oQKhDU4ttD +zGSZeGOFePbhHseaouKYj+kQkz4G2xRw+yF/bRamE+JUWetmdSbmYBLBUWxjehrP +GFLc26B9LZKt8U/lLBwUgRrbY2ovdbECAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFKZcsJsX1AEld8Uatuai2FMdGJNsMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQBHpcHIZGgXd/FC4Squ +DQptFwSocqp7CkbuYvFhKPWExffQ/YFB3He5gC0kNcMvhrp0O0g/vllgkhHoVw36 +e++oISANdyfHXVGzAwagm1oSZ0llZJyyaP4aUC6p9t3SpQeosSRlcRvWGyPGfCgk +Xt8cVh0Lxd27B1rShlXfdpUZt3JTyx2XQjt+xZgkRnNObYHItT6MEuxupVGl+g0Q +uDlK3SZRsX1NxsenbY2q2BnawKDXbV9xl44WHypvCz1zLWAdnwdPF2Um2cXWnQTZ +sLmwAkhjTv1DrHtch4DoFJ1Z/Pimr4cwUm3JqyO3iJoZDzih/niQNBykGUjHVQFl +KGkb -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/pre_br_validity_ok.pem b/net/data/ssl/certificates/pre_br_validity_ok.pem index 5d082ee..cac2a9f0 100644 --- a/net/data/ssl/certificates/pre_br_validity_ok.pem +++ b/net/data/ssl/certificates/pre_br_validity_ok.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 9 (0x9) + Serial Number: 19 (0x13) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Jan 1 00:00:00 2008 GMT Not After : Jan 1 00:00:00 2015 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:bc:a2:44:c7:c5:c4:bb:e2:fd:d2:1f:17:f4:3d: - 87:62:65:37:f8:87:78:97:75:04:b3:28:ca:1c:03: - f8:76:9c:07:36:0c:67:35:fa:90:cc:31:73:d3:ec: - b6:d9:a2:38:7b:94:00:59:23:2e:c4:f7:fd:ea:6d: - 67:ce:fe:7b:87:40:d3:14:74:71:3e:94:50:0e:3f: - 24:e5:83:fc:6a:c4:35:56:b9:a4:22:f0:84:6d:c7: - ce:f1:19:ad:89:51:c7:c8:d4:c0:97:1b:86:64:d2: - c7:04:cf:a3:9e:5d:6f:ed:ea:2e:08:ad:26:39:c7: - 1d:bb:29:4a:c0:4e:50:e7:8f:25:65:e2:fb:fe:4f: - ea:62:3f:b4:70:91:1b:f3:cc:24:83:12:c2:38:5b: - 5e:ef:bc:c4:23:b8:d5:35:14:63:5f:b3:c1:f1:ad: - 35:ea:4d:0f:14:b8:a4:b1:19:c1:31:81:b0:8f:4a: - b3:a9:60:c1:2b:f1:2c:0c:d6:a0:52:d9:e8:a5:78: - d3:0b:b2:6e:88:bb:8d:36:07:2f:2d:d3:71:9d:87: - ca:58:41:18:e9:06:17:ee:a5:bf:35:31:81:b2:2b: - ee:af:92:10:64:22:88:38:3d:1b:08:80:59:ce:97: - 62:5e:cb:d1:fa:59:d7:b9:fd:40:42:41:b1:14:47: - c4:0b + 00:c9:a8:08:1a:b3:09:5d:20:f4:ee:7b:73:0d:56: + 82:3d:da:d7:f3:e4:94:34:04:1f:d1:bf:8f:7b:ac: + d8:ec:4b:b3:d2:da:ba:47:3d:19:12:cb:1d:12:ff: + dd:64:8b:d3:97:9f:56:80:b5:35:00:fa:fb:56:20: + 2c:96:d6:e5:73:87:30:72:98:11:ea:87:fa:35:cd: + 70:a9:f5:a2:16:b0:6d:64:d6:68:3e:4d:a5:fc:b8: + ec:d7:6e:9a:33:84:88:d7:50:ab:7f:2e:37:52:c4: + 21:80:6b:8e:4c:dc:95:c5:9e:a5:dd:46:c6:f0:6d: + bd:d6:03:d0:8b:5a:3c:4b:07:61:90:bb:4e:0b:58: + e5:be:1d:96:e7:66:03:12:96:6c:e7:e4:73:49:10: + 20:db:74:3d:ca:bd:c2:4d:47:46:4e:2f:1e:cc:09: + b7:0a:61:14:a0:b7:7a:0c:f1:5e:15:e8:87:4a:b8: + 3f:42:a3:73:8e:00:f5:81:e2:b9:1e:6a:b3:11:3e: + f9:84:0e:e8:59:17:fd:dd:8e:af:e2:88:09:88:43: + f6:89:15:af:91:36:b4:f8:b9:9f:a5:75:a1:39:21: + ad:03:fd:c0:60:c5:e7:aa:e3:4e:c3:bf:01:f8:e7: + 6b:dd:f7:7a:da:26:12:3c:d7:64:28:2e:da:36:d6: + fa:0b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - E4:F4:EF:17:AA:96:3F:12:62:E0:E2:FA:98:88:AF:B4:E5:74:4E:4C + FB:DF:D4:89:A2:A9:E0:BE:B0:E3:FC:AD:C9:F9:80:85:3C:30:B5:81 X509v3 Authority Key Identifier: - keyid:EE:54:52:3A:28:73:20:9D:56:2D:2A:98:F4:9C:B1:7D:FB:C5:22:47 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 79:7d:93:8b:4b:3f:7f:02:9b:5c:c2:6e:a6:0c:2a:16:75:79: - ee:a6:15:e4:54:e0:3a:20:b7:62:52:1c:85:ae:03:5a:bb:9a: - 3d:1f:f4:19:af:79:92:c2:e0:78:38:6d:42:39:75:07:ba:07: - 6f:7c:5a:50:32:10:3b:68:f9:da:c4:a8:07:56:3f:71:ec:6e: - 65:dc:20:0f:ab:c3:0b:4f:55:15:9e:94:4e:98:c9:f9:d7:6a: - f5:e4:49:5d:1d:ba:1f:b9:16:26:b5:6f:2b:e7:52:39:b9:aa: - 60:58:c3:b9:eb:c5:20:92:a1:cb:a7:06:8f:1f:41:35:b6:c9: - a5:7e:9c:ba:77:f6:b3:92:47:ba:57:e2:b3:e5:02:6a:d1:e3: - 52:d6:35:8b:8c:47:d0:f9:2e:ad:9b:14:43:11:81:f1:c7:38: - b0:3e:cc:3b:ca:39:e8:83:01:e4:fb:c9:ff:bb:6b:96:3a:22: - e0:4d:d8:06:b8:56:8a:b5:f8:84:12:68:ae:c7:05:00:d3:d7: - 1f:3d:89:f4:c9:27:68:be:d0:07:cc:c7:d3:eb:d5:60:e3:c2: - 2a:85:4b:cb:53:5c:d2:92:f6:ef:63:34:f0:a0:1e:40:9b:78: - 0d:2a:2c:df:36:9c:26:3a:16:82:39:36:5f:d3:5b:ba:24:8c: - b0:18:a7:d1 + 4f:9f:49:7d:21:55:a4:d8:63:0c:79:2f:4a:62:cf:31:b9:94: + 18:e8:27:e3:de:73:53:19:0b:c0:cd:d0:35:89:40:a9:29:4c: + 64:2f:ae:77:4a:2d:b7:7a:1c:d7:8b:40:8b:5a:44:98:db:83: + 22:28:e7:4b:cc:4b:6d:49:a3:e4:23:ee:ae:73:c9:37:06:7b: + 12:c9:83:ef:50:64:bd:71:5b:01:9c:ff:5e:e9:86:91:51:a3: + f4:6e:15:07:4f:23:46:82:d7:11:95:79:e7:9c:9c:bb:10:90: + f5:da:9a:4e:6f:2a:b5:f5:68:ed:6c:a5:f1:69:6d:f6:aa:6d: + 02:df:10:c2:b1:7b:35:1d:20:9f:61:85:cb:81:9f:e7:aa:36: + 12:7a:f0:a3:31:29:a7:b4:a9:62:66:d6:2d:4d:3f:d8:9f:5c: + 1b:e2:06:31:37:92:51:a7:3f:5d:91:1b:45:c5:4b:be:b2:d8: + b9:59:f6:4d:45:52:af:d4:d0:db:f2:85:01:9b:fa:cf:1b:54: + 85:7c:79:3a:3f:f5:a8:b1:e9:d7:41:21:0b:d0:48:03:d0:ba: + ee:4d:cf:1e:df:f5:57:25:d9:1f:dc:34:4f:7b:f7:68:b3:65: + aa:e3:0f:50:e8:1f:0e:50:1a:c8:48:22:6b:bc:a1:ae:cc:b3: + 72:94:c2:24 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCTANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMDgwMTAxMDAwMDAwWhcNMTUwMTAxMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvKJEx8XEu+L90h8X9D2HYmU3+Id4 -l3UEsyjKHAP4dpwHNgxnNfqQzDFz0+y22aI4e5QAWSMuxPf96m1nzv57h0DTFHRx -PpRQDj8k5YP8asQ1VrmkIvCEbcfO8RmtiVHHyNTAlxuGZNLHBM+jnl1v7eouCK0m -OccduylKwE5Q548lZeL7/k/qYj+0cJEb88wkgxLCOFte77zEI7jVNRRjX7PB8a01 -6k0PFLiksRnBMYGwj0qzqWDBK/EsDNagUtnopXjTC7JuiLuNNgcvLdNxnYfKWEEY -6QYX7qW/NTGBsivur5IQZCKIOD0bCIBZzpdiXsvR+lnXuf1AQkGxFEfECwIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU5PTvF6qWPxJi4OL6mIivtOV0 -TkwwHwYDVR0jBBgwFoAU7lRSOihzIJ1WLSqY9JyxffvFIkcwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAHl9k4tLP38Cm1zCbqYMKhZ1ee6mFeRU4Dogt2JSHIWuA1q7mj0f9Bmv -eZLC4Hg4bUI5dQe6B298WlAyEDto+drEqAdWP3HsbmXcIA+rwwtPVRWelE6YyfnX -avXkSV0duh+5Fia1byvnUjm5qmBYw7nrxSCSocunBo8fQTW2yaV+nLp39rOSR7pX -4rPlAmrR41LWNYuMR9D5Lq2bFEMRgfHHOLA+zDvKOeiDAeT7yf+7a5Y6IuBN2Aa4 -Voq1+IQSaK7HBQDT1x89ifTJJ2i+0AfMx9Pr1WDjwiqFS8tTXNKS9u9jNPCgHkCb -eA0qLN82nCY6FoI5Nl/TW7okjLAYp9E= +MIIDvzCCAqegAwIBAgIBEzANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTA4MDEwMTAw +MDAwMFoXDTE1MDEwMTAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAMmoCBqzCV0g9O57cw1Wgj3a1/PklDQEH9G/j3us2OxLs9Laukc9GRLL +HRL/3WSL05efVoC1NQD6+1YgLJbW5XOHMHKYEeqH+jXNcKn1ohawbWTWaD5Npfy4 +7NdumjOEiNdQq38uN1LEIYBrjkzclcWepd1GxvBtvdYD0ItaPEsHYZC7TgtY5b4d +ludmAxKWbOfkc0kQINt0Pcq9wk1HRk4vHswJtwphFKC3egzxXhXoh0q4P0Kjc44A +9YHiuR5qsxE++YQO6FkX/d2Or+KICYhD9okVr5E2tPi5n6V1oTkhrQP9wGDF56rj +TsO/Afjna933etomEjzXZCgu2jbW+gsCAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFPvf1ImiqeC+sOP8rcn5gIU8MLWBMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQBPn0l9IVWk2GMMeS9K +Ys8xuZQY6Cfj3nNTGQvAzdA1iUCpKUxkL653Si23ehzXi0CLWkSY24MiKOdLzEtt +SaPkI+6uc8k3BnsSyYPvUGS9cVsBnP9e6YaRUaP0bhUHTyNGgtcRlXnnnJy7EJD1 +2ppObyq19WjtbKXxaW32qm0C3xDCsXs1HSCfYYXLgZ/nqjYSevCjMSmntKliZtYt +TT/Yn1wb4gYxN5JRpz9dkRtFxUu+sti5WfZNRVKv1NDb8oUBm/rPG1SFfHk6P/Wo +senXQSEL0EgD0LruTc8e3/VXJdkf3DRPe/dos2Wq4w9Q6B8OUBrISCJrvKGuzLNy +lMIk -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/pre_june_2016.pem b/net/data/ssl/certificates/pre_june_2016.pem index 8018703..10d5aef 100644 --- a/net/data/ssl/certificates/pre_june_2016.pem +++ b/net/data/ssl/certificates/pre_june_2016.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 21 (0x15) + Serial Number: 22 (0x16) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: May 1 00:00:00 2016 GMT Not After : Jul 3 00:00:00 2017 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:b6:24:4c:22:10:05:0c:31:f6:ff:fa:4f:2f:bb: - d2:24:7a:b0:a3:a7:6a:95:94:13:be:50:9e:2a:6e: - 79:bf:79:42:7c:b4:18:9c:d3:df:45:05:12:0f:df: - e9:e7:92:0c:be:1a:32:81:87:de:28:a2:23:e0:6d: - 11:3b:28:ee:a8:00:ec:72:e5:10:c2:a0:21:57:e9: - 29:1d:12:6b:3a:64:4c:85:89:ba:27:9a:71:de:e8: - 5a:6b:e2:0c:10:f0:f1:27:36:ce:b8:7e:b5:c3:cb: - fa:37:2b:a7:bc:ee:d1:89:0a:cd:a5:de:d8:cd:ee: - 0b:9b:ee:76:64:83:d6:f3:73:a0:fd:47:cf:84:e6: - 0d:7e:fd:4f:42:a5:ca:af:d8:0d:00:f6:0e:52:09: - 26:be:57:f1:25:3a:1d:df:4a:c2:bf:c9:9d:43:13: - 49:cc:4c:4d:3e:e1:6d:5e:6e:7a:6c:92:01:2f:d7: - 97:1b:5d:6b:9d:bb:a4:cd:b6:21:76:e9:41:97:29: - 8d:a8:97:27:fe:30:8c:ca:39:62:60:c2:ca:d7:a4: - 34:07:62:68:32:5f:3c:52:92:31:f8:2f:59:32:dd: - d7:7a:04:7d:3b:37:06:b9:44:b0:04:81:21:36:41: - 29:c4:b0:be:c7:87:d1:02:40:79:9d:6d:a9:1f:41: - fa:d5 + 00:b7:cf:66:d4:a6:c7:91:a5:b9:1e:8a:91:cf:51: + 54:07:f4:c2:a9:8e:ca:88:1f:51:cf:70:e2:93:07: + ff:17:9b:cf:ae:88:85:3d:ab:f6:66:be:ac:d5:ea: + 61:d7:54:86:36:12:dd:98:8c:bc:3a:86:54:f0:08: + d3:84:18:ab:ed:11:1a:41:1c:9f:cd:ec:97:8f:22: + 5a:f1:cb:d3:c0:bb:c2:ac:45:d4:bd:aa:ab:b3:ac: + ea:5b:da:20:24:e7:9e:03:97:3e:a4:c6:c1:ba:b4: + c4:69:6f:9d:7e:81:3d:58:96:80:0c:91:de:71:9f: + d8:24:73:8e:8b:f0:64:be:4e:9b:c4:3a:c1:9c:ef: + 3c:05:06:c7:a7:ba:34:1b:ff:d7:87:96:00:30:db: + 6d:74:f2:ae:f4:cb:a6:9e:b9:42:8a:58:6d:3e:e7: + 54:11:2e:b8:12:5a:c9:c1:21:d4:a1:c7:ce:5e:3e: + c5:75:03:38:7a:8d:20:13:ef:d8:f8:a4:9c:1e:04: + 7b:28:b0:d1:24:e1:14:d3:ff:18:2a:de:a0:c8:00: + 47:80:9a:86:c9:3d:0a:48:d8:0c:63:df:7b:1b:f3: + b6:d5:b8:14:1d:7a:40:eb:06:7c:23:b1:77:ab:1a: + 60:a2:36:7f:0a:e3:9b:75:01:11:7d:af:29:5b:7b: + f8:21 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - A0:47:EE:7C:C6:CD:E0:DB:3C:82:9B:C6:9E:59:AD:67:65:21:CA:31 + D5:17:E7:68:DB:E1:51:CE:A3:7C:B7:76:EE:CD:89:C1:33:1E:98:86 X509v3 Authority Key Identifier: - keyid:43:43:FB:54:41:BE:07:E9:5B:E2:B9:75:97:6A:52:DE:F4:28:02:53 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - b2:27:20:1e:81:14:5b:25:ac:5e:f9:14:14:72:46:b9:0f:a0: - f8:fa:cd:58:13:19:e4:a5:ef:f3:2c:6a:c4:2f:9b:dd:d6:91: - 79:d0:94:a7:4c:96:fc:e4:e1:6f:1e:da:3c:15:02:d3:8f:12: - 3f:c0:e4:49:3a:e2:cc:89:dd:5e:cc:28:86:6d:ba:b5:b9:dd: - 06:83:3a:63:fb:9d:6e:29:15:5f:30:eb:7a:fe:8c:2d:cb:22: - e9:c7:5c:09:a8:ce:d0:9b:65:47:bc:8e:6a:e8:88:dd:14:bd: - 74:eb:72:b5:3b:fb:ff:5e:3a:78:c2:48:5a:55:1a:1c:0e:29: - 06:af:9e:c1:55:ce:16:d0:c7:c5:7f:95:7a:6c:e7:1a:f4:a8: - 7a:b2:ae:ad:b7:b5:90:c5:62:e7:dd:69:ec:a7:19:ec:6c:c5: - 54:18:9c:2e:f0:79:6e:e6:b5:85:dd:24:05:8d:5f:c1:33:01: - 96:b1:37:99:1e:df:42:e4:e5:cf:b1:f9:ea:49:c3:2e:a1:f6: - ce:20:19:5b:fd:5a:f6:ef:53:de:19:77:2b:04:df:bb:b9:cb: - 3b:c6:74:bd:40:9f:57:44:2a:d0:75:30:ca:e4:c7:7b:22:18: - 73:d4:5a:e9:81:d8:76:85:29:8e:83:13:13:a2:61:ad:b1:12: - 23:71:35:d9 + 94:67:c8:ba:c7:18:21:a5:11:8c:39:e6:d2:17:47:a5:ac:04: + ce:88:a4:86:9d:a7:a9:3f:e2:fc:54:13:28:b3:4d:a4:04:96: + 21:cc:d1:3f:d2:94:fe:d3:bb:99:49:41:4d:2b:fc:61:be:a1: + 3c:01:88:03:1b:62:c6:5f:f8:ae:20:70:ba:82:65:50:10:ef: + f3:1e:7b:cd:76:c3:a2:77:b9:6f:28:13:3e:6e:76:57:2b:8a: + eb:4e:21:86:9d:f2:98:c9:89:f0:bd:c4:2c:62:e9:bd:3b:1f: + 50:ee:0f:94:65:9f:16:04:1f:27:18:a4:fc:7b:7c:b5:16:72: + 56:a2:dc:6c:6a:04:e8:45:03:82:d6:f5:54:9e:b2:59:f8:a2: + 8a:8b:77:ef:a3:ab:b2:b9:2b:a3:a6:40:45:b0:f3:48:3f:4b: + 18:d2:8d:49:45:ab:a8:34:46:c9:70:9d:02:75:3b:7e:27:9f: + 11:69:0a:fa:46:25:3e:e0:17:24:32:12:c2:2a:a9:4a:a2:d5: + 8e:62:b9:2d:3e:75:f9:d0:84:cd:e3:cb:45:16:81:3b:5a:80: + 7c:d9:96:78:76:9f:df:ae:93:61:8e:b8:31:28:d6:a2:6c:80: + 86:67:06:33:1b:71:7d:73:62:df:fc:e1:6c:01:b4:6d:73:19: + 50:fe:1e:47 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBFTANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTYwNTAxMDAwMDAwWhcNMTcwNzAzMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtiRMIhAFDDH2//pPL7vSJHqwo6dq -lZQTvlCeKm55v3lCfLQYnNPfRQUSD9/p55IMvhoygYfeKKIj4G0ROyjuqADscuUQ -wqAhV+kpHRJrOmRMhYm6J5px3uhaa+IMEPDxJzbOuH61w8v6NyunvO7RiQrNpd7Y -ze4Lm+52ZIPW83Og/UfPhOYNfv1PQqXKr9gNAPYOUgkmvlfxJTod30rCv8mdQxNJ -zExNPuFtXm56bJIBL9eXG11rnbukzbYhdulBlymNqJcn/jCMyjliYMLK16Q0B2Jo -Ml88UpIx+C9ZMt3XegR9OzcGuUSwBIEhNkEpxLC+x4fRAkB5nW2pH0H61QIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUoEfufMbN4Ns8gpvGnlmtZ2Uh -yjEwHwYDVR0jBBgwFoAUQ0P7VEG+B+lb4rl1l2pS3vQoAlMwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBALInIB6BFFslrF75FBRyRrkPoPj6zVgTGeSl7/MsasQvm93WkXnQlKdM -lvzk4W8e2jwVAtOPEj/A5Ek64syJ3V7MKIZturW53QaDOmP7nW4pFV8w63r+jC3L -IunHXAmoztCbZUe8jmroiN0UvXTrcrU7+/9eOnjCSFpVGhwOKQavnsFVzhbQx8V/ -lXps5xr0qHqyrq23tZDFYufdaeynGexsxVQYnC7weW7mtYXdJAWNX8EzAZaxN5ke -30Lk5c+x+epJwy6h9s4gGVv9WvbvU94ZdysE37u5yzvGdL1An1dEKtB1MMrkx3si -GHPUWumB2HaFKY6DExOiYa2xEiNxNdk= +MIIDvzCCAqegAwIBAgIBFjANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE2MDUwMTAw +MDAwMFoXDTE3MDcwMzAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALfPZtSmx5GluR6Kkc9RVAf0wqmOyogfUc9w4pMH/xebz66IhT2r9ma+ +rNXqYddUhjYS3ZiMvDqGVPAI04QYq+0RGkEcn83sl48iWvHL08C7wqxF1L2qq7Os +6lvaICTnngOXPqTGwbq0xGlvnX6BPViWgAyR3nGf2CRzjovwZL5Om8Q6wZzvPAUG +x6e6NBv/14eWADDbbXTyrvTLpp65QopYbT7nVBEuuBJaycEh1KHHzl4+xXUDOHqN +IBPv2PiknB4Eeyiw0SThFNP/GCreoMgAR4Cahsk9CkjYDGPfexvzttW4FB16QOsG +fCOxd6saYKI2fwrjm3UBEX2vKVt7+CECAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFNUX52jb4VHOo3y3du7NicEzHpiGMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQCUZ8i6xxghpRGMOebS +F0elrATOiKSGnaepP+L8VBMos02kBJYhzNE/0pT+07uZSUFNK/xhvqE8AYgDG2LG +X/iuIHC6gmVQEO/zHnvNdsOid7lvKBM+bnZXK4rrTiGGnfKYyYnwvcQsYum9Ox9Q +7g+UZZ8WBB8nGKT8e3y1FnJWotxsagToRQOC1vVUnrJZ+KKKi3fvo6uyuSujpkBF +sPNIP0sY0o1JRauoNEbJcJ0CdTt+J58RaQr6RiU+4BckMhLCKqlKotWOYrktPnX5 +0ITN48tFFoE7WoB82ZZ4dp/frpNhjrgxKNaibICGZwYzG3F9c2Lf/OFsAbRtcxlQ +/h5H -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/punycodetest.pem b/net/data/ssl/certificates/punycodetest.pem index 6a16f6f..8b7fe73 100644 --- a/net/data/ssl/certificates/punycodetest.pem +++ b/net/data/ssl/certificates/punycodetest.pem
@@ -1,35 +1,35 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 17530995897422524617 (0xf34a9be2b0b330c9) + Serial Number: 10431067552074120060 (0x90c298ac257b3b7c) Signature Algorithm: sha256WithRSAEncryption Issuer: CN=xn--wgv71a119e.com Validity - Not Before: Aug 25 23:35:52 2014 GMT - Not After : Aug 22 23:35:52 2024 GMT + Not Before: Jun 5 17:10:47 2017 GMT + Not After : Jun 3 17:10:47 2027 GMT Subject: CN=xn--wgv71a119e.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:cd:fe:21:97:48:33:2f:76:4b:e8:8f:07:40:41: - 0f:64:0f:77:29:a5:85:ad:86:44:eb:8d:29:23:b5: - b5:56:b4:09:fc:59:35:ff:d0:df:fe:01:f5:e5:c6: - c6:ee:8e:33:45:fd:fd:a6:d4:ad:e0:7b:cf:fd:5a: - 8d:89:c0:87:bc:b9:5c:dd:19:16:d4:7d:1b:48:c0: - 29:d6:7f:ff:c7:4f:22:e9:35:32:ee:7e:75:ad:99: - e6:ae:73:d6:fa:db:ec:ba:7b:13:b2:6d:5e:fb:31: - 63:6a:7f:80:9b:6f:ab:02:ff:dd:8e:a8:dd:f7:74: - f7:67:1e:e7:53:07:b2:b2:55:a8:6b:df:24:5a:b1: - 8a:35:f1:5b:ea:a3:28:fe:d7:53:44:50:c6:b4:8b: - 2d:c8:6d:71:4a:43:57:0b:81:66:82:65:f6:db:4b: - 32:40:e9:43:3a:e0:aa:f5:7c:62:d8:7a:7e:21:c9: - 0f:da:90:11:2c:14:16:6a:2d:fd:8e:f3:cf:4a:ed: - 6f:45:23:cb:04:56:95:e9:9e:91:cf:93:bf:ef:6c: - 57:1c:c0:64:37:76:7a:38:5d:94:4c:1d:79:e8:63: - a4:80:ea:51:f6:28:37:d2:6f:3c:70:b9:97:32:79: - c2:18:94:66:f3:19:f3:ac:0f:a0:2f:a0:66:9d:d3: - 0e:37 + 00:c7:8e:c3:54:a1:02:4a:e0:97:7a:13:a3:42:57: + 03:9e:f5:1e:61:69:35:f3:be:f8:92:2d:fe:47:5e: + 0d:dc:7d:b8:79:bb:ce:7d:dd:ce:45:82:ff:ce:23: + 56:0d:b3:08:ef:ab:67:02:50:6d:e6:dc:83:e1:9e: + a9:ac:5b:6a:6d:bd:b1:ef:78:d5:5c:4d:1f:d0:47: + d9:b3:d8:d0:5c:ad:fc:76:ac:7f:f7:33:b3:a0:bc: + 99:3f:b7:8b:e1:ca:d7:98:78:d4:aa:10:1a:9a:1a: + 84:f8:a9:fe:34:96:75:66:1c:36:5f:2d:8d:12:bf: + 7e:24:7c:87:b3:d5:f4:07:73:d6:b8:e2:a0:f1:11: + fe:6b:37:0a:cb:0f:e4:23:b3:67:77:3c:16:72:af: + c5:11:62:18:1d:9e:be:f9:ce:62:29:91:2e:7f:2f: + c5:ee:de:98:ef:f8:43:97:cc:65:92:87:4f:70:5d: + 62:23:f2:22:dc:48:e1:7c:9e:97:e5:d3:84:27:93: + 37:d6:45:ea:e3:1d:de:9f:06:b5:99:2d:2a:70:ab: + 76:34:95:7d:3d:43:9f:c8:35:5b:06:cf:94:d9:7c: + ed:cf:a3:b3:0b:f1:ad:b6:9d:cd:44:17:61:c8:97: + 7a:26:10:4b:fd:ae:6d:11:a9:87:cc:14:eb:24:32: + eb:9d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical @@ -37,37 +37,37 @@ X509v3 Subject Alternative Name: DNS:xn--wgv71a119e.com, DNS:*.xn--wgv71a119e.com, DNS:blahblahblahblah.com Signature Algorithm: sha256WithRSAEncryption - 7d:29:70:ce:ec:60:99:30:82:c4:ba:c3:cc:72:f8:3b:bf:e3: - 5c:0d:45:7a:23:d5:85:a9:db:a9:f4:fc:11:0d:59:d5:3e:f0: - b0:a6:db:82:dd:88:61:d1:17:6a:a9:a7:64:b0:0b:fd:b6:d6: - d5:ba:4d:83:72:c8:a1:b5:5b:a3:fb:17:78:14:86:58:09:2d: - 35:1e:a8:19:75:25:55:38:e5:8d:74:2a:c5:fd:11:95:43:41: - a7:d8:1b:50:b7:5a:20:39:8e:bd:06:28:4a:d6:d3:28:3d:1d: - 46:cc:64:9b:0b:1e:12:c8:64:1a:b5:b8:6f:99:46:78:ca:e3: - c1:1f:0c:72:6b:38:e2:7f:86:87:14:0b:13:d1:9b:64:50:d4: - c1:e6:36:5e:c0:66:29:3d:e4:61:7b:d0:e2:94:8f:60:d6:91: - 4a:31:36:f0:e6:70:75:9f:02:f3:d6:90:6a:12:10:a8:35:0e: - ab:70:a7:c6:3a:21:e7:c2:ec:b4:42:1f:b5:43:eb:93:b8:60: - ee:93:a3:17:aa:e3:23:2a:34:74:9d:b1:91:78:82:8f:6b:85: - 6e:94:9d:00:4f:65:85:de:c9:30:e2:22:6e:60:7a:c6:98:7e: - 8f:76:3f:2c:18:09:4b:91:95:53:67:66:c0:44:1e:9e:0a:a1: - c1:71:87:9e + c4:81:b1:91:37:f7:df:1e:a4:56:f6:03:95:4c:67:2d:b9:a3: + ed:e0:2c:37:2d:bd:d1:6a:9e:a2:c4:66:3b:f8:7c:5a:cb:ec: + 57:64:e6:1d:20:85:cc:24:99:33:9c:cd:38:0e:03:c4:13:f6: + b4:c6:d1:ea:6c:bd:34:1b:71:24:15:35:20:be:87:a0:97:0e: + 32:42:24:18:b8:8b:0f:15:da:73:42:0e:d7:fa:b9:7a:1b:a9: + 3e:71:64:a0:12:36:91:1f:5f:ae:0d:c4:26:22:fb:19:11:b6: + 75:92:1e:f4:ef:79:68:ef:9b:fc:3a:a6:11:9d:aa:9e:11:64: + 74:54:ba:80:a0:b9:3b:28:f9:3d:54:95:25:da:54:8e:38:47: + 6a:b0:d5:ec:33:a6:3c:b7:60:86:c9:03:ee:7d:5e:3f:c5:f1: + e8:4c:1d:4a:20:be:02:43:bd:e2:cc:4c:c6:13:2a:4a:b8:80: + 67:98:7b:5f:ae:3b:48:16:ba:46:da:a1:0e:88:22:85:f9:48: + 1b:04:64:0f:09:a5:89:1e:4f:ca:ce:39:60:27:f3:ea:ee:29: + ff:27:58:88:ad:eb:1d:ac:6a:46:a5:66:a3:43:e9:7f:ce:01: + 8a:33:31:a2:fc:64:26:9b:e9:0e:a9:af:76:be:b7:d9:59:6a: + 71:15:b4:fb -----BEGIN CERTIFICATE----- -MIIDGzCCAgOgAwIBAgIJAPNKm+KwszDJMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNV -BAMMEnhuLS13Z3Y3MWExMTllLmNvbTAeFw0xNDA4MjUyMzM1NTJaFw0yNDA4MjIy -MzM1NTJaMB0xGzAZBgNVBAMMEnhuLS13Z3Y3MWExMTllLmNvbTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAM3+IZdIMy92S+iPB0BBD2QPdymlha2GROuN -KSO1tVa0CfxZNf/Q3/4B9eXGxu6OM0X9/abUreB7z/1ajYnAh7y5XN0ZFtR9G0jA -KdZ//8dPIuk1Mu5+da2Z5q5z1vrb7Lp7E7JtXvsxY2p/gJtvqwL/3Y6o3fd092ce -51MHsrJVqGvfJFqxijXxW+qjKP7XU0RQxrSLLchtcUpDVwuBZoJl9ttLMkDpQzrg -qvV8Yth6fiHJD9qQESwUFmot/Y7zz0rtb0UjywRWlemekc+Tv+9sVxzAZDd2ejhd -lEwdeehjpIDqUfYoN9JvPHC5lzJ5whiUZvMZ86wPoC+gZp3TDjcCAwEAAaNeMFww +MIIDGzCCAgOgAwIBAgIJAJDCmKwlezt8MA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNV +BAMMEnhuLS13Z3Y3MWExMTllLmNvbTAeFw0xNzA2MDUxNzEwNDdaFw0yNzA2MDMx +NzEwNDdaMB0xGzAZBgNVBAMMEnhuLS13Z3Y3MWExMTllLmNvbTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMeOw1ShAkrgl3oTo0JXA571HmFpNfO++JIt +/kdeDdx9uHm7zn3dzkWC/84jVg2zCO+rZwJQbebcg+Geqaxbam29se941VxNH9BH +2bPY0Fyt/Hasf/czs6C8mT+3i+HK15h41KoQGpoahPip/jSWdWYcNl8tjRK/fiR8 +h7PV9Adz1rjioPER/ms3CssP5COzZ3c8FnKvxRFiGB2evvnOYimRLn8vxe7emO/4 +Q5fMZZKHT3BdYiPyItxI4Xyel+XThCeTN9ZF6uMd3p8GtZktKnCrdjSVfT1Dn8g1 +WwbPlNl87c+jswvxrbadzUQXYciXeiYQS/2ubRGph8wU6yQy650CAwEAAaNeMFww DwYDVR0TAQH/BAUwAwEB/zBJBgNVHREEQjBAghJ4bi0td2d2NzFhMTE5ZS5jb22C FCoueG4tLXdndjcxYTExOWUuY29tghRibGFoYmxhaGJsYWhibGFoLmNvbTANBgkq -hkiG9w0BAQsFAAOCAQEAfSlwzuxgmTCCxLrDzHL4O7/jXA1FeiPVhanbqfT8EQ1Z -1T7wsKbbgt2IYdEXaqmnZLAL/bbW1bpNg3LIobVbo/sXeBSGWAktNR6oGXUlVTjl -jXQqxf0RlUNBp9gbULdaIDmOvQYoStbTKD0dRsxkmwseEshkGrW4b5lGeMrjwR8M -cms44n+GhxQLE9GbZFDUweY2XsBmKT3kYXvQ4pSPYNaRSjE28OZwdZ8C89aQahIQ -qDUOq3Cnxjoh58LstEIftUPrk7hg7pOjF6rjIyo0dJ2xkXiCj2uFbpSdAE9lhd7J -MOIibmB6xph+j3Y/LBgJS5GVU2dmwEQengqhwXGHng== +hkiG9w0BAQsFAAOCAQEAxIGxkTf33x6kVvYDlUxnLbmj7eAsNy290WqeosRmO/h8 +WsvsV2TmHSCFzCSZM5zNOA4DxBP2tMbR6my9NBtxJBU1IL6HoJcOMkIkGLiLDxXa +c0IO1/q5ehupPnFkoBI2kR9frg3EJiL7GRG2dZIe9O95aO+b/DqmEZ2qnhFkdFS6 +gKC5Oyj5PVSVJdpUjjhHarDV7DOmPLdghskD7n1eP8Xx6EwdSiC+AkO94sxMxhMq +SriAZ5h7X647SBa6RtqhDogihflIGwRkDwmliR5Pys45YCfz6u4p/ydYiK3rHaxq +RqVmo0Ppf84BijMxovxkJpvpDqmvdr632VlqcRW0+w== -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/reject_intranet_hosts.pem b/net/data/ssl/certificates/reject_intranet_hosts.pem index e2d43b7..a6b3f64fae 100644 --- a/net/data/ssl/certificates/reject_intranet_hosts.pem +++ b/net/data/ssl/certificates/reject_intranet_hosts.pem
@@ -1,69 +1,69 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 11446371030079207460 (0x9ed9adce6f317824) + Serial Number: 15572396188146182397 (0xd81c43d3b819a8fd) Signature Algorithm: sha256WithRSAEncryption Issuer: CN=webmail Validity - Not Before: Mar 1 03:41:00 2017 GMT - Not After : Feb 29 03:41:00 2020 GMT + Not Before: Jun 5 17:10:47 2017 GMT + Not After : Jun 4 17:10:47 2020 GMT Subject: CN=webmail Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:be:3d:d3:32:19:9f:d4:0f:b8:fa:83:0d:4d:77: - 6a:00:b6:cc:16:45:70:45:a1:1b:29:2c:6b:43:82: - 29:9c:f9:9c:b5:37:e5:a8:3b:f8:b9:fa:96:df:7b: - a9:a0:fc:a4:cf:19:49:e7:c3:2b:94:a0:02:d8:5c: - 17:f3:84:ec:8b:0c:1b:d6:cd:30:36:d1:41:35:46: - c7:a9:62:73:2a:84:de:cf:59:51:8e:92:38:4a:af: - f6:e0:7e:db:9e:19:7a:d0:8c:79:c8:4d:53:8c:6d: - 41:4c:04:b9:08:84:c8:81:eb:6b:65:ac:65:8d:d1: - 26:a9:31:3a:61:34:2e:70:91:da:c7:98:ff:73:de: - 95:7a:bf:90:6f:a5:94:d7:6f:e0:10:4b:79:ee:44: - 4b:a3:46:d1:9b:7d:14:77:7f:9d:74:6f:6c:a4:a7: - 8f:53:be:1f:fd:28:e8:c1:a7:03:11:57:fc:cb:08: - d0:96:cd:41:66:cb:4f:e2:9e:22:d3:96:4b:97:f8: - a9:a2:34:58:f3:95:50:59:fd:7f:c9:11:d4:1c:f1: - af:b8:fd:35:55:86:5e:13:bf:e7:60:8f:90:76:50: - c5:ef:06:95:88:b7:99:2e:1d:07:8f:4b:57:9f:5f: - 8d:f3:10:76:75:f0:72:0d:9e:48:0b:4e:d9:34:d0: - 49:05 + 00:ea:65:9e:eb:22:3a:b0:1c:eb:57:da:85:42:7e: + 2a:3d:f7:a7:54:b5:81:19:71:c3:b5:ae:ee:7e:85: + 1a:7a:23:61:76:3b:4e:bc:a6:a6:7f:e7:3d:b5:4b: + b8:d3:c9:df:d2:a2:36:11:9f:9f:bc:36:19:87:4c: + 43:89:c1:b3:0e:2c:bd:36:d7:d3:a4:00:52:06:01: + fb:a8:99:49:5c:46:bc:2b:9c:52:6e:b6:d0:e8:7d: + 4a:e6:a3:d3:e0:d9:f4:cf:e5:67:e7:37:51:fc:d5: + 5f:03:70:9c:b0:4b:c9:f4:db:91:42:86:40:60:73: + d8:7d:38:f1:e4:a8:16:93:e2:83:0f:03:52:9b:9c: + d0:d0:6d:3d:be:04:9c:14:21:b0:e5:97:c9:02:9e: + 92:34:2d:02:70:0a:74:21:91:1d:f7:cd:27:49:7f: + 93:48:5d:7a:02:d9:00:bd:3f:ab:ce:0c:96:3f:a5: + b0:04:93:b9:14:62:5b:c4:8d:ee:3e:bc:2d:aa:a7: + b5:ca:54:58:98:3f:a3:41:d4:e8:87:08:02:7d:89: + bf:2a:83:ae:ba:92:22:8e:19:3c:55:6b:f8:f4:53: + c3:03:e9:14:1d:5c:80:e1:71:5f:6a:2e:51:cf:d2: + 2d:2a:5d:50:58:03:06:70:be:1e:6e:d5:e0:2b:b2: + 7d:9d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: DNS:webmail Signature Algorithm: sha256WithRSAEncryption - 10:c1:6c:f1:d6:5c:a7:94:c6:dd:9d:e4:2c:9b:1a:1a:59:84: - 35:32:b3:7f:57:d6:4c:01:fa:ed:78:44:ec:2c:cf:2c:72:31: - a8:95:c9:50:0d:a5:fe:4c:68:ce:21:b5:bc:4c:a0:b2:84:39: - 33:24:f8:92:05:9f:ea:c4:0e:31:22:85:27:e4:2a:8a:66:b3: - 05:96:60:97:0c:2c:86:69:76:ef:ac:15:4f:36:ac:5a:bd:11: - 69:30:c3:a8:7e:f4:23:ca:7e:3d:83:0f:8b:35:bd:56:d0:5f: - fc:fa:98:9e:45:54:04:d3:0a:43:3d:b7:01:ca:0b:4b:5c:61: - 34:fe:af:f1:8b:c0:bc:0a:b5:dd:52:e6:c2:81:53:c9:ce:fc: - 39:f4:1a:45:a6:f6:9a:06:eb:57:d9:bb:5e:94:43:98:7f:96: - 33:1d:5f:9b:c5:73:68:86:96:8f:65:8f:be:b7:f2:c5:8f:f0: - 0e:7f:63:67:9d:58:1d:d9:cb:fc:78:a0:74:e7:06:94:12:80: - 03:ab:0a:32:8c:1e:5e:ba:28:a7:eb:ed:3b:55:80:54:38:5b: - 85:d8:e8:dd:de:51:11:42:7a:20:ef:b7:9f:25:d3:5a:4b:e2: - e3:84:36:94:e3:69:aa:c7:bf:22:14:0e:da:a8:da:13:89:c3: - 6e:7e:8c:32 + 69:b0:cd:3e:65:2f:da:f6:0f:13:e8:ba:91:0d:c6:1a:4c:71: + 5a:4f:b6:2a:4d:87:29:53:7b:9d:53:c1:fb:bc:46:be:13:34: + 68:0f:57:6d:85:85:93:5f:69:74:ea:3d:34:8c:bc:c2:64:8e: + 59:e0:53:d8:ac:35:64:c3:77:19:d6:dd:4d:cc:b9:f3:9e:fb: + d7:d8:78:7b:5a:d2:aa:01:72:89:73:a1:a5:b2:75:01:ba:04: + 33:65:4f:eb:37:d4:41:3b:9c:3f:7a:d6:22:61:e6:fe:8d:92: + cf:f1:e0:70:ad:58:2f:5c:37:0c:69:1c:bf:05:f7:ec:9b:cb: + 87:eb:bd:8d:13:45:bf:ac:3c:80:d7:e4:f1:bd:40:50:dc:25: + 98:4f:50:13:8c:65:bc:c9:5f:62:33:c3:b6:13:34:22:d2:18: + c5:80:77:bb:46:44:68:33:b3:50:f2:dc:de:5a:03:b3:9c:e9: + f5:15:65:29:55:56:10:cd:bd:c7:54:59:9e:4a:1a:3b:9c:64: + d5:1e:fb:fa:26:d7:ba:5d:14:59:3a:3a:8e:61:98:4e:41:24: + 4c:c3:a0:25:26:f8:16:ba:d9:22:51:54:69:1e:a4:cf:d9:21: + 30:de:3a:09:31:55:d5:bd:3d:ab:2f:c0:37:c6:78:54:df:38: + 8c:02:bb:70 -----BEGIN CERTIFICATE----- -MIICvTCCAaWgAwIBAgIJAJ7Zrc5vMXgkMA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNV -BAMMB3dlYm1haWwwHhcNMTcwMzAxMDM0MTAwWhcNMjAwMjI5MDM0MTAwWjASMRAw +MIICvTCCAaWgAwIBAgIJANgcQ9O4Gaj9MA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNV +BAMMB3dlYm1haWwwHhcNMTcwNjA1MTcxMDQ3WhcNMjAwNjA0MTcxMDQ3WjASMRAw DgYDVQQDDAd3ZWJtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -vj3TMhmf1A+4+oMNTXdqALbMFkVwRaEbKSxrQ4IpnPmctTflqDv4ufqW33upoPyk -zxlJ58MrlKAC2FwX84Tsiwwb1s0wNtFBNUbHqWJzKoTez1lRjpI4Sq/24H7bnhl6 -0Ix5yE1TjG1BTAS5CITIgetrZaxljdEmqTE6YTQucJHax5j/c96Ver+Qb6WU12/g -EEt57kRLo0bRm30Ud3+ddG9spKePU74f/SjowacDEVf8ywjQls1BZstP4p4i05ZL -l/ipojRY85VQWf1/yRHUHPGvuP01VYZeE7/nYI+QdlDF7waViLeZLh0Hj0tXn1+N -8xB2dfByDZ5IC07ZNNBJBQIDAQABoxYwFDASBgNVHREECzAJggd3ZWJtYWlsMA0G -CSqGSIb3DQEBCwUAA4IBAQAQwWzx1lynlMbdneQsmxoaWYQ1MrN/V9ZMAfrteETs -LM8scjGolclQDaX+TGjOIbW8TKCyhDkzJPiSBZ/qxA4xIoUn5CqKZrMFlmCXDCyG -aXbvrBVPNqxavRFpMMOofvQjyn49gw+LNb1W0F/8+pieRVQE0wpDPbcBygtLXGE0 -/q/xi8C8CrXdUubCgVPJzvw59BpFpvaaButX2btelEOYf5YzHV+bxXNohpaPZY++ -t/LFj/AOf2NnnVgd2cv8eKB05waUEoADqwoyjB5euiin6+07VYBUOFuF2Ojd3lER -Qnog77efJdNaS+LjhDaU42mqx78iFA7aqNoTicNufowy +6mWe6yI6sBzrV9qFQn4qPfenVLWBGXHDta7ufoUaeiNhdjtOvKamf+c9tUu408nf +0qI2EZ+fvDYZh0xDicGzDiy9NtfTpABSBgH7qJlJXEa8K5xSbrbQ6H1K5qPT4Nn0 +z+Vn5zdR/NVfA3CcsEvJ9NuRQoZAYHPYfTjx5KgWk+KDDwNSm5zQ0G09vgScFCGw +5ZfJAp6SNC0CcAp0IZEd980nSX+TSF16AtkAvT+rzgyWP6WwBJO5FGJbxI3uPrwt +qqe1ylRYmD+jQdTohwgCfYm/KoOuupIijhk8VWv49FPDA+kUHVyA4XFfai5Rz9It +Kl1QWAMGcL4ebtXgK7J9nQIDAQABoxYwFDASBgNVHREECzAJggd3ZWJtYWlsMA0G +CSqGSIb3DQEBCwUAA4IBAQBpsM0+ZS/a9g8T6LqRDcYaTHFaT7YqTYcpU3udU8H7 +vEa+EzRoD1dthYWTX2l06j00jLzCZI5Z4FPYrDVkw3cZ1t1NzLnznvvX2Hh7WtKq +AXKJc6GlsnUBugQzZU/rN9RBO5w/etYiYeb+jZLP8eBwrVgvXDcMaRy/Bffsm8uH +672NE0W/rDyA1+TxvUBQ3CWYT1ATjGW8yV9iM8O2EzQi0hjFgHe7RkRoM7NQ8tze +WgOznOn1FWUpVVYQzb3HVFmeSho7nGTVHvv6Jte6XRRZOjqOYZhOQSRMw6AlJvgW +utkiUVRpHqTP2SEw3joJMVXVvT2rL8A3xnhU3ziMArtw -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/root_ca_cert.pem b/net/data/ssl/certificates/root_ca_cert.pem index 8ba21b5..73172139 100644 --- a/net/data/ssl/certificates/root_ca_cert.pem +++ b/net/data/ssl/certificates/root_ca_cert.pem
@@ -1,101 +1,104 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAtklB40IBUah/PHpx0/vNkTUXhBqO9jbH0XAd+obzbrt2b+gy -Ljf9OJI9aOSKfUIzFEYb3AT2kW5UQMQKCf3sLWLiXuG6LJzBsWBM2sf4IlyCIGVC -HlZ3dU/rkCxK6lcOIo1slawR6szX7vZwDQndpjVhXcl2bbDyHr8whth3UjaVlw7R -RsXtgT0bsPJhlTzBQDjvX126YZ/vK5yfhYl0cGPVdug1fs4B4fMREZAcDfX9jc4Q -bK18VRohb9ct9HgV6i84vZGePB0HRvVDwYKLrxJTZRmKaWlmBrLaC/oqAKEqFYRJ -8QG/mzAG0BWgH51RkUfhU1/vXuzCYXnCFJ/E4wIDAQABAoIBAQCeoVG9Owt6zG8t -akD0gQR7gQBd7d7LVRC+qhrskdP2YRzIdgB1SDQMrvbR+VCrgJiC5CAKcCdCmAip -8+/okhidxpfIihdCC4hjm7JGEg9Vl7uGBZhsXkLGzC3q4SCwneGnH/uGpJ9S/cBM -LBmGvzcsFPgObeupuXp6V1cbgfUUjQM4h7OpuETlvPOduMEBLj6MwWyVqq5lzBQf -p6nUclEmiwL5izyNW6BSTbaBc36ekpAa/qsfIWtCZfmJ6gf5SfGn3alVYcd25rZ6 -1mDig4q+u7U2PBzavmELU+9fvUknSOod6eCyzw1S4PmgvCJrx5fZjfJwOq1vgihb -w3zuPB/BAoGBAOS6goTVgJHCx1oTeJ6XR4p1tg5pxO5tnwhnWL9OIFE2Hlfbv50G -sWfMkNGGpuKP34+eQM7bEAz+LTfGbe4eoeRVvxjPFjosmj8pXGMoc7bsYh0Bo14A -0iUys48UTXLZlyC73wgeOpBTBYakIE13wdpCBxm7OaT3FTjdIiPc+AeVAoGBAMwF -L0YUf6VeJFfQMkVxclxEbLdqfHIa4fBNR4gu9AwGr72ToCW8MhYWwdYLNRDC/jJD -zSXbPs1erSfJNgigkvUiwEUMaqvOF3WfyKgJQXnc6MnTK67WbIol4oRe265n6y8P -gpMaD1OdIsu3zPI9FryS/RJwMe+UjSII3hi7wxyXAoGABaIKQNc5OV3Apxk/qTg0 -jNZlS2mTbgPJHN3es6dq6FUa3jMNPwLBL7s7/c0BIydD7DeLhQykEo3X8z2xy2F5 -vzPVZvkCpSAgFFoiala+ssyThf9aVKBUjJH5Fhb76U4uiKHX1k1YR+GjizNTkFTY -s1VY82tG+icToLjhdFymxxkCgYEAjLT6sJuMmXF/IS0OrsQaOjZawHjpkQynTMMP -lYXEfNLTu6yn476S0JcrYkLie0fwZpxKTVSTULJ+O5VS9cpA8F3iOvzgSNNfbJkh -m3qetLw9tIw2cWOjAfg07FQ7sGItWoyY4nkzntgd2mBOMbceCjpZ3bCRUAmk+Jcj -De3ZF8sCgYAjbYNkZvUIHMTYTsuO/Tg4karzUebqlBgwOgrztJOtsOSPy9uaroZ3 -zRvTUw1UbdSeGi2QFt24wHOOrBLbGO6bYWKY3QyWnJ7m2gzEC2TijIdJ5n/BIkhE -ysXW1YMMCGZgOSXvBDHf3AMUZwcnmLY99wAyNKwC+IDqsKbfjP8drA== +MIIEpAIBAAKCAQEAxoEfknO2WIXZjay3IP3Hv0Cy6vrlC1IBj5rB63qAwfOJpD7V +G2HMtc+AsRrbuyXgGL+SaSZQzec//w08tB8UEqtnN94HA2wSdII2rMPU02Sfke1b +9ql6pJyY6GVslOHLVXOu+B1QsHjldP+xNyzLGT2kjOd2ToZcP9+z7UUjT1SbM8aJ +XhMd3X1ZpQc0KIYnH/qeU08qtkKtNxJi9XI2tgISQET+x56ViUNRXrRux2eAWEO+ +zAcovVn/HEyNkEL0z/1UAE9IcivhZzyEF2iVv8oHe9+GnVbjMuNwh7f4OvfjbmUU +fLt2txfxQoxvKjRkEDUUjIX2V7/zXFWdrQMQ8wIDAQABAoIBABUQ4PPe2cwdMFBL +sweKRydxy0sKo0IHSukdiFTgJEfw+3t1u5HzWBE3WzXwXr9GrriRpA0KpuqjDvSX +SAjpf2zXydVw95eSYYcBxqGhCrYAaLrI0MilhcFwaP3IvbQzHiwMYdYs7kI8IkW/ +WOQ9GbStCQh3C+QbeDDDIcodWzjw1sR5uFUu8WurGPQkQI2gwxzL9dtcU5LeP36G +wpYZMuE6pJcZ7BmNE880YtUEhGJVWaYLv5b/VqeZ7AMcHV7kb2NlN+tMgxxObFte +K/1RGemAd2U7TDRQVbsna/hAI1MX/QRXKJ8KsD3J6d6zjWO/SblFBqOPZNygLPtr +Tqlf9PkCgYEA6N0feYjh4VSfwJKawKIZoVS7IH8klTBmGK4pOkTsUPdDcqiPErQ+ +gG8IIJNtO85wvmt79io/MQP/K0X4he41yvqD1uv9h/gErPZNZdxah0O1s7f28GRE +AVLKPu82KSHIbjHDyO5JjSZhtM5erdN96J0Fn5crZf9bunopaTMkGY0CgYEA2joS +U9uMyuwnmJWsb1VY4G59Mc7uz2owRLTZqJpMg7WiQETpE/VL72aQXPLoVHktFjzS +xBO90krfYzQS3KQVQDgr4rljOHpkInMfgez7UBdbz+4Qp5xTQgltoHlAyOf2JMyU +c1arW/vkJfpwX9wnZFnMCqwH6gu4DG8sdazA9H8CgYEAjbxZtg3c/twVSI9zZiDE +XPBH3eXFjJEi846+RVtCQ53dDeMPAqF3EZGDbuCNMkPbV+vwTcs1H06BeANk25A8 +acnFiYGmlaYeonBgd8mByKcr57HnujYtNmj/9QKBAtQvPPNJafmwBxv/iJ+7/S2n +i3hXveWzYqflW0GUBxY7uNkCgYEAqjiB80deGyr599tIFc/M88M7hI6VWNTLscwf +u5Qf+tzDIr6d0COWh7bJBLe04a9jq+TlwmxjtJUSip8j11dl/CHUmZVh/7v4P6bs +/LuNjHur8hUQiK03hFs2V+Y80nmdVjb91LnWEHn7DGS9Iwjm8S/aKLjns3hQp+JQ +G7oVCKECgYAB2xZOrm4FE6/lwDKlMiZMMq+3YWfoKWTg0BscfCgcOJMunhEX9w3p +W1Tpq6I4N+l81NVKbnwoUNImfI+JN7VXxmR+w1feierpWSFXrwsDIdpx54KVchuo +N7/caM0W1tEFrcMKD7ECvJO6IK/vvB+MOe63WAqvaLCrcUd12qk4DA== -----END RSA PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) - Serial Number: 12789565514992013210 (0xb17daa12e8af4f9a) - Signature Algorithm: sha1WithRSAEncryption - Issuer: CN=Test Root CA + Serial Number: 10687961985666567129 (0x945344cc7888cbd9) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity - Not Before: Aug 14 03:05:29 2014 GMT - Not After : Aug 11 03:05:29 2024 GMT - Subject: CN=Test Root CA + Not Before: Jun 5 17:10:44 2017 GMT + Not After : Jun 3 17:10:44 2027 GMT + Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:b6:49:41:e3:42:01:51:a8:7f:3c:7a:71:d3:fb: - cd:91:35:17:84:1a:8e:f6:36:c7:d1:70:1d:fa:86: - f3:6e:bb:76:6f:e8:32:2e:37:fd:38:92:3d:68:e4: - 8a:7d:42:33:14:46:1b:dc:04:f6:91:6e:54:40:c4: - 0a:09:fd:ec:2d:62:e2:5e:e1:ba:2c:9c:c1:b1:60: - 4c:da:c7:f8:22:5c:82:20:65:42:1e:56:77:75:4f: - eb:90:2c:4a:ea:57:0e:22:8d:6c:95:ac:11:ea:cc: - d7:ee:f6:70:0d:09:dd:a6:35:61:5d:c9:76:6d:b0: - f2:1e:bf:30:86:d8:77:52:36:95:97:0e:d1:46:c5: - ed:81:3d:1b:b0:f2:61:95:3c:c1:40:38:ef:5f:5d: - ba:61:9f:ef:2b:9c:9f:85:89:74:70:63:d5:76:e8: - 35:7e:ce:01:e1:f3:11:11:90:1c:0d:f5:fd:8d:ce: - 10:6c:ad:7c:55:1a:21:6f:d7:2d:f4:78:15:ea:2f: - 38:bd:91:9e:3c:1d:07:46:f5:43:c1:82:8b:af:12: - 53:65:19:8a:69:69:66:06:b2:da:0b:fa:2a:00:a1: - 2a:15:84:49:f1:01:bf:9b:30:06:d0:15:a0:1f:9d: - 51:91:47:e1:53:5f:ef:5e:ec:c2:61:79:c2:14:9f: - c4:e3 + 00:c6:81:1f:92:73:b6:58:85:d9:8d:ac:b7:20:fd: + c7:bf:40:b2:ea:fa:e5:0b:52:01:8f:9a:c1:eb:7a: + 80:c1:f3:89:a4:3e:d5:1b:61:cc:b5:cf:80:b1:1a: + db:bb:25:e0:18:bf:92:69:26:50:cd:e7:3f:ff:0d: + 3c:b4:1f:14:12:ab:67:37:de:07:03:6c:12:74:82: + 36:ac:c3:d4:d3:64:9f:91:ed:5b:f6:a9:7a:a4:9c: + 98:e8:65:6c:94:e1:cb:55:73:ae:f8:1d:50:b0:78: + e5:74:ff:b1:37:2c:cb:19:3d:a4:8c:e7:76:4e:86: + 5c:3f:df:b3:ed:45:23:4f:54:9b:33:c6:89:5e:13: + 1d:dd:7d:59:a5:07:34:28:86:27:1f:fa:9e:53:4f: + 2a:b6:42:ad:37:12:62:f5:72:36:b6:02:12:40:44: + fe:c7:9e:95:89:43:51:5e:b4:6e:c7:67:80:58:43: + be:cc:07:28:bd:59:ff:1c:4c:8d:90:42:f4:cf:fd: + 54:00:4f:48:72:2b:e1:67:3c:84:17:68:95:bf:ca: + 07:7b:df:86:9d:56:e3:32:e3:70:87:b7:f8:3a:f7: + e3:6e:65:14:7c:bb:76:b7:17:f1:42:8c:6f:2a:34: + 64:10:35:14:8c:85:f6:57:bf:f3:5c:55:9d:ad:03: + 10:f3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: - BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Key Usage: critical Certificate Sign, CRL Sign - Signature Algorithm: sha1WithRSAEncryption - 57:07:29:fb:7f:e8:ff:b0:e6:d8:58:6a:c3:90:a1:38:1c:b4: - f3:68:b1:ec:e8:89:23:24:d7:a8:f2:21:c3:60:e4:a4:49:5c: - 00:bf:df:c7:82:78:80:2b:18:f7:ad:dd:d0:62:5e:a7:b0:cc: - f0:aa:b4:ce:70:12:59:65:67:76:05:00:18:9a:ff:c4:2a:17: - e3:f1:55:d8:be:5c:5e:eb:ca:cb:53:87:10:d5:09:32:36:a7: - 5e:41:f4:53:da:7e:56:60:d2:7e:4e:9a:a5:08:5f:5d:75:e9: - e7:30:cb:22:e9:ef:19:49:83:a5:23:a1:f8:60:4c:e5:36:d5: - 39:78:18:f1:5e:bf:ce:aa:0b:53:81:2c:78:a9:0a:6b:db:13: - 10:21:14:7f:1b:70:3d:89:1a:40:8a:06:2c:5d:50:19:62:f9: - c7:45:89:f2:3d:66:05:3d:7d:75:5b:55:1e:80:42:72:a1:9a: - 7c:6d:0a:74:f6:ee:a6:21:6c:3a:98:fb:77:82:5f:f2:6b:56: - e6:dd:9b:8e:50:f0:c6:ae:fd:ea:a6:05:07:a9:26:06:56:b3: - b2:d9:b2:37:a0:21:3e:79:06:1f:b9:51:be:f4:b1:49:4d:90: - b5:33:e5:0e:c7:5e:5b:40:c5:6a:04:d1:43:7a:94:6a:a4:4f: - 61:fc:82:e0 + Signature Algorithm: sha256WithRSAEncryption + 5b:53:ff:6d:d5:0a:43:a5:0f:d4:7d:c6:5d:88:e3:98:9d:67: + eb:32:82:b3:0f:f5:c1:78:f8:05:4a:bf:bc:21:05:ee:21:08: + 2c:b2:15:a1:b8:b2:f6:a3:15:61:e4:c1:ad:84:a4:a7:40:0c: + 87:09:5f:2b:1b:f9:4d:6c:92:7d:cb:7e:2b:b0:01:0a:ed:40: + e5:4e:af:1a:f1:0d:ec:1d:9e:96:c7:d4:61:64:39:23:fa:5f: + 29:c4:2a:3a:b8:ed:8a:72:50:6a:ac:45:04:76:09:a8:3d:57: + d7:f0:4b:ae:46:b4:83:c1:14:50:2a:19:59:53:b2:4d:ae:fc: + 2f:40:49:c8:ad:4d:9d:c8:22:8d:8c:01:db:31:33:5a:f4:bc: + 4c:9b:ed:d7:e3:43:d9:e8:1d:53:8b:30:d8:81:9e:72:ab:9e: + ce:b8:f5:83:93:f2:72:db:de:cd:b0:52:9a:45:4d:cf:e7:21: + d8:ce:16:64:8f:42:af:c1:87:a8:f9:d5:e2:03:dd:ba:6b:1b: + 7c:7d:a0:38:33:61:39:b4:dd:5c:69:17:79:02:3a:ec:1d:6f: + 5e:bb:13:fb:a6:82:5d:07:20:fc:86:fe:6e:8b:ac:e1:c2:18: + a2:fe:3f:95:66:d3:69:8a:00:06:2c:56:37:34:b9:b6:31:de: + 0f:f6:44:39 -----BEGIN CERTIFICATE----- -MIIC8zCCAdugAwIBAgIJALF9qhLor0+aMA0GCSqGSIb3DQEBBQUAMBcxFTATBgNV -BAMMDFRlc3QgUm9vdCBDQTAeFw0xNDA4MTQwMzA1MjlaFw0yNDA4MTEwMzA1Mjla -MBcxFTATBgNVBAMMDFRlc3QgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBALZJQeNCAVGofzx6cdP7zZE1F4QajvY2x9FwHfqG8267dm/oMi43 -/TiSPWjkin1CMxRGG9wE9pFuVEDECgn97C1i4l7huiycwbFgTNrH+CJcgiBlQh5W -d3VP65AsSupXDiKNbJWsEerM1+72cA0J3aY1YV3Jdm2w8h6/MIbYd1I2lZcO0UbF -7YE9G7DyYZU8wUA4719dumGf7yucn4WJdHBj1XboNX7OAeHzERGQHA31/Y3OEGyt -fFUaIW/XLfR4FeovOL2RnjwdB0b1Q8GCi68SU2UZimlpZgay2gv6KgChKhWESfEB -v5swBtAVoB+dUZFH4VNf717swmF5whSfxOMCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUvPcw0TzA8nn675/JbFyT84poq4MwDgYDVR0PAQH/BAQD -AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBXByn7f+j/sObYWGrDkKE4HLTzaLHs6Ikj -JNeo8iHDYOSkSVwAv9/HgniAKxj3rd3QYl6nsMzwqrTOcBJZZWd2BQAYmv/EKhfj -8VXYvlxe68rLU4cQ1QkyNqdeQfRT2n5WYNJ+TpqlCF9ddennMMsi6e8ZSYOlI6H4 -YEzlNtU5eBjxXr/OqgtTgSx4qQpr2xMQIRR/G3A9iRpAigYsXVAZYvnHRYnyPWYF -PX11W1UegEJyoZp8bQp09u6mIWw6mPt3gl/ya1bm3ZuOUPDGrv3qpgUHqSYGVrOy -2bI3oCE+eQYfuVG+9LFJTZC1M+UOx15bQMVqBNFDepRqpE9h/ILg +MIIDizCCAnOgAwIBAgIJAJRTRMx4iMvZMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW +aWV3MRAwDgYDVQQKDAdUZXN0IENBMRUwEwYDVQQDDAxUZXN0IFJvb3QgQ0EwHhcN +MTcwNjA1MTcxMDQ0WhcNMjcwNjAzMTcxMDQ0WjBjMQswCQYDVQQGEwJVUzETMBEG +A1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UE +CgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAxoEfknO2WIXZjay3IP3Hv0Cy6vrlC1IBj5rB63qA +wfOJpD7VG2HMtc+AsRrbuyXgGL+SaSZQzec//w08tB8UEqtnN94HA2wSdII2rMPU +02Sfke1b9ql6pJyY6GVslOHLVXOu+B1QsHjldP+xNyzLGT2kjOd2ToZcP9+z7UUj +T1SbM8aJXhMd3X1ZpQc0KIYnH/qeU08qtkKtNxJi9XI2tgISQET+x56ViUNRXrRu +x2eAWEO+zAcovVn/HEyNkEL0z/1UAE9IcivhZzyEF2iVv8oHe9+GnVbjMuNwh7f4 +OvfjbmUUfLt2txfxQoxvKjRkEDUUjIX2V7/zXFWdrQMQ8wIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBSbJguKmKm7HbkfHOMaQDPtjheIqzAOBgNV +HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAFtT/23VCkOlD9R9xl2I45id +Z+sygrMP9cF4+AVKv7whBe4hCCyyFaG4svajFWHkwa2EpKdADIcJXysb+U1skn3L +fiuwAQrtQOVOrxrxDewdnpbH1GFkOSP6XynEKjq47YpyUGqsRQR2Cag9V9fwS65G +tIPBFFAqGVlTsk2u/C9AScitTZ3IIo2MAdsxM1r0vEyb7dfjQ9noHVOLMNiBnnKr +ns649YOT8nLb3s2wUppFTc/nIdjOFmSPQq/Bh6j51eID3bprG3x9oDgzYTm03Vxp +F3kCOuwdb167E/umgl0HIPyG/m6LrOHCGKL+P5Vm02mKAAYsVjc0ubYx3g/2RDk= -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/sha1_2016.pem b/net/data/ssl/certificates/sha1_2016.pem index 086f8df..434febf 100644 --- a/net/data/ssl/certificates/sha1_2016.pem +++ b/net/data/ssl/certificates/sha1_2016.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 1 (0x1) + Serial Number: 9 (0x9) Signature Algorithm: sha1WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Oct 30 00:00:00 2008 GMT Not After : Dec 30 00:00:00 2016 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:bc:e0:e9:f5:9a:f0:36:82:13:c5:f2:2c:79:69: - 1e:69:35:c5:3b:31:fd:cf:60:28:e1:40:f8:23:d5: - dc:b1:52:32:e2:09:08:3a:af:39:5a:05:f8:51:ee: - fe:e9:73:c0:80:5a:29:2a:84:c3:14:e5:f7:3e:ab: - b4:f5:e4:2d:e9:f5:ab:5a:b1:37:75:e9:91:4d:40: - 8a:64:fa:f4:7d:22:76:9b:6a:d3:7c:8e:8a:c8:c2: - 40:42:c2:40:9a:63:be:ad:ac:99:8a:4f:c0:b5:15: - 63:d2:4e:76:96:49:73:69:86:da:a9:f1:ea:32:f9: - 27:d0:5a:f2:64:35:86:25:ee:cb:a5:7e:d3:35:97: - 1f:92:82:4c:c6:23:cc:2a:cd:df:50:7a:37:51:c2: - 77:01:0c:76:d5:93:fe:af:57:76:3a:5a:3d:83:d6: - 18:03:1a:50:d6:e3:b5:b0:40:aa:16:a8:03:38:3d: - 6f:2f:7a:e2:92:6d:b8:04:93:42:0d:27:a5:73:3b: - 37:f5:0e:50:f5:d6:9e:db:da:64:b1:d3:32:75:94: - cd:20:0f:f7:73:92:b2:b4:34:1a:9c:79:13:b1:78: - c2:22:0e:45:10:ff:47:ea:df:9a:78:0c:b5:9c:e4: - 89:9e:12:c0:e7:ab:bc:01:46:90:d7:05:4d:3f:a5: - 7a:0b + 00:b6:97:a0:79:d1:5c:5f:c1:13:33:6e:21:f8:2b: + e2:55:d6:bd:bb:2e:4e:78:cf:3d:fc:32:02:69:f7: + 1e:57:26:5d:38:18:bd:60:4e:c9:9b:7d:48:47:8e: + e0:b8:7f:de:9e:48:6a:e2:b7:fc:58:aa:38:a5:4d: + ab:b1:6d:ab:ed:f8:ae:7d:9b:2c:e0:cb:af:7b:2d: + 10:f8:97:8d:d7:8d:9f:8c:48:32:df:30:69:2a:de: + cc:1f:81:f1:6d:14:2f:56:ac:64:20:9e:90:6b:5a: + 63:da:0a:08:f2:c6:89:01:44:15:c7:bb:02:fe:4b: + c5:68:18:7f:47:4c:91:c0:59:bd:72:47:69:28:47: + b8:6d:2a:3b:57:74:59:68:9e:e7:35:1d:a4:a9:3b: + 51:9a:74:82:3b:9e:7c:49:d5:f8:d9:72:9b:20:b1: + 53:1f:30:9d:20:a0:26:b9:2f:57:18:a4:63:be:8b: + 3b:03:31:fd:11:8a:d5:2d:13:67:51:88:c1:9f:2b: + 65:da:ea:d3:29:25:3a:60:0f:7f:fc:a0:61:8d:dd: + 8e:4f:45:b3:0f:da:ba:a4:1a:13:87:0d:1f:27:31: + c2:37:1a:a6:fc:49:1c:02:82:ff:f8:a8:7f:4d:66: + 6e:46:38:4d:37:63:fd:bc:b3:d1:29:cc:de:4c:a5: + c8:5b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - C7:77:F7:6A:6A:BF:D7:F9:34:CC:B9:74:3F:AC:12:56:46:10:B4:76 + 3C:CC:C9:4A:92:DF:8A:05:12:74:8D:AA:B3:40:EE:69:E4:52:77:62 X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha1WithRSAEncryption - 77:91:04:bc:b5:04:90:6b:1a:dd:f2:26:55:3c:c9:76:f0:de: - d5:90:dc:8a:94:c3:87:ba:84:ab:bf:0d:2a:39:ab:87:03:e4: - 66:0c:fb:cb:fa:b6:d6:9c:0d:56:cf:a4:1c:5e:31:e3:5d:97: - 8e:b9:2c:c5:9c:a9:32:6a:dd:8d:b9:df:ac:45:04:a4:1f:ca: - 66:fa:43:bb:62:4c:2f:13:5b:43:9b:7f:e4:2b:82:fa:25:01: - f7:30:de:a5:95:90:78:7f:1f:7a:5f:37:11:f6:86:1c:d4:88: - e6:36:fa:c6:ae:c5:55:c2:30:97:7b:3a:01:fe:22:b9:c9:67: - d1:44:f8:f2:f7:35:2d:bd:b8:7f:cb:2a:61:18:7f:55:8e:f7: - bc:e4:6f:ae:d8:4e:60:10:c6:c3:be:b7:c1:0c:d9:9b:c1:d2: - 23:63:d7:b0:7b:69:87:33:a5:99:65:c8:50:d7:40:e5:1f:43: - 61:54:91:aa:e7:e0:bd:e3:33:d4:d8:fc:88:8b:04:8d:03:60: - 8e:c4:57:c8:d3:82:bc:7d:27:96:c6:14:e8:10:08:45:e4:81: - da:2c:99:ce:6c:32:70:59:ca:b4:52:21:35:30:12:5f:00:a4: - 4c:6d:e7:32:71:7c:83:5d:7e:6a:fb:cc:f9:8a:f0:3d:01:d5: - c6:39:a7:f5 + 61:42:bd:ce:3e:8a:ca:a0:bc:61:5f:0a:30:cb:86:02:e3:d3: + 22:a2:c2:d7:b9:b8:79:9b:53:b5:60:14:0a:7f:98:3f:bd:a6: + 09:03:fc:05:bd:b8:24:00:aa:85:ca:ea:36:c0:58:a7:6e:25: + 8f:64:a6:9a:77:35:53:f2:c1:be:04:95:c3:2b:dc:1a:9f:42: + 31:af:5f:1d:06:4d:bb:08:bb:18:b5:48:eb:4a:03:85:be:12: + 7f:bc:62:d5:44:25:0e:75:a8:7a:63:86:0b:c9:af:0f:03:4c: + 14:ac:de:50:c1:0b:d9:cd:17:1e:56:e4:43:18:a7:0f:cc:fc: + 58:e9:d9:7a:62:f7:8b:64:ae:0d:e0:a3:78:75:87:aa:e9:d0: + ce:f4:a2:60:46:41:48:eb:04:89:74:55:d6:f1:1f:f0:ed:32: + df:fc:cc:86:68:c9:b0:36:4f:9f:db:f0:cf:51:a2:9a:89:43: + 65:b1:6c:a1:1a:4f:ef:35:ca:d7:c1:d6:c7:96:f5:4e:0a:f6: + 1d:d1:8f:59:4c:77:20:73:4a:fe:0f:fc:a9:c8:e4:11:d9:3e: + 71:7e:84:b8:ed:e0:fb:00:5d:1e:7b:7b:c9:5b:2d:51:44:7c: + 0b:60:f1:13:7a:ff:7b:fa:0b:74:47:bb:99:89:ef:fe:cc:9f: + f7:a3:e3:20 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMDgxMDMwMDAwMDAwWhcNMTYxMjMwMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvODp9ZrwNoITxfIseWkeaTXFOzH9 -z2Ao4UD4I9XcsVIy4gkIOq85WgX4Ue7+6XPAgFopKoTDFOX3Pqu09eQt6fWrWrE3 -demRTUCKZPr0fSJ2m2rTfI6KyMJAQsJAmmO+rayZik/AtRVj0k52lklzaYbaqfHq -Mvkn0FryZDWGJe7LpX7TNZcfkoJMxiPMKs3fUHo3UcJ3AQx21ZP+r1d2Olo9g9YY -AxpQ1uO1sECqFqgDOD1vL3rikm24BJNCDSelczs39Q5Q9dae29pksdMydZTNIA/3 -c5KytDQanHkTsXjCIg5FEP9H6t+aeAy1nOSJnhLA56u8AUaQ1wVNP6V6CwIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUx3f3amq/1/k0zLl0P6wSVkYQ -tHYwHwYDVR0jBBgwFoAUvPcw0TzA8nn675/JbFyT84poq4MwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEF -BQADggEBAHeRBLy1BJBrGt3yJlU8yXbw3tWQ3IqUw4e6hKu/DSo5q4cD5GYM+8v6 -ttacDVbPpBxeMeNdl465LMWcqTJq3Y2536xFBKQfymb6Q7tiTC8TW0Obf+Qrgvol -Afcw3qWVkHh/H3pfNxH2hhzUiOY2+sauxVXCMJd7OgH+IrnJZ9FE+PL3NS29uH/L -KmEYf1WO97zkb67YTmAQxsO+t8EM2ZvB0iNj17B7aYczpZllyFDXQOUfQ2FUkarn -4L3jM9TY/IiLBI0DYI7EV8jTgrx9J5bGFOgQCEXkgdosmc5sMnBZyrRSITUwEl8A -pExt5zJxfINdfmr7zPmK8D0B1cY5p/U= +MIIDvzCCAqegAwIBAgIBCTANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTA4MTAzMDAw +MDAwMFoXDTE2MTIzMDAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALaXoHnRXF/BEzNuIfgr4lXWvbsuTnjPPfwyAmn3HlcmXTgYvWBOyZt9 +SEeO4Lh/3p5IauK3/FiqOKVNq7Ftq+34rn2bLODLr3stEPiXjdeNn4xIMt8waSre +zB+B8W0UL1asZCCekGtaY9oKCPLGiQFEFce7Av5LxWgYf0dMkcBZvXJHaShHuG0q +O1d0WWie5zUdpKk7UZp0gjuefEnV+NlymyCxUx8wnSCgJrkvVxikY76LOwMx/RGK +1S0TZ1GIwZ8rZdrq0yklOmAPf/ygYY3djk9Fsw/auqQaE4cNHycxwjcapvxJHAKC +//iof01mbkY4TTdj/byz0SnM3kylyFsCAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFDzMyUqS34oFEnSNqrNA7mnkUndiMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQBhQr3OPorKoLxhXwow +y4YC49MiosLXubh5m1O1YBQKf5g/vaYJA/wFvbgkAKqFyuo2wFinbiWPZKaadzVT +8sG+BJXDK9wan0Ixr18dBk27CLsYtUjrSgOFvhJ/vGLVRCUOdah6Y4YLya8PA0wU +rN5QwQvZzRceVuRDGKcPzPxY6dl6YveLZK4N4KN4dYeq6dDO9KJgRkFI6wSJdFXW +8R/w7TLf/MyGaMmwNk+f2/DPUaKaiUNlsWyhGk/vNcrXwdbHlvVOCvYd0Y9ZTHcg +c0r+D/ypyOQR2T5xfoS47eD7AF0ee3vJWy1RRHwLYPETev97+gt0R7uZie/+zJ/3 +o+Mg -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/sha1_dec_2015.pem b/net/data/ssl/certificates/sha1_dec_2015.pem index 52b12f1..30633aec 100644 --- a/net/data/ssl/certificates/sha1_dec_2015.pem +++ b/net/data/ssl/certificates/sha1_dec_2015.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 8 (0x8) + Serial Number: 10 (0xa) Signature Algorithm: sha1WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Dec 31 23:59:59 2015 GMT Not After : Dec 30 00:00:00 2016 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:e2:01:60:a4:71:45:a8:f6:30:4a:3d:15:97:19: - b9:00:c8:ef:72:4b:6d:cc:92:d2:6e:69:78:7d:ff: - a9:80:f3:1d:00:ef:28:a1:07:d0:98:c7:f0:c6:d7: - eb:0a:77:42:29:4e:60:d4:a7:11:d0:d0:ae:ed:b6: - 1c:9f:a8:63:02:05:e5:0d:c0:a7:07:3c:96:4f:c3: - 61:d0:68:c6:a5:06:cf:ab:b6:09:2c:22:44:f4:b7: - 97:7e:69:8e:cc:51:3a:2b:0e:4a:cb:7e:8c:3b:6f: - da:13:d5:e8:c3:38:e8:e5:5a:01:03:75:e6:4d:04: - 61:fe:4c:bb:ff:38:9e:97:93:14:ff:42:cd:c7:ba: - 16:68:d0:0f:5b:2b:7d:d1:59:49:33:5d:22:48:f4: - 07:fd:19:0b:f4:f3:14:6c:f5:c5:69:90:28:f1:24: - 8c:a5:cc:77:ba:4b:98:bc:00:2e:57:09:ce:8c:e8: - b5:14:39:29:9c:ee:f2:3f:75:5b:9c:92:09:00:6f: - 89:60:f1:4f:68:a7:c7:fd:22:6a:b8:4a:92:fc:8d: - bd:ab:fc:bc:b1:68:23:5f:f2:bc:25:8d:61:a8:d2: - 91:f1:ba:f6:48:25:05:a6:2c:a4:bb:af:27:c7:b5: - 61:3f:62:cd:61:2b:d2:2a:f8:02:46:f4:23:6d:90: - d9:d3 + 00:b6:91:2d:66:93:a5:7c:3c:60:ef:37:dd:70:95: + ec:f4:16:31:64:f5:02:6b:da:28:b0:56:64:6c:4b: + 77:3a:ce:88:14:24:36:7d:7c:18:cc:fd:fb:43:24: + 09:e0:d5:6c:4d:32:47:08:61:a6:e1:3b:69:9d:4b: + bf:d4:0f:d1:11:1b:c6:08:6e:b1:ad:76:36:ab:f9: + 2e:93:da:23:eb:bd:e3:06:a6:94:8a:7b:12:9b:92: + d4:7b:6a:ee:95:95:3e:76:16:77:da:cc:3a:5b:0e: + 5d:45:57:fb:d6:73:0e:7e:0e:2d:98:e0:1a:ae:49: + c0:b6:c5:86:f6:c3:06:cc:91:aa:ec:dc:a6:32:cc: + 31:3d:60:ff:21:97:77:98:f7:2a:7b:94:68:5e:48: + 91:64:2b:25:93:dd:d4:42:bd:45:3b:40:da:fc:5f: + 87:d1:82:60:da:54:1a:92:fb:a6:eb:5e:d4:1b:5a: + 5e:88:07:a4:1e:b8:9b:e9:6f:8b:9d:0a:5b:94:78: + 07:c9:60:ed:16:ec:2d:67:37:e1:37:2e:db:6c:27: + 30:5b:5b:b0:7f:bf:29:d1:a7:c5:57:88:9e:a2:4e: + 52:56:5c:44:49:67:2c:fb:e4:29:9e:48:88:8a:2b: + a4:86:d3:5a:bc:66:6c:e8:56:68:1f:4e:6a:74:54: + 34:f1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 5A:67:3F:18:17:60:C4:59:4C:9D:98:C0:8B:B7:2F:77:84:C8:22:A6 + 8F:94:39:15:DD:3B:6D:DE:5D:23:46:53:92:8A:FF:E4:28:CA:54:40 X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha1WithRSAEncryption - 54:f1:c7:bb:ad:7c:c8:6c:4b:6d:54:65:6c:6c:f7:d9:f9:f7: - a3:29:0f:df:4c:7f:9c:49:cb:29:b9:e4:14:71:95:e0:ab:1a: - c2:13:34:b5:d9:a6:64:a1:ec:64:b4:af:00:45:60:3e:66:a8: - 59:bd:8f:b7:35:53:6f:46:e4:5c:17:42:d8:76:12:84:26:f0: - d2:bc:e9:85:32:7d:fb:d3:4d:7c:c2:af:6e:64:c5:fd:4c:ee: - 57:b8:bd:fc:31:57:aa:3c:aa:03:6f:9c:db:e4:c4:62:45:48: - ba:6a:7a:63:b9:38:44:4f:fc:cb:3d:b4:fd:09:b0:89:f8:7e: - c4:cd:ac:06:c0:bd:06:fa:99:64:32:b2:49:6d:df:d1:5f:ae: - 40:9f:95:cd:f2:7b:ba:b7:aa:c0:e0:f0:e6:0f:bf:04:3f:b4: - 52:3a:e9:10:02:4d:71:22:ad:29:be:61:7c:d2:1e:c6:e8:52: - da:00:cc:2f:e3:0f:68:03:ed:cc:19:c9:da:0f:a3:d1:82:ba: - d8:14:40:07:37:4e:55:e9:9a:45:25:bf:eb:cb:4c:13:54:c8: - 26:b7:41:0b:68:7b:3a:25:a5:67:33:fd:15:63:be:5e:05:a4: - 09:6d:22:7e:fd:e0:6d:4c:d5:a9:47:c2:30:e4:34:e4:ec:cb: - b6:61:32:98 + 3c:ba:22:75:be:4a:28:1d:0b:14:16:f9:6a:24:8b:be:62:f2: + aa:38:fe:23:89:b5:50:2c:ab:ea:9e:fb:74:6a:dd:1f:31:bd: + 6a:d0:16:09:be:a5:af:62:4a:6b:bd:98:d0:d6:4f:8a:3c:05: + 2c:92:e1:c5:db:5f:e2:64:9c:f5:ba:23:c5:f7:75:53:21:54: + a0:9d:ad:2a:36:cb:7a:b8:a7:04:ae:97:17:6b:af:a1:1c:08: + 14:94:e0:5e:fe:58:51:d2:51:6a:17:fc:89:13:f1:98:76:86: + 92:66:91:8d:87:c5:6a:db:48:7c:63:7b:b7:db:3c:90:3a:8c: + 73:5c:db:d0:0b:1b:96:3f:d4:07:ba:69:81:c7:83:3f:81:a7: + 1d:30:8e:06:1a:95:49:0b:32:d3:b7:ea:e8:04:61:c4:f5:b0: + 11:77:3d:60:02:e7:dd:3d:93:7d:22:61:81:4c:27:15:07:f1: + e5:8c:f1:d2:c6:40:83:03:d7:fc:38:69:aa:75:c0:d1:80:42: + cf:9c:92:18:c0:e4:30:df:1a:27:4b:3f:7f:c4:0d:0a:46:96: + 51:9a:67:84:2b:2d:33:56:c8:52:fb:8b:6d:c7:e0:7e:c0:43: + 55:69:9c:4c:9d:4b:36:82:be:b9:a7:77:8d:e6:85:90:7e:fb: + dc:2e:08:26 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCDANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTUxMjMxMjM1OTU5WhcNMTYxMjMwMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4gFgpHFFqPYwSj0Vlxm5AMjvcktt -zJLSbml4ff+pgPMdAO8ooQfQmMfwxtfrCndCKU5g1KcR0NCu7bYcn6hjAgXlDcCn -BzyWT8Nh0GjGpQbPq7YJLCJE9LeXfmmOzFE6Kw5Ky36MO2/aE9Xowzjo5VoBA3Xm -TQRh/ky7/ziel5MU/0LNx7oWaNAPWyt90VlJM10iSPQH/RkL9PMUbPXFaZAo8SSM -pcx3ukuYvAAuVwnOjOi1FDkpnO7yP3VbnJIJAG+JYPFPaKfH/SJquEqS/I29q/y8 -sWgjX/K8JY1hqNKR8br2SCUFpiyku68nx7VhP2LNYSvSKvgCRvQjbZDZ0wIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUWmc/GBdgxFlMnZjAi7cvd4TI -IqYwHwYDVR0jBBgwFoAUvPcw0TzA8nn675/JbFyT84poq4MwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEF -BQADggEBAFTxx7utfMhsS21UZWxs99n596MpD99Mf5xJyym55BRxleCrGsITNLXZ -pmSh7GS0rwBFYD5mqFm9j7c1U29G5FwXQth2EoQm8NK86YUyffvTTXzCr25kxf1M -7le4vfwxV6o8qgNvnNvkxGJFSLpqemO5OERP/Ms9tP0JsIn4fsTNrAbAvQb6mWQy -sklt39FfrkCflc3ye7q3qsDg8OYPvwQ/tFI66RACTXEirSm+YXzSHsboUtoAzC/j -D2gD7cwZydoPo9GCutgUQAc3TlXpmkUlv+vLTBNUyCa3QQtoezolpWcz/RVjvl4F -pAltIn794G1M1alHwjDkNOTsy7ZhMpg= +MIIDvzCCAqegAwIBAgIBCjANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE1MTIzMTIz +NTk1OVoXDTE2MTIzMDAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALaRLWaTpXw8YO833XCV7PQWMWT1AmvaKLBWZGxLdzrOiBQkNn18GMz9 ++0MkCeDVbE0yRwhhpuE7aZ1Lv9QP0REbxghusa12Nqv5LpPaI+u94wamlIp7EpuS +1Htq7pWVPnYWd9rMOlsOXUVX+9ZzDn4OLZjgGq5JwLbFhvbDBsyRquzcpjLMMT1g +/yGXd5j3KnuUaF5IkWQrJZPd1EK9RTtA2vxfh9GCYNpUGpL7pute1BtaXogHpB64 +m+lvi50KW5R4B8lg7RbsLWc34Tcu22wnMFtbsH+/KdGnxVeInqJOUlZcRElnLPvk +KZ5IiIorpIbTWrxmbOhWaB9OanRUNPECAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFI+UORXdO23eXSNGU5KK/+QoylRAMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQA8uiJ1vkooHQsUFvlq +JIu+YvKqOP4jibVQLKvqnvt0at0fMb1q0BYJvqWvYkprvZjQ1k+KPAUskuHF21/i +ZJz1uiPF93VTIVSgna0qNst6uKcErpcXa6+hHAgUlOBe/lhR0lFqF/yJE/GYdoaS +ZpGNh8Vq20h8Y3u32zyQOoxzXNvQCxuWP9QHummBx4M/gacdMI4GGpVJCzLTt+ro +BGHE9bARdz1gAufdPZN9ImGBTCcVB/HljPHSxkCDA9f8OGmqdcDRgELPnJIYwOQw +3xonSz9/xA0KRpZRmmeEKy0zVshS+4ttx+B+wENVaZxMnUs2gr65p3eN5oWQfvvc +Lggm -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/sha1_jan_2016.pem b/net/data/ssl/certificates/sha1_jan_2016.pem index 318bb95..cda9de5 100644 --- a/net/data/ssl/certificates/sha1_jan_2016.pem +++ b/net/data/ssl/certificates/sha1_jan_2016.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 9 (0x9) + Serial Number: 11 (0xb) Signature Algorithm: sha1WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Jan 1 00:00:00 2016 GMT Not After : Dec 30 00:00:00 2016 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:b4:51:9f:c1:5a:a6:f8:54:6a:4b:a0:76:fe:f8: - 71:3e:db:f5:fd:60:16:0a:f8:f5:3e:34:1f:1e:f2: - ba:46:36:2c:7b:10:a7:13:1e:8f:41:e6:d2:cd:53: - 9f:3a:99:76:e3:65:4a:c0:0e:e8:6e:08:cd:d0:b6: - dd:7c:d8:9e:5f:c2:52:c6:d5:b5:77:12:b0:1b:79: - d2:ac:27:7a:37:88:21:6b:22:ea:b6:eb:e6:89:15: - e4:f8:e6:46:65:91:37:a5:24:98:44:2b:7a:46:c3: - 37:5d:d6:14:b9:3a:14:b7:10:8e:49:ae:b3:74:37: - 9e:b4:e6:80:be:bc:9e:ad:86:cb:88:26:66:56:53: - 70:80:c5:50:95:1f:a5:d4:a4:b2:34:6e:87:ab:51: - 64:2f:57:8f:9d:99:67:a2:13:f7:c8:40:8a:65:ba: - cd:5e:20:f2:b7:16:20:f0:c6:83:c6:06:fc:a9:e1: - fd:45:40:77:46:f5:77:3a:27:12:c5:ed:96:36:75: - 77:59:c4:4c:9d:df:d9:fd:e8:9b:bb:15:68:22:58: - 1d:0e:25:71:40:88:e9:6d:cf:e1:b5:1b:de:fd:bb: - 61:b6:5b:52:04:c9:11:20:d7:2e:4f:eb:fa:04:42: - 30:fd:fc:64:4d:b9:23:4a:25:dc:0d:3a:40:64:6d: - 2c:91 + 00:a1:89:77:c3:66:58:98:bc:85:76:2f:a7:0a:23: + 52:73:1a:cf:d9:5a:10:50:1e:d9:37:aa:c6:f7:03: + e3:ab:c2:b7:07:72:75:54:b2:e1:cc:9c:99:9a:a6: + a6:f3:b8:5e:b4:f6:ea:c2:09:c6:76:2c:45:b9:e8: + 14:cc:ae:8b:99:10:7c:39:52:53:e2:87:70:02:00: + 74:ca:9b:3f:81:5e:2b:3b:09:00:51:be:a1:7f:f5: + 5e:45:1b:d7:15:44:b4:97:16:f9:d9:18:2d:c8:cc: + e1:dc:f6:34:a6:6d:5d:67:4c:75:64:5c:d2:8c:e9: + 1d:90:0c:e2:21:f6:8e:86:d7:3d:4f:92:6a:46:53: + 0a:5c:86:98:d9:a4:ad:2a:90:eb:f6:c3:98:dd:86: + af:24:59:a6:c7:b3:80:40:02:8b:20:e8:89:2d:78: + dd:c3:fb:3f:83:16:5d:9c:be:70:73:ec:0c:44:e1: + 1d:58:72:61:4c:2d:0d:b0:97:ef:f4:fd:18:93:b1: + 07:c1:85:85:c5:6a:9d:c8:86:32:d8:ea:1e:e1:22: + bb:6b:bb:e0:1c:f4:3a:92:f2:b3:1b:36:52:f8:64: + 3b:01:32:a0:cd:3f:e9:63:78:93:41:98:05:2c:bf: + 0a:cb:e8:e0:18:67:20:03:43:01:82:8a:ed:fb:33: + 86:23 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 4A:09:4F:0D:9A:CF:60:FE:BA:18:68:EB:3D:6C:EB:6A:72:65:9A:12 + 15:94:2D:EB:50:FA:06:28:94:5B:58:20:CC:09:20:27:56:7A:2A:3B X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha1WithRSAEncryption - 1a:da:02:13:a7:42:44:32:f2:89:00:b2:8c:8e:7a:65:8a:0d: - d6:7c:bb:d7:04:bd:75:3a:ae:89:b6:df:38:ea:27:a5:94:03: - 8b:af:07:9d:3e:08:b7:12:62:1c:b6:8a:0a:c8:dd:ea:24:9a: - 19:00:1f:2f:f9:d8:73:d0:e5:58:11:1f:7c:60:09:62:ac:30: - 6c:6f:a7:42:1c:01:52:35:fa:c8:04:59:c9:de:49:ec:b1:eb: - 90:b6:64:4e:fc:58:aa:40:85:57:71:e1:27:64:04:fd:ff:35: - c2:d7:6d:52:1f:76:b9:35:a7:b4:d5:3b:dc:fe:ba:0d:84:1a: - 5b:38:9d:a1:a2:31:47:d3:85:ec:27:03:d8:a8:e1:b6:fc:09: - 95:a7:f4:54:e4:58:eb:68:47:61:0d:31:bf:8d:13:00:bb:0a: - db:2a:ac:16:a4:2f:8a:01:db:51:10:a1:45:47:88:3e:7e:d5: - bb:3b:e9:f9:07:50:6e:f3:2b:aa:67:04:4f:ac:b8:78:87:d0: - e0:fb:cb:0b:07:d0:7a:98:b4:aa:71:a6:2d:61:26:4a:ee:1c: - 92:59:f2:5c:15:00:10:f4:1b:38:97:ee:a4:b2:2a:bd:53:d7: - 2f:3e:32:e8:6a:4f:30:b1:bf:c6:22:27:52:74:e4:c5:23:fd: - 46:8d:fb:a9 + b1:06:12:ad:8f:94:6b:ed:de:ed:7a:5e:ef:93:bd:d1:85:48: + 62:62:f1:92:03:ac:77:d4:24:1e:64:77:55:8a:15:39:ee:41: + 6f:76:c4:2b:c5:b3:fd:4e:a1:4e:8e:ad:da:f4:41:3f:69:9c: + 2a:0d:d3:79:a5:53:0f:be:3c:a8:ef:d2:e1:83:60:a9:bd:3e: + a8:1e:3a:cd:c6:04:71:b0:14:98:71:2d:35:d3:ff:1f:27:77: + 5c:69:ab:8f:9e:f4:26:48:f1:03:61:8d:c9:e7:43:fb:ab:95: + e2:97:cb:b9:04:cf:3b:10:5c:21:a2:27:f6:b2:43:c2:3f:5b: + 3c:06:7a:d5:46:09:74:71:49:32:6a:8c:12:b4:d1:a0:4a:4a: + 85:77:5a:d0:f0:fd:e9:88:94:2e:fc:db:15:8a:b2:85:82:a4: + 82:b9:0e:36:54:e8:6a:b9:37:55:0a:63:90:56:06:77:9f:34: + 6c:25:f2:a6:92:08:eb:c5:df:d4:68:52:73:9e:9c:c9:b8:c3: + b7:f2:14:c4:5c:78:12:03:5f:8d:09:a7:ac:ba:79:35:62:14: + 13:e6:fe:64:41:e7:4a:a5:41:b1:0e:ad:e8:2f:16:36:ba:1c: + a5:76:4e:fb:70:62:8c:00:f4:22:55:9d:99:61:5a:b6:e5:fb: + 7e:94:44:c6 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCTANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTYwMTAxMDAwMDAwWhcNMTYxMjMwMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtFGfwVqm+FRqS6B2/vhxPtv1/WAW -Cvj1PjQfHvK6RjYsexCnEx6PQebSzVOfOpl242VKwA7obgjN0LbdfNieX8JSxtW1 -dxKwG3nSrCd6N4ghayLqtuvmiRXk+OZGZZE3pSSYRCt6RsM3XdYUuToUtxCOSa6z -dDeetOaAvryerYbLiCZmVlNwgMVQlR+l1KSyNG6Hq1FkL1ePnZlnohP3yECKZbrN -XiDytxYg8MaDxgb8qeH9RUB3RvV3OicSxe2WNnV3WcRMnd/Z/eibuxVoIlgdDiVx -QIjpbc/htRve/bthtltSBMkRINcuT+v6BEIw/fxkTbkjSiXcDTpAZG0skQIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUSglPDZrPYP66GGjrPWzranJl -mhIwHwYDVR0jBBgwFoAUvPcw0TzA8nn675/JbFyT84poq4MwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEF -BQADggEBABraAhOnQkQy8okAsoyOemWKDdZ8u9cEvXU6rom23zjqJ6WUA4uvB50+ -CLcSYhy2igrI3eokmhkAHy/52HPQ5VgRH3xgCWKsMGxvp0IcAVI1+sgEWcneSeyx -65C2ZE78WKpAhVdx4SdkBP3/NcLXbVIfdrk1p7TVO9z+ug2EGls4naGiMUfThewn -A9io4bb8CZWn9FTkWOtoR2ENMb+NEwC7CtsqrBakL4oB21EQoUVHiD5+1bs76fkH -UG7zK6pnBE+suHiH0OD7ywsH0HqYtKpxpi1hJkruHJJZ8lwVABD0GziX7qSyKr1T -1y8+MuhqTzCxv8YiJ1J05MUj/UaN+6k= +MIIDvzCCAqegAwIBAgIBCzANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE2MDEwMTAw +MDAwMFoXDTE2MTIzMDAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAKGJd8NmWJi8hXYvpwojUnMaz9laEFAe2TeqxvcD46vCtwdydVSy4cyc +mZqmpvO4XrT26sIJxnYsRbnoFMyui5kQfDlSU+KHcAIAdMqbP4FeKzsJAFG+oX/1 +XkUb1xVEtJcW+dkYLcjM4dz2NKZtXWdMdWRc0ozpHZAM4iH2jobXPU+SakZTClyG +mNmkrSqQ6/bDmN2GryRZpsezgEACiyDoiS143cP7P4MWXZy+cHPsDEThHVhyYUwt +DbCX7/T9GJOxB8GFhcVqnciGMtjqHuEiu2u74Bz0OpLysxs2UvhkOwEyoM0/6WN4 +k0GYBSy/Csvo4BhnIANDAYKK7fszhiMCAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFBWULetQ+gYolFtYIMwJICdWeio7MB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQCxBhKtj5Rr7d7tel7v +k73RhUhiYvGSA6x31CQeZHdVihU57kFvdsQrxbP9TqFOjq3a9EE/aZwqDdN5pVMP +vjyo79Lhg2CpvT6oHjrNxgRxsBSYcS010/8fJ3dcaauPnvQmSPEDYY3J50P7q5Xi +l8u5BM87EFwhoif2skPCP1s8BnrVRgl0cUkyaowStNGgSkqFd1rQ8P3piJQu/NsV +irKFgqSCuQ42VOhquTdVCmOQVgZ3nzRsJfKmkgjrxd/UaFJznpzJuMO38hTEXHgS +A1+NCaesunk1YhQT5v5kQedKpUGxDq3oLxY2uhyldk77cGKMAPQiVZ2ZYVq25ft+ +lETG -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/spdy_pooling.pem b/net/data/ssl/certificates/spdy_pooling.pem index 54da8c53..f8637f1 100644 --- a/net/data/ssl/certificates/spdy_pooling.pem +++ b/net/data/ssl/certificates/spdy_pooling.pem
@@ -1,73 +1,73 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 10845081582941097584 (0x9681783d6f55ce70) + Serial Number: 10589705580089419423 (0x92f6311e5133a69f) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Validity - Not Before: Aug 19 22:55:06 2014 GMT - Not After : Aug 16 22:55:06 2024 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:ed:ab:c5:df:a9:49:09:80:5a:8b:e6:4e:02:79: - 65:11:73:88:9b:77:7b:84:87:89:a7:a1:0b:b0:79: - 44:f5:bf:c6:76:25:76:d3:8d:9b:2c:e1:1a:37:15: - 29:6d:a5:d9:2a:1a:48:92:f0:65:0a:bc:bf:ff:a2: - c7:cf:8d:8b:97:51:57:84:0a:6d:e2:db:6f:16:cf: - f7:03:c7:54:43:9e:a9:05:e9:8c:ec:2f:bc:fe:ee: - 84:9a:0b:40:39:bf:12:ae:c9:69:b7:ec:29:6a:9f: - f8:ed:0e:57:46:2a:ba:a5:74:c9:6c:f5:e9:ec:d2: - 66:fd:0c:91:16:0b:a6:73:7b:e4:4c:82:21:17:9b: - 91:63:5a:46:43:08:7b:50:97:83:c7:22:57:bc:9e: - 5f:7f:ea:6c:fd:9a:41:27:05:58:11:72:cc:07:bb: - 9b:f7:27:1b:13:6e:05:e5:ae:8b:da:9b:9b:0f:f5: - a7:9c:f8:15:bc:64:fa:c1:1d:31:de:4a:98:31:9f: - 88:7c:3c:3f:26:94:e9:01:cf:3f:ad:f8:17:ab:66: - 81:36:61:b0:a7:ce:67:f9:00:80:90:29:75:6e:02: - 5f:16:93:d9:66:8f:a3:d2:64:75:73:d2:e2:8a:04: - 5f:ea:c9:e4:7b:68:09:90:4d:12:a1:96:4b:c0:94: - a6:39 + 00:9b:5b:94:c3:15:5e:59:33:46:02:5f:33:d9:e6: + a6:c3:c7:d4:0c:d1:3f:41:3d:1e:40:4b:6c:75:6f: + 90:03:da:59:bb:cf:47:9c:f5:c0:2d:9b:09:7c:2f: + 84:83:74:5d:62:40:36:b4:8f:a7:cc:1a:da:f2:0d: + 08:0a:00:ab:9e:2d:d6:ef:09:e8:82:bd:08:f3:db: + b2:51:3d:17:a4:cb:4c:48:81:cc:9d:95:6c:9b:cd: + a3:22:ac:58:6e:94:f7:19:ae:c4:9c:c3:78:02:00: + 02:e7:0b:f3:9c:7a:f0:64:62:e8:1e:b5:30:0d:3a: + 79:f1:3d:b7:6f:64:0f:fa:08:bf:76:b2:49:29:54: + 96:b6:8d:08:00:23:0b:90:cb:9d:05:e7:1b:df:2a: + 2a:25:67:a0:21:ea:c5:a1:5a:4f:17:88:bd:d6:80: + db:88:75:8c:61:54:9b:dc:09:e9:38:fe:20:8a:6b: + ad:35:97:0e:c4:b5:63:7a:3d:16:aa:b7:4f:af:48: + b6:83:a3:7b:6d:bd:19:37:9c:cb:82:82:93:8c:8a: + 10:48:30:dd:22:ac:dc:11:63:cf:43:73:bc:ce:21: + fc:c8:2e:17:86:32:2e:47:ef:ed:7f:39:03:ea:7c: + 4d:b6:56:d6:75:f6:cb:cb:be:69:42:09:e7:2d:1c: + 7f:f7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: DNS:www.example.org, DNS:mail.example.org, DNS:mail.example.com Signature Algorithm: sha256WithRSAEncryption - 97:2f:73:50:6d:4a:6c:87:68:af:ee:f9:4b:eb:23:12:12:bc: - c1:9e:26:45:ee:4e:7e:f8:6e:2a:9e:24:ac:4a:a9:31:f8:f3: - 03:1a:49:8a:40:da:44:de:9f:e6:c6:3b:2b:4e:36:43:6c:50: - b6:ef:8a:b5:c0:b0:71:c8:85:bb:6b:d3:dc:a4:da:e6:06:eb: - 3a:7c:74:af:8d:c9:ba:d5:f4:32:84:81:32:5f:92:33:1f:ea: - f9:f0:b6:0b:4c:7a:ad:1f:0a:51:79:26:e5:28:cf:93:1c:a1: - 59:3b:46:c6:4e:0f:31:8e:00:d6:a6:b3:2c:97:b4:61:b6:38: - b7:db:6c:39:2a:2f:50:14:96:40:f2:bd:5d:f0:96:b0:f4:c3: - 30:59:b7:5f:ba:42:c7:86:4b:71:6d:7a:5d:b0:02:81:b2:c3: - 62:97:7c:24:03:2e:61:7a:40:ec:f0:21:1b:6f:70:c8:6e:37: - 73:39:7e:36:2b:b4:5a:c1:e2:28:f9:7d:c0:71:cb:4c:96:cb: - 94:20:0b:fa:7b:78:d5:87:3b:b6:b2:73:84:ae:72:34:79:7d: - 7c:e7:1a:c3:9a:d1:ab:67:ac:e0:70:d0:67:de:6c:e8:a5:d8: - a0:71:8c:6c:97:7b:a6:09:7a:ca:ec:41:24:a2:43:51:14:07: - 70:65:e7:93 + 50:4f:a8:9a:be:db:68:69:40:91:4d:cc:d4:e1:bd:93:12:8b: + 65:e3:9c:9e:51:9f:eb:19:16:ea:4d:84:01:dd:a0:78:0d:e8: + af:75:8d:b9:72:c4:79:04:ac:bb:a9:f7:9d:9c:d3:e7:eb:0e: + 43:a9:64:a3:72:e0:11:ea:25:3f:e3:9c:f0:8d:b5:0b:f9:44: + 9a:85:59:2e:aa:48:f7:9a:a7:5f:be:a5:1e:86:e7:87:cb:7f: + b7:82:81:20:2c:fa:59:5d:aa:29:12:fc:97:5f:3c:09:84:70: + 69:da:1f:b6:71:82:8f:d4:9f:fd:93:26:88:65:28:dd:6f:ef: + 0e:8a:dc:a6:c0:af:12:6d:1a:93:7a:cd:81:5c:f7:8f:d4:9b: + 67:bc:0d:b3:6d:21:b7:4a:22:34:47:7c:7a:64:6f:e3:80:1a: + a6:96:d2:98:c6:e8:71:96:27:ec:15:94:50:96:ed:e7:ae:80: + fe:e4:a7:69:3a:f8:ca:f7:bc:c6:b4:3f:66:ca:39:8a:75:32: + d3:f2:f2:d7:fa:03:97:79:c2:06:e5:2b:46:58:a2:5f:2b:19: + 30:b7:2a:00:5a:31:17:74:9b:3a:e0:bf:e1:0c:c9:db:ff:5c: + 15:b8:72:2c:fa:e4:5a:fd:c5:56:32:29:dc:4e:b6:1a:ed:19: + 01:3d:e0:ce -----BEGIN CERTIFICATE----- -MIIDhTCCAm2gAwIBAgIJAJaBeD1vVc5wMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV +MIIDhTCCAm2gAwIBAgIJAJL2MR5RM6afMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW -aWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwHhcNMTQw -ODE5MjI1NTA2WhcNMjQwODE2MjI1NTA2WjBgMQswCQYDVQQGEwJVUzETMBEGA1UE +aWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwHhcNMTcw +NjA1MTcxMDQ2WhcNMjcwNjAzMTcxMDQ2WjBgMQswCQYDVQQGEwJVUzETMBEGA1UE CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwH VGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA7avF36lJCYBai+ZOAnllEXOIm3d7hIeJp6ELsHlE9b/GdiV2 -042bLOEaNxUpbaXZKhpIkvBlCry//6LHz42Ll1FXhApt4ttvFs/3A8dUQ56pBemM -7C+8/u6EmgtAOb8Srslpt+wpap/47Q5XRiq6pXTJbPXp7NJm/QyRFgumc3vkTIIh -F5uRY1pGQwh7UJeDxyJXvJ5ff+ps/ZpBJwVYEXLMB7ub9ycbE24F5a6L2pubD/Wn -nPgVvGT6wR0x3kqYMZ+IfDw/JpTpAc8/rfgXq2aBNmGwp85n+QCAkCl1bgJfFpPZ -Zo+j0mR1c9LiigRf6snke2gJkE0SoZZLwJSmOQIDAQABo0IwQDA+BgNVHREENzA1 +AQ8AMIIBCgKCAQEAm1uUwxVeWTNGAl8z2eamw8fUDNE/QT0eQEtsdW+QA9pZu89H +nPXALZsJfC+Eg3RdYkA2tI+nzBra8g0ICgCrni3W7wnogr0I89uyUT0XpMtMSIHM +nZVsm82jIqxYbpT3Ga7EnMN4AgAC5wvznHrwZGLoHrUwDTp58T23b2QP+gi/drJJ +KVSWto0IACMLkMudBecb3yoqJWegIerFoVpPF4i91oDbiHWMYVSb3AnpOP4gimut +NZcOxLVjej0WqrdPr0i2g6N7bb0ZN5zLgoKTjIoQSDDdIqzcEWPPQ3O8ziH8yC4X +hjIuR+/tfzkD6nxNtlbWdfbLy75pQgnnLRx/9wIDAQABo0IwQDA+BgNVHREENzA1 gg93d3cuZXhhbXBsZS5vcmeCEG1haWwuZXhhbXBsZS5vcmeCEG1haWwuZXhhbXBs -ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAJcvc1BtSmyHaK/u+UvrIxISvMGeJkXu -Tn74biqeJKxKqTH48wMaSYpA2kTen+bGOytONkNsULbvirXAsHHIhbtr09yk2uYG -6zp8dK+NybrV9DKEgTJfkjMf6vnwtgtMeq0fClF5JuUoz5McoVk7RsZODzGOANam -syyXtGG2OLfbbDkqL1AUlkDyvV3wlrD0wzBZt1+6QseGS3Ftel2wAoGyw2KXfCQD -LmF6QOzwIRtvcMhuN3M5fjYrtFrB4ij5fcBxy0yWy5QgC/p7eNWHO7ayc4SucjR5 -fXznGsOa0atnrOBw0GfebOil2KBxjGyXe6YJesrsQSSiQ1EUB3Bl55M= +ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAFBPqJq+22hpQJFNzNThvZMSi2XjnJ5R +n+sZFupNhAHdoHgN6K91jblyxHkErLup952c0+frDkOpZKNy4BHqJT/jnPCNtQv5 +RJqFWS6qSPeap1++pR6G54fLf7eCgSAs+lldqikS/JdfPAmEcGnaH7Zxgo/Un/2T +JohlKN1v7w6K3KbArxJtGpN6zYFc94/Um2e8DbNtIbdKIjRHfHpkb+OAGqaW0pjG +6HGWJ+wVlFCW7eeugP7kp2k6+Mr3vMa0P2bKOYp1MtPy8tf6A5d5wgblK0ZYol8r +GTC3KgBaMRd0mzrgv+EMydv/XBW4ciz65Fr9xVYyKdxOthrtGQE94M4= -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/start_after_expiry.pem b/net/data/ssl/certificates/start_after_expiry.pem index 7498654..06164e85 100644 --- a/net/data/ssl/certificates/start_after_expiry.pem +++ b/net/data/ssl/certificates/start_after_expiry.pem
@@ -1,9 +1,9 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 8 (0x8) + Serial Number: 18 (0x12) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity Not Before: Sep 1 00:00:00 2018 GMT Not After : Apr 2 00:00:00 2015 GMT @@ -12,71 +12,73 @@ Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:c4:54:f5:42:22:fc:43:f4:68:f9:15:c3:cf:a1: - 88:35:58:a3:30:cc:eb:df:54:5c:d7:a0:19:00:7b: - f4:65:6a:68:52:db:a6:52:48:26:ca:86:29:de:5e: - 7b:81:60:fb:ee:7d:11:58:38:48:61:1b:36:2b:41: - 8e:7a:99:b3:4e:5d:95:7a:4c:14:04:b4:92:ca:a3: - 75:41:bf:a9:91:3c:32:b4:02:1c:d3:86:29:b1:b0: - 02:ad:08:a9:72:13:79:95:fa:3c:c1:01:8b:e4:76: - 1f:21:ed:98:2b:63:07:7a:ce:6b:59:1c:92:5f:d8: - cb:e0:f1:a5:37:74:17:c5:56:f3:34:7f:1b:62:f9: - 7a:38:ca:9d:98:c5:e1:de:b3:68:85:92:1c:ef:16: - 51:95:b2:18:a9:8b:40:5d:ff:a0:89:2b:20:e6:7d: - 64:5c:8b:96:66:eb:b8:c8:7c:f7:7b:74:c8:9c:d2: - 3d:8e:c3:d6:94:cc:45:6b:5f:5a:9e:59:94:73:14: - c0:aa:1b:f6:8c:f5:6b:e3:dc:60:bb:b3:d8:05:74: - 94:ac:4d:42:1d:8a:d0:da:21:fe:19:49:af:2f:ca: - d1:97:b8:85:a2:07:b4:64:23:3e:48:60:22:36:d5: - f0:71:43:3a:76:47:db:c6:23:88:e8:9e:44:14:05: - 44:d3 + 00:9a:5a:33:cc:a1:02:df:a5:c4:bc:57:68:1b:03: + 11:b3:58:58:8e:78:63:8a:02:0e:8a:ec:5d:96:a6: + 3b:3f:98:db:3e:ba:d6:56:48:8b:2b:00:3c:ef:e2: + 93:08:67:46:68:93:05:2c:63:4c:07:d2:01:6f:36: + 72:cb:d1:40:a4:7f:a2:53:0f:ae:72:92:2f:c9:8a: + 37:96:7b:a6:a9:a0:32:68:39:5b:03:d1:7b:be:fd: + 7c:9d:19:87:87:83:08:f4:66:5b:d4:f5:89:f7:52: + 93:16:6a:6c:70:41:d8:0a:4d:fd:3f:08:e1:3a:d5: + 26:b5:12:09:d0:0d:3b:6c:34:ae:56:46:0f:12:ab: + 39:f9:df:d9:a7:b6:95:ba:d3:96:de:64:42:44:83: + 6a:21:9a:2d:a3:5c:eb:ea:d6:9b:63:80:77:0a:12: + b3:12:1e:31:f1:b3:ac:b2:69:ca:01:51:4a:92:0a: + e5:7f:b5:d5:3f:17:d8:b3:e0:d2:14:c7:b1:3d:0a: + be:e2:ef:4f:25:94:0d:d3:39:2b:1e:fd:ff:69:89: + a8:1e:18:38:1e:2f:6b:8b:9d:e5:2e:1c:ce:f0:9f: + c2:f5:d9:14:31:2a:c5:f2:5f:04:d9:dc:ec:80:48: + 50:5f:b0:be:b7:50:57:22:40:f1:53:40:8e:97:5f: + 66:1d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 98:54:9A:FE:46:04:8F:0F:3A:D6:86:26:71:05:70:71:B1:31:34:4C + E8:35:95:5F:B1:76:85:86:C1:35:20:30:76:70:AC:2B:AE:6E:48:DA X509v3 Authority Key Identifier: - keyid:BB:9E:AC:B3:7A:32:BA:83:21:C8:AC:02:95:09:0B:CA:68:03:EC:DB + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 09:7d:90:8a:cc:84:00:38:f8:a8:90:48:d3:7e:f0:58:37:dc: - ad:1b:87:a9:ef:de:f8:53:a9:23:73:57:10:c9:0c:6b:c4:fd: - 0b:e6:96:7d:d5:87:a6:f5:45:6e:5b:62:aa:d0:55:58:7f:59: - a7:ba:28:22:2a:9d:ea:f7:9a:4b:f7:6b:f9:f1:65:56:d9:ef: - 5c:9c:b6:45:3d:15:8f:83:d5:b4:cf:78:7e:8e:b6:8a:b7:c5: - 33:99:1c:8b:49:51:81:d1:eb:01:1c:e5:49:69:2b:99:ad:9f: - 5f:31:02:3a:f6:41:27:68:2f:2c:08:cd:89:91:86:5b:03:44: - d6:51:29:84:58:bc:a7:94:6e:59:b9:dd:0b:20:8e:c7:5c:4e: - 88:38:77:16:59:59:e4:10:ee:27:9e:aa:dd:c3:fc:2c:a6:96: - 95:7e:8f:6c:e2:97:f9:80:d3:92:f4:4d:31:2b:bf:76:dc:2e: - c1:1e:9b:53:e7:4d:6f:36:08:8e:75:a9:e3:07:46:c4:b5:e3: - 97:0d:c6:d6:f3:10:36:aa:08:c0:76:1b:90:b8:97:b3:9f:d5: - 42:c0:59:75:96:50:4c:d5:31:58:61:96:e3:62:da:e9:9f:ec: - 9f:77:81:13:55:03:e4:fa:b3:93:0d:3a:78:db:7d:d1:dd:26: - ad:7e:5f:11 + a2:76:a0:fc:72:5c:0c:48:59:8e:fb:06:02:1d:de:e6:cd:eb: + 58:97:0c:4e:b8:f3:d2:af:f5:4c:35:36:fc:17:57:58:cc:f0: + fe:67:57:b0:26:f1:07:8f:01:72:62:d9:a0:a4:1f:95:d7:dc: + ea:48:0c:47:a2:57:dd:0b:0d:21:81:24:8f:15:0e:c3:7b:6c: + 3a:46:13:47:4f:fb:bf:b8:f1:74:04:ca:dd:17:40:ed:f4:a9: + 86:82:9a:b3:a5:1b:0e:2b:e2:f2:1b:c1:30:c9:aa:51:c5:f9: + 33:58:33:25:21:d1:10:34:6a:4d:89:9d:9e:ef:ef:cf:ed:3b: + 08:67:47:17:62:3b:5f:f7:81:14:57:86:c7:3c:fc:30:6b:20: + 8d:26:bc:b6:95:83:8d:84:2a:3a:12:25:02:22:c5:0c:11:cc: + eb:61:46:d4:01:f6:65:e0:b9:8d:6c:3e:7b:66:56:d8:c4:2d: + b5:c1:46:9f:b6:19:ae:ba:45:47:86:34:77:2d:3f:4d:66:4f: + fc:84:83:7a:98:c1:cc:b8:79:4f:21:d6:14:45:27:f1:c9:df: + 2d:db:b1:45:28:45:c9:73:a6:e6:6c:50:a5:9a:5a:dc:4b:87: + 9f:7c:fe:29:ed:50:c3:dd:6b:ad:2f:2e:97:1a:02:33:28:6d: + 68:72:7d:31 -----BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgIBCDANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTgwOTAxMDAwMDAwWhcNMTUwNDAyMDAwMDAwWjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxFT1QiL8Q/Ro+RXDz6GINVijMMzr -31Rc16AZAHv0ZWpoUtumUkgmyoYp3l57gWD77n0RWDhIYRs2K0GOepmzTl2VekwU -BLSSyqN1Qb+pkTwytAIc04YpsbACrQipchN5lfo8wQGL5HYfIe2YK2MHes5rWRyS -X9jL4PGlN3QXxVbzNH8bYvl6OMqdmMXh3rNohZIc7xZRlbIYqYtAXf+giSsg5n1k -XIuWZuu4yHz3e3TInNI9jsPWlMxFa19anlmUcxTAqhv2jPVr49xgu7PYBXSUrE1C -HYrQ2iH+GUmvL8rRl7iFoge0ZCM+SGAiNtXwcUM6dkfbxiOI6J5EFAVE0wIDAQAB -o4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUmFSa/kYEjw861oYmcQVwcbEx -NEwwHwYDVR0jBBgwFoAUu56ss3oyuoMhyKwClQkLymgD7NswHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEL -BQADggEBAAl9kIrMhAA4+KiQSNN+8Fg33K0bh6nv3vhTqSNzVxDJDGvE/Qvmln3V -h6b1RW5bYqrQVVh/Wae6KCIqner3mkv3a/nxZVbZ71yctkU9FY+D1bTPeH6Otoq3 -xTOZHItJUYHR6wEc5UlpK5mtn18xAjr2QSdoLywIzYmRhlsDRNZRKYRYvKeUblm5 -3QsgjsdcTog4dxZZWeQQ7ieeqt3D/CymlpV+j2zil/mA05L0TTErv3bcLsEem1Pn -TW82CI51qeMHRsS145cNxtbzEDaqCMB2G5C4l7Of1ULAWXWWUEzVMVhhluNi2umf -7J93gRNVA+T6s5MNOnjbfdHdJq1+XxE= +MIIDvzCCAqegAwIBAgIBEjANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE4MDkwMTAw +MDAwMFoXDTE1MDQwMjAwMDAwMFowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAJpaM8yhAt+lxLxXaBsDEbNYWI54Y4oCDorsXZamOz+Y2z661lZIiysA +PO/ikwhnRmiTBSxjTAfSAW82csvRQKR/olMPrnKSL8mKN5Z7pqmgMmg5WwPRe779 +fJ0Zh4eDCPRmW9T1ifdSkxZqbHBB2ApN/T8I4TrVJrUSCdANO2w0rlZGDxKrOfnf +2ae2lbrTlt5kQkSDaiGaLaNc6+rWm2OAdwoSsxIeMfGzrLJpygFRSpIK5X+11T8X +2LPg0hTHsT0KvuLvTyWUDdM5Kx79/2mJqB4YOB4va4ud5S4czvCfwvXZFDEqxfJf +BNnc7IBIUF+wvrdQVyJA8VNAjpdfZh0CAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFOg1lV+xdoWGwTUgMHZwrCuubkjaMB8GA1UdIwQYMBaAFJsmC4qY +qbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP +BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQCidqD8clwMSFmO+wYC +Hd7mzetYlwxOuPPSr/VMNTb8F1dYzPD+Z1ewJvEHjwFyYtmgpB+V19zqSAxHolfd +Cw0hgSSPFQ7De2w6RhNHT/u/uPF0BMrdF0Dt9KmGgpqzpRsOK+LyG8EwyapRxfkz +WDMlIdEQNGpNiZ2e7+/P7TsIZ0cXYjtf94EUV4bHPPwwayCNJry2lYONhCo6EiUC +IsUMEczrYUbUAfZl4LmNbD57ZlbYxC21wUafthmuukVHhjR3LT9NZk/8hIN6mMHM +uHlPIdYURSfxyd8t27FFKEXJc6bmbFClmlrcS4effP4p7VDD3WutLy6XGgIzKG1o +cn0x -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/subjectAltName_sanity_check.pem b/net/data/ssl/certificates/subjectAltName_sanity_check.pem index f2a8881b..5ed3a9b 100644 --- a/net/data/ssl/certificates/subjectAltName_sanity_check.pem +++ b/net/data/ssl/certificates/subjectAltName_sanity_check.pem
@@ -1,35 +1,35 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 9569410291102924913 (0x84cd5ff577284071) + Serial Number: 16251326626457629923 (0xe1884f76aadab4e3) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Validity - Not Before: Aug 19 22:55:06 2014 GMT - Not After : Aug 16 22:55:06 2024 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:bd:c6:0f:42:dc:65:92:0b:07:00:60:9a:4e:b0: - 84:f0:f1:fa:0b:65:8c:c6:45:ed:bc:ce:af:a4:5c: - 4f:78:6f:30:4c:97:42:66:cc:ad:66:4a:11:4a:b5: - 8a:57:f0:58:a4:54:1f:f9:ac:82:67:f8:7c:55:36: - d7:c0:b1:5a:06:fa:25:c2:07:36:64:a7:54:c2:62: - 67:2d:11:30:77:ef:36:3b:d9:2f:9a:2c:2e:71:2b: - d7:63:f7:1a:fd:e9:b8:c8:4a:a1:d2:b9:d4:dc:06: - ca:68:52:e2:8f:69:ef:2b:a4:7b:1e:4c:db:e5:52: - b2:17:b6:e7:f6:fd:91:11:f2:4f:08:d5:9d:7f:b6: - 0b:1d:8f:ff:17:5e:6f:2b:ef:7b:6e:a3:2c:bc:a9: - d0:c3:f4:f1:26:65:4a:23:1e:75:1e:ae:d6:6f:88: - 6d:0a:a4:c2:96:34:e0:d4:26:f2:2d:d3:16:26:a3: - 3c:ac:1a:b4:be:ef:c0:84:6a:95:4e:71:c6:be:e3: - c4:15:55:5e:94:c3:a8:03:40:34:21:76:48:56:1e: - e4:26:05:c0:47:67:44:59:04:47:b2:38:e0:2d:69: - 11:de:9a:6b:18:7f:57:56:6f:7c:6c:da:ff:a6:c5: - db:b0:56:a2:81:de:ae:ca:4b:a0:b3:66:1d:f7:96: - 41:33 + 00:be:1b:08:be:be:01:88:90:32:54:37:9f:95:fc: + 22:04:22:e1:ef:a8:28:b5:20:a8:dd:f9:ff:4e:3b: + ca:ca:e2:05:43:a0:6e:bb:db:0c:6c:e8:59:05:83: + 2a:65:14:32:83:9b:af:04:61:ab:2b:35:c7:1f:3a: + 59:6b:24:3c:91:f1:0e:18:33:23:0a:13:63:80:59: + 1e:4d:65:e8:60:67:1e:07:8f:70:19:f5:59:5f:b6: + 8b:54:83:c6:a4:33:e8:91:56:9d:f6:90:ab:3d:eb: + 6f:e9:91:07:d2:60:5c:d7:4c:36:97:7e:b4:ff:ac: + f0:8a:41:8f:50:fb:c6:bd:ee:d9:00:ac:d9:f6:4f: + c8:49:fc:1c:b5:3e:f6:74:4d:8e:cc:74:cb:4f:af: + f9:a6:42:dc:9f:e1:4b:0e:bb:82:4f:46:06:3d:6a: + 68:d6:45:96:3e:9c:c6:60:ac:c6:7e:ed:d7:39:16: + 85:c6:91:97:12:6f:74:2a:60:bf:2e:d7:ff:91:d8: + 81:46:d4:e9:33:19:5a:04:35:34:96:c2:de:9d:a8: + 54:75:ed:91:da:94:ed:91:f5:1d:2a:5e:66:b3:4b: + 0f:2f:1f:97:81:83:c4:5e:34:d5:e6:cf:df:e0:a2: + d1:93:e5:64:64:6f:50:5c:7d:bc:4d:1c:2e:93:6a: + ad:65 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical @@ -37,41 +37,41 @@ X509v3 Subject Alternative Name: IP Address:127.0.0.2, IP Address:FE80:0:0:0:0:0:0:1, DNS:test.example, email:test@test.example, othername:<unsupported>, DirName:/CN=127.0.0.3 Signature Algorithm: sha256WithRSAEncryption - 9c:b8:a4:26:88:6f:1b:be:93:4d:3f:89:d2:cb:b8:b9:7a:1e: - b6:b0:66:8a:df:79:a1:37:c3:ba:92:17:19:bb:4e:d3:4a:21: - e2:78:c3:27:6c:4a:d4:11:e0:bf:90:38:ba:9a:3c:f8:54:d1: - ac:56:32:4f:b1:d1:6c:b9:92:bf:98:a5:d0:55:91:fc:d7:74: - 74:33:3d:f9:e2:f2:97:0a:32:5b:05:e4:2e:f9:41:a6:2c:2c: - dc:67:58:81:67:b5:84:c3:f2:94:9d:ce:2b:80:ce:48:ec:08: - 2a:01:78:4c:f5:8c:03:2b:87:06:1d:ed:35:53:09:c7:e5:06: - af:3b:fa:6c:42:a5:be:1e:dd:ce:f8:cc:bf:0e:c5:34:91:7c: - 4c:b5:2f:07:b4:af:76:bc:b3:22:c6:eb:d7:b0:47:00:e4:89: - ef:8c:fe:be:f8:6e:15:1f:f9:ac:de:b7:3e:dc:c2:e0:65:7c: - d0:8b:5d:90:0e:68:3e:51:2b:5c:74:f0:fd:6a:14:6d:47:a4: - 45:e8:e5:ba:be:ac:b8:a5:af:0f:c0:ac:99:b7:0c:70:d2:b4: - 53:4a:5b:9e:3b:21:1d:ba:ad:ac:b1:0a:79:53:c3:9d:d9:d6: - 1f:a7:d3:5f:99:9a:35:dd:85:1d:8e:ad:f7:ea:42:9d:a9:f3: - 47:43:11:13 + 27:c1:5a:11:e6:f9:3b:69:a1:61:a9:af:83:21:3c:d0:60:43: + b2:e4:27:b7:46:67:d8:ae:dc:b7:51:85:53:25:b8:d8:48:d9: + ce:2d:f4:17:2c:75:a1:2d:ad:fe:73:a6:1e:0b:3f:4a:1a:df: + 85:99:db:57:b0:cc:8d:3d:01:74:11:2e:51:81:c4:4b:2d:ee: + bd:05:84:59:ce:a5:40:c5:3d:fa:19:d7:48:32:22:ca:49:d6: + e3:74:8f:fb:02:0e:d1:73:76:7a:3d:ca:e8:96:7e:0d:2e:df: + 79:44:ce:aa:f6:ea:c2:61:d6:54:11:c9:38:85:72:4f:9f:94: + b0:f9:d1:84:43:05:5a:8a:37:d4:ce:d7:e9:16:23:7e:10:67: + 8b:61:00:54:c6:13:da:03:e3:ed:4f:46:eb:44:af:5c:65:e7: + 93:1d:2e:ab:d3:8e:35:e5:4e:d1:56:ef:09:1b:74:b3:a4:ca: + 00:83:ea:e0:95:ed:ef:f3:cd:8a:1e:da:71:6d:40:e7:36:56: + 26:50:9f:5a:86:7f:45:4a:d4:0c:6b:40:68:78:fe:57:0a:e7: + 96:8c:ec:38:57:ac:89:58:54:e0:14:76:4c:93:40:7d:2e:d7: + 36:1d:71:5a:ac:73:f8:ad:80:d3:52:48:b4:68:f3:06:ab:b7: + 5a:b4:2c:1a -----BEGIN CERTIFICATE----- -MIIDyDCCArCgAwIBAgIJAITNX/V3KEBxMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV +MIIDyDCCArCgAwIBAgIJAOGIT3aq2rTjMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW -aWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwHhcNMTQw -ODE5MjI1NTA2WhcNMjQwODE2MjI1NTA2WjBgMQswCQYDVQQGEwJVUzETMBEGA1UE +aWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwHhcNMTcw +NjA1MTcxMDQ2WhcNMjcwNjAzMTcxMDQ2WjBgMQswCQYDVQQGEwJVUzETMBEGA1UE CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwH VGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAvcYPQtxlkgsHAGCaTrCE8PH6C2WMxkXtvM6vpFxPeG8wTJdC -ZsytZkoRSrWKV/BYpFQf+ayCZ/h8VTbXwLFaBvolwgc2ZKdUwmJnLREwd+82O9kv -miwucSvXY/ca/em4yEqh0rnU3AbKaFLij2nvK6R7Hkzb5VKyF7bn9v2REfJPCNWd -f7YLHY//F15vK+97bqMsvKnQw/TxJmVKIx51Hq7Wb4htCqTCljTg1CbyLdMWJqM8 -rBq0vu/AhGqVTnHGvuPEFVVelMOoA0A0IXZIVh7kJgXAR2dEWQRHsjjgLWkR3ppr -GH9XVm98bNr/psXbsFaigd6uykugs2Yd95ZBMwIDAQABo4GEMIGBMA8GA1UdEwEB +AQ8AMIIBCgKCAQEAvhsIvr4BiJAyVDeflfwiBCLh76gotSCo3fn/TjvKyuIFQ6Bu +u9sMbOhZBYMqZRQyg5uvBGGrKzXHHzpZayQ8kfEOGDMjChNjgFkeTWXoYGceB49w +GfVZX7aLVIPGpDPokVad9pCrPetv6ZEH0mBc10w2l360/6zwikGPUPvGve7ZAKzZ +9k/ISfwctT72dE2OzHTLT6/5pkLcn+FLDruCT0YGPWpo1kWWPpzGYKzGfu3XORaF +xpGXEm90KmC/Ltf/kdiBRtTpMxlaBDU0lsLenahUde2R2pTtkfUdKl5ms0sPLx+X +gYPEXjTV5s/f4KLRk+VkZG9QXH28TRwuk2qtZQIDAQABo4GEMIGBMA8GA1UdEwEB /wQFMAMBAf8wbgYDVR0RBGcwZYcEfwAAAocQ/oAAAAAAAAAAAAAAAAAAAYIMdGVz dC5leGFtcGxlgRF0ZXN0QHRlc3QuZXhhbXBsZaASBgMqAwSgCwwJaWdub3JlIG1l -pBYwFDESMBAGA1UEAwwJMTI3LjAuMC4zMA0GCSqGSIb3DQEBCwUAA4IBAQCcuKQm -iG8bvpNNP4nSy7i5eh62sGaK33mhN8O6khcZu07TSiHieMMnbErUEeC/kDi6mjz4 -VNGsVjJPsdFsuZK/mKXQVZH813R0Mz354vKXCjJbBeQu+UGmLCzcZ1iBZ7WEw/KU -nc4rgM5I7AgqAXhM9YwDK4cGHe01UwnH5QavO/psQqW+Ht3O+My/DsU0kXxMtS8H -tK92vLMixuvXsEcA5InvjP6++G4VH/ms3rc+3MLgZXzQi12QDmg+UStcdPD9ahRt -R6RF6OW6vqy4pa8PwKyZtwxw0rRTSlueOyEduq2ssQp5U8Od2dYfp9NfmZo13YUd -jq336kKdqfNHQxET +pBYwFDESMBAGA1UEAwwJMTI3LjAuMC4zMA0GCSqGSIb3DQEBCwUAA4IBAQAnwVoR +5vk7aaFhqa+DITzQYEOy5Ce3RmfYrty3UYVTJbjYSNnOLfQXLHWhLa3+c6YeCz9K +Gt+FmdtXsMyNPQF0ES5RgcRLLe69BYRZzqVAxT36GddIMiLKSdbjdI/7Ag7Rc3Z6 +Pcroln4NLt95RM6q9urCYdZUEck4hXJPn5Sw+dGEQwVaijfUztfpFiN+EGeLYQBU +xhPaA+PtT0brRK9cZeeTHS6r04415U7RVu8JG3SzpMoAg+rgle3v882KHtpxbUDn +NlYmUJ9ahn9FStQMa0BoeP5XCueWjOw4V6yJWFTgFHZMk0B9Ltc2HXFarHP4rYDT +Uki0aPMGq7datCwa -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/subjectAltName_www_example_com.pem b/net/data/ssl/certificates/subjectAltName_www_example_com.pem index 88a338eee..f08f3fde 100644 --- a/net/data/ssl/certificates/subjectAltName_www_example_com.pem +++ b/net/data/ssl/certificates/subjectAltName_www_example_com.pem
@@ -1,35 +1,35 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 15837232328995864193 (0xdbc926e4db217e81) + Serial Number: 9226305053301513866 (0x800a6b901b6d9e8a) Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=localhost + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Validity - Not Before: Mar 28 22:42:07 2017 GMT - Not After : Mar 26 22:42:07 2027 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=localhost + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT + Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:b5:12:3c:e3:76:25:c4:e5:9f:ac:69:3a:dd:40: - 78:95:ef:1e:f2:b6:c2:74:14:e7:ba:cc:f3:a6:46: - 6c:51:1f:2e:4e:9c:99:7a:82:1f:43:bc:28:8a:74: - 8e:52:73:59:24:ac:0a:71:c9:b5:30:a9:d3:85:f9: - 8c:76:d0:19:43:fe:cb:c0:d6:4b:9e:9b:76:63:84: - ae:99:4d:14:a2:be:ae:81:5d:05:22:b9:46:39:66: - 4e:42:10:57:64:26:27:f2:88:7f:55:10:38:83:7a: - dd:6c:09:ae:f1:09:33:04:84:ab:48:53:1c:9c:42: - b4:f7:ee:c5:21:7a:65:56:91:64:99:9b:f4:2c:22: - 50:dc:36:35:ac:04:22:eb:5c:2d:4c:6c:4b:16:70: - f7:13:36:f9:32:ec:6d:e8:f7:2e:f2:b9:b8:0c:e2: - 99:de:ed:61:7d:66:17:33:67:0e:6e:87:5d:05:65: - e1:98:46:2c:e7:8e:6d:a7:20:ab:87:5b:f3:32:55: - cb:2d:df:76:9b:cf:06:71:5c:06:77:3b:20:49:6b: - 47:5e:6e:ae:42:99:8b:8f:9e:c4:ba:4c:50:ec:14: - a1:43:8f:24:e9:9a:c8:ca:ec:b3:e2:26:d4:a5:ba: - c3:f8:90:b1:03:2a:05:72:a4:3f:17:bd:9c:af:68: - e4:17 + 00:c2:db:bc:7e:99:b1:50:d8:bf:22:12:80:24:5b: + ab:6d:bb:75:86:e1:14:17:9b:e4:c8:f2:99:ef:aa: + be:8f:4a:74:29:a1:ce:24:55:aa:f1:b5:e9:9a:c7: + 01:04:e1:87:c9:38:32:ff:fe:f1:26:e4:36:74:62: + 84:a7:13:1b:44:b5:4c:9f:41:86:f2:28:7c:d1:24: + 3e:c0:f4:4e:0b:81:e8:f1:f7:54:bf:b0:87:2f:19: + 17:92:aa:f7:fd:86:b3:bf:2c:5b:23:da:9b:13:ae: + 0d:32:4d:b4:94:72:c6:08:05:95:c4:1d:b7:e2:34: + 35:6e:44:44:c1:5d:d5:61:78:b9:e9:70:55:e6:a0: + cf:08:1d:7e:85:48:3e:51:33:6b:15:c2:11:f9:37: + db:cf:8b:6a:f0:cc:f7:cc:41:3a:ef:e6:78:3d:03: + 9f:ab:79:3f:aa:6f:e5:68:07:21:f0:62:5b:cd:2d: + d6:fb:fc:9f:71:a4:14:34:d7:3d:a3:27:ee:89:4c: + 6c:06:62:ab:1a:6e:7b:a4:1a:57:0f:93:2d:e5:c0: + 83:43:6d:e8:e3:72:53:58:2d:0f:57:f4:2a:37:84: + bf:d7:7f:f9:4f:5d:9a:96:ce:92:54:86:b4:6c:20: + 0e:fe:9a:f1:74:e3:65:3c:03:09:61:ea:6d:00:9a: + 70:df Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical @@ -37,39 +37,39 @@ X509v3 Subject Alternative Name: DNS:www.example.com Signature Algorithm: sha256WithRSAEncryption - 38:41:86:d5:01:6b:00:3d:61:1e:ad:f1:82:1d:01:fc:c1:98: - 8e:d7:ea:46:2d:e3:7c:22:3c:ce:f2:64:f0:73:0c:e5:ea:21: - 3a:8f:63:e1:c0:27:3d:84:ed:0f:aa:0e:d3:ca:76:67:ba:b9: - f4:da:fc:d5:ec:07:f4:97:08:2c:55:e4:be:5f:0c:e7:c9:7f: - be:81:b5:76:d2:47:6b:be:01:82:8c:75:27:df:78:99:62:55: - 74:91:d9:c7:37:a3:62:1f:36:0b:ed:9f:54:01:be:87:9a:3d: - d5:90:1e:98:13:29:cd:23:9b:d4:a8:d0:c0:18:04:d5:05:55: - 97:8d:6b:89:14:0a:1b:b4:2b:bd:7d:05:68:87:72:64:9e:b9: - 66:a2:89:21:2a:ae:a1:b3:ef:22:0d:e1:80:46:52:11:20:3a: - a8:7e:18:1e:e1:19:2d:f5:de:cc:b9:f2:ff:6a:88:db:c1:31: - dc:34:25:e2:c0:4c:a7:6e:28:6e:b1:10:7b:04:ed:a4:82:3a: - 81:55:44:1a:87:25:14:69:de:2d:c0:7d:3b:e3:21:c4:21:e5: - ca:f6:7c:11:12:d8:7f:c1:b7:f5:45:ca:6b:e5:41:91:5d:d8: - db:64:48:01:64:a5:df:85:51:4b:c4:ed:27:e3:2f:b4:71:f4: - c6:a1:a2:ad + c1:24:33:a1:13:e3:3d:7a:aa:1c:d7:7e:02:27:b3:af:3b:f7: + 88:de:6a:97:11:28:07:ea:39:3b:11:89:9d:07:e5:7c:0e:b1: + 0e:5f:0f:6a:5a:b6:e4:35:ed:45:55:2c:b2:ed:c8:5a:af:69: + 86:87:b6:4e:11:3e:4d:82:a1:f5:11:ce:3c:fb:18:4a:1a:be: + e0:31:4c:bb:0d:2b:90:49:58:a7:1a:33:f3:16:84:d1:f4:ec: + c9:7a:eb:65:04:ac:03:3e:17:97:ac:fb:db:3a:52:bf:af:22: + f7:10:00:a8:ad:d6:0f:a3:c1:f1:6a:9e:78:30:de:0d:03:ad: + f6:8e:f6:6f:4b:af:5f:f4:76:ec:23:fa:d1:a0:1f:40:7f:e4: + 7d:84:cd:5f:42:c3:4c:7d:0e:89:3a:3e:ae:34:18:18:31:45: + 44:2f:d0:1f:e9:46:f0:ee:f2:c4:c7:a8:4d:f3:2d:c6:66:a5: + 02:01:a5:0b:7c:3f:91:d0:38:41:ad:d6:3d:0c:0c:3e:43:81: + cb:7e:87:95:b2:ae:7e:ff:67:11:ea:98:66:b4:3e:87:95:e3: + 37:09:e8:de:22:bb:7b:02:00:40:1b:77:a6:09:65:75:45:a0: + 0a:49:23:32:4e:b1:b5:c3:fb:a2:5b:d5:88:7d:35:04:7d:5b: + 79:53:f5:a0 -----BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIJANvJJuTbIX6BMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV +MIIDcjCCAlqgAwIBAgIJAIAKa5AbbZ6KMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW -aWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMTcw -MzI4MjI0MjA3WhcNMjcwMzI2MjI0MjA3WjBgMQswCQYDVQQGEwJVUzETMBEGA1UE +aWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwHhcNMTcw +NjA1MTcxMDQ2WhcNMjcwNjAzMTcxMDQ2WjBgMQswCQYDVQQGEwJVUzETMBEGA1UE CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwH -VGVzdCBDQTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAtRI843YlxOWfrGk63UB4le8e8rbCdBTnuszzpkZsUR8uTpyZ -eoIfQ7woinSOUnNZJKwKccm1MKnThfmMdtAZQ/7LwNZLnpt2Y4SumU0Uor6ugV0F -IrlGOWZOQhBXZCYn8oh/VRA4g3rdbAmu8QkzBISrSFMcnEK09+7FIXplVpFkmZv0 -LCJQ3DY1rAQi61wtTGxLFnD3Ezb5Muxt6Pcu8rm4DOKZ3u1hfWYXM2cOboddBWXh -mEYs545tpyCrh1vzMlXLLd92m88GcVwGdzsgSWtHXm6uQpmLj57EukxQ7BShQ48k -6ZrIyuyz4ibUpbrD+JCxAyoFcqQ/F72cr2jkFwIDAQABoy8wLTAPBgNVHRMBAf8E +VGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAwtu8fpmxUNi/IhKAJFurbbt1huEUF5vkyPKZ76q+j0p0KaHO +JFWq8bXpmscBBOGHyTgy//7xJuQ2dGKEpxMbRLVMn0GG8ih80SQ+wPROC4Ho8fdU +v7CHLxkXkqr3/YazvyxbI9qbE64NMk20lHLGCAWVxB234jQ1bkREwV3VYXi56XBV +5qDPCB1+hUg+UTNrFcIR+Tfbz4tq8Mz3zEE67+Z4PQOfq3k/qm/laAch8GJbzS3W ++/yfcaQUNNc9oyfuiUxsBmKrGm57pBpXD5Mt5cCDQ23o43JTWC0PV/QqN4S/13/5 +T12als6SVIa0bCAO/prxdONlPAMJYeptAJpw3wIDAQABoy8wLTAPBgNVHRMBAf8E BTADAQH/MBoGA1UdEQQTMBGCD3d3dy5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsF -AAOCAQEAOEGG1QFrAD1hHq3xgh0B/MGYjtfqRi3jfCI8zvJk8HMM5eohOo9j4cAn -PYTtD6oO08p2Z7q59Nr81ewH9JcILFXkvl8M58l/voG1dtJHa74Bgox1J994mWJV -dJHZxzejYh82C+2fVAG+h5o91ZAemBMpzSOb1KjQwBgE1QVVl41riRQKG7QrvX0F -aIdyZJ65ZqKJISquobPvIg3hgEZSESA6qH4YHuEZLfXezLny/2qI28Ex3DQl4sBM -p24obrEQewTtpII6gVVEGoclFGneLcB9O+MhxCHlyvZ8ERLYf8G39UXKa+VBkV3Y -22RIAWSl34VRS8TtJ+MvtHH0xqGirQ== +AAOCAQEAwSQzoRPjPXqqHNd+Aiezrzv3iN5qlxEoB+o5OxGJnQflfA6xDl8Palq2 +5DXtRVUssu3IWq9phoe2ThE+TYKh9RHOPPsYShq+4DFMuw0rkElYpxoz8xaE0fTs +yXrrZQSsAz4Xl6z72zpSv68i9xAAqK3WD6PB8WqeeDDeDQOt9o72b0uvX/R27CP6 +0aAfQH/kfYTNX0LDTH0OiTo+rjQYGDFFRC/QH+lG8O7yxMeoTfMtxmalAgGlC3w/ +kdA4Qa3WPQwMPkOBy36HlbKufv9nEeqYZrQ+h5XjNwno3iK7ewIAQBt3pglldUWg +CkkjMk6xtcP7olvViH01BH1beVP1oA== -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/test_mail_google_com.pem b/net/data/ssl/certificates/test_mail_google_com.pem deleted file mode 100644 index d72d562..0000000 --- a/net/data/ssl/certificates/test_mail_google_com.pem +++ /dev/null
@@ -1,26 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEXDCCAkSgAwIBAgIBBjANBgkqhkiG9w0BAQUFADBgMRAwDgYDVQQDEwdUZXN0 -IENBMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -TW91bnRhaW4gVmlldzESMBAGA1UEChMJQ2VydCBUZXN0MB4XDTExMTAxMTE5MTYy -MVoXDTEzMDcyNzAwMDAwMFowbTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlm -b3JuaWExEjAQBgNVBAoTCUNlcnQgVGVzdDEbMBkGA1UECxMSR29hdCBUZWxlcG9y -dGF0aW9uMRgwFgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wXDANBgkqhkiG9w0BAQEF -AANLADBIAkEAvy9N7zZ2yuMamRGUDc7KiLHq+OwVkfmvDRsrj77+MMR1DkUx1Qez -s+tKtm6dyi5mariRL5ChbgIBqNYhb/cecQIDAQABo4HbMIHYMBIGA1UdEwEB/wQI -MAYBAf8CAQEwDgYDVR0PAQH/BAQDAgIEMB0GA1UdDgQWBBQQFF3/oZUdPuM69r0i -Gl5tEK5e7TCBkgYDVR0jBIGKMIGHgBRdzn+Z49QZQTFPxs+xJfVar+OXMaFkpGIw -YDEQMA4GA1UEAxMHVGVzdCBDQTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlm -b3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxEjAQBgNVBAoTCUNlcnQgVGVz -dIIJANRRk9Q/3tlOMA0GCSqGSIb3DQEBBQUAA4ICAQCPO6wgG6cFmu5ZgAN9q+dS -BVrMiJhHj62Tlw7qNjD+VAfidTTtQPM8T0y2LtNe2epO6jDOyIpRwsKkFi5mozcs -Dd3CfXAs7fkdY4ZnAxjXhhk1fvMkomR6CfTHEwcGkfwVm2MDozZmYbS83OP+E82B -+yKA41ppbw75/meJzH4nSECBd/Whzi8AuuX6e3bSae6XEAdhBQoLHyNAvZ0IEeCb -sI3DvXdpIP0LyYJH6+F/KG5Jugby44HuAK1MBn9/f5tYplucOj5cyw/fYWd8REGD -Ob71lh9/eZVcYjvbF6LxlizZQ+DNHV2QkHvSQqAACDbpFCUcU9KO5xvN8RaVtFmJ -sDuHtxDDXFcXHhLh6bcC2KFrsmwEV68jmek0++eMa/W99ADzNWUWCmGoyZQafP2e -eqQ6Ry8wgH+ZVkhQaaGk4fCKZATpX7//qdj7IzO52Kpx0dwsW7mHxPjdRKQzThkn -lwFSiKByJDMOm9JbjpGf52JsCX4OSFuHCRcc2TB867xKRfBoAXE06fMS2lTwAcQh -3vdzO0gEv9WOvdvehvngcrWzGwIdGaP6BBXi+9b5wPBR8ravMPAgQBXg01vME+/+ -TkpEaCFACOttO0YkVqG6lFFT1wigsh3k4/+Eyh/RsLTsFObZBJsMLetbY/XzwhTf -LyeXa2sT1sk6l+EfrzWS1Q== ------END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/tls_feature_extension.pem b/net/data/ssl/certificates/tls_feature_extension.pem index d16fcf7..67841a9 100644 --- a/net/data/ssl/certificates/tls_feature_extension.pem +++ b/net/data/ssl/certificates/tls_feature_extension.pem
@@ -1,21 +1,21 @@ -----BEGIN CERTIFICATE----- -MIIDaTCCAlGgAwIBAgIJAKDZZ4Vf7QNDMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV +MIIDaTCCAlGgAwIBAgIJAIeI+/LexiCJMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW -aWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwHhcNMTYx -MDIwMjIzMzQzWhcNMTcxMDIwMjIzMzQzWjBgMQswCQYDVQQGEwJVUzETMBEGA1UE +aWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwHhcNMTcw +NjA1MTcxMDU0WhcNMTgwNjA1MTcxMDU0WjBgMQswCQYDVQQGEwJVUzETMBEGA1UE CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwH VGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA2e6TVVWL8mcllu2KipxZVpOsEuxDB5cwLYshaHyZz2K8azK9 -K/wD2jNe78DGu1o+mYOC05x/CvYk3jFvGGdYeBqbmxN2nFC7z3pVBUlLGvn9Smwa -ki6sCuoK/bdjQW2HntA+A3vvUwR/j4X8XqnqD7p5vxEDknjpABiIXuE3mF1DPKT0 -2ZMilpW0DdqfvedlWyR0Pmi+iZ/zOSdrIrPpktQN+dcwu5dLsGNRcXD5JceHNuNJ -+YScGhyh3649aS6WiEZ+hfeLiMkMGfWmU0qST6aJN4m/c6q6rvFwT08Z2SP27wqT -wXDd51jWCGU+wWPLgFZzky2iz2urgi/P/b7dVwIDAQABoyYwJDAPBgNVHREECDAG -hwR/AAABMBEGCCsGAQUFBwEYBAUwAwIBBTANBgkqhkiG9w0BAQsFAAOCAQEAHpJs -jQXY2TN3t9s+bdpXZ6QkELzdRi/RWkSNUIIzisFhDZqJ86VpfFr2NqQpTSy8DO41 -HH8bj0YkGLdMNgSjJpNv5Vap/lSJMcfdD+ijtNDDQ8R42lDMVSKh+Bag2GHuOhyQ -x8M+GQtKq9UHJ4mnAHYoSALCkrRvUxH+enKdpbrxk9+eY4TecpPoD2CmglX5JILe -nIMS4GtXPH0r3WB7xcUGqKGQWcyIwI/caMSA3cQUcsMDW4k00NthZmrVyvfZWTvA -tGdIPih/RILt0kdl/75v8tbHaE1BQQRRV1qP7QrBqPMmqTZyChNiNqMmPOw4MWec -5giK1nqXMx/+6LJjiA== +AQ8AMIIBCgKCAQEA8bX3pOpg4m3dEhcMVi7zWkxAStqH6FDJB2K5VfACCP13MZV3 +VO6rGcQyBd2NXQUCO+Ui0Jbiw1D2NfOD8bO0sJzlHjLjeHhDG8odpd6MZxApdCNu +Gn8TDtpKGadGCwq7PnlbaYu/Oj3keQfS2ACtY/nLOU8O8+zl8cnVR4gR77fhxJqa +gz3Z/LC8kbMrOQAbDaA6ZAO6uLsnp8ixjrbEjCUJMqSC1L/0VbIZ8wsPKZYAjB0I +fIWuQlWPwZxCzqmjhE3r9sqw1CgukgXdnt/5yxN5MVfN0QcTLYlJQCq2SfkQQNLv +GNoAqiW7rK6C5b1LuAdpuiHpNwvg7loAvbZ+wwIDAQABoyYwJDAPBgNVHREECDAG +hwR/AAABMBEGCCsGAQUFBwEYBAUwAwIBBTANBgkqhkiG9w0BAQsFAAOCAQEA2tLO +/fXAqNgpstCZPTCt+Wu+jYXf8fqpJJNw4TQln9LswxKZZ2oQnF84GskypCBbMZx3 +g5QjF/t/9BBVBdl71uaOxW4FkvWA4YUXonJgtsa6O97jB/56orNG3bAMqraHkZQx +ZoRzbWkEC/y6IYTnlD1kMubISiS7uMQFf3ntvpGl6s8YDIlloeV2RsosTx5bfheY +dkclVi0jtDuctUYdGfBQGiTbt+dorSuQGgmtKNK0zRKYtePS5m6JHHDn5K9TVPjs +wE65POtysB8hydH6Req+i+VSYunmeztb6VNJkDkPRUNcKDXKnMPNwI8u6GBZsSfR +Q8XktPLV77UFTMTBoA== -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/wildcard.pem b/net/data/ssl/certificates/wildcard.pem index 6c04784..34500b2 100644 --- a/net/data/ssl/certificates/wildcard.pem +++ b/net/data/ssl/certificates/wildcard.pem
@@ -1,110 +1,112 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDfhiVHagGcPZTL -4aHOnMXM4dYquwuCgl322Pn1H7KXj+zmaWna8ZzP2i9Zp4++aGoSk0ZMxdgMCSrq -ayCQS6n0Fm5ouEK2dz2EbEWjLMEX4+PRP7Vkh1tE7yS6oQpEGK1nApCSyDqfhmIU -C5G9o5GupqC3WrIOwAPvpDiEKLpAExetEf7IZd415Tj6yq2umyWzxbYUwqSI0fUv -0BY84C+2vaVhPNqv5jCSHBW8ueR+gnIto9vkq6JfOp4yuJ1ufqSdpt67gYskieJw -sBZmyZ3FQYlKj35lPhOnWbRpPTG0L5IhMCRsJ/qR1h2Hrs+dU4+hyLyZpdqic0wL -3UQnpKtPAgMBAAECggEACpATSOmog9KhKnVSKSpdao4tib1nENbKS/T68ut5jBIA -Fu9aUj9isqvT2v/BGjVi9dfB1bTvvbndLlC7rDX3JRK+SvKSLH88B/r523ks8s0R -If1JvCNtW7eVW8BqdMdZwmlrnZQauRknn1zgmT6WjtNO+vstOOc4CGYRSaWHD6oA -rpg23vKm8JbYLACnlQBgDr/fhHN0PLWrsLEFTYSfvFz8+B//2Rslj4/mJhEfu+aG -Nr0N6HqIrgzTZarI0nhst9PTJuOMBjyJIByV6T8hchOgLqWqvtTnXq3U4GLsbTh2 -vvKIndORecZV29y+VqIiJLch+OFg4uDR8yqMQndvyQKBgQD5ZRc9YLmXlXPS1PsV -5mix54ZiX70jm4ZwSmDlX3XboEyJrxJJ0EefqSDz1HxMObzWdPs+dT8JzUezU7ha -sBpCDY++rj1UUZbOqCmiU3xdpWVea02xCjAhGO43XErnu5FCmyL4xCTSm48t0w01 -3jH9WanO9I3OjngNHawYyarPQwKBgQDlcaYnubY0Vro+JxCuYHYlggYaj9OaNSJ8 -hH9PZ6FG3O7OusP8fSvHKNbzdGkXO72UrGcYJGoaYbdIPKP4k3iJ43M1+wX6VZb2 -ohylWuHmVn4pMkLC+1zKASLd1AKBgdgX2+mpmfHa5Nnv7+6KgYKNAQKE1IMcq++a -2aateUd1BQKBgQCKFjYi7u50BvVFlFWeD6CCeL5Is9fm4lMy04wJFK0OORiH157Z -rfAqcBvlxg44qnNrjwQZ1hNcWwRLP5zA4eb4Ecg4fQNKL46/yA6daXpf45dYCzPO -ReTWPpaPopN68bkBVyKq+PemgSlq5wPWgrvNGptSEsh9yRahtH84jlj8PwKBgGL8 -nwRweI0oBX2e+PFiKFaSO/PlrRLQbaput0YYnVmnI1gI91jM38AyfFnYFSay3V1w -66FcxHHRSnNdxhgN92j1udTGEZQorNKGqfkktmTbV96KEodwTl3QE6zENLiOvh29 -AJftFIytQuDjEHSs3xfaIa4QyOfrvZl+4QviUNPJAoGAe8cNgvKPVSEZjt+/tW0K -LPCOZxDsBgwIWcpxFpzTigdw/4AKedccwp0vMRaj44gzKDCVxgnU3qPBEGHqLOAs -UcV6KEVQrIupPB8ix8y1qpiRsrDqhEcNRyDcTJEaPgjOfNKw80lstromo6dmrpFe -cO+alA7DDyg+545GrCsgy/Q= +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDTlB8ztLsVMnd6 +2FAK6t96JVwtDdQGDTNMBU41KlKxJS4l+PPuYREZBoRsAvFRuWa/9icP8LWqy4g4 +4Njnz3cMjKd0uzAU4L11mffPTFB6cem9HFjNvfIjoP1XopzKYRSw3zwxxVme0Vwa +n5OjBi4SORoL6KKGMNo1Jj/npZ6IsyC/zgdPLCGK2gFa8GrKEXfsjpsr0J88N5mT +SqVo3l+zYWQoNpxvAfLu/GoMAGFVrqR5yUthsIS88tfQMVPx5miPZMsjBpkbW0Wd +K6AsjAzoBBHFlEmDUT99yi4t9bimKjkm5b85gu5AO5OcnGt1V5YKoOIJ46/bWzjM +zHKXqnmjAgMBAAECggEAT1Cfwcpmt7OLhsnAd9dEn42R2HHuobYhHMaAYv3SsgW2 +HxYMm7hXqIIA8lzIClLuadflHNynvbc/AdOIfJ4RiurPe7sQc0MswwFNHLEHGl/J +t9MAl2A1fZXEYy3aiSOLliKZdi79QcRKOtDHj72pV7uAQCadhqCZrIMCQdycabHO +c30AI3cPKdC4ProHhP9bh0cGrIE31wBJx/6aiLWV94FgiIkj46ZSRvtGd13c7cIx +soyGbl4ZuLM4K6A5t8cmfyVv5rqS07rCopNFF1Sam7voBTEpDqXoe4WbY0GCMQi7 +96Q6napbgjCZUCN3vYtljmtOL3DhN+P21am+qauPQQKBgQDuGtsvmDYYJo1Ss/CN +d0YrxB4gIAA1B712HTkW5tH5bpRasAwnHaUplaDl4lE6j4uoih7OyTdgekPBuVO/ +bNdKEPg0oZZuUrL7630JrWh3aq31l9669zLbfjgGqb9TV/oZmuxNTazBNTO1FTjs +48jL401diqZhNz+iw4gtMmPwBQKBgQDjeuYiUUUI90PobUpS3y9TF1LotjQ8RWXf +r6qp234zSE8UM/WlHefvzmvMU1G+M8PKyZa4VbzUVI4RBDBNKcUyRJ1HxRnfcZIh +isZEBqpbjPC0YiFxijZS+lbQJUwYllkASF30Rvss/uaSab7xLb4bKTwLmIHn7tP+ +Iu+IIbr7hwKBgCNdbczF6NLxdvAftcztOEjr2iWfWyiFO8i9UmtqYSmRGQvXNhbh +OlTQ2pMKaFIwW+fui+De1hDIWCP/6MZ33gosNxFqJrPAKMFuGqZDUU7bU3c01Woj +qTQcrSmgMMCqQoVnE03wCYaw5jsxKcFVm89ctXL9UvUBhbwhGqrL3zgZAoGBAMQz +5nbG/fJDwxCf4zEjSyAxx9LsBJXPjZSnYV3r8SeuQHa+ciseZkRSGGw9mQ2ifEdW +JGeNm7bPz1Eh+b80Pd+jiryyZiRxQocnuOZHkXwxThNnaE0T1tMvFN2mrcGvO8ig +oljlOBORL7Is/wHqYEPxBtdBjRpMxhA2db9GyI3VAoGAE3QAcl8LZPQJ32TwPLb5 +oCOS9DYz7PgwR6CYfTNINePN0lnt7J6XQyA10nIKYiv7j1LcJjjmEHcYDYqHamuY +cQDoHD4rZwu3/cpqtldKifopP3mYE5E5wcYVklCZfXl2JohaFt9lQxmgcsRTjLxc +RaOLpZHusNcyPfIqHZQjD/Q= -----END PRIVATE KEY----- Certificate: Data: Version: 3 (0x2) - Serial Number: 12 (0xc) + Serial Number: 4 (0x4) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity - Not Before: Dec 30 20:30:57 2015 GMT - Not After : Dec 27 20:30:57 2025 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:df:86:25:47:6a:01:9c:3d:94:cb:e1:a1:ce:9c: - c5:cc:e1:d6:2a:bb:0b:82:82:5d:f6:d8:f9:f5:1f: - b2:97:8f:ec:e6:69:69:da:f1:9c:cf:da:2f:59:a7: - 8f:be:68:6a:12:93:46:4c:c5:d8:0c:09:2a:ea:6b: - 20:90:4b:a9:f4:16:6e:68:b8:42:b6:77:3d:84:6c: - 45:a3:2c:c1:17:e3:e3:d1:3f:b5:64:87:5b:44:ef: - 24:ba:a1:0a:44:18:ad:67:02:90:92:c8:3a:9f:86: - 62:14:0b:91:bd:a3:91:ae:a6:a0:b7:5a:b2:0e:c0: - 03:ef:a4:38:84:28:ba:40:13:17:ad:11:fe:c8:65: - de:35:e5:38:fa:ca:ad:ae:9b:25:b3:c5:b6:14:c2: - a4:88:d1:f5:2f:d0:16:3c:e0:2f:b6:bd:a5:61:3c: - da:af:e6:30:92:1c:15:bc:b9:e4:7e:82:72:2d:a3: - db:e4:ab:a2:5f:3a:9e:32:b8:9d:6e:7e:a4:9d:a6: - de:bb:81:8b:24:89:e2:70:b0:16:66:c9:9d:c5:41: - 89:4a:8f:7e:65:3e:13:a7:59:b4:69:3d:31:b4:2f: - 92:21:30:24:6c:27:fa:91:d6:1d:87:ae:cf:9d:53: - 8f:a1:c8:bc:99:a5:da:a2:73:4c:0b:dd:44:27:a4: - ab:4f + 00:d3:94:1f:33:b4:bb:15:32:77:7a:d8:50:0a:ea: + df:7a:25:5c:2d:0d:d4:06:0d:33:4c:05:4e:35:2a: + 52:b1:25:2e:25:f8:f3:ee:61:11:19:06:84:6c:02: + f1:51:b9:66:bf:f6:27:0f:f0:b5:aa:cb:88:38:e0: + d8:e7:cf:77:0c:8c:a7:74:bb:30:14:e0:bd:75:99: + f7:cf:4c:50:7a:71:e9:bd:1c:58:cd:bd:f2:23:a0: + fd:57:a2:9c:ca:61:14:b0:df:3c:31:c5:59:9e:d1: + 5c:1a:9f:93:a3:06:2e:12:39:1a:0b:e8:a2:86:30: + da:35:26:3f:e7:a5:9e:88:b3:20:bf:ce:07:4f:2c: + 21:8a:da:01:5a:f0:6a:ca:11:77:ec:8e:9b:2b:d0: + 9f:3c:37:99:93:4a:a5:68:de:5f:b3:61:64:28:36: + 9c:6f:01:f2:ee:fc:6a:0c:00:61:55:ae:a4:79:c9: + 4b:61:b0:84:bc:f2:d7:d0:31:53:f1:e6:68:8f:64: + cb:23:06:99:1b:5b:45:9d:2b:a0:2c:8c:0c:e8:04: + 11:c5:94:49:83:51:3f:7d:ca:2e:2d:f5:b8:a6:2a: + 39:26:e5:bf:39:82:ee:40:3b:93:9c:9c:6b:75:57: + 96:0a:a0:e2:09:e3:af:db:5b:38:cc:cc:72:97:aa: + 79:a3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 07:AA:23:37:A2:23:9D:E6:7C:C8:28:0E:5B:F7:E0:46:A7:B9:F7:A9 + 18:0C:EB:51:B9:D3:36:A9:C9:04:AF:F9:2F:14:F0:99:66:D2:76:D4 X509v3 Authority Key Identifier: - keyid:BC:F7:30:D1:3C:C0:F2:79:FA:EF:9F:C9:6C:5C:93:F3:8A:68:AB:83 + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: DNS:*.example.org Signature Algorithm: sha256WithRSAEncryption - 35:09:35:43:ec:28:b2:fb:91:25:ef:70:8d:77:58:3e:4b:ec: - 59:3e:53:d7:1f:2c:bc:9c:d7:77:4d:82:93:b5:07:06:cb:9e: - dd:3d:0b:77:22:46:7f:d1:87:80:8b:04:ca:9b:97:13:0c:f1: - b7:ed:cf:07:f2:5e:cc:cb:63:57:6e:c8:10:de:1d:25:ce:dd: - 0c:64:35:43:92:9e:59:03:57:b5:04:25:74:4a:40:26:e7:df: - 99:4e:de:05:13:be:d7:91:b8:72:e0:ea:09:32:58:e3:b7:4f: - 55:b6:fb:8d:26:31:54:ac:1b:c7:97:34:7a:73:f2:95:5a:ab: - 54:48:80:19:50:a1:f2:ce:89:3f:06:1a:2c:48:c1:11:7e:62: - 00:c4:ec:41:7d:5e:6c:9b:81:c8:21:1a:8a:2b:38:dc:8d:36: - c7:e0:e2:f5:20:68:6f:f5:af:ab:62:ec:d8:10:6f:99:b7:f4: - 9a:94:ec:5a:2b:5e:00:62:96:ac:2c:19:b8:dc:ee:c0:da:f9: - 10:50:9f:1f:2a:80:46:68:9f:f5:95:5f:7e:f8:de:ce:3e:b5: - f1:0b:09:55:c0:09:9f:fb:65:07:41:85:a7:6e:7d:04:fb:25: - 85:dc:c2:d6:4d:0b:00:12:11:be:4c:c1:c2:4a:7d:b4:47:19: - 51:76:9e:f7 + bd:72:b4:50:5d:7d:8b:b2:64:49:27:68:99:0c:01:d7:c5:91: + 15:a2:86:f1:56:69:48:5b:0a:6c:41:02:3d:11:e8:c6:4b:4c: + 97:f3:dd:d3:8c:24:f9:6d:1f:64:5a:b8:df:78:f7:e0:3f:9c: + 8d:30:7a:3b:10:15:74:f2:0f:49:ec:7c:53:8d:1f:60:c9:7d: + 0b:5d:ca:d6:d7:a3:7f:8a:3f:fa:b7:0b:c4:40:dd:55:fb:fb: + 3d:49:28:82:b9:62:5f:34:84:30:26:1d:71:3c:2b:b9:5e:e1: + 8c:2d:bf:21:bd:2d:fe:47:71:6e:54:6d:e1:d0:f6:23:58:dd: + 9e:db:05:cb:f5:5f:11:3f:e6:d0:9d:aa:46:12:56:95:f6:04: + cc:21:5e:1e:7f:07:fc:f6:48:88:8b:2c:a3:9a:66:d9:1a:1d: + 4e:a8:bd:c3:8f:fe:d6:bf:18:c9:f9:a4:f1:31:7e:12:85:83: + 62:d6:d9:f9:27:20:b4:21:f9:7e:57:52:fa:89:c8:84:78:23: + cf:fb:67:8a:a8:db:63:43:11:16:bf:59:c6:ba:21:9a:d8:0e: + 04:eb:d1:38:42:87:d3:a7:3d:da:83:a6:8f:66:a1:c8:5a:4c: + ff:25:3d:3c:bf:c9:bc:d9:85:49:a3:16:d5:e3:b3:8c:77:a6: + 21:62:93:33 -----BEGIN CERTIFICATE----- -MIIDfTCCAmWgAwIBAgIBDDANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTUxMjMwMjAzMDU3WhcNMjUxMjI3MjAzMDU3WjBgMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA34YlR2oBnD2Uy+GhzpzFzOHWKrsL -goJd9tj59R+yl4/s5mlp2vGcz9ovWaePvmhqEpNGTMXYDAkq6msgkEup9BZuaLhC -tnc9hGxFoyzBF+Pj0T+1ZIdbRO8kuqEKRBitZwKQksg6n4ZiFAuRvaORrqagt1qy -DsAD76Q4hCi6QBMXrRH+yGXeNeU4+sqtrpsls8W2FMKkiNH1L9AWPOAvtr2lYTza -r+YwkhwVvLnkfoJyLaPb5KuiXzqeMridbn6knabeu4GLJInicLAWZsmdxUGJSo9+ -ZT4Tp1m0aT0xtC+SITAkbCf6kdYdh67PnVOPoci8maXaonNMC91EJ6SrTwIDAQAB -o4GKMIGHMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAeqIzeiI53mfMgoDlv34Ean -ufepMB8GA1UdIwQYMBaAFLz3MNE8wPJ5+u+fyWxck/OKaKuDMB0GA1UdJQQWMBQG -CCsGAQUFBwMBBggrBgEFBQcDAjAYBgNVHREEETAPgg0qLmV4YW1wbGUub3JnMA0G -CSqGSIb3DQEBCwUAA4IBAQA1CTVD7Ciy+5El73CNd1g+S+xZPlPXHyy8nNd3TYKT -tQcGy57dPQt3IkZ/0YeAiwTKm5cTDPG37c8H8l7My2NXbsgQ3h0lzt0MZDVDkp5Z -A1e1BCV0SkAm59+ZTt4FE77Xkbhy4OoJMljjt09VtvuNJjFUrBvHlzR6c/KVWqtU -SIAZUKHyzok/BhosSMERfmIAxOxBfV5sm4HIIRqKKzjcjTbH4OL1IGhv9a+rYuzY -EG+Zt/SalOxaK14AYpasLBm43O7A2vkQUJ8fKoBGaJ/1lV9++N7OPrXxCwlVwAmf -+2UHQYWnbn0E+yWF3MLWTQsAEhG+TMHCSn20RxlRdp73 +MIIDyTCCArGgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE3MDYwNTE3 +MTA0NloXDTI3MDYwMzE3MTA0NlowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANOUHzO0uxUyd3rYUArq33olXC0N1AYNM0wFTjUqUrElLiX48+5hERkG +hGwC8VG5Zr/2Jw/wtarLiDjg2OfPdwyMp3S7MBTgvXWZ989MUHpx6b0cWM298iOg +/VeinMphFLDfPDHFWZ7RXBqfk6MGLhI5GgvoooYw2jUmP+elnoizIL/OB08sIYra +AVrwasoRd+yOmyvQnzw3mZNKpWjeX7NhZCg2nG8B8u78agwAYVWupHnJS2GwhLzy +19AxU/HmaI9kyyMGmRtbRZ0roCyMDOgEEcWUSYNRP33KLi31uKYqOSblvzmC7kA7 +k5yca3VXlgqg4gnjr9tbOMzMcpeqeaMCAwEAAaOBijCBhzAMBgNVHRMBAf8EAjAA +MB0GA1UdDgQWBBQYDOtRudM2qckEr/kvFPCZZtJ21DAfBgNVHSMEGDAWgBSbJguK +mKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +GAYDVR0RBBEwD4INKi5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQsFAAOCAQEAvXK0 +UF19i7JkSSdomQwB18WRFaKG8VZpSFsKbEECPRHoxktMl/Pd04wk+W0fZFq433j3 +4D+cjTB6OxAVdPIPSex8U40fYMl9C13K1tejf4o/+rcLxEDdVfv7PUkogrliXzSE +MCYdcTwruV7hjC2/Ib0t/kdxblRt4dD2I1jdntsFy/VfET/m0J2qRhJWlfYEzCFe +Hn8H/PZIiIsso5pm2RodTqi9w4/+1r8Yyfmk8TF+EoWDYtbZ+ScgtCH5fldS+onI +hHgjz/tniqjbY0MRFr9ZxrohmtgOBOvROEKH06c92oOmj2ahyFpM/yU9PL/JvNmF +SaMW1eOzjHemIWKTMw== -----END CERTIFICATE-----
diff --git a/net/data/ssl/certificates/x509_verify_results.chain.pem b/net/data/ssl/certificates/x509_verify_results.chain.pem index 5b1c6bad0..84acc63 100644 --- a/net/data/ssl/certificates/x509_verify_results.chain.pem +++ b/net/data/ssl/certificates/x509_verify_results.chain.pem
@@ -5,174 +5,234 @@ Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA Validity - Not Before: Dec 9 22:40:08 2016 GMT - Not After : Dec 7 22:40:08 2026 GMT + Not Before: Jun 5 17:10:46 2017 GMT + Not After : Jun 3 17:10:46 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:bf:a3:5d:b8:f2:6d:da:86:d4:d6:dd:0c:a0:db: - c0:9a:c4:3b:b7:95:06:9a:11:d7:cf:8d:d0:1c:ef: - 99:dc:8a:dd:87:bd:d9:0e:b9:11:69:af:94:57:11: - af:8b:86:16:08:59:c8:fe:fe:86:ba:26:09:fe:f0: - 51:ba:14:43:64:c8:65:85:1f:cb:44:39:f6:93:57: - 98:34:f2:bf:06:77:36:02:6a:d9:99:04:f4:e2:5d: - 7f:db:ed:f2:14:5d:48:72:b2:5b:34:b2:df:ea:56: - ab:d3:88:f6:58:44:cf:40:33:fe:c9:b5:b8:c3:e2: - 73:59:0d:a6:e6:c9:5b:91:92:42:c1:f2:58:31:12: - e0:57:5f:94:7c:76:2d:d2:ac:e7:c2:62:a2:88:e8: - 83:cf:88:9e:ed:ba:67:09:61:b8:1f:5a:a5:e1:74: - ca:87:18:3b:5d:d0:ef:c2:45:f5:26:25:18:ca:9a: - c5:f7:61:9b:b0:fb:1c:04:0a:03:59:d7:87:c6:51: - 65:3b:6e:74:76:50:e7:c2:52:00:5a:45:59:8e:2f: - 69:1d:83:ae:78:e5:03:66:15:3f:7b:42:93:f0:c5: - 1a:ad:96:e4:e7:09:31:0e:4d:97:b5:9e:9b:63:78: - d3:0e:ca:27:d2:64:27:92:c2:de:6b:2e:5c:f0:7f: - 78:d9 + 00:b4:bf:d2:97:33:e5:13:5b:77:65:bd:73:1a:75: + 28:9b:47:59:e6:b7:30:e8:46:33:6d:58:5b:da:1f: + 0a:ff:e4:e4:2d:f2:1d:f8:89:e8:64:2e:f6:c3:cd: + d7:a3:8e:d7:f7:cd:e7:d8:0e:10:c3:e7:56:d2:fc: + e5:e6:d3:4e:e2:ff:82:4d:18:63:87:b0:a3:de:da: + ef:0a:37:7b:ac:b5:b7:43:ce:f2:07:39:df:14:e9: + c3:a4:41:3e:7e:68:47:34:9b:7b:61:c4:18:e6:13: + ce:b3:b4:a6:e0:ba:03:ee:e4:eb:e7:aa:f4:6d:be: + 97:5b:aa:06:97:50:01:d0:78:b8:d6:92:b0:e4:e2: + b9:43:88:b5:ae:14:64:7d:52:70:d4:05:1c:09:25: + d5:e2:4f:c9:a8:82:db:41:31:c3:be:44:6f:0b:d4: + fd:bf:c1:ee:d9:62:bf:3b:8f:b5:00:c8:d1:df:5d: + 4a:13:ad:71:e4:4b:5f:d1:d9:72:4c:83:d8:93:40: + bf:6c:cd:2f:66:0e:04:d6:b9:43:28:24:c9:25:fd: + 59:70:fe:3d:f2:a9:0a:4e:c2:9b:c4:de:9e:57:5e: + 5d:16:25:e6:78:b6:44:49:29:9d:f6:bf:74:fb:85: + d6:0d:f1:65:58:f2:2b:d6:8f:10:49:c8:00:2d:88: + e2:2d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 1A:DE:3A:BF:17:09:87:0A:D0:12:6B:C9:47:D2:A7:EB:ED:5B:04:99 + E0:DC:E0:2F:07:88:74:3A:9F:D3:30:A3:71:8A:F9:D6:A5:E5:A6:53 X509v3 Authority Key Identifier: - keyid:F9:98:21:49:71:FA:8D:B9:20:F7:FE:5D:4D:41:E8:8B:6C:E0:62:C3 + keyid:17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption - 8a:ac:de:1c:d2:ca:a7:b3:f8:26:34:2e:a7:b4:ef:7e:26:08: - 5b:f4:78:ec:37:4a:a8:02:c8:37:cc:45:7c:e3:bd:5c:e3:87: - 24:ea:4f:1a:dd:f5:d7:a3:de:2f:78:6a:e9:3a:4d:87:3a:9b: - 7c:5c:5b:59:b4:2f:9e:1d:6d:29:9f:60:c0:d8:b7:87:0c:4b: - 59:ac:b3:0d:5c:11:4f:24:09:4e:7c:84:72:00:8c:12:b7:84: - 8a:80:91:97:4e:22:17:e0:5f:83:fd:97:6c:51:b3:03:c0:a2: - 3c:f8:9e:24:a1:c1:b7:14:a0:6b:30:e8:62:b8:84:87:6b:ae: - e0:d2:56:f0:08:f6:d6:0e:1a:8d:5e:8b:06:b3:1e:14:6c:1b: - 72:e9:46:25:cb:97:b7:d5:4e:79:20:37:05:a4:51:8e:d4:40: - 3f:de:6f:c7:32:b8:28:2e:2a:08:c0:51:4e:32:1b:6c:c9:c0: - 03:b3:b6:3e:fd:46:1e:5b:b7:6f:ef:97:ae:df:03:e9:4e:64: - 39:94:fa:6f:65:71:11:dc:f7:4d:ed:48:c4:3d:7a:55:b8:c6: - f5:04:a4:d8:06:cd:c7:42:48:eb:d0:7a:4c:21:db:44:e7:c2: - 68:a7:45:9f:54:2c:15:71:b5:74:c6:bf:1b:3c:eb:78:89:6f: - 19:3a:69:02 + 43:f7:63:38:a3:30:3f:ab:e6:6c:42:a1:dd:ff:8d:f6:ad:b2: + eb:b6:9e:4b:bd:90:fc:d8:f4:f0:5a:42:fc:be:5b:cc:c7:24: + 2f:91:48:a6:a1:bb:a2:b7:19:61:21:ac:d3:81:ee:6e:bb:04: + 2d:16:b5:7e:cb:e6:a3:17:8f:3e:65:4d:1d:8d:c1:da:3d:3b: + ad:a1:b3:e8:f5:e3:16:13:17:0a:a3:45:e0:cf:84:b2:3d:e8: + 38:69:31:46:e8:8c:10:63:0f:5e:6b:f4:10:25:23:98:b8:5c: + d9:06:78:83:18:70:09:a6:ef:8f:e9:f5:ff:b3:44:85:35:f6: + 69:61:0b:2a:8d:de:87:1c:ec:dc:50:c7:67:ef:88:2c:28:de: + c0:db:6e:21:20:00:c5:5b:5d:ef:36:c6:0a:e9:06:a3:25:3e: + 4d:13:fa:f0:3f:bc:fe:9c:68:48:ff:ec:1b:e7:2c:39:ac:88: + 2b:a0:88:96:11:3e:f0:20:e2:29:fc:bd:d3:d3:ca:24:63:58: + 17:15:c3:ac:19:21:cb:21:29:fc:53:e7:3b:cf:c2:0a:5e:f4: + ce:f1:9e:77:38:d4:c6:90:4e:94:fe:2e:97:cb:1a:94:2a:1e: + 8c:3b:db:36:65:c6:19:ba:d7:0b:03:22:e5:92:e2:f6:3e:df: + 99:ce:6b:49 -----BEGIN CERTIFICATE----- MIIDxzCCAq+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBrMQswCQYDVQQGEwJVUzET MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G A1UECgwHVGVzdCBDQTEdMBsGA1UEAwwUVGVzdCBJbnRlcm1lZGlhdGUgQ0EwHhcN -MTYxMjA5MjI0MDA4WhcNMjYxMjA3MjI0MDA4WjBgMQswCQYDVQQGEwJVUzETMBEG +MTcwNjA1MTcxMDQ2WhcNMjcwNjAzMTcxMDQ2WjBgMQswCQYDVQQGEwJVUzETMBEG A1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UE CgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAv6NduPJt2obU1t0MoNvAmsQ7t5UGmhHXz43QHO+Z3Ird -h73ZDrkRaa+UVxGvi4YWCFnI/v6GuiYJ/vBRuhRDZMhlhR/LRDn2k1eYNPK/Bnc2 -AmrZmQT04l1/2+3yFF1IcrJbNLLf6lar04j2WETPQDP+ybW4w+JzWQ2m5slbkZJC -wfJYMRLgV1+UfHYt0qznwmKiiOiDz4ie7bpnCWG4H1ql4XTKhxg7XdDvwkX1JiUY -yprF92GbsPscBAoDWdeHxlFlO250dlDnwlIAWkVZji9pHYOueOUDZhU/e0KT8MUa -rZbk5wkxDk2XtZ6bY3jTDson0mQnksLeay5c8H942QIDAQABo4GAMH4wDAYDVR0T -AQH/BAIwADAdBgNVHQ4EFgQUGt46vxcJhwrQEmvJR9Kn6+1bBJkwHwYDVR0jBBgw -FoAU+ZghSXH6jbkg9/5dTUHoi2zgYsMwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG -AQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQELBQADggEBAIqs3hzS -yqez+CY0Lqe0734mCFv0eOw3SqgCyDfMRXzjvVzjhyTqTxrd9dej3i94auk6TYc6 -m3xcW1m0L54dbSmfYMDYt4cMS1mssw1cEU8kCU58hHIAjBK3hIqAkZdOIhfgX4P9 -l2xRswPAojz4niShwbcUoGsw6GK4hIdrruDSVvAI9tYOGo1eiwazHhRsG3LpRiXL -l7fVTnkgNwWkUY7UQD/eb8cyuCguKgjAUU4yG2zJwAOztj79Rh5bt2/vl67fA+lO -ZDmU+m9lcRHc903tSMQ9elW4xvUEpNgGzcdCSOvQekwh20TnwminRZ9ULBVxtXTG -vxs863iJbxk6aQI= +AAOCAQ8AMIIBCgKCAQEAtL/SlzPlE1t3Zb1zGnUom0dZ5rcw6EYzbVhb2h8K/+Tk +LfId+InoZC72w83Xo47X983n2A4Qw+dW0vzl5tNO4v+CTRhjh7Cj3trvCjd7rLW3 +Q87yBznfFOnDpEE+fmhHNJt7YcQY5hPOs7Sm4LoD7uTr56r0bb6XW6oGl1AB0Hi4 +1pKw5OK5Q4i1rhRkfVJw1AUcCSXV4k/JqILbQTHDvkRvC9T9v8Hu2WK/O4+1AMjR +311KE61x5Etf0dlyTIPYk0C/bM0vZg4E1rlDKCTJJf1ZcP498qkKTsKbxN6eV15d +FiXmeLZESSmd9r90+4XWDfFlWPIr1o8QScgALYjiLQIDAQABo4GAMH4wDAYDVR0T +AQH/BAIwADAdBgNVHQ4EFgQU4NzgLweIdDqf0zCjcYr51qXlplMwHwYDVR0jBBgw +FoAUF1xF89CsHBBMi0NEIMTdk8XFGTswHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG +AQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQELBQADggEBAEP3Yzij +MD+r5mxCod3/jfatsuu2nku9kPzY9PBaQvy+W8zHJC+RSKahu6K3GWEhrNOB7m67 +BC0WtX7L5qMXjz5lTR2Nwdo9O62hs+j14xYTFwqjReDPhLI96DhpMUbojBBjD15r +9BAlI5i4XNkGeIMYcAmm74/p9f+zRIU19mlhCyqN3occ7NxQx2fviCwo3sDbbiEg +AMVbXe82xgrpBqMlPk0T+vA/vP6caEj/7BvnLDmsiCugiJYRPvAg4in8vdPTyiRj +WBcVw6wZIcshKfxT5zvPwgpe9M7xnnc41MaQTpT+LpfLGpQqHow72zZlxhm61wsD +IuWS4vY+35nOa0k= -----END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA Validity - Not Before: Dec 9 22:40:07 2016 GMT - Not After : Dec 7 22:40:07 2026 GMT + Not Before: Jun 5 17:10:45 2017 GMT + Not After : Jun 3 17:10:45 2027 GMT Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:a7:50:4b:cf:f2:ca:69:33:1a:91:ef:71:7d:68: - 3a:af:1e:eb:14:ee:64:a8:2b:41:c6:ec:2b:52:e9: - 66:ac:5d:4f:fd:2e:b0:31:39:6c:2e:81:1e:83:5d: - 59:95:d2:2a:99:fb:f1:38:2e:f9:36:52:53:7c:ea: - ba:df:fb:d6:98:f4:c9:39:d1:34:46:67:83:41:89: - bc:cb:94:f9:26:3d:b0:b6:68:f7:93:6b:d4:40:27: - 52:61:0f:20:1e:91:58:3d:60:dd:4a:1c:fe:54:3f: - 0c:4a:c4:58:d7:11:ff:a8:3c:f1:cd:39:f6:48:9b: - a5:20:db:cc:90:2b:fb:1f:62:eb:46:4d:d3:ef:03: - f8:f6:e0:82:05:af:2a:4f:00:ed:da:63:04:70:41: - e6:0a:93:e9:4d:85:d4:f7:2b:86:f3:35:e1:69:b5: - 81:fc:da:4f:cb:42:94:c9:d7:76:ba:9b:57:9f:fb: - ef:ed:26:ef:2d:53:73:2f:92:31:4b:38:7b:86:66: - eb:0d:2e:f2:93:8f:c5:bb:fe:cc:13:50:e9:18:1d: - 18:64:99:91:da:de:96:2b:08:72:21:23:42:67:99: - 86:98:fe:6f:f5:8e:0e:61:b1:0a:7e:f5:b8:d5:a7: - 06:a0:53:ef:7f:04:db:11:c4:07:0a:47:96:f0:93: - 82:d5 + 00:9d:e9:bd:e4:3d:4a:2f:fb:c2:f9:e6:22:2a:42: + 15:46:1c:8c:8f:47:4c:e9:c5:57:95:1f:66:70:93: + 22:f0:94:c3:bb:b5:5b:ef:a4:6f:c8:c7:89:95:75: + ba:0c:36:bf:4e:6b:a9:35:47:08:43:9e:29:6a:e2: + c3:fb:03:b7:1f:b6:e1:51:6b:ed:7b:19:c7:f9:ce: + 3b:dc:65:e9:66:c7:83:94:c4:d1:4e:ee:ed:64:4b: + 81:f1:1a:ea:5a:64:18:1b:6a:4e:93:d0:13:6c:90: + 60:ca:d2:4e:b7:24:16:f8:b2:08:58:9d:8d:a7:33: + 45:15:34:81:ad:2d:2d:9c:60:ef:f9:2b:98:fe:79: + d3:8d:2c:48:db:12:91:f4:2e:fa:bf:f5:26:c1:82: + 05:80:dd:4c:a8:70:bf:a7:bc:10:34:77:39:db:47: + 04:0f:ed:44:b2:65:46:22:20:88:59:28:0f:c7:0c: + a2:b4:91:a5:a2:aa:ca:05:9f:8a:9b:6e:a3:cb:d4: + a4:e8:24:75:9d:20:81:22:5b:5f:77:3e:c9:f1:1e: + ae:eb:8a:33:8c:27:5b:1e:be:6d:21:1b:42:72:95: + e3:9e:13:03:75:a7:58:d4:be:68:12:fe:63:8e:4b: + 11:7a:34:e7:a3:6b:dd:73:ae:3e:19:9a:ec:91:8b: + 73:af Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: - F9:98:21:49:71:FA:8D:B9:20:F7:FE:5D:4D:41:E8:8B:6C:E0:62:C3 + 17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B X509v3 Key Usage: critical Certificate Sign, CRL Sign Signature Algorithm: sha256WithRSAEncryption - 50:c7:37:47:87:1a:8a:b2:cc:37:d0:f6:4a:46:ee:b5:85:90: - 35:a5:a0:c8:c7:c7:38:7d:5d:bb:e0:fc:0f:15:d3:75:50:e5: - 06:08:b5:ec:d7:e8:65:63:03:5a:38:3e:2c:5a:eb:28:a0:3c: - 70:3f:d4:30:25:20:dd:22:63:08:f0:9b:a9:c8:34:8f:f6:7c: - 5a:ce:10:72:5c:37:a0:01:a6:5e:1b:a4:60:e7:93:f6:42:61: - 2c:d1:57:67:16:d9:19:21:52:03:8c:9a:aa:75:10:ca:a1:bc: - 53:07:f1:6f:52:54:88:50:7d:11:ef:96:82:0d:e9:7d:c1:42: - 42:42:13:1f:48:ef:49:70:df:e1:30:f9:6f:2f:3d:cd:51:1c: - 14:9c:bd:12:0c:f2:d7:16:32:4a:d5:6b:4b:21:01:6c:4a:b1: - ee:7b:8c:d0:99:7e:5e:1e:ef:10:24:6e:e3:6f:e2:e0:4b:0b: - 42:79:78:ab:2b:af:54:82:c4:b1:57:a3:f0:6f:16:42:ed:61: - fc:69:5e:2b:09:14:4a:61:cc:6a:19:52:66:89:06:48:f1:b5: - 76:39:68:21:dc:68:9d:11:07:37:80:ae:37:77:b4:69:69:29: - ff:f6:fc:f1:50:bc:ee:9a:f9:ab:c8:bf:a6:65:51:cc:89:1e: - 2f:2c:95:e9 + 3e:f5:d7:fd:82:3b:1e:34:8c:66:a2:f3:5e:18:e1:f1:a9:75: + 9f:b5:93:e7:0a:8e:cf:0a:33:ed:49:cd:ce:ce:ca:5f:a3:1d: + 64:76:d3:84:16:fe:9d:88:ac:f4:d1:f8:36:2b:20:80:52:0a: + ef:e0:0f:64:27:55:35:a3:7b:c6:8a:7c:a5:c4:29:17:b1:fa: + d2:89:5d:13:6b:b8:03:cb:d7:12:d6:ce:24:f0:af:48:17:03: + 54:99:af:e9:cb:fd:44:44:18:23:61:90:f6:bd:55:65:06:c3: + 36:98:8d:ea:7d:0f:79:ef:b6:bb:22:28:03:a6:ec:d9:d4:1b: + 47:ac:2c:25:de:ef:1a:02:69:4c:18:bb:29:48:f4:9d:e1:52: + 42:64:6c:88:46:68:86:83:fd:24:f5:7d:05:d7:1a:7e:22:bc: + 49:75:9c:8a:4d:e8:f3:a2:eb:9b:83:70:a7:d6:dd:2f:05:2d: + aa:be:d7:ee:7b:8e:75:44:3b:da:df:85:61:bf:e9:3b:13:40: + 4e:8b:52:08:d9:e4:8c:54:da:41:db:7b:2c:05:5e:99:06:0d: + 02:8c:8e:19:8e:55:b0:3a:33:18:30:03:a7:ed:4a:e4:f8:58: + cc:12:b8:af:d6:66:55:29:ec:01:1f:92:ed:3d:4d:c3:71:3b: + e0:2f:70:90 -----BEGIN CERTIFICATE----- -MIIDPzCCAiegAwIBAgIBATANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTYxMjA5MjI0MDA3WhcNMjYxMjA3MjI0MDA3WjBrMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g -VmlldzEQMA4GA1UECgwHVGVzdCBDQTEdMBsGA1UEAwwUVGVzdCBJbnRlcm1lZGlh -dGUgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnUEvP8sppMxqR -73F9aDqvHusU7mSoK0HG7CtS6WasXU/9LrAxOWwugR6DXVmV0iqZ+/E4Lvk2UlN8 -6rrf+9aY9Mk50TRGZ4NBibzLlPkmPbC2aPeTa9RAJ1JhDyAekVg9YN1KHP5UPwxK -xFjXEf+oPPHNOfZIm6Ug28yQK/sfYutGTdPvA/j24IIFrypPAO3aYwRwQeYKk+lN -hdT3K4bzNeFptYH82k/LQpTJ13a6m1ef++/tJu8tU3MvkjFLOHuGZusNLvKTj8W7 -/swTUOkYHRhkmZHa3pYrCHIhI0JnmYaY/m/1jg5hsQp+9bjVpwagU+9/BNsRxAcK -R5bwk4LVAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPmYIUlx -+o25IPf+XU1B6Its4GLDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC -AQEAUMc3R4cairLMN9D2SkbutYWQNaWgyMfHOH1du+D8DxXTdVDlBgi17NfoZWMD -Wjg+LFrrKKA8cD/UMCUg3SJjCPCbqcg0j/Z8Ws4Qclw3oAGmXhukYOeT9kJhLNFX -ZxbZGSFSA4yaqnUQyqG8Uwfxb1JUiFB9Ee+Wgg3pfcFCQkITH0jvSXDf4TD5by89 -zVEcFJy9Egzy1xYyStVrSyEBbEqx7nuM0Jl+Xh7vECRu42/i4EsLQnl4qyuvVILE -sVej8G8WQu1h/GleKwkUSmHMahlSZokGSPG1djloIdxonREHN4CuN3e0aWkp//b8 -8VC87pr5q8i/pmVRzIkeLyyV6Q== +MIIDizCCAnOgAwIBAgIBATANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE3MDYwNTE3 +MTA0NVoXDTI3MDYwMzE3MTA0NVowazELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh +bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3Qg +Q0ExHTAbBgNVBAMMFFRlc3QgSW50ZXJtZWRpYXRlIENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAnem95D1KL/vC+eYiKkIVRhyMj0dM6cVXlR9mcJMi +8JTDu7Vb76RvyMeJlXW6DDa/TmupNUcIQ54pauLD+wO3H7bhUWvtexnH+c473GXp +ZseDlMTRTu7tZEuB8RrqWmQYG2pOk9ATbJBgytJOtyQW+LIIWJ2NpzNFFTSBrS0t +nGDv+SuY/nnTjSxI2xKR9C76v/UmwYIFgN1MqHC/p7wQNHc520cED+1EsmVGIiCI +WSgPxwyitJGloqrKBZ+Km26jy9Sk6CR1nSCBIltfdz7J8R6u64ozjCdbHr5tIRtC +cpXjnhMDdadY1L5oEv5jjksRejTno2vdc64+GZrskYtzrwIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQXXEXz0KwcEEyLQ0QgxN2TxcUZOzAOBgNV +HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAD711/2COx40jGai814Y4fGp +dZ+1k+cKjs8KM+1Jzc7Oyl+jHWR204QW/p2IrPTR+DYrIIBSCu/gD2QnVTWje8aK +fKXEKRex+tKJXRNruAPL1xLWziTwr0gXA1SZr+nL/UREGCNhkPa9VWUGwzaYjep9 +D3nvtrsiKAOm7NnUG0esLCXe7xoCaUwYuylI9J3hUkJkbIhGaIaD/ST1fQXXGn4i +vEl1nIpN6POi65uDcKfW3S8FLaq+1+57jnVEO9rfhWG/6TsTQE6LUgjZ5IxU2kHb +eywFXpkGDQKMjhmOVbA6MxgwA6ftSuT4WMwSuK/WZlUp7AEfku09TcNxO+AvcJA= -----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 10687961985666567129 (0x945344cc7888cbd9) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA + Validity + Not Before: Jun 5 17:10:44 2017 GMT + Not After : Jun 3 17:10:44 2027 GMT + Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c6:81:1f:92:73:b6:58:85:d9:8d:ac:b7:20:fd: + c7:bf:40:b2:ea:fa:e5:0b:52:01:8f:9a:c1:eb:7a: + 80:c1:f3:89:a4:3e:d5:1b:61:cc:b5:cf:80:b1:1a: + db:bb:25:e0:18:bf:92:69:26:50:cd:e7:3f:ff:0d: + 3c:b4:1f:14:12:ab:67:37:de:07:03:6c:12:74:82: + 36:ac:c3:d4:d3:64:9f:91:ed:5b:f6:a9:7a:a4:9c: + 98:e8:65:6c:94:e1:cb:55:73:ae:f8:1d:50:b0:78: + e5:74:ff:b1:37:2c:cb:19:3d:a4:8c:e7:76:4e:86: + 5c:3f:df:b3:ed:45:23:4f:54:9b:33:c6:89:5e:13: + 1d:dd:7d:59:a5:07:34:28:86:27:1f:fa:9e:53:4f: + 2a:b6:42:ad:37:12:62:f5:72:36:b6:02:12:40:44: + fe:c7:9e:95:89:43:51:5e:b4:6e:c7:67:80:58:43: + be:cc:07:28:bd:59:ff:1c:4c:8d:90:42:f4:cf:fd: + 54:00:4f:48:72:2b:e1:67:3c:84:17:68:95:bf:ca: + 07:7b:df:86:9d:56:e3:32:e3:70:87:b7:f8:3a:f7: + e3:6e:65:14:7c:bb:76:b7:17:f1:42:8c:6f:2a:34: + 64:10:35:14:8c:85:f6:57:bf:f3:5c:55:9d:ad:03: + 10:f3 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Subject Key Identifier: + 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha256WithRSAEncryption + 5b:53:ff:6d:d5:0a:43:a5:0f:d4:7d:c6:5d:88:e3:98:9d:67: + eb:32:82:b3:0f:f5:c1:78:f8:05:4a:bf:bc:21:05:ee:21:08: + 2c:b2:15:a1:b8:b2:f6:a3:15:61:e4:c1:ad:84:a4:a7:40:0c: + 87:09:5f:2b:1b:f9:4d:6c:92:7d:cb:7e:2b:b0:01:0a:ed:40: + e5:4e:af:1a:f1:0d:ec:1d:9e:96:c7:d4:61:64:39:23:fa:5f: + 29:c4:2a:3a:b8:ed:8a:72:50:6a:ac:45:04:76:09:a8:3d:57: + d7:f0:4b:ae:46:b4:83:c1:14:50:2a:19:59:53:b2:4d:ae:fc: + 2f:40:49:c8:ad:4d:9d:c8:22:8d:8c:01:db:31:33:5a:f4:bc: + 4c:9b:ed:d7:e3:43:d9:e8:1d:53:8b:30:d8:81:9e:72:ab:9e: + ce:b8:f5:83:93:f2:72:db:de:cd:b0:52:9a:45:4d:cf:e7:21: + d8:ce:16:64:8f:42:af:c1:87:a8:f9:d5:e2:03:dd:ba:6b:1b: + 7c:7d:a0:38:33:61:39:b4:dd:5c:69:17:79:02:3a:ec:1d:6f: + 5e:bb:13:fb:a6:82:5d:07:20:fc:86:fe:6e:8b:ac:e1:c2:18: + a2:fe:3f:95:66:d3:69:8a:00:06:2c:56:37:34:b9:b6:31:de: + 0f:f6:44:39 -----BEGIN CERTIFICATE----- -MIIC8zCCAdugAwIBAgIJALF9qhLor0+aMA0GCSqGSIb3DQEBBQUAMBcxFTATBgNV -BAMMDFRlc3QgUm9vdCBDQTAeFw0xNDA4MTQwMzA1MjlaFw0yNDA4MTEwMzA1Mjla -MBcxFTATBgNVBAMMDFRlc3QgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBALZJQeNCAVGofzx6cdP7zZE1F4QajvY2x9FwHfqG8267dm/oMi43 -/TiSPWjkin1CMxRGG9wE9pFuVEDECgn97C1i4l7huiycwbFgTNrH+CJcgiBlQh5W -d3VP65AsSupXDiKNbJWsEerM1+72cA0J3aY1YV3Jdm2w8h6/MIbYd1I2lZcO0UbF -7YE9G7DyYZU8wUA4719dumGf7yucn4WJdHBj1XboNX7OAeHzERGQHA31/Y3OEGyt -fFUaIW/XLfR4FeovOL2RnjwdB0b1Q8GCi68SU2UZimlpZgay2gv6KgChKhWESfEB -v5swBtAVoB+dUZFH4VNf717swmF5whSfxOMCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUvPcw0TzA8nn675/JbFyT84poq4MwDgYDVR0PAQH/BAQD -AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBXByn7f+j/sObYWGrDkKE4HLTzaLHs6Ikj -JNeo8iHDYOSkSVwAv9/HgniAKxj3rd3QYl6nsMzwqrTOcBJZZWd2BQAYmv/EKhfj -8VXYvlxe68rLU4cQ1QkyNqdeQfRT2n5WYNJ+TpqlCF9ddennMMsi6e8ZSYOlI6H4 -YEzlNtU5eBjxXr/OqgtTgSx4qQpr2xMQIRR/G3A9iRpAigYsXVAZYvnHRYnyPWYF -PX11W1UegEJyoZp8bQp09u6mIWw6mPt3gl/ya1bm3ZuOUPDGrv3qpgUHqSYGVrOy -2bI3oCE+eQYfuVG+9LFJTZC1M+UOx15bQMVqBNFDepRqpE9h/ILg +MIIDizCCAnOgAwIBAgIJAJRTRMx4iMvZMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW +aWV3MRAwDgYDVQQKDAdUZXN0IENBMRUwEwYDVQQDDAxUZXN0IFJvb3QgQ0EwHhcN +MTcwNjA1MTcxMDQ0WhcNMjcwNjAzMTcxMDQ0WjBjMQswCQYDVQQGEwJVUzETMBEG +A1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UE +CgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAxoEfknO2WIXZjay3IP3Hv0Cy6vrlC1IBj5rB63qA +wfOJpD7VG2HMtc+AsRrbuyXgGL+SaSZQzec//w08tB8UEqtnN94HA2wSdII2rMPU +02Sfke1b9ql6pJyY6GVslOHLVXOu+B1QsHjldP+xNyzLGT2kjOd2ToZcP9+z7UUj +T1SbM8aJXhMd3X1ZpQc0KIYnH/qeU08qtkKtNxJi9XI2tgISQET+x56ViUNRXrRu +x2eAWEO+zAcovVn/HEyNkEL0z/1UAE9IcivhZzyEF2iVv8oHe9+GnVbjMuNwh7f4 +OvfjbmUUfLt2txfxQoxvKjRkEDUUjIX2V7/zXFWdrQMQ8wIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBSbJguKmKm7HbkfHOMaQDPtjheIqzAOBgNV +HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAFtT/23VCkOlD9R9xl2I45id +Z+sygrMP9cF4+AVKv7whBe4hCCyyFaG4svajFWHkwa2EpKdADIcJXysb+U1skn3L +fiuwAQrtQOVOrxrxDewdnpbH1GFkOSP6XynEKjq47YpyUGqsRQR2Cag9V9fwS65G +tIPBFFAqGVlTsk2u/C9AScitTZ3IIo2MAdsxM1r0vEyb7dfjQ9noHVOLMNiBnnKr +ns649YOT8nLb3s2wUppFTc/nIdjOFmSPQq/Bh6j51eID3bprG3x9oDgzYTm03Vxp +F3kCOuwdb167E/umgl0HIPyG/m6LrOHCGKL+P5Vm02mKAAYsVjc0ubYx3g/2RDk= -----END CERTIFICATE-----
diff --git a/net/data/ssl/scripts/generate-test-certs.sh b/net/data/ssl/scripts/generate-test-certs.sh index abb9bd1..ca8a3ca7 100755 --- a/net/data/ssl/scripts/generate-test-certs.sh +++ b/net/data/ssl/scripts/generate-test-certs.sh
@@ -6,31 +6,28 @@ # This script generates a set of test (end-entity, intermediate, root) # certificates that can be used to test fetching of an intermediate via AIA. +set -e -x -try() { - "$@" || (e=$?; echo "$@" > /dev/stderr; exit $e) -} +rm -rf out +mkdir out +mkdir out/int -try rm -rf out -try mkdir out -try mkdir out/int - -try /bin/sh -c "echo 01 > out/2048-sha256-root-serial" +/bin/sh -c "echo 01 > out/2048-sha256-root-serial" touch out/2048-sha256-root-index.txt # Generate the key -try openssl genrsa -out out/2048-sha256-root.key 2048 +openssl genrsa -out out/2048-sha256-root.key 2048 # Generate the root certificate CA_NAME="req_ca_dn" \ - try openssl req \ + openssl req \ -new \ -key out/2048-sha256-root.key \ -out out/2048-sha256-root.req \ -config ca.cnf CA_NAME="req_ca_dn" \ - try openssl x509 \ + openssl x509 \ -req -days 3650 \ -in out/2048-sha256-root.req \ -signkey out/2048-sha256-root.key \ @@ -39,18 +36,18 @@ -text > out/2048-sha256-root.pem # Generate the test intermediate -try /bin/sh -c "echo 01 > out/int/2048-sha256-int-serial" +/bin/sh -c "echo 01 > out/int/2048-sha256-int-serial" touch out/int/2048-sha256-int-index.txt CA_NAME="req_intermediate_dn" \ - try openssl req \ + openssl req \ -new \ -keyout out/int/2048-sha256-int.key \ -out out/int/2048-sha256-int.req \ -config ca.cnf CA_NAME="req_intermediate_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions ca_cert \ -days 3650 \ @@ -59,27 +56,27 @@ -config ca.cnf # Generate the leaf certificate requests -try openssl req \ +openssl req \ -new \ -keyout out/expired_cert.key \ -out out/expired_cert.req \ -config ee.cnf -try openssl req \ +openssl req \ -new \ -keyout out/ok_cert.key \ -out out/ok_cert.req \ -config ee.cnf -try openssl req \ +openssl req \ -new \ -keyout out/wildcard.key \ -out out/wildcard.req \ -reqexts req_wildcard \ -config ee.cnf -SUBJECT_NAME=req_localhost_cn \ -try openssl req \ +SUBJECT_NAME="req_localhost_cn" \ +openssl req \ -new \ -keyout out/localhost_cert.key \ -out out/localhost_cert.req \ @@ -88,7 +85,7 @@ # Generate the leaf certificates CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 060101000000Z \ @@ -98,7 +95,7 @@ -config ca.cnf CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -days 3650 \ @@ -109,7 +106,7 @@ CA_DIR="out/int" \ CERT_TYPE="int" \ CA_NAME="req_intermediate_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -days 3650 \ @@ -118,7 +115,7 @@ -config ca.cnf CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -days 3650 \ @@ -127,7 +124,7 @@ -config ca.cnf CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions name_constraint_bad \ -subj "/CN=Leaf certificate/" \ @@ -137,7 +134,7 @@ -config ca.cnf CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions name_constraint_good \ -subj "/CN=Leaf Certificate/" \ @@ -147,7 +144,7 @@ -config ca.cnf CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -days 3650 \ @@ -156,7 +153,7 @@ -config ca.cnf CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -subj "/CN=Leaf Certificate/" \ @@ -166,71 +163,71 @@ -out out/bad_validity.pem \ -config ca.cnf -try /bin/sh -c "cat out/ok_cert.key out/ok_cert.pem \ +/bin/sh -c "cat out/ok_cert.key out/ok_cert.pem \ > ../certificates/ok_cert.pem" -try /bin/sh -c "cat out/wildcard.key out/wildcard.pem \ +/bin/sh -c "cat out/wildcard.key out/wildcard.pem \ > ../certificates/wildcard.pem" -try /bin/sh -c "cat out/localhost_cert.key out/localhost_cert.pem \ +/bin/sh -c "cat out/localhost_cert.key out/localhost_cert.pem \ > ../certificates/localhost_cert.pem" -try /bin/sh -c "cat out/expired_cert.key out/expired_cert.pem \ +/bin/sh -c "cat out/expired_cert.key out/expired_cert.pem \ > ../certificates/expired_cert.pem" -try /bin/sh -c "cat out/2048-sha256-root.key out/2048-sha256-root.pem \ +/bin/sh -c "cat out/2048-sha256-root.key out/2048-sha256-root.pem \ > ../certificates/root_ca_cert.pem" -try /bin/sh -c "cat out/ok_cert.key out/name_constraint_bad.pem \ +/bin/sh -c "cat out/ok_cert.key out/name_constraint_bad.pem \ > ../certificates/name_constraint_bad.pem" -try /bin/sh -c "cat out/ok_cert.key out/name_constraint_good.pem \ +/bin/sh -c "cat out/ok_cert.key out/name_constraint_good.pem \ > ../certificates/name_constraint_good.pem" -try /bin/sh -c "cat out/ok_cert.key out/bad_validity.pem \ +/bin/sh -c "cat out/ok_cert.key out/bad_validity.pem \ > ../certificates/bad_validity.pem" -try /bin/sh -c "cat out/ok_cert.key out/int/ok_cert.pem \ +/bin/sh -c "cat out/ok_cert.key out/int/ok_cert.pem \ > ../certificates/ok_cert_by_intermediate.pem" -try /bin/sh -c "cat out/int/2048-sha256-int.key out/int/2048-sha256-int.pem \ +/bin/sh -c "cat out/int/2048-sha256-int.key out/int/2048-sha256-int.pem \ > ../certificates/intermediate_ca_cert.pem" -try /bin/sh -c "cat out/int/ok_cert.pem out/int/2048-sha256-int.pem \ +/bin/sh -c "cat out/int/ok_cert.pem out/int/2048-sha256-int.pem \ out/2048-sha256-root.pem \ > ../certificates/x509_verify_results.chain.pem" # Now generate the one-off certs ## Self-signed cert for SPDY/QUIC/HTTP2 pooling testing -try openssl req -x509 -days 3650 -extensions req_spdy_pooling \ +openssl req -x509 -days 3650 -extensions req_spdy_pooling \ -config ../scripts/ee.cnf -newkey rsa:2048 -text \ -out ../certificates/spdy_pooling.pem ## SubjectAltName parsing -try openssl req -x509 -days 3650 -extensions req_san_sanity \ +openssl req -x509 -days 3650 -extensions req_san_sanity \ -config ../scripts/ee.cnf -newkey rsa:2048 -text \ -out ../certificates/subjectAltName_sanity_check.pem ## SubjectAltName containing www.example.com -try openssl req -x509 -days 3650 -extensions req_san_example \ +openssl req -x509 -days 3650 -extensions req_san_example \ -config ../scripts/ee.cnf -newkey rsa:2048 -text \ -out ../certificates/subjectAltName_www_example_com.pem ## Punycode handling SUBJECT_NAME="req_punycode_dn" \ - try openssl req -x509 -days 3650 -extensions req_punycode \ + openssl req -x509 -days 3650 -extensions req_punycode \ -config ../scripts/ee.cnf -newkey rsa:2048 -text \ -out ../certificates/punycodetest.pem ## Reject intranet hostnames in "publicly" trusted certs # 365 * 3 = 1095 SUBJECT_NAME="req_intranet_dn" \ - try openssl req -x509 -days 1095 -extensions req_intranet_san \ + openssl req -x509 -days 1095 -extensions req_intranet_san \ -config ../scripts/ee.cnf -newkey rsa:2048 -text \ -out ../certificates/reject_intranet_hosts.pem ## Leaf certificate with a large key; Apple's certificate verifier rejects with ## a fatal error if the key is bigger than 8192 bits. -try openssl req -x509 -days 3650 \ +openssl req -x509 -days 3650 \ -config ../scripts/ee.cnf -newkey rsa:8200 -text \ -sha256 \ -out ../certificates/large_key.pem ## SHA1 certificate expiring in 2016. -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/sha1_2016.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 081030000000Z \ @@ -241,10 +238,10 @@ -md sha1 ## SHA1 certificate issued the last second before the SHA-1 deprecation date. -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/sha1_dec_2015.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 151231235959Z \ @@ -255,10 +252,10 @@ -md sha1 ## SHA1 certificate issued on the SHA-1 deprecation date. -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/sha1_jan_2016.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 160101000000Z \ @@ -269,10 +266,10 @@ -md sha1 ## Validity too long unit test support. -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/10_year_validity.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 081030000000Z \ @@ -281,10 +278,10 @@ -out ../certificates/10_year_validity.pem \ -config ca.cnf # 365 * 11 = 4015 -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/11_year_validity.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 141030000000Z \ @@ -292,10 +289,10 @@ -in out/11_year_validity.req \ -out ../certificates/11_year_validity.pem \ -config ca.cnf -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/39_months_after_2015_04.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 150402000000Z \ @@ -303,10 +300,10 @@ -in out/39_months_after_2015_04.req \ -out ../certificates/39_months_after_2015_04.pem \ -config ca.cnf -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/40_months_after_2015_04.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 150402000000Z \ @@ -314,10 +311,10 @@ -in out/40_months_after_2015_04.req \ -out ../certificates/40_months_after_2015_04.pem \ -config ca.cnf -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/60_months_after_2012_07.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 141030000000Z \ @@ -325,11 +322,11 @@ -in out/60_months_after_2012_07.req \ -out ../certificates/60_months_after_2012_07.pem \ -config ca.cnf -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/61_months_after_2012_07.req # 30 * 61 = 1830 CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 141030000000Z \ @@ -338,10 +335,10 @@ -out ../certificates/61_months_after_2012_07.pem \ -config ca.cnf # start date after expiry date -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/start_after_expiry.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 180901000000Z \ @@ -349,13 +346,13 @@ -in out/start_after_expiry.req \ -out ../certificates/start_after_expiry.pem \ -config ca.cnf -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/start_after_expiry.req # Issued pre-BRs, lifetime < 120 months, expires before 2019-07-01 -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/pre_br_validity_ok.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 080101000000Z \ @@ -363,13 +360,13 @@ -in out/pre_br_validity_ok.req \ -out ../certificates/pre_br_validity_ok.pem \ -config ca.cnf -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/pre_br_validity_ok.req # Issued pre-BRs, lifetime > 120 months, expires before 2019-07-01 -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/pre_br_validity_bad_121.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 080101000000Z \ @@ -377,13 +374,13 @@ -in out/pre_br_validity_bad_121.req \ -out ../certificates/pre_br_validity_bad_121.pem \ -config ca.cnf -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/pre_br_validity_bad_121.req # Issued pre-BRs, lifetime < 120 months, expires after 2019-07-01 -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/pre_br_validity_bad_2020.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 120501000000Z \ @@ -393,10 +390,10 @@ -config ca.cnf # Issued prior to 1 June 2016 (Symantec CT Enforcement Date) -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/pre_june_2016.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 160501000000Z \ @@ -406,10 +403,10 @@ -config ca.cnf # Issued after 1 June 2016 (Symantec CT Enforcement Date) -try openssl req -config ../scripts/ee.cnf \ +openssl req -config ../scripts/ee.cnf \ -newkey rsa:2048 -text -out out/post_june_2016.req CA_NAME="req_ca_dn" \ - try openssl ca \ + openssl ca \ -batch \ -extensions user_cert \ -startdate 160601000000Z \ @@ -419,7 +416,7 @@ -config ca.cnf # Includes the TLS feature extension -try openssl req -x509 -newkey rsa:2048 \ +openssl req -x509 -newkey rsa:2048 \ -keyout out/tls_feature_extension.key \ -out ../certificates/tls_feature_extension.pem \ -days 365 \ @@ -429,7 +426,7 @@ # Regenerate CRLSets ## Block a leaf cert directly by SPKI -try python crlsetutil.py -o ../certificates/crlset_by_leaf_spki.raw \ +python crlsetutil.py -o ../certificates/crlset_by_leaf_spki.raw \ <<CRLBYLEAFSPKI { "BlockedBySPKI": ["../certificates/ok_cert.pem"] @@ -438,7 +435,7 @@ ## Block a leaf cert by issuer-hash-and-serial (ok_cert.pem == serial 3, by ## virtue of the serial file and ordering above. -try python crlsetutil.py -o ../certificates/crlset_by_root_serial.raw \ +python crlsetutil.py -o ../certificates/crlset_by_root_serial.raw \ <<CRLBYROOTSERIAL { "BlockedByHash": { @@ -449,7 +446,7 @@ ## Block a leaf cert by issuer-hash-and-serial. However, this will be issued ## from an intermediate CA issued underneath a root. -try python crlsetutil.py -o ../certificates/crlset_by_intermediate_serial.raw \ +python crlsetutil.py -o ../certificates/crlset_by_intermediate_serial.raw \ <<CRLSETBYINTERMEDIATESERIAL { "BlockedByHash": {
diff --git a/net/data/url_request_unittest/hpkp-headers-report-only.html.mock-http-headers b/net/data/url_request_unittest/hpkp-headers-report-only.html.mock-http-headers index 09ec14aa..0fbf7b4 100644 --- a/net/data/url_request_unittest/hpkp-headers-report-only.html.mock-http-headers +++ b/net/data/url_request_unittest/hpkp-headers-report-only.html.mock-http-headers
@@ -3,4 +3,4 @@ Content-Type: text/html; charset=ISO-8859-1 X-Multiple-Entries: a X-Multiple-Entries: b -Public-Key-Pins-Report-Only: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="+TTrWvvJdM9gwuHiLTApo/2DBT2xb4hBPRJDI9pebXY="; report-uri="https://hpkp-report.test" +Public-Key-Pins-Report-Only: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="jGdOd9afPNVKLxBnAaqWFl5tM1Dbu/54g4ZDgQcJ4BM="; report-uri="https://hpkp-report.test"
diff --git a/net/data/url_request_unittest/hpkp-headers.html.mock-http-headers b/net/data/url_request_unittest/hpkp-headers.html.mock-http-headers index 2730136..890cbc1 100644 --- a/net/data/url_request_unittest/hpkp-headers.html.mock-http-headers +++ b/net/data/url_request_unittest/hpkp-headers.html.mock-http-headers
@@ -3,4 +3,4 @@ Content-Type: text/html; charset=ISO-8859-1 X-Multiple-Entries: a X-Multiple-Entries: b -Public-Key-Pins: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="+TTrWvvJdM9gwuHiLTApo/2DBT2xb4hBPRJDI9pebXY="; report-uri="https://hpkp-report.test" +Public-Key-Pins: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="jGdOd9afPNVKLxBnAaqWFl5tM1Dbu/54g4ZDgQcJ4BM="; report-uri="https://hpkp-report.test"
diff --git a/net/data/url_request_unittest/hsts-and-hpkp-headers.html.mock-http-headers b/net/data/url_request_unittest/hsts-and-hpkp-headers.html.mock-http-headers index 21d54aa..63751213 100644 --- a/net/data/url_request_unittest/hsts-and-hpkp-headers.html.mock-http-headers +++ b/net/data/url_request_unittest/hsts-and-hpkp-headers.html.mock-http-headers
@@ -5,4 +5,4 @@ X-Multiple-Entries: b Strict-Transport-Security: max-age=12300 Strict-Transport-Security: max-age=12300; includeSubdomains -Public-Key-Pins: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="+TTrWvvJdM9gwuHiLTApo/2DBT2xb4hBPRJDI9pebXY=" +Public-Key-Pins: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="jGdOd9afPNVKLxBnAaqWFl5tM1Dbu/54g4ZDgQcJ4BM="
diff --git a/net/data/url_request_unittest/hsts-and-hpkp-headers2.html.mock-http-headers b/net/data/url_request_unittest/hsts-and-hpkp-headers2.html.mock-http-headers index 45b26508..719d4b2 100644 --- a/net/data/url_request_unittest/hsts-and-hpkp-headers2.html.mock-http-headers +++ b/net/data/url_request_unittest/hsts-and-hpkp-headers2.html.mock-http-headers
@@ -4,5 +4,5 @@ X-Multiple-Entries: a X-Multiple-Entries: b Strict-Transport-Security: max-age=12300; includeSubdomains -Public-Key-Pins: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="+TTrWvvJdM9gwuHiLTApo/2DBT2xb4hBPRJDI9pebXY=" -Public-Key-Pins: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="+TTrWvvJdM9gwuHiLTApo/2DBT2xb4hBPRJDI9pebXY=" +Public-Key-Pins: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="jGdOd9afPNVKLxBnAaqWFl5tM1Dbu/54g4ZDgQcJ4BM=" +Public-Key-Pins: max-age=50000; pin-sha256="9999999999999999999999999999999999999999999="; pin-sha256="jGdOd9afPNVKLxBnAaqWFl5tM1Dbu/54g4ZDgQcJ4BM="
diff --git a/net/http/http_stream_factory_impl_job.cc b/net/http/http_stream_factory_impl_job.cc index d464295..a5be56b 100644 --- a/net/http/http_stream_factory_impl_job.cc +++ b/net/http/http_stream_factory_impl_job.cc
@@ -220,7 +220,9 @@ was_alpn_negotiated_(false), negotiated_protocol_(kProtoUnknown), num_streams_(0), - spdy_session_direct_(false), + spdy_session_direct_( + !(proxy_info.is_https() && origin_url_.SchemeIs(url::kHttpScheme))), + spdy_session_key_(GetSpdySessionKey()), stream_type_(HttpStreamRequest::BIDIRECTIONAL_STREAM), ptr_factory_(this) { DCHECK(session); @@ -398,7 +400,7 @@ // In the case that we're using an HTTPS proxy for an HTTP url, // we look for a SPDY session *to* the proxy, instead of to the // origin server. - if (IsHttpsProxyAndHttpUrl()) { + if (!spdy_session_direct_) { return SpdySessionKey(proxy_info_.proxy_server().host_port_pair(), ProxyServer::Direct(), PRIVACY_MODE_DISABLED); } @@ -875,14 +877,12 @@ return rv; } - SpdySessionKey spdy_session_key = GetSpdySessionKey(); - // Check first if we have a spdy session for this group. If so, then go // straight to using that. if (CanUseExistingSpdySession()) { base::WeakPtr<SpdySession> spdy_session = session_->spdy_session_pool()->FindAvailableSession( - spdy_session_key, origin_url_, enable_ip_based_pooling_, net_log_); + spdy_session_key_, origin_url_, enable_ip_based_pooling_, net_log_); if (spdy_session) { // If we're preconnecting, but we already have a SpdySession, we don't // actually need to preconnect any sockets, so we're done. @@ -897,7 +897,7 @@ if (using_ssl_) { // Ask |delegate_delegate_| to update the spdy session key for the request // that launched this job. - delegate_->SetSpdySessionKey(this, spdy_session_key); + delegate_->SetSpdySessionKey(this, spdy_session_key_); } if (proxy_info_.is_http() || proxy_info_.is_https()) @@ -929,7 +929,7 @@ OnHostResolutionCallback resolution_callback = CanUseExistingSpdySession() ? base::Bind(&Job::OnHostResolution, session_->spdy_session_pool(), - spdy_session_key, origin_url_, enable_ip_based_pooling_) + spdy_session_key_, origin_url_, enable_ip_based_pooling_) : OnHostResolutionCallback(); if (delegate_->for_websockets()) { SSLConfig websocket_server_ssl_config = server_ssl_config_; @@ -961,10 +961,9 @@ if (result == ERR_SPDY_SESSION_ALREADY_EXISTS) { // We found a SPDY connection after resolving the host. This is // probably an IP pooled connection. - SpdySessionKey spdy_session_key = GetSpdySessionKey(); existing_spdy_session_ = session_->spdy_session_pool()->FindAvailableSession( - spdy_session_key, origin_url_, enable_ip_based_pooling_, net_log_); + spdy_session_key_, origin_url_, enable_ip_based_pooling_, net_log_); if (existing_spdy_session_) { using_spdy_ = true; next_state_ = STATE_CREATE_STREAM; @@ -1165,13 +1164,11 @@ CHECK(!stream_.get()); - SpdySessionKey spdy_session_key = GetSpdySessionKey(); if (!existing_spdy_session_) { existing_spdy_session_ = session_->spdy_session_pool()->FindAvailableSession( - spdy_session_key, origin_url_, enable_ip_based_pooling_, net_log_); + spdy_session_key_, origin_url_, enable_ip_based_pooling_, net_log_); } - bool direct = !IsHttpsProxyAndHttpUrl(); if (existing_spdy_session_.get()) { // We picked up an existing session, so we don't need our socket. if (connection_->socket()) @@ -1179,7 +1176,7 @@ connection_->Reset(); int set_result = SetSpdyHttpStreamOrBidirectionalStreamImpl( - existing_spdy_session_, direct); + existing_spdy_session_, spdy_session_direct_); existing_spdy_session_.reset(); return set_result; } @@ -1191,7 +1188,7 @@ base::WeakPtr<SpdySession> spdy_session = session_->spdy_session_pool()->CreateAvailableSessionFromSocket( - spdy_session_key, std::move(connection_), net_log_, using_ssl_); + spdy_session_key_, std::move(connection_), net_log_, using_ssl_); if (!spdy_session->HasAcceptableTransportSecurity()) { spdy_session->CloseSessionOnError( @@ -1200,11 +1197,10 @@ } new_spdy_session_ = spdy_session; - spdy_session_direct_ = direct; - const HostPortPair host_port_pair = spdy_session_key.host_port_pair(); url::SchemeHostPort scheme_host_port( - using_ssl_ ? url::kHttpsScheme : url::kHttpScheme, host_port_pair.host(), - host_port_pair.port()); + using_ssl_ ? url::kHttpsScheme : url::kHttpScheme, + spdy_session_key_.host_port_pair().host(), + spdy_session_key_.host_port_pair().port()); HttpServerProperties* http_server_properties = session_->http_server_properties(); @@ -1275,20 +1271,6 @@ // TODO(mbelshe): Add other motivations (like EARLY_LOAD_MOTIVATED). } -bool HttpStreamFactoryImpl::Job::IsHttpsProxyAndHttpUrl() const { - if (!proxy_info_.is_https()) - return false; - DCHECK(!IsSpdyAlternative()); - if (IsQuicAlternative()) { - // We currently only support Alternate-Protocol where the original scheme - // is http. - // TODO(bnc): This comment is probably incorrect. - DCHECK(origin_url_.SchemeIs(url::kHttpScheme)); - return origin_url_.SchemeIs(url::kHttpScheme); - } - return request_info_.url.SchemeIs(url::kHttpScheme); -} - bool HttpStreamFactoryImpl::Job::IsSpdyAlternative() const { return alternative_service_.protocol == kProtoHTTP2; }
diff --git a/net/http/http_stream_factory_impl_job.h b/net/http/http_stream_factory_impl_job.h index 1136153..6173224 100644 --- a/net/http/http_stream_factory_impl_job.h +++ b/net/http/http_stream_factory_impl_job.h
@@ -334,8 +334,6 @@ // Set the motivation for this request onto the underlying socket. void SetSocketMotivation(); - bool IsHttpsProxyAndHttpUrl() const; - // Is this a SPDY or QUIC alternative Job? bool IsSpdyAlternative() const; bool IsQuicAlternative() const; @@ -349,6 +347,7 @@ // After calling, the caller can use ssl_info_. void GetSSLInfo(); + // Called in Job constructor. Use |spdy_session_key_| after construction. SpdySessionKey GetSpdySessionKey() const; // Returns true if the current request can use an existing spdy session. @@ -473,8 +472,10 @@ // Initialized when we have an existing SpdySession. base::WeakPtr<SpdySession> existing_spdy_session_; - // Only used if |new_spdy_session_| is non-NULL. - bool spdy_session_direct_; + // True if not connecting to an Https proxy for an Http url. + const bool spdy_session_direct_; + + const SpdySessionKey spdy_session_key_; base::TimeTicks job_stream_ready_start_time_;
diff --git a/net/http/http_stream_factory_impl_job_controller_unittest.cc b/net/http/http_stream_factory_impl_job_controller_unittest.cc index ffc80c4..1f7f730 100644 --- a/net/http/http_stream_factory_impl_job_controller_unittest.cc +++ b/net/http/http_stream_factory_impl_job_controller_unittest.cc
@@ -148,7 +148,7 @@ // Return SpdySessionKey of |job|. static const SpdySessionKey GetSpdySessionKey( const HttpStreamFactoryImpl::Job* job) { - return job->GetSpdySessionKey(); + return job->spdy_session_key_; } };
diff --git a/net/http/transport_security_state_unittest.cc b/net/http/transport_security_state_unittest.cc index 2b16f21..f7a79c7 100644 --- a/net/http/transport_security_state_unittest.cc +++ b/net/http/transport_security_state_unittest.cc
@@ -1432,10 +1432,10 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); HashValueVector good_hashes, bad_hashes; @@ -1540,10 +1540,10 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); HashValueVector good_hashes, bad_hashes; @@ -1583,10 +1583,10 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); TransportSecurityState state; @@ -1650,10 +1650,10 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); std::string header = @@ -1687,10 +1687,10 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); std::string header = "pin-sha256=\"" + std::string(kGoodPin1) + @@ -1742,10 +1742,10 @@ // contents don't matter, as long as they are not the real google.com // certs in the pins. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); HashValueVector bad_hashes; @@ -1790,10 +1790,10 @@ // contents don't matter, as long as they are not the real google.com // certs in the pins. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); HashValueVector bad_hashes; @@ -1830,10 +1830,10 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); HashValueVector good_hashes, bad_hashes; @@ -1951,6 +1951,14 @@ ssl_info.ct_cert_policy_compliance = ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS; ssl_info.is_issued_by_known_root = true; + scoped_refptr<X509Certificate> cert1 = + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); + scoped_refptr<X509Certificate> cert2 = + ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); + ssl_info.unverified_cert = cert1; + ssl_info.cert = cert2; TransportSecurityState state; TransportSecurityStateTest::EnableStaticExpectCT(&state); @@ -1975,6 +1983,14 @@ ssl_info.ct_cert_policy_compliance = ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS; ssl_info.is_issued_by_known_root = false; + scoped_refptr<X509Certificate> cert1 = + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); + scoped_refptr<X509Certificate> cert2 = + ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); + ssl_info.unverified_cert = cert1; + ssl_info.cert = cert2; TransportSecurityState state; TransportSecurityStateTest::EnableStaticExpectCT(&state); @@ -1997,6 +2013,14 @@ ssl_info.ct_cert_policy_compliance = ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS; ssl_info.is_issued_by_known_root = true; + scoped_refptr<X509Certificate> cert1 = + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); + scoped_refptr<X509Certificate> cert2 = + ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); + ssl_info.unverified_cert = cert1; + ssl_info.cert = cert2; TransportSecurityState state; TransportSecurityStateTest::EnableStaticExpectCT(&state); @@ -2019,6 +2043,14 @@ ssl_info.ct_cert_policy_compliance = ct::CertPolicyCompliance::CERT_POLICY_COMPLIES_VIA_SCTS; ssl_info.is_issued_by_known_root = true; + scoped_refptr<X509Certificate> cert1 = + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); + scoped_refptr<X509Certificate> cert2 = + ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); + ssl_info.unverified_cert = cert1; + ssl_info.cert = cert2; TransportSecurityState state; TransportSecurityStateTest::EnableStaticExpectCT(&state); @@ -2042,6 +2074,14 @@ ssl_info.ct_cert_policy_compliance = ct::CertPolicyCompliance::CERT_POLICY_NOT_DIVERSE_SCTS; ssl_info.is_issued_by_known_root = true; + scoped_refptr<X509Certificate> cert1 = + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); + scoped_refptr<X509Certificate> cert2 = + ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); + ssl_info.unverified_cert = cert1; + ssl_info.cert = cert2; TransportSecurityState state; TransportSecurityStateTest::EnableStaticExpectCT(&state); @@ -2065,7 +2105,7 @@ ct::CertPolicyCompliance::CERT_POLICY_NOT_DIVERSE_SCTS; ssl_info.is_issued_by_known_root = true; scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); ASSERT_TRUE(cert1); @@ -2106,10 +2146,10 @@ ct::CertPolicyCompliance::CERT_POLICY_NOT_DIVERSE_SCTS; ssl_info.is_issued_by_known_root = true; scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); ssl_info.unverified_cert = cert1; ssl_info.cert = cert2; @@ -2428,9 +2468,11 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); SSLInfo ssl_info; ssl_info.cert = cert1; @@ -2480,9 +2522,11 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); SSLInfo ssl_info; ssl_info.cert = cert1; @@ -2521,9 +2565,11 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); SSLInfo ssl_info; ssl_info.cert = cert1; @@ -2555,9 +2601,11 @@ // Two dummy certs to use as the server-sent and validated chains. The // contents don't matter. scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); SSLInfo ssl_info; ssl_info.cert = cert1; @@ -2908,12 +2956,14 @@ ssl.ct_compliance_details_available = true; ssl.ct_cert_policy_compliance = ct::CertPolicyCompliance::CERT_POLICY_COMPLIES_VIA_SCTS; + scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); + SignedCertificateTimestampAndStatusList sct_list; base::test::ScopedFeatureList feature_list; @@ -3075,6 +3125,15 @@ ssl.ct_cert_policy_compliance = ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS; + scoped_refptr<X509Certificate> cert1 = + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); + scoped_refptr<X509Certificate> cert2 = + ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); + ASSERT_TRUE(cert2); + ssl.unverified_cert = cert1; + ssl.cert = cert2; + base::test::ScopedFeatureList feature_list; feature_list.InitAndEnableFeature( TransportSecurityState::kDynamicExpectCTFeature); @@ -3097,14 +3156,16 @@ ssl.ct_compliance_details_available = true; ssl.ct_cert_policy_compliance = ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS; + scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); ssl.unverified_cert = cert1; ssl.cert = cert2; + MakeTestSCTAndStatus(ct::SignedCertificateTimestamp::SCT_EMBEDDED, "test_log", std::string(), std::string(), base::Time::Now(), ct::SCT_STATUS_INVALID_SIGNATURE, @@ -3137,10 +3198,10 @@ const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); SignedCertificateTimestampAndStatusList sct_list; MakeTestSCTAndStatus(ct::SignedCertificateTimestamp::SCT_EMBEDDED, "test_log", @@ -3266,10 +3327,10 @@ const base::Time current_time(base::Time::Now()); const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000); scoped_refptr<X509Certificate> cert1 = - ImportCertFromFile(GetTestCertsDirectory(), "test_mail_google_com.pem"); + ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); + ASSERT_TRUE(cert1); scoped_refptr<X509Certificate> cert2 = ImportCertFromFile(GetTestCertsDirectory(), "expired_cert.pem"); - ASSERT_TRUE(cert1); ASSERT_TRUE(cert2); SignedCertificateTimestampAndStatusList sct_list; MakeTestSCTAndStatus(ct::SignedCertificateTimestamp::SCT_EMBEDDED, "test_log",
diff --git a/services/ui/public/cpp/bitmap/child_shared_bitmap_manager.cc b/services/ui/public/cpp/bitmap/child_shared_bitmap_manager.cc index bb4ad834..13eb4fc 100644 --- a/services/ui/public/cpp/bitmap/child_shared_bitmap_manager.cc +++ b/services/ui/public/cpp/bitmap/child_shared_bitmap_manager.cc
@@ -46,6 +46,13 @@ (*shared_bitmap_manager_ptr_)->DidDeleteSharedBitmap(id()); } + // cc::SharedBitmap: + base::SharedMemoryHandle GetSharedMemoryHandle() const override { + if (!shared_memory_holder_) + return base::SharedMemoryHandle(); + return shared_memory_holder_->handle(); + } + private: scoped_refptr<cc::mojom::ThreadSafeSharedBitmapManagerAssociatedPtr> shared_bitmap_manager_ptr_;
diff --git a/testing/buildbot/chromium.perf.fyi.json b/testing/buildbot/chromium.perf.fyi.json index 5e961605..af0ecbc 100644 --- a/testing/buildbot/chromium.perf.fyi.json +++ b/testing/buildbot/chromium.perf.fyi.json
@@ -3367,65 +3367,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build248-m4--device7", - "os": "Android", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build248-m4--device7", - "os": "Android", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -4695,65 +4636,6 @@ }, { "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build245-m4--device7", - "os": "Android", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build245-m4--device7", - "os": "Android", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -4813,65 +4695,6 @@ }, { "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build249-m4--device5", - "os": "Android", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build249-m4--device5", - "os": "Android", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.mobile_infinite_scroll_tbmv2", "-v", "--upload-results", @@ -4990,65 +4813,6 @@ }, { "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build245-m4--device3", - "os": "Android", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build245-m4--device3", - "os": "Android", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -8810,65 +8574,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:22b1", - "id": "build145-b1", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:22b1", - "id": "build145-b1", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -9922,65 +9627,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:22b1", - "id": "build47-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:22b1", - "id": "build47-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -10040,65 +9686,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:22b1", - "id": "build47-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:22b1", - "id": "build47-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -10276,65 +9863,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:22b1", - "id": "build145-b1", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:22b1", - "id": "build145-b1", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -13996,65 +13524,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:9874", - "id": "build209-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:9874", - "id": "build209-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -15088,65 +14557,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:9874", - "id": "build220-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:9874", - "id": "build220-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -15206,65 +14616,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:9874", - "id": "build220-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:9874", - "id": "build220-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -15442,65 +14793,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:9874", - "id": "build209-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:9874", - "id": "build209-b4", - "os": "Windows-10-10586", - "pool": "Chrome-perf-fyi" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results",
diff --git a/testing/buildbot/chromium.perf.json b/testing/buildbot/chromium.perf.json index 5347294..001cba0 100644 --- a/testing/buildbot/chromium.perf.json +++ b/testing/buildbot/chromium.perf.json
@@ -3412,65 +3412,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build14-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build14-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -4760,65 +4701,6 @@ }, { "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build13-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build13-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -4878,65 +4760,6 @@ }, { "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build48-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build48-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.mobile_infinite_scroll_tbmv2", "-v", "--upload-results", @@ -5055,65 +4878,6 @@ }, { "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build13-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build13-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -8559,65 +8323,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build74-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build74-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -9907,65 +9612,6 @@ }, { "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build73-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build73-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -10025,65 +9671,6 @@ }, { "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build75-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build75-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.mobile_infinite_scroll_tbmv2", "-v", "--upload-results", @@ -10202,65 +9789,6 @@ }, { "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build73-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build73-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -13726,65 +13254,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build16-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build16-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -15074,65 +14543,6 @@ }, { "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build15-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build15-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -15192,65 +14602,6 @@ }, { "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build45-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build45-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.mobile_infinite_scroll_tbmv2", "-v", "--upload-results", @@ -15369,65 +14720,6 @@ }, { "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build15-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build15-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -18893,65 +18185,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build10-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build10-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -20241,65 +19474,6 @@ }, { "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build9-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build9-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -20359,65 +19533,6 @@ }, { "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build49-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build49-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.mobile_infinite_scroll_tbmv2", "-v", "--upload-results", @@ -20536,65 +19651,6 @@ }, { "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build9-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build9-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -24060,65 +23116,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build18-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build18-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -25408,65 +24405,6 @@ }, { "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build17-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build17-b1--device7", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -25526,65 +24464,6 @@ }, { "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build47-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.mobile_infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.mobile_infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build47-b1--device5", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.mobile_infinite_scroll_tbmv2", "-v", "--upload-results", @@ -25703,65 +24582,6 @@ }, { "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=android-chromium" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build17-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_mobile_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_mobile_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "android_devices": "1", - "id": "build17-b1--device3", - "os": "Android", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -29448,65 +28268,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build151-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build151-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -30560,65 +29321,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build150-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build150-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -30678,65 +29380,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -30914,65 +29557,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build150-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build150-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -34654,65 +33238,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0166", - "id": "build105-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0166", - "id": "build105-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -35746,65 +34271,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0166", - "id": "build104-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0166", - "id": "build104-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -35864,65 +34330,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0166", - "id": "build106-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0166", - "id": "build106-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -36100,65 +34507,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0166", - "id": "build104-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0166", - "id": "build104-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -39820,65 +38168,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a2e", - "id": "build161-m1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a2e", - "id": "build161-m1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -40912,65 +39201,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a2e", - "id": "build160-m1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a2e", - "id": "build160-m1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -41030,65 +39260,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a2e", - "id": "build162-m1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a2e", - "id": "build162-m1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -41266,65 +39437,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a2e", - "id": "build160-m1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a2e", - "id": "build160-m1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -45006,65 +43118,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1626", - "id": "build126-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1626", - "id": "build126-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -46098,65 +44151,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1626", - "id": "build125-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1626", - "id": "build125-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -46216,65 +44210,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1626", - "id": "build127-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1626", - "id": "build127-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -46452,65 +44387,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1626", - "id": "build125-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1626", - "id": "build125-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -50172,65 +48048,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a26", - "id": "build27-b1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a26", - "id": "build27-b1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -51264,65 +49081,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a26", - "id": "build26-b1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a26", - "id": "build26-b1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -51382,65 +49140,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a26", - "id": "build28-b1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a26", - "id": "build28-b1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -51618,65 +49317,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a26", - "id": "build26-b1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0a26", - "id": "build26-b1", - "os": "Mac-10.12", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -55358,65 +52998,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6821", - "id": "build131-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6821", - "id": "build131-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -56450,65 +54031,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6821", - "id": "build130-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6821", - "id": "build130-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -56568,65 +54090,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6821", - "id": "build132-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6821", - "id": "build132-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -56804,65 +54267,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6821", - "id": "build130-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6821", - "id": "build130-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -60544,65 +57948,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0d26", - "id": "build7-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0d26", - "id": "build7-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -61636,65 +58981,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0d26", - "id": "build6-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0d26", - "id": "build6-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -61754,65 +59040,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0d26", - "id": "build30-b4", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0d26", - "id": "build30-b4", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -61990,65 +59217,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0d26", - "id": "build6-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:0d26", - "id": "build6-b1", - "os": "Mac-10.11", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -65710,65 +62878,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1616", - "id": "build120-b1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1616", - "id": "build120-b1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -66802,65 +63911,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1616", - "id": "build119-b1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1616", - "id": "build119-b1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -66920,65 +63970,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1616", - "id": "build180-b4", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1616", - "id": "build180-b4", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -67156,65 +64147,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1616", - "id": "build119-b1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:1616", - "id": "build119-b1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -70896,65 +67828,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build135-m1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build135-m1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -71988,65 +68861,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build134-m1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build134-m1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -72106,65 +68920,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build136-m1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build136-m1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -72342,65 +69097,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build134-m1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build134-m1", - "os": "Windows-10-10240", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -76142,65 +72838,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6613", - "id": "build104-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6613", - "id": "build104-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -77234,65 +73871,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6613", - "id": "build103-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6613", - "id": "build103-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -77352,65 +73930,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6613", - "id": "build105-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6613", - "id": "build105-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -77588,65 +74107,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6613", - "id": "build103-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "1002:6613", - "id": "build103-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -81368,65 +77828,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:041a", - "id": "build167-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:041a", - "id": "build167-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -82460,65 +78861,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:041a", - "id": "build166-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:041a", - "id": "build166-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -82578,65 +78920,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:041a", - "id": "build168-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:041a", - "id": "build168-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -82814,65 +79097,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:041a", - "id": "build166-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "8086:041a", - "id": "build166-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -86614,65 +82838,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:104a", - "id": "build95-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:104a", - "id": "build95-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -87706,65 +83871,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:104a", - "id": "build94-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:104a", - "id": "build94-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -87824,65 +83930,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:104a", - "id": "build96-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:104a", - "id": "build96-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -88060,65 +84107,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:104a", - "id": "build94-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "10de:104a", - "id": "build94-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -91840,65 +87828,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build188-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build188-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -92932,65 +88861,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build187-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build187-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -93050,65 +88920,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build189-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build189-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -93286,65 +89097,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build187-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build187-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -97046,65 +92798,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build141-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build141-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -98138,65 +93831,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build140-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build140-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -98256,65 +93890,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build142-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build142-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -98492,65 +94067,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build140-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build140-m1", - "os": "Windows-2008ServerR2-SP1", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results", @@ -102272,65 +97788,6 @@ }, { "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build146-m1", - "os": "Windows-2012ServerR2-SP0", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "speedometer-classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "speedometer-classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build146-m1", - "os": "Windows-2012ServerR2-SP0", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "speedometer", "-v", "--upload-results", @@ -103364,65 +98821,6 @@ }, { "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build145-m1", - "os": "Windows-2012ServerR2-SP0", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build145-m1", - "os": "Windows-2012ServerR2-SP0", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.detached_context_age_in_gc", "-v", "--upload-results", @@ -103482,65 +98880,6 @@ }, { "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build147-m1", - "os": "Windows-2012ServerR2-SP0", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll-classic_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll-classic_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build147-m1", - "os": "Windows-2012ServerR2-SP0", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.infinite_scroll_tbmv2", "-v", "--upload-results", @@ -103718,65 +99057,6 @@ }, { "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release_x64" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build145-m1", - "os": "Windows-2012ServerR2-SP0", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.runtimestats.browsing_desktop_classic", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.runtimestats.browsing_desktop_classic.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0532", - "id": "build145-m1", - "os": "Windows-2012ServerR2-SP0", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "webrtc", "-v", "--upload-results",
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-network-service b/third_party/WebKit/LayoutTests/FlagExpectations/enable-network-service index 5be456d..1ac711e 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-network-service +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-network-service
@@ -15,25 +15,7 @@ Bug(none) bluetooth/characteristic/notifications/gc-with-pending-start.html [ Timeout ] Bug(none) bluetooth/characteristic/readValue/gen-gatt-op-garbage-collection-ran-during-error.html [ Timeout ] Bug(none) bluetooth/idl/idl-BluetoothDevice.html [ Timeout ] -Bug(none) bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.html [ Timeout ] -Bug(none) bluetooth/requestDevice/acceptAllDevices/device-with-name.html [ Timeout ] -Bug(none) bluetooth/requestDevice/blocklisted-service-in-filter.html [ Timeout ] -Bug(none) bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.html [ Timeout ] -Bug(none) bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.html [ Timeout ] -Bug(none) bluetooth/requestDevice/canonicalizeFilter/max-length-name.html [ Timeout ] -Bug(none) bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.html [ Timeout ] -Bug(none) bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.html [ Timeout ] -Bug(none) bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.html [ Timeout ] -Bug(none) bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.html [ Timeout ] -Bug(none) bluetooth/requestDevice/consumes-user-gesture.html [ Timeout ] -Bug(none) bluetooth/requestDevice/le-not-supported.html [ Timeout ] -Bug(none) bluetooth/requestDevice/name-empty-device-from-name-empty-filter.html [ Timeout ] -Bug(none) bluetooth/requestDevice/not-processing-user-gesture.html [ Timeout ] -Bug(none) bluetooth/requestDevice/radio-not-present.html [ Timeout ] -Bug(none) bluetooth/requestDevice/radio-off.html [ Timeout ] -Bug(none) bluetooth/requestDevice/request-from-iframe.html [ Timeout ] -Bug(none) bluetooth/requestDevice/same-device.html [ Timeout ] -Bug(none) bluetooth/requestDevice/single-filter-single-service.html [ Timeout ] +Bug(none) bluetooth/requestDevice [ Timeout ] Bug(none) bluetooth/server/connect/connection-succeeds.html [ Timeout ] Bug(none) bluetooth/server/connect/garbage-collection-ran-during-success.html [ Timeout ] Bug(none) bluetooth/server/connect/get-same-gatt-server.html [ Timeout ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index b51725fe..e7dc195 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -2855,4 +2855,4 @@ crbug.com/729836 [ Win ] fast/workers/worker-document-leak.html [ Pass Failure ] -crbug.com/733071 [ Mac ] css3/blending/svg-blend-multiply-alpha.html [ Failure ] +crbug.com/733071 css3/blending/svg-blend-multiply-alpha.html [ NeedsRebaseline ]
diff --git a/third_party/WebKit/LayoutTests/css3/blending/svg-blend-multiply-alpha-expected.html b/third_party/WebKit/LayoutTests/css3/blending/svg-blend-multiply-alpha-expected.html deleted file mode 100644 index e298840..0000000 --- a/third_party/WebKit/LayoutTests/css3/blending/svg-blend-multiply-alpha-expected.html +++ /dev/null
@@ -1,27 +0,0 @@ -<!DOCTYPE HTML> -<html> -<body> -<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="400px" height="400px"> -<g transform="scale(4 4)"> - <g> - <rect x="0" y="0" width="10" height="10" fill="rgba(255,0,0,1)"></rect> - <rect x="10" y="0" width="10" height="10" fill="rgba(0,128,0,1)"></rect> - <rect x="20" y="0" width="10" height="10" fill="rgba(0,0,128,1)"></rect> - <rect x="30" y="0" width="10" height="10" fill="rgba(127,64,0,1)"></rect> - <rect x="0" y="10" width="10" height="10" fill="rgba(128,0,0,1)"></rect> - <rect x="10" y="10" width="10" height="10" fill="rgba(0,255,0,1)"></rect> - <rect x="20" y="10" width="10" height="10" fill="rgba(0,0,128,1)"></rect> - <rect x="30" y="10" width="10" height="10" fill="rgba(64,127,0,1)"></rect> - <rect x="0" y="20" width="10" height="10" fill="rgba(128,0,0,1)"></rect> - <rect x="10" y="20" width="10" height="10" fill="rgba(0,128,0,1)"></rect> - <rect x="20" y="20" width="10" height="10" fill="rgba(0,0,255,1)"></rect> - <rect x="30" y="20" width="10" height="10" fill="rgba(64,64,0,1)"></rect> - <rect x="0" y="30" width="10" height="10" fill="rgba(191,0,0,1)"></rect> - <rect x="10" y="30" width="10" height="10" fill="rgba(0,191,0,1)"></rect> - <rect x="20" y="30" width="10" height="10" fill="rgba(0,0,128,1)"></rect> - <rect x="30" y="30" width="10" height="10" fill="rgba(95,95,0,1)"></rect> - </g> -</g> -</svg> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-animate-expected.txt b/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-animate-expected.txt new file mode 100644 index 0000000..71b7bdc --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-animate-expected.txt
@@ -0,0 +1,3 @@ +CONSOLE MESSAGE: line 4: test animator constructor called. +CONSOLE MESSAGE: line 8: test animator animate called. +
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-animate.html b/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-animate.html new file mode 100644 index 0000000..99c1b934 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-animate.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> + +<script id="simple_animate" type="text/worklet"> +registerAnimator("test", class { + constructor() { + console.log("test animator constructor called."); + } + animate() { + if (!this.animated) + console.log("test animator animate called."); + this.animated = true; + } +}); +</script> + +<script src="resources/animation-worklet-tests.js"></script>
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-registration.html b/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-registration.html index 3747631..2e17f95 100644 --- a/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-registration.html +++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-registration.html
@@ -1,5 +1,10 @@ <!DOCTYPE html> +<!-- +TODO(majidvp): The try/catch in above test cases should not be needed but at the moment +threaded worklet does not correctly pass error to its parent context. It crashes in +https://codesearch.chromium.org/chromium/src/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.cpp?sq=package:chromium&dr&l=320 +--> <script id="duplicate" type="text/worklet"> try { registerAnimator("duplicate", class { animate() {} }); @@ -24,49 +29,8 @@ constructor() { console.log("test animator constructor called."); } - animate() { - console.log("test animator animate called."); - } + animate() {} }); </script> -<script> -// TODO(majidvp): The try/catch in above test cases should not be needed but at the moment -// threaded worklet does not correctly pass error to its parent context. It crashes in -// https://codesearch.chromium.org/chromium/src/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.cpp?sq=package:chromium&dr&l=320 - -function runInAnimationWorklet(code) { - return window.animationWorklet.addModule( - URL.createObjectURL(new Blob([code], {type: 'text/javascript'})) - ); -} - -// Load test cases in worklet context in sequence and wait until they are resolved. -function runTests(testcases) { - if (window.testRunner) { - testRunner.waitUntilDone(); - testRunner.dumpAsText(); - } - - const runInSequence = testcases.reduce((chain, testcase) => { - return chain.then( _ => { - return runInAnimationWorklet(testcase); - }); - }, Promise.resolve()); - - // TODO(majidvp): Figure out how to wait on AnimationWorklet, which runs on a separate thread, - // to complete its tasks instead of a timeout. - runInSequence.then(_ => { - setTimeout(_ => { - if (window.testRunner) - testRunner.notifyDone(); - }, 100); - }); -} - -const testcases = Array.prototype.map.call(document.querySelectorAll('script[type$=worklet]'), ($el) => { - return $el.textContent; -}); - -runTests(testcases); -</script> +<script src="resources/animation-worklet-tests.js"></script>
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/resources/animation-worklet-tests.js b/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/resources/animation-worklet-tests.js new file mode 100644 index 0000000..bfb1589 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/resources/animation-worklet-tests.js
@@ -0,0 +1,44 @@ +function runInAnimationWorklet(code) { + return window.animationWorklet.addModule( + URL.createObjectURL(new Blob([code], {type: 'text/javascript'})) + ); +} + +// Wait for two main thread frames to guarantee that compositor has produced +// at least one frame. +function waitTwoAnimationFrames(callback){ + window.requestAnimationFrame( _=> { + window.requestAnimationFrame( _ => { + callback(); + }) + }); +}; + +// Load test cases in worklet context in sequence and wait until they are resolved. +function runTests(testcases) { + if (window.testRunner) { + testRunner.waitUntilDone(); + testRunner.dumpAsText(); + } + + const runInSequence = testcases.reduce((chain, testcase) => { + return chain.then( _ => { + return runInAnimationWorklet(testcase); + }); + }, Promise.resolve()); + + runInSequence.then(_ => { + // Wait to guarantee that compositor frame is produced before finishing. + // This ensure we see at least one |animate| call in the animation worklet. + waitTwoAnimationFrames(_ => { + if (window.testRunner) + testRunner.notifyDone(); + }); + }); +} + +const testcases = Array.prototype.map.call(document.querySelectorAll('script[type$=worklet]'), ($el) => { + return $el.textContent; +}); + +runTests(testcases);
diff --git a/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.cpp b/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.cpp index 61332ded..d259515 100644 --- a/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.cpp
@@ -338,6 +338,13 @@ return true; } +ScriptValue WorkerOrWorkletScriptController::EvaluateAndReturnValueForTest( + const ScriptSourceCode& source_code) { + ExecutionState state(this); + return Evaluate(source_code.Source(), source_code.Url().GetString(), + source_code.StartPosition(), nullptr, kV8CacheOptionsDefault); +} + void WorkerOrWorkletScriptController::ForbidExecution() { DCHECK(global_scope_->IsContextThread()); execution_forbidden_ = true;
diff --git a/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.h b/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.h index 38b5133..94d4adf 100644 --- a/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.h +++ b/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.h
@@ -96,6 +96,8 @@ return script_state_ && !!script_state_->PerContextData(); } + ScriptValue EvaluateAndReturnValueForTest(const ScriptSourceCode&); + private: WorkerOrWorkletScriptController(WorkerOrWorkletGlobalScope*, v8::Isolate*); class ExecutionState;
diff --git a/third_party/WebKit/Source/build/scripts/templates/CSSPropertyMetadata.cpp.tmpl b/third_party/WebKit/Source/build/scripts/templates/CSSPropertyMetadata.cpp.tmpl index de8e258d..ad04ff91 100644 --- a/third_party/WebKit/Source/build/scripts/templates/CSSPropertyMetadata.cpp.tmpl +++ b/third_party/WebKit/Source/build/scripts/templates/CSSPropertyMetadata.cpp.tmpl
@@ -47,18 +47,18 @@ bool CSSPropertyMetadata::IsEnabledProperty(CSSPropertyID unresolvedProperty) { CSSPropertyID property = resolveCSSPropertyID(unresolvedProperty); - static std::bitset<numCSSProperties>* enabledProperties = nullptr; - if (!enabledProperties) { - enabledProperties = new std::bitset<numCSSProperties>(); - enabledProperties->set(); // All bits sets to 1. + static std::bitset<numCSSProperties>* enabledProperties = []() { + std::bitset<numCSSProperties>* props = new std::bitset<numCSSProperties>(); + props->set(); // All bits sets to 1. {% for property in properties_including_aliases if property.runtime_flag %} if (!RuntimeEnabledFeatures::{{property.runtime_flag}}Enabled()) - enabledProperties->reset({{property.property_id}} - {{first_enum_value}}); + props->reset({{property.property_id}} - {{first_enum_value}}); {% endfor %} {% for property in properties_including_aliases if property.is_internal %} - enabledProperties->reset({{property.property_id}} - {{first_enum_value}}); + props->reset({{property.property_id}} - {{first_enum_value}}); {% endfor %} - } + return props; + }(); if (unresolvedProperty >= {{first_enum_value}}) return enabledProperties->test(property - {{first_enum_value}});
diff --git a/third_party/WebKit/Source/build/scripts/templates/StylePropertyShorthand.cpp.tmpl b/third_party/WebKit/Source/build/scripts/templates/StylePropertyShorthand.cpp.tmpl index 875b9c0..6bec053 100644 --- a/third_party/WebKit/Source/build/scripts/templates/StylePropertyShorthand.cpp.tmpl +++ b/third_party/WebKit/Source/build/scripts/templates/StylePropertyShorthand.cpp.tmpl
@@ -29,20 +29,22 @@ {% for property_id, property in properties.items() %} const StylePropertyShorthand& {{property.lower_camel_name}}Shorthand() { - static const CSSPropertyID {{property.lower_camel_name}}Properties[] = { + static constexpr CSSPropertyID {{property.lower_camel_name}}Properties[] = { {% for longhand_id in property.longhand_property_ids %} {{longhand_id}}, {% endfor %} }; - DEFINE_STATIC_LOCAL(StylePropertyShorthand, {{property.lower_camel_name}}Longhands, ({{property_id}}, {{property.lower_camel_name}}Properties, WTF_ARRAY_LENGTH({{property.lower_camel_name}}Properties))); + + static constexpr StylePropertyShorthand {{property.lower_camel_name}}Longhands ({{property_id}}, {{property.lower_camel_name}}Properties, WTF_ARRAY_LENGTH({{property.lower_camel_name}}Properties)); return {{property.lower_camel_name}}Longhands; } {% endfor %} // Returns an empty list if the property is not a shorthand const StylePropertyShorthand& shorthandForProperty(CSSPropertyID propertyID) { - DEFINE_STATIC_LOCAL(StylePropertyShorthand, emptyShorthand, ()); // FIXME: We shouldn't switch between shorthand/not shorthand based on a runtime flag + static constexpr StylePropertyShorthand emptyShorthand; + if (propertyID == CSSPropertyTextDecoration && !RuntimeEnabledFeatures::CSS3TextDecorationsEnabled()) return emptyShorthand;
diff --git a/third_party/WebKit/Source/build/scripts/templates/StylePropertyShorthand.h.tmpl b/third_party/WebKit/Source/build/scripts/templates/StylePropertyShorthand.h.tmpl index 27b81c6a..bcdbbc9 100644 --- a/third_party/WebKit/Source/build/scripts/templates/StylePropertyShorthand.h.tmpl +++ b/third_party/WebKit/Source/build/scripts/templates/StylePropertyShorthand.h.tmpl
@@ -30,14 +30,14 @@ class StylePropertyShorthand { USING_FAST_MALLOC(StylePropertyShorthand); public: - StylePropertyShorthand() + constexpr StylePropertyShorthand() : m_properties(0), m_length(0), m_shorthandID(CSSPropertyInvalid) {} - StylePropertyShorthand(CSSPropertyID id, - const CSSPropertyID* properties, - unsigned numProperties) + constexpr StylePropertyShorthand(CSSPropertyID id, + const CSSPropertyID* properties, + unsigned numProperties) : m_properties(properties), m_length(numProperties), m_shorthandID(id) {}
diff --git a/third_party/WebKit/Source/core/BUILD.gn b/third_party/WebKit/Source/core/BUILD.gn index 8dc263c..9324450 100644 --- a/third_party/WebKit/Source/core/BUILD.gn +++ b/third_party/WebKit/Source/core/BUILD.gn
@@ -1186,6 +1186,7 @@ "css/resolver/MatchResultTest.cpp", "css/resolver/ScopedStyleResolverTest.cpp", "css/resolver/SharedStyleFinderTest.cpp", + "css/threaded/CSSParserThreadedTest.cpp", "css/threaded/CSSToLengthConversionDataThreadedTest.cpp", "css/threaded/FilterOperationResolverThreadedTest.cpp", "dom/AttrTest.cpp",
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp b/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp index 6159cb5..05800646 100644 --- a/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp +++ b/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
@@ -182,9 +182,10 @@ StringKeyframeEffectModel* model = StringKeyframeEffectModel::Create(keyframes, &keyframes[0]->Easing()); - if (animation_index > 0 && model->HasSyntheticKeyframes()) + if (animation_index > 0 && model->HasSyntheticKeyframes()) { UseCounter::Count(element_for_scoping->GetDocument(), UseCounter::kCSSAnimationsStackedNeutralKeyframe); + } return model; }
diff --git a/third_party/WebKit/Source/core/css/SelectorChecker.cpp b/third_party/WebKit/Source/core/css/SelectorChecker.cpp index 2a71d4c..f533d5e 100644 --- a/third_party/WebKit/Source/core/css/SelectorChecker.cpp +++ b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
@@ -417,9 +417,10 @@ case CSSSelector::kShadowPseudo: { if (!is_ua_rule_ && mode_ != kQueryingRules && - context.selector->GetPseudoType() == CSSSelector::kPseudoShadow) + context.selector->GetPseudoType() == CSSSelector::kPseudoShadow) { Deprecation::CountDeprecation(context.element->GetDocument(), UseCounter::kCSSSelectorPseudoShadow); + } // If we're in the same tree-scope as the scoping element, then following // a shadow descendant combinator would escape that and thus the scope. if (context.scope && context.scope->OwnerShadowHost() && @@ -435,9 +436,10 @@ } case CSSSelector::kShadowDeep: { - if (!is_ua_rule_ && mode_ != kQueryingRules) + if (!is_ua_rule_ && mode_ != kQueryingRules) { Deprecation::CountDeprecation(context.element->GetDocument(), UseCounter::kCSSDeepCombinator); + } if (ShadowRoot* root = context.element->ContainingShadowRoot()) { if (root->GetType() == ShadowRootType::kUserAgent) return kSelectorFailsCompletely; @@ -450,9 +452,10 @@ element = element->ParentOrShadowHostElement()) { if (MatchForPseudoContent(next_context, *element, result) == kSelectorMatches) { - if (context.element->IsInShadowTree()) + if (context.element->IsInShadowTree()) { UseCounter::Count(context.element->GetDocument(), UseCounter::kCSSDeepCombinatorAndShadow); + } return kSelectorMatches; } } @@ -464,9 +467,10 @@ next_context.element = ParentOrV0ShadowHostElement(*next_context.element)) { MatchStatus match = MatchSelector(next_context, result); - if (match == kSelectorMatches && context.element->IsInShadowTree()) + if (match == kSelectorMatches && context.element->IsInShadowTree()) { UseCounter::Count(context.element->GetDocument(), UseCounter::kCSSDeepCombinatorAndShadow); + } if (match == kSelectorMatches || match == kSelectorFailsCompletely) return match; if (NextSelectorExceedsScope(next_context))
diff --git a/third_party/WebKit/Source/core/css/StylePropertyShorthandCustom.cpp b/third_party/WebKit/Source/core/css/StylePropertyShorthandCustom.cpp index dea64cf..0eb69f6f 100644 --- a/third_party/WebKit/Source/core/css/StylePropertyShorthandCustom.cpp +++ b/third_party/WebKit/Source/core/css/StylePropertyShorthandCustom.cpp
@@ -33,27 +33,27 @@ // bug: https://www.w3.org/Bugs/Public/show_bug.cgi?id=14790 // And in the spec (editor's draft) at: // http://dev.w3.org/csswg/css3-animations/#animation-shorthand-property - static const CSSPropertyID kAnimationPropertiesForParsing[] = { + static constexpr CSSPropertyID kAnimationPropertiesForParsing[] = { CSSPropertyAnimationDuration, CSSPropertyAnimationTimingFunction, CSSPropertyAnimationDelay, CSSPropertyAnimationIterationCount, CSSPropertyAnimationDirection, CSSPropertyAnimationFillMode, CSSPropertyAnimationPlayState, CSSPropertyAnimationName}; - DEFINE_STATIC_LOCAL(StylePropertyShorthand, - webkit_animation_longhands_for_parsing, - (CSSPropertyAnimation, kAnimationPropertiesForParsing, - WTF_ARRAY_LENGTH(kAnimationPropertiesForParsing))); + static constexpr StylePropertyShorthand + webkit_animation_longhands_for_parsing( + CSSPropertyAnimation, kAnimationPropertiesForParsing, + WTF_ARRAY_LENGTH(kAnimationPropertiesForParsing)); return webkit_animation_longhands_for_parsing; } // Similar to animations, we have property after timing-function and delay after // duration const StylePropertyShorthand& transitionShorthandForParsing() { - static const CSSPropertyID kTransitionProperties[] = { + static constexpr CSSPropertyID kTransitionProperties[] = { CSSPropertyTransitionDuration, CSSPropertyTransitionTimingFunction, CSSPropertyTransitionDelay, CSSPropertyTransitionProperty}; - DEFINE_STATIC_LOCAL(StylePropertyShorthand, transition_longhands, - (CSSPropertyTransition, kTransitionProperties, - WTF_ARRAY_LENGTH(kTransitionProperties))); + static constexpr StylePropertyShorthand transition_longhands( + CSSPropertyTransition, kTransitionProperties, + WTF_ARRAY_LENGTH(kTransitionProperties)); return transition_longhands; }
diff --git a/third_party/WebKit/Source/core/css/StyleSheetList.cpp b/third_party/WebKit/Source/core/css/StyleSheetList.cpp index f6234b5c..a204fdeb 100644 --- a/third_party/WebKit/Source/core/css/StyleSheetList.cpp +++ b/third_party/WebKit/Source/core/css/StyleSheetList.cpp
@@ -61,9 +61,10 @@ } CSSStyleSheet* StyleSheetList::AnonymousNamedGetter(const AtomicString& name) { - if (GetDocument()) + if (GetDocument()) { UseCounter::Count(*GetDocument(), UseCounter::kStyleSheetListAnonymousNamedGetter); + } HTMLStyleElement* item = GetNamedItem(name); if (!item) return nullptr;
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp b/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp index 051088e..3468e468 100644 --- a/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp +++ b/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
@@ -357,12 +357,14 @@ // because our current behavior is different from the spec and we want to // gather compatibility data. if (style.PaddingBefore().IsPercentOrCalc() || - style.PaddingAfter().IsPercentOrCalc()) + style.PaddingAfter().IsPercentOrCalc()) { UseCounter::Count(document, UseCounter::kFlexboxPercentagePaddingVertical); + } if (style.MarginBefore().IsPercentOrCalc() || - style.MarginAfter().IsPercentOrCalc()) + style.MarginAfter().IsPercentOrCalc()) { UseCounter::Count(document, UseCounter::kFlexboxPercentageMarginVertical); + } } }
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp index 4db1167..6bdbd0c 100644 --- a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp +++ b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
@@ -745,10 +745,11 @@ const CSSValue* value = it->properties->GetPropertyCSSValue(CSSPropertyDisplay); if (value && value->IsIdentifierValue() && - ToCSSIdentifierValue(*value).GetValueID() == CSSValueBlock) + ToCSSIdentifierValue(*value).GetValueID() == CSSValueBlock) { UseCounter::Count( element->GetDocument(), UseCounter::kSummaryElementWithDisplayBlockAuthorRule); + } } }
diff --git a/third_party/WebKit/Source/core/css/threaded/CSSParserThreadedTest.cpp b/third_party/WebKit/Source/core/css/threaded/CSSParserThreadedTest.cpp new file mode 100644 index 0000000..3fa53cd --- /dev/null +++ b/third_party/WebKit/Source/core/css/threaded/CSSParserThreadedTest.cpp
@@ -0,0 +1,62 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/css/parser/CSSParser.h" +#include "core/css/parser/CSSParserContext.h" + +#include "core/css/StylePropertySet.h" +#include "core/css/threaded/MultiThreadedTestUtil.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace blink { + +class CSSParserThreadedTest : public MultiThreadedTest { + public: + static void TestSingle(CSSPropertyID prop, const String& text) { + const CSSValue* value = CSSParser::ParseSingleValue(prop, text); + ASSERT_TRUE(value); + EXPECT_EQ(text, value->CssText()); + } + + static MutableStylePropertySet* TestValue(CSSPropertyID prop, + const String& text) { + MutableStylePropertySet* style = + MutableStylePropertySet::Create(kHTMLStandardMode); + CSSParser::ParseValue(style, prop, text, true); + return style; + } +}; + +TSAN_TEST_F(CSSParserThreadedTest, SinglePropertyFilter) { + RunOnThreads([]() { + TestSingle(CSSPropertyFilter, "sepia(50%)"); + TestSingle(CSSPropertyFilter, "blur(10px)"); + TestSingle(CSSPropertyFilter, "brightness(50%) invert(100%)"); + }); +} + +TSAN_TEST_F(CSSParserThreadedTest, SinglePropertyFont) { + RunOnThreads([]() { + TestSingle(CSSPropertyFontFamily, "serif"); + TestSingle(CSSPropertyFontFamily, "monospace"); + TestSingle(CSSPropertyFontFamily, "times"); + TestSingle(CSSPropertyFontFamily, "arial"); + + TestSingle(CSSPropertyFontWeight, "normal"); + TestSingle(CSSPropertyFontWeight, "bold"); + + TestSingle(CSSPropertyFontSize, "10px"); + TestSingle(CSSPropertyFontSize, "20em"); + }); +} + +TSAN_TEST_F(CSSParserThreadedTest, ValuePropertyFont) { + RunOnThreads([]() { + MutableStylePropertySet* v = TestValue(CSSPropertyFont, "15px arial"); + EXPECT_EQ(v->GetPropertyValue(CSSPropertyFontFamily), "arial"); + EXPECT_EQ(v->GetPropertyValue(CSSPropertyFontSize), "15px"); + }); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/css/threaded/FilterOperationResolverThreadedTest.cpp b/third_party/WebKit/Source/core/css/threaded/FilterOperationResolverThreadedTest.cpp index 78b489b..7b506bf 100644 --- a/third_party/WebKit/Source/core/css/threaded/FilterOperationResolverThreadedTest.cpp +++ b/third_party/WebKit/Source/core/css/threaded/FilterOperationResolverThreadedTest.cpp
@@ -8,8 +8,6 @@ #include "core/css/parser/CSSParserContext.h" #include "core/css/threaded/MultiThreadedTestUtil.h" #include "core/style/FilterOperation.h" -#include "platform/fonts/Font.h" -#include "platform/fonts/FontDescription.h" #include "testing/gtest/include/gtest/gtest.h" namespace blink {
diff --git a/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.cpp b/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.cpp new file mode 100644 index 0000000..e5a2980 --- /dev/null +++ b/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.cpp
@@ -0,0 +1,25 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/dom/AnimationWorkletProxyClient.h" + +namespace blink { + +AnimationWorkletProxyClient* AnimationWorkletProxyClient::From( + WorkerClients* clients) { + return static_cast<AnimationWorkletProxyClient*>( + Supplement<WorkerClients>::From(clients, SupplementName())); +} + +const char* AnimationWorkletProxyClient::SupplementName() { + return "AnimationWorkletProxyClient"; +} + +void ProvideAnimationWorkletProxyClientTo(WorkerClients* clients, + AnimationWorkletProxyClient* client) { + clients->ProvideSupplement(AnimationWorkletProxyClient::SupplementName(), + client); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.h b/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.h index 64fc6af8..ca3a01ac 100644 --- a/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.h +++ b/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.h
@@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,19 +7,33 @@ #include "core/CoreExport.h" #include "core/dom/CompositorProxyClient.h" +#include "core/workers/WorkerClients.h" #include "platform/wtf/Noncopyable.h" namespace blink { -class CORE_EXPORT AnimationWorkletProxyClient : public GarbageCollectedMixin { +class WorkletGlobalScope; + +class CORE_EXPORT AnimationWorkletProxyClient + : public Supplement<WorkerClients> { WTF_MAKE_NONCOPYABLE(AnimationWorkletProxyClient); public: AnimationWorkletProxyClient() {} - virtual ~AnimationWorkletProxyClient() {} - DEFINE_INLINE_VIRTUAL_TRACE() {} + + static AnimationWorkletProxyClient* From(WorkerClients*); + static const char* SupplementName(); + + virtual void SetGlobalScope(WorkletGlobalScope*) = 0; + virtual void Dispose() = 0; + + virtual CompositorProxyClient* GetCompositorProxyClient() = 0; }; +CORE_EXPORT void ProvideAnimationWorkletProxyClientTo( + WorkerClients*, + AnimationWorkletProxyClient*); + } // namespace blink #endif // AnimationWorkletProxyClient_h
diff --git a/third_party/WebKit/Source/core/dom/BUILD.gn b/third_party/WebKit/Source/core/dom/BUILD.gn index 318118e4..be70c986 100644 --- a/third_party/WebKit/Source/core/dom/BUILD.gn +++ b/third_party/WebKit/Source/core/dom/BUILD.gn
@@ -17,6 +17,7 @@ "AccessibleNode.cpp", "AccessibleNode.h", "AncestorList.h", + "AnimationWorkletProxyClient.cpp", "AnimationWorkletProxyClient.h", "Attr.cpp", "Attr.h",
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp index 598cad0..71537b4 100644 --- a/third_party/WebKit/Source/core/dom/Document.cpp +++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -6300,9 +6300,10 @@ if (!std::isfinite(force)) force = 0; - if (radius_x || radius_y || rotation_angle || force) + if (radius_x || radius_y || rotation_angle || force) { UseCounter::Count(*this, UseCounter::kDocumentCreateTouchMoreThanSevenArguments); + } // FIXME: It's not clear from the documentation at // http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/DocumentAdditionsReference/DocumentAdditions/DocumentAdditions.html
diff --git a/third_party/WebKit/Source/core/dom/ElementFullscreen.cpp b/third_party/WebKit/Source/core/dom/ElementFullscreen.cpp index 04e7155..34842ff 100644 --- a/third_party/WebKit/Source/core/dom/ElementFullscreen.cpp +++ b/third_party/WebKit/Source/core/dom/ElementFullscreen.cpp
@@ -14,9 +14,10 @@ } void ElementFullscreen::webkitRequestFullscreen(Element& element) { - if (element.IsInShadowTree()) + if (element.IsInShadowTree()) { UseCounter::Count(element.GetDocument(), UseCounter::kPrefixedElementRequestFullscreenInShadow); + } Fullscreen::RequestFullscreen(element, Fullscreen::RequestType::kPrefixed); }
diff --git a/third_party/WebKit/Source/core/dom/PseudoElement.cpp b/third_party/WebKit/Source/core/dom/PseudoElement.cpp index a3261b389..913858b 100644 --- a/third_party/WebKit/Source/core/dom/PseudoElement.cpp +++ b/third_party/WebKit/Source/core/dom/PseudoElement.cpp
@@ -92,9 +92,10 @@ SetParentOrShadowHostNode(parent); SetHasCustomStyleCallbacks(); if ((pseudo_id == kPseudoIdBefore || pseudo_id == kPseudoIdAfter) && - parent->HasTagName(HTMLNames::inputTag)) + parent->HasTagName(HTMLNames::inputTag)) { UseCounter::Count(parent->GetDocument(), UseCounter::kPseudoBeforeAfterForInputElement); + } } PassRefPtr<ComputedStyle> PseudoElement::CustomStyleForLayoutObject() {
diff --git a/third_party/WebKit/Source/core/dom/StyleEngineContext.cpp b/third_party/WebKit/Source/core/dom/StyleEngineContext.cpp index 4d951ae..e1fa377 100644 --- a/third_party/WebKit/Source/core/dom/StyleEngineContext.cpp +++ b/third_party/WebKit/Source/core/dom/StyleEngineContext.cpp
@@ -37,9 +37,10 @@ // treated as before-body. if (!added_pending_sheet_before_body_) { added_pending_sheet_before_body_ = !document.body(); - if (!added_pending_sheet_before_body_) + if (!added_pending_sheet_before_body_) { UseCounter::Count(document, UseCounter::kPendingStylesheetAddedAfterBodyStarted); + } } }
diff --git a/third_party/WebKit/Source/core/events/EventTarget.cpp b/third_party/WebKit/Source/core/events/EventTarget.cpp index 0c48212..f6f2cdee 100644 --- a/third_party/WebKit/Source/core/events/EventTarget.cpp +++ b/third_party/WebKit/Source/core/events/EventTarget.cpp
@@ -652,9 +652,10 @@ if (CheckTypeThenUseCount(event, EventTypeNames::beforeunload, UseCounter::kDocumentBeforeUnloadFired)) { if (LocalDOMWindow* executing_window = this->ExecutingWindow()) { - if (executing_window != executing_window->top()) + if (executing_window != executing_window->top()) { UseCounter::Count(executing_window->document(), UseCounter::kSubFrameBeforeUnloadFired); + } } } else if (CheckTypeThenUseCount(event, EventTypeNames::unload, UseCounter::kDocumentUnloadFired)) { @@ -676,9 +677,10 @@ UseCounter::kPointerDownFired)) { if (LocalDOMWindow* executing_window = this->ExecutingWindow()) { if (event->IsPointerEvent() && - static_cast<PointerEvent*>(event)->pointerType() == "touch") + static_cast<PointerEvent*>(event)->pointerType() == "touch") { UseCounter::Count(executing_window->document(), UseCounter::kPointerDownFiredForTouch); + } } } else if (CheckTypeThenUseCount(event, EventTypeNames::pointerenter, UseCounter::kPointerEnterLeaveFired)) {
diff --git a/third_party/WebKit/Source/core/exported/BUILD.gn b/third_party/WebKit/Source/core/exported/BUILD.gn index 11f0cdb..02badcd 100644 --- a/third_party/WebKit/Source/core/exported/BUILD.gn +++ b/third_party/WebKit/Source/core/exported/BUILD.gn
@@ -47,6 +47,8 @@ "WebPerformance.cpp", "WebPluginContainerBase.cpp", "WebPluginContainerBase.h", + "WebPluginContainerImpl.cpp", + "WebPluginContainerImpl.h", "WebPluginScriptForbiddenScope.cpp", "WebRange.cpp", "WebRenderTheme.cpp",
diff --git a/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp b/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp similarity index 98% rename from third_party/WebKit/Source/web/WebPluginContainerImpl.cpp rename to third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp index 8ec08159..5582006 100644 --- a/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp +++ b/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp
@@ -29,7 +29,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "web/WebPluginContainerImpl.h" +#include "core/exported/WebPluginContainerImpl.h" #include "bindings/core/v8/ScriptController.h" #include "bindings/core/v8/ScriptSourceCode.h" @@ -563,13 +563,14 @@ if (Page* page = element_->GetDocument().GetPage()) { EventHandlerRegistry& registry = page->GetEventHandlerRegistry(); if (request_type != kTouchEventRequestTypeNone && - touch_event_request_type_ == kTouchEventRequestTypeNone) + touch_event_request_type_ == kTouchEventRequestTypeNone) { registry.DidAddEventHandler( *element_, EventHandlerRegistry::kTouchStartOrMoveEventBlocking); - else if (request_type == kTouchEventRequestTypeNone && - touch_event_request_type_ != kTouchEventRequestTypeNone) + } else if (request_type == kTouchEventRequestTypeNone && + touch_event_request_type_ != kTouchEventRequestTypeNone) { registry.DidRemoveEventHandler( *element_, EventHandlerRegistry::kTouchStartOrMoveEventBlocking); + } } touch_event_request_type_ = request_type; } @@ -579,12 +580,13 @@ return; if (Page* page = element_->GetDocument().GetPage()) { EventHandlerRegistry& registry = page->GetEventHandlerRegistry(); - if (wants_wheel_events) + if (wants_wheel_events) { registry.DidAddEventHandler(*element_, EventHandlerRegistry::kWheelEventBlocking); - else + } else { registry.DidRemoveEventHandler(*element_, EventHandlerRegistry::kWheelEventBlocking); + } } wants_wheel_events_ = wants_wheel_events; @@ -1023,13 +1025,14 @@ .EnclosingBoundingBox(); // As a performance optimization, map the clipped rect separately if is // different than the unclipped rect. - if (layout_clipped_local_rect != unclipped_layout_local_rect) + if (layout_clipped_local_rect != unclipped_layout_local_rect) { clipped_local_rect = box->AbsoluteToLocalQuad(FloatRect(layout_clipped_local_rect), kTraverseDocumentBoundaries | kUseTransforms) .EnclosingBoundingBox(); - else + } else { clipped_local_rect = unclipped_int_local_rect; + } } void WebPluginContainerImpl::CalculateGeometry(IntRect& window_rect,
diff --git a/third_party/WebKit/Source/web/WebPluginContainerImpl.h b/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.h similarity index 98% rename from third_party/WebKit/Source/web/WebPluginContainerImpl.h rename to third_party/WebKit/Source/core/exported/WebPluginContainerImpl.h index 1eb34b7..a8096fe9 100644 --- a/third_party/WebKit/Source/web/WebPluginContainerImpl.h +++ b/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.h
@@ -32,6 +32,7 @@ #ifndef WebPluginContainerImpl_h #define WebPluginContainerImpl_h +#include "core/CoreExport.h" #include "core/dom/ContextLifecycleObserver.h" #include "core/exported/WebPluginContainerBase.h" #include "platform/heap/Handle.h" @@ -42,7 +43,6 @@ #include "public/platform/WebCoalescedInputEvent.h" #include "public/platform/WebTouchEvent.h" #include "public/web/WebPluginContainer.h" -#include "web/WebExport.h" namespace blink { @@ -61,7 +61,7 @@ struct WebPrintParams; struct WebPrintPresetOptions; -class WEB_EXPORT WebPluginContainerImpl final : public WebPluginContainerBase { +class CORE_EXPORT WebPluginContainerImpl final : public WebPluginContainerBase { USING_PRE_FINALIZER(WebPluginContainerImpl, PreFinalize); public:
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPSource.cpp b/third_party/WebKit/Source/core/frame/csp/CSPSource.cpp index d23e194..5aba84c6 100644 --- a/third_party/WebKit/Source/core/frame/csp/CSPSource.cpp +++ b/third_party/WebKit/Source/core/frame/csp/CSPSource.cpp
@@ -93,9 +93,10 @@ // the following count measures when a match fails that would have // passed the old, incorrect style, in case a lot of sites were // relying on that behavior. - if (document && equal_hosts) + if (document && equal_hosts) { UseCounter::Count(*document, UseCounter::kCSPSourceWildcardWouldMatchExactHost); + } } else { // host-part = 1*host-char *( "." 1*host-char ) match = equal_hosts;
diff --git a/third_party/WebKit/Source/core/html/HTMLElement.cpp b/third_party/WebKit/Source/core/html/HTMLElement.cpp index e5e3ab99..7504a48 100644 --- a/third_party/WebKit/Source/core/html/HTMLElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLElement.cpp
@@ -204,9 +204,10 @@ first_separator = ui_language.find('_'); if (first_separator != kNotFound) ui_language = ui_language.Left(first_separator); - if (!DeprecatedEqualIgnoringCase(html_language, ui_language)) + if (!DeprecatedEqualIgnoringCase(html_language, ui_language)) { UseCounter::Count(GetDocument(), UseCounter::kLangAttributeDoesNotMatchToUILocale); + } } else { // The empty string means the language is explicitly unknown. AddPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitLocale, @@ -248,9 +249,10 @@ AddPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitLineBreak, CSSValueAfterWhiteSpace); UseCounter::Count(GetDocument(), UseCounter::kContentEditableTrue); - if (HasTagName(htmlTag)) + if (HasTagName(htmlTag)) { UseCounter::Count(GetDocument(), UseCounter::kContentEditableTrueOnHTML); + } } else if (DeprecatedEqualIgnoringCase(value, "plaintext-only")) { AddPropertyToPresentationAttributeStyle( style, CSSPropertyWebkitUserModify, CSSValueReadWritePlaintextOnly);
diff --git a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp index a329e9a..64cde65 100644 --- a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
@@ -469,9 +469,10 @@ UseCounter::Count(GetDocument(), UseCounter::kFormsSubmitted); if (MixedContentChecker::IsMixedFormAction(GetDocument().GetFrame(), - submission->Action())) + submission->Action())) { UseCounter::Count(GetDocument().GetFrame(), UseCounter::kMixedContentFormsSubmitted); + } // TODO(lukasza): Investigate if the code below can uniformly handle remote // and local frames (i.e. by calling virtual Frame::navigate from a timer). @@ -527,9 +528,10 @@ attributes_.Action().IsEmpty() ? GetDocument().Url().GetString() : attributes_.Action()); if (MixedContentChecker::IsMixedFormAction(GetDocument().GetFrame(), - action_url)) + action_url)) { UseCounter::Count(GetDocument().GetFrame(), UseCounter::kMixedContentFormPresent); + } } else if (name == targetAttr) { attributes_.SetTarget(params.new_value); } else if (name == methodAttr) {
diff --git a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp index 9c7764e7..38907b23 100644 --- a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
@@ -362,9 +362,10 @@ continue; HTMLSourceElement* source = toHTMLSourceElement(child); - if (!source->FastGetAttribute(srcAttr).IsNull()) + if (!source->FastGetAttribute(srcAttr).IsNull()) { Deprecation::CountDeprecation(GetDocument(), UseCounter::kPictureSourceSrc); + } String srcset = source->FastGetAttribute(srcsetAttr); if (srcset.IsEmpty()) continue;
diff --git a/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp b/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp index 7fc8dbe..e80125c6 100644 --- a/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp
@@ -59,10 +59,11 @@ for (LabelableElement& element : Traversal<LabelableElement>::DescendantsOf(*this)) { if (element.SupportLabels()) { - if (!element.IsFormControlElement()) + if (!element.IsFormControlElement()) { UseCounter::Count( GetDocument(), UseCounter::kHTMLLabelElementControlForNonFormAssociatedElement); + } return &element; } } @@ -75,10 +76,11 @@ if (Element* element = GetTreeScope().getElementById(control_id)) { if (IsLabelableElement(*element) && ToLabelableElement(*element).SupportLabels()) { - if (!element->IsFormControlElement()) + if (!element->IsFormControlElement()) { UseCounter::Count( GetDocument(), UseCounter::kHTMLLabelElementControlForNonFormAssociatedElement); + } return ToLabelableElement(element); } }
diff --git a/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp b/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp index 257922a..fedf413 100644 --- a/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp
@@ -99,9 +99,10 @@ ScriptType script_type = ScriptType::kClassic; if (insertion_point->isConnected() && HasSourceAttribute() && !Loader()->IsScriptTypeSupported( - ScriptLoader::kDisallowLegacyTypeInTypeAttribute, script_type)) + ScriptLoader::kDisallowLegacyTypeInTypeAttribute, script_type)) { UseCounter::Count(GetDocument(), UseCounter::kScriptElementWithInvalidTypeHasSrc); + } HTMLElement::InsertedInto(insertion_point); LogAddElementIfIsolatedWorldAndInDocument("script", srcAttr);
diff --git a/third_party/WebKit/Source/core/html/forms/BaseCheckableInputType.cpp b/third_party/WebKit/Source/core/html/forms/BaseCheckableInputType.cpp index 64aee26..613522e 100644 --- a/third_party/WebKit/Source/core/html/forms/BaseCheckableInputType.cpp +++ b/third_party/WebKit/Source/core/html/forms/BaseCheckableInputType.cpp
@@ -110,9 +110,10 @@ } void BaseCheckableInputType::ReadingChecked() const { - if (is_in_click_handler_) + if (is_in_click_handler_) { UseCounter::Count(GetElement().GetDocument(), UseCounter::kReadingCheckedInClickHandler); + } } bool BaseCheckableInputType::IsCheckable() {
diff --git a/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp b/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp index 900a5877..711e0ad 100644 --- a/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp +++ b/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp
@@ -94,9 +94,10 @@ void RangeInputType::CountUsage() { CountUsageIfVisible(UseCounter::kInputTypeRange); if (const ComputedStyle* style = GetElement().GetComputedStyle()) { - if (style->Appearance() == kSliderVerticalPart) + if (style->Appearance() == kSliderVerticalPart) { UseCounter::Count(GetElement().GetDocument(), UseCounter::kInputTypeRangeVerticalAppearance); + } } }
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportChild.cpp b/third_party/WebKit/Source/core/html/imports/HTMLImportChild.cpp index a38d4894..e87afcc4 100644 --- a/third_party/WebKit/Source/core/html/imports/HTMLImportChild.cpp +++ b/third_party/WebKit/Source/core/html/imports/HTMLImportChild.cpp
@@ -78,9 +78,10 @@ void HTMLImportChild::DidFinishLoading() { StateWillChange(); - if (GetDocument() && GetDocument()->GetStyleEngine().HasStyleSheets()) + if (GetDocument() && GetDocument()->GetStyleEngine().HasStyleSheets()) { UseCounter::Count(Root()->GetDocument(), UseCounter::kHTMLImportsHasStyleSheets); + } V0CustomElement::DidFinishLoadingImport(*(Root()->GetDocument())); }
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp b/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp index fac6a5be..b57d36b 100644 --- a/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp +++ b/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp
@@ -75,9 +75,10 @@ HTMLImport::SyncMode mode = client->IsSync() && !MakesCycle(parent, url) ? HTMLImport::kSync : HTMLImport::kAsync; - if (mode == HTMLImport::kAsync) + if (mode == HTMLImport::kAsync) { UseCounter::Count(Root()->GetDocument(), UseCounter::kHTMLImportsAsyncAttribute); + } HTMLImportChild* child = new HTMLImportChild(url, loader, mode); child->SetClient(client);
diff --git a/third_party/WebKit/Source/core/input/KeyboardEventManager.cpp b/third_party/WebKit/Source/core/input/KeyboardEventManager.cpp index 521e138..8c94ecd 100644 --- a/third_party/WebKit/Source/core/input/KeyboardEventManager.cpp +++ b/third_party/WebKit/Source/core/input/KeyboardEventManager.cpp
@@ -350,9 +350,10 @@ if (!frame_->GetEditor().Behavior().ShouldNavigateBackOnBackspace()) return; UseCounter::Count(frame_->GetDocument(), UseCounter::kBackspaceNavigatedBack); - if (frame_->GetPage()->GetChromeClient().HadFormInteraction()) + if (frame_->GetPage()->GetChromeClient().HadFormInteraction()) { UseCounter::Count(frame_->GetDocument(), UseCounter::kBackspaceNavigatedBackAfterFormInteraction); + } bool handled_event = frame_->Loader().Client()->NavigateBackForward( event->shiftKey() ? 1 : -1); if (handled_event)
diff --git a/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp b/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp index f653e7c..d187b809 100644 --- a/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp
@@ -269,14 +269,15 @@ stretching_children_ = false; if (!IsAnonymous()) { const KURL& url = GetDocument().Url(); - if (url.ProtocolIs("chrome")) + if (url.ProtocolIs("chrome")) { UseCounter::Count(GetDocument(), UseCounter::kDeprecatedFlexboxChrome); - else if (url.ProtocolIs("chrome-extension")) + } else if (url.ProtocolIs("chrome-extension")) { UseCounter::Count(GetDocument(), UseCounter::kDeprecatedFlexboxChromeExtension); - else + } else { UseCounter::Count(GetDocument(), UseCounter::kDeprecatedFlexboxWebContent); + } } }
diff --git a/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp b/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp index 4770719b..b433763 100644 --- a/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp
@@ -162,9 +162,10 @@ float max_content_flex_fraction = max_preferred_logical_width.ToFloat() / flex_grow; if (previous_max_content_flex_fraction != -1 && - max_content_flex_fraction != previous_max_content_flex_fraction) + max_content_flex_fraction != previous_max_content_flex_fraction) { UseCounter::Count(GetDocument(), UseCounter::kFlexboxIntrinsicSizeAlgorithmIsDifferent); + } return max_content_flex_fraction; }
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp index 1a5d77a..57ae9acc 100644 --- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp +++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
@@ -843,9 +843,10 @@ style.HasWillChangeTransformHint()); if (style.Preserves3D() && style.HasOpacity() && - owning_layer_.Has3DTransformedDescendant()) + owning_layer_.Has3DTransformedDescendant()) { UseCounter::Count(layout_object.GetDocument(), UseCounter::kOpacityWithPreserve3DQuirk); + } return layer_config_changed; }
diff --git a/third_party/WebKit/Source/core/loader/WorkletScriptLoader.h b/third_party/WebKit/Source/core/loader/WorkletScriptLoader.h index f2404f91..e38d938e 100644 --- a/third_party/WebKit/Source/core/loader/WorkletScriptLoader.h +++ b/third_party/WebKit/Source/core/loader/WorkletScriptLoader.h
@@ -19,7 +19,7 @@ // classic script. You can access this class only on the main thread. // A client of this class receives notifications via Client interface. // TODO(nhiroki): Switch to module script loading (https://crbug.com/627945) -class WorkletScriptLoader final +class CORE_EXPORT WorkletScriptLoader final : public GarbageCollectedFinalized<WorkletScriptLoader>, public ResourceOwner<ScriptResource, ScriptResourceClient> { USING_GARBAGE_COLLECTED_MIXIN(WorkletScriptLoader);
diff --git a/third_party/WebKit/Source/core/page/PointerLockController.cpp b/third_party/WebKit/Source/core/page/PointerLockController.cpp index f9aa43b..16a10efe 100644 --- a/third_party/WebKit/Source/core/page/PointerLockController.cpp +++ b/third_party/WebKit/Source/core/page/PointerLockController.cpp
@@ -51,9 +51,10 @@ UseCounter::CountCrossOriginIframe( target->GetDocument(), UseCounter::kElementRequestPointerLockIframe); - if (target->IsInShadowTree()) + if (target->IsInShadowTree()) { UseCounter::Count(target->GetDocument(), UseCounter::kElementRequestPointerLockInShadow); + } if (target->GetDocument().IsSandboxed(kSandboxPointerLock)) { // FIXME: This message should be moved off the console once a solution to
diff --git a/third_party/WebKit/Source/core/paint/ThemePainter.cpp b/third_party/WebKit/Source/core/paint/ThemePainter.cpp index 1d778c3..40ba4fc 100644 --- a/third_party/WebKit/Source/core/paint/ThemePainter.cpp +++ b/third_party/WebKit/Source/core/paint/ThemePainter.cpp
@@ -181,13 +181,14 @@ UseCounter::kCSSValueAppearanceTextFieldRendered); if (isHTMLInputElement(o.GetNode())) { HTMLInputElement* input = toHTMLInputElement(o.GetNode()); - if (input->type() == InputTypeNames::search) + if (input->type() == InputTypeNames::search) { UseCounter::Count(o.GetDocument(), UseCounter::kCSSValueAppearanceTextFieldForSearch); - else if (input->IsTextField()) + } else if (input->IsTextField()) { UseCounter::Count( o.GetDocument(), UseCounter::kCSSValueAppearanceTextFieldForTextField); + } } return PaintTextField(o, paint_info, r); case kTextAreaPart:
diff --git a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp index 22750ce..1e6c961 100644 --- a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp +++ b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp
@@ -306,9 +306,10 @@ return kInsertionDone; UseCounter::Count(GetDocument(), UseCounter::kSVGSMILElementInDocument); - if (GetDocument().IsLoadCompleted()) + if (GetDocument().IsLoadCompleted()) { UseCounter::Count(&GetDocument(), UseCounter::kSVGSMILElementInsertedAfterLoad); + } SVGSVGElement* owner = ownerSVGElement(); if (!owner)
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp b/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp index fa261c0..6199c5b 100644 --- a/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp +++ b/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
@@ -638,9 +638,10 @@ void SVGImage::UpdateUseCounters(const Document& document) const { if (SVGSVGElement* root_element = SvgRootElement(page_.Get())) { - if (root_element->TimeContainer()->HasAnimations()) + if (root_element->TimeContainer()->HasAnimations()) { UseCounter::Count(document, UseCounter::kSVGSMILAnimationInImageRegardlessOfCache); + } } }
diff --git a/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp b/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp index ac5b7fd..e7df10c4 100644 --- a/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp +++ b/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp
@@ -11,6 +11,7 @@ #include "core/frame/csp/ContentSecurityPolicy.h" #include "core/origin_trials/OriginTrialContext.h" #include "core/workers/ThreadedWorkletObjectProxy.h" +#include "core/workers/WorkerClients.h" #include "core/workers/WorkerInspectorProxy.h" #include "core/workers/WorkerThreadStartupData.h" #include "core/workers/WorkletGlobalScope.h"
diff --git a/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.h b/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.h index eabafbb..68516c2 100644 --- a/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.h +++ b/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.h
@@ -16,6 +16,7 @@ class ScriptSourceCode; class ThreadedWorkletObjectProxy; +class WorkerClients; class CORE_EXPORT ThreadedWorkletMessagingProxy : public ThreadedMessagingProxyBase,
diff --git a/third_party/WebKit/Source/core/workers/WorkletPendingTasks.h b/third_party/WebKit/Source/core/workers/WorkletPendingTasks.h index 5de3435..80f38e86 100644 --- a/third_party/WebKit/Source/core/workers/WorkletPendingTasks.h +++ b/third_party/WebKit/Source/core/workers/WorkletPendingTasks.h
@@ -5,6 +5,7 @@ #ifndef WorkletPendingTasks_h #define WorkletPendingTasks_h +#include "core/CoreExport.h" #include "bindings/core/v8/ScriptPromiseResolver.h" #include "platform/heap/Heap.h" @@ -18,7 +19,8 @@ // https://drafts.css-houdini.org/worklets/#fetch-and-invoke-a-worklet-script // // All functions must be accessed on the main thread. -class WorkletPendingTasks final : public GarbageCollected<WorkletPendingTasks> { +class CORE_EXPORT WorkletPendingTasks final + : public GarbageCollected<WorkletPendingTasks> { public: WorkletPendingTasks(int counter, ScriptPromiseResolver*);
diff --git a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp index be28efee..c111956 100644 --- a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp +++ b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
@@ -645,10 +645,11 @@ // exception thrown. // Refer : https://xhr.spec.whatwg.org/#sync-warning // Use count for XHR synchronous requests on main thread only. - if (!GetDocument()->ProcessingBeforeUnload()) + if (!GetDocument()->ProcessingBeforeUnload()) { Deprecation::CountDeprecation( GetExecutionContext(), UseCounter::kXMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload); + } } method_ = FetchUtils::NormalizeMethod(method); @@ -976,9 +977,10 @@ Suborigin::SuboriginPolicyOptions::kUnsafeCredentials) && SecurityOrigin::Create(url_)->IsSameSchemeHostPort(GetSecurityOrigin())); - if (!same_origin_request_ && include_credentials) + if (!same_origin_request_ && include_credentials) { UseCounter::Count(&execution_context, UseCounter::kXMLHttpRequestCrossOriginWithCredentials); + } // We also remember whether upload events should be allowed for this request // in case the upload listeners are added after the request is started.
diff --git a/third_party/WebKit/Source/modules/BUILD.gn b/third_party/WebKit/Source/modules/BUILD.gn index 845c963..3cb21f1 100644 --- a/third_party/WebKit/Source/modules/BUILD.gn +++ b/third_party/WebKit/Source/modules/BUILD.gn
@@ -236,6 +236,7 @@ "canvas/HTMLCanvasElementModuleTest.cpp", "canvas2d/CanvasRenderingContext2DAPITest.cpp", "canvas2d/CanvasRenderingContext2DTest.cpp", + "compositorworker/AnimationWorkletGlobalScopeTest.cpp", "compositorworker/AnimationWorkletThreadTest.cpp", "compositorworker/CompositorWorkerThreadTest.cpp", "credentialmanager/CredentialsContainerTest.cpp",
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorklet.cpp b/third_party/WebKit/Source/modules/compositorworker/AnimationWorklet.cpp index 7d1032e..b8d8280 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorklet.cpp +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorklet.cpp
@@ -39,8 +39,10 @@ document->GetFrame()); WorkerClients* worker_clients = WorkerClients::Create(); - worklet_messaging_proxy_ = new AnimationWorkletMessagingProxy( - GetExecutionContext(), worker_clients, proxy_client); + ProvideAnimationWorkletProxyClientTo(worker_clients, proxy_client); + + worklet_messaging_proxy_ = + new AnimationWorkletMessagingProxy(GetExecutionContext(), worker_clients); worklet_messaging_proxy_->Initialize(); }
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.cpp b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.cpp index 297d48f..1f8849b 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.cpp +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.cpp
@@ -8,7 +8,9 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/WorkerOrWorkletScriptController.h" +#include "core/dom/AnimationWorkletProxyClient.h" #include "core/dom/ExceptionCode.h" +#include "core/workers/WorkerClients.h" #include "platform/bindings/V8BindingMacros.h" #include "platform/bindings/V8ObjectConstructor.h" @@ -40,7 +42,11 @@ std::move(security_origin), isolate, thread, - worker_clients) {} + worker_clients) { + if (AnimationWorkletProxyClient* proxy_client = + AnimationWorkletProxyClient::From(Clients())) + proxy_client->SetGlobalScope(this); +} AnimationWorkletGlobalScope::~AnimationWorkletGlobalScope() {} @@ -60,6 +66,25 @@ ThreadedWorkletGlobalScope::TraceWrappers(visitor); } +void AnimationWorkletGlobalScope::Dispose() { + DCHECK(IsContextThread()); + if (AnimationWorkletProxyClient* proxy_client = + AnimationWorkletProxyClient::From(Clients())) + proxy_client->Dispose(); + ThreadedWorkletGlobalScope::Dispose(); +} + +void AnimationWorkletGlobalScope::Mutate() { + DCHECK(IsContextThread()); + + ScriptState* script_state = ScriptController()->GetScriptState(); + ScriptState::Scope scope(script_state); + + for (Animator* animator : animators_) { + animator->Animate(script_state); + } +} + void AnimationWorkletGlobalScope::registerAnimator( const String& name, const ScriptValue& ctorValue, @@ -124,13 +149,14 @@ AnimatorDefinition* definition = new AnimatorDefinition(isolate, constructor, animate); + animator_definitions_.Set( name, TraceWrapperMember<AnimatorDefinition>(this, definition)); // Immediately instantiate an animator for the registered definition. // TODO(majidvp): Remove this once you add alternative way to instantiate - Animator* animator = CreateInstance(name); - animators_.push_back(TraceWrapperMember<Animator>(this, animator)); + if (Animator* animator = CreateInstance(name)) + animators_.push_back(TraceWrapperMember<Animator>(this, animator)); } Animator* AnimationWorkletGlobalScope::CreateInstance(const String& name) { @@ -151,4 +177,9 @@ return new Animator(isolate, definition, instance); } +AnimatorDefinition* AnimationWorkletGlobalScope::FindDefinitionForTest( + const String& name) { + return animator_definitions_.at(name); +} + } // namespace blink
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.h b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.h index f525cdc..0df99b16 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.h +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.h
@@ -7,6 +7,7 @@ #include "bindings/core/v8/ScriptValue.h" #include "core/workers/ThreadedWorkletGlobalScope.h" +#include "modules/ModulesExport.h" #include "modules/compositorworker/Animator.h" #include "modules/compositorworker/AnimatorDefinition.h" #include "platform/bindings/ScriptWrappable.h" @@ -14,8 +15,10 @@ namespace blink { class ExceptionState; +class WorkerClients; -class AnimationWorkletGlobalScope : public ThreadedWorkletGlobalScope { +class MODULES_EXPORT AnimationWorkletGlobalScope + : public ThreadedWorkletGlobalScope { DEFINE_WRAPPERTYPEINFO(); public: @@ -28,12 +31,17 @@ ~AnimationWorkletGlobalScope() override; DECLARE_TRACE(); DECLARE_TRACE_WRAPPERS(); + void Dispose() override; + bool IsAnimationWorkletGlobalScope() const final { return true; } + + Animator* CreateInstance(const String& name); + void Mutate(); void registerAnimator(const String& name, const ScriptValue& ctorValue, ExceptionState&); - Animator* CreateInstance(const String& name); + AnimatorDefinition* FindDefinitionForTest(const String& name); private: AnimationWorkletGlobalScope(const KURL&,
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScopeTest.cpp b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScopeTest.cpp new file mode 100644 index 0000000..3a5ee57 --- /dev/null +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScopeTest.cpp
@@ -0,0 +1,179 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "modules/compositorworker/AnimationWorkletGlobalScope.h" + +#include "bindings/core/v8/ExceptionState.h" +#include "bindings/core/v8/ScriptSourceCode.h" +#include "bindings/core/v8/V8BindingForCore.h" +#include "bindings/core/v8/WorkerOrWorkletScriptController.h" +#include "bindings/core/v8/WorkerV8Settings.h" +#include "core/dom/TaskRunnerHelper.h" +#include "core/workers/WorkerReportingProxy.h" +#include "core/workers/WorkerThreadStartupData.h" +#include "modules/compositorworker/AnimationWorklet.h" +#include "modules/compositorworker/AnimationWorkletThread.h" +#include "modules/compositorworker/Animator.h" +#include "modules/compositorworker/AnimatorDefinition.h" +#include "platform/CrossThreadFunctional.h" +#include "platform/WaitableEvent.h" +#include "testing/gtest/include/gtest/gtest.h" + +#include <memory> + +namespace blink { + +class AnimationWorkletGlobalScopeTest : public ::testing::Test { + public: + AnimationWorkletGlobalScopeTest() {} + + void SetUp() override { + AnimationWorkletThread::CreateSharedBackingThreadForTest(); + reporting_proxy_ = WTF::MakeUnique<WorkerReportingProxy>(); + security_origin_ = + SecurityOrigin::Create(KURL(kParsedURLString, "http://fake.url/")); + } + + void TearDown() override { + AnimationWorkletThread::ClearSharedBackingThread(); + } + + std::unique_ptr<AnimationWorkletThread> CreateAnimationWorkletThread() { + std::unique_ptr<AnimationWorkletThread> thread = + AnimationWorkletThread::Create(nullptr, *reporting_proxy_); + + WorkerClients* clients = WorkerClients::Create(); + + thread->Start( + WorkerThreadStartupData::Create( + KURL(kParsedURLString, "http://fake.url/"), "fake user agent", "", + nullptr, kDontPauseWorkerGlobalScopeOnStart, nullptr, "", + security_origin_.Get(), clients, kWebAddressSpaceLocal, nullptr, + nullptr, WorkerV8Settings::Default()), + ParentFrameTaskRunners::Create(nullptr)); + return thread; + } + + using TestCalback = void (AnimationWorkletGlobalScopeTest::*)(WorkerThread*, + WaitableEvent*); + // Create a new animation worklet and run the callback task on it. Terminate + // the worklet once the task completion is signaled. + void RunTestOnWorkletThread(TestCalback callback) { + std::unique_ptr<WorkerThread> worklet = CreateAnimationWorkletThread(); + WaitableEvent waitable_event; + TaskRunnerHelper::Get(TaskType::kUnthrottled, worklet.get()) + ->PostTask(BLINK_FROM_HERE, + CrossThreadBind(callback, CrossThreadUnretained(this), + CrossThreadUnretained(worklet.get()), + CrossThreadUnretained(&waitable_event))); + waitable_event.Wait(); + + worklet->TerminateAndWait(); + } + + void RunBasicParsingTestOnWorklet(WorkerThread* thread, + WaitableEvent* waitable_event) { + AnimationWorkletGlobalScope* global_scope = + static_cast<AnimationWorkletGlobalScope*>(thread->GlobalScope()); + ASSERT_TRUE(global_scope); + ASSERT_TRUE(global_scope->IsAnimationWorkletGlobalScope()); + ScriptState* script_state = + global_scope->ScriptController()->GetScriptState(); + ASSERT_TRUE(script_state); + v8::Isolate* isolate = script_state->GetIsolate(); + ASSERT_TRUE(isolate); + + ScriptState::Scope scope(script_state); + global_scope->ScriptController()->Evaluate(ScriptSourceCode( + R"JS( + registerAnimator('test', class { + constructor () {} + animate () {} + }); + + registerAnimator('null', null); + )JS")); + + AnimatorDefinition* definition = + global_scope->FindDefinitionForTest("test"); + ASSERT_TRUE(definition); + + EXPECT_TRUE(definition->ConstructorLocal(isolate)->IsFunction()); + EXPECT_TRUE(definition->AnimateLocal(isolate)->IsFunction()); + + EXPECT_FALSE(global_scope->FindDefinitionForTest("null")); + EXPECT_FALSE(global_scope->FindDefinitionForTest("non-existent")); + + waitable_event->Signal(); + } + + void RunConstructAndAnimateTestOnWorklet(WorkerThread* thread, + WaitableEvent* waitable_event) { + AnimationWorkletGlobalScope* global_scope = + static_cast<AnimationWorkletGlobalScope*>(thread->GlobalScope()); + ASSERT_TRUE(global_scope); + ASSERT_TRUE(global_scope->IsAnimationWorkletGlobalScope()); + ScriptState* script_state = + global_scope->ScriptController()->GetScriptState(); + ASSERT_TRUE(script_state); + v8::Isolate* isolate = script_state->GetIsolate(); + ASSERT_TRUE(isolate); + + ScriptState::Scope scope(script_state); + global_scope->ScriptController()->Evaluate(ScriptSourceCode( + R"JS( + var constructed = false; + var animated = false; + registerAnimator('test', class { + constructor () { + constructed = true; + } + animate () { + animated = true; + } + }); + )JS")); + + ScriptValue constructed = + global_scope->ScriptController()->EvaluateAndReturnValueForTest( + ScriptSourceCode("constructed")); + EXPECT_TRUE(ToBoolean(isolate, constructed.V8Value(), ASSERT_NO_EXCEPTION)) + << "constructor is not invoked"; + + ScriptValue animated_before = + global_scope->ScriptController()->EvaluateAndReturnValueForTest( + ScriptSourceCode("animated")); + EXPECT_FALSE( + ToBoolean(isolate, animated_before.V8Value(), ASSERT_NO_EXCEPTION)) + << "animate function is invoked early"; + + global_scope->Mutate(); + + ScriptValue animated_after = + global_scope->ScriptController()->EvaluateAndReturnValueForTest( + ScriptSourceCode("animated")); + + EXPECT_TRUE( + ToBoolean(isolate, animated_after.V8Value(), ASSERT_NO_EXCEPTION)) + << "animate function is not invoked"; + + waitable_event->Signal(); + } + + private: + RefPtr<SecurityOrigin> security_origin_; + std::unique_ptr<WorkerReportingProxy> reporting_proxy_; +}; + +TEST_F(AnimationWorkletGlobalScopeTest, BasicParsing) { + RunTestOnWorkletThread( + &AnimationWorkletGlobalScopeTest::RunBasicParsingTestOnWorklet); +} + +TEST_F(AnimationWorkletGlobalScopeTest, ConstructAndAnimate) { + RunTestOnWorkletThread( + &AnimationWorkletGlobalScopeTest::RunConstructAndAnimateTestOnWorklet); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.cpp b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.cpp index efd8f96..48e3105 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.cpp +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.cpp
@@ -5,16 +5,15 @@ #include "modules/compositorworker/AnimationWorkletMessagingProxy.h" #include "core/workers/ThreadedWorkletObjectProxy.h" +#include "core/workers/WorkerClients.h" #include "modules/compositorworker/AnimationWorkletThread.h" namespace blink { AnimationWorkletMessagingProxy::AnimationWorkletMessagingProxy( ExecutionContext* execution_context, - WorkerClients* worker_clients, - AnimationWorkletProxyClient* proxy_client) - : ThreadedWorkletMessagingProxy(execution_context, worker_clients), - proxy_client_(proxy_client) {} + WorkerClients* worker_clients) + : ThreadedWorkletMessagingProxy(execution_context, worker_clients) {} AnimationWorkletMessagingProxy::~AnimationWorkletMessagingProxy() {}
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.h b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.h index c94d94c..e3a96fa 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.h +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.h
@@ -13,6 +13,7 @@ namespace blink { class ExecutionContext; +class WorkerClients; class WorkerThread; class AnimationWorkletMessagingProxy final @@ -20,15 +21,12 @@ USING_FAST_MALLOC(AnimationWorkletMessagingProxy); public: - AnimationWorkletMessagingProxy(ExecutionContext*, - WorkerClients*, - AnimationWorkletProxyClient*); + AnimationWorkletMessagingProxy(ExecutionContext*, WorkerClients*); protected: ~AnimationWorkletMessagingProxy() override; std::unique_ptr<WorkerThread> CreateWorkerThread(double origin_time) override; - Persistent<AnimationWorkletProxyClient> proxy_client_; }; } // namespace blink
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.cpp b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.cpp index b077724..739c78aeb 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.cpp +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.cpp
@@ -21,11 +21,30 @@ CompositorAnimator::Trace(visitor); } +void AnimationWorkletProxyClientImpl::SetGlobalScope( + WorkletGlobalScope* global_scope) { + DCHECK(global_scope->IsContextThread()); + DCHECK(global_scope); + global_scope_ = static_cast<AnimationWorkletGlobalScope*>(global_scope); + mutator_->RegisterCompositorAnimator(this); +} + +void AnimationWorkletProxyClientImpl::Dispose() { + DCHECK(global_scope_->IsContextThread()); + // At worklet scope termination break the reference cycle between + // CompositorMutatorImpl and AnimationProxyClientImpl and also the cycle + // between AnimationWorkletGlobalScope and AnimationWorkletProxyClientImpl. + mutator_->UnregisterCompositorAnimator(this); + global_scope_ = nullptr; +} + bool AnimationWorkletProxyClientImpl::Mutate( double monotonic_time_now, CompositorMutableStateProvider* provider) { - DCHECK(!IsMainThread()); - // TODO(majidvp): actually call JS |animate| callbacks. + DCHECK(global_scope_->IsContextThread()); + + if (global_scope_) + global_scope_->Mutate(); // Always request another rAF for now. return true;
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.h b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.h index 2778e623..fbcd30d 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.h +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.h
@@ -9,12 +9,14 @@ #include "core/animation/CompositorProxyClientImpl.h" #include "core/dom/AnimationWorkletProxyClient.h" #include "modules/ModulesExport.h" +#include "modules/compositorworker/AnimationWorkletGlobalScope.h" #include "platform/heap/Handle.h" #include "platform/wtf/Noncopyable.h" namespace blink { class CompositorMutatorImpl; +class WorkletGlobalScope; // Mediates between one Animator and the associated CompositorMutatorImpl. There // is one AnimationWorkletProxyClientImpl per Animator but there may be multiple @@ -33,15 +35,25 @@ explicit AnimationWorkletProxyClientImpl(CompositorMutatorImpl*); DECLARE_VIRTUAL_TRACE(); + // AnimationWorkletProxyClient: + void SetGlobalScope(WorkletGlobalScope*) override; + void Dispose() override; + // CompositorAnimator: // This method is invoked in compositor thread bool Mutate(double monotonic_time_now, CompositorMutableStateProvider*) override; + CompositorProxyClient* GetCompositorProxyClient() override { + return compositor_proxy_client_.Get(); + } + private: CrossThreadPersistent<CompositorMutatorImpl> mutator_; CrossThreadPersistent<CompositorProxyClientImpl> compositor_proxy_client_; + + CrossThreadPersistent<AnimationWorkletGlobalScope> global_scope_; }; } // namespace blink
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThread.cpp b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThread.cpp index 0a84d9b..35b92cae 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThread.cpp +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThread.cpp
@@ -40,7 +40,6 @@ security_origin->TransferPrivilegesFrom( std::move(startup_data->starter_origin_privilege_data_)); - // TODO(ikilpatrick): Provide CompositorWorkerProxyClient to WorkerClients. return AnimationWorkletGlobalScope::Create( startup_data->script_url_, startup_data->user_agent_, std::move(security_origin), this->GetIsolate(), this,
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThreadTest.cpp b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThreadTest.cpp index e429afa..9a790e7 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThreadTest.cpp +++ b/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThreadTest.cpp
@@ -9,6 +9,7 @@ #include "bindings/core/v8/SourceLocation.h" #include "bindings/core/v8/V8GCController.h" #include "bindings/core/v8/WorkerOrWorkletScriptController.h" +#include "core/dom/AnimationWorkletProxyClient.h" #include "core/inspector/ConsoleMessage.h" #include "core/workers/InProcessWorkerObjectProxy.h" #include "core/workers/ParentFrameTaskRunners.h" @@ -46,6 +47,18 @@ TestingCompositorSupport compositor_support_; }; +class TestAnimationWorkletProxyClient + : public GarbageCollected<TestAnimationWorkletProxyClient>, + public AnimationWorkletProxyClient { + USING_GARBAGE_COLLECTED_MIXIN(TestAnimationWorkletProxyClient); + + public: + TestAnimationWorkletProxyClient() {} + void SetGlobalScope(WorkletGlobalScope*) override {} + void Dispose() override {} + CompositorProxyClient* GetCompositorProxyClient() override { return nullptr; } +}; + } // namespace class AnimationWorkletThreadTest : public ::testing::Test { @@ -62,13 +75,18 @@ } std::unique_ptr<AnimationWorkletThread> CreateAnimationWorkletThread() { + WorkerClients* clients = WorkerClients::Create(); + ProvideAnimationWorkletProxyClientTo(clients, + new TestAnimationWorkletProxyClient()); + std::unique_ptr<AnimationWorkletThread> thread = AnimationWorkletThread::Create(nullptr, *reporting_proxy_); + thread->Start( WorkerThreadStartupData::Create( KURL(kParsedURLString, "http://fake.url/"), "fake user agent", "", nullptr, kDontPauseWorkerGlobalScopeOnStart, nullptr, "", - security_origin_.Get(), nullptr, kWebAddressSpaceLocal, nullptr, + security_origin_.Get(), clients, kWebAddressSpaceLocal, nullptr, nullptr, WorkerV8Settings::Default()), ParentFrameTaskRunners::Create(nullptr)); return thread;
diff --git a/third_party/WebKit/Source/modules/compositorworker/Animator.cpp b/third_party/WebKit/Source/modules/compositorworker/Animator.cpp index 2c7908d..0fa9dc6 100644 --- a/third_party/WebKit/Source/modules/compositorworker/Animator.cpp +++ b/third_party/WebKit/Source/modules/compositorworker/Animator.cpp
@@ -4,8 +4,11 @@ #include "modules/compositorworker/Animator.h" +#include "bindings/core/v8/V8ScriptRunner.h" +#include "core/dom/ExecutionContext.h" #include "modules/compositorworker/AnimatorDefinition.h" #include "platform/bindings/ScriptState.h" +#include "platform/bindings/V8Binding.h" namespace blink { @@ -25,4 +28,26 @@ visitor->TraceWrappers(instance_.Cast<v8::Value>()); } +void Animator::Animate(ScriptState* script_state) const { + v8::Isolate* isolate = script_state->GetIsolate(); + + v8::Local<v8::Object> instance = instance_.NewLocal(isolate); + v8::Local<v8::Function> animate = definition_->AnimateLocal(isolate); + + if (IsUndefinedOrNull(instance) || IsUndefinedOrNull(animate)) + return; + + ScriptState::Scope scope(script_state); + v8::TryCatch block(isolate); + block.SetVerbose(true); + + V8ScriptRunner::CallFunction(animate, ExecutionContext::From(script_state), + instance, 0, nullptr, isolate); + + // The animate function may have produced an error! + // TODO(majidvp): We should probably just throw here. + if (block.HasCaught()) + return; +} + } // namespace blink
diff --git a/third_party/WebKit/Source/modules/compositorworker/Animator.h b/third_party/WebKit/Source/modules/compositorworker/Animator.h index c1b8812..8844819c 100644 --- a/third_party/WebKit/Source/modules/compositorworker/Animator.h +++ b/third_party/WebKit/Source/modules/compositorworker/Animator.h
@@ -14,6 +14,7 @@ namespace blink { class AnimatorDefinition; +class ScriptState; class Animator final : public GarbageCollectedFinalized<Animator>, public TraceWrapperBase { @@ -23,6 +24,8 @@ DECLARE_TRACE(); DECLARE_TRACE_WRAPPERS(); + void Animate(ScriptState*) const; + private: // This object keeps the definition object, and animator instance alive. // It participates in wrapper tracing as it holds onto V8 wrappers.
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.cpp b/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.cpp index b36aa1f5..212fd98 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.cpp +++ b/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.cpp
@@ -30,4 +30,8 @@ return constructor_.NewLocal(isolate); } +v8::Local<v8::Function> AnimatorDefinition::AnimateLocal(v8::Isolate* isolate) { + return animate_.NewLocal(isolate); +} + } // namespace blink
diff --git a/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.h b/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.h index 483f3b4..83c0991 100644 --- a/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.h +++ b/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.h
@@ -5,6 +5,7 @@ #ifndef AnimatorDefinition_h #define AnimatorDefinition_h +#include "modules/ModulesExport.h" #include "platform/bindings/ScriptWrappable.h" #include "platform/bindings/TraceWrapperV8Reference.h" #include "platform/heap/Handle.h" @@ -17,7 +18,7 @@ // proper type. // It can be used to instantiate new animators and also to call the Javascript // 'animate' callback on a given instance. -class AnimatorDefinition final +class MODULES_EXPORT AnimatorDefinition final : public GarbageCollectedFinalized<AnimatorDefinition>, public TraceWrapperBase { public: @@ -29,6 +30,7 @@ DECLARE_TRACE_WRAPPERS(); v8::Local<v8::Function> ConstructorLocal(v8::Isolate*); + v8::Local<v8::Function> AnimateLocal(v8::Isolate*); private: // This object keeps the constructor function, and animate function alive.
diff --git a/third_party/WebKit/Source/modules/filesystem/Entry.cpp b/third_party/WebKit/Source/modules/filesystem/Entry.cpp index 7388a66..6dd24e5 100644 --- a/third_party/WebKit/Source/modules/filesystem/Entry.cpp +++ b/third_party/WebKit/Source/modules/filesystem/Entry.cpp
@@ -48,19 +48,21 @@ : EntryBase(file_system, full_path) {} DOMFileSystem* Entry::filesystem(ScriptState* script_state) const { - if (file_system_->GetType() == kFileSystemTypeIsolated) + if (file_system_->GetType() == kFileSystemTypeIsolated) { UseCounter::Count( ExecutionContext::From(script_state), UseCounter::kEntry_Filesystem_AttributeGetter_IsolatedFileSystem); + } return filesystem(); } void Entry::getMetadata(ScriptState* script_state, MetadataCallback* success_callback, ErrorCallback* error_callback) { - if (file_system_->GetType() == kFileSystemTypeIsolated) + if (file_system_->GetType() == kFileSystemTypeIsolated) { UseCounter::Count(ExecutionContext::From(script_state), UseCounter::kEntry_GetMetadata_Method_IsolatedFileSystem); + } file_system_->GetMetadata(this, success_callback, ScriptErrorCallback::Wrap(error_callback)); } @@ -70,9 +72,10 @@ const String& name, EntryCallback* success_callback, ErrorCallback* error_callback) const { - if (file_system_->GetType() == kFileSystemTypeIsolated) + if (file_system_->GetType() == kFileSystemTypeIsolated) { UseCounter::Count(ExecutionContext::From(script_state), UseCounter::kEntry_MoveTo_Method_IsolatedFileSystem); + } file_system_->Move(this, parent, name, success_callback, ScriptErrorCallback::Wrap(error_callback)); } @@ -82,9 +85,10 @@ const String& name, EntryCallback* success_callback, ErrorCallback* error_callback) const { - if (file_system_->GetType() == kFileSystemTypeIsolated) + if (file_system_->GetType() == kFileSystemTypeIsolated) { UseCounter::Count(ExecutionContext::From(script_state), UseCounter::kEntry_CopyTo_Method_IsolatedFileSystem); + } file_system_->Copy(this, parent, name, success_callback, ScriptErrorCallback::Wrap(error_callback)); } @@ -92,9 +96,10 @@ void Entry::remove(ScriptState* script_state, VoidCallback* success_callback, ErrorCallback* error_callback) const { - if (file_system_->GetType() == kFileSystemTypeIsolated) + if (file_system_->GetType() == kFileSystemTypeIsolated) { UseCounter::Count(ExecutionContext::From(script_state), UseCounter::kEntry_Remove_Method_IsolatedFileSystem); + } file_system_->Remove(this, success_callback, ScriptErrorCallback::Wrap(error_callback)); } @@ -102,17 +107,19 @@ void Entry::getParent(ScriptState* script_state, EntryCallback* success_callback, ErrorCallback* error_callback) const { - if (file_system_->GetType() == kFileSystemTypeIsolated) + if (file_system_->GetType() == kFileSystemTypeIsolated) { UseCounter::Count(ExecutionContext::From(script_state), UseCounter::kEntry_GetParent_Method_IsolatedFileSystem); + } file_system_->GetParent(this, success_callback, ScriptErrorCallback::Wrap(error_callback)); } String Entry::toURL(ScriptState* script_state) const { - if (file_system_->GetType() == kFileSystemTypeIsolated) + if (file_system_->GetType() == kFileSystemTypeIsolated) { UseCounter::Count(ExecutionContext::From(script_state), UseCounter::kEntry_ToURL_Method_IsolatedFileSystem); + } return static_cast<const EntryBase*>(this)->toURL(); }
diff --git a/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp b/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp index d86db661..b232cf7 100644 --- a/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp +++ b/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp
@@ -318,11 +318,12 @@ const AtomicString& event_type, EventListener* listener, const AddEventListenerOptionsResolved& options) { - if (event_type == EventTypeNames::active) + if (event_type == EventTypeNames::active) { UseCounter::Count(GetExecutionContext(), UseCounter::kMediaStreamOnActive); - else if (event_type == EventTypeNames::inactive) + } else if (event_type == EventTypeNames::inactive) { UseCounter::Count(GetExecutionContext(), UseCounter::kMediaStreamOnInactive); + } return EventTargetWithInlineData::AddEventListenerInternal(event_type, listener, options);
diff --git a/third_party/WebKit/Source/modules/notifications/Notification.cpp b/third_party/WebKit/Source/modules/notifications/Notification.cpp index 80367ae..a6bc3b4 100644 --- a/third_party/WebKit/Source/modules/notifications/Notification.cpp +++ b/third_party/WebKit/Source/modules/notifications/Notification.cpp
@@ -96,16 +96,18 @@ if (context->IsSecureContext()) { UseCounter::Count(context, UseCounter::kNotificationSecureOrigin); - if (context->IsDocument()) + if (context->IsDocument()) { UseCounter::CountCrossOriginIframe( *ToDocument(context), UseCounter::kNotificationAPISecureOriginIframe); + } } else { Deprecation::CountDeprecation(context, UseCounter::kNotificationInsecureOrigin); - if (context->IsDocument()) + if (context->IsDocument()) { Deprecation::CountDeprecationCrossOriginIframe( *ToDocument(context), UseCounter::kNotificationAPIInsecureOriginIframe); + } } WebNotificationData data =
diff --git a/third_party/WebKit/Source/modules/peerconnection/RTCIceCandidate.cpp b/third_party/WebKit/Source/modules/peerconnection/RTCIceCandidate.cpp index 733e2d57..caa1526 100644 --- a/third_party/WebKit/Source/modules/peerconnection/RTCIceCandidate.cpp +++ b/third_party/WebKit/Source/modules/peerconnection/RTCIceCandidate.cpp
@@ -58,11 +58,12 @@ // TODO(guidou): Change default value to -1. crbug.com/614958. unsigned short sdp_m_line_index = 0; - if (candidate_init.hasSdpMLineIndex()) + if (candidate_init.hasSdpMLineIndex()) { sdp_m_line_index = candidate_init.sdpMLineIndex(); - else + } else { UseCounter::Count(context, UseCounter::kRTCIceCandidateDefaultSdpMLineIndex); + } return new RTCIceCandidate(WebRTCICECandidate(candidate_init.candidate(), sdp_mid, sdp_m_line_index));
diff --git a/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp b/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp index c7ab4f6..32f99046 100644 --- a/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp +++ b/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp
@@ -188,11 +188,12 @@ candidate.getAsRTCIceCandidateInit(); // TODO(guidou): Change default value to -1. crbug.com/614958. unsigned short sdp_m_line_index = 0; - if (ice_candidate_init.hasSdpMLineIndex()) + if (ice_candidate_init.hasSdpMLineIndex()) { sdp_m_line_index = ice_candidate_init.sdpMLineIndex(); - else + } else { UseCounter::Count(context, UseCounter::kRTCIceCandidateDefaultSdpMLineIndex); + } return WebRTCICECandidate(ice_candidate_init.candidate(), ice_candidate_init.sdpMid(), sdp_m_line_index); } @@ -432,12 +433,13 @@ const RTCConfiguration& rtc_configuration, const Dictionary& media_constraints, ExceptionState& exception_state) { - if (media_constraints.IsObject()) + if (media_constraints.IsObject()) { UseCounter::Count(context, UseCounter::kRTCPeerConnectionConstructorConstraints); - else + } else { UseCounter::Count(context, UseCounter::kRTCPeerConnectionConstructorCompliant); + } WebRTCConfiguration configuration = ParseConfiguration(context, rtc_configuration, exception_state); @@ -589,12 +591,13 @@ if (offer_options) { if (offer_options->OfferToReceiveAudio() != -1 || - offer_options->OfferToReceiveVideo() != -1) + offer_options->OfferToReceiveVideo() != -1) { UseCounter::Count( context, UseCounter::kRTCPeerConnectionCreateOfferLegacyOfferOptions); - else + } else { UseCounter::Count( context, UseCounter::kRTCPeerConnectionCreateOfferLegacyCompliant); + } peer_handler_->CreateOffer(request, WebRTCOfferOptions(offer_options)); } else { @@ -611,12 +614,13 @@ return ScriptPromise::CastUndefined(script_state); } - if (!constraints.IsEmpty()) + if (!constraints.IsEmpty()) { UseCounter::Count( context, UseCounter::kRTCPeerConnectionCreateOfferLegacyConstraints); - else + } else { UseCounter::Count( context, UseCounter::kRTCPeerConnectionCreateOfferLegacyCompliant); + } peer_handler_->CreateOffer(request, constraints); } @@ -649,12 +653,13 @@ ExecutionContext* context = ExecutionContext::From(script_state); UseCounter::Count( context, UseCounter::kRTCPeerConnectionCreateAnswerLegacyFailureCallback); - if (media_constraints.IsObject()) + if (media_constraints.IsObject()) { UseCounter::Count( context, UseCounter::kRTCPeerConnectionCreateAnswerLegacyConstraints); - else + } else { UseCounter::Count( context, UseCounter::kRTCPeerConnectionCreateAnswerLegacyCompliant); + } if (CallErrorCallbackIfSignalingStateClosed(signaling_state_, error_callback)) return ScriptPromise::CastUndefined(script_state);
diff --git a/third_party/WebKit/Source/modules/presentation/PresentationAvailability.cpp b/third_party/WebKit/Source/modules/presentation/PresentationAvailability.cpp index 797d0fe..ec418b1c 100644 --- a/third_party/WebKit/Source/modules/presentation/PresentationAvailability.cpp +++ b/third_party/WebKit/Source/modules/presentation/PresentationAvailability.cpp
@@ -61,9 +61,10 @@ RegisteredEventListener& registered_listener) { EventTargetWithInlineData::AddedEventListener(event_type, registered_listener); - if (event_type == EventTypeNames::change) + if (event_type == EventTypeNames::change) { UseCounter::Count(GetExecutionContext(), UseCounter::kPresentationAvailabilityChangeEventListener); + } } void PresentationAvailability::AvailabilityChanged(bool value) {
diff --git a/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp b/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp index cd5962ba..66fd5d2 100644 --- a/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp +++ b/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
@@ -225,19 +225,20 @@ RegisteredEventListener& registered_listener) { EventTargetWithInlineData::AddedEventListener(event_type, registered_listener); - if (event_type == EventTypeNames::connect) + if (event_type == EventTypeNames::connect) { UseCounter::Count(GetExecutionContext(), UseCounter::kPresentationConnectionConnectEventListener); - else if (event_type == EventTypeNames::close) + } else if (event_type == EventTypeNames::close) { UseCounter::Count(GetExecutionContext(), UseCounter::kPresentationConnectionCloseEventListener); - else if (event_type == EventTypeNames::terminate) + } else if (event_type == EventTypeNames::terminate) { UseCounter::Count( GetExecutionContext(), UseCounter::kPresentationConnectionTerminateEventListener); - else if (event_type == EventTypeNames::message) + } else if (event_type == EventTypeNames::message) { UseCounter::Count(GetExecutionContext(), UseCounter::kPresentationConnectionMessageEventListener); + } } DEFINE_TRACE(PresentationConnection) {
diff --git a/third_party/WebKit/Source/modules/presentation/PresentationConnectionList.cpp b/third_party/WebKit/Source/modules/presentation/PresentationConnectionList.cpp index cee3ca5..ff37b724 100644 --- a/third_party/WebKit/Source/modules/presentation/PresentationConnectionList.cpp +++ b/third_party/WebKit/Source/modules/presentation/PresentationConnectionList.cpp
@@ -29,10 +29,11 @@ RegisteredEventListener& registered_listener) { EventTargetWithInlineData::AddedEventListener(event_type, registered_listener); - if (event_type == EventTypeNames::connectionavailable) + if (event_type == EventTypeNames::connectionavailable) { UseCounter::Count( GetExecutionContext(), UseCounter::kPresentationRequestConnectionAvailableEventListener); + } } void PresentationConnectionList::AddConnection(
diff --git a/third_party/WebKit/Source/modules/presentation/PresentationRequest.cpp b/third_party/WebKit/Source/modules/presentation/PresentationRequest.cpp index 8c02fd10..b8ea0651 100644 --- a/third_party/WebKit/Source/modules/presentation/PresentationRequest.cpp +++ b/third_party/WebKit/Source/modules/presentation/PresentationRequest.cpp
@@ -100,10 +100,11 @@ RegisteredEventListener& registered_listener) { EventTargetWithInlineData::AddedEventListener(event_type, registered_listener); - if (event_type == EventTypeNames::connectionavailable) + if (event_type == EventTypeNames::connectionavailable) { UseCounter::Count( GetExecutionContext(), UseCounter::kPresentationRequestConnectionAvailableEventListener); + } } bool PresentationRequest::HasPendingActivity() const {
diff --git a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerContainer.cpp b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerContainer.cpp index 1257bea..c1565e7 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerContainer.cpp +++ b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerContainer.cpp
@@ -436,9 +436,10 @@ return; controller_ = ServiceWorker::From(GetExecutionContext(), WTF::WrapUnique(handle.release())); - if (controller_) + if (controller_) { UseCounter::Count(GetExecutionContext(), UseCounter::kServiceWorkerControlledPage); + } if (should_notify_controller_change) DispatchEvent(Event::Create(EventTypeNames::controllerchange)); }
diff --git a/third_party/WebKit/Source/web/BUILD.gn b/third_party/WebKit/Source/web/BUILD.gn index 758d62fe..94c5d94b 100644 --- a/third_party/WebKit/Source/web/BUILD.gn +++ b/third_party/WebKit/Source/web/BUILD.gn
@@ -123,8 +123,6 @@ "WebPepperSocketChannelClientProxy.h", "WebPepperSocketImpl.cpp", "WebPepperSocketImpl.h", - "WebPluginContainerImpl.cpp", - "WebPluginContainerImpl.h", "WebPluginDocument.cpp", "WebRemoteFrameImpl.cpp", "WebRemoteFrameImpl.h",
diff --git a/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp b/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp index 344ac29..7750470 100644 --- a/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp +++ b/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp
@@ -43,6 +43,7 @@ #include "core/events/UIEventWithKeyState.h" #include "core/exported/SharedWorkerRepositoryClientImpl.h" #include "core/exported/WebDataSourceImpl.h" +#include "core/exported/WebPluginContainerImpl.h" #include "core/exported/WebViewBase.h" #include "core/frame/LocalFrameView.h" #include "core/frame/Settings.h" @@ -107,7 +108,6 @@ #include "v8/include/v8.h" #include "web/WebDevToolsAgentImpl.h" #include "web/WebDevToolsFrontendImpl.h" -#include "web/WebPluginContainerImpl.h" namespace blink {
diff --git a/third_party/polymer/v1_0/find_unused_elements.py b/third_party/polymer/v1_0/find_unused_elements.py index 5dbacdb..1097d80 100644 --- a/third_party/polymer/v1_0/find_unused_elements.py +++ b/third_party/polymer/v1_0/find_unused_elements.py
@@ -11,7 +11,13 @@ import os import re import subprocess +import sys +_HERE_PATH = os.path.dirname(__file__) +_SRC_PATH = os.path.normpath(os.path.join(_HERE_PATH, '..', '..', '..')) +sys.path.append(os.path.join(_SRC_PATH, 'third_party', 'node')) +import node +import node_modules class UnusedElementsDetector(object): """Finds unused Polymer elements.""" @@ -58,8 +64,7 @@ text = re.sub('<if .*?>', '', text, flags=re.IGNORECASE) text = re.sub('</if>', '', text, flags=re.IGNORECASE) - proc = subprocess.Popen(['uglifyjs', filename], stdout=subprocess.PIPE) - return proc.stdout.read() + return node.RunNode([node_modules.PathToUglify(), filename]) @staticmethod def __StripComments(filename): @@ -133,11 +138,6 @@ if not filename.endswith('.html') and not filename.endswith('.js'): continue - # Skip generated files that may include the element source. - if filename in ('crisper.js', 'vulcanized.html', - 'app.crisper.js', 'app.vulcanized.html'): - continue - with open(os.path.join(dirpath, filename)) as f: text = f.read() if not re.search('/%s/' % element_dir, text):
diff --git a/third_party/polymer/v1_0/reproduce.sh b/third_party/polymer/v1_0/reproduce.sh index 3781a057..247d1e87 100755 --- a/third_party/polymer/v1_0/reproduce.sh +++ b/third_party/polymer/v1_0/reproduce.sh
@@ -21,7 +21,6 @@ check_dep "which npm" "npm" "visiting https://nodejs.org/en/" check_dep "which bower" "bower" "npm install -g bower" check_dep "which crisper" "crisper" "npm install -g crisper" -check_dep "which uglifyjs" "uglifyjs" "npm install -g uglifyjs" check_dep "which polymer-css-build" "polymer-css-build" \ "npm install -g polymer-css-build" check_dep "which rsync" "rsync" "apt-get install rsync"
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index a26b56d..6cf91122 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -46,7 +46,7 @@ 'Android Cronet MIPS Builder': 'android_cronet_release_bot_minimal_symbols_mipsel', 'Android Cronet x86 Builder': 'android_cronet_release_bot_minimal_symbols_x86', 'Android Cronet x86 Builder (dbg)': 'android_cronet_debug_static_bot_x86', - 'Android MIPS Builder (dbg)': 'android_debug_static_minimal_symbols_mipsel', + 'Android MIPS Builder (dbg)': 'android_debug_static_bot_mipsel', 'Android N5X Swarm Builder': 'android_release_bot_minimal_symbols_arm64', 'Android arm Builder (dbg)': 'android_debug_static_bot', 'Android arm64 Builder (dbg)': 'android_debug_static_bot_arm64', @@ -813,8 +813,8 @@ 'android', 'debug_static_bot', 'x86', ], - 'android_debug_static_minimal_symbols_mipsel': [ - 'android', 'debug', 'static', 'minimal_symbols', 'mipsel', + 'android_debug_static_bot_mipsel': [ + 'android', 'debug_static_bot', 'minimal_symbols', 'mipsel', ], 'android_debug_trybot_java_coverage': [
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 9c39fab..6dc8e948 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -93534,7 +93534,8 @@ name="ResourceScheduler.ClientLoadedTime.Other.SwitchedToActive"/> </histogram_suffixes> -<histogram_suffixes name="ResourceSchedulerPeakDelayableRequestsInFlight"> +<histogram_suffixes name="ResourceSchedulerPeakDelayableRequestsInFlight" + separator="."> <suffix name="LayoutBlocking" label="Records the highest number of delayable requests that were in-flight at the same time when a layout blocking request was @@ -93547,7 +93548,7 @@ <affected-histogram name="ResourceScheduler.PeakDelayableRequestsInFlight"/> </histogram_suffixes> -<histogram_suffixes name="ResourceSchedulerRequestsCount"> +<histogram_suffixes name="ResourceSchedulerRequestsCount" separator="."> <suffix name="All" label="All requests in-flight were counted."/> <suffix name="Delayable" label="Delayable requests in-flight were counted."/> <suffix name="NonDelayable"
diff --git a/tools/perf/benchmark.csv b/tools/perf/benchmark.csv index 91b908b9..4239762 100644 --- a/tools/perf/benchmark.csv +++ b/tools/perf/benchmark.csv
@@ -94,8 +94,6 @@ smoothness.tough_webgl_ad_cases,skyostil@chromium.org, smoothness.tough_webgl_cases,"kbr@chromium.org, zmo@chromium.org", speedometer,"bmeurer@chromium.org, mvstanton@chromium.org", -speedometer-classic,hablich@chromium.org, -speedometer-turbo,hablich@chromium.org, start_with_ext.cold.blank_page,, start_with_ext.warm.blank_page,, start_with_url.cold.startup_pages,pasko@chromium.org, @@ -126,23 +124,11 @@ tracing.tracing_with_debug_overhead,"oysteine@chromium.org, nednguyen@chromium.org, zhenw@chromium.org", tracing_perftests,"kkraynov@chromium.org, primiano@chromium.org", v8.browsing_desktop,ulan@chromium.org, -v8.browsing_desktop_classic,hablich@chromium.org, -v8.browsing_desktop_turbo,mvstaton@chromium.org, v8.browsing_mobile,ulan@chromium.org, -v8.browsing_mobile_classic,hablich@chromium.org, -v8.browsing_mobile_turbo,mvstaton@chromium.org, v8.detached_context_age_in_gc,ulan@chromium.org, -v8.infinite_scroll-classic_tbmv2,hablich@chromium.org, -v8.infinite_scroll-turbo_tbmv2,mvstaton@chromium.org, v8.infinite_scroll_tbmv2,ulan@chromium.org, -v8.mobile_infinite_scroll-classic_tbmv2,hablich@chromium.org, -v8.mobile_infinite_scroll-turbo_tbmv2,mvstaton@chromium.org, v8.mobile_infinite_scroll_tbmv2,ulan@chromium.org, v8.runtime_stats.top_25,cbruni@chromium.org, v8.runtimestats.browsing_desktop,mythria@chromium.org, -v8.runtimestats.browsing_desktop_classic,hablich@chromium.org, -v8.runtimestats.browsing_desktop_turbo,mythria@chromium.org, v8.runtimestats.browsing_mobile,mythria@chromium.org, -v8.runtimestats.browsing_mobile_classic,hablich@chromium.org, -v8.runtimestats.browsing_mobile_turbo,mythria@chromium.org, webrtc,"qiangchen@chromium.org, ehmaldonado@chromium.org, phoglund@chromium.org",
diff --git a/tools/perf/benchmarks/speedometer.py b/tools/perf/benchmarks/speedometer.py index ab0cb9af..cf325400 100644 --- a/tools/perf/benchmarks/speedometer.py +++ b/tools/perf/benchmarks/speedometer.py
@@ -20,8 +20,6 @@ from core import perf_benchmark -from benchmarks import v8_helper - from telemetry import benchmark from telemetry import page as page_module from telemetry.page import legacy_page_test @@ -110,26 +108,3 @@ make_javascript_deterministic=False, name='http://browserbench.org/Speedometer/')) return ps - - -@benchmark.Owner(emails=['hablich@chromium.org']) -@benchmark.Disabled('all') -class SpeedometerTurbo(Speedometer): - def SetExtraBrowserOptions(self, options): - super(SpeedometerTurbo, self).SetExtraBrowserOptions(options) - v8_helper.EnableTurbo(options) - - @classmethod - def Name(cls): - return 'speedometer-turbo' - - -@benchmark.Owner(emails=['hablich@chromium.org']) -class SpeedometerClassic(Speedometer): - def SetExtraBrowserOptions(self, options): - super(SpeedometerClassic, self).SetExtraBrowserOptions(options) - v8_helper.EnableClassic(options) - - @classmethod - def Name(cls): - return 'speedometer-classic'
diff --git a/tools/perf/benchmarks/v8.py b/tools/perf/benchmarks/v8.py index d8699282..490ad5a 100644 --- a/tools/perf/benchmarks/v8.py +++ b/tools/perf/benchmarks/v8.py
@@ -97,35 +97,6 @@ def Name(cls): return 'v8.infinite_scroll_tbmv2' -@benchmark.Disabled('all') -@benchmark.Disabled('android') # Android runs V8MobileInfiniteScroll. -@benchmark.Owner(emails=['mvstaton@chromium.org']) -class V8InfiniteScrollTurbo(V8InfiniteScroll): - """Measures V8 GC metrics using Ignition+TurboFan.""" - - def SetExtraBrowserOptions(self, options): - super(V8InfiniteScrollTurbo, self).SetExtraBrowserOptions(options) - v8_helper.EnableTurbo(options) - - @classmethod - def Name(cls): - return 'v8.infinite_scroll-turbo_tbmv2' - - -@benchmark.Disabled('linux') # crbug.com/715716 -@benchmark.Disabled('android') # Android runs V8MobileInfiniteScroll. -@benchmark.Owner(emails=['hablich@chromium.org']) -class V8InfiniteScrollClassic(V8InfiniteScroll): - """Measures V8 GC metrics using the Classic pipeline.""" - - def SetExtraBrowserOptions(self, options): - super(V8InfiniteScrollClassic, self).SetExtraBrowserOptions(options) - v8_helper.EnableClassic(options) - - @classmethod - def Name(cls): - return 'v8.infinite_scroll-classic_tbmv2' - @benchmark.Enabled('android') @benchmark.Owner(emails=['ulan@chromium.org']) @@ -141,38 +112,6 @@ return 'v8.mobile_infinite_scroll_tbmv2' -@benchmark.Disabled('all') # was enabled only on android -@benchmark.Owner(emails=['mvstaton@chromium.org']) -class V8MobileInfiniteScrollTurbo(V8MobileInfiniteScroll): - """Measures V8 GC metrics and memory usage while scrolling the top mobile - web pages and running Ignition+TurboFan. - http://www.chromium.org/developers/design-documents/rendering-benchmarks""" - - def SetExtraBrowserOptions(self, options): - super(V8MobileInfiniteScrollTurbo, self).SetExtraBrowserOptions(options) - v8_helper.EnableTurbo(options) - - @classmethod - def Name(cls): - return 'v8.mobile_infinite_scroll-turbo_tbmv2' - - -@benchmark.Enabled('android') -@benchmark.Owner(emails=['hablich@chromium.org']) -class V8MobileInfiniteScrollClassic(V8MobileInfiniteScroll): - """Measures V8 GC metrics and memory usage while scrolling the top mobile - web pages and running the Classic pipeline. - http://www.chromium.org/developers/design-documents/rendering-benchmarks""" - - def SetExtraBrowserOptions(self, options): - super(V8MobileInfiniteScrollClassic, self).SetExtraBrowserOptions(options) - v8_helper.EnableClassic(options) - - @classmethod - def Name(cls): - return 'v8.mobile_infinite_scroll-classic_tbmv2' - - class _Top25RuntimeStats(perf_benchmark.PerfBenchmark): options = {'pageset_repeat': 3}
diff --git a/tools/perf/benchmarks/v8_browsing.py b/tools/perf/benchmarks/v8_browsing.py index 1975580..40fd920 100644 --- a/tools/perf/benchmarks/v8_browsing.py +++ b/tools/perf/benchmarks/v8_browsing.py
@@ -4,7 +4,6 @@ import re -from benchmarks import v8_helper from core import perf_benchmark from telemetry import benchmark from telemetry.timeline import chrome_trace_config @@ -167,69 +166,6 @@ @benchmark.Disabled('android') -@benchmark.Disabled('all') -@benchmark.Owner(emails=['mvstaton@chromium.org']) -class V8DesktopTurboBrowsingBenchmark(_V8BrowsingBenchmark): - PLATFORM = 'desktop' - - def SetExtraBrowserOptions(self, options): - super(V8DesktopTurboBrowsingBenchmark, self).SetExtraBrowserOptions( - options) - v8_helper.EnableTurbo(options) - - @classmethod - def Name(cls): - return 'v8.browsing_desktop_turbo' - - - -@benchmark.Enabled('android') -@benchmark.Disabled('all') -@benchmark.Owner(emails=['mvstaton@chromium.org']) -class V8MobileTurboBrowsingBenchmark(_V8BrowsingBenchmark): - PLATFORM = 'mobile' - - def SetExtraBrowserOptions(self, options): - super(V8MobileTurboBrowsingBenchmark, self).SetExtraBrowserOptions( - options) - v8_helper.EnableTurbo(options) - - @classmethod - def Name(cls): - return 'v8.browsing_mobile_turbo' - - -@benchmark.Disabled('android') -@benchmark.Owner(emails=['hablich@chromium.org']) -class V8DesktopClassicBrowsingBenchmark(_V8BrowsingBenchmark): - PLATFORM = 'desktop' - - def SetExtraBrowserOptions(self, options): - super(V8DesktopClassicBrowsingBenchmark, self).SetExtraBrowserOptions( - options) - v8_helper.EnableClassic(options) - - @classmethod - def Name(cls): - return 'v8.browsing_desktop_classic' - - -@benchmark.Enabled('android') -@benchmark.Owner(emails=['hablich@chromium.org']) -class V8MobileClassicBrowsingBenchmark(_V8BrowsingBenchmark): - PLATFORM = 'mobile' - - def SetExtraBrowserOptions(self, options): - super(V8MobileClassicBrowsingBenchmark, self).SetExtraBrowserOptions( - options) - v8_helper.EnableClassic(options) - - @classmethod - def Name(cls): - return 'v8.browsing_mobile_classic' - - -@benchmark.Disabled('android') @benchmark.Owner(emails=['mythria@chromium.org']) class V8RuntimeStatsDesktopBrowsingBenchmark( _V8RuntimeStatsBrowsingBenchmark): @@ -240,39 +176,6 @@ return 'v8.runtimestats.browsing_desktop' -@benchmark.Disabled('android') -@benchmark.Disabled('all') -@benchmark.Owner(emails=['mythria@chromium.org']) -class V8RuntimeStatsDesktopTurboBrowsingBenchmark( - _V8RuntimeStatsBrowsingBenchmark): - PLATFORM = 'desktop' - - def SetExtraBrowserOptions(self, options): - super(V8RuntimeStatsDesktopTurboBrowsingBenchmark, - self).SetExtraBrowserOptions(options) - v8_helper.EnableTurbo(options) - - @classmethod - def Name(cls): - return 'v8.runtimestats.browsing_desktop_turbo' - - -@benchmark.Disabled('android') -@benchmark.Owner(emails=['hablich@chromium.org']) -class V8RuntimeStatsDesktopClassicBrowsingBenchmark( - _V8RuntimeStatsBrowsingBenchmark): - PLATFORM = 'desktop' - - def SetExtraBrowserOptions(self, options): - super(V8RuntimeStatsDesktopClassicBrowsingBenchmark, - self).SetExtraBrowserOptions(options) - v8_helper.EnableClassic(options) - - @classmethod - def Name(cls): - return 'v8.runtimestats.browsing_desktop_classic' - - @benchmark.Enabled('android') @benchmark.Owner(emails=['mythria@chromium.org']) class V8RuntimeStatsMobileBrowsingBenchmark( @@ -282,36 +185,3 @@ @classmethod def Name(cls): return 'v8.runtimestats.browsing_mobile' - - -@benchmark.Enabled('android') -@benchmark.Disabled('all') -@benchmark.Owner(emails=['mythria@chromium.org']) -class V8RuntimeStatsMobileTurboBrowsingBenchmark( - _V8RuntimeStatsBrowsingBenchmark): - PLATFORM = 'mobile' - - def SetExtraBrowserOptions(self, options): - super(V8RuntimeStatsMobileTurboBrowsingBenchmark, - self).SetExtraBrowserOptions(options) - v8_helper.EnableTurbo(options) - - @classmethod - def Name(cls): - return 'v8.runtimestats.browsing_mobile_turbo' - - -@benchmark.Enabled('android') -@benchmark.Owner(emails=['hablich@chromium.org']) -class V8RuntimeStatsMobileClassicBrowsingBenchmark( - _V8RuntimeStatsBrowsingBenchmark): - PLATFORM = 'mobile' - - def SetExtraBrowserOptions(self, options): - super(V8RuntimeStatsMobileClassicBrowsingBenchmark, - self).SetExtraBrowserOptions(options) - v8_helper.EnableClassic(options) - - @classmethod - def Name(cls): - return 'v8.runtimestats.browsing_mobile_classic'
diff --git a/tools/perf/benchmarks/v8_helper.py b/tools/perf/benchmarks/v8_helper.py index c2eccf55..065e8dd 100644 --- a/tools/perf/benchmarks/v8_helper.py +++ b/tools/perf/benchmarks/v8_helper.py
@@ -4,15 +4,6 @@ _JS_FLAGS_SWITCH = '--js-flags=' - -def EnableTurbo(options): - AppendJSFlags(options, '--turbo') - - -def EnableClassic(options): - AppendJSFlags(options, '--no-turbo') - - def AppendJSFlags(options, js_flags): existing_js_flags = '' # There should be only one occurence of --js-flags in the browser flags. When
diff --git a/tools/perf/page_sets/indexeddb_endure_page.py b/tools/perf/page_sets/indexeddb_endure_page.py index 80feb6e..7f100ba 100644 --- a/tools/perf/page_sets/indexeddb_endure_page.py +++ b/tools/perf/page_sets/indexeddb_endure_page.py
@@ -29,7 +29,7 @@ """ def __init__(self): - super(IndexedDBEndurePageSet, self).__init__() + super(IndexedDBEndurePageSet, self).__init__(verify_names=True) tests = [ 'testCreateAndDeleteDatabases', 'testCreateAndDeleteDatabase',
diff --git a/tools/perf/page_sets/tough_scheduling_cases.py b/tools/perf/page_sets/tough_scheduling_cases.py index 1a817a1..b7b6edba 100644 --- a/tools/perf/page_sets/tough_scheduling_cases.py +++ b/tools/perf/page_sets/tough_scheduling_cases.py
@@ -11,7 +11,8 @@ def __init__(self, url, page_set): super(ToughSchedulingCasesPage, self).__init__( url=url, page_set=page_set, credentials_path='data/credentials.json', - shared_page_state_class=shared_page_state.SharedMobilePageState) + shared_page_state_class=shared_page_state.SharedMobilePageState, + name=url.split('/')[-1]) self.archive_data_file = 'data/tough_scheduling_cases.json' def RunPageInteractions(self, action_runner): @@ -396,7 +397,8 @@ def __init__(self): super(ToughSchedulingCasesPageSet, self).__init__( archive_data_file='data/tough_scheduling_cases.json', - cloud_storage_bucket=story.INTERNAL_BUCKET) + cloud_storage_bucket=story.INTERNAL_BUCKET, + verify_names=True) # Why: Simple scrolling baseline self.AddStory(ToughSchedulingCasesPage(
diff --git a/ui/login/account_picker/md_user_pod_row.css b/ui/login/account_picker/md_user_pod_row.css index dd0fb65e..23c3764b 100644 --- a/ui/login/account_picker/md_user_pod_row.css +++ b/ui/login/account_picker/md_user_pod_row.css
@@ -637,7 +637,7 @@ display: flex; flex-direction: column; font-size: 13px; - margin: 3px 0 0 12px; + margin: 10px 0 0 12px; width: 220px; }
diff --git a/ui/login/account_picker/md_user_pod_row.js b/ui/login/account_picker/md_user_pod_row.js index e637754..6338b8ab 100644 --- a/ui/login/account_picker/md_user_pod_row.js +++ b/ui/login/account_picker/md_user_pod_row.js
@@ -3866,9 +3866,8 @@ // elements outside the pod. var actionBoxMenu = pod.querySelector('.action-box-menu'); var actionBoxButton = pod.querySelector('.action-box-button'); - var MENU_TOP_PADDING = 7; actionBoxMenu.style.top = - cr.ui.toCssPx(actionBoxButton.offsetHeight + MENU_TOP_PADDING); + cr.ui.toCssPx(actionBoxButton.offsetHeight); if (this.isPortraitMode_() && pods.length > 1) { // Confine the menu inside the pod when it may overlap with outside // elements. @@ -3986,6 +3985,7 @@ var banner = $('signin-banner'); banner.textContent = message; banner.classList.toggle('message-set', !!message); + $('signin-banner-container1').hidden = banner.textContent.length == 0; }, /**
diff --git a/ui/login/account_picker/md_user_pod_template.css b/ui/login/account_picker/md_user_pod_template.css index a3367fe..7b5d8f18 100644 --- a/ui/login/account_picker/md_user_pod_template.css +++ b/ui/login/account_picker/md_user_pod_template.css
@@ -11,4 +11,5 @@ margin: 0; padding: 0; text-transform: none; + z-index: 6; }
diff --git a/ui/resources/BUILD.gn b/ui/resources/BUILD.gn index 633cc31..0feee31 100644 --- a/ui/resources/BUILD.gn +++ b/ui/resources/BUILD.gn
@@ -41,6 +41,13 @@ "grit/webui_resources_map.h", "webui_resources.pak", ] + grit_flags = [ + "-E", + "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir), + ] + deps = [ + "//mojo/public/js:bindings", + ] } if (!is_mac) {
diff --git a/ui/webui/resources/webui_resources.grd b/ui/webui/resources/webui_resources.grd index 1e03c2e..346e256e 100644 --- a/ui/webui/resources/webui_resources.grd +++ b/ui/webui/resources/webui_resources.grd
@@ -16,6 +16,9 @@ <include name="IDR_WEBUI_I18N_TEMPLATE_JS" file="js/i18n_template.js" flattenhtml="true" type="BINDATA" /> <include name="IDR_WEBUI_JSTEMPLATE_JS" file="js/jstemplate_compiled.js" flattenhtml="true" type="BINDATA" /> <include name="IDR_WEBUI_ANALYTICS_JS" file="js/analytics.js" flattenhtml="true" type="BINDATA" /> + <include name="IDR_WEBUI_MOJO_BINDINGS_JS" + file="${root_gen_dir}\mojo\public\js\mojo_bindings.js" + flattenhtml="true" type="BINDATA" use_base_dir="false" /> <!-- Roboto Font. Roboto-Regular and Roboto-Light is already available on Android, and Roboto-Medium is not used on Android. All 6 weights of Roboto are available on Chrome OS.-->