diff --git a/DEPS b/DEPS index 453296bb..2a5bab4 100644 --- a/DEPS +++ b/DEPS
@@ -44,7 +44,7 @@ # 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': '747d3ecdac5621e53631a155be7075aefa5aac8c', + 'v8_revision': '43bd6d3ffbe85d6e20c7ba4e4dcd839891689759', # 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. @@ -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': 'b4fee4d5d471475ada1d0d9110e1a534b49477ba', + 'pdfium_revision': 'd1a8458e6390103e123e9d265040b3d02c16955b', # 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.
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 4e310e9..96c7b72 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -2329,8 +2329,6 @@ "policy/default_geolocation_policy_handler.h", "prefs/active_profile_pref_service.cc", "prefs/active_profile_pref_service.h", - "task_manager/providers/arc/arc_process_filter.cc", - "task_manager/providers/arc/arc_process_filter.h", "task_manager/providers/arc/arc_process_task.cc", "task_manager/providers/arc/arc_process_task.h", "task_manager/providers/arc/arc_process_task_provider.cc",
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc index 31749313e..894f6804 100644 --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc
@@ -257,7 +257,6 @@ device_client_.reset(new ChromeDeviceClient); #if BUILDFLAG(ENABLE_EXTENSIONS) - // Athena sets its own instance during Athena's init process. extensions::AppWindowClient::Set(ChromeAppWindowClient::GetInstance()); extension_event_router_forwarder_ = new extensions::EventRouterForwarder; @@ -284,6 +283,7 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ExtensionsBrowserClient::Set(nullptr); + extensions::AppWindowClient::Set(nullptr); #endif #if !defined(OS_ANDROID)
diff --git a/chrome/browser/resources/settings/site_settings/site_details.js b/chrome/browser/resources/settings/site_settings/site_details.js index bf14965f..a157cf4d 100644 --- a/chrome/browser/resources/settings/site_settings/site_details.js +++ b/chrome/browser/resources/settings/site_settings/site_details.js
@@ -10,7 +10,9 @@ Polymer({ is: 'site-details', - behaviors: [SiteSettingsBehavior, settings.RouteObserverBehavior], + behaviors: [ + SiteSettingsBehavior, settings.RouteObserverBehavior, WebUIListenerBehavior + ], properties: { /** @@ -60,6 +62,13 @@ }, /** @override */ + attached: function() { + this.addWebUIListener( + 'contentSettingSitePermissionChanged', + this.onPermissionChanged_.bind(this)); + }, + + /** @override */ ready: function() { this.ContentSettingsTypes = settings.ContentSettingsTypes; }, @@ -84,16 +93,55 @@ if (this.enableSiteSettings_) this.$.usageApi.fetchUsageTotal(this.toUrl(this.origin).hostname); - var siteDetailsPermissions = - /** @type {!NodeList<!SiteDetailsPermissionElement>} */ - (this.root.querySelectorAll('site-details-permission')); + this.updatePermissions_(this.getCategoryList_()); + }, - this.browserProxy.getOriginPermissions(this.origin, this.getCategoryList_()) + /** + * Called when a site within a category has been changed. + * @param {!settings.ContentSettingsTypes} category The category that changed. + * @param {string} origin The origin of the site that changed. + * @param {string} embeddingOrigin The embedding origin of the site that + * changed. + * @private + */ + onPermissionChanged_: function(category, origin, embeddingOrigin) { + if (this.origin === undefined || this.origin == '' || + origin === undefined || origin == '') + return; + if (!this.getCategoryList_().includes(category)) + return; + + // Site details currently doesn't support embedded origins, so ignore it and + // just check whether the origins are the same. + if (this.toUrl(origin).origin == this.toUrl(this.origin).origin) + this.updatePermissions_([category]); + }, + + /** + * Retrieves the permissions listed in |categoryList| from the backend for + * |this.origin|. + * @param {!Array<!settings.ContentSettingsTypes>} categoryList The list of + * categories to update permissions for. + * @private + */ + updatePermissions_: function(categoryList) { + var permissionsMap = + /** @type {!Object<!settings.ContentSettingsTypes, + * !SiteDetailsPermissionElement>} */ + (Array.prototype.reduce.call( + this.root.querySelectorAll('site-details-permission'), + (map, element) => { + if (categoryList.includes(element.category)) + map[element.category] = element; + return map; + }, + {})); + + this.browserProxy.getOriginPermissions(this.origin, categoryList) .then((exceptionList) => { exceptionList.forEach((exception, i) => { - // |exceptionList| should be in the same order as the category list, - // which is in the same order as |siteDetailsPermissions|. - siteDetailsPermissions[i].site = exception; + // |exceptionList| should be in the same order as |categoryList|. + permissionsMap[categoryList[i]].site = exception; }); // The displayName won't change, so just use the first exception. @@ -155,7 +203,7 @@ /** * Returns list of categories for each permission displayed in <site-details>. - * @return {!Array<string>} + * @return {!Array<!settings.ContentSettingsTypes>} * @private */ getCategoryList_: function() {
diff --git a/chrome/browser/resources/settings/site_settings/site_details_permission.js b/chrome/browser/resources/settings/site_settings/site_details_permission.js index cc702b4..6ef2465 100644 --- a/chrome/browser/resources/settings/site_settings/site_details_permission.js +++ b/chrome/browser/resources/settings/site_settings/site_details_permission.js
@@ -10,7 +10,7 @@ Polymer({ is: 'site-details-permission', - behaviors: [SiteSettingsBehavior, WebUIListenerBehavior], + behaviors: [SiteSettingsBehavior], properties: { /** @@ -27,27 +27,7 @@ defaultSetting_: String, }, - observers: ['siteChanged_(site, category)'], - - /** @override */ - attached: function() { - this.addWebUIListener( - 'contentSettingSitePermissionChanged', - this.sitePermissionChanged_.bind(this)); - }, - - /** - * Returns true if the origins match, e.g. http://google.com and - * http://[*.]google.com. - * @param {string} left The first origin to compare. - * @param {string} right The second origin to compare. - * @return {boolean} True if the origins are the same. - * @private - */ - sameOrigin_: function(left, right) { - return this.removePatternWildcard(left) == - this.removePatternWildcard(right); - }, + observers: ['siteChanged_(site)'], /** * Updates the drop-down value after |site| has changed. @@ -81,27 +61,6 @@ }, /** - * Called when a site within a category has been changed. - * @param {number} category The category that changed. - * @param {string} origin The origin of the site that changed. - * @param {string} embeddingOrigin The embedding origin of the site that - * changed. - * @private - */ - sitePermissionChanged_: function(category, origin, embeddingOrigin) { - if (this.site === undefined) - return; - if (category != this.category) - return; - - if (origin == '' || - (origin == this.site.origin && - embeddingOrigin == this.site.embeddingOrigin)) { - this.siteChanged_(this.site); - } - }, - - /** * Handles the category permission changing for this origin. * @private */
diff --git a/chrome/browser/task_manager/providers/arc/arc_process_filter.cc b/chrome/browser/task_manager/providers/arc/arc_process_filter.cc deleted file mode 100644 index 0d0202ba..0000000 --- a/chrome/browser/task_manager/providers/arc/arc_process_filter.cc +++ /dev/null
@@ -1,68 +0,0 @@ -// 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 "chrome/browser/task_manager/providers/arc/arc_process_filter.h" - -#include <utility> - -#include "base/logging.h" -#include "components/arc/common/process.mojom.h" - -namespace task_manager { - -namespace { - -const char* kDefaultWhitelist[] = {"/system/bin/surfaceflinger"}; - -} // namespace - -ArcProcessFilter::ArcProcessFilter() - : whitelist_(std::begin(kDefaultWhitelist), std::end(kDefaultWhitelist)) {} - -ArcProcessFilter::ArcProcessFilter(const std::set<std::string>& whitelist) - : whitelist_(whitelist) {} - -ArcProcessFilter::~ArcProcessFilter() = default; - -bool ArcProcessFilter::ShouldDisplayProcess( - const arc::ArcProcess& process) const { - // Check the explicit whitelist. If it is not in there, decide based on its - // ProcessState. - if (whitelist_.count(process.process_name())) - return true; - // Implicitly whitelist processes that might be important to the user. - // See process.mojom. - // ProcessState::TOP: Process is hosting the current top activities - // ProcessState::IMPORTANT_FOREGROUND: Process is important to the user - // ProcessState::TOP_SLEEPING: Same as TOP, but while the device is sleeping - // ProcessState::LAST_ACTIVITY: The last activity - see crbug.com/738651. - // ProcessState::FOREGROUND_SERVICE: Foreground service - in Android, the user - // is made aware of these via a notification. - switch (process.process_state()) { - case arc::mojom::ProcessState::TOP: // Fallthrough. - case arc::mojom::ProcessState::IMPORTANT_FOREGROUND: - case arc::mojom::ProcessState::TOP_SLEEPING: - case arc::mojom::ProcessState::LAST_ACTIVITY: - case arc::mojom::ProcessState::FOREGROUND_SERVICE: - return true; - case arc::mojom::ProcessState::NONEXISTENT: // Fallthrough. - case arc::mojom::ProcessState::PERSISTENT: - case arc::mojom::ProcessState::PERSISTENT_UI: - case arc::mojom::ProcessState::BOUND_FOREGROUND_SERVICE: - case arc::mojom::ProcessState::IMPORTANT_BACKGROUND: - case arc::mojom::ProcessState::BACKUP: - case arc::mojom::ProcessState::HEAVY_WEIGHT: - case arc::mojom::ProcessState::SERVICE: - case arc::mojom::ProcessState::RECEIVER: - case arc::mojom::ProcessState::HOME: - case arc::mojom::ProcessState::CACHED_ACTIVITY: - case arc::mojom::ProcessState::CACHED_ACTIVITY_CLIENT: - case arc::mojom::ProcessState::CACHED_EMPTY: - return false; - } - NOTREACHED(); - return false; -} - -} // namespace task_manager
diff --git a/chrome/browser/task_manager/providers/arc/arc_process_filter.h b/chrome/browser/task_manager/providers/arc/arc_process_filter.h deleted file mode 100644 index 8b0b9932..0000000 --- a/chrome/browser/task_manager/providers/arc/arc_process_filter.h +++ /dev/null
@@ -1,37 +0,0 @@ -// 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 CHROME_BROWSER_TASK_MANAGER_PROVIDERS_ARC_ARC_PROCESS_FILTER_H_ -#define CHROME_BROWSER_TASK_MANAGER_PROVIDERS_ARC_ARC_PROCESS_FILTER_H_ - -#include <set> -#include <string> - -#include "base/macros.h" -#include "chrome/browser/chromeos/arc/process/arc_process.h" - -namespace task_manager { - -// The many ARC system apps can make the task manager noisy. This filter -// determines whether to show an ARC process in the task manager or not. -// Apps can be whitelisted explicitly, or allowed based on their ProcessState. -// See crbug.com/654564 -class ArcProcessFilter { - public: - // Zero argument constructor will use a default whitelist. - ArcProcessFilter(); - explicit ArcProcessFilter(const std::set<std::string>& whitelist); - ~ArcProcessFilter(); - - bool ShouldDisplayProcess(const arc::ArcProcess& process) const; - - private: - const std::set<std::string> whitelist_; - - DISALLOW_COPY_AND_ASSIGN(ArcProcessFilter); -}; - -} // namespace task_manager - -#endif // CHROME_BROWSER_TASK_MANAGER_PROVIDERS_ARC_ARC_PROCESS_FILTER_H_
diff --git a/chrome/browser/task_manager/providers/arc/arc_process_filter_unittest.cc b/chrome/browser/task_manager/providers/arc/arc_process_filter_unittest.cc deleted file mode 100644 index f26ae4d6..0000000 --- a/chrome/browser/task_manager/providers/arc/arc_process_filter_unittest.cc +++ /dev/null
@@ -1,55 +0,0 @@ -// 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 "chrome/browser/task_manager/providers/arc/arc_process_filter.h" - -#include <string> - -#include "chrome/browser/chromeos/arc/process/arc_process.h" -#include "components/arc/common/process.mojom.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace task_manager { - -namespace { - -const arc::ArcProcess kTest1Process(0 /* nspid */, - 0 /* pid */, - "/system/test1_process", - arc::mojom::ProcessState::PERSISTENT, - false /* is_focused */, - 0 /* last_activity_time */); - -const arc::ArcProcess kTest2Process(0 /* nspid */, - 0 /* pid */, - "/system/test2_process", - arc::mojom::ProcessState::PERSISTENT, - false /* is_focused */, - 0 /* last_activity_time */); - -const arc::ArcProcess kTopProcess(0 /* nspid */, - 0 /* pid */, - "top_process", - arc::mojom::ProcessState::TOP, - false /* is_focused */, - 0 /* last_activity_time */); - -} // namespace - -using ArcProcessFilterTest = testing::Test; - -TEST_F(ArcProcessFilterTest, ExplicitWhitelist) { - ArcProcessFilter filter({"/system/test1_process", "test"}); - EXPECT_TRUE(filter.ShouldDisplayProcess(kTest1Process)); - EXPECT_FALSE(filter.ShouldDisplayProcess(kTest2Process)); -} - -TEST_F(ArcProcessFilterTest, ProcessStateFiltering) { - ArcProcessFilter filter; - EXPECT_FALSE(filter.ShouldDisplayProcess(kTest1Process)); - EXPECT_FALSE(filter.ShouldDisplayProcess(kTest2Process)); - EXPECT_TRUE(filter.ShouldDisplayProcess(kTopProcess)); -} - -} // namespace task_manager
diff --git a/chrome/browser/task_manager/providers/arc/arc_process_task_provider.cc b/chrome/browser/task_manager/providers/arc/arc_process_task_provider.cc index ebbdbdf..36a390d 100644 --- a/chrome/browser/task_manager/providers/arc/arc_process_task_provider.cc +++ b/chrome/browser/task_manager/providers/arc/arc_process_task_provider.cc
@@ -60,10 +60,6 @@ nspid_to_remove.insert(entry.first); for (const auto& entry : processes) { - // Skip adding or updating processes we will not display. - if (!process_filter_.ShouldDisplayProcess(entry)) - continue; - if (nspid_to_remove.erase(entry.nspid()) == 0) { // New arc process. std::unique_ptr<ArcProcessTask>& task = (*pid_to_task)[entry.nspid()];
diff --git a/chrome/browser/task_manager/providers/arc/arc_process_task_provider.h b/chrome/browser/task_manager/providers/arc/arc_process_task_provider.h index e7565d8..b5a38c1 100644 --- a/chrome/browser/task_manager/providers/arc/arc_process_task_provider.h +++ b/chrome/browser/task_manager/providers/arc/arc_process_task_provider.h
@@ -14,7 +14,6 @@ #include "base/memory/weak_ptr.h" #include "base/process/process.h" #include "chrome/browser/chromeos/arc/process/arc_process.h" -#include "chrome/browser/task_manager/providers/arc/arc_process_filter.h" #include "chrome/browser/task_manager/providers/arc/arc_process_task.h" #include "chrome/browser/task_manager/providers/task_provider.h" @@ -66,10 +65,6 @@ // Whether to continue the periodical polling. bool is_updating_; - // Filters out ARC processes that are not useful to display. - // See crbug.com/654564 - const ArcProcessFilter process_filter_; - // Always keep this the last member of this class to make sure it's the // first thing to be destructed. base::WeakPtrFactory<ArcProcessTaskProvider> weak_ptr_factory_;
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 584cc15..4853a9b 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -4505,7 +4505,6 @@ "../browser/signin/signin_manager_unittest.cc", ] sources += [ - "../browser/task_manager/providers/arc/arc_process_filter_unittest.cc", "base/ash_test_environment_chrome.cc", "base/ash_test_environment_chrome.h", ]
diff --git a/chrome/test/base/testing_browser_process.cc b/chrome/test/base/testing_browser_process.cc index e5b85538..cf6952d 100644 --- a/chrome/test/base/testing_browser_process.cc +++ b/chrome/test/base/testing_browser_process.cc
@@ -92,6 +92,7 @@ ShutdownBrowserPolicyConnector(); #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ExtensionsBrowserClient::Set(nullptr); + extensions::AppWindowClient::Set(nullptr); #endif // Destructors for some objects owned by TestingBrowserProcess will use
diff --git a/chrome/test/data/webui/settings/site_details_tests.js b/chrome/test/data/webui/settings/site_details_tests.js index ace998f..fc2735c 100644 --- a/chrome/test/data/webui/settings/site_details_tests.js +++ b/chrome/test/data/webui/settings/site_details_tests.js
@@ -259,4 +259,55 @@ assertEquals(settings.ContentSetting.DEFAULT, args[2]); }) }); + + test('permissions update dynamically', function() { + browserProxy.setPrefs(prefs); + testElement = createSiteDetails('https://foo.com:443'); + + var siteDetailsPermission = + testElement.root.querySelector('#notifications'); + + // Wait for all the permissions to be populated initially. + return browserProxy.whenCalled('getOriginPermissions') + .then(function(result) { + // Make sure initial state is as expected. + assertEquals( + settings.ContentSetting.BLOCK, + siteDetailsPermission.site.setting); + assertEquals( + settings.SiteSettingSource.POLICY, + siteDetailsPermission.site.source); + assertEquals( + settings.ContentSetting.BLOCK, + siteDetailsPermission.$.permission.value); + + // Set new prefs and make sure only that permission is updated. + var newException = { + embeddingOrigin: testElement.origin, + origin: testElement.origin, + setting: settings.ContentSetting.ASK, + source: settings.SiteSettingSource.DEFAULT, + }; + browserProxy.resetResolver('getOriginPermissions'); + browserProxy.setSinglePref( + settings.ContentSettingsTypes.NOTIFICATIONS, newException); + return browserProxy.whenCalled('getOriginPermissions'); + }) + .then(function(args) { + // The notification pref was just updated, so make sure the call to + // getOriginPermissions was to check notifications. + assertTrue( + args[1].includes(settings.ContentSettingsTypes.NOTIFICATIONS)); + + // Check |siteDetailsPermission| now shows the new permission value. + assertEquals( + settings.ContentSetting.ASK, siteDetailsPermission.site.setting); + assertEquals( + settings.SiteSettingSource.DEFAULT, + siteDetailsPermission.site.source); + assertEquals( + settings.ContentSetting.DEFAULT, + siteDetailsPermission.$.permission.value); + }); + }); });
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 5902ab7..1db641a 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
@@ -131,6 +131,27 @@ } /** + * Sets one exception for a given category, replacing any existing exceptions + * for the same origin. Note this ignores embedding origins. + * @param {!settings.ContentSettingsTypes} category The category the new + * exception belongs to. + * @param {!RawSiteException} newException The new preference to add/replace. + */ + setSinglePref(category, newException) { + // Remove entries from the current prefs which have the same origin. + var newPrefs = /** @type {!Array<RawSiteException>} */ + (this.prefs_.exceptions[category].filter((categoryException) => { + if (categoryException.origin != newException.origin) + return true; + })); + newPrefs.push(newException); + this.prefs_.exceptions[category] = newPrefs; + + cr.webUIListenerCallback( + 'contentSettingSitePermissionChanged', category, newException.origin); + } + + /** * Sets the prefs to use when testing. * @param {!Array<ZoomLevelEntry>} list The zoom list to set. */ @@ -327,7 +348,7 @@ var setting; var source; - this.prefs_.exceptions[contentType].some(function(originPrefs) { + this.prefs_.exceptions[contentType].some((originPrefs) => { if (originPrefs.origin == origin) { setting = originPrefs.setting; source = originPrefs.source; @@ -335,7 +356,7 @@ } }); assert( - settings !== undefined, + setting != undefined, 'There was no exception set for origin: ' + origin + ' and contentType: ' + contentType);
diff --git a/chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc b/chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc index 39343ee9..2ee010b 100644 --- a/chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc +++ b/chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc
@@ -126,12 +126,6 @@ const int kMediaDuckFadeMs = 150; const int kMediaUnduckFadeMs = 700; -// Force chunk_size to be multiple of 4. Needed for some NEON implementations. -// Some third-party AudioPostProcessors require it. -const int kBufferAlignment = 4; -static_assert((kBufferAlignment & (kBufferAlignment - 1)) == 0, - "alignment must be a power of 2"); - int64_t TimespecToMicroseconds(struct timespec time) { return static_cast<int64_t>(time.tv_sec) * base::Time::kMicrosecondsPerSecond + @@ -859,14 +853,13 @@ const int min_frames_in_buffer = output_samples_per_second_ * kMinBufferedDataMs / 1000; int chunk_size = - (output_samples_per_second_ * kMaxAudioWriteTimeMilliseconds / 1000) & - ~(kBufferAlignment - 1); + output_samples_per_second_ * kMaxAudioWriteTimeMilliseconds / 1000; bool is_silence = true; for (auto&& filter_group : filter_groups_) { filter_group->ClearActiveInputs(); } for (auto&& input : inputs_) { - int read_size = input->MaxReadSize() & ~(kBufferAlignment - 1); + int read_size = input->MaxReadSize(); if (read_size > 0) { DCHECK(input->filter_group()); input->filter_group()->AddActiveInput(input.get());
diff --git a/chromecast/media/cma/backend/alsa/stream_mixer_alsa_unittest.cc b/chromecast/media/cma/backend/alsa/stream_mixer_alsa_unittest.cc index 717828f..45983232 100644 --- a/chromecast/media/cma/backend/alsa/stream_mixer_alsa_unittest.cc +++ b/chromecast/media/cma/backend/alsa/stream_mixer_alsa_unittest.cc
@@ -32,10 +32,6 @@ namespace { -const int kBufferAlignment = 4; -static_assert((kBufferAlignment & (kBufferAlignment - 1)) == 0, - "alignment must be a power of 2"); - using FloatType = ::media::Float32SampleTypeTraits; // Testing constants that are common to multiple test cases. @@ -186,10 +182,6 @@ return data; } -int AlignedBufferSize(int size) { - return size & ~(kBufferAlignment - 1); -} - class MockInputQueue : public StreamMixerAlsa::InputQueue { public: MockInputQueue(int samples_per_second, @@ -567,27 +559,19 @@ // The mixer should pull data from all streams, using the smallest // MaxReadSize provided by any of the channels. // TODO(slan): Check that the proper number of frames is pulled. - // Actual size of pulled data should be truncated to factor of - // kBufferAlignment. - ASSERT_EQ(3u, inputs.size()); - inputs[0]->SetMaxReadSize(kMaxChunkSize + 4); + inputs[0]->SetMaxReadSize(kMaxChunkSize + 1); inputs[1]->SetMaxReadSize(kMaxChunkSize - 1); inputs[2]->SetMaxReadSize(kMaxChunkSize * 2); for (auto* input : inputs) { - EXPECT_CALL(*input, - GetResampledData(_, AlignedBufferSize(kMaxChunkSize - 1))) - .Times(1); - EXPECT_CALL(*input, VolumeScaleAccumulate( - _, _, AlignedBufferSize(kMaxChunkSize - 1), _)) + EXPECT_CALL(*input, GetResampledData(_, kMaxChunkSize - 1)).Times(1); + EXPECT_CALL(*input, VolumeScaleAccumulate(_, _, kMaxChunkSize - 1, _)) .Times(kNumChannels); EXPECT_CALL(*input, AfterWriteFrames(_)).Times(1); } // TODO(slan): Verify that the data is mixed properly with math. - EXPECT_CALL(*mock_alsa(), - PcmWritei(_, _, AlignedBufferSize(kMaxChunkSize - 1))) - .Times(1); + EXPECT_CALL(*mock_alsa(), PcmWritei(_, _, kMaxChunkSize - 1)).Times(1); mixer->WriteFramesForTest(); // Make two of these streams non-primary, and exhaust a non-primary stream. @@ -781,7 +765,7 @@ // ::media::AudioBus instances, rather than wrapping statically declared float // arrays. The latter method is brittle, as ::media::AudioBus requires 16-bit // alignment for internal data. - const int kNumFrames = 4; + const int kNumFrames = 3; const int32_t kMaxSample = std::numeric_limits<int32_t>::max(); const int32_t kMinSample = std::numeric_limits<int32_t>::min(); @@ -842,11 +826,11 @@ EXPECT_EQ(StreamMixerAlsa::kStateNormalPlayback, mixer->state()); // The input stream will provide buffers of several different lengths. - input->SetMaxReadSize(4); - EXPECT_CALL(*input, GetResampledData(_, 4)); - EXPECT_CALL(*input, VolumeScaleAccumulate(_, _, 4, _)).Times(kNumChannels); + input->SetMaxReadSize(7); + EXPECT_CALL(*input, GetResampledData(_, 7)); + EXPECT_CALL(*input, VolumeScaleAccumulate(_, _, 7, _)).Times(kNumChannels); EXPECT_CALL(*input, AfterWriteFrames(_)); - EXPECT_CALL(*mock_alsa(), PcmWritei(_, _, 4)).Times(1); + EXPECT_CALL(*mock_alsa(), PcmWritei(_, _, 7)).Times(1); mixer->WriteFramesForTest(); input->SetMaxReadSize(100); @@ -1005,7 +989,7 @@ std::transform(delays.begin(), delays.end(), delays.begin(), &FramesToDelayUs); - const int kNumFrames = 12; + const int kNumFrames = 10; for (auto* input : inputs) { input->SetMaxReadSize(kNumFrames); input->SetPaused(false); @@ -1043,30 +1027,6 @@ mixer->WriteFramesForTest(); } -TEST_F(StreamMixerAlsaTest, OneStreamTruncatedProperly) { - auto* input = new testing::StrictMock<MockInputQueue>(kTestSamplesPerSecond); - input->SetPaused(false); - - StreamMixerAlsa* mixer = StreamMixerAlsa::Get(); - EXPECT_CALL(*input, Initialize(_)).Times(1); - mixer->AddInput(base::WrapUnique(input)); - EXPECT_EQ(StreamMixerAlsa::kStateNormalPlayback, mixer->state()); - - int preCalc[6][2] = {{4, 4}, {7, 4}, {8, 8}, {9, 8}, {880, 880}, {882, 880}}; - - for (int i = 0; i < 6; ++i) { - int readSize = preCalc[i][0]; - int expectedSize = preCalc[i][1]; - input->SetMaxReadSize(readSize); - EXPECT_CALL(*input, GetResampledData(_, expectedSize)); - EXPECT_CALL(*input, VolumeScaleAccumulate(_, _, expectedSize, _)) - .Times(kNumChannels); - EXPECT_CALL(*input, AfterWriteFrames(_)); - EXPECT_CALL(*mock_alsa(), PcmWritei(_, _, expectedSize)).Times(1); - mixer->WriteFramesForTest(); - } -} - TEST_F(StreamMixerAlsaTest, PostProcessorDelayUnlistedDevice) { const std::string device_id = "not-a-device-id"; testing::StrictMock<MockInputQueue>* input = @@ -1075,7 +1035,7 @@ // Delay should be based on default processor int64_t delay = FramesToDelayUs( kDefaultProcessorDelay + kLinearizeProcessorDelay + kMixProcessorDelay); - const int kNumFrames = 12; + const int kNumFrames = 10; input->SetMaxReadSize(kNumFrames); input->SetPaused(false);
diff --git a/components/metrics/metrics_log.cc b/components/metrics/metrics_log.cc index e6215d799..7fc04fc 100644 --- a/components/metrics/metrics_log.cc +++ b/components/metrics/metrics_log.cc
@@ -27,6 +27,7 @@ #include "components/metrics/metrics_pref_names.h" #include "components/metrics/metrics_provider.h" #include "components/metrics/metrics_service_client.h" +#include "components/metrics/persistent_system_profile.h" #include "components/metrics/proto/histogram_event.pb.h" #include "components/metrics/proto/system_profile.pb.h" #include "components/metrics/proto/user_action_event.pb.h" @@ -87,11 +88,13 @@ MetricsLog::MetricsLog(const std::string& client_id, int session_id, LogType log_type, - MetricsServiceClient* client) + MetricsServiceClient* client, + PrefService* local_state) : closed_(false), log_type_(log_type), client_(client), - creation_time_(base::TimeTicks::Now()) { + creation_time_(base::TimeTicks::Now()), + local_state_(local_state) { if (IsTestingID(client_id)) uma_proto_.set_client_id(0); else @@ -106,6 +109,10 @@ SystemProfileProto* system_profile = uma_proto()->mutable_system_profile(); RecordCoreSystemProfile(client_, system_profile); + if (log_type_ == ONGOING_LOG) { + GlobalPersistentSystemProfile::GetInstance()->SetSystemProfile( + *system_profile, /*complete=*/false); + } } MetricsLog::~MetricsLog() { @@ -210,6 +217,9 @@ // uma log upload, just as we send histogram data. WriteRealtimeStabilityAttributes(incremental_uptime, uptime); + if (local_state_->GetBoolean(prefs::kMetricsResetIds)) + UMA_HISTOGRAM_BOOLEAN("UMA.IsClonedInstall", true); + delegating_provider->ProvideCurrentSessionData(uma_proto()); } @@ -259,7 +269,7 @@ stability->set_uptime_sec(uptime_sec); } -const SystemProfileProto& MetricsLog::RecordEnvironment( +std::string MetricsLog::RecordEnvironment( DelegatingProvider* delegating_provider, int64_t install_date, int64_t metrics_reporting_enabled_date) { @@ -290,7 +300,16 @@ delegating_provider->ProvideSystemProfileMetrics(system_profile); - return *system_profile; + EnvironmentRecorder recorder(local_state_); + std::string serialized_proto = + recorder.SerializeAndRecordEnvironmentToPrefs(*system_profile); + + if (log_type_ == ONGOING_LOG) { + GlobalPersistentSystemProfile::GetInstance()->SetSystemProfile( + serialized_proto, /*complete=*/true); + } + + return serialized_proto; } bool MetricsLog::LoadIndependentMetrics(MetricsProvider* metrics_provider) { @@ -302,13 +321,12 @@ &snapshot_manager); } -bool MetricsLog::LoadSavedEnvironmentFromPrefs(PrefService* local_state, - std::string* app_version) { +bool MetricsLog::LoadSavedEnvironmentFromPrefs(std::string* app_version) { DCHECK(app_version); app_version->clear(); SystemProfileProto* system_profile = uma_proto()->mutable_system_profile(); - EnvironmentRecorder recorder(local_state); + EnvironmentRecorder recorder(local_state_); bool success = recorder.LoadEnvironmentFromPrefs(system_profile); if (success) *app_version = system_profile->app_version();
diff --git a/components/metrics/metrics_log.h b/components/metrics/metrics_log.h index af30a57..d113e06 100644 --- a/components/metrics/metrics_log.h +++ b/components/metrics/metrics_log.h
@@ -55,7 +55,8 @@ MetricsLog(const std::string& client_id, int session_id, LogType log_type, - MetricsServiceClient* client); + MetricsServiceClient* client, + PrefService* local_state); virtual ~MetricsLog(); // Registers local state prefs used by this class. @@ -90,12 +91,14 @@ // TODO(rkaplow): I think this can be a little refactored as it currently // records a pretty arbitrary set of things. // Records the current operating environment, including metrics provided by - // the specified |delegating_provider|. The current environment is - // returned as a SystemProfileProto. - const SystemProfileProto& RecordEnvironment( - DelegatingProvider* delegating_provider, - int64_t install_date, - int64_t metrics_reporting_enabled_date); + // the specified |delegating_provider|. Takes the list of synthetic + // trial IDs as a parameter. A synthetic trial is one that is set up + // dynamically by code in Chrome. For example, a pref may be mapped to a + // synthetic trial such that the group is determined by the pref value. The + // current environment is returned serialized as a string. + std::string RecordEnvironment(DelegatingProvider* delegating_provider, + int64_t install_date, + int64_t metrics_reporting_enabled_date); // Loads a saved system profile and the associated metrics into the log. // Returns true on success. Keep calling it with fresh logs until it returns @@ -106,8 +109,7 @@ // call from prefs. On success, returns true and |app_version| contains the // recovered version. Otherwise (if there was no saved environment in prefs // or it could not be decoded), returns false and |app_version| is empty. - bool LoadSavedEnvironmentFromPrefs(PrefService* local_state, - std::string* app_version); + bool LoadSavedEnvironmentFromPrefs(std::string* app_version); // Record data from providers about the previous session into the log. void RecordPreviousSessionData(DelegatingProvider* delegating_provider); @@ -179,6 +181,8 @@ // The time when the current log was created. const base::TimeTicks creation_time_; + PrefService* local_state_; + DISALLOW_COPY_AND_ASSIGN(MetricsLog); };
diff --git a/components/metrics/metrics_log_manager_unittest.cc b/components/metrics/metrics_log_manager_unittest.cc index 4857a99..3dafa34 100644 --- a/components/metrics/metrics_log_manager_unittest.cc +++ b/components/metrics/metrics_log_manager_unittest.cc
@@ -35,7 +35,7 @@ MetricsLogStore* log_store() { return &log_store_; } MetricsLog* CreateLog(MetricsLog::LogType log_type) { - return new MetricsLog("id", 0, log_type, &client_); + return new MetricsLog("id", 0, log_type, &client_, &pref_service_); } private:
diff --git a/components/metrics/metrics_log_store_unittest.cc b/components/metrics/metrics_log_store_unittest.cc index 50b78c7..5c35274 100644 --- a/components/metrics/metrics_log_store_unittest.cc +++ b/components/metrics/metrics_log_store_unittest.cc
@@ -21,7 +21,7 @@ ~MetricsLogStoreTest() override {} MetricsLog* CreateLog(MetricsLog::LogType log_type) { - return new MetricsLog("id", 0, log_type, &client_); + return new MetricsLog("id", 0, log_type, &client_, &pref_service_); } // Returns the stored number of logs of the given type.
diff --git a/components/metrics/metrics_log_unittest.cc b/components/metrics/metrics_log_unittest.cc index 3a91d46..58160a0e7 100644 --- a/components/metrics/metrics_log_unittest.cc +++ b/components/metrics/metrics_log_unittest.cc
@@ -55,7 +55,8 @@ LogType log_type, MetricsServiceClient* client, TestingPrefServiceSimple* prefs) - : MetricsLog(client_id, session_id, log_type, client), prefs_(prefs) { + : MetricsLog(client_id, session_id, log_type, client, prefs), + prefs_(prefs) { InitPrefs(); } @@ -129,10 +130,10 @@ TestMetricsServiceClient client; TestingPrefServiceSimple prefs; - MetricsLog log1("id", 0, MetricsLog::ONGOING_LOG, &client); + MetricsLog log1("id", 0, MetricsLog::ONGOING_LOG, &client, &prefs); EXPECT_EQ(MetricsLog::ONGOING_LOG, log1.log_type()); - MetricsLog log2("id", 0, MetricsLog::INITIAL_STABILITY_LOG, &client); + MetricsLog log2("id", 0, MetricsLog::INITIAL_STABILITY_LOG, &client, &prefs); EXPECT_EQ(MetricsLog::INITIAL_STABILITY_LOG, log2.log_type()); } @@ -141,7 +142,7 @@ client.set_version_string("bogus version"); TestingPrefServiceSimple prefs; MetricsLog log("totally bogus client ID", 137, MetricsLog::ONGOING_LOG, - &client); + &client, &prefs); log.CloseLog(); std::string encoded; @@ -256,17 +257,14 @@ kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); DelegatingProvider delegating_provider; - const SystemProfileProto& system_profile = - log.RecordEnvironment(&delegating_provider, kInstallDate, kEnabledDate); - EnvironmentRecorder writer(&prefs_); - writer.SerializeAndRecordEnvironmentToPrefs(system_profile); + log.RecordEnvironment(&delegating_provider, kInstallDate, kEnabledDate); // Check that the system profile on the log has the correct values set. CheckSystemProfile(log.system_profile()); // Check that the system profile has also been written to prefs. SystemProfileProto decoded_system_profile; - EnvironmentRecorder reader(&prefs_); - EXPECT_TRUE(reader.LoadEnvironmentFromPrefs(&decoded_system_profile)); + EnvironmentRecorder recorder(&prefs_); + EXPECT_TRUE(recorder.LoadEnvironmentFromPrefs(&decoded_system_profile)); CheckSystemProfile(decoded_system_profile); }
diff --git a/components/metrics/metrics_service.cc b/components/metrics/metrics_service.cc index a3aa510..5a93e5b 100644 --- a/components/metrics/metrics_service.cc +++ b/components/metrics/metrics_service.cc
@@ -154,7 +154,6 @@ #include "components/metrics/metrics_rotation_scheduler.h" #include "components/metrics/metrics_service_client.h" #include "components/metrics/metrics_state_manager.h" -#include "components/metrics/persistent_system_profile.h" #include "components/metrics/stability_metrics_provider.h" #include "components/metrics/url_constants.h" #include "components/prefs/pref_registry_simple.h" @@ -237,8 +236,6 @@ RegisterMetricsProvider( base::MakeUnique<StabilityMetricsProvider>(local_state_)); - RegisterMetricsProvider(state_manager_->GetProvider()); - RegisterMetricsProvider(base::MakeUnique<variations::FieldTrialsProvider>( &synthetic_trial_registry_, base::StringPiece())); } @@ -319,12 +316,6 @@ state_manager_->ForceClientIdCreation(); client_->SetMetricsClientId(state_manager_->client_id()); - - SystemProfileProto system_profile; - MetricsLog::RecordCoreSystemProfile(client_, &system_profile); - GlobalPersistentSystemProfile::GetInstance()->SetSystemProfile( - system_profile, /*complete=*/false); - if (!log_manager_.current_log()) OpenNewLog(); @@ -742,7 +733,7 @@ // log describes stats from the _previous_ session. std::string system_profile_app_version; if (!initial_stability_log->LoadSavedEnvironmentFromPrefs( - local_state_, &system_profile_app_version)) { + &system_profile_app_version)) { return false; } if (system_profile_app_version != prefs_previous_version) @@ -821,29 +812,15 @@ std::unique_ptr<MetricsLog> MetricsService::CreateLog( MetricsLog::LogType log_type) { return base::MakeUnique<MetricsLog>(state_manager_->client_id(), session_id_, - log_type, client_); -} - -std::string MetricsService::RecordCurrentEnvironmentHelper( - MetricsLog* log, - PrefService* local_state, - DelegatingProvider* delegating_provider, - int64_t install_date, - int64_t enable_date) { - const SystemProfileProto& system_profile = - log->RecordEnvironment(delegating_provider, install_date, enable_date); - EnvironmentRecorder recorder(local_state); - return recorder.SerializeAndRecordEnvironmentToPrefs(system_profile); + log_type, client_, local_state_); } void MetricsService::RecordCurrentEnvironment(MetricsLog* log) { DCHECK(client_); - std::string serialized_proto = RecordCurrentEnvironmentHelper( - log, local_state_, &delegating_provider_, GetInstallDate(), - GetMetricsReportingEnabledDate()); - GlobalPersistentSystemProfile::GetInstance()->SetSystemProfile( - serialized_proto, /*complete=*/true); - client_->OnEnvironmentUpdate(&serialized_proto); + std::string serialized_environment = + log->RecordEnvironment(&delegating_provider_, GetInstallDate(), + GetMetricsReportingEnabledDate()); + client_->OnEnvironmentUpdate(&serialized_environment); } void MetricsService::RecordCurrentHistograms() {
diff --git a/components/metrics/metrics_service.h b/components/metrics/metrics_service.h index 2dfe686..cbb53e15 100644 --- a/components/metrics/metrics_service.h +++ b/components/metrics/metrics_service.h
@@ -183,16 +183,6 @@ return reporting_service_.metrics_log_store(); } - // Records the current environment (system profile) in |log|, and persists - // the results in prefs. - // Exposed for testing. - static std::string RecordCurrentEnvironmentHelper( - MetricsLog* log, - PrefService* local_state, - DelegatingProvider* delegating_provider, - int64_t install_date, - int64_t enable_date); - private: // The MetricsService has a lifecycle that is stored as a state. // See metrics_service.cc for description of this lifecycle. @@ -294,9 +284,7 @@ // Creates a new MetricsLog instance with the given |log_type|. std::unique_ptr<MetricsLog> CreateLog(MetricsLog::LogType log_type); - // Records the current environment (system profile) in |log|, and persists - // the results in prefs and GlobalPersistentSystemProfile. - // Exposed for testing. + // Records the current environment (system profile) in |log|. void RecordCurrentEnvironment(MetricsLog* log); // Record complete list of histograms into the current log.
diff --git a/components/metrics/metrics_service_unittest.cc b/components/metrics/metrics_service_unittest.cc index bcf85090..30d64a7d 100644 --- a/components/metrics/metrics_service_unittest.cc +++ b/components/metrics/metrics_service_unittest.cc
@@ -56,7 +56,6 @@ using MetricsService::log_manager; using MetricsService::log_store; - using MetricsService::RecordCurrentEnvironmentHelper; private: DISALLOW_COPY_AND_ASSIGN(TestMetricsService); @@ -66,8 +65,13 @@ public: TestMetricsLog(const std::string& client_id, int session_id, - MetricsServiceClient* client) - : MetricsLog(client_id, session_id, MetricsLog::ONGOING_LOG, client) {} + MetricsServiceClient* client, + PrefService* local_state) + : MetricsLog(client_id, + session_id, + MetricsLog::ONGOING_LOG, + client, + local_state) {} ~TestMetricsLog() override {} @@ -186,10 +190,9 @@ // Save an existing system profile to prefs, to correspond to what would be // saved from a previous session. TestMetricsServiceClient client; - TestMetricsLog log("client", 1, &client); + TestMetricsLog log("client", 1, &client, GetLocalState()); DelegatingProvider delegating_provider; - TestMetricsService::RecordCurrentEnvironmentHelper( - &log, GetLocalState(), &delegating_provider, 0, 0); + log.RecordEnvironment(&delegating_provider, 0, 0); // Record stability build time and version from previous session, so that // stability metrics (including exited cleanly flag) won't be cleared. @@ -258,10 +261,9 @@ // Save an existing system profile to prefs, to correspond to what would be // saved from a previous session. TestMetricsServiceClient client; - TestMetricsLog log("client", 1, &client); + TestMetricsLog log("client", 1, &client, GetLocalState()); DelegatingProvider delegating_provider; - TestMetricsService::RecordCurrentEnvironmentHelper( - &log, GetLocalState(), &delegating_provider, 0, 0); + log.RecordEnvironment(&delegating_provider, 0, 0); // Record stability build time and version from previous session, so that // stability metrics (including exited cleanly flag) won't be cleared.
diff --git a/components/metrics/metrics_state_manager.cc b/components/metrics/metrics_state_manager.cc index 2e93a8e..45c2c48 100644 --- a/components/metrics/metrics_state_manager.cc +++ b/components/metrics/metrics_state_manager.cc
@@ -20,7 +20,6 @@ #include "components/metrics/enabled_state_provider.h" #include "components/metrics/machine_id_provider.h" #include "components/metrics/metrics_pref_names.h" -#include "components/metrics/metrics_provider.h" #include "components/metrics/metrics_switches.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" @@ -51,22 +50,6 @@ low_entropy_source_value); } -class MetricsStateMetricsProvider : public MetricsProvider { - public: - MetricsStateMetricsProvider(PrefService* local_state) - : local_state_(local_state) {} - - // MetricsProvider: - void ProvideCurrentSessionData( - ChromeUserMetricsExtension* uma_proto) override { - if (local_state_->GetBoolean(prefs::kMetricsResetIds)) - UMA_HISTOGRAM_BOOLEAN("UMA.IsClonedInstall", true); - } - - private: - PrefService* local_state_; -}; - } // namespace // static @@ -98,10 +81,6 @@ instance_exists_ = false; } -std::unique_ptr<MetricsProvider> MetricsStateManager::GetProvider() { - return base::MakeUnique<MetricsStateMetricsProvider>(local_state_); -} - bool MetricsStateManager::IsMetricsReportingEnabled() { return enabled_state_provider_->IsReportingEnabled(); }
diff --git a/components/metrics/metrics_state_manager.h b/components/metrics/metrics_state_manager.h index 2eb84369..fbb0f595 100644 --- a/components/metrics/metrics_state_manager.h +++ b/components/metrics/metrics_state_manager.h
@@ -23,7 +23,6 @@ class ClonedInstallDetector; class EnabledStateProvider; -class MetricsProvider; // Responsible for managing MetricsService state prefs, specifically the UMA // client id and low entropy source. Code outside the metrics directory should @@ -42,8 +41,6 @@ virtual ~MetricsStateManager(); - std::unique_ptr<MetricsProvider> GetProvider(); - // Returns true if the user has consented to sending metric reports, and there // is no other reason to disable reporting. One such reason is client // sampling, and this client isn't in the sample.
diff --git a/content/app/strings/content_strings.grd b/content/app/strings/content_strings.grd index 0158c2b..ea3c1d883 100644 --- a/content/app/strings/content_strings.grd +++ b/content/app/strings/content_strings.grd
@@ -824,7 +824,10 @@ <message name="IDS_MEDIA_REMOTING_DISABLE_TEXT" desc="Media remoting disable button label."> Play on both screens </message> - <message name="IDS_MEDIA_REMOTING_CAST_TEXT" desc="Media remoting cast video text message."> + <message name="IDS_MEDIA_REMOTING_CAST_TEXT" desc="Text message shown to the user when casting a video to a known remote device."> + Now casting to <ph name="DEVICE_FRIENDLY_NAME">$1<ex>Living Room TV</ex></ph> + </message> + <message name="IDS_MEDIA_REMOTING_CAST_TO_UNKNOWN_DEVICE_TEXT" desc="Text message shown to the user when casting a video to an unknown remote device."> Now casting to your TV </message> <message name="IDS_MEDIA_TRACKS_NO_LABEL" desc="Menu item label for a text track that has no name specified. The number represents the track number in the list of tracks.">
diff --git a/content/browser/service_worker/service_worker_url_loader_job_unittest.cc b/content/browser/service_worker/service_worker_url_loader_job_unittest.cc index fdb5083..4079851 100644 --- a/content/browser/service_worker/service_worker_url_loader_job_unittest.cc +++ b/content/browser/service_worker/service_worker_url_loader_job_unittest.cc
@@ -13,9 +13,11 @@ #include "content/public/common/resource_response.h" #include "content/public/test/test_browser_thread_bundle.h" #include "content/public/test/test_url_loader_client.h" +#include "mojo/common/data_pipe_utils.h" #include "net/ssl/ssl_info.h" #include "net/test/cert_test_util.h" #include "net/test/test_data_directory.h" +#include "storage/browser/blob/blob_data_builder.h" #include "storage/browser/blob/blob_storage_context.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/WebKit/public/platform/modules/fetch/fetch_api_request.mojom.h" @@ -31,6 +33,65 @@ } // namespace +// Helper simulates a service worker handling fetch events. The response can be +// customized via RespondWith* functions. +class Helper : public EmbeddedWorkerTestHelper { + public: + Helper() : EmbeddedWorkerTestHelper(base::FilePath()) {} + ~Helper() override = default; + + // Tells this helper to respond to fetch events with the specified blob. + void RespondWithBlob(const std::string blob_uuid, uint64_t blob_size) { + response_mode_ = ResponseMode::kBlob; + blob_uuid_ = blob_uuid; + blob_size_ = blob_size; + } + + protected: + void OnFetchEvent( + int embedded_worker_id, + int fetch_event_id, + const ServiceWorkerFetchRequest& request, + mojom::FetchEventPreloadHandlePtr preload_handle, + mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, + FetchCallback finish_callback) override { + switch (response_mode_) { + case ResponseMode::kDefault: + EmbeddedWorkerTestHelper::OnFetchEvent( + embedded_worker_id, fetch_event_id, request, + std::move(preload_handle), std::move(response_callback), + std::move(finish_callback)); + return; + case ResponseMode::kBlob: + response_callback->OnResponse( + ServiceWorkerResponse( + base::MakeUnique<std::vector<GURL>>(), 200, "OK", + blink::mojom::FetchResponseType::kDefault, + base::MakeUnique<ServiceWorkerHeaderMap>(), blob_uuid_, + blob_size_, nullptr /* blob */, + blink::kWebServiceWorkerResponseErrorUnknown, base::Time(), + false /* response_is_in_cache_storage */, + std::string() /* response_cache_storage_cache_name */, + base::MakeUnique< + ServiceWorkerHeaderList>() /* cors_exposed_header_names */), + base::Time::Now()); + std::move(finish_callback).Run(SERVICE_WORKER_OK, base::Time::Now()); + return; + } + NOTREACHED(); + } + + private: + enum class ResponseMode { kDefault, kBlob }; + ResponseMode response_mode_ = ResponseMode::kDefault; + + // For ResponseMode::kBlob. + std::string blob_uuid_; + uint64_t blob_size_ = 0; + + DISALLOW_COPY_AND_ASSIGN(Helper); +}; + // ServiceWorkerURLLoaderJobTest is for testing the handling of requests // by a service worker via ServiceWorkerURLLoaderJob. // @@ -48,7 +109,7 @@ public: ServiceWorkerURLLoaderJobTest() : thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP), - helper_(base::MakeUnique<EmbeddedWorkerTestHelper>(base::FilePath())) {} + helper_(base::MakeUnique<Helper>()) {} ~ServiceWorkerURLLoaderJobTest() override = default; void SetUp() override { @@ -77,8 +138,6 @@ CreateReceiverOnCurrentThread(&status)); base::RunLoop().RunUntilIdle(); ASSERT_EQ(SERVICE_WORKER_OK, status); - - // TODO(falken): Also setup blob_context_ for tests that will need it. } ServiceWorkerStorage* storage() { return helper_->context()->storage(); } @@ -87,6 +146,46 @@ return blob_context_.AsWeakPtr(); } + // Performs a request. When this returns, |client_| will have information + // about the response. + void TestRequest() { + ResourceRequest request; + request.url = GURL("https://www.example.com/"); + request.method = "GET"; + + // Start a ServiceWorkerURLLoaderJob. It should return a + // StartLoaderCallback. + StartLoaderCallback callback; + auto job = base::MakeUnique<ServiceWorkerURLLoaderJob>( + base::BindOnce(&ReceiveStartLoaderCallback, &callback), this, request, + GetBlobStorageContext()); + job->ForwardToServiceWorker(); + base::RunLoop().RunUntilIdle(); + // TODO(falken): When fallback to network tests are added, + // callback can be null. In that case this function should return cleanly + // and somehow tell the caller we're falling back to network. + EXPECT_FALSE(callback.is_null()); + + // Start the loader. It will load |request.url|. + mojom::URLLoaderPtr loader; + std::move(callback).Run(mojo::MakeRequest(&loader), + client_.CreateInterfacePtr()); + client_.RunUntilComplete(); + } + + void ExpectFetchedViaServiceWorker(const ResourceResponseHead& info) { + EXPECT_TRUE(info.was_fetched_via_service_worker); + EXPECT_FALSE(info.was_fallback_required_by_service_worker); + EXPECT_TRUE(info.url_list_via_service_worker.empty()); + EXPECT_EQ(blink::mojom::FetchResponseType::kDefault, + info.response_type_via_service_worker); + // TODO(falken): start and ready time should be set. + EXPECT_TRUE(info.service_worker_start_time.is_null()); + EXPECT_TRUE(info.service_worker_ready_time.is_null()); + EXPECT_FALSE(info.is_in_cache_storage); + EXPECT_EQ(std::string(), info.cache_storage_cache_name); + } + protected: // ServiceWorkerURLLoaderJob::Delegate -------------------------------------- void OnPrepareToRestart() override {} @@ -105,47 +204,45 @@ // -------------------------------------------------------------------------- TestBrowserThreadBundle thread_bundle_; - std::unique_ptr<EmbeddedWorkerTestHelper> helper_; + std::unique_ptr<Helper> helper_; scoped_refptr<ServiceWorkerRegistration> registration_; scoped_refptr<ServiceWorkerVersion> version_; storage::BlobStorageContext blob_context_; + TestURLLoaderClient client_; }; TEST_F(ServiceWorkerURLLoaderJobTest, Basic) { - ResourceRequest request; - request.url = GURL("https://www.example.com/"); - request.method = "GET"; - - // Start a ServiceWorkerURLLoaderJob. It should return a StartLoaderCallback. - StartLoaderCallback callback; - auto job = base::MakeUnique<ServiceWorkerURLLoaderJob>( - base::BindOnce(&ReceiveStartLoaderCallback, &callback), this, request, - GetBlobStorageContext()); - job->ForwardToServiceWorker(); - base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(callback.is_null()); - - // Start the loader. It will load the URL. - TestURLLoaderClient client; - mojom::URLLoaderPtr loader; - std::move(callback).Run(mojo::MakeRequest(&loader), - client.CreateInterfacePtr()); - client.RunUntilComplete(); - EXPECT_EQ(net::OK, client.completion_status().error_code); - - // The URL should have loaded successfully via service worker. - const ResourceResponseHead& info = client.response_head(); + TestRequest(); + EXPECT_EQ(net::OK, client_.completion_status().error_code); + const ResourceResponseHead& info = client_.response_head(); EXPECT_EQ(200, info.headers->response_code()); - EXPECT_TRUE(info.was_fetched_via_service_worker); - EXPECT_FALSE(info.was_fallback_required_by_service_worker); - EXPECT_TRUE(info.url_list_via_service_worker.empty()); - EXPECT_EQ(blink::mojom::FetchResponseType::kDefault, - info.response_type_via_service_worker); - // TODO(falken): start and ready time should be set. - EXPECT_TRUE(info.service_worker_start_time.is_null()); - EXPECT_TRUE(info.service_worker_ready_time.is_null()); - EXPECT_FALSE(info.is_in_cache_storage); - EXPECT_EQ(std::string(), info.cache_storage_cache_name); + ExpectFetchedViaServiceWorker(info); } +TEST_F(ServiceWorkerURLLoaderJobTest, BlobResponse) { + // Construct the blob to respond with. + const std::string kResponseBody = "Here is sample text for the blob."; + auto blob_data = base::MakeUnique<storage::BlobDataBuilder>("blob-id:myblob"); + blob_data->AppendData(kResponseBody); + std::unique_ptr<storage::BlobDataHandle> blob_handle = + blob_context_.AddFinishedBlob(blob_data.get()); + helper_->RespondWithBlob(blob_handle->uuid(), blob_handle->size()); + + // Perform the request. + TestRequest(); + const ResourceResponseHead& info = client_.response_head(); + EXPECT_EQ(200, info.headers->response_code()); + ExpectFetchedViaServiceWorker(info); + + // Test the body. + std::string response; + EXPECT_TRUE(client_.response_body().is_valid()); + EXPECT_TRUE(mojo::common::BlockingCopyToString( + client_.response_body_release(), &response)); + EXPECT_EQ(kResponseBody, response); +} + +// TODO(falken): Add tests for stream response, network fallback, etc. Basically +// everything in ServiceWorkerURLRequestJobTest. + } // namespace content
diff --git a/content/browser/service_worker/service_worker_url_request_job_unittest.cc b/content/browser/service_worker/service_worker_url_request_job_unittest.cc index 94d867b..ee3a0cb3 100644 --- a/content/browser/service_worker/service_worker_url_request_job_unittest.cc +++ b/content/browser/service_worker/service_worker_url_request_job_unittest.cc
@@ -788,7 +788,7 @@ : EmbeddedWorkerTestHelper(base::FilePath()), blob_uuid_(blob_uuid), blob_size_(blob_size) {} - ~BlobResponder() override {} + ~BlobResponder() override = default; protected: void OnFetchEvent(
diff --git a/content/child/blink_platform_impl.cc b/content/child/blink_platform_impl.cc index a82b4d08..c61fe81c 100644 --- a/content/child/blink_platform_impl.cc +++ b/content/child/blink_platform_impl.cc
@@ -191,6 +191,8 @@ return IDS_MEDIA_REMOTING_DISABLE_TEXT; case WebLocalizedString::kMediaRemotingCastText: return IDS_MEDIA_REMOTING_CAST_TEXT; + case WebLocalizedString::kMediaRemotingCastToUnknownDeviceText: + return IDS_MEDIA_REMOTING_CAST_TO_UNKNOWN_DEVICE_TEXT; case WebLocalizedString::kMultipleFileUploadText: return IDS_FORM_FILE_MULTIPLE_UPLOAD; case WebLocalizedString::kOtherColorLabel:
diff --git a/content/common/service_worker/service_worker_types.h b/content/common/service_worker/service_worker_types.h index 0cc29de..6b73559ac 100644 --- a/content/common/service_worker/service_worker_types.h +++ b/content/common/service_worker/service_worker_types.h
@@ -162,6 +162,7 @@ // ServiceWorkerFetchResponseCallback. std::string blob_uuid; uint64_t blob_size; + // |blob| is only used when features::kMojoBlobs is enabled. scoped_refptr<storage::BlobHandle> blob; blink::WebServiceWorkerResponseError error; base::Time response_time;
diff --git a/content/renderer/media/webmediaplayer_ms_unittest.cc b/content/renderer/media/webmediaplayer_ms_unittest.cc index 49b1748..d559eff 100644 --- a/content/renderer/media/webmediaplayer_ms_unittest.cc +++ b/content/renderer/media/webmediaplayer_ms_unittest.cc
@@ -522,6 +522,10 @@ blink::WebMediaPlayer::DisplayType DisplayType() const override { return blink::WebMediaPlayer::DisplayType::kInline; } + void ActivateViewportIntersectionMonitoring(bool activate) override {} + void MediaRemotingStarted( + const blink::WebString& remote_device_friendly_name) override {} + void MediaRemotingStopped() override {} // Implementation of cc::VideoFrameProvider::Client void StopUsingProvider() override;
diff --git a/extensions/browser/app_window/app_window_client.cc b/extensions/browser/app_window/app_window_client.cc index 4b71b96..fcbce73 100644 --- a/extensions/browser/app_window/app_window_client.cc +++ b/extensions/browser/app_window/app_window_client.cc
@@ -4,12 +4,13 @@ #include "extensions/browser/app_window/app_window_client.h" +#include "base/logging.h" namespace extensions { namespace { -AppWindowClient* g_client = NULL; +AppWindowClient* g_client = nullptr; } // namespace @@ -18,9 +19,16 @@ } void AppWindowClient::Set(AppWindowClient* client) { - // This can happen in unit tests, where the utility thread runs in-process. - if (g_client) + // Unit tests that set the AppWindowClient should clear it afterward. + if (g_client && client) { + // Rarely, a test may run multiple BrowserProcesses in a single process: + // crbug.com/751242. This will lead to redundant calls, but the pointers + // should at least be the same. + DCHECK_EQ(g_client, client) + << "AppWindowClient::Set called with different non-null pointers twice " + << "in a row. A previous test may have set this without clearing it."; return; + } g_client = client; }
diff --git a/extensions/shell/browser/shell_native_app_window_aura_unittest.cc b/extensions/shell/browser/shell_native_app_window_aura_unittest.cc index cd9523d..f4297ff7d 100644 --- a/extensions/shell/browser/shell_native_app_window_aura_unittest.cc +++ b/extensions/shell/browser/shell_native_app_window_aura_unittest.cc
@@ -29,7 +29,7 @@ AppWindowClient::Set(&app_window_client_); } - ~ShellNativeAppWindowAuraTest() override {} + ~ShellNativeAppWindowAuraTest() override { AppWindowClient::Set(nullptr); } protected: ShellAppWindowClient app_window_client_;
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json index 89a64a8..0c69f98 100644 --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json
@@ -1,6 +1,6 @@ { "name": "gpu driver bug list", - "version": "10.23", + "version": "10.24", "entries": [ { "id": 1, @@ -2573,6 +2573,19 @@ "features": [ "dont_disable_webgl_when_compositor_context_lost" ] + }, + { + "id": 238, + "description": "On Intel GPUs MSAA performance is not acceptable for GPU rasterization", + "cr_bugs": [527565, 751919], + "os": { + "type": "macosx" + }, + "vendor_id": "0x8086", + "multi_gpu_category": "any", + "features": [ + "msaa_is_slow" + ] } ], "comment": [
diff --git a/ios/chrome/today_extension/today_metrics_logger.h b/ios/chrome/today_extension/today_metrics_logger.h index c4d62fdf..7d93f55e 100644 --- a/ios/chrome/today_extension/today_metrics_logger.h +++ b/ios/chrome/today_extension/today_metrics_logger.h
@@ -15,6 +15,7 @@ namespace base { class SequencedWorkerPool; +class SequencedTaskRunner; } // namespace base @@ -25,6 +26,10 @@ } // namespace +class ValueMapPrefStore; +class PrefRegistrySimple; +class PrefService; + // Utility class to create metrics log that can be pushed to Chrome. The // extension creates and fills the logs with UserAction. The upload is done by // the Chrome application. @@ -51,6 +56,10 @@ bool CreateNewLog(); base::MessageLoop message_loop_; + scoped_refptr<PrefRegistrySimple> pref_registry_; + std::unique_ptr<PrefService> pref_service_; + scoped_refptr<ValueMapPrefStore> value_map_prefs_; + scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner_; std::unique_ptr<TodayMetricsLog> log_; scoped_refptr<base::SequencedWorkerPool> thread_pool_; std::unique_ptr<TodayMetricsServiceClient> metrics_service_client_;
diff --git a/ios/chrome/today_extension/today_metrics_logger.mm b/ios/chrome/today_extension/today_metrics_logger.mm index 55b210c..6d02986c 100644 --- a/ios/chrome/today_extension/today_metrics_logger.mm +++ b/ios/chrome/today_extension/today_metrics_logger.mm
@@ -84,7 +84,8 @@ TodayMetricsLog(const std::string& client_id, int session_id, LogType log_type, - TodayMetricsServiceClient* client); + TodayMetricsServiceClient* client, + PrefService* local_state); // Fills |encoded_log| with the serialized protobuf representation of the // record. Can be called even on open log. @@ -157,8 +158,13 @@ TodayMetricsLog::TodayMetricsLog(const std::string& client_id, int session_id, LogType log_type, - TodayMetricsServiceClient* client) - : metrics::MetricsLog(client_id, session_id, log_type, client) {} + TodayMetricsServiceClient* client, + PrefService* local_state) + : metrics::MetricsLog(client_id, + session_id, + log_type, + client, + local_state) {} void TodayMetricsLog::GetOpenEncodedLog(std::string* encoded_log) const { uma_proto()->SerializeToString(encoded_log); @@ -233,7 +239,8 @@ session_id, app_group::APP_GROUP_TODAY_EXTENSION); log_.reset(new TodayMetricsLog(base::SysNSStringToUTF8(client_id), session_id, metrics::MetricsLog::ONGOING_LOG, - metrics_service_client_.get())); + metrics_service_client_.get(), + pref_service_.get())); metrics::DelegatingProvider delegating_provider; log_->RecordEnvironment(&delegating_provider, [install_date longLongValue], @@ -243,12 +250,25 @@ } TodayMetricsLogger::TodayMetricsLogger() - : thread_pool_( + : pref_registry_(new PrefRegistrySimple()), + thread_pool_( new base::SequencedWorkerPool(2, "LoggerPool", base::TaskPriority::BACKGROUND)), metrics_service_client_(new TodayMetricsServiceClient()), histogram_snapshot_manager_(this) { + metrics::MetricsLog::RegisterPrefs(pref_registry_.get()); + + NSString* url = [[NSSearchPathForDirectoriesInDomains( + NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0] + stringByAppendingPathComponent:@"Application Support/localstate"]; + base::FilePath path(base::SysNSStringToUTF8(url)); + sequenced_task_runner_ = + JsonPrefStore::GetTaskRunnerForFile(path, thread_pool_.get()); + PrefServiceFactory factory; + factory.set_extension_prefs(value_map_prefs_.get()); + factory.SetUserPrefsFile(path, sequenced_task_runner_.get()); + pref_service_ = factory.Create(pref_registry_.get()); base::StatisticsRecorder::Initialize(); }
diff --git a/media/base/media_observer.h b/media/base/media_observer.h index 5037c853..db8eee4 100644 --- a/media/base/media_observer.h +++ b/media/base/media_observer.h
@@ -16,10 +16,12 @@ virtual ~MediaObserverClient() {} // Requests to restart the media pipeline and create a new renderer as soon as - // possible. |is_rendered_remotely| indicates whether the media is rendered - // remotely. When it is true, all the optimizations that might suspend the - // media pipeline should be disabled. - virtual void SwitchRenderer(bool is_rendered_remotely) = 0; + // possible. When switching to remote renderer, all the optimizations that + // might suspend the media pipeline should be disabled. + // |remote_device_friendly_name| can be empty if the remote device is unknown. + virtual void SwitchToRemoteRenderer( + const std::string& remote_device_friendly_name) = 0; + virtual void SwitchToLocalRenderer() = 0; // Requests to activate monitoring changes on viewport intersection. virtual void ActivateViewportIntersectionMonitoring(bool activate) = 0;
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc index 60f924e..653f049 100644 --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc
@@ -2641,18 +2641,30 @@ time_to_first_frame); } } -void WebMediaPlayerImpl::SwitchRenderer(bool is_rendered_remotely) { + +void WebMediaPlayerImpl::SwitchToRemoteRenderer( + const std::string& remote_device_friendly_name) { DCHECK(main_task_runner_->BelongsToCurrentThread()); - disable_pipeline_auto_suspend_ = is_rendered_remotely; + disable_pipeline_auto_suspend_ = true; + // Requests to restart media pipeline. A remote renderer will be created via + // the |renderer_factory_selector_|. ScheduleRestart(); if (client_) { - if (is_rendered_remotely) - client_->MediaRemotingStarted(); - else - client_->MediaRemotingStopped(); + client_->MediaRemotingStarted( + WebString::FromUTF8(remote_device_friendly_name)); } } +void WebMediaPlayerImpl::SwitchToLocalRenderer() { + DCHECK(main_task_runner_->BelongsToCurrentThread()); + disable_pipeline_auto_suspend_ = false; + // Requests to restart media pipeline. A local renderer will be created via + // the |renderer_factory_selector_|. + ScheduleRestart(); + if (client_) + client_->MediaRemotingStopped(); +} + void WebMediaPlayerImpl::RecordUnderflowDuration(base::TimeDelta duration) { DCHECK(data_source_ || chunk_demuxer_);
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h index 1097de4..ae9c104 100644 --- a/media/blink/webmediaplayer_impl.h +++ b/media/blink/webmediaplayer_impl.h
@@ -229,7 +229,9 @@ #endif // MediaObserverClient implementation. - void SwitchRenderer(bool is_rendered_remotely) override; + void SwitchToRemoteRenderer( + const std::string& remote_device_friendly_name) override; + void SwitchToLocalRenderer() override; void ActivateViewportIntersectionMonitoring(bool activate) override; void UpdateRemotePlaybackCompatibility(bool is_compatible) override;
diff --git a/media/blink/webmediaplayer_impl_unittest.cc b/media/blink/webmediaplayer_impl_unittest.cc index d39ff97..d60ec4a 100644 --- a/media/blink/webmediaplayer_impl_unittest.cc +++ b/media/blink/webmediaplayer_impl_unittest.cc
@@ -110,6 +110,10 @@ blink::WebMediaPlayer::DisplayType DisplayType() const override { return blink::WebMediaPlayer::DisplayType::kInline; } + void ActivateViewportIntersectionMonitoring(bool activate) override {} + void MediaRemotingStarted( + const blink::WebString& remote_device_friendly_name) override {} + void MediaRemotingStopped() override {} void set_is_autoplaying_muted(bool value) { is_autoplaying_muted_ = value; }
diff --git a/media/remoting/renderer_controller.cc b/media/remoting/renderer_controller.cc index 8b3dd5ee..362d863 100644 --- a/media/remoting/renderer_controller.cc +++ b/media/remoting/renderer_controller.cc
@@ -44,7 +44,7 @@ DCHECK(thread_checker_.CalledOnValidThread()); if (remote_rendering_started_) { DCHECK(client_); - client_->SwitchRenderer(false); + client_->SwitchToLocalRenderer(); } metrics_recorder_.WillStopSession(MEDIA_ELEMENT_DESTROYED); session_->RemoveClient(this); @@ -57,7 +57,7 @@ if (remote_rendering_started_) { metrics_recorder_.DidStartSession(); DCHECK(client_); - client_->SwitchRenderer(true); + client_->SwitchToRemoteRenderer(session_->sink_name()); } else { session_->StopRemoting(this); } @@ -398,7 +398,7 @@ DCHECK(!is_encrypted_); DCHECK_NE(stop_trigger, UNKNOWN_STOP_TRIGGER); metrics_recorder_.WillStopSession(stop_trigger); - client_->SwitchRenderer(false); + client_->SwitchToLocalRenderer(); VLOG(2) << "Request to stop remoting: stop_trigger=" << stop_trigger; session_->StopRemoting(this); } @@ -455,13 +455,13 @@ DCHECK(client_); remote_rendering_started_ = true; if (session_->state() == SharedSession::SESSION_PERMANENTLY_STOPPED) { - client_->SwitchRenderer(true); + client_->SwitchToRemoteRenderer(session_->sink_name()); return; } DCHECK_NE(start_trigger, UNKNOWN_START_TRIGGER); metrics_recorder_.WillStartSession(start_trigger); - // |MediaObserverClient::SwitchRenderer()| will be called after remoting is - // started successfully. + // |MediaObserverClient::SwitchToRemoteRenderer()| will be called after + // remoting is started successfully. session_->StartRemoting(this); }
diff --git a/media/remoting/renderer_controller_unittest.cc b/media/remoting/renderer_controller_unittest.cc index 417c5a6..77e80da 100644 --- a/media/remoting/renderer_controller_unittest.cc +++ b/media/remoting/renderer_controller_unittest.cc
@@ -42,6 +42,8 @@ return data; } +const std::string kDefaultReceiver = "TestingChromeCast"; + mojom::RemotingSinkMetadata GetDefaultSinkMetadata(bool enable) { mojom::RemotingSinkMetadata metadata; if (enable) { @@ -54,6 +56,7 @@ mojom::RemotingSinkVideoCapability::CODEC_VP8); metadata.audio_capabilities.push_back( mojom::RemotingSinkAudioCapability::CODEC_BASELINE_SET); + metadata.friendly_name = kDefaultReceiver; return metadata; } @@ -75,10 +78,17 @@ static void RunUntilIdle() { base::RunLoop().RunUntilIdle(); } // MediaObserverClient implementation. - void SwitchRenderer(bool disable_pipeline_auto_suspend) override { - is_rendering_remotely_ = disable_pipeline_auto_suspend; - disable_pipeline_suspend_ = disable_pipeline_auto_suspend; - decoded_bytes_ = 0; + void SwitchToRemoteRenderer( + const std::string& remote_device_friendly_name) override { + is_rendering_remotely_ = true; + disable_pipeline_suspend_ = true; + sink_name_ = remote_device_friendly_name; + } + + void SwitchToLocalRenderer() override { + is_rendering_remotely_ = false; + disable_pipeline_suspend_ = false; + sink_name_.clear(); } void ActivateViewportIntersectionMonitoring(bool activate) override { @@ -98,6 +108,7 @@ const PipelineMetadata& pipeline_metadata, const mojom::RemotingSinkMetadata& sink_metadata) { EXPECT_FALSE(is_rendering_remotely_); + EXPECT_TRUE(sink_name_.empty()); controller_ = base::MakeUnique<RendererController>(shared_session); clock_ = new base::SimpleTestTickClock(); controller_->clock_.reset(clock_); @@ -127,7 +138,7 @@ RunUntilIdle(); } - bool IsInDelayedStart() { + bool IsInDelayedStart() const { return controller_->delayed_start_stability_timer_.IsRunning(); } @@ -148,16 +159,40 @@ controller_->delayed_start_stability_timer_.Stop(); } + void ExpectInDelayedStart() const { + EXPECT_FALSE(is_rendering_remotely_); + EXPECT_FALSE(disable_pipeline_suspend_); + EXPECT_TRUE(sink_name_.empty()); + EXPECT_TRUE(IsInDelayedStart()); + EXPECT_TRUE(activate_viewport_intersection_monitoring_); + } + + void ExpectInRemoting() const { + EXPECT_TRUE(is_rendering_remotely_); + EXPECT_TRUE(disable_pipeline_suspend_); + EXPECT_EQ(kDefaultReceiver, sink_name_); + EXPECT_FALSE(IsInDelayedStart()); + EXPECT_TRUE(activate_viewport_intersection_monitoring_); + } + + void ExpectInLocalRendering() const { + EXPECT_FALSE(is_rendering_remotely_); + EXPECT_FALSE(disable_pipeline_suspend_); + EXPECT_TRUE(sink_name_.empty()); + EXPECT_FALSE(IsInDelayedStart()); + } + base::MessageLoop message_loop_; protected: - std::unique_ptr<RendererController> controller_; bool is_rendering_remotely_ = false; bool is_remoting_cdm_ = false; bool activate_viewport_intersection_monitoring_ = false; bool disable_pipeline_suspend_ = false; size_t decoded_bytes_ = 0; base::SimpleTestTickClock* clock_; // Own by |controller_|; + std::string sink_name_; + std::unique_ptr<RendererController> controller_; private: DISALLOW_COPY_AND_ASSIGN(RendererControllerTest); @@ -169,19 +204,14 @@ InitializeControllerAndBecomeDominant(shared_session, DefaultMetadata(VideoCodec::kCodecVP8), GetDefaultSinkMetadata(true)); - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_TRUE(IsInDelayedStart()); DelayedStartEnds(false); RunUntilIdle(); - EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. - EXPECT_TRUE(disable_pipeline_suspend_); + ExpectInRemoting(); // All requirements now satisfied. // Leaving fullscreen should shut down remoting. controller_->OnBecameDominantVisibleContent(false); RunUntilIdle(); - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(disable_pipeline_suspend_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); + ExpectInLocalRendering(); } TEST_F(RendererControllerTest, StartFailedWithTooHighBitrate) { @@ -200,7 +230,6 @@ } TEST_F(RendererControllerTest, ToggleRendererOnSinkCapabilities) { - EXPECT_FALSE(is_rendering_remotely_); const scoped_refptr<SharedSession> shared_session = FakeRemoterFactory::CreateSharedSession(false); InitializeControllerAndBecomeDominant(shared_session, @@ -208,13 +237,10 @@ GetDefaultSinkMetadata(false)); // An available sink that does not support remote rendering should not cause // the controller to toggle remote rendering on. - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); + ExpectInLocalRendering(); shared_session->OnSinkGone(); // Bye-bye useless sink! RunUntilIdle(); - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); - EXPECT_FALSE(disable_pipeline_suspend_); + ExpectInLocalRendering(); // A sink that *does* support remote rendering *does* cause the controller to // toggle remote rendering on. shared_session->OnSinkAvailable(GetDefaultSinkMetadata(true).Clone()); @@ -223,13 +249,10 @@ EXPECT_FALSE(is_rendering_remotely_); controller_->OnBecameDominantVisibleContent(true); RunUntilIdle(); - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(disable_pipeline_suspend_); - EXPECT_TRUE(IsInDelayedStart()); + ExpectInDelayedStart(); DelayedStartEnds(false); RunUntilIdle(); - EXPECT_TRUE(is_rendering_remotely_); - EXPECT_TRUE(disable_pipeline_suspend_); + ExpectInRemoting(); // All requirements now satisfied. } TEST_F(RendererControllerTest, ToggleRendererOnDisableChange) { @@ -239,20 +262,16 @@ InitializeControllerAndBecomeDominant(shared_session, DefaultMetadata(VideoCodec::kCodecVP8), GetDefaultSinkMetadata(true)); - EXPECT_TRUE(activate_viewport_intersection_monitoring_); - EXPECT_TRUE(IsInDelayedStart()); + ExpectInDelayedStart(); DelayedStartEnds(false); RunUntilIdle(); - EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. - EXPECT_TRUE(disable_pipeline_suspend_); + ExpectInRemoting(); // All requirements now satisfied. // If the page disables remote playback (e.g., by setting the // disableRemotePlayback attribute), this should shut down remoting. controller_->OnRemotePlaybackDisabled(true); RunUntilIdle(); - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); - EXPECT_FALSE(disable_pipeline_suspend_); + ExpectInLocalRendering(); } TEST_F(RendererControllerTest, WithVP9VideoCodec) { @@ -263,9 +282,7 @@ GetDefaultSinkMetadata(true)); // An available sink that does not support VP9 video codec should not cause // the controller to toggle remote rendering on. - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(disable_pipeline_suspend_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); + ExpectInLocalRendering(); shared_session->OnSinkGone(); // Bye-bye useless sink! mojom::RemotingSinkMetadata sink_metadata = GetDefaultSinkMetadata(true); @@ -275,12 +292,10 @@ // toggle remote rendering on. shared_session->OnSinkAvailable(sink_metadata.Clone()); RunUntilIdle(); - EXPECT_TRUE(IsInDelayedStart()); + ExpectInDelayedStart(); DelayedStartEnds(false); RunUntilIdle(); - EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. - EXPECT_TRUE(activate_viewport_intersection_monitoring_); - EXPECT_TRUE(disable_pipeline_suspend_); + ExpectInRemoting(); // All requirements now satisfied. } TEST_F(RendererControllerTest, WithHEVCVideoCodec) { @@ -291,15 +306,11 @@ GetDefaultSinkMetadata(true)); // An available sink that does not support HEVC video codec should not cause // the controller to toggle remote rendering on. - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); - EXPECT_FALSE(disable_pipeline_suspend_); + ExpectInLocalRendering(); shared_session->OnSinkGone(); // Bye-bye useless sink! RunUntilIdle(); - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); - EXPECT_FALSE(disable_pipeline_suspend_); + ExpectInLocalRendering(); mojom::RemotingSinkMetadata sink_metadata = GetDefaultSinkMetadata(true); sink_metadata.video_capabilities.push_back( mojom::RemotingSinkVideoCapability::CODEC_HEVC); @@ -307,12 +318,10 @@ // toggle remote rendering on. shared_session->OnSinkAvailable(sink_metadata.Clone()); RunUntilIdle(); - EXPECT_TRUE(IsInDelayedStart()); + ExpectInDelayedStart(); DelayedStartEnds(false); RunUntilIdle(); - EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. - EXPECT_TRUE(activate_viewport_intersection_monitoring_); - EXPECT_TRUE(disable_pipeline_suspend_); + ExpectInRemoting(); // All requirements now satisfied. } TEST_F(RendererControllerTest, WithAACAudioCodec) { @@ -327,14 +336,11 @@ GetDefaultSinkMetadata(true)); // An available sink that does not support AAC audio codec should not cause // the controller to toggle remote rendering on. - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(disable_pipeline_suspend_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); + ExpectInLocalRendering(); shared_session->OnSinkGone(); // Bye-bye useless sink! RunUntilIdle(); - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(disable_pipeline_suspend_); + ExpectInLocalRendering(); mojom::RemotingSinkMetadata sink_metadata = GetDefaultSinkMetadata(true); sink_metadata.audio_capabilities.push_back( mojom::RemotingSinkAudioCapability::CODEC_AAC); @@ -342,12 +348,10 @@ // toggle remote rendering on. shared_session->OnSinkAvailable(sink_metadata.Clone()); RunUntilIdle(); - EXPECT_TRUE(IsInDelayedStart()); + ExpectInDelayedStart(); DelayedStartEnds(false); RunUntilIdle(); - EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. - EXPECT_TRUE(activate_viewport_intersection_monitoring_); - EXPECT_TRUE(disable_pipeline_suspend_); + ExpectInRemoting(); // All requirements now satisfied. } TEST_F(RendererControllerTest, WithOpusAudioCodec) { @@ -362,9 +366,7 @@ GetDefaultSinkMetadata(true)); // An available sink that does not support Opus audio codec should not cause // the controller to toggle remote rendering on. - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(activate_viewport_intersection_monitoring_); - EXPECT_FALSE(disable_pipeline_suspend_); + ExpectInLocalRendering(); shared_session->OnSinkGone(); // Bye-bye useless sink! RunUntilIdle(); @@ -375,12 +377,10 @@ // toggle remote rendering on. shared_session->OnSinkAvailable(sink_metadata.Clone()); RunUntilIdle(); - EXPECT_TRUE(IsInDelayedStart()); + ExpectInDelayedStart(); DelayedStartEnds(false); RunUntilIdle(); - EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. - EXPECT_TRUE(activate_viewport_intersection_monitoring_); - EXPECT_TRUE(disable_pipeline_suspend_); + ExpectInRemoting(); // All requirements now satisfied. } TEST_F(RendererControllerTest, StartFailed) { @@ -390,11 +390,10 @@ DefaultMetadata(VideoCodec::kCodecVP8), GetDefaultSinkMetadata(true)); RunUntilIdle(); - EXPECT_TRUE(IsInDelayedStart()); + ExpectInDelayedStart(); DelayedStartEnds(false); RunUntilIdle(); - EXPECT_FALSE(is_rendering_remotely_); - EXPECT_FALSE(disable_pipeline_suspend_); + ExpectInLocalRendering(); } TEST_F(RendererControllerTest, EncryptedWithRemotingCdm) {
diff --git a/media/remoting/shared_session.h b/media/remoting/shared_session.h index 3db7023..4711071 100644 --- a/media/remoting/shared_session.h +++ b/media/remoting/shared_session.h
@@ -83,6 +83,8 @@ return state_; } + const std::string& sink_name() const { return sink_metadata_.friendly_name; } + // Queries on remoting sink capabilities. bool HasVideoCapability(mojom::RemotingSinkVideoCapability capability) const; bool HasAudioCapability(mojom::RemotingSinkAudioCapability capability) const;
diff --git a/net/BUILD.gn b/net/BUILD.gn index 3c3dc66..95c0a91 100644 --- a/net/BUILD.gn +++ b/net/BUILD.gn
@@ -1041,8 +1041,6 @@ "ntlm/ntlm_buffer_reader.h", "ntlm/ntlm_buffer_writer.cc", "ntlm/ntlm_buffer_writer.h", - "ntlm/ntlm_client.cc", - "ntlm/ntlm_client.h", "ntlm/ntlm_constants.h", "proxy/dhcp_proxy_script_adapter_fetcher_win.cc", "proxy/dhcp_proxy_script_adapter_fetcher_win.h", @@ -1799,8 +1797,6 @@ "ntlm/ntlm_buffer_reader.h", "ntlm/ntlm_buffer_writer.cc", "ntlm/ntlm_buffer_writer.h", - "ntlm/ntlm_client.cc", - "ntlm/ntlm_client.h", "ntlm/ntlm_constants.h", ] } @@ -3537,6 +3533,9 @@ "data/parse_certificate_unittest/policy_qualifiers_empty_sequence.pem", "data/parse_certificate_unittest/serial_37_bytes.pem", "data/parse_certificate_unittest/serial_negative.pem", + "data/parse_certificate_unittest/serial_not_minimal.pem", + "data/parse_certificate_unittest/serial_not_number.pem", + "data/parse_certificate_unittest/serial_zero.pem", "data/parse_certificate_unittest/serial_zero_padded.pem", "data/parse_certificate_unittest/serial_zero_padded_21_bytes.pem", "data/parse_certificate_unittest/signature_algorithm_null.pem", @@ -4899,7 +4898,6 @@ "ntlm/des_unittest.cc", "ntlm/ntlm_buffer_reader_unittest.cc", "ntlm/ntlm_buffer_writer_unittest.cc", - "ntlm/ntlm_client_unittest.cc", "ntlm/ntlm_test_data.h", "ntlm/ntlm_unittest.cc", "proxy/dhcp_proxy_script_adapter_fetcher_win_unittest.cc", @@ -5318,7 +5316,6 @@ "ntlm/des_unittest.cc", "ntlm/ntlm_buffer_reader_unittest.cc", "ntlm/ntlm_buffer_writer_unittest.cc", - "ntlm/ntlm_client_unittest.cc", "ntlm/ntlm_test_data.h", "ntlm/ntlm_unittest.cc", ] @@ -5881,21 +5878,6 @@ dict = "data/fuzzer_dictionaries/net_http_stream_parser_fuzzer.dict" } -fuzzer_test("net_ntlm_ntlm_client_fuzzer") { - sources = [ - "ntlm/ntlm_client_fuzzer.cc", - ] - deps = [ - ":net_fuzzer_test_support", - ":test_support", - "//base", - "//net", - "//net:net_unittests", - ] - dict = "data/fuzzer_dictionaries/net_ntlm_ntlm_client_fuzzer.dict" - seed_corpus = "data/fuzzer_data/ntlm_client_fuzzer/" -} - if (!disable_brotli_filter) { fuzzer_test("net_brotli_source_stream_fuzzer") { sources = [
diff --git a/net/cert/internal/parse_certificate.cc b/net/cert/internal/parse_certificate.cc index 8c22ae3..7f1e48c 100644 --- a/net/cert/internal/parse_certificate.cc +++ b/net/cert/internal/parse_certificate.cc
@@ -7,6 +7,7 @@ #include <utility> #include "base/strings/string_util.h" +#include "net/cert/internal/cert_error_params.h" #include "net/cert/internal/cert_errors.h" #include "net/der/input.h" #include "net/der/parse_values.h" @@ -37,7 +38,6 @@ DEFINE_CERT_ERROR_ID(kVersionExplicitlyV1, "Version explicitly V1 (should be omitted)"); DEFINE_CERT_ERROR_ID(kFailedReadingSerialNumber, "Failed reading serialNumber"); -DEFINE_CERT_ERROR_ID(kInvalidSerialNumber, "Invalid serial number"); DEFINE_CERT_ERROR_ID(kFailedReadingSignatureValue, "Failed reading signature"); DEFINE_CERT_ERROR_ID(kFailedReadingIssuer, "Failed reading issuer"); DEFINE_CERT_ERROR_ID(kFailedReadingValidity, "Failed reading validity"); @@ -62,6 +62,12 @@ "Failed reading extensions SEQUENCE"); DEFINE_CERT_ERROR_ID(kUnexpectedExtensions, "Unexpected extensions (must be V3 certificate)"); +DEFINE_CERT_ERROR_ID(kSerialNumberIsNegative, "Serial number is negative"); +DEFINE_CERT_ERROR_ID(kSerialNumberIsZero, "Serial number is zero"); +DEFINE_CERT_ERROR_ID(kSerialNumberLengthOver20, + "Serial number is longer than 20 octets"); +DEFINE_CERT_ERROR_ID(kSerialNumberNotValidInteger, + "Serial number is not a valid INTEGER"); // Returns true if |input| is a SEQUENCE and nothing else. WARN_UNUSED_RESULT bool IsSequenceTLV(const der::Input& input) { @@ -329,14 +335,40 @@ ParsedTbsCertificate::~ParsedTbsCertificate() {} -bool VerifySerialNumber(const der::Input& value) { - bool unused_negative; - if (!der::IsValidInteger(value, &unused_negative)) - return false; +bool VerifySerialNumber(const der::Input& value, + bool warnings_only, + CertErrors* errors) { + // If |warnings_only| was set to true, the exact same errors will be logged, + // only they will be logged with a lower severity (warning rather than error). + CertError::Severity error_severity = + warnings_only ? CertError::SEVERITY_WARNING : CertError::SEVERITY_HIGH; - // Check if the serial number is too long per RFC 5280. - if (value.Length() > 20) + bool negative; + if (!der::IsValidInteger(value, &negative)) { + errors->Add(error_severity, kSerialNumberNotValidInteger, nullptr); return false; + } + + // RFC 5280 section 4.1.2.2: + // + // Note: Non-conforming CAs may issue certificates with serial numbers + // that are negative or zero. Certificate users SHOULD be prepared to + // gracefully handle such certificates. + if (negative) + errors->AddWarning(kSerialNumberIsNegative); + if (value.Length() == 1 && value.UnsafeData()[0] == 0) + errors->AddWarning(kSerialNumberIsZero); + + // RFC 5280 section 4.1.2.2: + // + // Certificate users MUST be able to handle serialNumber values up to 20 + // octets. Conforming CAs MUST NOT use serialNumber values longer than 20 + // octets. + if (value.Length() > 20) { + errors->Add(error_severity, kSerialNumberLengthOver20, + CreateCertErrorParams1SizeT("length", value.Length())); + return false; + } return true; } @@ -464,13 +496,12 @@ errors->AddError(kFailedReadingSerialNumber); return false; } - if (!VerifySerialNumber(out->serial_number)) { - if (options.allow_invalid_serial_numbers) { - errors->AddWarning(kInvalidSerialNumber); - } else { - errors->AddError(kInvalidSerialNumber); + if (!VerifySerialNumber(out->serial_number, + options.allow_invalid_serial_numbers, errors)) { + // Invalid serial numbers are only considered fatal failures if + // |!allow_invalid_serial_numbers|. + if (!options.allow_invalid_serial_numbers) return false; - } } // signature AlgorithmIdentifier,
diff --git a/net/cert/internal/parse_certificate.h b/net/cert/internal/parse_certificate.h index 729cbfaf..58b2ec1 100644 --- a/net/cert/internal/parse_certificate.h +++ b/net/cert/internal/parse_certificate.h
@@ -46,7 +46,13 @@ // Note: Non-conforming CAs may issue certificates with serial numbers // that are negative or zero. Certificate users SHOULD be prepared to // gracefully handle such certificates. -NET_EXPORT bool VerifySerialNumber(const der::Input& value) WARN_UNUSED_RESULT; +// +// |errors| must be a non-null destination for any errors/warnings. If +// |warnings_only| is set to true, then what would ordinarily be errors are +// instead added as warnings. +NET_EXPORT bool VerifySerialNumber(const der::Input& value, + bool warnings_only, + CertErrors* errors) WARN_UNUSED_RESULT; struct NET_EXPORT ParseCertificateOptions { // If set to true, then parsing will skip checks on the certificate's serial
diff --git a/net/cert/internal/parse_ocsp.cc b/net/cert/internal/parse_ocsp.cc index f144ad70..4df38aee 100644 --- a/net/cert/internal/parse_ocsp.cc +++ b/net/cert/internal/parse_ocsp.cc
@@ -62,7 +62,8 @@ return false; if (!parser.ReadTag(der::kInteger, &(out->serial_number))) return false; - if (!VerifySerialNumber(out->serial_number)) + CertErrors errors; + if (!VerifySerialNumber(out->serial_number, false /*warnings_only*/, &errors)) return false; return !parser.HasMore();
diff --git a/net/cert/internal/parsed_certificate_unittest.cc b/net/cert/internal/parsed_certificate_unittest.cc index ac4005e..2012ef17 100644 --- a/net/cert/internal/parsed_certificate_unittest.cc +++ b/net/cert/internal/parsed_certificate_unittest.cc
@@ -509,6 +509,32 @@ EXPECT_EQ(der::Input(expected_serial), cert->tbs().serial_number); } +// Tests a serial number which is zero. RFC 5280 says they should be positive, +// however also recommends supporting non-positive ones, so parsing here +// is expected to succeed. +TEST(ParsedCertificateTest, SerialNumberZero) { + scoped_refptr<ParsedCertificate> cert = + ParseCertificateFromFile("serial_zero.pem", {}); + ASSERT_TRUE(cert); + + static const uint8_t expected_serial[] = {0x00}; + EXPECT_EQ(der::Input(expected_serial), cert->tbs().serial_number); +} + +// Tests a serial number which not a number (NULL). +TEST(ParsedCertificateTest, SerialNotNumber) { + scoped_refptr<ParsedCertificate> cert = + ParseCertificateFromFile("serial_not_number.pem", {}); + ASSERT_FALSE(cert); +} + +// Tests a serial number which uses a non-minimal INTEGER encoding +TEST(ParsedCertificateTest, SerialNotMinimal) { + scoped_refptr<ParsedCertificate> cert = + ParseCertificateFromFile("serial_not_minimal.pem", {}); + ASSERT_FALSE(cert); +} + // Tests parsing a certificate that has an inhibitAnyPolicy extension. TEST(ParsedCertificateTest, InhibitAnyPolicy) { scoped_refptr<ParsedCertificate> cert =
diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc index f33ceba..974bd420 100644 --- a/net/cookies/cookie_monster.cc +++ b/net/cookies/cookie_monster.cc
@@ -1409,7 +1409,8 @@ SetCookiesCallback callback) { DCHECK(thread_checker_.CalledOnValidThread()); - if (cc->IsSecure() && !secure_source) { + if ((cc->IsSecure() && !secure_source) || + (cc->IsHttpOnly() && !modify_http_only)) { MaybeRunCookieCallback(std::move(callback), false); return; }
diff --git a/net/cookies/cookie_store_unittest.h b/net/cookies/cookie_store_unittest.h index 56ee4248..7c2a9f8 100644 --- a/net/cookies/cookie_store_unittest.h +++ b/net/cookies/cookie_store_unittest.h
@@ -537,6 +537,45 @@ COOKIE_PRIORITY_DEFAULT), false, true)); + if (TypeParam::supports_http_only) { + // Permission to modify http only cookies is required to create an + // httponly cookie. + EXPECT_FALSE(this->SetCanonicalCookie( + cs, + base::MakeUnique<CanonicalCookie>( + "G", "H", http_foo_host, "/unique", base::Time(), base::Time(), + base::Time(), false, true, CookieSameSite::DEFAULT_MODE, + COOKIE_PRIORITY_DEFAULT), + /* secure_source */ false, /* modify_http_only */ false)); + + // Permission to modify httponly cookies is also required to overwrite + // an httponly cookie. + EXPECT_TRUE(this->SetCanonicalCookie( + cs, + base::MakeUnique<CanonicalCookie>( + "G", "H", http_foo_host, "/unique", base::Time(), base::Time(), + base::Time(), false, true, CookieSameSite::DEFAULT_MODE, + COOKIE_PRIORITY_DEFAULT), + /* secure_source */ false, /* modify_http_only */ true)); + + EXPECT_FALSE(this->SetCanonicalCookie( + cs, + base::MakeUnique<CanonicalCookie>( + "G", "H", http_foo_host, "/unique", base::Time(), base::Time(), + base::Time(), false, true, CookieSameSite::DEFAULT_MODE, + COOKIE_PRIORITY_DEFAULT), + /* secure_source */ false, /* modify_http_only */ false)); + } else { + // Leave store in same state as if the above tests had been run. + EXPECT_TRUE(this->SetCanonicalCookie( + cs, + base::MakeUnique<CanonicalCookie>( + "G", "H", http_foo_host, "/unique", base::Time(), base::Time(), + base::Time(), false, true, CookieSameSite::DEFAULT_MODE, + COOKIE_PRIORITY_DEFAULT), + /* secure_source */ false, /* modify_http_only */ true)); + } + // Get all the cookies for a given URL, regardless of properties. This 'get()' // operation shouldn't update the access time, as the test checks that the // access time is set properly upon creation. Updating the access time would
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/challenge_spec_4_2_2_3.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/challenge_spec_4_2_2_3.bin deleted file mode 100644 index e698a39..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/challenge_spec_4_2_2_3.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/challenge_too_short.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/challenge_too_short.bin deleted file mode 100644 index 373e40b..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/challenge_too_short.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0001.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0001.bin deleted file mode 100644 index 5fbd821..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0001.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0002.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0002.bin deleted file mode 100644 index f4ba5237..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0002.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0003.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0003.bin deleted file mode 100644 index d660270e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0003.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0004.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0004.bin deleted file mode 100644 index 47536b9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0004.bin +++ /dev/null
@@ -1 +0,0 @@ -NTLMTLM \ No newline at end of file
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0005.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0005.bin deleted file mode 100644 index 7473331..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0005.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0006.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0006.bin deleted file mode 100644 index 59b8622..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0006.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0007.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0007.bin deleted file mode 100644 index 41f9091..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0007.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0008.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0008.bin deleted file mode 100644 index b606083..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0008.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0009.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0009.bin deleted file mode 100644 index 0b611b6..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0009.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0010.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0010.bin deleted file mode 100644 index 81328cc..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0010.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0011.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0011.bin deleted file mode 100644 index c1e5459..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0011.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0012.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0012.bin deleted file mode 100644 index 10b29fc2..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0012.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0013.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0013.bin deleted file mode 100644 index 9d8690a8..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0013.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0014.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0014.bin deleted file mode 100644 index 4973fb20..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0014.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0015.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0015.bin deleted file mode 100644 index e8a58405a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0015.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0016.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0016.bin deleted file mode 100644 index 621e80e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0016.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0017.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0017.bin deleted file mode 100644 index c462bd9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0017.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0018.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0018.bin deleted file mode 100644 index b67afe0f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0018.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0019.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0019.bin deleted file mode 100644 index bab5e6e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0019.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0020.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0020.bin deleted file mode 100644 index a30cc54..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0020.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0021.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0021.bin deleted file mode 100644 index d1c8e05..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0021.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0022.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0022.bin deleted file mode 100644 index f28fc3d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0022.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0023.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0023.bin deleted file mode 100644 index f1f4bb4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0023.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0024.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0024.bin deleted file mode 100644 index a0672f4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0024.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0025.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0025.bin deleted file mode 100644 index fe0425e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0025.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0026.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0026.bin deleted file mode 100644 index f8a9023..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0026.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0027.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0027.bin deleted file mode 100644 index 3b00f011..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0027.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0028.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0028.bin deleted file mode 100644 index 614ce50..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0028.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0029.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0029.bin deleted file mode 100644 index 377e0f6..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0029.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0030.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0030.bin deleted file mode 100644 index 2104a07..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0030.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0031.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0031.bin deleted file mode 100644 index 7060f5a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0031.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0032.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0032.bin deleted file mode 100644 index 34f14d9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0032.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0033.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0033.bin deleted file mode 100644 index 7020361a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0033.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0034.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0034.bin deleted file mode 100644 index d9c78d1..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0034.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0035.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0035.bin deleted file mode 100644 index 0d390d83..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0035.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0036.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0036.bin deleted file mode 100644 index 8a45436..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0036.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0037.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0037.bin deleted file mode 100644 index 69b0a13..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0037.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0038.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0038.bin deleted file mode 100644 index af76586..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0038.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0039.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0039.bin deleted file mode 100644 index 8e9671c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0039.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0040.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0040.bin deleted file mode 100644 index b273002..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0040.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0041.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0041.bin deleted file mode 100644 index 51dfba6..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0041.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0042.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0042.bin deleted file mode 100644 index 6e6e09e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0042.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0043.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0043.bin deleted file mode 100644 index 530b0ce2..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0043.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0044.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0044.bin deleted file mode 100644 index 5cd8c83..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0044.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0045.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0045.bin deleted file mode 100644 index 03af3a5a9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0045.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0046.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0046.bin deleted file mode 100644 index 8410149..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0046.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0047.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0047.bin deleted file mode 100644 index 926d80a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0047.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0048.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0048.bin deleted file mode 100644 index 13577d2..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0048.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0049.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0049.bin deleted file mode 100644 index 4771d6c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0049.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0050.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0050.bin deleted file mode 100644 index fb65c29c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0050.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0051.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0051.bin deleted file mode 100644 index 8217b184..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0051.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0052.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0052.bin deleted file mode 100644 index ece8b30..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0052.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0053.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0053.bin deleted file mode 100644 index 699dd92..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0053.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0054.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0054.bin deleted file mode 100644 index 38e4308..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0054.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0055.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0055.bin deleted file mode 100644 index cbc53af..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0055.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0056.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0056.bin deleted file mode 100644 index f221f8f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0056.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0057.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0057.bin deleted file mode 100644 index 512f14e38..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0057.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0058.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0058.bin deleted file mode 100644 index 9e1d0a0..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0058.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0059.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0059.bin deleted file mode 100644 index caece732..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0059.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0060.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0060.bin deleted file mode 100644 index 9debe5f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0060.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0061.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0061.bin deleted file mode 100644 index 280e506..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0061.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0062.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0062.bin deleted file mode 100644 index 845c743c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0062.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0063.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0063.bin deleted file mode 100644 index 725e684..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0063.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0064.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0064.bin deleted file mode 100644 index ba17f74..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0064.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0065.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0065.bin deleted file mode 100644 index 3456bc1..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0065.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0066.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0066.bin deleted file mode 100644 index cc59ed3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0066.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0067.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0067.bin deleted file mode 100644 index bf33a20..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0067.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0068.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0068.bin deleted file mode 100644 index 6c4f277..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0068.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0069.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0069.bin deleted file mode 100644 index ee77d1b..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0069.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0070.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0070.bin deleted file mode 100644 index 46ca637..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0070.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0071.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0071.bin deleted file mode 100644 index c2d975c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0071.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0072.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0072.bin deleted file mode 100644 index e4dde45..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0072.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0073.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0073.bin deleted file mode 100644 index 91f3030..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0073.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0074.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0074.bin deleted file mode 100644 index 7c5957a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0074.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0075.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0075.bin deleted file mode 100644 index 88dd3bf..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0075.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0076.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0076.bin deleted file mode 100644 index 86a30c0..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0076.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0077.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0077.bin deleted file mode 100644 index 9efe98e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0077.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0078.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0078.bin deleted file mode 100644 index 750b9aa..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0078.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0079.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0079.bin deleted file mode 100644 index ab9857d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0079.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0080.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0080.bin deleted file mode 100644 index 924ee6b..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0080.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0081.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0081.bin deleted file mode 100644 index 0ff800ef..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0081.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0082.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0082.bin deleted file mode 100644 index 00bd3be..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0082.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0083.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0083.bin deleted file mode 100644 index c425134..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0083.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0084.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0084.bin deleted file mode 100644 index 0e67c2c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0084.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0085.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0085.bin deleted file mode 100644 index 3706e12..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0085.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0086.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0086.bin deleted file mode 100644 index adf3728..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0086.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0087.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0087.bin deleted file mode 100644 index 0d68d69..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0087.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0088.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0088.bin deleted file mode 100644 index 26c582d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0088.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0089.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0089.bin deleted file mode 100644 index 7f9ab4e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0089.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0090.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0090.bin deleted file mode 100644 index f79a15d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0090.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0091.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0091.bin deleted file mode 100644 index 28c50a5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0091.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0092.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0092.bin deleted file mode 100644 index f3cae66..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0092.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0093.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0093.bin deleted file mode 100644 index 8242183..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0093.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0094.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0094.bin deleted file mode 100644 index deabfc2..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0094.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0095.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0095.bin deleted file mode 100644 index fd15789..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0095.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0096.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0096.bin deleted file mode 100644 index fa7bbeb..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0096.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0097.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0097.bin deleted file mode 100644 index 2cf1abb..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0097.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0098.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0098.bin deleted file mode 100644 index 00ac7a3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0098.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0099.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0099.bin deleted file mode 100644 index 330d7cf..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0099.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0100.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0100.bin deleted file mode 100644 index bca0c582..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0100.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0101.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0101.bin deleted file mode 100644 index 6b44f59..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0101.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0102.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0102.bin deleted file mode 100644 index 5b628fe1..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0102.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0103.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0103.bin deleted file mode 100644 index 7999eb7..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0103.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0104.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0104.bin deleted file mode 100644 index 66f711e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0104.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0105.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0105.bin deleted file mode 100644 index 6e164b5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0105.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0106.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0106.bin deleted file mode 100644 index 83d22c21..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0106.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0107.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0107.bin deleted file mode 100644 index d7a1bd9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0107.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0108.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0108.bin deleted file mode 100644 index 7381ba6..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0108.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0109.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0109.bin deleted file mode 100644 index a69095c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0109.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0110.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0110.bin deleted file mode 100644 index 88f9980..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0110.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0111.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0111.bin deleted file mode 100644 index 1003e284..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0111.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0112.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0112.bin deleted file mode 100644 index 0e62a66..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0112.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0113.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0113.bin deleted file mode 100644 index 38ae0fb..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0113.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0114.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0114.bin deleted file mode 100644 index a506e02..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0114.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0115.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0115.bin deleted file mode 100644 index 91a4aa8..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0115.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0116.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0116.bin deleted file mode 100644 index 09efefa..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0116.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0117.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0117.bin deleted file mode 100644 index af1652c3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0117.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0118.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0118.bin deleted file mode 100644 index a0874e3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0118.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0119.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0119.bin deleted file mode 100644 index 4a018dd8..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0119.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0120.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0120.bin deleted file mode 100644 index b6be5c2..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0120.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0121.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0121.bin deleted file mode 100644 index 8bb62ee..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0121.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0122.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0122.bin deleted file mode 100644 index 272dc16..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0122.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0123.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0123.bin deleted file mode 100644 index 04508d64..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0123.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0124.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0124.bin deleted file mode 100644 index 4530dd4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0124.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0125.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0125.bin deleted file mode 100644 index 3c8dbb50..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0125.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0126.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0126.bin deleted file mode 100644 index 98754153..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0126.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0127.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0127.bin deleted file mode 100644 index c1496ce..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0127.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0128.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0128.bin deleted file mode 100644 index fcd602de..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0128.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0129.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0129.bin deleted file mode 100644 index 6a93485..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0129.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0130.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0130.bin deleted file mode 100644 index 11e4731..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0130.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0131.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0131.bin deleted file mode 100644 index 59b9e48..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0131.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0132.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0132.bin deleted file mode 100644 index 77eef11..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0132.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0133.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0133.bin deleted file mode 100644 index 3a18b53..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0133.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0134.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0134.bin deleted file mode 100644 index 4de9ffa..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0134.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0135.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0135.bin deleted file mode 100644 index 345ee99..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0135.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0136.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0136.bin deleted file mode 100644 index 0673656..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0136.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0137.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0137.bin deleted file mode 100644 index ee10d17..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0137.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0138.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0138.bin deleted file mode 100644 index 0582d75..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0138.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0139.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0139.bin deleted file mode 100644 index a97ba95..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0139.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0140.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0140.bin deleted file mode 100644 index e665e49..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0140.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0141.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0141.bin deleted file mode 100644 index cc12b12..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0141.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0142.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0142.bin deleted file mode 100644 index e302b08..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0142.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0143.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0143.bin deleted file mode 100644 index d80571b..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0143.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0144.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0144.bin deleted file mode 100644 index 4421a7a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0144.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0145.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0145.bin deleted file mode 100644 index c1ee371d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0145.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0146.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0146.bin deleted file mode 100644 index 13b34ec5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0146.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0147.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0147.bin deleted file mode 100644 index ab07749..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0147.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0148.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0148.bin deleted file mode 100644 index 8c66a052..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0148.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0149.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0149.bin deleted file mode 100644 index 5c5302f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0149.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0150.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0150.bin deleted file mode 100644 index 6ba161ab..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0150.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0151.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0151.bin deleted file mode 100644 index 3818c137..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0151.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0152.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0152.bin deleted file mode 100644 index 39fd63d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0152.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0153.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0153.bin deleted file mode 100644 index 2d27dde4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0153.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0154.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0154.bin deleted file mode 100644 index 7454103..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0154.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0155.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0155.bin deleted file mode 100644 index c0add9e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0155.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0156.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0156.bin deleted file mode 100644 index 6b85869..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0156.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0157.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0157.bin deleted file mode 100644 index c777eef8..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0157.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0158.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0158.bin deleted file mode 100644 index f76dd23..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0158.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0159.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0159.bin deleted file mode 100644 index 8e0b967..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0159.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0160.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0160.bin deleted file mode 100644 index 5faf34c6..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0160.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0161.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0161.bin deleted file mode 100644 index 931ca76..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0161.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0162.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0162.bin deleted file mode 100644 index 43d8d4e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0162.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0163.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0163.bin deleted file mode 100644 index 9fc7abe0..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0163.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0164.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0164.bin deleted file mode 100644 index 3ed4d46..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0164.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0165.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0165.bin deleted file mode 100644 index aa1b137..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0165.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0166.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0166.bin deleted file mode 100644 index e9e2746..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0166.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0167.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0167.bin deleted file mode 100644 index bc57d7fa..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0167.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0168.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0168.bin deleted file mode 100644 index db6143d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0168.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0169.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0169.bin deleted file mode 100644 index f7e2f37..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0169.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0170.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0170.bin deleted file mode 100644 index afa5fcb..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0170.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0171.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0171.bin deleted file mode 100644 index 1bc1469..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0171.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0172.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0172.bin deleted file mode 100644 index 77589fd..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0172.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0173.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0173.bin deleted file mode 100644 index 341e1294..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0173.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0174.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0174.bin deleted file mode 100644 index f600051..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0174.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0175.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0175.bin deleted file mode 100644 index cb85e40..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0175.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0176.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0176.bin deleted file mode 100644 index 4757964..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0176.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0177.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0177.bin deleted file mode 100644 index c61395e7..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0177.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0178.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0178.bin deleted file mode 100644 index 244324df..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0178.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0179.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0179.bin deleted file mode 100644 index 76fafad..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0179.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0180.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0180.bin deleted file mode 100644 index f607889..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0180.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0181.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0181.bin deleted file mode 100644 index 97eeb3d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0181.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0182.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0182.bin deleted file mode 100644 index 420ecf17..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0182.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0183.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0183.bin deleted file mode 100644 index 3d64a16..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0183.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0184.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0184.bin deleted file mode 100644 index 6c6e27e2..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0184.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0185.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0185.bin deleted file mode 100644 index 18aff61dc..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0185.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0186.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0186.bin deleted file mode 100644 index 5565fae..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0186.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0187.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0187.bin deleted file mode 100644 index 8b4d50f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0187.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0188.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0188.bin deleted file mode 100644 index 1116e15..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0188.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0189.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0189.bin deleted file mode 100644 index c8e21bd..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0189.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0190.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0190.bin deleted file mode 100644 index cb8ba0ec..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0190.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0191.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0191.bin deleted file mode 100644 index f28fcca..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0191.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0192.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0192.bin deleted file mode 100644 index ff9b900..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0192.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0193.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0193.bin deleted file mode 100644 index 71b3783..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0193.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0194.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0194.bin deleted file mode 100644 index 8d9d867e..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0194.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0195.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0195.bin deleted file mode 100644 index 2a35617..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0195.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0196.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0196.bin deleted file mode 100644 index a021ead..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0196.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0197.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0197.bin deleted file mode 100644 index bfdc2c3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0197.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0198.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0198.bin deleted file mode 100644 index 4538d31..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0198.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0199.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0199.bin deleted file mode 100644 index 2b32f8a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0199.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0200.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0200.bin deleted file mode 100644 index eb21f6bf..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0200.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0201.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0201.bin deleted file mode 100644 index 3ee1496..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0201.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0202.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0202.bin deleted file mode 100644 index 359c465..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0202.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0203.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0203.bin deleted file mode 100644 index 8ed1725cd..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0203.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0204.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0204.bin deleted file mode 100644 index f8b0ec2..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0204.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0205.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0205.bin deleted file mode 100644 index dce527ae..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0205.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0206.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0206.bin deleted file mode 100644 index a048fff..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0206.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0207.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0207.bin deleted file mode 100644 index 9be79a5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0207.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0208.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0208.bin deleted file mode 100644 index d887e8f1..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0208.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0209.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0209.bin deleted file mode 100644 index cc4e2f1..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0209.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0210.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0210.bin deleted file mode 100644 index 054d8cb..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0210.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0211.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0211.bin deleted file mode 100644 index 099130d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0211.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0212.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0212.bin deleted file mode 100644 index aaf4a625..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0212.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0213.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0213.bin deleted file mode 100644 index 96252735..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0213.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0214.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0214.bin deleted file mode 100644 index 57a2115..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0214.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0215.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0215.bin deleted file mode 100644 index 0699fa3d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0215.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0216.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0216.bin deleted file mode 100644 index 62fca99..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0216.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0217.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0217.bin deleted file mode 100644 index 0149eae1..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0217.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0218.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0218.bin deleted file mode 100644 index 2a3a155..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0218.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0219.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0219.bin deleted file mode 100644 index 0fe6457..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0219.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0220.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0220.bin deleted file mode 100644 index 010f53b5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0220.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0221.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0221.bin deleted file mode 100644 index aead929..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0221.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0222.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0222.bin deleted file mode 100644 index 7090ef3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0222.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0223.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0223.bin deleted file mode 100644 index c06942a9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0223.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0224.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0224.bin deleted file mode 100644 index d2f52926..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0224.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0225.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0225.bin deleted file mode 100644 index 11084fa..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0225.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0226.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0226.bin deleted file mode 100644 index 67d166ae..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0226.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0227.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0227.bin deleted file mode 100644 index b19336f5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0227.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0228.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0228.bin deleted file mode 100644 index cf6d673..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0228.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0229.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0229.bin deleted file mode 100644 index 10a4faf..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0229.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0230.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0230.bin deleted file mode 100644 index 3d10e15..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0230.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0231.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0231.bin deleted file mode 100644 index 0ac57fb4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0231.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0232.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0232.bin deleted file mode 100644 index dbd466440..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0232.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0233.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0233.bin deleted file mode 100644 index 32ba27d5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0233.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0234.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0234.bin deleted file mode 100644 index 6e3bb081..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0234.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0235.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0235.bin deleted file mode 100644 index 70b881d5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0235.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0236.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0236.bin deleted file mode 100644 index 0f3333f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0236.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0237.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0237.bin deleted file mode 100644 index 2b4ae31c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0237.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0238.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0238.bin deleted file mode 100644 index 23060649..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0238.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0239.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0239.bin deleted file mode 100644 index 18f4ac7d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0239.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0240.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0240.bin deleted file mode 100644 index 4f8e3ae..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0240.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0241.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0241.bin deleted file mode 100644 index 7e68a9d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0241.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0242.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0242.bin deleted file mode 100644 index f12dd875..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0242.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0243.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0243.bin deleted file mode 100644 index ca613df..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0243.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0244.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0244.bin deleted file mode 100644 index 4dfa10d0..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0244.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0245.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0245.bin deleted file mode 100644 index 28f7803..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0245.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0246.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0246.bin deleted file mode 100644 index ed9c8ec..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0246.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0247.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0247.bin deleted file mode 100644 index a6e37a05..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0247.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0248.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0248.bin deleted file mode 100644 index 084d44d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0248.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0249.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0249.bin deleted file mode 100644 index 5c6d187c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0249.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0250.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0250.bin deleted file mode 100644 index 558758d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0250.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0251.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0251.bin deleted file mode 100644 index 8ace642..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0251.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0252.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0252.bin deleted file mode 100644 index 9976ddd..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0252.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0253.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0253.bin deleted file mode 100644 index 1c8b94f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0253.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0254.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0254.bin deleted file mode 100644 index 11e7b415f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0254.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0255.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0255.bin deleted file mode 100644 index b19711d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0255.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0256.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0256.bin deleted file mode 100644 index e2835ff..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0256.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0257.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0257.bin deleted file mode 100644 index 4a8b194c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0257.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0258.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0258.bin deleted file mode 100644 index 373e3104..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0258.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0259.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0259.bin deleted file mode 100644 index 508a701..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0259.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0260.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0260.bin deleted file mode 100644 index 7c1692b..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0260.bin +++ /dev/null
@@ -1 +0,0 @@ -NááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááTLMTLM \ No newline at end of file
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0261.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0261.bin deleted file mode 100644 index 188eb32..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0261.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0262.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0262.bin deleted file mode 100644 index aa8587d02..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0262.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0263.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0263.bin deleted file mode 100644 index 46418dc..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0263.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0264.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0264.bin deleted file mode 100644 index 50a9ba2c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0264.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0265.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0265.bin deleted file mode 100644 index 8a2dbbd4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0265.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0266.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0266.bin deleted file mode 100644 index e0c66139..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0266.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0267.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0267.bin deleted file mode 100644 index e62d1d5..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0267.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0268.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0268.bin deleted file mode 100644 index b9c13fcd7..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0268.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0269.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0269.bin deleted file mode 100644 index 8fc96c1c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0269.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0270.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0270.bin deleted file mode 100644 index 2777fb3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0270.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0271.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0271.bin deleted file mode 100644 index 508f0344..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0271.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0272.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0272.bin deleted file mode 100644 index ba3d348..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0272.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0273.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0273.bin deleted file mode 100644 index f3b6d04..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0273.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0274.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0274.bin deleted file mode 100644 index 03ebbda7..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0274.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0275.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0275.bin deleted file mode 100644 index f9518471..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0275.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0276.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0276.bin deleted file mode 100644 index e8d6d96cd..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0276.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0277.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0277.bin deleted file mode 100644 index a20d91d..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0277.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0278.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0278.bin deleted file mode 100644 index fe5a9732..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0278.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0279.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0279.bin deleted file mode 100644 index acbac321..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0279.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0280.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0280.bin deleted file mode 100644 index c5ec44a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0280.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0281.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0281.bin deleted file mode 100644 index 76d5cb773..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0281.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0282.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0282.bin deleted file mode 100644 index 06228e9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0282.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0283.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0283.bin deleted file mode 100644 index 71e55dd..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0283.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0284.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0284.bin deleted file mode 100644 index 495629f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0284.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0285.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0285.bin deleted file mode 100644 index 3caf33c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0285.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0286.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0286.bin deleted file mode 100644 index d251b2a..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0286.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0287.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0287.bin deleted file mode 100644 index 6f6a5f1f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0287.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0288.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0288.bin deleted file mode 100644 index 07bed6b4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0288.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0289.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0289.bin deleted file mode 100644 index b6ccccf..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0289.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0290.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0290.bin deleted file mode 100644 index 487c5e4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0290.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0291.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0291.bin deleted file mode 100644 index 2e0cb65..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0291.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0292.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0292.bin deleted file mode 100644 index 687ae92..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0292.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0293.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0293.bin deleted file mode 100644 index b3433a7..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0293.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0294.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0294.bin deleted file mode 100644 index b70f5b9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0294.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0295.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0295.bin deleted file mode 100644 index bad3311..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0295.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0296.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0296.bin deleted file mode 100644 index cacebbe..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0296.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0297.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0297.bin deleted file mode 100644 index ca7c259..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0297.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0298.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0298.bin deleted file mode 100644 index 68decb3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0298.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0299.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0299.bin deleted file mode 100644 index 5668a23ab..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0299.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0300.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0300.bin deleted file mode 100644 index 4227ca4..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0300.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0301.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0301.bin deleted file mode 100644 index 8c05a65..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0301.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0302.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0302.bin deleted file mode 100644 index b3719eb3..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0302.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0303.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0303.bin deleted file mode 100644 index 5746787..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0303.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0304.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0304.bin deleted file mode 100644 index 28c4a85..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0304.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0305.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0305.bin deleted file mode 100644 index f9cd719..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/generated_challenge_0305.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge.bin deleted file mode 100644 index bbe0118f..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_no_ss.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_no_ss.bin deleted file mode 100644 index e3cb357..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_no_ss.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_no_unicode.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_no_unicode.bin deleted file mode 100644 index f7398628..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_no_unicode.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_len_overflow.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_len_overflow.bin deleted file mode 100644 index 568c63c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_len_overflow.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_len_overflow2.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_len_overflow2.bin deleted file mode 100644 index ad4fea0..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_len_overflow2.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_offset_overflow.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_offset_overflow.bin deleted file mode 100644 index 338099c..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_target_name_offset_overflow.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_with_target_name.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_with_target_name.bin deleted file mode 100644 index 24b02fc..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_with_target_name.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_wrong_message_type.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_wrong_message_type.bin deleted file mode 100644 index 2ec29f6..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_wrong_message_type.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_wrong_signature.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_wrong_signature.bin deleted file mode 100644 index 67ad5ee7..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_wrong_signature.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_zero_target_name_offset.bin b/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_zero_target_name_offset.bin deleted file mode 100644 index 5e832b9..0000000 --- a/net/data/fuzzer_data/ntlm_client_fuzzer/min_challenge_zero_target_name_offset.bin +++ /dev/null Binary files differ
diff --git a/net/data/fuzzer_dictionaries/net_ntlm_ntlm_client_fuzzer.dict b/net/data/fuzzer_dictionaries/net_ntlm_ntlm_client_fuzzer.dict deleted file mode 100644 index 93b46b43..0000000 --- a/net/data/fuzzer_dictionaries/net_ntlm_ntlm_client_fuzzer.dict +++ /dev/null
@@ -1,36 +0,0 @@ -# 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. - -# Signature -"NTLMSSP\x00" - -# Message Types -"\x01\x00\x00\x00" -"\x02\x00\x00\x00" -"\x03\x00\x00\x00" - -# Common Target Name offset -"\x20\x00\x00\x00" - -# Useful security buffer lengths to match "Server" -"\x06\x00" -"\x0c\x00" - -# Common\interesting flag values -"\x07\x82\x08\x00" -"\x06\x82\x08\x00" -"\x07\x82\x00\x00" -"\x06\x82\x00\x00" -"\x01\x00\x08\x00" -"\x02\x00\x08\x00" -"\x03\x00\x08\x00" -"\x01\x00\x00\x00" -"\x02\x00\x00\x00" -"\x03\x00\x00\x00" -"\x08\x00" -"\x00\x00" - -# Target Names -"Server" -"S\x00e\x00r\x00v\x00e\x00r\x00" \ No newline at end of file
diff --git a/net/data/parse_certificate_unittest/serial_37_bytes.pem b/net/data/parse_certificate_unittest/serial_37_bytes.pem index 201b605..766f6b3 100644 --- a/net/data/parse_certificate_unittest/serial_37_bytes.pem +++ b/net/data/parse_certificate_unittest/serial_37_bytes.pem
@@ -12,9 +12,10 @@ MIICdDCCAd2gAwIBAgIlAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTE0MDQyMzIwNTA0MFoXDTE3MDQyMjIwNTA0MFowRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA2CvIpjLkYv9N89CtWYtFp73xR78JWHsivTWulyWGlKCAwLQfdpFnRjHQEIS3Ih5wI5FyyOlteTqFd4APxJUWdcVKcUzIYz+j8mOcKk+a+svBcW4ohSigJx5lHK4H1VtvLUPtK5CxjK8kba7pFzoFwb+4HK5lOxtYwtmu1qpniPECAwEAAaNQME4wHQYDVR0OBBYEFIt11azLCL4OH2W3+la+bKd12oWvMB8GA1UdIwQYMBaAFIt11azLCL4OH2W3+la+bKd12oWvMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAO+h4bZXWPWr3ExksG8KIriKr9I0y9XxxZ88t0RzCw4fi6b6JXOQ0q0iRwj+VritHniV4a0+aEKRy/c/3AgywCgikWuLldH4RHTlgaskfafMuYybcnu9regrhVFeYqnKReAR+H49lTR8LEqycJA+EFBpVLR+78J0JsghcWTJlgCY= -----END CERTIFICATE----- -ERROR: Invalid serial number +ERROR: Serial number is longer than 20 octets + length: 37 ERROR: Failed parsing TBSCertificate -----BEGIN ERRORS----- -RVJST1I6IEludmFsaWQgc2VyaWFsIG51bWJlcgpFUlJPUjogRmFpbGVkIHBhcnNpbmcgVEJTQ2VydGlmaWNhdGUK +RVJST1I6IFNlcmlhbCBudW1iZXIgaXMgbG9uZ2VyIHRoYW4gMjAgb2N0ZXRzCiAgbGVuZ3RoOiAzNwpFUlJPUjogRmFpbGVkIHBhcnNpbmcgVEJTQ2VydGlmaWNhdGUK -----END ERRORS-----
diff --git a/net/data/parse_certificate_unittest/serial_negative.pem b/net/data/parse_certificate_unittest/serial_negative.pem index 1570ab2..6192ada 100644 --- a/net/data/parse_certificate_unittest/serial_negative.pem +++ b/net/data/parse_certificate_unittest/serial_negative.pem
@@ -10,3 +10,9 @@ -----BEGIN CERTIFICATE----- MIICUTCCAbqgAwIBAgICgAEwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xNDA0MjMyMDUwNDBaFw0xNzA0MjIyMDUwNDBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANgryKYy5GL/TfPQrVmLRae98Ue/CVh7Ir01rpclhpSggMC0H3aRZ0Yx0BCEtyIecCORcsjpbXk6hXeAD8SVFnXFSnFMyGM/o/JjnCpPmvrLwXFuKIUooCceZRyuB9Vbby1D7SuQsYyvJG2u6Rc6BcG/uByuZTsbWMLZrtaqZ4jxAgMBAAGjUDBOMB0GA1UdDgQWBBSLddWsywi+Dh9lt/pWvmynddqFrzAfBgNVHSMEGDAWgBSLddWsywi+Dh9lt/pWvmynddqFrzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBADvoeG2V1j1q9xMZLBvCiK4iq/SNMvV8cWfPLdEcwsOH4um+iVzkNKtIkcI/la4rR54leGtPmhCkcv3P9wIMsAoIpFri5XR+ER05YGrJH2nzLmMm3J7va3oK4VRXmKpykXgEfh+PZU0fCxKsnCQPhBQaVS0fu/CdCbIIXFkyZYAm -----END CERTIFICATE----- + +WARNING: Serial number is negative + +-----BEGIN ERRORS----- +V0FSTklORzogU2VyaWFsIG51bWJlciBpcyBuZWdhdGl2ZQo= +-----END ERRORS----- \ No newline at end of file
diff --git a/net/data/parse_certificate_unittest/serial_not_minimal.pem b/net/data/parse_certificate_unittest/serial_not_minimal.pem new file mode 100644 index 0000000..b70ad81b --- /dev/null +++ b/net/data/parse_certificate_unittest/serial_not_minimal.pem
@@ -0,0 +1,19 @@ +This cert has an invalid serial number, as it is a non-minimal DER encoding of 1. + +The certificate data can be updated/regenerated with the +net/data/parse_certificate_unittest/regenerate_pem_from_ascii.py script. + +#-----BEGIN SERIAL----- + INTEGER {`0001`} +#-----END SERIAL----- + +-----BEGIN CERTIFICATE----- +MIICUTCCAbqgAwIBAgICAAEwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xNDA0MjMyMDUwNDBaFw0xNzA0MjIyMDUwNDBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANgryKYy5GL/TfPQrVmLRae98Ue/CVh7Ir01rpclhpSggMC0H3aRZ0Yx0BCEtyIecCORcsjpbXk6hXeAD8SVFnXFSnFMyGM/o/JjnCpPmvrLwXFuKIUooCceZRyuB9Vbby1D7SuQsYyvJG2u6Rc6BcG/uByuZTsbWMLZrtaqZ4jxAgMBAAGjUDBOMB0GA1UdDgQWBBSLddWsywi+Dh9lt/pWvmynddqFrzAfBgNVHSMEGDAWgBSLddWsywi+Dh9lt/pWvmynddqFrzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBADvoeG2V1j1q9xMZLBvCiK4iq/SNMvV8cWfPLdEcwsOH4um+iVzkNKtIkcI/la4rR54leGtPmhCkcv3P9wIMsAoIpFri5XR+ER05YGrJH2nzLmMm3J7va3oK4VRXmKpykXgEfh+PZU0fCxKsnCQPhBQaVS0fu/CdCbIIXFkyZYAm +-----END CERTIFICATE----- + +ERROR: Serial number is not a valid INTEGER +ERROR: Failed parsing TBSCertificate + +-----BEGIN ERRORS----- +RVJST1I6IFNlcmlhbCBudW1iZXIgaXMgbm90IGEgdmFsaWQgSU5URUdFUgpFUlJPUjogRmFpbGVkIHBhcnNpbmcgVEJTQ2VydGlmaWNhdGUK +-----END ERRORS-----
diff --git a/net/data/parse_certificate_unittest/serial_not_number.pem b/net/data/parse_certificate_unittest/serial_not_number.pem new file mode 100644 index 0000000..fcdd90e --- /dev/null +++ b/net/data/parse_certificate_unittest/serial_not_number.pem
@@ -0,0 +1,19 @@ +This cert has an invalid serial number - it is NULL rather than being an INTEGER. + +The certificate data can be updated/regenerated with the +net/data/parse_certificate_unittest/regenerate_pem_from_ascii.py script. + +#-----BEGIN SERIAL----- + NULL {} +#-----END SERIAL----- + +-----BEGIN CERTIFICATE----- +MIICTzCCAbigAwIBAgUAMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTQwNDIzMjA1MDQwWhcNMTcwNDIyMjA1MDQwWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYK8imMuRi/03z0K1Zi0WnvfFHvwlYeyK9Na6XJYaUoIDAtB92kWdGMdAQhLciHnAjkXLI6W15OoV3gA/ElRZ1xUpxTMhjP6PyY5wqT5r6y8FxbiiFKKAnHmUcrgfVW28tQ+0rkLGMryRtrukXOgXBv7gcrmU7G1jC2a7WqmeI8QIDAQABo1AwTjAdBgNVHQ4EFgQUi3XVrMsIvg4fZbf6Vr5sp3Xaha8wHwYDVR0jBBgwFoAUi3XVrMsIvg4fZbf6Vr5sp3Xaha8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQA76HhtldY9avcTGSwbwoiuIqv0jTL1fHFnzy3RHMLDh+Lpvolc5DSrSJHCP5WuK0eeJXhrT5oQpHL9z/cCDLAKCKRa4uV0fhEdOWBqyR9p8y5jJtye72t6CuFUV5iqcpF4BH4fj2VNHwsSrJwkD4QUGlUtH7vwnQmyCFxZMmWAJg== +-----END CERTIFICATE----- + +ERROR: Failed reading serialNumber +ERROR: Failed parsing TBSCertificate + +-----BEGIN ERRORS----- +RVJST1I6IEZhaWxlZCByZWFkaW5nIHNlcmlhbE51bWJlcgpFUlJPUjogRmFpbGVkIHBhcnNpbmcgVEJTQ2VydGlmaWNhdGUK +-----END ERRORS-----
diff --git a/net/data/parse_certificate_unittest/serial_zero.pem b/net/data/parse_certificate_unittest/serial_zero.pem new file mode 100644 index 0000000..0f29f23 --- /dev/null +++ b/net/data/parse_certificate_unittest/serial_zero.pem
@@ -0,0 +1,19 @@ +This cert has an invalid serial number of 0. According to RFC 5280 serial +numbers should be positive. + +The certificate data can be updated/regenerated with the +net/data/parse_certificate_unittest/regenerate_pem_from_ascii.py script. + +#-----BEGIN SERIAL----- + INTEGER { `00` } +#-----END SERIAL----- + +-----BEGIN CERTIFICATE----- +MIICUDCCAbmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTE0MDQyMzIwNTA0MFoXDTE3MDQyMjIwNTA0MFowRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA2CvIpjLkYv9N89CtWYtFp73xR78JWHsivTWulyWGlKCAwLQfdpFnRjHQEIS3Ih5wI5FyyOlteTqFd4APxJUWdcVKcUzIYz+j8mOcKk+a+svBcW4ohSigJx5lHK4H1VtvLUPtK5CxjK8kba7pFzoFwb+4HK5lOxtYwtmu1qpniPECAwEAAaNQME4wHQYDVR0OBBYEFIt11azLCL4OH2W3+la+bKd12oWvMB8GA1UdIwQYMBaAFIt11azLCL4OH2W3+la+bKd12oWvMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAO+h4bZXWPWr3ExksG8KIriKr9I0y9XxxZ88t0RzCw4fi6b6JXOQ0q0iRwj+VritHniV4a0+aEKRy/c/3AgywCgikWuLldH4RHTlgaskfafMuYybcnu9regrhVFeYqnKReAR+H49lTR8LEqycJA+EFBpVLR+78J0JsghcWTJlgCY= +-----END CERTIFICATE----- + +WARNING: Serial number is zero + +-----BEGIN ERRORS----- +V0FSTklORzogU2VyaWFsIG51bWJlciBpcyB6ZXJvCg== +-----END ERRORS-----
diff --git a/net/data/parse_certificate_unittest/serial_zero_padded_21_bytes.pem b/net/data/parse_certificate_unittest/serial_zero_padded_21_bytes.pem index 209bb25d0..d90fd3f5 100644 --- a/net/data/parse_certificate_unittest/serial_zero_padded_21_bytes.pem +++ b/net/data/parse_certificate_unittest/serial_zero_padded_21_bytes.pem
@@ -13,9 +13,10 @@ MIICZDCCAc2gAwIBAgIVAIABAgMEBQYHCAkKCwwNDg8QERITMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTQwNDIzMjA1MDQwWhcNMTcwNDIyMjA1MDQwWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYK8imMuRi/03z0K1Zi0WnvfFHvwlYeyK9Na6XJYaUoIDAtB92kWdGMdAQhLciHnAjkXLI6W15OoV3gA/ElRZ1xUpxTMhjP6PyY5wqT5r6y8FxbiiFKKAnHmUcrgfVW28tQ+0rkLGMryRtrukXOgXBv7gcrmU7G1jC2a7WqmeI8QIDAQABo1AwTjAdBgNVHQ4EFgQUi3XVrMsIvg4fZbf6Vr5sp3Xaha8wHwYDVR0jBBgwFoAUi3XVrMsIvg4fZbf6Vr5sp3Xaha8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQA76HhtldY9avcTGSwbwoiuIqv0jTL1fHFnzy3RHMLDh+Lpvolc5DSrSJHCP5WuK0eeJXhrT5oQpHL9z/cCDLAKCKRa4uV0fhEdOWBqyR9p8y5jJtye72t6CuFUV5iqcpF4BH4fj2VNHwsSrJwkD4QUGlUtH7vwnQmyCFxZMmWAJg== -----END CERTIFICATE----- -ERROR: Invalid serial number +ERROR: Serial number is longer than 20 octets + length: 21 ERROR: Failed parsing TBSCertificate -----BEGIN ERRORS----- -RVJST1I6IEludmFsaWQgc2VyaWFsIG51bWJlcgpFUlJPUjogRmFpbGVkIHBhcnNpbmcgVEJTQ2VydGlmaWNhdGUK +RVJST1I6IFNlcmlhbCBudW1iZXIgaXMgbG9uZ2VyIHRoYW4gMjAgb2N0ZXRzCiAgbGVuZ3RoOiAyMQpFUlJPUjogRmFpbGVkIHBhcnNpbmcgVEJTQ2VydGlmaWNhdGUK -----END ERRORS-----
diff --git a/net/ntlm/ntlm_client.cc b/net/ntlm/ntlm_client.cc deleted file mode 100644 index a2b8f54..0000000 --- a/net/ntlm/ntlm_client.cc +++ /dev/null
@@ -1,253 +0,0 @@ -// 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 "net/ntlm/ntlm_client.h" - -#include <string.h> - -#include "base/logging.h" -#include "base/strings/utf_string_conversions.h" -#include "net/ntlm/ntlm.h" -#include "net/ntlm/ntlm_buffer_reader.h" -#include "net/ntlm/ntlm_buffer_writer.h" - -namespace net { -namespace ntlm { - -namespace { -// Parses the challenge message and returns the |challenge_flags| and -// |server_challenge| into the supplied buffer. -// |server_challenge| must contain at least 8 bytes. -bool ParseChallengeMessage(const Buffer& challenge_message, - NegotiateFlags* challenge_flags, - uint8_t* server_challenge) { - NtlmBufferReader challenge_reader(challenge_message); - - return challenge_reader.MatchMessageHeader(MessageType::kChallenge) && - challenge_reader.SkipSecurityBufferWithValidation() && - challenge_reader.ReadFlags(challenge_flags) && - challenge_reader.ReadBytes(server_challenge, kChallengeLen); -} - -bool WriteAuthenticateMessage(NtlmBufferWriter* authenticate_writer, - SecurityBuffer lm_payload, - SecurityBuffer ntlm_payload, - SecurityBuffer domain_payload, - SecurityBuffer username_payload, - SecurityBuffer hostname_payload, - NegotiateFlags authenticate_flags) { - return authenticate_writer->WriteMessageHeader(MessageType::kAuthenticate) && - authenticate_writer->WriteSecurityBuffer(lm_payload) && - authenticate_writer->WriteSecurityBuffer(ntlm_payload) && - authenticate_writer->WriteSecurityBuffer(domain_payload) && - authenticate_writer->WriteSecurityBuffer(username_payload) && - authenticate_writer->WriteSecurityBuffer(hostname_payload) && - authenticate_writer->WriteSecurityBuffer( - SecurityBuffer(kAuthenticateHeaderLenV1, 0)) && - authenticate_writer->WriteFlags(authenticate_flags); -} - -bool WriteResponsePayloads(NtlmBufferWriter* authenticate_writer, - const uint8_t* lm_response, - size_t lm_response_len, - const uint8_t* ntlm_response, - size_t ntlm_response_len) { - return authenticate_writer->WriteBytes(lm_response, lm_response_len) && - authenticate_writer->WriteBytes(ntlm_response, ntlm_response_len); -} - -bool WriteStringPayloads(NtlmBufferWriter* authenticate_writer, - bool is_unicode, - const base::string16& domain, - const base::string16& username, - const std::string& hostname) { - if (is_unicode) { - return authenticate_writer->WriteUtf16String(domain) && - authenticate_writer->WriteUtf16String(username) && - authenticate_writer->WriteUtf8AsUtf16String(hostname); - } else { - return authenticate_writer->WriteUtf16AsUtf8String(domain) && - authenticate_writer->WriteUtf16AsUtf8String(username) && - authenticate_writer->WriteUtf8String(hostname); - } -} - -// Returns the size in bytes of a string16 depending whether unicode -// was negotiated. -size_t GetStringPayloadLength(const base::string16& str, bool is_unicode) { - if (is_unicode) - return str.length() * 2; - - // When |WriteUtf16AsUtf8String| is called with a |base::string16|, the string - // is converted to UTF8. Do the conversion to ensure that the character - // count is correct. - return base::UTF16ToUTF8(str).length(); -} - -// Returns the size in bytes of a std::string depending whether unicode -// was negotiated. -size_t GetStringPayloadLength(const std::string& str, bool is_unicode) { - if (!is_unicode) - return str.length(); - - return base::UTF8ToUTF16(str).length() * 2; -} - -} // namespace - -NtlmClient::NtlmClient() : negotiate_flags_(kNegotiateMessageFlags) { - // Just generate the negotiate message once and hold on to it. It never - // changes and in a NTLMv2 it's used as an input - // to the Message Integrity Check in the Authenticate message. - GenerateNegotiateMessage(); -} - -NtlmClient::~NtlmClient() {} - -Buffer NtlmClient::GetNegotiateMessage() const { - return negotiate_message_; -} - -void NtlmClient::GenerateNegotiateMessage() { - NtlmBufferWriter writer(kNegotiateMessageLen); - bool result = - writer.WriteMessageHeader(MessageType::kNegotiate) && - writer.WriteFlags(negotiate_flags_) && - writer.WriteSecurityBuffer(SecurityBuffer(kNegotiateMessageLen, 0)) && - writer.WriteSecurityBuffer(SecurityBuffer(kNegotiateMessageLen, 0)) && - writer.IsEndOfBuffer(); - - DCHECK(result); - - negotiate_message_ = writer.Pass(); -} - -Buffer NtlmClient::GenerateAuthenticateMessage( - const base::string16& domain, - const base::string16& username, - const base::string16& password, - const std::string& hostname, - const uint8_t* client_challenge, - const Buffer& server_challenge_message) const { - // Limit the size of strings that are accepted. As an absolute limit any - // field represented by a |SecurityBuffer| or |AvPair| must be less than - // UINT16_MAX bytes long. The strings are restricted to the maximum sizes - // without regard to encoding. As such this isn't intended to restrict all - // invalid inputs, only to allow all possible valid inputs. - // - // |domain| and |hostname| can be no longer than 255 characters. - // |username| can be no longer than 104 characters. See [1]. - // |password| can be no longer than 256 characters. See [2]. - // - // [1] - https://technet.microsoft.com/en-us/library/bb726984.aspx - // [2] - https://technet.microsoft.com/en-us/library/cc512606.aspx - if (hostname.length() > kMaxFqdnLen || domain.length() > kMaxFqdnLen || - username.length() > kMaxUsernameLen || - password.length() > kMaxPasswordLen) - return Buffer(); - - NegotiateFlags challenge_flags; - uint8_t server_challenge[kChallengeLen]; - - // Read the flags and the server's random challenge from the challenge - // message. - if (!ParseChallengeMessage(server_challenge_message, &challenge_flags, - server_challenge)) { - return Buffer(); - } - - // Calculate the responses for the authenticate message. - uint8_t lm_response[kResponseLenV1]; - uint8_t ntlm_response[kResponseLenV1]; - - // Always use extended session security even if the server tries to downgrade. - NegotiateFlags authenticate_flags = (challenge_flags & negotiate_flags_) | - NegotiateFlags::kExtendedSessionSecurity; - - // Generate the LM and NTLM responses. - GenerateResponsesV1WithSessionSecurity( - password, server_challenge, client_challenge, lm_response, ntlm_response); - - // Calculate all the payload lengths and offsets. - bool is_unicode = (authenticate_flags & NegotiateFlags::kUnicode) == - NegotiateFlags::kUnicode; - - SecurityBuffer lm_info; - SecurityBuffer ntlm_info; - SecurityBuffer domain_info; - SecurityBuffer username_info; - SecurityBuffer hostname_info; - size_t authenticate_message_len; - CalculatePayloadLayout(is_unicode, domain, username, hostname, &lm_info, - &ntlm_info, &domain_info, &username_info, - &hostname_info, &authenticate_message_len); - - NtlmBufferWriter authenticate_writer(authenticate_message_len); - bool writer_result = WriteAuthenticateMessage( - &authenticate_writer, lm_info, ntlm_info, domain_info, username_info, - hostname_info, authenticate_flags); - DCHECK(writer_result); - DCHECK_EQ(authenticate_writer.GetCursor(), GetAuthenticateHeaderLength()); - - writer_result = - WriteResponsePayloads(&authenticate_writer, lm_response, lm_info.length, - ntlm_response, ntlm_info.length); - DCHECK(writer_result); - DCHECK_EQ(authenticate_writer.GetCursor(), domain_info.offset); - - writer_result = WriteStringPayloads(&authenticate_writer, is_unicode, domain, - username, hostname); - DCHECK(writer_result); - DCHECK(authenticate_writer.IsEndOfBuffer()); - DCHECK_EQ(authenticate_message_len, authenticate_writer.GetLength()); - - return authenticate_writer.Pass(); -} - -void NtlmClient::CalculatePayloadLayout( - bool is_unicode, - const base::string16& domain, - const base::string16& username, - const std::string& hostname, - SecurityBuffer* lm_info, - SecurityBuffer* ntlm_info, - SecurityBuffer* domain_info, - SecurityBuffer* username_info, - SecurityBuffer* hostname_info, - size_t* authenticate_message_len) const { - size_t upto = GetAuthenticateHeaderLength(); - - lm_info->offset = upto; - lm_info->length = kResponseLenV1; - upto += lm_info->length; - - ntlm_info->offset = upto; - ntlm_info->length = GetNtlmResponseLength(); - upto += ntlm_info->length; - - domain_info->offset = upto; - domain_info->length = GetStringPayloadLength(domain, is_unicode); - upto += domain_info->length; - - username_info->offset = upto; - username_info->length = GetStringPayloadLength(username, is_unicode); - upto += username_info->length; - - hostname_info->offset = upto; - hostname_info->length = GetStringPayloadLength(hostname, is_unicode); - upto += hostname_info->length; - - *authenticate_message_len = upto; -} - -size_t NtlmClient::GetAuthenticateHeaderLength() const { - return kAuthenticateHeaderLenV1; -} - -size_t NtlmClient::GetNtlmResponseLength() const { - return kResponseLenV1; -} - -} // namespace ntlm -} // namespace net \ No newline at end of file
diff --git a/net/ntlm/ntlm_client.h b/net/ntlm/ntlm_client.h deleted file mode 100644 index 94dd8c9..0000000 --- a/net/ntlm/ntlm_client.h +++ /dev/null
@@ -1,93 +0,0 @@ -// 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. - -// Based on [MS-NLMP]: NT LAN Manager (NTLM) Authentication Protocol -// Specification version 28.0 [1]. Additional NTLM reference [2]. -// -// [1] https://msdn.microsoft.com/en-us/library/cc236621.aspx -// [2] http://davenport.sourceforge.net/ntlm.html - -#ifndef NET_BASE_NTLM_CLIENT_H_ -#define NET_BASE_NTLM_CLIENT_H_ - -#include <stddef.h> -#include <stdint.h> - -#include <memory> -#include <string> - -#include "base/strings/string16.h" -#include "base/strings/string_piece.h" -#include "net/base/net_export.h" -#include "net/ntlm/ntlm_constants.h" - -namespace net { -namespace ntlm { - -// Provides an implementation of an NTLMv1 Client. -// -// The implementation supports NTLMv1 with extended session security (NTLM2). -class NET_EXPORT_PRIVATE NtlmClient { - public: - NtlmClient(); - ~NtlmClient(); - - // Returns a |Buffer| containing the Negotiate message. - Buffer GetNegotiateMessage() const; - - // Returns a |Buffer| containing the Authenticate message. If the method - // fails an empty |Buffer| is returned. - // - // |hostname| can be a short NetBIOS name or an FQDN, however the server will - // only inspect this field if the default domain policy is to restrict NTLM. - // In this case the hostname will be compared to a whitelist stored in this - // group policy [1]. - // |client_challenge| must contain 8 bytes of random data. - // |server_challenge_message| is the full content of the challenge message - // sent by the server. - // - // [1] - https://technet.microsoft.com/en-us/library/jj852267(v=ws.11).aspx - Buffer GenerateAuthenticateMessage( - const base::string16& domain, - const base::string16& username, - const base::string16& password, - const std::string& hostname, - const uint8_t* client_challenge, - const Buffer& server_challenge_message) const; - - private: - // Calculates the lengths and offset for all the payloads in the message. - void CalculatePayloadLayout(bool is_unicode, - const base::string16& domain, - const base::string16& username, - const std::string& hostname, - SecurityBuffer* lm_info, - SecurityBuffer* ntlm_info, - SecurityBuffer* domain_info, - SecurityBuffer* username_info, - SecurityBuffer* hostname_info, - size_t* authenticate_message_len) const; - - // Returns the length of the header part of the Authenticate message. - // NOTE: When NTLMv2 support is added this is no longer a fixed value. - size_t GetAuthenticateHeaderLength() const; - - // Returns the length of the NTLM response. - // NOTE: When NTLMv2 support is added this is no longer a fixed value. - size_t GetNtlmResponseLength() const; - - // Generates the negotiate message (which is always the same) into - // |negotiate_message_|. - void GenerateNegotiateMessage(); - - NegotiateFlags negotiate_flags_; - Buffer negotiate_message_; - - DISALLOW_COPY_AND_ASSIGN(NtlmClient); -}; - -} // namespace ntlm -} // namespace net - -#endif // NET_BASE_NTLM_CLIENT_H_ \ No newline at end of file
diff --git a/net/ntlm/ntlm_client_fuzzer.cc b/net/ntlm/ntlm_client_fuzzer.cc deleted file mode 100644 index e937f69..0000000 --- a/net/ntlm/ntlm_client_fuzzer.cc +++ /dev/null
@@ -1,43 +0,0 @@ -// 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 <stddef.h> -#include <stdint.h> - -#include "base/test/fuzzed_data_provider.h" -#include "net/ntlm/ntlm_client.h" -#include "net/ntlm/ntlm_test_data.h" - -base::string16 ConsumeRandomLengthString16( - base::FuzzedDataProvider& data_provider, - size_t max_chars) { - std::string bytes = data_provider.ConsumeRandomLengthString(max_chars * 2); - return base::string16(reinterpret_cast<const base::char16*>(bytes.data()), - bytes.size() / 2); -} - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - net::ntlm::NtlmClient client; - - // Generate the input strings and challenge message. The strings will have a - // maximum length 1 character longer than the maximum that |NtlmClient| will - // accept to allow exploring the error cases. - base::FuzzedDataProvider fdp(data, size); - base::string16 domain = - ConsumeRandomLengthString16(fdp, net::ntlm::kMaxFqdnLen + 1); - base::string16 username = - ConsumeRandomLengthString16(fdp, net::ntlm::kMaxUsernameLen + 1); - base::string16 password = - ConsumeRandomLengthString16(fdp, net::ntlm::kMaxPasswordLen + 1); - std::string hostname = - fdp.ConsumeRandomLengthString(net::ntlm::kMaxFqdnLen + 1); - std::string challenge_msg_bytes = fdp.ConsumeRemainingBytes(); - - client.GenerateAuthenticateMessage( - domain, username, password, hostname, net::ntlm::test::kClientChallenge, - net::ntlm::Buffer( - reinterpret_cast<const uint8_t*>(challenge_msg_bytes.data()), - challenge_msg_bytes.size())); - return 0; -} \ No newline at end of file
diff --git a/net/ntlm/ntlm_client_unittest.cc b/net/ntlm/ntlm_client_unittest.cc deleted file mode 100644 index b67c35c..0000000 --- a/net/ntlm/ntlm_client_unittest.cc +++ /dev/null
@@ -1,369 +0,0 @@ -// 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 "net/ntlm/ntlm_client.h" - -#include <string> - -#include "build/build_config.h" -#include "net/ntlm/ntlm.h" -#include "net/ntlm/ntlm_buffer_reader.h" -#include "net/ntlm/ntlm_buffer_writer.h" -#include "net/ntlm/ntlm_test_data.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace net { -namespace ntlm { - -namespace { - -Buffer GenerateAuthMsg(const NtlmClient& client, const Buffer& challenge_msg) { - return client.GenerateAuthenticateMessage( - test::kNtlmDomain, test::kUser, test::kPassword, test::kHostnameAscii, - test::kClientChallenge, challenge_msg); -} - -Buffer GenerateAuthMsg(const NtlmClient& client, - const uint8_t* challenge_msg, - size_t challenge_msg_len) { - return GenerateAuthMsg(client, Buffer(challenge_msg, challenge_msg_len)); -} - -Buffer GenerateAuthMsg(const NtlmClient& client, - const NtlmBufferWriter& challenge_writer) { - return GenerateAuthMsg(client, challenge_writer.GetBuffer()); -} - -bool GetAuthMsgResult(const NtlmClient& client, - const NtlmBufferWriter& challenge_writer) { - return !GenerateAuthMsg(client, challenge_writer).empty(); -} - -bool ReadBytesPayload(NtlmBufferReader* reader, uint8_t* buffer, size_t len) { - SecurityBuffer sec_buf; - return reader->ReadSecurityBuffer(&sec_buf) && (sec_buf.length == len) && - reader->ReadBytesFrom(sec_buf, buffer); -} - -// Reads bytes from a payload and assigns them to a string. This makes -// no assumptions about the underlying encoding. -bool ReadStringPayload(NtlmBufferReader* reader, std::string* str) { - SecurityBuffer sec_buf; - if (!reader->ReadSecurityBuffer(&sec_buf)) - return false; - - std::unique_ptr<uint8_t[]> raw(new uint8_t[sec_buf.length]); - if (!reader->ReadBytesFrom(sec_buf, raw.get())) - return false; - - str->assign(reinterpret_cast<const char*>(raw.get()), sec_buf.length); - return true; -} - -// Reads bytes from a payload and assigns them to a string16. This makes -// no assumptions about the underlying encoding. This will fail if there -// are an odd number of bytes in the payload. -bool ReadString16Payload(NtlmBufferReader* reader, base::string16* str) { - SecurityBuffer sec_buf; - if (!reader->ReadSecurityBuffer(&sec_buf) || (sec_buf.length % 2 != 0)) - return false; - - std::unique_ptr<uint8_t[]> raw(new uint8_t[sec_buf.length]); - if (!reader->ReadBytesFrom(sec_buf, raw.get())) - return false; - -#if defined(ARCH_CPU_BIG_ENDIAN) - for (size_t i = 0; i < sec_buf.length; i += 2) { - std::swap(raw.get()[i], raw.get()[i + 1]); - } -#endif - - str->assign(reinterpret_cast<const base::char16*>(raw.get()), - sec_buf.length / 2); - return true; -} - -} // namespace - -TEST(NtlmClientTest, VerifyNegotiateMessageV1) { - NtlmClient client; - - Buffer result = client.GetNegotiateMessage(); - - ASSERT_EQ(kNegotiateMessageLen, result.size()); - ASSERT_EQ(0, memcmp(test::kExpectedNegotiateMsg, result.data(), - kNegotiateMessageLen)); -} - -TEST(NtlmClientTest, MinimalStructurallyValidChallenge) { - NtlmClient client; - - NtlmBufferWriter writer(kMinChallengeHeaderLen); - ASSERT_TRUE( - writer.WriteBytes(test::kMinChallengeMessage, kMinChallengeHeaderLen)); - - ASSERT_TRUE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, MinimalStructurallyValidChallengeZeroOffset) { - NtlmClient client; - - // The spec (2.2.1.2) states that the length SHOULD be 0 and the offset - // SHOULD be where the payload would be if it was present. This is the - // expected response from a compliant server when no target name is sent. - // In reality the offset should always be ignored if the length is zero. - // Also implementations often just write zeros. - uint8_t raw[kMinChallengeHeaderLen]; - memcpy(raw, test::kMinChallengeMessage, kMinChallengeHeaderLen); - // Modify the default valid message to overwrite the offset to zero. - ASSERT_NE(0x00, raw[16]); - raw[16] = 0x00; - - NtlmBufferWriter writer(kMinChallengeHeaderLen); - ASSERT_TRUE(writer.WriteBytes(raw, arraysize(raw))); - - ASSERT_TRUE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, ChallengeMsgTooShort) { - NtlmClient client; - - // Fail because the minimum size valid message is 32 bytes. - NtlmBufferWriter writer(kMinChallengeHeaderLen - 1); - ASSERT_TRUE(writer.WriteBytes(test::kMinChallengeMessage, - kMinChallengeHeaderLen - 1)); - ASSERT_FALSE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, ChallengeMsgNoSig) { - NtlmClient client; - - // Fail because the first 8 bytes don't match "NTLMSSP\0" - uint8_t raw[kMinChallengeHeaderLen]; - memcpy(raw, test::kMinChallengeMessage, kMinChallengeHeaderLen); - // Modify the default valid message to overwrite the last byte of the - // signature. - ASSERT_NE(0xff, raw[7]); - raw[7] = 0xff; - NtlmBufferWriter writer(kMinChallengeHeaderLen); - ASSERT_TRUE(writer.WriteBytes(raw, arraysize(raw))); - ASSERT_FALSE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, ChallengeMsgWrongMessageType) { - NtlmClient client; - - // Fail because the message type should be MessageType::kChallenge - // (0x00000002) - uint8_t raw[kMinChallengeHeaderLen]; - memcpy(raw, test::kMinChallengeMessage, kMinChallengeHeaderLen); - // Modify the message type. - ASSERT_NE(0x03, raw[8]); - raw[8] = 0x03; - - NtlmBufferWriter writer(kMinChallengeHeaderLen); - ASSERT_TRUE(writer.WriteBytes(raw, arraysize(raw))); - - ASSERT_FALSE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, ChallengeWithNoTargetName) { - NtlmClient client; - - // The spec (2.2.1.2) states that the length SHOULD be 0 and the offset - // SHOULD be where the payload would be if it was present. This is the - // expected response from a compliant server when no target name is sent. - // In reality the offset should always be ignored if the length is zero. - // Also implementations often just write zeros. - uint8_t raw[kMinChallengeHeaderLen]; - memcpy(raw, test::kMinChallengeMessage, kMinChallengeHeaderLen); - // Modify the default valid message to overwrite the offset to zero. - ASSERT_NE(0x00, raw[16]); - raw[16] = 0x00; - - NtlmBufferWriter writer(kMinChallengeHeaderLen); - ASSERT_TRUE(writer.WriteBytes(raw, arraysize(raw))); - - ASSERT_TRUE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, Type2MessageWithTargetName) { - NtlmClient client; - - // One extra byte is provided for target name. - uint8_t raw[kMinChallengeHeaderLen + 1]; - memcpy(raw, test::kMinChallengeMessage, kMinChallengeHeaderLen); - // Modify the default valid message to indicate 1 byte is present in the - // target name payload. - ASSERT_NE(0x01, raw[12]); - ASSERT_EQ(0x00, raw[13]); - ASSERT_NE(0x01, raw[14]); - ASSERT_EQ(0x00, raw[15]); - raw[12] = 0x01; - raw[14] = 0x01; - // Put something in the target name. - ASSERT_NE('Z', raw[32]); - raw[32] = 'Z'; - - NtlmBufferWriter writer(kChallengeHeaderLen + 1); - ASSERT_TRUE(writer.WriteBytes(raw, arraysize(raw))); - - ASSERT_TRUE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, NoTargetNameOverflowFromOffset) { - NtlmClient client; - - uint8_t raw[kMinChallengeHeaderLen]; - memcpy(raw, test::kMinChallengeMessage, kMinChallengeHeaderLen); - // Modify the default valid message to claim that the target name field is 1 - // byte long overrunning the end of the message message. - ASSERT_NE(0x01, raw[12]); - ASSERT_EQ(0x00, raw[13]); - ASSERT_NE(0x01, raw[14]); - ASSERT_EQ(0x00, raw[15]); - raw[12] = 0x01; - raw[14] = 0x01; - - NtlmBufferWriter writer(kMinChallengeHeaderLen); - ASSERT_TRUE(writer.WriteBytes(raw, arraysize(raw))); - - // The above malformed message could cause an implementation to read outside - // the message buffer because the offset is past the end of the message. - // Verify it gets rejected. - ASSERT_FALSE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, NoTargetNameOverflowFromLength) { - NtlmClient client; - - // Message has 1 extra byte of space after the header for the target name. - // One extra byte is provided for target name. - uint8_t raw[kMinChallengeHeaderLen + 1]; - memcpy(raw, test::kMinChallengeMessage, kMinChallengeHeaderLen); - // Modify the default valid message to indicate 2 bytes are present in the - // target name payload (however there is only space for 1). - ASSERT_NE(0x02, raw[12]); - ASSERT_EQ(0x00, raw[13]); - ASSERT_NE(0x02, raw[14]); - ASSERT_EQ(0x00, raw[15]); - raw[12] = 0x02; - raw[14] = 0x02; - // Put something in the target name. - ASSERT_NE('Z', raw[32]); - raw[32] = 'Z'; - - NtlmBufferWriter writer(kMinChallengeHeaderLen + 1); - ASSERT_TRUE(writer.WriteBytes(raw, arraysize(raw))); - - // The above malformed message could cause an implementation - // to read outside the message buffer because the length is - // longer than available space. Verify it gets rejected. - ASSERT_FALSE(GetAuthMsgResult(client, writer)); -} - -TEST(NtlmClientTest, Type3UnicodeWithSessionSecuritySpecTest) { - NtlmClient client; - - Buffer result = GenerateAuthMsg(client, test::kChallengeMsgV1, - arraysize(test::kChallengeMsgV1)); - - ASSERT_FALSE(result.empty()); - ASSERT_EQ(arraysize(test::kExpectedAuthenticateMsgV1), result.size()); - ASSERT_EQ(0, memcmp(test::kExpectedAuthenticateMsgV1, result.data(), - result.size())); -} - -TEST(NtlmClientTest, Type3WithoutUnicode) { - NtlmClient client; - - Buffer result = GenerateAuthMsg(client, test::kMinChallengeMessageNoUnicode, - kMinChallengeHeaderLen); - ASSERT_FALSE(result.empty()); - - NtlmBufferReader reader(result); - ASSERT_TRUE(reader.MatchMessageHeader(MessageType::kAuthenticate)); - - // Read the LM and NTLM Response Payloads. - uint8_t actual_lm_response[kResponseLenV1]; - uint8_t actual_ntlm_response[kResponseLenV1]; - - ASSERT_TRUE(ReadBytesPayload(&reader, actual_lm_response, kResponseLenV1)); - ASSERT_TRUE(ReadBytesPayload(&reader, actual_ntlm_response, kResponseLenV1)); - - ASSERT_EQ(0, memcmp(test::kExpectedLmResponseWithV1SS, actual_lm_response, - kResponseLenV1)); - ASSERT_EQ(0, memcmp(test::kExpectedNtlmResponseWithV1SS, actual_ntlm_response, - kResponseLenV1)); - - std::string domain; - std::string username; - std::string hostname; - ASSERT_TRUE(ReadStringPayload(&reader, &domain)); - ASSERT_EQ(test::kNtlmDomainAscii, domain); - ASSERT_TRUE(ReadStringPayload(&reader, &username)); - ASSERT_EQ(test::kUserAscii, username); - ASSERT_TRUE(ReadStringPayload(&reader, &hostname)); - ASSERT_EQ(test::kHostnameAscii, hostname); - - // The session key is not used in HTTP. Since NTLMSSP_NEGOTIATE_KEY_EXCH - // was not sent this is empty. - ASSERT_TRUE(reader.MatchEmptySecurityBuffer()); - - // Verify the unicode flag is not set and OEM flag is. - NegotiateFlags flags; - ASSERT_TRUE(reader.ReadFlags(&flags)); - ASSERT_EQ(NegotiateFlags::kNone, flags & NegotiateFlags::kUnicode); - ASSERT_EQ(NegotiateFlags::kOem, flags & NegotiateFlags::kOem); -} - -TEST(NtlmClientTest, ClientDoesNotDowngradeSessionSecurity) { - NtlmClient client; - - Buffer result = GenerateAuthMsg(client, test::kMinChallengeMessageNoSS, - kMinChallengeHeaderLen); - ASSERT_FALSE(result.empty()); - - NtlmBufferReader reader(result); - ASSERT_TRUE(reader.MatchMessageHeader(MessageType::kAuthenticate)); - - // Read the LM and NTLM Response Payloads. - uint8_t actual_lm_response[kResponseLenV1]; - uint8_t actual_ntlm_response[kResponseLenV1]; - - ASSERT_TRUE(ReadBytesPayload(&reader, actual_lm_response, kResponseLenV1)); - ASSERT_TRUE(ReadBytesPayload(&reader, actual_ntlm_response, kResponseLenV1)); - - // The important part of this test is that even though the - // server told the client to drop session security. The client - // DID NOT drop it. - ASSERT_EQ(0, memcmp(test::kExpectedLmResponseWithV1SS, actual_lm_response, - kResponseLenV1)); - ASSERT_EQ(0, memcmp(test::kExpectedNtlmResponseWithV1SS, actual_ntlm_response, - kResponseLenV1)); - - base::string16 domain; - base::string16 username; - base::string16 hostname; - ASSERT_TRUE(ReadString16Payload(&reader, &domain)); - ASSERT_EQ(test::kNtlmDomain, domain); - ASSERT_TRUE(ReadString16Payload(&reader, &username)); - ASSERT_EQ(test::kUser, username); - ASSERT_TRUE(ReadString16Payload(&reader, &hostname)); - ASSERT_EQ(test::kHostname, hostname); - - // The session key is not used in HTTP. Since NTLMSSP_NEGOTIATE_KEY_EXCH - // was not sent this is empty. - ASSERT_TRUE(reader.MatchEmptySecurityBuffer()); - - // Verify the unicode and session security flag is set. - NegotiateFlags flags; - ASSERT_TRUE(reader.ReadFlags(&flags)); - ASSERT_EQ(NegotiateFlags::kUnicode, flags & NegotiateFlags::kUnicode); - ASSERT_EQ(NegotiateFlags::kExtendedSessionSecurity, - flags & NegotiateFlags::kExtendedSessionSecurity); -} - -} // namespace ntlm -} // namespace net
diff --git a/net/ntlm/ntlm_constants.h b/net/ntlm/ntlm_constants.h index cebba53..53f69a6 100644 --- a/net/ntlm/ntlm_constants.h +++ b/net/ntlm/ntlm_constants.h
@@ -38,7 +38,7 @@ }; // There are 3 types of messages in NTLM. The message type is a field in -// every NTLM message header. See [MS-NLMP] Section 2.2. +// every NTLM message header. enum class MessageType : uint32_t { kNegotiate = 0x01, kChallenge = 0x02, @@ -78,15 +78,10 @@ static constexpr size_t kSecurityBufferLen = (2 * sizeof(uint16_t)) + sizeof(uint32_t); static constexpr size_t kNegotiateMessageLen = 32; -static constexpr size_t kMinChallengeHeaderLen = 32; static constexpr size_t kChallengeHeaderLen = 32; static constexpr size_t kResponseLenV1 = 24; static constexpr size_t kChallengeLen = 8; static constexpr size_t kNtlmHashLen = 16; -static constexpr size_t kAuthenticateHeaderLenV1 = 64; -static constexpr size_t kMaxFqdnLen = 255; -static constexpr size_t kMaxUsernameLen = 104; -static constexpr size_t kMaxPasswordLen = 256; static constexpr NegotiateFlags kNegotiateMessageFlags = NegotiateFlags::kUnicode | NegotiateFlags::kOem |
diff --git a/net/ntlm/ntlm_test_data.h b/net/ntlm/ntlm_test_data.h index faabae92..2a9913b7 100644 --- a/net/ntlm/ntlm_test_data.h +++ b/net/ntlm/ntlm_test_data.h
@@ -35,15 +35,6 @@ constexpr uint8_t kClientChallenge[kChallengeLen] = {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}; -// Test input defined in [MS-NLMP] Section 4.2.3.3. -constexpr uint8_t kChallengeMsgV1[] = { - 0x4e, 0x54, 0x4c, 0x4d, 0x53, 0x53, 0x50, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x0c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x33, 0x82, 0x0a, 0x82, - 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x70, 0x17, 0x00, 0x00, 0x00, 0x0f, 0x53, 0x00, 0x65, 0x00, - 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00}; - // A minimal challenge message for tests. For NTLMv1 this implementation only // reads the smallest required version of the message (32 bytes). Some // servers may still send messages this small. The only relevant flags @@ -63,20 +54,6 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0x82, 0x08, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}; -// The same message as |kMinChallengeMessage| but with the -// NTLMSSP_NEGOTIATE_UNICODE flag cleared. -constexpr uint8_t kMinChallengeMessageNoUnicode[kChallengeHeaderLen] = { - 'N', 'T', 'L', 'M', 'S', 'S', 'P', '\0', 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x06, 0x82, - 0x08, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}; - -// The same message as |kMinChallengeMessage| but with the -// NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY flag cleared. -constexpr uint8_t kMinChallengeMessageNoSS[kChallengeHeaderLen] = { - 'N', 'T', 'L', 'M', 'S', 'S', 'P', '\0', 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0x82, - 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}; - // Test result value for NTOWFv1() defined in [MS-NLMP] Section 4.2.2.1.2. constexpr uint8_t kExpectedNtlmHashV1[kNtlmHashLen] = { 0xa4, 0xf4, 0x9c, 0x40, 0x65, 0x10, 0xbd, 0xca, @@ -97,80 +74,6 @@ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -// Expected negotiate message from this implementation. -// [0-7] - "NTLMSSP\0" (Signature) -// [9-11] - |MessageType::NEGOTIATE| (Message Type = 0x00000001) -// [12-15] - |NEGOTIATE_MESSAGE_FLAGS| (Flags = 0x00088207) -// [16-23] - |SecBuf(kNegotiateMessageLen, 0)|(Domain) -// [24-32] - |SecBuf(kNegotiateMessageLen, 0)|(Workstation) -// -// NOTE: Message does not include Version field. Since -// NTLMSSP_NEGOTIATE_VERSION is never sent, it is not required, and the server -// won't try to read it. The field is currently omitted for test compatibility -// with the existing implementation. When NTLMv2 is implemented this field -// will be present for both NTLMv1 and NTLMv2, however it will always be set to -// all zeros. The version field is only used for debugging and only defines -// a mapping to Windows operating systems. -// -// Similarly both Domain and Workstation fields are are not strictly required -// either (though are included here) since neither -// NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED nor -// NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED are ever sent. A compliant server -// should never read past the 16th byte in this message. -// -// See [MS-NLMP] Section 2.2.2.5 for more detail on flags and 2.2.2.1 for the -// Negotiate message in general. -constexpr uint8_t kExpectedNegotiateMsg[kNegotiateMessageLen] = { - 'N', 'T', 'L', 'M', 'S', 'S', 'P', '\0', 0x01, 0x00, 0x00, - 0x00, 0x07, 0x82, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00}; - -// Expected V1 Authenticate message from this implementation when sent -// |kChallengeMsgV1| as the challenge. -// -// [0-7] - "NTLMSSP\0" (Signature) -// [9-11] - |MessageType::kAuthenticate| (Message Type = 0x00000003) -// [12-19] - |SecBuf(64, RESPONSE_V1_LEN)| (LM Response) -// [20-27] - |SecBuf(88, RESPONSE_V1_LEN)| (NTLM Response) -// [28-35] - |SecBuf(112, 12)| (Target Name = L"Domain") -// [36-43] - |SecBuf(124, 8)| (User = L"User") -// [44-51] - |SecBuf(132, 16)| (Workstation = L"COMPUTER") -// [52-59] - |SecBuf(64, 0)| (Session Key (empty)) -// [60-63] - 0x00088203 (Flags) -// [64-87] - |EXPECTED_V1_WITH_SS_LM_RESPONSE| (LM Response Payload) -// [88-111] - |EXPECTED_V1_WITH_SS_NTLM_RESPONSE| (NTLM Response Payload) -// [112-123]- L"Domain" (Target Name Payload) -// [124-132]- L"User" (User Payload) -// [132-147]- L"COMPUTER" (Workstation Payload) -// -// NOTE: This is not identical to the message in [MS-NLMP] Section 4.2.2.3 for -// several reasons. -// -// 1) The flags are different because this implementation does not support -// the flags related to version, key exchange, signing and sealing. These -// flags are not relevant to implementing the NTLM scheme in HTTP. -// 2) Since key exchange is not required nor supported, the session base key -// payload is not required nor present. -// 3) The specification allows payloads to be in any order. This (and the -// prior) implementation uses a different payload order than the example. -// 4) The version field is Windows specific and there is no provision for -// non-Windows OS information. This message does not include a version field. -constexpr uint8_t kExpectedAuthenticateMsgV1[] = { - 'N', 'T', 'L', 'M', 'S', 'S', 'P', '\0', 0x03, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x18, 0x00, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x08, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x03, 0x82, 0x08, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x75, 0x37, 0xf8, 0x03, 0xae, 0x36, 0x71, 0x28, - 0xca, 0x45, 0x82, 0x04, 0xbd, 0xe7, 0xca, 0xf8, 0x1e, 0x97, 0xed, 0x26, - 0x83, 0x26, 0x72, 0x32, 'D', 0x00, 'o', 0x00, 'm', 0x00, 'a', 0x00, - 'i', 0x00, 'n', 0x00, 'U', 0x00, 's', 0x00, 'e', 0x00, 'r', 0x00, - 'C', 0x00, 'O', 0x00, 'M', 0x00, 'P', 0x00, 'U', 0x00, 'T', 0x00, - 'E', 0x00, 'R', 0x00, -}; - } // namespace test } // namespace ntlm } // namespace net
diff --git a/net/ntlm/ntlm_unittest.cc b/net/ntlm/ntlm_unittest.cc index 6a2ce032..6c40d16a 100644 --- a/net/ntlm/ntlm_unittest.cc +++ b/net/ntlm/ntlm_unittest.cc
@@ -13,9 +13,6 @@ #include "net/ntlm/ntlm.h" -#include <string> - -#include "base/strings/string16.h" #include "base/strings/utf_string_conversions.h" #include "net/ntlm/ntlm_test_data.h" #include "testing/gtest/include/gtest/gtest.h" @@ -120,4 +117,4 @@ } } // namespace ntlm -} // namespace net +} // namespace net \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/MSANExpectations b/third_party/WebKit/LayoutTests/MSANExpectations index cf7d6fef..c89dcdc 100644 --- a/third_party/WebKit/LayoutTests/MSANExpectations +++ b/third_party/WebKit/LayoutTests/MSANExpectations
@@ -37,6 +37,9 @@ crbug.com/462190 [ Linux ] inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.js [ Timeout ] crbug.com/462190 [ Linux ] inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js [ Timeout ] +crbug.com/751906 [ Linux ] http/tests/devtools/console/console-correct-suggestions.js [ Timeout Pass ] +crbug.com/751906 [ Linux ] virtual/mojo-loading/http/tests/devtools/console/console-correct-suggestions.js [ Timeout Pass ] + crbug.com/671556 [ Linux ] virtual/mojo-loading/http/tests/security/xssAuditor/report-script-tag-replace-state.html [ Timeout Pass ] crbug.com/671556 [ Linux ] virtual/mojo-loading/http/tests/security/xssAuditor/report-script-tag.html [ Timeout Pass ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 50f17b65..39704c5 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -3090,5 +3090,6 @@ crbug.com/750310 [ Win7 Debug ] virtual/off-main-thread-fetch/http/tests/inspector/network/network-blocked-reason.html [ Timeout ] # Sheriff failures 2017-08-03 -crbug.com/751906 [ Linux Debug ] http/tests/devtools/console/console-correct-suggestions.js [ Timeout Pass ] -crbug.com/751906 [ Linux Debug ] virtual/mojo-loading/http/tests/devtools/console/console-correct-suggestions.js [ Timeout Pass ] +crbug.com/751906 http/tests/devtools/console/console-correct-suggestions.js [ Timeout Pass ] +crbug.com/751906 virtual/mojo-loading/http/tests/devtools/console/console-correct-suggestions.js [ Timeout Pass ] +crbug.com/751955 external/wpt/webusb/idlharness.https.html [ Timeout Pass ]
diff --git a/third_party/WebKit/Source/core/editing/Editor.cpp b/third_party/WebKit/Source/core/editing/Editor.cpp index 4218697..13ade5d 100644 --- a/third_party/WebKit/Source/core/editing/Editor.cpp +++ b/third_party/WebKit/Source/core/editing/Editor.cpp
@@ -1494,10 +1494,10 @@ bool selection_did_not_change_dom_position = new_selection == GetFrame().Selection().GetSelectionInDOMTree(); GetFrame().Selection().SetSelection( - SelectionInDOMTree::Builder(new_selection) - .SetIsHandleVisible(GetFrame().Selection().IsHandleVisible()) - .Build(), - options); + new_selection, + SetSelectionData::Builder(options) + .SetShouldShowHandle(GetFrame().Selection().IsHandleVisible()) + .Build()); // Some editing operations change the selection visually without affecting its // position within the DOM. For example when you press return in the following
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.cpp b/third_party/WebKit/Source/core/editing/FrameSelection.cpp index c17f52c4..e01b253 100644 --- a/third_party/WebKit/Source/core/editing/FrameSelection.cpp +++ b/third_party/WebKit/Source/core/editing/FrameSelection.cpp
@@ -114,10 +114,6 @@ return *LifecycleContext(); } -bool FrameSelection::IsHandleVisible() const { - return GetSelectionInDOMTree().IsHandleVisible(); -} - const VisibleSelection& FrameSelection::ComputeVisibleSelectionInDOMTree() const { return selection_editor_->ComputeVisibleSelectionInDOMTree(); @@ -175,13 +171,13 @@ VisiblePositionForContentsPoint(point, GetFrame()); SelectionInDOMTree::Builder builder; builder.SetIsDirectional(GetSelectionInDOMTree().IsDirectional()); - builder.SetIsHandleVisible(true); if (position.IsNotNull()) builder.Collapse(position.ToPositionWithAffinity()); SetSelection(builder.Build(), SetSelectionData::Builder() .SetShouldCloseTyping(true) .SetShouldClearTypingStyle(true) .SetSetSelectionBy(SetSelectionBy::kUser) + .SetShouldShowHandle(true) .Build()); } @@ -222,9 +218,13 @@ const SelectionInDOMTree old_selection_in_dom_tree = selection_editor_->GetSelectionInDOMTree(); - if (old_selection_in_dom_tree == new_selection) + const bool is_changed = old_selection_in_dom_tree != new_selection; + const bool should_show_handle = options.ShouldShowHandle(); + if (!is_changed && is_handle_visible_ == should_show_handle) return false; - selection_editor_->SetSelection(new_selection); + if (is_changed) + selection_editor_->SetSelection(new_selection); + is_handle_visible_ = should_show_handle; ScheduleVisualUpdateForPaintInvalidationIfNeeded(); const Document& current_document = GetDocument(); @@ -397,6 +397,7 @@ if (granularity_strategy_) granularity_strategy_->Clear(); SetSelection(SelectionInDOMTree()); + is_handle_visible_ = false; } bool FrameSelection::SelectionHasFocus() const { @@ -692,9 +693,11 @@ } // TODO(editing-dev): Should we pass in set_selection_by? - SetSelection(SelectionInDOMTree::Builder() - .SelectAllChildren(*root) - .SetIsHandleVisible(IsHandleVisible()) + SetSelection(SelectionInDOMTree::Builder().SelectAllChildren(*root).Build(), + SetSelectionData::Builder() + .SetShouldCloseTyping(true) + .SetShouldClearTypingStyle(true) + .SetShouldShowHandle(IsHandleVisible()) .Build()); SelectFrameElementInParentIfFullySelected(); // TODO(editing-dev): Should we pass in set_selection_by? @@ -1089,13 +1092,13 @@ SetSelection( SelectionInDOMTree::Builder( GetGranularityStrategy()->UpdateExtent(contents_point, frame_)) - .SetIsHandleVisible(true) .Build(), SetSelectionData::Builder() .SetShouldCloseTyping(true) .SetShouldClearTypingStyle(true) .SetDoNotClearStrategy(true) .SetSetSelectionBy(SetSelectionBy::kUser) + .SetShouldShowHandle(true) .Build()); } @@ -1110,7 +1113,6 @@ .SetBaseAndExtentDeprecated(base_position.DeepEquivalent(), extent_position.DeepEquivalent()) .SetAffinity(base_position.Affinity()) - .SetIsHandleVisible(IsHandleVisible()) .Build(); if (new_selection.IsNone()) @@ -1130,11 +1132,11 @@ visible_selection.Start()); } builder.SetAffinity(visible_selection.Affinity()); - builder.SetIsHandleVisible(IsHandleVisible()); SetSelection(builder.Build(), SetSelectionData::Builder() .SetShouldCloseTyping(true) .SetShouldClearTypingStyle(true) .SetGranularity(granularity) + .SetShouldShowHandle(IsHandleVisible()) .Build()); }
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.h b/third_party/WebKit/Source/core/editing/FrameSelection.h index 74cc47f2..4b62ae75 100644 --- a/third_party/WebKit/Source/core/editing/FrameSelection.h +++ b/third_party/WebKit/Source/core/editing/FrameSelection.h
@@ -177,7 +177,7 @@ void SetUseSecureKeyboardEntryWhenActive(bool); - bool IsHandleVisible() const; + bool IsHandleVisible() const { return is_handle_visible_; } void UpdateSecureKeyboardEntryIfActive(); @@ -272,6 +272,7 @@ LayoutUnit x_pos_for_vertical_arrow_navigation_; bool focused_ : 1; + bool is_handle_visible_ = false; // Controls text granularity used to adjust the selection's extent in // moveRangeSelectionExtent.
diff --git a/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp b/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp index 7bd7407..262c94d 100644 --- a/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp +++ b/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp
@@ -296,7 +296,6 @@ const Position end_of_text(sample->firstChild(), 3); Selection().SetSelection(SelectionInDOMTree::Builder() .Collapse(end_of_text) - .SetIsHandleVisible(false) .Build()); EXPECT_FALSE(Selection().IsHandleVisible()); Selection().SelectAll(); @@ -305,10 +304,13 @@ "selectAll. Then they shouldn't be present " "after it."; - Selection().SetSelection(SelectionInDOMTree::Builder() - .Collapse(end_of_text) - .SetIsHandleVisible(true) - .Build()); + Selection().SetSelection( + SelectionInDOMTree::Builder().Collapse(end_of_text).Build(), + SetSelectionData::Builder() + .SetShouldCloseTyping(true) + .SetShouldClearTypingStyle(true) + .SetShouldShowHandle(true) + .Build()); EXPECT_TRUE(Selection().IsHandleVisible()); Selection().SelectAll(); EXPECT_TRUE(Selection().IsHandleVisible()) @@ -323,7 +325,6 @@ const Position end_of_text(sample->firstChild(), 3); Selection().SetSelection(SelectionInDOMTree::Builder() .Collapse(end_of_text) - .SetIsHandleVisible(false) .Build()); EXPECT_FALSE(Selection().IsHandleVisible()); Selection().SelectAll(); @@ -333,10 +334,13 @@ "bold command. Then they shouldn't " "be present after it."; - Selection().SetSelection(SelectionInDOMTree::Builder() - .Collapse(end_of_text) - .SetIsHandleVisible(true) - .Build()); + Selection().SetSelection( + SelectionInDOMTree::Builder().Collapse(end_of_text).Build(), + SetSelectionData::Builder() + .SetShouldCloseTyping(true) + .SetShouldClearTypingStyle(true) + .SetShouldShowHandle(true) + .Build()); EXPECT_TRUE(Selection().IsHandleVisible()); Selection().SelectAll(); GetDocument().execCommand("bold", false, "", ASSERT_NO_EXCEPTION); @@ -352,7 +356,6 @@ Selection().SetSelection( SelectionInDOMTree::Builder() .SetBaseAndExtent(Position(text, 0), Position(text, 5)) - .SetIsHandleVisible(false) .Build()); Selection().SetSelection(SelectionInDOMTree::Builder() @@ -367,7 +370,11 @@ Selection().SetSelection( SelectionInDOMTree::Builder() .SetBaseAndExtent(Position(text, 0), Position(text, 5)) - .SetIsHandleVisible(true) + .Build(), + SetSelectionData::Builder() + .SetShouldCloseTyping(true) + .SetShouldClearTypingStyle(true) + .SetShouldShowHandle(true) .Build()); Selection().SetSelection(SelectionInDOMTree::Builder()
diff --git a/third_party/WebKit/Source/core/editing/GranularityStrategyTest.cpp b/third_party/WebKit/Source/core/editing/GranularityStrategyTest.cpp index b7d8198..d1bd239 100644 --- a/third_party/WebKit/Source/core/editing/GranularityStrategyTest.cpp +++ b/third_party/WebKit/Source/core/editing/GranularityStrategyTest.cpp
@@ -725,9 +725,13 @@ SelectionInDOMTree::Builder() .Collapse(Position(sample->firstChild(), 2)) .SetIsDirectional(true) - .SetIsHandleVisible(true) .Build(); - Selection().SetSelection(selection_in_dom_tree); + Selection().SetSelection(selection_in_dom_tree, + SetSelectionData::Builder() + .SetShouldCloseTyping(true) + .SetShouldClearTypingStyle(true) + .SetShouldShowHandle(true) + .Build()); // Since, it is not obvious that |visiblePositionForContentsPoint()| returns // null position, we verify here. @@ -757,9 +761,13 @@ SelectionInDOMTree::Builder() .Collapse(Position(sample->firstChild(), 2)) .SetIsDirectional(true) - .SetIsHandleVisible(true) .Build(); - Selection().SetSelection(selection_in_dom_tree); + Selection().SetSelection(selection_in_dom_tree, + SetSelectionData::Builder() + .SetShouldCloseTyping(true) + .SetShouldClearTypingStyle(true) + .SetShouldShowHandle(true) + .Build()); // Since, it is not obvious that |visiblePositionForContentsPoint()| returns // null position, we verify here.
diff --git a/third_party/WebKit/Source/core/editing/InputMethodController.cpp b/third_party/WebKit/Source/core/editing/InputMethodController.cpp index 0026b50..2c313f9 100644 --- a/third_party/WebKit/Source/core/editing/InputMethodController.cpp +++ b/third_party/WebKit/Source/core/editing/InputMethodController.cpp
@@ -394,11 +394,12 @@ const SelectionInDOMTree& selection = SelectionInDOMTree::Builder() .SetBaseAndExtent(old_selection_range) - .SetIsHandleVisible(is_handle_visible) .Build(); GetFrame().Selection().SetSelection( - selection, - SetSelectionData::Builder().SetShouldCloseTyping(true).Build()); + selection, SetSelectionData::Builder() + .SetShouldCloseTyping(true) + .SetShouldShowHandle(is_handle_visible) + .Build()); return true; }
diff --git a/third_party/WebKit/Source/core/editing/SelectionController.cpp b/third_party/WebKit/Source/core/editing/SelectionController.cpp index 5f1e46c..0ac1de9 100644 --- a/third_party/WebKit/Source/core/editing/SelectionController.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionController.cpp
@@ -81,7 +81,6 @@ .SetBaseAndExtent(ToPositionInDOMTree(selection_in_flat_tree.Base()), ToPositionInDOMTree(selection_in_flat_tree.Extent())) .SetIsDirectional(selection_in_flat_tree.IsDirectional()) - .SetIsHandleVisible(selection_in_flat_tree.IsHandleVisible()) .Build(); } @@ -804,11 +803,12 @@ original_base_in_flat_tree_ = PositionInFlatTreeWithAffinity(); } - builder.SetIsHandleVisible(handle_visibility == HandleVisibility::kVisible); const SelectionInFlatTree& selection_in_flat_tree = builder.Build(); + const bool should_show_handle = + handle_visibility == HandleVisibility::kVisible; if (Selection().ComputeVisibleSelectionInFlatTree() == CreateVisibleSelection(selection_in_flat_tree) && - Selection().IsHandleVisible() == selection_in_flat_tree.IsHandleVisible()) + Selection().IsHandleVisible() == should_show_handle) return; Selection().SetSelection( ConvertToSelectionInDOMTree(selection_in_flat_tree), @@ -817,6 +817,7 @@ .SetShouldClearTypingStyle(true) .SetCursorAlignOnScroll(CursorAlignOnScroll::kIfNeeded) .SetGranularity(granularity) + .SetShouldShowHandle(should_show_handle) .Build()); }
diff --git a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp b/third_party/WebKit/Source/core/editing/SelectionEditor.cpp index 9e5f4db..7d87872 100644 --- a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
@@ -181,7 +181,6 @@ return; selection_ = SelectionInDOMTree::Builder() .SetBaseAndExtent(new_base, new_extent) - .SetIsHandleVisible(selection_.IsHandleVisible()) .Build(); MarkCacheDirty(); } @@ -199,7 +198,6 @@ return; selection_ = SelectionInDOMTree::Builder() .SetBaseAndExtent(new_base, new_extent) - .SetIsHandleVisible(selection_.IsHandleVisible()) .Build(); MarkCacheDirty(); }
diff --git a/third_party/WebKit/Source/core/editing/SelectionTemplate.cpp b/third_party/WebKit/Source/core/editing/SelectionTemplate.cpp index 2cc9a11..bfbf41f8 100644 --- a/third_party/WebKit/Source/core/editing/SelectionTemplate.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionTemplate.cpp
@@ -14,8 +14,7 @@ : base_(other.base_), extent_(other.extent_), affinity_(other.affinity_), - is_directional_(other.is_directional_), - is_handle_visible_(other.is_handle_visible_) + is_directional_(other.is_directional_) #if DCHECK_IS_ON() , dom_tree_version_(other.dom_tree_version_) @@ -39,8 +38,7 @@ DCHECK_EQ(base_.GetDocument(), other.GetDocument()) << *this << ' ' << other; return base_ == other.base_ && extent_ == other.extent_ && affinity_ == other.affinity_ && - is_directional_ == other.is_directional_ && - is_handle_visible_ == other.is_handle_visible_; + is_directional_ == other.is_directional_; } template <typename Strategy> @@ -305,14 +303,6 @@ return *this; } -template <typename Strategy> -typename SelectionTemplate<Strategy>::Builder& -SelectionTemplate<Strategy>::Builder::SetIsHandleVisible( - bool is_handle_visible) { - selection_.is_handle_visible_ = is_handle_visible; - return *this; -} - template class CORE_TEMPLATE_EXPORT SelectionTemplate<EditingStrategy>; template class CORE_TEMPLATE_EXPORT SelectionTemplate<EditingInFlatTreeStrategy>;
diff --git a/third_party/WebKit/Source/core/editing/SelectionTemplate.h b/third_party/WebKit/Source/core/editing/SelectionTemplate.h index 68470b87..c5984e9 100644 --- a/third_party/WebKit/Source/core/editing/SelectionTemplate.h +++ b/third_party/WebKit/Source/core/editing/SelectionTemplate.h
@@ -64,7 +64,6 @@ Builder& SetAffinity(TextAffinity); Builder& SetIsDirectional(bool); - Builder& SetIsHandleVisible(bool); private: SelectionTemplate selection_; @@ -85,7 +84,6 @@ TextAffinity Affinity() const { return affinity_; } bool IsCaret() const; bool IsDirectional() const { return is_directional_; } - bool IsHandleVisible() const { return is_handle_visible_; } bool IsNone() const { return base_.IsNull(); } bool IsRange() const; @@ -116,7 +114,6 @@ PositionTemplate<Strategy> extent_; TextAffinity affinity_ = TextAffinity::kDownstream; bool is_directional_ = false; - bool is_handle_visible_ = false; #if DCHECK_IS_ON() uint64_t dom_tree_version_; #endif
diff --git a/third_party/WebKit/Source/core/editing/SelectionTemplateTest.cpp b/third_party/WebKit/Source/core/editing/SelectionTemplateTest.cpp index 7ad8a8f..04c09315 100644 --- a/third_party/WebKit/Source/core/editing/SelectionTemplateTest.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionTemplateTest.cpp
@@ -16,7 +16,6 @@ EXPECT_EQ(TextAffinity::kDownstream, selection.Affinity()); EXPECT_FALSE(selection.IsDirectional()); - EXPECT_FALSE(selection.IsHandleVisible()); EXPECT_TRUE(selection.IsNone()); EXPECT_EQ(Position(), selection.Base()); EXPECT_EQ(Position(), selection.Extent()); @@ -33,7 +32,6 @@ EXPECT_EQ(TextAffinity::kDownstream, selection.Affinity()); EXPECT_FALSE(selection.IsDirectional()); - EXPECT_FALSE(selection.IsHandleVisible()); EXPECT_FALSE(selection.IsNone()); EXPECT_EQ(position, selection.Base()); EXPECT_EQ(position, selection.Extent()); @@ -52,17 +50,9 @@ EXPECT_EQ(TextAffinity::kDownstream, selection.Affinity()); EXPECT_FALSE(selection.IsDirectional()); - EXPECT_FALSE(selection.IsHandleVisible()); EXPECT_FALSE(selection.IsNone()); EXPECT_EQ(base, selection.Base()); EXPECT_EQ(extent, selection.Extent()); } -TEST_F(SelectionTest, setIsHandleVisible) { - SelectionInDOMTree::Builder builder; - builder.SetIsHandleVisible(true); - const SelectionInDOMTree& selection = builder.Build(); - EXPECT_TRUE(selection.IsHandleVisible()); -} - } // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/SetSelectionData.cpp b/third_party/WebKit/Source/core/editing/SetSelectionData.cpp index 5c879dd..6bd5062 100644 --- a/third_party/WebKit/Source/core/editing/SetSelectionData.cpp +++ b/third_party/WebKit/Source/core/editing/SetSelectionData.cpp
@@ -54,6 +54,12 @@ return *this; } +SetSelectionData::Builder& SetSelectionData::Builder::SetShouldShowHandle( + bool new_value) { + data_.should_show_handle_ = new_value; + return *this; +} + SetSelectionData::Builder& SetSelectionData::Builder::SetSetSelectionBy( SetSelectionBy new_value) { data_.set_selection_by_ = new_value;
diff --git a/third_party/WebKit/Source/core/editing/SetSelectionData.h b/third_party/WebKit/Source/core/editing/SetSelectionData.h index 86340c9..142eb35 100644 --- a/third_party/WebKit/Source/core/editing/SetSelectionData.h +++ b/third_party/WebKit/Source/core/editing/SetSelectionData.h
@@ -33,6 +33,7 @@ bool DoNotClearStrategy() const { return do_not_clear_strategy_; } bool ShouldCloseTyping() const { return should_close_typing_; } bool ShouldClearTypingStyle() const { return should_clear_typing_style_; } + bool ShouldShowHandle() const { return should_show_handle_; } private: CursorAlignOnScroll cursor_align_on_scroll_ = CursorAlignOnScroll::kIfNeeded; @@ -42,6 +43,7 @@ SetSelectionBy set_selection_by_ = SetSelectionBy::kSystem; bool should_close_typing_ = false; bool should_clear_typing_style_ = false; + bool should_show_handle_ = false; }; // This class is used for building |SelectionData| object. @@ -61,6 +63,7 @@ Builder& SetSetSelectionBy(SetSelectionBy); Builder& SetShouldCloseTyping(bool); Builder& SetShouldClearTypingStyle(bool); + Builder& SetShouldShowHandle(bool); private: SetSelectionData data_;
diff --git a/third_party/WebKit/Source/core/editing/VisibleSelection.cpp b/third_party/WebKit/Source/core/editing/VisibleSelection.cpp index 960a44c4..5191c45c8 100644 --- a/third_party/WebKit/Source/core/editing/VisibleSelection.cpp +++ b/third_party/WebKit/Source/core/editing/VisibleSelection.cpp
@@ -813,9 +813,7 @@ const VisibleSelectionTemplate<Strategy> selection_wrapper1(selection1); const VisibleSelectionTemplate<Strategy> selection_wrapper2(selection2); - return selection_wrapper1.Start() == selection_wrapper2.Start() && - selection_wrapper1.End() == selection_wrapper2.End() && - selection_wrapper1.Base() == selection_wrapper2.Base() && + return selection_wrapper1.Base() == selection_wrapper2.Base() && selection_wrapper1.Extent() == selection_wrapper2.Extent(); }
diff --git a/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp index 04fafba9..c786b7ea 100644 --- a/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp +++ b/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
@@ -1210,13 +1210,13 @@ handle_visibility_behavior == kShowSelectionHandle || (handle_visibility_behavior == kPreserveHandleVisibility && selection.IsHandleVisible()); - selection.SetSelection(SelectionInDOMTree::Builder() - .SetBaseAndExtent(range) - .SetAffinity(VP_DEFAULT_AFFINITY) - .SetIsHandleVisible(show_handles) - .SetIsDirectional(false) - .Build(), - SetSelectionData()); + selection.SetSelection( + SelectionInDOMTree::Builder() + .SetBaseAndExtent(range) + .SetAffinity(VP_DEFAULT_AFFINITY) + .SetIsDirectional(false) + .Build(), + SetSelectionData::Builder().SetShouldShowHandle(show_handles).Build()); } WebString WebLocalFrameImpl::RangeAsText(const WebRange& web_range) {
diff --git a/third_party/WebKit/Source/core/html/HTMLAudioElement.h b/third_party/WebKit/Source/core/html/HTMLAudioElement.h index b3bbb8b5..f3609b9a 100644 --- a/third_party/WebKit/Source/core/html/HTMLAudioElement.h +++ b/third_party/WebKit/Source/core/html/HTMLAudioElement.h
@@ -44,6 +44,11 @@ bool IsHTMLAudioElement() const override { return true; } + // WebMediaPlayerClient implementation. + void MediaRemotingStarted( + const WebString& remote_device_friendly_name) override {} + void MediaRemotingStopped() override {} + private: HTMLAudioElement(Document&); };
diff --git a/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp b/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp index 8988b2a..76e868b 100644 --- a/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp
@@ -510,7 +510,8 @@ event_target.ToLocalDOMWindow()->document(), options)); } -void HTMLVideoElement::MediaRemotingStarted() { +void HTMLVideoElement::MediaRemotingStarted( + const WebString& remote_device_friendly_name) { DCHECK(media_remoting_status_ == MediaRemotingStatus::kNotStarted); media_remoting_status_ = MediaRemotingStatus::kStarted; if (!remoting_interstitial_) { @@ -519,7 +520,7 @@ shadow_root.InsertBefore(remoting_interstitial_, shadow_root.firstChild()); HTMLMediaElement::AssertShadowRootChildren(shadow_root); } - remoting_interstitial_->Show(); + remoting_interstitial_->Show(remote_device_friendly_name); } void HTMLVideoElement::MediaRemotingStopped() {
diff --git a/third_party/WebKit/Source/core/html/HTMLVideoElement.h b/third_party/WebKit/Source/core/html/HTMLVideoElement.h index 3743a5b..e399d28 100644 --- a/third_party/WebKit/Source/core/html/HTMLVideoElement.h +++ b/third_party/WebKit/Source/core/html/HTMLVideoElement.h
@@ -147,7 +147,7 @@ } void DisableMediaRemoting(); - void MediaRemotingStarted() final; + void MediaRemotingStarted(const WebString& remote_device_friendly_name) final; void MediaRemotingStopped() final; WebMediaPlayer::DisplayType DisplayType() const final;
diff --git a/third_party/WebKit/Source/core/html/media/MediaRemotingElements.cpp b/third_party/WebKit/Source/core/html/media/MediaRemotingElements.cpp index 8c1f4c2..a7e60b1 100644 --- a/third_party/WebKit/Source/core/html/media/MediaRemotingElements.cpp +++ b/third_party/WebKit/Source/core/html/media/MediaRemotingElements.cpp
@@ -87,9 +87,6 @@ MediaRemotingInterstitial& interstitial) : HTMLDivElement(interstitial.GetDocument()) { SetShadowPseudoId(AtomicString("-internal-media-remoting-cast-text-message")); - setInnerText(interstitial.GetVideoElement().GetLocale().QueryString( - WebLocalizedString::kMediaRemotingCastText), - ASSERT_NO_EXCEPTION); } // ----------------------------
diff --git a/third_party/WebKit/Source/core/html/media/MediaRemotingInterstitial.cpp b/third_party/WebKit/Source/core/html/media/MediaRemotingInterstitial.cpp index 073fed8..13877d3 100644 --- a/third_party/WebKit/Source/core/html/media/MediaRemotingInterstitial.cpp +++ b/third_party/WebKit/Source/core/html/media/MediaRemotingInterstitial.cpp
@@ -8,6 +8,8 @@ #include "core/html/HTMLImageElement.h" #include "core/html/HTMLVideoElement.h" #include "core/html/media/MediaRemotingElements.h" +#include "platform/text/PlatformLocale.h" +#include "public/platform/WebLocalizedString.h" namespace { @@ -44,8 +46,21 @@ AppendChild(exit_button_); } -void MediaRemotingInterstitial::Show() { +void MediaRemotingInterstitial::Show( + const WebString& remote_device_friendly_name) { DCHECK(!should_be_visible_); + if (remote_device_friendly_name.IsEmpty()) { + cast_text_message_->setInnerText( + GetVideoElement().GetLocale().QueryString( + WebLocalizedString::kMediaRemotingCastToUnknownDeviceText), + ASSERT_NO_EXCEPTION); + } else { + cast_text_message_->setInnerText( + GetVideoElement().GetLocale().QueryString( + WebLocalizedString::kMediaRemotingCastText, + remote_device_friendly_name), + ASSERT_NO_EXCEPTION); + } if (toggle_insterstitial_timer_.IsActive()) toggle_insterstitial_timer_.Stop(); should_be_visible_ = true;
diff --git a/third_party/WebKit/Source/core/html/media/MediaRemotingInterstitial.h b/third_party/WebKit/Source/core/html/media/MediaRemotingInterstitial.h index 96624dc..c638c46 100644 --- a/third_party/WebKit/Source/core/html/media/MediaRemotingInterstitial.h +++ b/third_party/WebKit/Source/core/html/media/MediaRemotingInterstitial.h
@@ -31,8 +31,11 @@ public: explicit MediaRemotingInterstitial(HTMLVideoElement&); - // Show/Hide Media Remoting interstitial. - void Show(); + // Show/Hide Media Remoting interstitial. |remote_device_friendly_name| will + // be shown in the UI to indicate which device the content is rendered on. An + // empty name indicates an unknown remote device. A default message will be + // shown in this case. + void Show(const WebString& remote_device_friendly_name); void Hide(); void OnPosterImageChanged();
diff --git a/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp b/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp index e8feec96a..308d817 100644 --- a/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp +++ b/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp
@@ -311,7 +311,8 @@ DispatchEvent(Event::Create(EventTypeNames::connecting)); if (RuntimeEnabledFeatures::NewRemotePlaybackPipelineEnabled() && media_element_->IsHTMLVideoElement()) { - toHTMLVideoElement(media_element_)->MediaRemotingStarted(); + // TODO(xjz): Pass the remote device name. + toHTMLVideoElement(media_element_)->MediaRemotingStarted(WebString()); } break; case WebRemotePlaybackState::kConnected:
diff --git a/third_party/WebKit/Source/platform/wtf/text/AtomicString.h b/third_party/WebKit/Source/platform/wtf/text/AtomicString.h index efcac87..a1bb651 100644 --- a/third_party/WebKit/Source/platform/wtf/text/AtomicString.h +++ b/third_party/WebKit/Source/platform/wtf/text/AtomicString.h
@@ -185,6 +185,7 @@ AtomicString LowerASCII() const; AtomicString UpperASCII() const; + // See comments in WTFString.h. int ToInt(bool* ok = 0) const { return string_.ToInt(ok); } double ToDouble(bool* ok = 0) const { return string_.ToDouble(ok); } float ToFloat(bool* ok = 0) const { return string_.ToFloat(ok); }
diff --git a/third_party/WebKit/Source/platform/wtf/text/WTFString.h b/third_party/WebKit/Source/platform/wtf/text/WTFString.h index 3011dce..ba66eab 100644 --- a/third_party/WebKit/Source/platform/wtf/text/WTFString.h +++ b/third_party/WebKit/Source/platform/wtf/text/WTFString.h
@@ -373,12 +373,38 @@ // Convert the string into a number. + // The following ToFooStrict functions accept: + // - leading '+' + // - leading Unicode whitespace + // - trailing Unicode whitespace + // - no "-0" (ToUIntStrict and ToUInt64Strict) + // - no out-of-range numbers which the resultant type can't represent + // + // If the input string is not acceptable, 0 is returned and |*ok| becomes + // |false|. + // + // We can use these functions to implement a Web Platform feature only if the + // input string is already valid according to the specification of the + // feature. int ToIntStrict(bool* ok = 0) const; unsigned ToUIntStrict(bool* ok = 0) const; unsigned HexToUIntStrict(bool* ok) const; int64_t ToInt64Strict(bool* ok = 0) const; uint64_t ToUInt64Strict(bool* ok = 0) const; + // The following ToFoo functions accept: + // - leading '+' + // - leading Unicode whitespace + // - trailing garbage + // - no "-0" (ToUInt and ToUInt64) + // - no out-of-range numbers which the resultant type can't represent + // + // If the input string is not acceptable, 0 is returned and |*ok| becomes + // |false|. + // + // We can use these functions to implement a Web Platform feature only if the + // input string is already valid according to the specification of the + // feature. int ToInt(bool* ok = 0) const; unsigned ToUInt(bool* ok = 0) const; int64_t ToInt64(bool* ok = 0) const; @@ -400,6 +426,13 @@ // A small absolute numbers which a double/float can't represent is accepted, // and 0 is returned // + // If the input string is not acceptable, 0.0 is returned and |*ok| becomes + // |false|. + // + // We can use these functions to implement a Web Platform feature only if the + // input string is already valid according to the specification of the + // feature. + // // FIXME: Like the strict functions above, these give false for "ok" when // there is trailing garbage. Like the non-strict functions above, these // return the value when there is trailing garbage. It would be better if
diff --git a/third_party/WebKit/public/platform/WebLocalizedString.h b/third_party/WebKit/public/platform/WebLocalizedString.h index e98a86ee..0809ecd 100644 --- a/third_party/WebKit/public/platform/WebLocalizedString.h +++ b/third_party/WebKit/public/platform/WebLocalizedString.h
@@ -93,6 +93,7 @@ kInputElementAltText, kMediaRemotingDisableText, kMediaRemotingCastText, + kMediaRemotingCastToUnknownDeviceText, kMissingPluginText, kMultipleFileUploadText, kOtherColorLabel,
diff --git a/third_party/WebKit/public/platform/WebMediaPlayerClient.h b/third_party/WebKit/public/platform/WebMediaPlayerClient.h index 237d00e..880b58f 100644 --- a/third_party/WebKit/public/platform/WebMediaPlayerClient.h +++ b/third_party/WebKit/public/platform/WebMediaPlayerClient.h
@@ -105,7 +105,7 @@ // After the monitoring is activated, the client will inform WebMediaPlayer // when the element becomes/stops being the dominant visible content by // calling WebMediaPlayer::BecameDominantVisibleContent(bool). - virtual void ActivateViewportIntersectionMonitoring(bool) {} + virtual void ActivateViewportIntersectionMonitoring(bool) = 0; // Returns whether the media element is in an autoplay muted state. virtual bool IsAutoplayingMuted() = 0; @@ -117,8 +117,12 @@ virtual WebMediaPlayer::TrackId GetSelectedVideoTrackId() = 0; // Informs that media starts/stops being rendered and played back remotely. - virtual void MediaRemotingStarted() {} - virtual void MediaRemotingStopped() {} + // |remote_device_friendly_name| will be shown in the remoting UI to indicate + // which device the content is rendered on. An empty name indicates an unknown + // remote device. A default message will be shown in this case. + virtual void MediaRemotingStarted( + const WebString& remote_device_friendly_name) = 0; + virtual void MediaRemotingStopped() = 0; // Returns whether the media element has native controls. It does not mean // that the controls are currently visible.
diff --git a/ui/aura/test/test_screen.cc b/ui/aura/test/test_screen.cc index 72daa99..2f16add 100644 --- a/ui/aura/test/test_screen.cc +++ b/ui/aura/test/test_screen.cc
@@ -68,6 +68,12 @@ host_->OnHostResizedInPixels(bounds_in_pixel.size()); } +void TestScreen::SetColorSpace(const gfx::ColorSpace& color_space) { + display::Display display(GetPrimaryDisplay()); + display.set_color_space(color_space); + display_list().UpdateDisplay(display); +} + void TestScreen::SetDisplayRotation(display::Display::Rotation rotation) { display::Display display(GetPrimaryDisplay()); gfx::Rect bounds_in_pixel(display.GetSizeInPixel());
diff --git a/ui/aura/test/test_screen.h b/ui/aura/test/test_screen.h index ce60e331..7f625d3 100644 --- a/ui/aura/test/test_screen.h +++ b/ui/aura/test/test_screen.h
@@ -12,6 +12,7 @@ #include "ui/display/screen_base.h" namespace gfx { +class ColorSpace; class Insets; class Rect; class Transform; @@ -35,6 +36,7 @@ WindowTreeHost* CreateHostForPrimaryDisplay(); void SetDeviceScaleFactor(float device_scale_fator); + void SetColorSpace(const gfx::ColorSpace& color_space); void SetDisplayRotation(display::Display::Rotation rotation); void SetUIScale(float ui_scale); void SetWorkAreaInsets(const gfx::Insets& insets);
diff --git a/ui/aura/window_tree_host.cc b/ui/aura/window_tree_host.cc index a1f8630..1e915d1f 100644 --- a/ui/aura/window_tree_host.cc +++ b/ui/aura/window_tree_host.cc
@@ -356,7 +356,7 @@ if (metrics & DisplayObserver::DISPLAY_METRIC_COLOR_SPACE) { display::Screen* screen = display::Screen::GetScreen(); if (compositor_ && - display.id() != screen->GetDisplayNearestView(window()).id()) { + display.id() == screen->GetDisplayNearestView(window()).id()) { compositor_->SetDisplayColorSpace(display.color_space()); } }
diff --git a/ui/aura/window_tree_host_unittest.cc b/ui/aura/window_tree_host_unittest.cc index 735d26d..3c4900bd7 100644 --- a/ui/aura/window_tree_host_unittest.cc +++ b/ui/aura/window_tree_host_unittest.cc
@@ -86,4 +86,12 @@ host()->RemoveEventRewriter(&event_rewriter); } +TEST_F(WindowTreeHostTest, ColorSpace) { + EXPECT_EQ(gfx::ColorSpace::CreateSRGB(), + host()->compositor()->output_color_space()); + test_screen()->SetColorSpace(gfx::ColorSpace::CreateSCRGBLinear()); + EXPECT_EQ(gfx::ColorSpace::CreateSCRGBLinear(), + host()->compositor()->output_color_space()); +} + } // namespace aura
diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h index 573e654..95d086f 100644 --- a/ui/compositor/compositor.h +++ b/ui/compositor/compositor.h
@@ -234,6 +234,11 @@ // compositing layers on. float device_scale_factor() const { return device_scale_factor_; } + // The color space of the device that this compositor is being displayed on. + const gfx::ColorSpace& output_color_space() const { + return output_color_space_; + } + // Where possible, draws are scissored to a damage region calculated from // changes to layer properties. This bypasses that and indicates that // the whole frame needs to be drawn.