diff --git a/.gn b/.gn index 1f94854..5d79ebc3 100644 --- a/.gn +++ b/.gn
@@ -48,20 +48,29 @@ "//components/omnibox/*", "//components/os_crypt/*", "//components/pref_registry/*", + "//components/translate/*", + "//components/ui/*", "//components/undo/*", "//components/update_client/*", + "//components/upload_list/*", "//components/url_formatter/*", "//components/url_matcher/*", "//components/user_manager/*", "//components/user_prefs/*", "//components/variations/*", + "//components/visitedlink/*", "//components/wallpaper/*", "//components/web_cache/*", - "//components/webcrypto/*", "//components/web_modal/*", + "//components/web_resource/*", "//components/web_view/*", + "//components/webcrypto/*", "//components/webdata/*", "//components/webdata_services/*", + "//components/webp_transcode/*", + "//components/webui_generator/*", + "//components/webusb/*", + "//components/wifi/*", #"//content/*", # A whole lot of errors. "//content/public/common:result_codes",
diff --git a/DEPS b/DEPS index d0491d1e..452c1a3 100644 --- a/DEPS +++ b/DEPS
@@ -43,7 +43,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': '97a062a564b09b498633305a4500a6c5a5016f93', + 'v8_revision': 'b01f6b3838a1c00f9da6ffe6a746287a59a78bdd', # 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. @@ -59,7 +59,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': 'ae2d47b22d213cb36a66326c3167cfbbae90b9d4', + 'pdfium_revision': 'b5cbfb4cd12b6499912367f9a1e11c666157acb8', # 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/base/json/json_file_value_serializer.cc b/base/json/json_file_value_serializer.cc index 72a09700..9862703 100644 --- a/base/json/json_file_value_serializer.cc +++ b/base/json/json_file_value_serializer.cc
@@ -100,8 +100,9 @@ } } -base::Value* JSONFileValueDeserializer::Deserialize(int* error_code, - std::string* error_str) { +scoped_ptr<base::Value> JSONFileValueDeserializer::Deserialize( + int* error_code, + std::string* error_str) { std::string json_string; int error = ReadFileToString(&json_string); if (error != JSON_NO_ERROR) {
diff --git a/base/json/json_file_value_serializer.h b/base/json/json_file_value_serializer.h index aab47ee..4e5e09c 100644 --- a/base/json/json_file_value_serializer.h +++ b/base/json/json_file_value_serializer.h
@@ -58,8 +58,8 @@ // If |error_message| is non-null, it will be filled in with a formatted // error message including the location of the error if appropriate. // The caller takes ownership of the returned value. - base::Value* Deserialize(int* error_code, - std::string* error_message) override; + scoped_ptr<base::Value> Deserialize(int* error_code, + std::string* error_message) override; // This enum is designed to safely overlap with JSONReader::JsonParseError. enum JsonFileError {
diff --git a/base/json/json_string_value_serializer.cc b/base/json/json_string_value_serializer.cc index f2d078f3..af7e010 100644 --- a/base/json/json_string_value_serializer.cc +++ b/base/json/json_string_value_serializer.cc
@@ -48,12 +48,11 @@ JSONStringValueDeserializer::~JSONStringValueDeserializer() {} -Value* JSONStringValueDeserializer::Deserialize(int* error_code, - std::string* error_str) { +scoped_ptr<Value> JSONStringValueDeserializer::Deserialize( + int* error_code, + std::string* error_str) { return base::JSONReader::ReadAndReturnError( - json_string_, - allow_trailing_comma_ ? base::JSON_ALLOW_TRAILING_COMMAS - : base::JSON_PARSE_RFC, - error_code, error_str) - .release(); + json_string_, allow_trailing_comma_ ? base::JSON_ALLOW_TRAILING_COMMAS + : base::JSON_PARSE_RFC, + error_code, error_str); }
diff --git a/base/json/json_string_value_serializer.h b/base/json/json_string_value_serializer.h index bc0e66d..90f697d9 100644 --- a/base/json/json_string_value_serializer.h +++ b/base/json/json_string_value_serializer.h
@@ -59,8 +59,8 @@ // If |error_message| is non-null, it will be filled in with a formatted // error message including the location of the error if appropriate. // The caller takes ownership of the returned value. - base::Value* Deserialize(int* error_code, - std::string* error_message) override; + scoped_ptr<base::Value> Deserialize(int* error_code, + std::string* error_message) override; void set_allow_trailing_comma(bool new_value) { allow_trailing_comma_ = new_value;
diff --git a/base/json/json_value_serializer_unittest.cc b/base/json/json_value_serializer_unittest.cc index 3164d100..7da11cf 100644 --- a/base/json/json_value_serializer_unittest.cc +++ b/base/json/json_value_serializer_unittest.cc
@@ -93,8 +93,8 @@ int error_code = 0; std::string error_message; - scoped_ptr<Value> value( - str_deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<Value> value = + str_deserializer.Deserialize(&error_code, &error_message); ASSERT_TRUE(value.get()); ASSERT_EQ(0, error_code); ASSERT_TRUE(error_message.empty()); @@ -112,8 +112,8 @@ int error_code = 0; std::string error_message; - scoped_ptr<Value> value( - str_deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<Value> value = + str_deserializer.Deserialize(&error_code, &error_message); ASSERT_TRUE(value.get()); ASSERT_EQ(0, error_code); ASSERT_TRUE(error_message.empty()); @@ -129,14 +129,14 @@ int error_code = 0; std::string error_message; - scoped_ptr<Value> value( - str_deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<Value> value = + str_deserializer.Deserialize(&error_code, &error_message); ASSERT_FALSE(value.get()); ASSERT_NE(0, error_code); ASSERT_FALSE(error_message.empty()); // Now the flag is set and it must pass. str_deserializer.set_allow_trailing_comma(true); - value.reset(str_deserializer.Deserialize(&error_code, &error_message)); + value = str_deserializer.Deserialize(&error_code, &error_message); ASSERT_TRUE(value.get()); ASSERT_EQ(JSONReader::JSON_TRAILING_COMMA, error_code); // Verify if the same JSON is still there. @@ -157,8 +157,8 @@ int error_code = 0; std::string error_message; - scoped_ptr<Value> value( - file_deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<Value> value = + file_deserializer.Deserialize(&error_code, &error_message); ASSERT_TRUE(value.get()); ASSERT_EQ(0, error_code); ASSERT_TRUE(error_message.empty()); @@ -182,14 +182,14 @@ // This must fail without the proper flag. int error_code = 0; std::string error_message; - scoped_ptr<Value> value( - file_deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<Value> value = + file_deserializer.Deserialize(&error_code, &error_message); ASSERT_FALSE(value.get()); ASSERT_NE(0, error_code); ASSERT_FALSE(error_message.empty()); // Now the flag is set and it must pass. file_deserializer.set_allow_trailing_comma(true); - value.reset(file_deserializer.Deserialize(&error_code, &error_message)); + value = file_deserializer.Deserialize(&error_code, &error_message); ASSERT_TRUE(value.get()); ASSERT_EQ(JSONReader::JSON_TRAILING_COMMA, error_code); // Verify if the same JSON is still there. @@ -205,9 +205,9 @@ JSONStringValueDeserializer deserializer(kTestWithCommas); deserializer.set_allow_trailing_comma(true); JSONStringValueDeserializer deserializer_expected(kTestNoCommas); - root.reset(deserializer.Deserialize(NULL, NULL)); + root = deserializer.Deserialize(NULL, NULL); ASSERT_TRUE(root.get()); - root_expected.reset(deserializer_expected.Deserialize(NULL, NULL)); + root_expected = deserializer_expected.Deserialize(NULL, NULL); ASSERT_TRUE(root_expected.get()); ASSERT_TRUE(root->Equals(root_expected.get())); } @@ -216,7 +216,7 @@ static const char kOriginalSerialization[] = "{\"bool\":true,\"double\":3.14,\"int\":42,\"list\":[1,2],\"null\":null}"; JSONStringValueDeserializer deserializer(kOriginalSerialization); - scoped_ptr<Value> root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<Value> root = deserializer.Deserialize(NULL, NULL); ASSERT_TRUE(root.get()); ASSERT_TRUE(root->IsType(Value::TYPE_DICTIONARY)); @@ -326,7 +326,7 @@ // escaped ascii text -> json JSONStringValueDeserializer deserializer(kExpected); - scoped_ptr<Value> deserial_root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<Value> deserial_root = deserializer.Deserialize(NULL, NULL); ASSERT_TRUE(deserial_root.get()); DictionaryValue* dict_root = static_cast<DictionaryValue*>(deserial_root.get()); @@ -350,7 +350,7 @@ // escaped ascii text -> json JSONStringValueDeserializer deserializer(kExpected); - scoped_ptr<Value> deserial_root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<Value> deserial_root = deserializer.Deserialize(NULL, NULL); ASSERT_TRUE(deserial_root.get()); DictionaryValue* dict_root = static_cast<DictionaryValue*>(deserial_root.get()); @@ -361,7 +361,7 @@ // Test converting escaped regular chars static const char kEscapedChars[] = "{\"test\":\"\\u0067\\u006f\"}"; JSONStringValueDeserializer deserializer2(kEscapedChars); - deserial_root.reset(deserializer2.Deserialize(NULL, NULL)); + deserial_root = deserializer2.Deserialize(NULL, NULL); ASSERT_TRUE(deserial_root.get()); dict_root = static_cast<DictionaryValue*>(deserial_root.get()); ASSERT_TRUE(dict_root->GetString("test", &test_value)); @@ -413,7 +413,7 @@ JSONFileValueDeserializer deserializer(original_file_path); scoped_ptr<Value> root; - root.reset(deserializer.Deserialize(NULL, NULL)); + root = deserializer.Deserialize(NULL, NULL); ASSERT_TRUE(root.get()); ASSERT_TRUE(root->IsType(Value::TYPE_DICTIONARY)); @@ -461,7 +461,7 @@ JSONFileValueDeserializer deserializer(original_file_path); scoped_ptr<Value> root; - root.reset(deserializer.Deserialize(NULL, NULL)); + root = deserializer.Deserialize(NULL, NULL); ASSERT_TRUE(root.get()); // Now try writing. @@ -486,7 +486,7 @@ ASSERT_TRUE(PathExists(source_file_path)); JSONFileValueDeserializer deserializer(source_file_path); scoped_ptr<Value> root; - root.reset(deserializer.Deserialize(NULL, NULL)); + root = deserializer.Deserialize(NULL, NULL); ASSERT_TRUE(root.get()); }
diff --git a/base/mac/authorization_util.mm b/base/mac/authorization_util.mm index 1dfd5a01..a97796e8 100644 --- a/base/mac/authorization_util.mm +++ b/base/mac/authorization_util.mm
@@ -50,8 +50,8 @@ const char* icon_path_c = [icon_path fileSystemRepresentation]; size_t icon_path_length = icon_path_c ? strlen(icon_path_c) : 0; - // The OS will append " Type an administrator's name and password to allow - // <CFBundleDisplayName> to make changes." + // The OS will dispay |prompt| along with a sentence asking the user to type + // the "password to allow this." NSString* prompt_ns = base::mac::CFToNSCast(prompt); const char* prompt_c = [prompt_ns UTF8String]; size_t prompt_length = prompt_c ? strlen(prompt_c) : 0;
diff --git a/base/prefs/json_pref_store.cc b/base/prefs/json_pref_store.cc index 87943d1..22036de 100644 --- a/base/prefs/json_pref_store.cc +++ b/base/prefs/json_pref_store.cc
@@ -118,7 +118,7 @@ scoped_ptr<JsonPrefStore::ReadResult> read_result( new JsonPrefStore::ReadResult); JSONFileValueDeserializer deserializer(path); - read_result->value.reset(deserializer.Deserialize(&error_code, &error_msg)); + read_result->value = deserializer.Deserialize(&error_code, &error_msg); read_result->error = HandleReadErrors(read_result->value.get(), path, error_code, error_msg); read_result->no_dir = !base::PathExists(path.DirName());
diff --git a/base/test/gtest_util.cc b/base/test/gtest_util.cc index 19cec51..3f44d74 100644 --- a/base/test/gtest_util.cc +++ b/base/test/gtest_util.cc
@@ -60,8 +60,8 @@ JSONFileValueDeserializer deserializer(path); int error_code = 0; std::string error_message; - scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_message); if (!value.get()) return false;
diff --git a/base/values.h b/base/values.h index 56be542..a64f6a8f 100644 --- a/base/values.h +++ b/base/values.h
@@ -531,7 +531,8 @@ // error_code will be set with the underlying error. // If |error_message| is non-null, it will be filled in with a formatted // error message including the location of the error if appropriate. - virtual Value* Deserialize(int* error_code, std::string* error_str) = 0; + virtual scoped_ptr<Value> Deserialize(int* error_code, + std::string* error_str) = 0; }; // Stream operator so Values can be used in assertion statements. In order that
diff --git a/build/ios/grit_whitelist.txt b/build/ios/grit_whitelist.txt index d1771cc..576d6bb 100644 --- a/build/ios/grit_whitelist.txt +++ b/build/ios/grit_whitelist.txt
@@ -1,6 +1,3 @@ -IDR_ABOUT_VERSION_CSS -IDR_ABOUT_VERSION_HTML -IDR_ABOUT_VERSION_JS IDR_APPLE_FLAGS_HTML IDR_AUTOFILL_TOOLTIP_ICON IDR_AUTOFILL_TOOLTIP_ICON_H @@ -62,6 +59,9 @@ IDR_SIGNIN_INTERNALS_INDEX_JS IDR_TOOLBAR_SHADOW_FULL_BLEED IDR_UBER_UTILS_JS +IDR_VERSION_UI_CSS +IDR_VERSION_UI_HTML +IDR_VERSION_UI_JS IDR_WEBUI_CSS_ACTION_LINK IDR_WEBUI_CSS_ALERT_OVERLAY IDR_WEBUI_CSS_APPS_COMMON @@ -143,18 +143,8 @@ IDS_ABOUT_MAC IDS_ABOUT_VERSION_32BIT IDS_ABOUT_VERSION_64BIT -IDS_ABOUT_VERSION_COMMAND_LINE IDS_ABOUT_VERSION_COMPANY_NAME IDS_ABOUT_VERSION_COPYRIGHT -IDS_ABOUT_VERSION_EXECUTABLE_PATH -IDS_ABOUT_VERSION_OFFICIAL -IDS_ABOUT_VERSION_OS -IDS_ABOUT_VERSION_PATH_NOTFOUND -IDS_ABOUT_VERSION_PROFILE_PATH -IDS_ABOUT_VERSION_REVISION -IDS_ABOUT_VERSION_TITLE -IDS_ABOUT_VERSION_USER_AGENT -IDS_ABOUT_VERSION_VARIATIONS IDS_ACCEPT_LANGUAGES IDS_ACCNAME_BACK IDS_ACCNAME_CLEAR_TEXT @@ -861,5 +851,16 @@ IDS_TOUCH_EVENTS_NAME IDS_UPGRADE_AVAILABLE IDS_UPGRADE_AVAILABLE_BUTTON +IDS_VERSION_UI_COMMAND_LINE +IDS_VERSION_UI_EXECUTABLE_PATH +IDS_VERSION_UI_OFFICIAL +IDS_VERSION_UI_OS +IDS_VERSION_UI_PATH_NOTFOUND +IDS_VERSION_UI_PROFILE_PATH +IDS_VERSION_UI_REVISION +IDS_VERSION_UI_TITLE +IDS_VERSION_UI_UNOFFICIAL +IDS_VERSION_UI_USER_AGENT +IDS_VERSION_UI_VARIATIONS IDS_WEB_FONT_FAMILY IDS_WEB_FONT_SIZE
diff --git a/cc/surfaces/surface.cc b/cc/surfaces/surface.cc index e3b0f5ec..16987cb8 100644 --- a/cc/surfaces/surface.cc +++ b/cc/surfaces/surface.cc
@@ -98,22 +98,11 @@ void Surface::RequestCopyOfOutput(scoped_ptr<CopyOutputRequest> copy_request) { if (current_frame_ && - !current_frame_->delegated_frame_data->render_pass_list.empty()) { - ScopedPtrVector<CopyOutputRequest>& copy_requests = - current_frame_->delegated_frame_data->render_pass_list.back() - ->copy_requests; - - if (void* source = copy_request->source()) { - // Remove existing CopyOutputRequests made on the Surface by the same - // source. - auto to_remove = copy_requests.remove_if([source]( - const CopyOutputRequest* x) { return x->source() == source; }); - copy_requests.erase(to_remove, copy_requests.end()); - } - copy_requests.push_back(copy_request.Pass()); - } else { + !current_frame_->delegated_frame_data->render_pass_list.empty()) + current_frame_->delegated_frame_data->render_pass_list.back() + ->copy_requests.push_back(copy_request.Pass()); + else copy_request->SendEmptyResult(); - } } void Surface::TakeCopyOutputRequests(
diff --git a/cc/surfaces/surface_aggregator.cc b/cc/surfaces/surface_aggregator.cc index 902f836..69618ba8b 100644 --- a/cc/surfaces/surface_aggregator.cc +++ b/cc/surfaces/surface_aggregator.cc
@@ -547,6 +547,9 @@ if (provider_) provider_->DeclareUsedResourcesFromChild(child_id, referenced_resources); + for (const auto& render_pass : frame_data->render_pass_list) + has_copy_requests_ |= !render_pass->copy_requests.empty(); + gfx::Rect damage_rect; if (!frame_data->render_pass_list.empty()) { RenderPass* last_pass = frame_data->render_pass_list.back(); @@ -563,13 +566,6 @@ damage_rect.Union( MathUtil::MapEnclosingClippedRect(surface_info.second, surface_damage)); } - - if (surface->factory()) - surface->factory()->WillDrawSurface(surface->surface_id(), damage_rect); - - for (const auto& render_pass : frame_data->render_pass_list) - has_copy_requests_ |= !render_pass->copy_requests.empty(); - referenced_surfaces_.erase(it); return damage_rect; }
diff --git a/cc/surfaces/surface_aggregator_unittest.cc b/cc/surfaces/surface_aggregator_unittest.cc index bee479c..bfec6e6 100644 --- a/cc/surfaces/surface_aggregator_unittest.cc +++ b/cc/surfaces/surface_aggregator_unittest.cc
@@ -43,13 +43,6 @@ class EmptySurfaceFactoryClient : public SurfaceFactoryClient { public: void ReturnResources(const ReturnedResourceArray& resources) override {} - void WillDrawSurface(SurfaceId id, const gfx::Rect& damage_rect) override { - last_surface_id_ = id; - last_damage_rect_ = damage_rect; - } - - gfx::Rect last_damage_rect_; - SurfaceId last_surface_id_; }; class SurfaceAggregatorTest : public testing::Test { @@ -173,10 +166,6 @@ SurfaceId ids[] = {root_surface_id_}; AggregateAndVerify(passes, arraysize(passes), ids, arraysize(ids)); - - // Check that WillDrawSurface was called. - EXPECT_EQ(gfx::Rect(SurfaceSize()), empty_client_.last_damage_rect_); - EXPECT_EQ(root_surface_id_, empty_client_.last_surface_id_); } TEST_F(SurfaceAggregatorValidSurfaceTest, OpacityCopied) {
diff --git a/cc/surfaces/surface_factory.cc b/cc/surfaces/surface_factory.cc index 72ebdc40d..3e83c8c 100644 --- a/cc/surfaces/surface_factory.cc +++ b/cc/surfaces/surface_factory.cc
@@ -8,7 +8,6 @@ #include "cc/output/compositor_frame.h" #include "cc/output/copy_output_request.h" #include "cc/surfaces/surface.h" -#include "cc/surfaces/surface_factory_client.h" #include "cc/surfaces/surface_manager.h" #include "ui/gfx/geometry/size.h" @@ -76,11 +75,6 @@ manager_->SurfaceModified(surface_id); } -void SurfaceFactory::WillDrawSurface(SurfaceId id, - const gfx::Rect& damage_rect) { - client_->WillDrawSurface(id, damage_rect); -} - void SurfaceFactory::ReceiveFromChild( const TransferableResourceArray& resources) { holder_.ReceiveFromChild(resources);
diff --git a/cc/surfaces/surface_factory.h b/cc/surfaces/surface_factory.h index 762d5a2..5af8d2e 100644 --- a/cc/surfaces/surface_factory.h +++ b/cc/surfaces/surface_factory.h
@@ -11,7 +11,6 @@ #include "base/containers/scoped_ptr_hash_map.h" #include "base/memory/scoped_ptr.h" #include "base/memory/weak_ptr.h" -#include "base/observer_list.h" #include "cc/output/compositor_frame.h" #include "cc/surfaces/surface_id.h" #include "cc/surfaces/surface_resource_holder.h" @@ -56,8 +55,6 @@ void RequestCopyOfSurface(SurfaceId surface_id, scoped_ptr<CopyOutputRequest> copy_request); - void WillDrawSurface(SurfaceId id, const gfx::Rect& damage_rect); - SurfaceFactoryClient* client() { return client_; } void ReceiveFromChild(const TransferableResourceArray& resources);
diff --git a/cc/surfaces/surface_factory_client.h b/cc/surfaces/surface_factory_client.h index c2a04af6..9866b27 100644 --- a/cc/surfaces/surface_factory_client.h +++ b/cc/surfaces/surface_factory_client.h
@@ -6,9 +6,7 @@ #define CC_SURFACES_SURFACE_FACTORY_CLIENT_H_ #include "cc/resources/returned_resource.h" -#include "cc/surfaces/surface_id.h" #include "cc/surfaces/surfaces_export.h" -#include "ui/gfx/geometry/rect.h" namespace cc { @@ -17,9 +15,6 @@ virtual ~SurfaceFactoryClient() {} virtual void ReturnResources(const ReturnedResourceArray& resources) = 0; - - virtual void WillDrawSurface(SurfaceId surface_id, - const gfx::Rect& damage_rect) {} }; } // namespace cc
diff --git a/cc/surfaces/surface_factory_unittest.cc b/cc/surfaces/surface_factory_unittest.cc index 9629a4e..c7ce9640 100644 --- a/cc/surfaces/surface_factory_unittest.cc +++ b/cc/surfaces/surface_factory_unittest.cc
@@ -4,8 +4,6 @@ #include "base/bind.h" #include "cc/output/compositor_frame.h" -#include "cc/output/copy_output_request.h" -#include "cc/output/copy_output_result.h" #include "cc/output/delegated_frame_data.h" #include "cc/resources/resource_provider.h" #include "cc/surfaces/surface.h" @@ -521,61 +519,5 @@ surface_id_ = SurfaceId(); } -void CopyRequestTestCallback(bool* called, - scoped_ptr<CopyOutputResult> result) { - *called = true; -} - -TEST_F(SurfaceFactoryTest, DuplicateCopyRequest) { - { - scoped_ptr<RenderPass> render_pass(RenderPass::Create()); - render_pass->referenced_surfaces.push_back(surface_id_); - scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); - frame_data->render_pass_list.push_back(render_pass.Pass()); - scoped_ptr<CompositorFrame> frame(new CompositorFrame); - frame->delegated_frame_data = frame_data.Pass(); - factory_.SubmitCompositorFrame(surface_id_, frame.Pass(), - SurfaceFactory::DrawCallback()); - } - void* source1 = &source1; - void* source2 = &source2; - - bool called1 = false; - scoped_ptr<CopyOutputRequest> request; - request = CopyOutputRequest::CreateRequest( - base::Bind(&CopyRequestTestCallback, &called1)); - request->set_source(source1); - - factory_.RequestCopyOfSurface(surface_id_, request.Pass()); - EXPECT_FALSE(called1); - - bool called2 = false; - request = CopyOutputRequest::CreateRequest( - base::Bind(&CopyRequestTestCallback, &called2)); - request->set_source(source2); - - factory_.RequestCopyOfSurface(surface_id_, request.Pass()); - // Callbacks have different sources so neither should be called. - EXPECT_FALSE(called1); - EXPECT_FALSE(called2); - - bool called3 = false; - request = CopyOutputRequest::CreateRequest( - base::Bind(&CopyRequestTestCallback, &called3)); - request->set_source(source1); - - factory_.RequestCopyOfSurface(surface_id_, request.Pass()); - // Two callbacks are from source1, so the first should be called. - EXPECT_TRUE(called1); - EXPECT_FALSE(called2); - EXPECT_FALSE(called3); - - factory_.Destroy(surface_id_); - surface_id_ = SurfaceId(); - EXPECT_TRUE(called1); - EXPECT_TRUE(called2); - EXPECT_TRUE(called3); -} - } // namespace } // namespace cc
diff --git a/chrome/VERSION b/chrome/VERSION index 1110489e..d50d23de 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=48 MINOR=0 -BUILD=2537 +BUILD=2538 PATCH=0
diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd index 8fbedbd..fe42ebb 100644 --- a/chrome/app/chromium_strings.grd +++ b/chrome/app/chromium_strings.grd
@@ -207,9 +207,6 @@ <message name="IDS_ABOUT_VERSION_COPYRIGHT" desc="Copyright information on the about pages"> Copyright <ph name="YEAR">$1</ph> The Chromium Authors. All rights reserved. </message> - <message name="IDS_ABOUT_VERSION_LICENSE" desc="The label below the copyright message, containing the URLs."> - Chromium is made possible by the <ph name="BEGIN_LINK_CHROMIUM"><a target="_blank" href="$1"></ph>Chromium<ph name="END_LINK_CHROMIUM"></a></ph> open source project and other <ph name="BEGIN_LINK_OSS"><a target="_blank" href="$2"></ph>open source software<ph name="END_LINK_OSS"></a></ph>. - </message> <if expr="chromeos"> <message name="IDS_ABOUT_VERSION_LICENSE_EULA" desc="The label below the copyright message, containing the URLs."> Chromium open source licenses
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 2b63aab..4fffff0 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -7014,54 +7014,6 @@ This page uses a Native Client app that doesn't work on your computer. </message> - <!-- about:version strings --> - <message name="IDS_ABOUT_VERSION_TITLE" desc="Title on the about:version page"> - About Version - </message> - <message name="IDS_ABOUT_VERSION_OFFICIAL" desc="official build on the about:version page"> - Official Build - </message> - <message name="IDS_ABOUT_VERSION_32BIT" desc="32-bit on the chrome://version page"> - (32-bit) - </message> - <message name="IDS_ABOUT_VERSION_64BIT" desc="64-bit on the chrome://version page"> - (64-bit) - </message> - <message name="IDS_ABOUT_VERSION_REVISION" desc="label for the revision on the about:version page"> - Revision - </message> - <message name="IDS_ABOUT_VERSION_OS" desc="label for the OS on the about:version page"> - OS - </message> - <message name="IDS_ABOUT_VERSION_USER_AGENT" desc="label for the user agent on the about:version page"> - User Agent - </message> - <message name="IDS_ABOUT_VERSION_COMMAND_LINE" desc="label for the command line on the about:version page"> - Command Line - </message> - <if expr="chromeos"> - <message name="IDS_ABOUT_VERSION_BUILD_DATE" desc="label for build date on the about:version page"> - Build Date - </message> - </if> - <message name="IDS_ABOUT_VERSION_EXECUTABLE_PATH" desc="label for the executable path on the about:version page"> - Executable Path - </message> - <message name="IDS_ABOUT_VERSION_PROFILE_PATH" desc="label for the profile path on the about:version page"> - Profile Path - </message> - <message name="IDS_ABOUT_VERSION_PATH_NOTFOUND" desc="label for the non-existent path on the about:version page"> - No such file or directory - </message> - <message name="IDS_ABOUT_VERSION_VARIATIONS" desc="label for the variations list on the about:version page"> - Variations - </message> - <if expr="is_android"> - <message name="IDS_ABOUT_VERSION_BUILD_ID" desc="label for the build identifier on the about:version page"> - Build ID - </message> - </if> - <!-- chrome://voicesearch strings --> <if expr="chromeos"> <message name="IDS_VOICESEARCH_LOADING_MESSAGE" desc="Shown while loading until full list of modules is retrieved">
diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd index 77d6aea..740690b3 100644 --- a/chrome/app/google_chrome_strings.grd +++ b/chrome/app/google_chrome_strings.grd
@@ -206,9 +206,6 @@ <message name="IDS_ABOUT_VERSION_COMPANY_NAME" desc="Company name on the about pages"> Google Inc. </message> - <message name="IDS_ABOUT_VERSION_COPYRIGHT" desc="Copyright information on the about pages"> - Copyright <ph name="YEAR">$1</ph> Google Inc. All rights reserved. - </message> <message name="IDS_ABOUT_VERSION_LICENSE" desc="The label below the copyright message, containing the URLs."> Google Chrome is made possible by the <ph name="BEGIN_LINK_CHROMIUM"><a target="_blank" href="$1"></ph>Chromium<ph name="END_LINK_CHROMIUM"></a></ph> open source project and other <ph name="BEGIN_LINK_OSS"><a target="_blank" href="$2"></ph>open source software<ph name="END_LINK_OSS"></a></ph>. </message>
diff --git a/chrome/browser/android/contextualsearch/contextual_search_delegate.cc b/chrome/browser/android/contextualsearch/contextual_search_delegate.cc index e690b02..637c532 100644 --- a/chrome/browser/android/contextualsearch/contextual_search_delegate.cc +++ b/chrome/browser/android/contextualsearch/contextual_search_delegate.cc
@@ -429,7 +429,7 @@ const std::string& proper_json = contains_xssi_escape ? response.substr(strlen(kXssiEscape)) : response; JSONStringValueDeserializer deserializer(proper_json); - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL); if (root.get() != NULL && root->IsType(base::Value::TYPE_DICTIONARY)) { base::DictionaryValue* dict =
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd index 5ab7e27..4b5f85e 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd
@@ -18,7 +18,6 @@ <structure name="IDR_ABOUT_MEMORY_HTML" file="resources\about_memory.html" flattenhtml="true" type="chrome_html" /> </if> <structure name="IDR_ABOUT_MEMORY_CSS" file="resources\about_memory.css" flattenhtml="true" type="chrome_html" /> - <structure name="IDR_ABOUT_VERSION_HTML" file="resources\about_version.html" flattenhtml="true" allowexternalscript="true" type="chrome_html" /> <if expr="enable_app_list"> <structure name="IDR_APP_LIST_START_PAGE_CSS" file="resources\app_list\start_page.css" flattenhtml="true" type="chrome_html" /> <structure name="IDR_APP_LIST_START_PAGE_HTML" file="resources\app_list\start_page.html" flattenhtml="true" type="chrome_html" /> @@ -89,8 +88,6 @@ <if expr="not is_android"> <include name="IDR_ABOUT_SYS_HTML" file="resources\about_sys\about_sys.html" flattenhtml="true" type="BINDATA" /> </if> - <include name="IDR_ABOUT_VERSION_JS" file="resources\about_version.js" type="BINDATA" /> - <include name="IDR_ABOUT_VERSION_CSS" file="resources\about_version.css" type="BINDATA" /> <include name="IDR_AD_NETWORK_HASHES" file="resources\ad_networks.dat" type="BINDATA" /> <include name="IDR_BOOKMARKS_MANIFEST" file="resources\bookmark_manager\manifest.json" type="BINDATA" /> <if expr="is_posix and not is_macosx and not is_ios">
diff --git a/chrome/browser/chromeos/app_mode/kiosk_external_updater.cc b/chrome/browser/chromeos/app_mode/kiosk_external_updater.cc index a875b8e..a753217 100644 --- a/chrome/browser/chromeos/app_mode/kiosk_external_updater.cc +++ b/chrome/browser/chromeos/app_mode/kiosk_external_updater.cc
@@ -44,7 +44,9 @@ JSONFileValueDeserializer deserializer(manifest); std::string error_msg; - base::Value* extensions = deserializer.Deserialize(NULL, &error_msg); + base::Value* extensions = + deserializer.Deserialize(NULL, &error_msg).release(); + // TODO(Olli Raula) possible memory leak http://crbug.com/543015 if (!extensions) { *error_code = KioskExternalUpdater::ERROR_INVALID_MANIFEST; return;
diff --git a/chrome/browser/chromeos/app_mode/startup_app_launcher.cc b/chrome/browser/chromeos/app_mode/startup_app_launcher.cc index 512aa214..61e125b2 100644 --- a/chrome/browser/chromeos/app_mode/startup_app_launcher.cc +++ b/chrome/browser/chromeos/app_mode/startup_app_launcher.cc
@@ -132,8 +132,8 @@ base::FilePath auth_file = user_data_dir.Append(kOAuthFileName); scoped_ptr<JSONFileValueDeserializer> deserializer( new JSONFileValueDeserializer(user_data_dir.Append(kOAuthFileName))); - scoped_ptr<base::Value> value( - deserializer->Deserialize(&error_code, &error_msg)); + scoped_ptr<base::Value> value = + deserializer->Deserialize(&error_code, &error_msg); base::DictionaryValue* dict = NULL; if (error_code != JSONFileValueDeserializer::JSON_NO_ERROR || !value.get() || !value->GetAsDictionary(&dict)) {
diff --git a/chrome/browser/chromeos/extensions/default_app_order.cc b/chrome/browser/chromeos/extensions/default_app_order.cc index 4abcbaa..855b537 100644 --- a/chrome/browser/chromeos/extensions/default_app_order.cc +++ b/chrome/browser/chromeos/extensions/default_app_order.cc
@@ -65,7 +65,7 @@ JSONFileValueDeserializer deserializer(path); std::string error_msg; - base::Value* value = deserializer.Deserialize(NULL, &error_msg); + base::Value* value = deserializer.Deserialize(NULL, &error_msg).release(); if (!value) { LOG(WARNING) << "Unable to deserialize default app ordinals json data:" << error_msg << ", file=" << path.value(); @@ -77,6 +77,7 @@ return ordinal_list_value; LOG(WARNING) << "Expect a JSON list in file " << path.value(); + // TODO(Olli Raula) possible memory leak http://crbug.com/543015 return NULL; }
diff --git a/chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc b/chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc index 05957334..b3059ae 100644 --- a/chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc +++ b/chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc
@@ -167,7 +167,7 @@ const std::string& manifest_string) { std::string error; JSONStringValueDeserializer deserializer(manifest_string); - scoped_ptr<base::Value> manifest(deserializer.Deserialize(NULL, &error)); + scoped_ptr<base::Value> manifest = deserializer.Deserialize(NULL, &error); if (!manifest.get()) LOG(ERROR) << "Failed at getting manifest";
diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_authentication.cc b/chrome/browser/chromeos/login/supervised/supervised_user_authentication.cc index 389dcc5..7485604 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_authentication.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_authentication.cc
@@ -58,8 +58,8 @@ profile_dir.Append(kPasswordUpdateFile)); std::string error_message; int error_code = JSONFileValueDeserializer::JSON_NO_ERROR; - scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_message); if (JSONFileValueDeserializer::JSON_NO_ERROR != error_code) { LOG(ERROR) << "Could not deserialize password data, error = " << error_code << " / " << error_message;
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc index e257de7..c026ab78 100644 --- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc +++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
@@ -353,7 +353,8 @@ DISALLOW_COPY_AND_ASSIGN(UserCloudPolicyManagerChromeOSTest); }; -TEST_F(UserCloudPolicyManagerChromeOSTest, BlockingFirstFetch) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, DISABLED_BlockingFirstFetch) { // Tests the initialization of a manager whose Profile is waiting for the // initial fetch, when the policy cache is empty. ASSERT_NO_FATAL_FAILURE(CreateManager(true, 1000)); @@ -376,7 +377,8 @@ DM_STATUS_SUCCESS, register_blob_)); } -TEST_F(UserCloudPolicyManagerChromeOSTest, BlockingRefreshFetch) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, DISABLED_BlockingRefreshFetch) { // Tests the initialization of a manager whose Profile is waiting for the // initial fetch, when a previously cached policy and DMToken already exist. ASSERT_NO_FATAL_FAILURE(CreateManager(true, 1000)); @@ -388,7 +390,8 @@ base::Unretained(store_))); } -TEST_F(UserCloudPolicyManagerChromeOSTest, BlockingFetchStoreError) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, DISABLED_BlockingFetchStoreError) { // Tests the initialization of a manager whose Profile is waiting for the // initial fetch, when the initial store load fails. ASSERT_NO_FATAL_FAILURE(CreateManager(true, 1000)); @@ -411,7 +414,8 @@ DM_STATUS_SUCCESS, register_blob_)); } -TEST_F(UserCloudPolicyManagerChromeOSTest, BlockingFetchOAuthError) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, DISABLED_BlockingFetchOAuthError) { // Tests the initialization of a manager whose Profile is waiting for the // initial fetch, when the OAuth2 token fetch fails. ASSERT_NO_FATAL_FAILURE(CreateManager(true, 1000)); @@ -440,7 +444,9 @@ Mock::VerifyAndClearExpectations(&observer_); } -TEST_F(UserCloudPolicyManagerChromeOSTest, BlockingFetchRegisterError) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, + DISABLED_BlockingFetchRegisterError) { // Tests the initialization of a manager whose Profile is waiting for the // initial fetch, when the device management registration fails. ASSERT_NO_FATAL_FAILURE(CreateManager(true, 1000)); @@ -466,7 +472,9 @@ Mock::VerifyAndClearExpectations(&observer_); } -TEST_F(UserCloudPolicyManagerChromeOSTest, BlockingFetchPolicyFetchError) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, + DISABLED_BlockingFetchPolicyFetchError) { // Tests the initialization of a manager whose Profile is waiting for the // initial fetch, when the policy fetch request fails. ASSERT_NO_FATAL_FAILURE(CreateManager(true, 1000)); @@ -507,7 +515,8 @@ EXPECT_TRUE(PolicyBundle().Equals(manager_->policies())); } -TEST_F(UserCloudPolicyManagerChromeOSTest, BlockingFetchTimeout) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, DISABLED_BlockingFetchTimeout) { // The blocking fetch should be abandoned after the timeout. ASSERT_NO_FATAL_FAILURE(CreateManager(true, 0)); @@ -526,8 +535,8 @@ EXPECT_TRUE(PolicyBundle().Equals(manager_->policies())); } - -TEST_F(UserCloudPolicyManagerChromeOSTest, NonBlockingFirstFetch) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, DISABLED_NonBlockingFirstFetch) { // Tests the first policy fetch request by a Profile that isn't managed. ASSERT_NO_FATAL_FAILURE(CreateManager(false, 1000)); @@ -572,7 +581,8 @@ base::Bind(&base::TestSimpleTaskRunner::RunUntilIdle, task_runner_)); } -TEST_F(UserCloudPolicyManagerChromeOSTest, NonBlockingRefreshFetch) { +// Test disabled. See crbug.com/534733. +TEST_F(UserCloudPolicyManagerChromeOSTest, DISABLED_NonBlockingRefreshFetch) { // Tests a non-blocking initial policy fetch for a Profile that already has // a cached DMToken. ASSERT_NO_FATAL_FAILURE(CreateManager(false, 1000));
diff --git a/chrome/browser/component_updater/component_installers_unittest.cc b/chrome/browser/component_updater/component_installers_unittest.cc index 10c58348..57db885 100644 --- a/chrome/browser/component_updater/component_installers_unittest.cc +++ b/chrome/browser/component_updater/component_installers_unittest.cc
@@ -74,8 +74,10 @@ JSONFileValueDeserializer deserializer(manifest); std::string error; - scoped_ptr<base::DictionaryValue> root(static_cast<base::DictionaryValue*>( - deserializer.Deserialize(NULL, &error))); + + scoped_ptr<base::DictionaryValue> root = + base::DictionaryValue::From(deserializer.Deserialize(NULL, &error)); + ASSERT_TRUE(root); ASSERT_TRUE(root->IsType(base::Value::TYPE_DICTIONARY));
diff --git a/chrome/browser/component_updater/pnacl_component_installer.cc b/chrome/browser/component_updater/pnacl_component_installer.cc index 1198d60..f10940b 100644 --- a/chrome/browser/component_updater/pnacl_component_installer.cc +++ b/chrome/browser/component_updater/pnacl_component_installer.cc
@@ -127,7 +127,7 @@ base::DictionaryValue* ReadJSONManifest(const base::FilePath& manifest_path) { JSONFileValueDeserializer deserializer(manifest_path); std::string error; - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, &error)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, &error); if (!root.get()) return NULL; if (!root->IsType(base::Value::TYPE_DICTIONARY))
diff --git a/chrome/browser/component_updater/recovery_component_installer.cc b/chrome/browser/component_updater/recovery_component_installer.cc index 3657d645..8943ab45 100644 --- a/chrome/browser/component_updater/recovery_component_installer.cc +++ b/chrome/browser/component_updater/recovery_component_installer.cc
@@ -118,12 +118,7 @@ scoped_ptr<base::DictionaryValue> ReadManifest(const base::FilePath& manifest) { JSONFileValueDeserializer deserializer(manifest); std::string error; - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, &error)); - if (root.get() && root->IsType(base::Value::TYPE_DICTIONARY)) { - return scoped_ptr<base::DictionaryValue>( - static_cast<base::DictionaryValue*>(root.release())); - } - return scoped_ptr<base::DictionaryValue>(); + return base::DictionaryValue::From(deserializer.Deserialize(NULL, &error)); } void WaitForElevatedInstallToComplete(base::Process process) {
diff --git a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc index 05c8c9e..5dbbdc14 100644 --- a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc +++ b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
@@ -436,45 +436,13 @@ ProtocolHandler test_protocol_handler_; }; -// ProtocolHandlerRegistryTest tests are flaky on Linux & ChromeOS. -// http://crbug.com/133023 -#if defined(OS_LINUX) -#define MAYBE_AcceptProtocolHandlerHandlesProtocol \ - DISABLED_AcceptProtocolHandlerHandlesProtocol -#define MAYBE_DeniedProtocolIsntHandledUntilAccepted \ - DISABLED_DeniedProtocolIsntHandledUntilAccepted -#define MAYBE_TestStartsAsDefault DISABLED_TestStartsAsDefault -#define MAYBE_TestRemoveHandlerRemovesDefault \ - DISABLED_TestRemoveHandlerRemovesDefault -#define MAYBE_TestClearDefaultGetsPropagatedToIO \ - DISABLED_TestClearDefaultGetsPropagatedToIO -#define MAYBE_TestIsHandledProtocolWorksOnIOThread \ - DISABLED_TestIsHandledProtocolWorksOnIOThread -#define MAYBE_TestInstallDefaultHandler \ - DISABLED_TestInstallDefaultHandler -#else -#define MAYBE_AcceptProtocolHandlerHandlesProtocol \ - AcceptProtocolHandlerHandlesProtocol -#define MAYBE_DeniedProtocolIsntHandledUntilAccepted \ - DeniedProtocolIsntHandledUntilAccepted -#define MAYBE_TestStartsAsDefault TestStartsAsDefault -#define MAYBE_TestRemoveHandlerRemovesDefault TestRemoveHandlerRemovesDefault -#define MAYBE_TestClearDefaultGetsPropagatedToIO \ - TestClearDefaultGetsPropagatedToIO -#define MAYBE_TestIsHandledProtocolWorksOnIOThread \ - TestIsHandledProtocolWorksOnIOThread -#define MAYBE_TestInstallDefaultHandler TestInstallDefaultHandler -#endif // defined(OS_LINUX) - -TEST_F(ProtocolHandlerRegistryTest, - MAYBE_AcceptProtocolHandlerHandlesProtocol) { +TEST_F(ProtocolHandlerRegistryTest, AcceptProtocolHandlerHandlesProtocol) { ASSERT_FALSE(registry()->IsHandledProtocol("test")); registry()->OnAcceptRegisterProtocolHandler(test_protocol_handler()); ASSERT_TRUE(registry()->IsHandledProtocol("test")); } -TEST_F(ProtocolHandlerRegistryTest, - MAYBE_DeniedProtocolIsntHandledUntilAccepted) { +TEST_F(ProtocolHandlerRegistryTest, DeniedProtocolIsntHandledUntilAccepted) { registry()->OnDenyRegisterProtocolHandler(test_protocol_handler()); ASSERT_FALSE(registry()->IsHandledProtocol("test")); registry()->OnAcceptRegisterProtocolHandler(test_protocol_handler()); @@ -554,7 +522,7 @@ ASSERT_TRUE(registry()->CanSchemeBeOverridden("test")); } -TEST_F(ProtocolHandlerRegistryTest, MAYBE_TestStartsAsDefault) { +TEST_F(ProtocolHandlerRegistryTest, TestStartsAsDefault) { registry()->OnAcceptRegisterProtocolHandler(test_protocol_handler()); ASSERT_TRUE(registry()->IsDefault(test_protocol_handler())); } @@ -682,7 +650,7 @@ ASSERT_TRUE(registry()->HasIgnoredEquivalent(ph4)); } -TEST_F(ProtocolHandlerRegistryTest, MAYBE_TestRemoveHandlerRemovesDefault) { +TEST_F(ProtocolHandlerRegistryTest, TestRemoveHandlerRemovesDefault) { ProtocolHandler ph1 = CreateProtocolHandler("test", "test1"); ProtocolHandler ph2 = CreateProtocolHandler("test", "test2"); ProtocolHandler ph3 = CreateProtocolHandler("test", "test3"); @@ -802,7 +770,7 @@ #if defined(OS_LINUX) // TODO(benwells): When Linux support is more reliable and -// http://crbut.com/88255 is fixed this test will pass. +// http://crbug.com/88255 is fixed this test will pass. #define MAYBE_TestOSRegistrationFailure DISABLED_TestOSRegistrationFailure #else #define MAYBE_TestOSRegistrationFailure TestOSRegistrationFailure @@ -841,7 +809,7 @@ } TEST_F(ProtocolHandlerRegistryTest, - MAYBE_TestIsHandledProtocolWorksOnIOThread) { + TestIsHandledProtocolWorksOnIOThread) { std::string scheme("mailto"); ProtocolHandler ph1 = CreateProtocolHandler(scheme, "test1"); registry()->OnAcceptRegisterProtocolHandler(ph1); @@ -887,7 +855,7 @@ ASSERT_EQ(ph1, handlers[1]); } -TEST_F(ProtocolHandlerRegistryTest, MAYBE_TestClearDefaultGetsPropagatedToIO) { +TEST_F(ProtocolHandlerRegistryTest, TestClearDefaultGetsPropagatedToIO) { std::string scheme("mailto"); ProtocolHandler ph1 = CreateProtocolHandler(scheme, "test1"); registry()->OnAcceptRegisterProtocolHandler(ph1); @@ -970,7 +938,7 @@ ph3.IsSameOrigin(ph2)); } -TEST_F(ProtocolHandlerRegistryTest, MAYBE_TestInstallDefaultHandler) { +TEST_F(ProtocolHandlerRegistryTest, TestInstallDefaultHandler) { RecreateRegistry(false); registry()->AddPredefinedHandler( CreateProtocolHandler("test", GURL("http://test.com/%s")));
diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator_unittest.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator_unittest.cc index 5e43a11..94f1b0e7 100644 --- a/chrome/browser/extensions/api/developer_private/extension_info_generator_unittest.cc +++ b/chrome/browser/extensions/api/developer_private/extension_info_generator_unittest.cc
@@ -36,10 +36,8 @@ scoped_ptr<base::DictionaryValue> DeserializeJSONTestData( const base::FilePath& path, std::string *error) { - base::Value* value = nullptr; JSONFileValueDeserializer deserializer(path); - value = deserializer.Deserialize(nullptr, error); - return make_scoped_ptr(static_cast<base::DictionaryValue*>(value)); + return base::DictionaryValue::From(deserializer.Deserialize(nullptr, error)); } } // namespace
diff --git a/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.cc b/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.cc index 8479b13..6b458b1 100644 --- a/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.cc +++ b/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.cc
@@ -44,7 +44,8 @@ DCHECK(error_message); JSONFileValueDeserializer deserializer(file_path); - scoped_ptr<base::Value> parsed(deserializer.Deserialize(NULL, error_message)); + scoped_ptr<base::Value> parsed = + deserializer.Deserialize(NULL, error_message); if (!parsed) { return scoped_ptr<NativeMessagingHostManifest>(); }
diff --git a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc index 04b908f..cefad21 100644 --- a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc +++ b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
@@ -71,9 +71,11 @@ base::IntToString(tab_id)); return NULL; } - if (contents->GetURL().GetOrigin().spec() != security_origin) { + GURL visible_origin = contents->GetVisibleURL().GetOrigin(); + if (visible_origin.spec() != security_origin) { error_ = extensions::ErrorUtils::FormatErrorMessage( - "Invalid security origin", + "Invalid security origin. Expected=" + visible_origin.spec() + + ", actual=" + security_origin, base::IntToString(tab_id)); return NULL; }
diff --git a/chrome/browser/extensions/chrome_info_map_unittest.cc b/chrome/browser/extensions/chrome_info_map_unittest.cc index 5ee4a1f6..afa7bef 100644 --- a/chrome/browser/extensions/chrome_info_map_unittest.cc +++ b/chrome/browser/extensions/chrome_info_map_unittest.cc
@@ -25,7 +25,7 @@ path = path.AppendASCII("extensions").AppendASCII(dir).AppendASCII(test_file); JSONFileValueDeserializer deserializer(path); - scoped_ptr<base::Value> result(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> result = deserializer.Deserialize(NULL, NULL); if (!result) return NULL;
diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc index 0f5aa98f2..cdb717b2 100644 --- a/chrome/browser/extensions/component_loader.cc +++ b/chrome/browser/extensions/component_loader.cc
@@ -164,7 +164,7 @@ base::DictionaryValue* ComponentLoader::ParseManifest( const std::string& manifest_contents) const { JSONStringValueDeserializer deserializer(manifest_contents); - scoped_ptr<base::Value> manifest(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> manifest = deserializer.Deserialize(NULL, NULL); if (!manifest.get() || !manifest->IsType(base::Value::TYPE_DICTIONARY)) { LOG(ERROR) << "Failed to parse extension manifest.";
diff --git a/chrome/browser/extensions/extension_action_icon_factory_unittest.cc b/chrome/browser/extensions/extension_action_icon_factory_unittest.cc index 6af5c77..673a03b4 100644 --- a/chrome/browser/extensions/extension_action_icon_factory_unittest.cc +++ b/chrome/browser/extensions/extension_action_icon_factory_unittest.cc
@@ -109,10 +109,8 @@ std::string error; JSONFileValueDeserializer deserializer( test_file.AppendASCII("manifest.json")); - scoped_ptr<base::DictionaryValue> valid_value( - static_cast<base::DictionaryValue*>( - deserializer.Deserialize(&error_code, - &error))); + scoped_ptr<base::DictionaryValue> valid_value = base::DictionaryValue::From( + deserializer.Deserialize(&error_code, &error)); EXPECT_EQ(0, error_code) << error; if (error_code != 0) return NULL;
diff --git a/chrome/browser/extensions/extension_icon_manager_unittest.cc b/chrome/browser/extensions/extension_icon_manager_unittest.cc index bcec7a8..3ca1104 100644 --- a/chrome/browser/extensions/extension_icon_manager_unittest.cc +++ b/chrome/browser/extensions/extension_icon_manager_unittest.cc
@@ -109,9 +109,8 @@ "extensions/image_loading_tracker/app.json"); JSONFileValueDeserializer deserializer(manifest_path); - scoped_ptr<base::DictionaryValue> manifest( - static_cast<base::DictionaryValue*>(deserializer.Deserialize(NULL, - NULL))); + scoped_ptr<base::DictionaryValue> manifest = + base::DictionaryValue::From(deserializer.Deserialize(NULL, NULL)); ASSERT_TRUE(manifest.get() != NULL); std::string error; @@ -152,9 +151,8 @@ "extensions/file_manager/app.json"); JSONFileValueDeserializer deserializer(manifest_path); - scoped_ptr<base::DictionaryValue> manifest( - static_cast<base::DictionaryValue*>(deserializer.Deserialize(NULL, - NULL))); + scoped_ptr<base::DictionaryValue> manifest = + base::DictionaryValue::From(deserializer.Deserialize(NULL, NULL)); ASSERT_TRUE(manifest.get() != NULL); std::string error;
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc index e031b50..6c014b3 100644 --- a/chrome/browser/extensions/extension_service_unittest.cc +++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -365,15 +365,13 @@ // We also parse the file into a dictionary to compare what we get back // from the provider. JSONStringValueDeserializer deserializer(json_data); - base::Value* json_value = deserializer.Deserialize(NULL, NULL); + scoped_ptr<base::Value> json_value = deserializer.Deserialize(NULL, NULL); if (!json_value || !json_value->IsType(base::Value::TYPE_DICTIONARY)) { NOTREACHED() << "Unable to deserialize json data"; return -1; } else { - base::DictionaryValue* external_extensions = - static_cast<base::DictionaryValue*>(json_value); - prefs_.reset(external_extensions); + prefs_ = base::DictionaryValue::From(json_value.Pass()); } // Reset our counter.
diff --git a/chrome/browser/extensions/external_pref_loader.cc b/chrome/browser/extensions/external_pref_loader.cc index c0775d2..0e71a49d 100644 --- a/chrome/browser/extensions/external_pref_loader.cc +++ b/chrome/browser/extensions/external_pref_loader.cc
@@ -72,20 +72,24 @@ // occurs). An empty dictionary is returned in case of failure (e.g. invalid // path or json content). // Caller takes ownership of the returned dictionary. +// TODO(Olli Raula) Make return scoped_ptr base::DictionaryValue* ExtractExtensionPrefs( base::ValueDeserializer* deserializer, const base::FilePath& path) { std::string error_msg; - base::Value* extensions = deserializer->Deserialize(NULL, &error_msg); + scoped_ptr<base::Value> extensions = + deserializer->Deserialize(NULL, &error_msg); if (!extensions) { LOG(WARNING) << "Unable to deserialize json data: " << error_msg << " in file " << path.value() << "."; return new base::DictionaryValue; } - base::DictionaryValue* ext_dictionary = NULL; - if (extensions->GetAsDictionary(&ext_dictionary)) - return ext_dictionary; + scoped_ptr<base::DictionaryValue> ext_dictionary = + base::DictionaryValue::From(extensions.Pass()); + if (ext_dictionary) { + return ext_dictionary.release(); + } LOG(WARNING) << "Expected a JSON dictionary in file " << path.value() << ".";
diff --git a/chrome/browser/extensions/user_script_listener_unittest.cc b/chrome/browser/extensions/user_script_listener_unittest.cc index 64099b8b..b4147f7 100644 --- a/chrome/browser/extensions/user_script_listener_unittest.cc +++ b/chrome/browser/extensions/user_script_listener_unittest.cc
@@ -74,12 +74,13 @@ }; // Yoinked from extension_manifest_unittest.cc. +// TODO(Olli Raula) Make this return scoped_ptr base::DictionaryValue* LoadManifestFile(const base::FilePath path, std::string* error) { EXPECT_TRUE(base::PathExists(path)); JSONFileValueDeserializer deserializer(path); - return static_cast<base::DictionaryValue*>( - deserializer.Deserialize(NULL, error)); + return base::DictionaryValue::From(deserializer.Deserialize(NULL, error)) + .release(); } scoped_refptr<Extension> LoadExtension(const std::string& filename,
diff --git a/chrome/browser/media/webrtc_logging_handler_host.cc b/chrome/browser/media/webrtc_logging_handler_host.cc index 8def219..74cf281e 100644 --- a/chrome/browser/media/webrtc_logging_handler_host.cc +++ b/chrome/browser/media/webrtc_logging_handler_host.cc
@@ -104,26 +104,6 @@ message->resize(message->size() - 1); } -void FireGenericDoneCallback( - const WebRtcLoggingHandlerHost::GenericDoneCallback& callback, - bool success, - const std::string& error_message) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); - DCHECK(!callback.is_null()); - content::BrowserThread::PostTask( - content::BrowserThread::UI, - FROM_HERE, - base::Bind(callback, success, error_message)); -} - -void FireAndResetGenericDoneCallback( - WebRtcLoggingHandlerHost::GenericDoneCallback* callback, - bool success, - const std::string& error_message) { - FireGenericDoneCallback(*callback, success, error_message); - callback->Reset(); -} - } // namespace WebRtcLogBuffer::WebRtcLogBuffer() @@ -202,7 +182,7 @@ DCHECK(!callback.is_null()); if (logging_state_ != CLOSED) { - FireGenericDoneCallback(callback, false, "A log is already open"); + FireGenericDoneCallback(callback, false, "A log is already open."); return; } @@ -217,7 +197,7 @@ DCHECK(!callback.is_null()); if (logging_state_ != STARTED) { - FireGenericDoneCallback(callback, false, "Logging not started"); + FireGenericDoneCallback(callback, false, "Logging not started."); return; } @@ -498,7 +478,8 @@ } logging_started_time_ = base::Time(); logging_state_ = STOPPED; - FireAndResetGenericDoneCallback(&stop_callback_, true, ""); + FireGenericDoneCallback(stop_callback_, true, ""); + stop_callback_.Reset(); } void WebRtcLoggingHandlerHost::StartLoggingIfAllowed( @@ -770,3 +751,47 @@ return true; } + +void WebRtcLoggingHandlerHost::FireGenericDoneCallback( + const WebRtcLoggingHandlerHost::GenericDoneCallback& callback, + bool success, + const std::string& error_message) { + DCHECK_CURRENTLY_ON(BrowserThread::IO); + DCHECK(!callback.is_null()); + + if (error_message.empty()) { + DCHECK(success); + content::BrowserThread::PostTask( + content::BrowserThread::UI, + FROM_HERE, + base::Bind(callback, success, error_message)); + return; + } + + DCHECK(!success); + + // Add current logging state to error message. + std::string error_message_with_state(error_message); + switch (logging_state_) { + case CLOSED: + error_message_with_state += " State=closed."; + break; + case STARTING: + error_message_with_state += " State=starting."; + break; + case STARTED: + error_message_with_state += " State=started."; + break; + case STOPPING: + error_message_with_state += " State=stopping."; + break; + case STOPPED: + error_message_with_state += " State=stopped."; + break; + } + + content::BrowserThread::PostTask( + content::BrowserThread::UI, + FROM_HERE, + base::Bind(callback, success, error_message_with_state)); +}
diff --git a/chrome/browser/media/webrtc_logging_handler_host.h b/chrome/browser/media/webrtc_logging_handler_host.h index 4cc68d81..1b1793a 100644 --- a/chrome/browser/media/webrtc_logging_handler_host.h +++ b/chrome/browser/media/webrtc_logging_handler_host.h
@@ -233,6 +233,11 @@ bool ReleaseRtpDumps(WebRtcLogPaths* log_paths); + void FireGenericDoneCallback( + const WebRtcLoggingHandlerHost::GenericDoneCallback& callback, + bool success, + const std::string& error_message); + scoped_ptr<WebRtcLogBuffer> log_buffer_; // The profile associated with our renderer process.
diff --git a/chrome/browser/password_manager/password_manager_util_mac.mm b/chrome/browser/password_manager/password_manager_util_mac.mm index e8d81cd..b1a22833 100644 --- a/chrome/browser/password_manager/password_manager_util_mac.mm +++ b/chrome/browser/password_manager/password_manager_util_mac.mm
@@ -10,7 +10,6 @@ #include "base/basictypes.h" #include "base/mac/authorization_util.h" -#include "base/mac/bundle_locations.h" #include "base/mac/foundation_util.h" #include "base/mac/scoped_authorizationref.h" #include "chrome/grit/chromium_strings.h" @@ -19,12 +18,14 @@ namespace password_manager_util_mac { bool AuthenticateUser() { - NSString* identifier = [base::mac::MainBundle() bundleIdentifier]; - AuthorizationString name = - [[identifier stringByAppendingString:@".show-passwords"] UTF8String]; - AuthorizationItem right_items[] = { - {name, 0, NULL, 0} - }; + // Use the system-defined "system.login.screensaver" access right rather than + // creating our own. The screensaver does exactly the same check we need -- + // verifying whether the legitimate session user is present. If we needed to + // create a separate access right, we would have to define it with the + // AuthorizationDB, using the flag + // kAuthorizationRuleAuthenticateAsSessionUser, to ensure that the session + // user password, as opposed to an admin's password, is required. + AuthorizationItem right_items[] = {{"system.login.screensaver", 0, NULL, 0}}; AuthorizationRights rights = {arraysize(right_items), right_items}; NSString* prompt =
diff --git a/chrome/browser/platform_util_unittest.cc b/chrome/browser/platform_util_unittest.cc index cd30a7f..caaf200 100644 --- a/chrome/browser/platform_util_unittest.cc +++ b/chrome/browser/platform_util_unittest.cc
@@ -92,8 +92,8 @@ " }" "}"; JSONStringValueDeserializer json_string_deserializer(json_manifest); - scoped_ptr<base::Value> manifest( - json_string_deserializer.Deserialize(&error_code, &error)); + scoped_ptr<base::Value> manifest = + json_string_deserializer.Deserialize(&error_code, &error); base::DictionaryValue* manifest_dictionary; manifest->GetAsDictionary(&manifest_dictionary);
diff --git a/chrome/browser/prefs/pref_service_browsertest.cc b/chrome/browser/prefs/pref_service_browsertest.cc index 47e1007..35ea009f 100644 --- a/chrome/browser/prefs/pref_service_browsertest.cc +++ b/chrome/browser/prefs/pref_service_browsertest.cc
@@ -102,7 +102,7 @@ // The window should open with the new reference profile, with window // placement values stored in the user data directory. JSONFileValueDeserializer deserializer(original_pref_file_); - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL); ASSERT_TRUE(root.get()); ASSERT_TRUE(root->IsType(base::Value::TYPE_DICTIONARY));
diff --git a/chrome/browser/prefs/tracked/pref_hash_browsertest.cc b/chrome/browser/prefs/tracked/pref_hash_browsertest.cc index 6df10cf..43cfa0c 100644 --- a/chrome/browser/prefs/tracked/pref_hash_browsertest.cc +++ b/chrome/browser/prefs/tracked/pref_hash_browsertest.cc
@@ -88,8 +88,8 @@ JSONFileValueDeserializer deserializer(pref_file); int error_code = JSONFileValueDeserializer::JSON_NO_ERROR; std::string error_str; - scoped_ptr<base::Value> prefs( - deserializer.Deserialize(&error_code, &error_str)); + scoped_ptr<base::Value> prefs = + deserializer.Deserialize(&error_code, &error_str); if (!prefs || error_code != JSONFileValueDeserializer::JSON_NO_ERROR) { ADD_FAILURE() << "Error #" << error_code << ": " << error_str; return scoped_ptr<base::DictionaryValue>();
diff --git a/chrome/browser/profile_resetter/resettable_settings_snapshot.cc b/chrome/browser/profile_resetter/resettable_settings_snapshot.cc index b90a9a4a..42c6f59 100644 --- a/chrome/browser/profile_resetter/resettable_settings_snapshot.cc +++ b/chrome/browser/profile_resetter/resettable_settings_snapshot.cc
@@ -24,6 +24,7 @@ #include "components/version_info/version_info.h" #include "content/public/browser/browser_thread.h" #include "extensions/browser/extension_registry.h" +#include "grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" using feedback::FeedbackData; @@ -255,7 +256,7 @@ l10n_util::GetStringUTF16(IDS_RESET_PROFILE_SETTINGS_LOCALE), g_browser_process->GetApplicationLocale()); AddPair(list.get(), - l10n_util::GetStringUTF16(IDS_ABOUT_VERSION_USER_AGENT), + l10n_util::GetStringUTF16(IDS_VERSION_UI_USER_AGENT), GetUserAgent()); std::string version = version_info::GetVersionNumber(); version += chrome::GetChannelString();
diff --git a/chrome/browser/resources/md_downloads/crisper.js b/chrome/browser/resources/md_downloads/crisper.js index de97497..d124ab6 100644 --- a/chrome/browser/resources/md_downloads/crisper.js +++ b/chrome/browser/resources/md_downloads/crisper.js
@@ -10853,41 +10853,6 @@ } }); -Polymer({ - is: 'paper-material', - - properties: { - - /** - * The z-depth of this element, from 0-5. Setting to 0 will remove the - * shadow, and each increasing number greater than 0 will be "deeper" - * than the last. - * - * @attribute elevation - * @type number - * @default 1 - */ - elevation: { - type: Number, - reflectToAttribute: true, - value: 1 - }, - - /** - * Set this to true to animate the shadow when setting a new - * `elevation` value. - * - * @attribute animated - * @type boolean - * @default false - */ - animated: { - type: Boolean, - reflectToAttribute: true, - value: false - } - } - }); (function() { 'use strict'; @@ -11295,6 +11260,286 @@ } }; })(); +/** + * @demo demo/index.html + * @polymerBehavior + */ + Polymer.IronControlState = { + + properties: { + + /** + * If true, the element currently has focus. + */ + focused: { + type: Boolean, + value: false, + notify: true, + readOnly: true, + reflectToAttribute: true + }, + + /** + * If true, the user cannot interact with this element. + */ + disabled: { + type: Boolean, + value: false, + notify: true, + observer: '_disabledChanged', + reflectToAttribute: true + }, + + _oldTabIndex: { + type: Number + }, + + _boundFocusBlurHandler: { + type: Function, + value: function() { + return this._focusBlurHandler.bind(this); + } + } + + }, + + observers: [ + '_changedControlState(focused, disabled)' + ], + + ready: function() { + this.addEventListener('focus', this._boundFocusBlurHandler, true); + this.addEventListener('blur', this._boundFocusBlurHandler, true); + }, + + _focusBlurHandler: function(event) { + // NOTE(cdata): if we are in ShadowDOM land, `event.target` will + // eventually become `this` due to retargeting; if we are not in + // ShadowDOM land, `event.target` will eventually become `this` due + // to the second conditional which fires a synthetic event (that is also + // handled). In either case, we can disregard `event.path`. + + if (event.target === this) { + var focused = event.type === 'focus'; + this._setFocused(focused); + } else if (!this.shadowRoot) { + this.fire(event.type, {sourceEvent: event}, { + node: this, + bubbles: event.bubbles, + cancelable: event.cancelable + }); + } + }, + + _disabledChanged: function(disabled, old) { + this.setAttribute('aria-disabled', disabled ? 'true' : 'false'); + this.style.pointerEvents = disabled ? 'none' : ''; + if (disabled) { + this._oldTabIndex = this.tabIndex; + this.focused = false; + this.tabIndex = -1; + } else if (this._oldTabIndex !== undefined) { + this.tabIndex = this._oldTabIndex; + } + }, + + _changedControlState: function() { + // _controlStateChanged is abstract, follow-on behaviors may implement it + if (this._controlStateChanged) { + this._controlStateChanged(); + } + } + + }; +/** + * @demo demo/index.html + * @polymerBehavior Polymer.IronButtonState + */ + Polymer.IronButtonStateImpl = { + + properties: { + + /** + * If true, the user is currently holding down the button. + */ + pressed: { + type: Boolean, + readOnly: true, + value: false, + reflectToAttribute: true, + observer: '_pressedChanged' + }, + + /** + * If true, the button toggles the active state with each tap or press + * of the spacebar. + */ + toggles: { + type: Boolean, + value: false, + reflectToAttribute: true + }, + + /** + * If true, the button is a toggle and is currently in the active state. + */ + active: { + type: Boolean, + value: false, + notify: true, + reflectToAttribute: true + }, + + /** + * True if the element is currently being pressed by a "pointer," which + * is loosely defined as mouse or touch input (but specifically excluding + * keyboard input). + */ + pointerDown: { + type: Boolean, + readOnly: true, + value: false + }, + + /** + * True if the input device that caused the element to receive focus + * was a keyboard. + */ + receivedFocusFromKeyboard: { + type: Boolean, + readOnly: true + }, + + /** + * The aria attribute to be set if the button is a toggle and in the + * active state. + */ + ariaActiveAttribute: { + type: String, + value: 'aria-pressed', + observer: '_ariaActiveAttributeChanged' + } + }, + + listeners: { + down: '_downHandler', + up: '_upHandler', + tap: '_tapHandler' + }, + + observers: [ + '_detectKeyboardFocus(focused)', + '_activeChanged(active, ariaActiveAttribute)' + ], + + keyBindings: { + 'enter:keydown': '_asyncClick', + 'space:keydown': '_spaceKeyDownHandler', + 'space:keyup': '_spaceKeyUpHandler', + }, + + _mouseEventRe: /^mouse/, + + _tapHandler: function() { + if (this.toggles) { + // a tap is needed to toggle the active state + this._userActivate(!this.active); + } else { + this.active = false; + } + }, + + _detectKeyboardFocus: function(focused) { + this._setReceivedFocusFromKeyboard(!this.pointerDown && focused); + }, + + // to emulate native checkbox, (de-)activations from a user interaction fire + // 'change' events + _userActivate: function(active) { + if (this.active !== active) { + this.active = active; + this.fire('change'); + } + }, + + _downHandler: function(event) { + this._setPointerDown(true); + this._setPressed(true); + this._setReceivedFocusFromKeyboard(false); + }, + + _upHandler: function() { + this._setPointerDown(false); + this._setPressed(false); + }, + + _spaceKeyDownHandler: function(event) { + var keyboardEvent = event.detail.keyboardEvent; + keyboardEvent.preventDefault(); + keyboardEvent.stopImmediatePropagation(); + this._setPressed(true); + }, + + _spaceKeyUpHandler: function() { + if (this.pressed) { + this._asyncClick(); + } + this._setPressed(false); + }, + + // trigger click asynchronously, the asynchrony is useful to allow one + // event handler to unwind before triggering another event + _asyncClick: function() { + this.async(function() { + this.click(); + }, 1); + }, + + // any of these changes are considered a change to button state + + _pressedChanged: function(pressed) { + this._changedButtonState(); + }, + + _ariaActiveAttributeChanged: function(value, oldValue) { + if (oldValue && oldValue != value && this.hasAttribute(oldValue)) { + this.removeAttribute(oldValue); + } + }, + + _activeChanged: function(active, ariaActiveAttribute) { + if (this.toggles) { + this.setAttribute(this.ariaActiveAttribute, + active ? 'true' : 'false'); + } else { + this.removeAttribute(this.ariaActiveAttribute); + } + this._changedButtonState(); + }, + + _controlStateChanged: function() { + if (this.disabled) { + this._setPressed(false); + } else { + this._changedButtonState(); + } + }, + + // provide hook for follow-on behaviors to react to button-state + + _changedButtonState: function() { + if (this._buttonStateChanged) { + this._buttonStateChanged(); // abstract + } + } + + }; + + /** @polymerBehavior */ + Polymer.IronButtonState = [ + Polymer.IronA11yKeysBehavior, + Polymer.IronButtonStateImpl + ]; (function() { var Utility = { distance: function(x1, y1, x2, y2) { @@ -11898,286 +12143,6 @@ } }); })(); -/** - * @demo demo/index.html - * @polymerBehavior - */ - Polymer.IronControlState = { - - properties: { - - /** - * If true, the element currently has focus. - */ - focused: { - type: Boolean, - value: false, - notify: true, - readOnly: true, - reflectToAttribute: true - }, - - /** - * If true, the user cannot interact with this element. - */ - disabled: { - type: Boolean, - value: false, - notify: true, - observer: '_disabledChanged', - reflectToAttribute: true - }, - - _oldTabIndex: { - type: Number - }, - - _boundFocusBlurHandler: { - type: Function, - value: function() { - return this._focusBlurHandler.bind(this); - } - } - - }, - - observers: [ - '_changedControlState(focused, disabled)' - ], - - ready: function() { - this.addEventListener('focus', this._boundFocusBlurHandler, true); - this.addEventListener('blur', this._boundFocusBlurHandler, true); - }, - - _focusBlurHandler: function(event) { - // NOTE(cdata): if we are in ShadowDOM land, `event.target` will - // eventually become `this` due to retargeting; if we are not in - // ShadowDOM land, `event.target` will eventually become `this` due - // to the second conditional which fires a synthetic event (that is also - // handled). In either case, we can disregard `event.path`. - - if (event.target === this) { - var focused = event.type === 'focus'; - this._setFocused(focused); - } else if (!this.shadowRoot) { - this.fire(event.type, {sourceEvent: event}, { - node: this, - bubbles: event.bubbles, - cancelable: event.cancelable - }); - } - }, - - _disabledChanged: function(disabled, old) { - this.setAttribute('aria-disabled', disabled ? 'true' : 'false'); - this.style.pointerEvents = disabled ? 'none' : ''; - if (disabled) { - this._oldTabIndex = this.tabIndex; - this.focused = false; - this.tabIndex = -1; - } else if (this._oldTabIndex !== undefined) { - this.tabIndex = this._oldTabIndex; - } - }, - - _changedControlState: function() { - // _controlStateChanged is abstract, follow-on behaviors may implement it - if (this._controlStateChanged) { - this._controlStateChanged(); - } - } - - }; -/** - * @demo demo/index.html - * @polymerBehavior Polymer.IronButtonState - */ - Polymer.IronButtonStateImpl = { - - properties: { - - /** - * If true, the user is currently holding down the button. - */ - pressed: { - type: Boolean, - readOnly: true, - value: false, - reflectToAttribute: true, - observer: '_pressedChanged' - }, - - /** - * If true, the button toggles the active state with each tap or press - * of the spacebar. - */ - toggles: { - type: Boolean, - value: false, - reflectToAttribute: true - }, - - /** - * If true, the button is a toggle and is currently in the active state. - */ - active: { - type: Boolean, - value: false, - notify: true, - reflectToAttribute: true - }, - - /** - * True if the element is currently being pressed by a "pointer," which - * is loosely defined as mouse or touch input (but specifically excluding - * keyboard input). - */ - pointerDown: { - type: Boolean, - readOnly: true, - value: false - }, - - /** - * True if the input device that caused the element to receive focus - * was a keyboard. - */ - receivedFocusFromKeyboard: { - type: Boolean, - readOnly: true - }, - - /** - * The aria attribute to be set if the button is a toggle and in the - * active state. - */ - ariaActiveAttribute: { - type: String, - value: 'aria-pressed', - observer: '_ariaActiveAttributeChanged' - } - }, - - listeners: { - down: '_downHandler', - up: '_upHandler', - tap: '_tapHandler' - }, - - observers: [ - '_detectKeyboardFocus(focused)', - '_activeChanged(active, ariaActiveAttribute)' - ], - - keyBindings: { - 'enter:keydown': '_asyncClick', - 'space:keydown': '_spaceKeyDownHandler', - 'space:keyup': '_spaceKeyUpHandler', - }, - - _mouseEventRe: /^mouse/, - - _tapHandler: function() { - if (this.toggles) { - // a tap is needed to toggle the active state - this._userActivate(!this.active); - } else { - this.active = false; - } - }, - - _detectKeyboardFocus: function(focused) { - this._setReceivedFocusFromKeyboard(!this.pointerDown && focused); - }, - - // to emulate native checkbox, (de-)activations from a user interaction fire - // 'change' events - _userActivate: function(active) { - if (this.active !== active) { - this.active = active; - this.fire('change'); - } - }, - - _downHandler: function(event) { - this._setPointerDown(true); - this._setPressed(true); - this._setReceivedFocusFromKeyboard(false); - }, - - _upHandler: function() { - this._setPointerDown(false); - this._setPressed(false); - }, - - _spaceKeyDownHandler: function(event) { - var keyboardEvent = event.detail.keyboardEvent; - keyboardEvent.preventDefault(); - keyboardEvent.stopImmediatePropagation(); - this._setPressed(true); - }, - - _spaceKeyUpHandler: function() { - if (this.pressed) { - this._asyncClick(); - } - this._setPressed(false); - }, - - // trigger click asynchronously, the asynchrony is useful to allow one - // event handler to unwind before triggering another event - _asyncClick: function() { - this.async(function() { - this.click(); - }, 1); - }, - - // any of these changes are considered a change to button state - - _pressedChanged: function(pressed) { - this._changedButtonState(); - }, - - _ariaActiveAttributeChanged: function(value, oldValue) { - if (oldValue && oldValue != value && this.hasAttribute(oldValue)) { - this.removeAttribute(oldValue); - } - }, - - _activeChanged: function(active, ariaActiveAttribute) { - if (this.toggles) { - this.setAttribute(this.ariaActiveAttribute, - active ? 'true' : 'false'); - } else { - this.removeAttribute(this.ariaActiveAttribute); - } - this._changedButtonState(); - }, - - _controlStateChanged: function() { - if (this.disabled) { - this._setPressed(false); - } else { - this._changedButtonState(); - } - }, - - // provide hook for follow-on behaviors to react to button-state - - _changedButtonState: function() { - if (this._buttonStateChanged) { - this._buttonStateChanged(); // abstract - } - } - - }; - - /** @polymerBehavior */ - Polymer.IronButtonState = [ - Polymer.IronA11yKeysBehavior, - Polymer.IronButtonStateImpl - ]; /** * `Polymer.PaperRippleBehavior` dynamically implements a ripple * when the element has focus via pointer or keyboard. @@ -12279,6 +12244,78 @@ } }; +/** + * `Polymer.PaperInkyFocusBehavior` implements a ripple when the element has keyboard focus. + * + * @polymerBehavior Polymer.PaperInkyFocusBehaviorImpl + */ + Polymer.PaperInkyFocusBehaviorImpl = { + + observers: [ + '_focusedChanged(receivedFocusFromKeyboard)' + ], + + _focusedChanged: function(receivedFocusFromKeyboard) { + if (receivedFocusFromKeyboard) { + this.ensureRipple(); + } + if (this.hasRipple()) { + this._ripple.holdDown = receivedFocusFromKeyboard; + } + }, + + _createRipple: function() { + var ripple = Polymer.PaperRippleBehavior._createRipple(); + ripple.id = 'ink'; + ripple.setAttribute('center', ''); + ripple.classList.add('circle'); + return ripple; + } + + }; + + /** @polymerBehavior Polymer.PaperInkyFocusBehavior */ + Polymer.PaperInkyFocusBehavior = [ + Polymer.IronButtonState, + Polymer.IronControlState, + Polymer.PaperRippleBehavior, + Polymer.PaperInkyFocusBehaviorImpl + ]; +Polymer({ + is: 'paper-material', + + properties: { + + /** + * The z-depth of this element, from 0-5. Setting to 0 will remove the + * shadow, and each increasing number greater than 0 will be "deeper" + * than the last. + * + * @attribute elevation + * @type number + * @default 1 + */ + elevation: { + type: Number, + reflectToAttribute: true, + value: 1 + }, + + /** + * Set this to true to animate the shadow when setting a new + * `elevation` value. + * + * @attribute animated + * @type boolean + * @default false + */ + animated: { + type: Boolean, + reflectToAttribute: true, + value: false + } + } + }); /** @polymerBehavior Polymer.PaperButtonBehavior */ Polymer.PaperButtonBehaviorImpl = { @@ -12584,6 +12621,19 @@ // found in the LICENSE file. cr.define('downloads', function() { + var InkyTextButton = Polymer({ + is: 'inky-text-button', + + behaviors: [ + Polymer.PaperInkyFocusBehavior + ], + + hostAttributes: { + role: 'button', + tabindex: 0, + }, + }); + var Item = Polymer({ is: 'downloads-item', @@ -12900,7 +12950,10 @@ }, }); - return {Item: Item}; + return { + InkyTextButton: InkyTextButton, + Item: Item, + }; }); Polymer({ is: 'paper-item', @@ -15882,43 +15935,6 @@ Polymer.PaperMenuButton = PaperMenuButton; })(); -/** - * `Polymer.PaperInkyFocusBehavior` implements a ripple when the element has keyboard focus. - * - * @polymerBehavior Polymer.PaperInkyFocusBehaviorImpl - */ - Polymer.PaperInkyFocusBehaviorImpl = { - - observers: [ - '_focusedChanged(receivedFocusFromKeyboard)' - ], - - _focusedChanged: function(receivedFocusFromKeyboard) { - if (receivedFocusFromKeyboard) { - this.ensureRipple(); - } - if (this.hasRipple()) { - this._ripple.holdDown = receivedFocusFromKeyboard; - } - }, - - _createRipple: function() { - var ripple = Polymer.PaperRippleBehavior._createRipple(); - ripple.id = 'ink'; - ripple.setAttribute('center', ''); - ripple.classList.add('circle'); - return ripple; - } - - }; - - /** @polymerBehavior Polymer.PaperInkyFocusBehavior */ - Polymer.PaperInkyFocusBehavior = [ - Polymer.IronButtonState, - Polymer.IronControlState, - Polymer.PaperRippleBehavior, - Polymer.PaperInkyFocusBehaviorImpl - ]; Polymer({ is: 'paper-icon-button',
diff --git a/chrome/browser/resources/md_downloads/item.css b/chrome/browser/resources/md_downloads/item.css index 9a4576f..3216ab4 100644 --- a/chrome/browser/resources/md_downloads/item.css +++ b/chrome/browser/resources/md_downloads/item.css
@@ -186,13 +186,10 @@ } #remove { - --iron-icon-height: 16px; - --iron-icon-width: 16px; - --layout-inline: { - /* HACK(dbeam): we probably shouldn't be overriding Polymer like this. */ - }; color: #969696; + font-size: 16px; height: 16px; + line-height: 17px; /* TODO(dbeam): why is this necesssary? */ padding: 8px; width: 16px; }
diff --git a/chrome/browser/resources/md_downloads/item.html b/chrome/browser/resources/md_downloads/item.html index ffe95f5..91fbd4f 100644 --- a/chrome/browser/resources/md_downloads/item.html +++ b/chrome/browser/resources/md_downloads/item.html
@@ -4,11 +4,26 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/paper-behaviors/paper-inky-focus-behavior.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-progress/paper-progress.html"> <link rel="import" href="chrome://downloads/action_service.html"> <link rel="import" href="chrome://downloads/constants.html"> +<dom-module id="inky-text-button"> + <template><content></content></template> + <style> + :host { + -webkit-user-select: none; + cursor: pointer; + display: inline-block; + outline: none; + position: relative; + text-align: center; + } + </style> +</dom-module> + <dom-module id="downloads-item"> <template> <template is="dom-if" if="[[!hideDate]]"> @@ -90,10 +105,9 @@ </div> <div id="remove-wrapper" class="icon-wrapper"> - <paper-icon-button id="remove" icon="clear" - i18n-values="title:controlRemoveFromList" + <inky-text-button id="remove" i18n-values="title:controlRemoveFromList" style$="[[computeRemoveStyle_(isDangerous_, showCancel_)]]" - on-tap="onRemoveTap_"></paper-icon-button> + on-tap="onRemoveTap_">✕</inky-text-button> </div> <div id="incognito" i18n-values="title:inIncognito"
diff --git a/chrome/browser/resources/md_downloads/item.js b/chrome/browser/resources/md_downloads/item.js index 3bce0bf9..e4fc85d 100644 --- a/chrome/browser/resources/md_downloads/item.js +++ b/chrome/browser/resources/md_downloads/item.js
@@ -3,6 +3,19 @@ // found in the LICENSE file. cr.define('downloads', function() { + var InkyTextButton = Polymer({ + is: 'inky-text-button', + + behaviors: [ + Polymer.PaperInkyFocusBehavior + ], + + hostAttributes: { + role: 'button', + tabindex: 0, + }, + }); + var Item = Polymer({ is: 'downloads-item', @@ -319,5 +332,8 @@ }, }); - return {Item: Item}; + return { + InkyTextButton: InkyTextButton, + Item: Item, + }; });
diff --git a/chrome/browser/resources/md_downloads/vulcanized.html b/chrome/browser/resources/md_downloads/vulcanized.html index fff21ea..c6b8ba2 100644 --- a/chrome/browser/resources/md_downloads/vulcanized.html +++ b/chrome/browser/resources/md_downloads/vulcanized.html
@@ -35,9 +35,7 @@ font-style: normal; font-weight: 400; src: local('Roboto'), local('Roboto-Regular'), - url("chrome://resources/roboto/roboto-regular-latin.woff2") format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, - U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; + url("chrome://resources/roboto/roboto-regular.woff2") format('woff2'); } @font-face { @@ -45,9 +43,7 @@ font-style: normal; font-weight: 500; src: local('Roboto Medium'), local('Roboto-Medium'), - url("chrome://resources/roboto/roboto-medium-latin.woff2") format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, - U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; + url("chrome://resources/roboto/roboto-medium.woff2") format('woff2'); } </style> @@ -416,8 +412,6 @@ - - <style is="custom-style"> :root { @@ -1366,9 +1360,7 @@ font-style: normal; font-weight: 400; src: local('Roboto'), local('Roboto-Regular'), - url("chrome://resources/roboto/roboto-regular-latin.woff2") format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, - U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; + url("chrome://resources/roboto/roboto-regular.woff2") format('woff2'); } @font-face { @@ -1376,9 +1368,7 @@ font-style: normal; font-weight: 500; src: local('Roboto Medium'), local('Roboto-Medium'), - url("chrome://resources/roboto/roboto-medium-latin.woff2") format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, - U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; + url("chrome://resources/roboto/roboto-medium.woff2") format('woff2'); } </style> @@ -2098,41 +2088,6 @@ <g id="zoom-out"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"></path></g> </defs></svg> </iron-iconset-svg> -<dom-module id="paper-material" assetpath="chrome://resources/polymer/v1_0/paper-material/"> - <style> - :host { - display: block; - position: relative; - } - - :host([animated]) { - @apply(--shadow-transition); - } - - :host([elevation="1"]) { - @apply(--shadow-elevation-2dp); - } - - :host([elevation="2"]) { - @apply(--shadow-elevation-4dp); - } - - :host([elevation="3"]) { - @apply(--shadow-elevation-6dp); - } - - :host([elevation="4"]) { - @apply(--shadow-elevation-8dp); - } - - :host([elevation="5"]) { - @apply(--shadow-elevation-16dp); - } - </style> - <template> - <content></content> - </template> -</dom-module> <dom-module id="paper-ripple" assetpath="chrome://resources/polymer/v1_0/paper-ripple/"> @@ -2207,6 +2162,41 @@ <div id="waves"></div> </template> </dom-module> +<dom-module id="paper-material" assetpath="chrome://resources/polymer/v1_0/paper-material/"> + <style> + :host { + display: block; + position: relative; + } + + :host([animated]) { + @apply(--shadow-transition); + } + + :host([elevation="1"]) { + @apply(--shadow-elevation-2dp); + } + + :host([elevation="2"]) { + @apply(--shadow-elevation-4dp); + } + + :host([elevation="3"]) { + @apply(--shadow-elevation-6dp); + } + + :host([elevation="4"]) { + @apply(--shadow-elevation-8dp); + } + + :host([elevation="5"]) { + @apply(--shadow-elevation-16dp); + } + </style> + <template> + <content></content> + </template> +</dom-module> <dom-module id="paper-button" assetpath="chrome://resources/polymer/v1_0/paper-button/"> <template strip-whitespace=""> @@ -2428,6 +2418,20 @@ </template> </dom-module> +<dom-module id="inky-text-button" assetpath="chrome://downloads/"> + <template><content></content></template> + <style> + :host { + -webkit-user-select: none; + cursor: pointer; + display: inline-block; + outline: none; + position: relative; + text-align: center; + } + </style> +</dom-module> + <dom-module id="downloads-item" assetpath="chrome://downloads/"> <template> <template is="dom-if" if="[[!hideDate]]"> @@ -2488,7 +2492,7 @@ </div> <div id="remove-wrapper" class="icon-wrapper"> - <paper-icon-button id="remove" icon="clear" i18n-values="title:controlRemoveFromList" style$="[[computeRemoveStyle_(isDangerous_, showCancel_)]]" on-tap="onRemoveTap_"></paper-icon-button> + <inky-text-button id="remove" i18n-values="title:controlRemoveFromList" style$="[[computeRemoveStyle_(isDangerous_, showCancel_)]]" on-tap="onRemoveTap_">✕</inky-text-button> </div> <div id="incognito" i18n-values="title:inIncognito" hidden="[[!data.otr]]"></div> @@ -2732,13 +2736,10 @@ } #remove { - --iron-icon-height: 16px; - --iron-icon-width: 16px; - --layout-inline: { - /* HACK(dbeam): we probably shouldn't be overriding Polymer like this. */ - }; color: #969696; + font-size: 16px; height: 16px; + line-height: 17px; /* TODO(dbeam): why is this necesssary? */ padding: 8px; width: 16px; }
diff --git a/chrome/browser/resources/settings/default_browser_page/default_browser_page.html b/chrome/browser/resources/settings/default_browser_page/default_browser_page.html index 6e49233..0e7c01582 100644 --- a/chrome/browser/resources/settings/default_browser_page/default_browser_page.html +++ b/chrome/browser/resources/settings/default_browser_page/default_browser_page.html
@@ -1,7 +1,7 @@ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> -<link rel="import" href="chrome://md-settings/i18n_behavior/i18n_behavior.html"> +<link rel="import" href="chrome://resources/html/i18n_behavior.html"> <dom-module id="settings-default-browser-page"> <link rel="import" type="css"
diff --git a/chrome/browser/resources/settings/i18n_behavior/i18n_behavior.html b/chrome/browser/resources/settings/i18n_behavior/i18n_behavior.html deleted file mode 100644 index 6a18a85..0000000 --- a/chrome/browser/resources/settings/i18n_behavior/i18n_behavior.html +++ /dev/null
@@ -1 +0,0 @@ -<script src="i18n_behavior.js"></script>
diff --git a/chrome/browser/resources/settings/settings_resources.grd b/chrome/browser/resources/settings/settings_resources.grd index b75cc76a..1fc6a7e 100644 --- a/chrome/browser/resources/settings/settings_resources.grd +++ b/chrome/browser/resources/settings/settings_resources.grd
@@ -65,12 +65,6 @@ <structure name="IDR_SETTINGS_BASIC_PAGE_CSS" file="basic_page/basic_page.css" type="chrome_html" /> - <structure name="IDR_SETTINGS_I18N_BEHAVIOR_HTML" - file="i18n_behavior/i18n_behavior.html" - type="chrome_html" /> - <structure name="IDR_SETTINGS_I18N_BEHAVIOR_JS" - file="i18n_behavior/i18n_behavior.js" - type="chrome_html" /> <structure name="IDR_SETTINGS_ON_STARTUP_PAGE_HTML" file="on_startup_page/on_startup_page.html" type="chrome_html" />
diff --git a/chrome/browser/supervised_user/supervised_user_site_list.cc b/chrome/browser/supervised_user/supervised_user_site_list.cc index de3baac..84ba29f 100644 --- a/chrome/browser/supervised_user/supervised_user_site_list.cc +++ b/chrome/browser/supervised_user/supervised_user_site_list.cc
@@ -29,8 +29,8 @@ JSONFileValueDeserializer deserializer(path); int error_code; std::string error_msg; - scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_msg)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_msg); if (!value) { LOG(ERROR) << "Couldn't load site list " << path.value() << ": " << error_msg;
diff --git a/chrome/browser/themes/browser_theme_pack_unittest.cc b/chrome/browser/themes/browser_theme_pack_unittest.cc index 404dbda..6dbc596 100644 --- a/chrome/browser/themes/browser_theme_pack_unittest.cc +++ b/chrome/browser/themes/browser_theme_pack_unittest.cc
@@ -155,9 +155,8 @@ extension_path.AppendASCII("manifest.json"); std::string error; JSONFileValueDeserializer deserializer(manifest_path); - scoped_ptr<base::DictionaryValue> valid_value( - static_cast<base::DictionaryValue*>( - deserializer.Deserialize(NULL, &error))); + scoped_ptr<base::DictionaryValue> valid_value = + base::DictionaryValue::From(deserializer.Deserialize(NULL, &error)); EXPECT_EQ("", error); ASSERT_TRUE(valid_value.get()); scoped_refptr<Extension> extension(
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 56f2ae7..10d135a 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -63,6 +63,7 @@ "//components/strings", "//components/toolbar", "//components/update_client", + "//components/version_ui", "//content/public/common", "//crypto", "//skia",
diff --git a/chrome/browser/ui/DEPS b/chrome/browser/ui/DEPS index e111da9d..25a6654 100644 --- a/chrome/browser/ui/DEPS +++ b/chrome/browser/ui/DEPS
@@ -6,5 +6,6 @@ "+components/page_load_metrics/browser", "+components/toolbar", "+components/url_formatter", + "+components/version_ui", "-chrome/browser/ui/views", ]
diff --git a/chrome/browser/ui/app_list/start_page_service.cc b/chrome/browser/ui/app_list/start_page_service.cc index 6fc32fb5..c078e731 100644 --- a/chrome/browser/ui/app_list/start_page_service.cc +++ b/chrome/browser/ui/app_list/start_page_service.cc
@@ -668,8 +668,8 @@ JSONStringValueDeserializer deserializer(json_data_substr); deserializer.set_allow_trailing_comma(true); int error_code = 0; - scoped_ptr<base::Value> doodle_json( - deserializer.Deserialize(&error_code, nullptr)); + scoped_ptr<base::Value> doodle_json = + deserializer.Deserialize(&error_code, nullptr); base::TimeDelta recheck_delay; if (error_code != 0) {
diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils.mm b/chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils.mm index bbfc886..b2e2a70 100644 --- a/chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils.mm +++ b/chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils.mm
@@ -36,8 +36,8 @@ std::string error; JSONFileValueDeserializer deserializer(path); - scoped_ptr<base::DictionaryValue> value(static_cast<base::DictionaryValue*>( - deserializer.Deserialize(NULL, &error))); + scoped_ptr<base::DictionaryValue> value = + base::DictionaryValue::From(deserializer.Deserialize(NULL, &error)); if (!value.get()) { LOG(ERROR) << error; return extension;
diff --git a/chrome/browser/ui/cocoa/infobars/confirm_infobar_controller_unittest.mm b/chrome/browser/ui/cocoa/infobars/confirm_infobar_controller_unittest.mm index c942c8d..a14305a 100644 --- a/chrome/browser/ui/cocoa/infobars/confirm_infobar_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/infobars/confirm_infobar_controller_unittest.mm
@@ -130,10 +130,10 @@ bool closed_delegate_link_clicked_; private: - void OnInfoBarDelegateClosed() override { - closed_delegate_ok_clicked_ = delegate()->ok_clicked(); - closed_delegate_cancel_clicked_ = delegate()->cancel_clicked(); - closed_delegate_link_clicked_ = delegate()->link_clicked(); + void OnInfoBarDelegateClosed(MockConfirmInfoBarDelegate* delegate) override { + closed_delegate_ok_clicked_ = delegate->ok_clicked(); + closed_delegate_cancel_clicked_ = delegate->cancel_clicked(); + closed_delegate_link_clicked_ = delegate->link_clicked(); delegate_closed_ = true; controller_.reset(); }
diff --git a/chrome/browser/ui/cocoa/infobars/mock_confirm_infobar_delegate.cc b/chrome/browser/ui/cocoa/infobars/mock_confirm_infobar_delegate.cc index b9e9abd..c94b2e9 100644 --- a/chrome/browser/ui/cocoa/infobars/mock_confirm_infobar_delegate.cc +++ b/chrome/browser/ui/cocoa/infobars/mock_confirm_infobar_delegate.cc
@@ -22,7 +22,7 @@ MockConfirmInfoBarDelegate::~MockConfirmInfoBarDelegate() { if (owner_) - owner_->OnInfoBarDelegateClosed(); + owner_->OnInfoBarDelegateClosed(this); } int MockConfirmInfoBarDelegate::GetIconId() const {
diff --git a/chrome/browser/ui/cocoa/infobars/mock_confirm_infobar_delegate.h b/chrome/browser/ui/cocoa/infobars/mock_confirm_infobar_delegate.h index a5f8631b..11f92462 100644 --- a/chrome/browser/ui/cocoa/infobars/mock_confirm_infobar_delegate.h +++ b/chrome/browser/ui/cocoa/infobars/mock_confirm_infobar_delegate.h
@@ -12,10 +12,11 @@ class MockConfirmInfoBarDelegate : public ConfirmInfoBarDelegate { public: - // Called when |this| is about to be destroyed. + // Called when the dtor of |this| has been entered. class Owner { public: - virtual void OnInfoBarDelegateClosed() = 0; + virtual void OnInfoBarDelegateClosed( + MockConfirmInfoBarDelegate* delegate) = 0; protected: virtual ~Owner() {}
diff --git a/chrome/browser/ui/webui/downloads_dom_handler.cc b/chrome/browser/ui/webui/downloads_dom_handler.cc index 0ce308cf..8e90f86 100644 --- a/chrome/browser/ui/webui/downloads_dom_handler.cc +++ b/chrome/browser/ui/webui/downloads_dom_handler.cc
@@ -63,9 +63,7 @@ // Maximum number of downloads to show. TODO(glen): Remove this and instead // stuff the downloads down the pipe slowly. -size_t MaxNumberOfDownloads() { - return MdDownloadsEnabled() ? 50 : 150; -} +size_t kMaxNumberOfDownloads = 150; enum DownloadsDOMEvent { DOWNLOADS_DOM_EVENT_GET_DOWNLOADS = 0, @@ -653,7 +651,7 @@ query.AddFilter(DownloadQuery::FILTER_QUERY, *search_terms_); query.AddFilter(base::Bind(&IsDownloadDisplayable)); query.AddSorter(DownloadQuery::SORT_START_TIME, DownloadQuery::DESCENDING); - query.Limit(MaxNumberOfDownloads()); + query.Limit(kMaxNumberOfDownloads); query.Search(all_items.begin(), all_items.end(), &filtered_items); base::ListValue results_value;
diff --git a/chrome/browser/ui/webui/flash_ui.cc b/chrome/browser/ui/webui/flash_ui.cc index f702443..6bfaac2 100644 --- a/chrome/browser/ui/webui/flash_ui.cc +++ b/chrome/browser/ui/webui/flash_ui.cc
@@ -40,6 +40,7 @@ #include "content/public/common/webplugininfo.h" #include "gpu/config/gpu_info.h" #include "grit/browser_resources.h" +#include "grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" #if defined(OS_WIN) @@ -262,7 +263,7 @@ if (os->architecture() == base::win::OSInfo::X64_ARCHITECTURE) os_label += " 64 bit"; #endif - AddPair(list, l10n_util::GetStringUTF16(IDS_ABOUT_VERSION_OS), os_label); + AddPair(list, l10n_util::GetStringUTF16(IDS_VERSION_UI_OS), os_label); // Obtain the version of the Flash plugins. std::vector<content::WebPluginInfo> info_array;
diff --git a/chrome/browser/ui/webui/help/help_handler.cc b/chrome/browser/ui/webui/help/help_handler.cc index 6acf4ff..8499e6c 100644 --- a/chrome/browser/ui/webui/help/help_handler.cc +++ b/chrome/browser/ui/webui/help/help_handler.cc
@@ -38,6 +38,8 @@ #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" #include "content/public/common/user_agent.h" +#include "grit/components_chromium_strings.h" +#include "grit/components_google_chrome_strings.h" #include "grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" #include "v8/include/v8.h" @@ -216,71 +218,71 @@ }; static L10nResources resources[] = { - { "aboutTitle", IDS_ABOUT_TITLE }, + {"aboutTitle", IDS_ABOUT_TITLE}, #if defined(OS_CHROMEOS) - { "aboutProductTitle", IDS_PRODUCT_OS_NAME }, + {"aboutProductTitle", IDS_PRODUCT_OS_NAME}, #else - { "aboutProductTitle", IDS_PRODUCT_NAME }, + {"aboutProductTitle", IDS_PRODUCT_NAME}, #endif - { "aboutProductDescription", IDS_ABOUT_PRODUCT_DESCRIPTION }, - { "relaunch", IDS_RELAUNCH_BUTTON }, + {"aboutProductDescription", IDS_ABOUT_PRODUCT_DESCRIPTION}, + {"relaunch", IDS_RELAUNCH_BUTTON}, #if defined(OS_CHROMEOS) - { "relaunchAndPowerwash", IDS_RELAUNCH_AND_POWERWASH_BUTTON }, + {"relaunchAndPowerwash", IDS_RELAUNCH_AND_POWERWASH_BUTTON}, #endif - { "productName", IDS_PRODUCT_NAME }, - { "updateCheckStarted", IDS_UPGRADE_CHECK_STARTED }, - { "upToDate", IDS_UPGRADE_UP_TO_DATE }, - { "updating", IDS_UPGRADE_UPDATING }, + {"productName", IDS_PRODUCT_NAME}, + {"updateCheckStarted", IDS_UPGRADE_CHECK_STARTED}, + {"upToDate", IDS_UPGRADE_UP_TO_DATE}, + {"updating", IDS_UPGRADE_UPDATING}, #if defined(OS_CHROMEOS) - { "updateButton", IDS_UPGRADE_BUTTON }, - { "updatingChannelSwitch", IDS_UPGRADE_UPDATING_CHANNEL_SWITCH }, + {"updateButton", IDS_UPGRADE_BUTTON}, + {"updatingChannelSwitch", IDS_UPGRADE_UPDATING_CHANNEL_SWITCH}, #endif - { "updateAlmostDone", IDS_UPGRADE_SUCCESSFUL_RELAUNCH }, + {"updateAlmostDone", IDS_UPGRADE_SUCCESSFUL_RELAUNCH}, #if defined(OS_CHROMEOS) - { "successfulChannelSwitch", IDS_UPGRADE_SUCCESSFUL_CHANNEL_SWITCH }, + {"successfulChannelSwitch", IDS_UPGRADE_SUCCESSFUL_CHANNEL_SWITCH}, #endif - { "getHelpWithChrome", IDS_GET_HELP_USING_CHROME }, - { "reportAnIssue", IDS_REPORT_AN_ISSUE }, + {"getHelpWithChrome", IDS_GET_HELP_USING_CHROME}, + {"reportAnIssue", IDS_REPORT_AN_ISSUE}, #if defined(OS_CHROMEOS) - { "platform", IDS_PLATFORM_LABEL }, - { "firmware", IDS_ABOUT_PAGE_FIRMWARE }, - { "showMoreInfo", IDS_SHOW_MORE_INFO }, - { "hideMoreInfo", IDS_HIDE_MORE_INFO }, - { "channel", IDS_ABOUT_PAGE_CHANNEL }, - { "stable", IDS_ABOUT_PAGE_CHANNEL_STABLE }, - { "beta", IDS_ABOUT_PAGE_CHANNEL_BETA }, - { "dev", IDS_ABOUT_PAGE_CHANNEL_DEVELOPMENT }, - { "channel-changed", IDS_ABOUT_PAGE_CHANNEL_CHANGED }, - { "currentChannelStable", IDS_ABOUT_PAGE_CURRENT_CHANNEL_STABLE }, - { "currentChannelBeta", IDS_ABOUT_PAGE_CURRENT_CHANNEL_BETA }, - { "currentChannelDev", IDS_ABOUT_PAGE_CURRENT_CHANNEL_DEV }, - { "currentChannel", IDS_ABOUT_PAGE_CURRENT_CHANNEL }, - { "channelChangeButton", IDS_ABOUT_PAGE_CHANNEL_CHANGE_BUTTON }, - { "channelChangeDisallowedMessage", - IDS_ABOUT_PAGE_CHANNEL_CHANGE_DISALLOWED_MESSAGE }, - { "channelChangePageTitle", IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_TITLE }, - { "channelChangePagePowerwashTitle", - IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_TITLE }, - { "channelChangePagePowerwashMessage", - IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_MESSAGE }, - { "channelChangePageDelayedChangeTitle", - IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_DELAYED_CHANGE_TITLE }, - { "channelChangePageUnstableTitle", - IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_UNSTABLE_TITLE }, - { "channelChangePagePowerwashButton", - IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_BUTTON }, - { "channelChangePageChangeButton", - IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_CHANGE_BUTTON }, - { "channelChangePageCancelButton", - IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_CANCEL_BUTTON }, - { "webkit", IDS_WEBKIT }, - { "userAgent", IDS_ABOUT_VERSION_USER_AGENT }, - { "commandLine", IDS_ABOUT_VERSION_COMMAND_LINE }, - { "buildDate", IDS_ABOUT_VERSION_BUILD_DATE }, + {"platform", IDS_PLATFORM_LABEL}, + {"firmware", IDS_ABOUT_PAGE_FIRMWARE}, + {"showMoreInfo", IDS_SHOW_MORE_INFO}, + {"hideMoreInfo", IDS_HIDE_MORE_INFO}, + {"channel", IDS_ABOUT_PAGE_CHANNEL}, + {"stable", IDS_ABOUT_PAGE_CHANNEL_STABLE}, + {"beta", IDS_ABOUT_PAGE_CHANNEL_BETA}, + {"dev", IDS_ABOUT_PAGE_CHANNEL_DEVELOPMENT}, + {"channel-changed", IDS_ABOUT_PAGE_CHANNEL_CHANGED}, + {"currentChannelStable", IDS_ABOUT_PAGE_CURRENT_CHANNEL_STABLE}, + {"currentChannelBeta", IDS_ABOUT_PAGE_CURRENT_CHANNEL_BETA}, + {"currentChannelDev", IDS_ABOUT_PAGE_CURRENT_CHANNEL_DEV}, + {"currentChannel", IDS_ABOUT_PAGE_CURRENT_CHANNEL}, + {"channelChangeButton", IDS_ABOUT_PAGE_CHANNEL_CHANGE_BUTTON}, + {"channelChangeDisallowedMessage", + IDS_ABOUT_PAGE_CHANNEL_CHANGE_DISALLOWED_MESSAGE}, + {"channelChangePageTitle", IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_TITLE}, + {"channelChangePagePowerwashTitle", + IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_TITLE}, + {"channelChangePagePowerwashMessage", + IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_MESSAGE}, + {"channelChangePageDelayedChangeTitle", + IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_DELAYED_CHANGE_TITLE}, + {"channelChangePageUnstableTitle", + IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_UNSTABLE_TITLE}, + {"channelChangePagePowerwashButton", + IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_BUTTON}, + {"channelChangePageChangeButton", + IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_CHANGE_BUTTON}, + {"channelChangePageCancelButton", + IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_CANCEL_BUTTON}, + {"webkit", IDS_WEBKIT}, + {"userAgent", IDS_VERSION_UI_USER_AGENT}, + {"commandLine", IDS_VERSION_UI_COMMAND_LINE}, + {"buildDate", IDS_VERSION_UI_BUILD_DATE}, #endif #if defined(OS_MACOSX) - { "promote", IDS_ABOUT_CHROME_PROMOTE_UPDATER }, - { "learnMore", IDS_LEARN_MORE }, + {"promote", IDS_ABOUT_CHROME_PROMOTE_UPDATER}, + {"learnMore", IDS_LEARN_MORE}, #endif }; @@ -311,8 +313,7 @@ base::IntToString16(exploded_time.year))); base::string16 license = l10n_util::GetStringFUTF16( - IDS_ABOUT_VERSION_LICENSE, - base::ASCIIToUTF16(chrome::kChromiumProjectURL), + IDS_VERSION_UI_LICENSE, base::ASCIIToUTF16(chrome::kChromiumProjectURL), base::ASCIIToUTF16(chrome::kChromeUICreditsURL)); localized_strings->SetString("productLicense", license);
diff --git a/chrome/browser/ui/webui/nacl_ui.cc b/chrome/browser/ui/webui/nacl_ui.cc index e129cfd5..183cfa61 100644 --- a/chrome/browser/ui/webui/nacl_ui.cc +++ b/chrome/browser/ui/webui/nacl_ui.cc
@@ -36,6 +36,7 @@ #include "content/public/browser/web_ui_message_handler.h" #include "content/public/common/webplugininfo.h" #include "grit/browser_resources.h" +#include "grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" #if defined(OS_WIN) @@ -204,8 +205,7 @@ if (os->architecture() == base::win::OSInfo::X64_ARCHITECTURE) os_label += " 64 bit"; #endif - AddPair(list, - l10n_util::GetStringUTF16(IDS_ABOUT_VERSION_OS), + AddPair(list, l10n_util::GetStringUTF16(IDS_VERSION_UI_OS), ASCIIToUTF16(os_label)); AddLineBreak(list); } @@ -328,7 +328,7 @@ pnacl_path.AppendASCII("pnacl_public_pnacl_json"); JSONFileValueDeserializer deserializer(pnacl_json_path); std::string error; - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, &error)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, &error); if (!root || !root->IsType(base::Value::TYPE_DICTIONARY)) return;
diff --git a/chrome/browser/ui/webui/version_handler.cc b/chrome/browser/ui/webui/version_handler.cc index ba348d9..0b6040f 100644 --- a/chrome/browser/ui/webui/version_handler.cc +++ b/chrome/browser/ui/webui/version_handler.cc
@@ -13,10 +13,12 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/grit/generated_resources.h" #include "components/variations/active_field_trials.h" +#include "components/version_ui/version_ui_constants.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/plugin_service.h" #include "content/public/browser/web_ui.h" #include "content/public/common/content_constants.h" +#include "grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" #include "url/gurl.h" @@ -30,20 +32,16 @@ base::FilePath executable_path = base::MakeAbsoluteFilePath( base::CommandLine::ForCurrentProcess()->GetProgram()); - if (!executable_path.empty()) { + if (!executable_path.empty()) *exec_path_out = executable_path.LossyDisplayName(); - } else { - *exec_path_out = - l10n_util::GetStringUTF16(IDS_ABOUT_VERSION_PATH_NOTFOUND); - } + else + *exec_path_out = l10n_util::GetStringUTF16(IDS_VERSION_UI_PATH_NOTFOUND); base::FilePath profile_path_copy(base::MakeAbsoluteFilePath(profile_path)); - if (!profile_path.empty() && !profile_path_copy.empty()) { + if (!profile_path.empty() && !profile_path_copy.empty()) *profile_path_out = profile_path.LossyDisplayName(); - } else { - *profile_path_out = - l10n_util::GetStringUTF16(IDS_ABOUT_VERSION_PATH_NOTFOUND); - } + else + *profile_path_out = l10n_util::GetStringUTF16(IDS_VERSION_UI_PATH_NOTFOUND); } } // namespace @@ -57,9 +55,9 @@ void VersionHandler::RegisterMessages() { web_ui()->RegisterMessageCallback( - "requestVersionInfo", + version_ui::kRequestVersionInfo, base::Bind(&VersionHandler::HandleRequestVersionInfo, - base::Unretained(this))); + base::Unretained(this))); } void VersionHandler::HandleRequestVersionInfo(const base::ListValue* args) { @@ -112,7 +110,8 @@ } // In release mode, this will return an empty list to clear the section. - web_ui()->CallJavascriptFunction("returnVariationInfo", variations_list); + web_ui()->CallJavascriptFunction(version_ui::kReturnVariationInfo, + variations_list); } void VersionHandler::OnGotFilePaths(base::string16* executable_path_data, @@ -121,7 +120,8 @@ base::StringValue exec_path(*executable_path_data); base::StringValue profile_path(*profile_path_data); - web_ui()->CallJavascriptFunction("returnFilePaths", exec_path, profile_path); + web_ui()->CallJavascriptFunction(version_ui::kReturnFilePaths, exec_path, + profile_path); } #if defined(ENABLE_PLUGINS) @@ -145,6 +145,6 @@ } base::StringValue arg(flash_version); - web_ui()->CallJavascriptFunction("returnFlashVersion", arg); + web_ui()->CallJavascriptFunction(version_ui::kReturnFlashVersion, arg); } #endif // defined(ENABLE_PLUGINS)
diff --git a/chrome/browser/ui/webui/version_ui.cc b/chrome/browser/ui/webui/version_ui.cc index 25cd92d..4fc5a9cc 100644 --- a/chrome/browser/ui/webui/version_ui.cc +++ b/chrome/browser/ui/webui/version_ui.cc
@@ -14,11 +14,15 @@ #include "chrome/grit/chromium_strings.h" #include "chrome/grit/generated_resources.h" #include "components/version_info/version_info.h" +#include "components/version_ui/version_ui_constants.h" #include "content/public/browser/url_data_source.h" #include "content/public/browser/web_ui.h" #include "content/public/browser/web_ui_data_source.h" #include "content/public/common/user_agent.h" #include "grit/browser_resources.h" +#include "grit/components_chromium_strings.h" +#include "grit/components_google_chrome_strings.h" +#include "grit/components_resources.h" #include "grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" #include "v8/include/v8.h" @@ -45,57 +49,66 @@ WebUIDataSource::Create(chrome::kChromeUIVersionHost); // Localized and data strings. - html_source->AddLocalizedString("title", IDS_ABOUT_VERSION_TITLE); - html_source->AddLocalizedString("application_label", IDS_PRODUCT_NAME); - html_source->AddString("version", version_info::GetVersionNumber()); - html_source->AddString("version_modifier", chrome::GetChannelString()); - html_source->AddLocalizedString("os_name", IDS_ABOUT_VERSION_OS); - html_source->AddLocalizedString("platform", IDS_PLATFORM_LABEL); - html_source->AddString("os_type", version_info::GetOSType()); - html_source->AddString("blink_version", content::GetWebKitVersion()); - html_source->AddString("js_engine", "V8"); - html_source->AddString("js_version", v8::V8::GetVersion()); + html_source->AddLocalizedString(version_ui::kTitle, IDS_VERSION_UI_TITLE); + html_source->AddLocalizedString(version_ui::kApplicationLabel, + IDS_PRODUCT_NAME); + html_source->AddString(version_ui::kVersion, + version_info::GetVersionNumber()); + html_source->AddString(version_ui::kVersionModifier, + chrome::GetChannelString()); + html_source->AddLocalizedString(version_ui::kOSName, IDS_VERSION_UI_OS); + html_source->AddLocalizedString(version_ui::kPlatform, IDS_PLATFORM_LABEL); + html_source->AddString(version_ui::kOSType, version_info::GetOSType()); + html_source->AddString(version_ui::kBlinkVersion, + content::GetWebKitVersion()); + html_source->AddString(version_ui::kJSEngine, "V8"); + html_source->AddString(version_ui::kJSVersion, v8::V8::GetVersion()); #if defined(OS_ANDROID) - html_source->AddString("os_version", AndroidAboutAppInfo::GetOsInfo()); - html_source->AddLocalizedString("build_id_name", - IDS_ABOUT_VERSION_BUILD_ID); - html_source->AddString("build_id", CHROME_BUILD_ID); + html_source->AddString(version_ui::kOSVersion, + AndroidAboutAppInfo::GetOsInfo()); + html_source->AddLocalizedString(version_ui::kBuildIDName, + IDS_VERSION_UI_BUILD_ID); + html_source->AddString(version_ui::kBuildID, CHROME_BUILD_ID); #else - html_source->AddString("os_version", std::string()); - html_source->AddString("flash_plugin", "Flash"); + html_source->AddString(version_ui::kOSVersion, std::string()); + html_source->AddString(version_ui::kFlashPlugin, "Flash"); // Note that the Flash version is retrieve asynchronously and returned in // VersionHandler::OnGotPlugins. The area is initially blank. - html_source->AddString("flash_version", std::string()); + html_source->AddString(version_ui::kFlashVersion, std::string()); #endif // defined(OS_ANDROID) - html_source->AddLocalizedString("company", IDS_ABOUT_VERSION_COMPANY_NAME); + html_source->AddLocalizedString(version_ui::kCompany, + IDS_ABOUT_VERSION_COMPANY_NAME); base::Time::Exploded exploded_time; base::Time::Now().LocalExplode(&exploded_time); html_source->AddString( - "copyright", + version_ui::kCopyright, l10n_util::GetStringFUTF16(IDS_ABOUT_VERSION_COPYRIGHT, base::IntToString16(exploded_time.year))); - html_source->AddLocalizedString("revision", IDS_ABOUT_VERSION_REVISION); - html_source->AddString("cl", version_info::GetLastChange()); - html_source->AddLocalizedString("official", + html_source->AddLocalizedString(version_ui::kRevision, + IDS_VERSION_UI_REVISION); + html_source->AddString(version_ui::kCL, version_info::GetLastChange()); + html_source->AddLocalizedString(version_ui::kOfficial, version_info::IsOfficialBuild() - ? IDS_ABOUT_VERSION_OFFICIAL - : IDS_ABOUT_VERSION_UNOFFICIAL); + ? IDS_VERSION_UI_OFFICIAL + : IDS_VERSION_UI_UNOFFICIAL); #if defined(ARCH_CPU_64_BITS) - html_source->AddLocalizedString("version_bitsize", IDS_ABOUT_VERSION_64BIT); + html_source->AddLocalizedString(version_ui::kVersionBitSize, + IDS_VERSION_UI_64BIT); #else - html_source->AddLocalizedString("version_bitsize", IDS_ABOUT_VERSION_32BIT); + html_source->AddLocalizedString(version_ui::kVersionBitSize, + IDS_VERSION_UI_32BIT); #endif - html_source->AddLocalizedString("user_agent_name", - IDS_ABOUT_VERSION_USER_AGENT); - html_source->AddString("useragent", GetUserAgent()); - html_source->AddLocalizedString("command_line_name", - IDS_ABOUT_VERSION_COMMAND_LINE); + html_source->AddLocalizedString(version_ui::kUserAgentName, + IDS_VERSION_UI_USER_AGENT); + html_source->AddString(version_ui::kUserAgent, GetUserAgent()); + html_source->AddLocalizedString(version_ui::kCommandLineName, + IDS_VERSION_UI_COMMAND_LINE); #if defined(OS_WIN) html_source->AddString( - "command_line", + version_ui::kCommandLine, base::CommandLine::ForCurrentProcess()->GetCommandLineString()); #elif defined(OS_POSIX) std::string command_line; @@ -105,22 +118,22 @@ command_line += " " + *iter; // TODO(viettrungluu): |command_line| could really have any encoding, whereas // below we assumes it's UTF-8. - html_source->AddString("command_line", command_line); + html_source->AddString(version_ui::kCommandLine, command_line); #endif // Note that the executable path and profile path are retrieved asynchronously // and returned in VersionHandler::OnGotFilePaths. The area is initially // blank. - html_source->AddLocalizedString("executable_path_name", - IDS_ABOUT_VERSION_EXECUTABLE_PATH); - html_source->AddString("executable_path", std::string()); + html_source->AddLocalizedString(version_ui::kExecutablePathName, + IDS_VERSION_UI_EXECUTABLE_PATH); + html_source->AddString(version_ui::kExecutablePath, std::string()); - html_source->AddLocalizedString("profile_path_name", - IDS_ABOUT_VERSION_PROFILE_PATH); - html_source->AddString("profile_path", std::string()); + html_source->AddLocalizedString(version_ui::kProfilePathName, + IDS_VERSION_UI_PROFILE_PATH); + html_source->AddString(version_ui::kProfilePath, std::string()); - html_source->AddLocalizedString("variations_name", - IDS_ABOUT_VERSION_VARIATIONS); + html_source->AddLocalizedString(version_ui::kVariationsName, + IDS_VERSION_UI_VARIATIONS); #if defined(OS_WIN) #if defined(__clang__) @@ -131,9 +144,10 @@ #endif html_source->SetJsonPath("strings.js"); - html_source->AddResourcePath("version.js", IDR_ABOUT_VERSION_JS); - html_source->AddResourcePath("about_version.css", IDR_ABOUT_VERSION_CSS); - html_source->SetDefaultResource(IDR_ABOUT_VERSION_HTML); + html_source->AddResourcePath(version_ui::kVersionJS, IDR_VERSION_UI_JS); + html_source->AddResourcePath(version_ui::kAboutVersionCSS, + IDR_VERSION_UI_CSS); + html_source->SetDefaultResource(IDR_VERSION_UI_HTML); return html_source; }
diff --git a/chrome/browser/ui/webui/voice_search_ui.cc b/chrome/browser/ui/webui/voice_search_ui.cc index 80eaa52..90ea550 100644 --- a/chrome/browser/ui/webui/voice_search_ui.cc +++ b/chrome/browser/ui/webui/voice_search_ui.cc
@@ -42,6 +42,7 @@ #include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #include "grit/browser_resources.h" +#include "grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" #include "v8/include/v8.h" @@ -247,7 +248,7 @@ if (os->architecture() == base::win::OSInfo::X64_ARCHITECTURE) os_label += " 64 bit"; #endif - AddPair(list, l10n_util::GetStringUTF8(IDS_ABOUT_VERSION_OS), os_label); + AddPair(list, l10n_util::GetStringUTF8(IDS_VERSION_UI_OS), os_label); AddLineBreak(list); }
diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi index ca50abb..d26deb4 100644 --- a/chrome/chrome_browser_ui.gypi +++ b/chrome/chrome_browser_ui.gypi
@@ -2773,6 +2773,7 @@ '../components/components.gyp:toolbar', '../components/components.gyp:ui_zoom', '../components/components.gyp:update_client', + '../components/components.gyp:version_ui', '../components/components_resources.gyp:components_resources', '../components/components_strings.gyp:components_strings', '../components/url_formatter/url_formatter.gyp:url_formatter',
diff --git a/chrome/common/component_flash_hint_file_linux.cc b/chrome/common/component_flash_hint_file_linux.cc index 160c8e8..32d856e 100644 --- a/chrome/common/component_flash_hint_file_linux.cc +++ b/chrome/common/component_flash_hint_file_linux.cc
@@ -156,8 +156,8 @@ int error_code; std::string error_message; JSONStringValueDeserializer deserializer(json_string); - const scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_message)); + const scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_message); if (!value) { LOG(ERROR)
diff --git a/chrome/common/extensions/extension_test_util.cc b/chrome/common/extensions/extension_test_util.cc index ec223f6..697be60 100644 --- a/chrome/common/extensions/extension_test_util.cc +++ b/chrome/common/extensions/extension_test_util.cc
@@ -31,7 +31,7 @@ .AppendASCII(test_file); JSONFileValueDeserializer deserializer(path); - scoped_ptr<base::Value> result(deserializer.Deserialize(NULL, error)); + scoped_ptr<base::Value> result = deserializer.Deserialize(NULL, error); if (!result) return NULL; const base::DictionaryValue* dict;
diff --git a/chrome/installer/util/uninstall_metrics.cc b/chrome/installer/util/uninstall_metrics.cc index 11e91dad..606b132d 100644 --- a/chrome/installer/util/uninstall_metrics.cc +++ b/chrome/installer/util/uninstall_metrics.cc
@@ -78,7 +78,7 @@ JSONFileValueDeserializer json_deserializer(file_path); std::string json_error_string; - scoped_ptr<base::Value> root(json_deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> root = json_deserializer.Deserialize(NULL, NULL); if (!root.get()) return false;
diff --git a/chrome/installer/util/uninstall_metrics_unittest.cc b/chrome/installer/util/uninstall_metrics_unittest.cc index aa0ff15c..72b891f1 100644 --- a/chrome/installer/util/uninstall_metrics_unittest.cc +++ b/chrome/installer/util/uninstall_metrics_unittest.cc
@@ -46,8 +46,8 @@ JSONStringValueDeserializer json_deserializer(pref_string); std::string error_message; - scoped_ptr<base::Value> root( - json_deserializer.Deserialize(NULL, &error_message)); + scoped_ptr<base::Value> root = + json_deserializer.Deserialize(NULL, &error_message); ASSERT_TRUE(root.get()); base::string16 uninstall_metrics_string;
diff --git a/chrome/test/media_router/media_router_integration_browsertest.cc b/chrome/test/media_router/media_router_integration_browsertest.cc index 99beb38..3bda7121 100644 --- a/chrome/test/media_router/media_router_integration_browsertest.cc +++ b/chrome/test/media_router/media_router_integration_browsertest.cc
@@ -158,8 +158,8 @@ JSONFileValueDeserializer deserializer(full_path); int error_code = 0; std::string error_message; - scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_message); CHECK(value.get()) << "Deserialize failed: " << error_message; std::string test_data_str; ASSERT_TRUE(base::JSONWriter::Write(*value, &test_data_str));
diff --git a/chrome/utility/importer/firefox_importer.cc b/chrome/utility/importer/firefox_importer.cc index b9238d6..f945fb3c 100644 --- a/chrome/utility/importer/firefox_importer.cc +++ b/chrome/utility/importer/firefox_importer.cc
@@ -541,8 +541,8 @@ base::FilePath search_metadata_json_file = source_path_.AppendASCII("search-metadata.json"); JSONFileValueDeserializer metadata_deserializer(search_metadata_json_file); - scoped_ptr<base::Value> metadata_root( - metadata_deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> metadata_root = + metadata_deserializer.Deserialize(NULL, NULL); const base::DictionaryValue* search_metadata_root = NULL; if (metadata_root) metadata_root->GetAsDictionary(&search_metadata_root); @@ -553,7 +553,7 @@ return; JSONFileValueDeserializer deserializer(search_json_file); - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL); const base::DictionaryValue* search_root = NULL; if (!root || !root->GetAsDictionary(&search_root)) return;
diff --git a/chromecast/base/serializers.cc b/chromecast/base/serializers.cc index 34bc9fd3..2e6135bb 100644 --- a/chromecast/base/serializers.cc +++ b/chromecast/base/serializers.cc
@@ -15,8 +15,8 @@ int error_code = -1; std::string error_msg; - scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_msg)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_msg); DLOG_IF(ERROR, !value) << "JSON error " << error_code << ":" << error_msg; // Value will hold the nullptr in case of an error. @@ -36,8 +36,8 @@ int error_code = -1; std::string error_msg; - scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_msg)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_msg); DLOG_IF(ERROR, !value) << "JSON error " << error_code << ":" << error_msg; // Value will hold the nullptr in case of an error.
diff --git a/chromeos/app_mode/kiosk_oem_manifest_parser.cc b/chromeos/app_mode/kiosk_oem_manifest_parser.cc index f13d1a8..16c072ab 100644 --- a/chromeos/app_mode/kiosk_oem_manifest_parser.cc +++ b/chromeos/app_mode/kiosk_oem_manifest_parser.cc
@@ -32,8 +32,8 @@ std::string error_msg; scoped_ptr<JSONFileValueDeserializer> deserializer( new JSONFileValueDeserializer(kiosk_oem_file)); - scoped_ptr<base::Value> value( - deserializer->Deserialize(&error_code, &error_msg)); + scoped_ptr<base::Value> value = + deserializer->Deserialize(&error_code, &error_msg); base::DictionaryValue* dict = NULL; if (error_code != JSONFileValueDeserializer::JSON_NO_ERROR || !value.get() ||
diff --git a/chromeos/dbus/fake_easy_unlock_client.cc b/chromeos/dbus/fake_easy_unlock_client.cc index 77441881..ece1dfe 100644 --- a/chromeos/dbus/fake_easy_unlock_client.cc +++ b/chromeos/dbus/fake_easy_unlock_client.cc
@@ -21,7 +21,7 @@ int ExtractKeyPairIndexFromKey(const std::string& key, const std::string& key_type) { JSONStringValueDeserializer deserializer(key); - scoped_ptr<base::Value> json_value(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> json_value = deserializer.Deserialize(NULL, NULL); if (!json_value) return -1;
diff --git a/chromeos/network/onc/onc_test_utils.cc b/chromeos/network/onc/onc_test_utils.cc index 522a9ed..7afc0d89 100644 --- a/chromeos/network/onc/onc_test_utils.cc +++ b/chromeos/network/onc/onc_test_utils.cc
@@ -38,29 +38,30 @@ scoped_ptr<base::DictionaryValue> ReadTestDictionary( const std::string& filename) { - base::DictionaryValue* dict = NULL; + scoped_ptr<base::DictionaryValue> dict; base::FilePath path; if (!chromeos::test_utils::GetTestDataPath(kNetworkComponentDirectory, filename, &path)) { NOTREACHED() << "Unable to get test dictionary path for " << kNetworkComponentDirectory << "/" << filename; - return make_scoped_ptr(dict); + return dict; } JSONFileValueDeserializer deserializer(path); deserializer.set_allow_trailing_comma(true); std::string error_message; - base::Value* content = deserializer.Deserialize(NULL, &error_message); + scoped_ptr<base::Value> content = + deserializer.Deserialize(NULL, &error_message); CHECK(content != NULL) << "Couldn't json-deserialize file '" << filename << "': " << error_message; - CHECK(content->GetAsDictionary(&dict)) - << "File '" << filename - << "' does not contain a dictionary as expected, but type " - << content->GetType(); - return make_scoped_ptr(dict); + dict = base::DictionaryValue::From(content.Pass()); + CHECK(dict) << "File '" << filename + << "' does not contain a dictionary as expected, but type " + << content->GetType(); + return dict; } ::testing::AssertionResult Equals(const base::Value* expected,
diff --git a/chromeos/network/onc/onc_utils_unittest.cc b/chromeos/network/onc/onc_utils_unittest.cc index 6370a685..30053f1 100644 --- a/chromeos/network/onc/onc_utils_unittest.cc +++ b/chromeos/network/onc/onc_utils_unittest.cc
@@ -21,11 +21,11 @@ namespace { scoped_ptr<base::Value> ReadTestJson(const std::string& filename) { - base::Value* result = nullptr; base::FilePath path; + scoped_ptr<base::Value> result; if (!test_utils::GetTestDataPath("network", filename, &path)) { NOTREACHED() << "Unable to get test file path for: " << filename; - return make_scoped_ptr(result); + return result; } JSONFileValueDeserializer deserializer(path); deserializer.set_allow_trailing_comma(true); @@ -33,7 +33,7 @@ result = deserializer.Deserialize(nullptr, &error_message); CHECK(result != nullptr) << "Couldn't json-deserialize file: " << filename << ": " << error_message; - return make_scoped_ptr(result); + return result; } } // namespace
diff --git a/chromeos/system/statistics_provider.cc b/chromeos/system/statistics_provider.cc index 834f0b6a..6f86dfb 100644 --- a/chromeos/system/statistics_provider.cc +++ b/chromeos/system/statistics_provider.cc
@@ -503,8 +503,8 @@ JSONFileValueDeserializer regions_file(filename); int regions_error_code = 0; std::string regions_error_message; - regional_data_.reset( - regions_file.Deserialize(®ions_error_code, ®ions_error_message)); + regional_data_ = + regions_file.Deserialize(®ions_error_code, ®ions_error_message); if (!regional_data_.get()) { if (base::SysInfo::IsRunningOnChromeOS()) LOG(ERROR) << "Failed to load regions file '" << filename.value()
diff --git a/chromeos/tools/onc_validator/onc_validator.cc b/chromeos/tools/onc_validator/onc_validator.cc index 14ed8919..a4ec9bd 100644 --- a/chromeos/tools/onc_validator/onc_validator.cc +++ b/chromeos/tools/onc_validator/onc_validator.cc
@@ -14,6 +14,9 @@ #include "chromeos/network/onc/onc_signature.h" #include "chromeos/network/onc/onc_validator.h" +// TODO Check why this file do not fail on default trybots +// http://crbug.com/543919 + // Command line switches. const char kSwitchErrorOnUnknownField[] = "error-on-unknown-field"; const char kSwitchErrorOnWrongRecommended[] = "error-on-wrong-recommended"; @@ -90,7 +93,8 @@ base::DictionaryValue* dict = NULL; std::string json_error; - base::Value* value = deserializer.Deserialize(NULL, &json_error); + base::Value* value = deserializer.Deserialize(NULL, &json_error).release(); + // TODO(Olli Raula) possible memory leak http://crbug.com/543015 if (!value) { LOG(ERROR) << "Couldn't json-deserialize file '" << filename << "': " << json_error;
diff --git a/components/OWNERS b/components/OWNERS index 015b7c3e..aef41a7 100644 --- a/components/OWNERS +++ b/components/OWNERS
@@ -322,6 +322,14 @@ per-file variations.gypi=jwd@chromium.org per-file variations.gypi=stevet@chromium.org +per-file version_ui.gypi=bauerb@chromium.org +per-file version_ui.gypi=dbeam@chromium.org +per-file version_ui.gypi=estade@chromium.org +per-file version_ui.gypi=jhawkins@chromium.org +per-file version_ui.gypi=nkostylev@chromium.org +per-file version_ui.gypi=pam@chromium.org +per-file version_ui.gypi=xiyuan@chromium.org + per-file webdata.gypi=pkasting@chromium.org per-file webdata_services.gypi=pkasting@chromium.org
diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc index 52f1a94..4d997d6 100644 --- a/components/bookmarks/browser/bookmark_codec.cc +++ b/components/bookmarks/browser/bookmark_codec.cc
@@ -387,7 +387,7 @@ std::string meta_info_str; meta_info->GetAsString(&meta_info_str); JSONStringValueDeserializer deserializer(meta_info_str); - deserialized_holder.reset(deserializer.Deserialize(nullptr, nullptr)); + deserialized_holder = deserializer.Deserialize(nullptr, nullptr); if (!deserialized_holder) return false; meta_info = deserialized_holder.get();
diff --git a/components/bookmarks/browser/bookmark_codec_unittest.cc b/components/bookmarks/browser/bookmark_codec_unittest.cc index 8c45aea8..80944642 100644 --- a/components/bookmarks/browser/bookmark_codec_unittest.cc +++ b/components/bookmarks/browser/bookmark_codec_unittest.cc
@@ -360,7 +360,7 @@ ASSERT_TRUE(base::PathExists(test_file)); JSONFileValueDeserializer deserializer(test_file); - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL); scoped_ptr<BookmarkModel> decoded_model(client_.CreateModel()); BookmarkCodec decoder; @@ -446,7 +446,7 @@ ASSERT_TRUE(base::PathExists(test_file)); JSONFileValueDeserializer deserializer(test_file); - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL); scoped_ptr<BookmarkModel> model(client_.CreateModel()); BookmarkCodec decoder;
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc index da721b1..6f11d06 100644 --- a/components/bookmarks/browser/bookmark_storage.cc +++ b/components/bookmarks/browser/bookmark_storage.cc
@@ -56,7 +56,7 @@ bool bookmark_file_exists = base::PathExists(path); if (bookmark_file_exists) { JSONFileValueDeserializer deserializer(path); - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL); if (root.get()) { // Building the index can take a while, so we do it on the background
diff --git a/components/components.gyp b/components/components.gyp index 39e829f7..dce35ae8 100644 --- a/components/components.gyp +++ b/components/components.gyp
@@ -93,6 +93,7 @@ 'user_prefs.gypi', 'variations.gypi', 'version_info.gypi', + 'version_ui.gypi', 'wallpaper.gypi', 'web_resource.gypi', 'webdata.gypi',
diff --git a/components/components_chromium_strings.grd b/components/components_chromium_strings.grd index 38abf5d6..b78ef6f 100644 --- a/components/components_chromium_strings.grd +++ b/components/components_chromium_strings.grd
@@ -170,6 +170,11 @@ <message name="IDS_CRASH_DISABLED_MESSAGE" desc="The explanatory message for chrome://crashes when crash reporting is disabled"> Crash reporting is not available in Chromium. </message> + + <!-- Version UI --> + <message name="IDS_VERSION_UI_LICENSE" desc="The label below the copyright message, containing the URLs."> + Chromium is made possible by the <ph name="BEGIN_LINK_CHROMIUM"><a target="_blank" href="$1"></ph>Chromium<ph name="END_LINK_CHROMIUM"></a></ph> open source project and other <ph name="BEGIN_LINK_OSS"><a target="_blank" href="$2"></ph>open source software<ph name="END_LINK_OSS"></a></ph>. + </message> </messages> </release> </grit>
diff --git a/components/components_google_chrome_strings.grd b/components/components_google_chrome_strings.grd index 2c1b3221..a218248 100644 --- a/components/components_google_chrome_strings.grd +++ b/components/components_google_chrome_strings.grd
@@ -171,6 +171,10 @@ This page only shows information on your recent crashes if you <ph name="BEGIN_LINK"><a href="https://support.google.com/chrome/answer/96817"></ph>enable crash reporting<ph name="END_LINK"></a></ph>. </message> + <!-- Version UI --> + <message name="IDS_VERSION_UI_LICENSE" desc="The label below the copyright message, containing the URLs."> + Google Chrome is made possible by the <ph name="BEGIN_LINK_CHROMIUM"><a target="_blank" href="$1"></ph>Chromium<ph name="END_LINK_CHROMIUM"></a></ph> open source project and other <ph name="BEGIN_LINK_OSS"><a target="_blank" href="$2"></ph>open source software<ph name="END_LINK_OSS"></a></ph>. + </message> </messages> </release> </grit>
diff --git a/components/components_strings.grd b/components/components_strings.grd index 990a358..a91c21db8 100644 --- a/components/components_strings.grd +++ b/components/components_strings.grd
@@ -148,7 +148,7 @@ <part file="ssl_errors_strings.grdp" /> <part file="translate_strings.grdp" /> <part file="undo_strings.grdp" /> - <part file="version_info.grdp" /> + <part file="version_ui_strings.grdp" /> <!-- Generic terms --> <message name="IDS_LEARN_MORE" desc="Learn more text">
diff --git a/components/components_tests.gyp b/components/components_tests.gyp index 4bfe456b..f37f582 100644 --- a/components/components_tests.gyp +++ b/components/components_tests.gyp
@@ -680,6 +680,7 @@ ], 'tracing_unittest_sources': [ 'tracing/trace_config_file_unittest.cc', + 'tracing/graphics_memory_dump_provider_android_unittest.cc', ], 'translate_unittest_sources': [ 'translate/core/browser/language_state_unittest.cc', @@ -1082,6 +1083,7 @@ '<@(safe_json_unittest_sources)', '<@(scheduler_unittest_sources)', '<@(storage_monitor_unittest_sources)', + '<@(tracing_unittest_sources)', '<@(ui_unittest_sources)', '<@(visitedlink_unittest_sources)', '<@(web_cache_unittest_sources)', @@ -1130,6 +1132,7 @@ 'components.gyp:web_modal_test_support', 'scheduler/scheduler.gyp:scheduler', 'test_runner/test_runner.gyp:test_runner', + 'tracing.gyp:tracing', 'webcrypto/webcrypto.gyp:webcrypto', '../third_party/re2/re2.gyp:re2', ], @@ -1276,7 +1279,6 @@ '<@(copresence_unittest_sources)', '<@(feedback_unittest_sources)', '<@(proximity_auth_unittest_sources)', - '<@(tracing_unittest_sources)', '<@(webusb_detector_unittest_sources)', ], 'sources!': [ @@ -1302,7 +1304,6 @@ 'components.gyp:proximity_auth', 'components.gyp:proximity_auth_test_support', 'components.gyp:webusb', - 'tracing.gyp:tracing', ], }], ['chromeos==1', { @@ -1375,6 +1376,7 @@ ['OS=="android"', { 'sources/': [ ['exclude', '^policy/core/common/async_policy_provider_unittest\\.cc'], + ['exclude', '^tracing/trace_config_file_unittest\\.cc'], ], }], ['OS=="android" or OS=="ios"', {
diff --git a/components/html_viewer/BUILD.gn b/components/html_viewer/BUILD.gn index 9288830..02a3243 100644 --- a/components/html_viewer/BUILD.gn +++ b/components/html_viewer/BUILD.gn
@@ -215,7 +215,7 @@ data_deps = [ "//components/clipboard", - "//components/mus/vm:lib", + "//components/mus/ws:lib", "//mojo/services/network:network", "//mojo/services/tracing", ]
diff --git a/components/html_viewer/document_resource_waiter.cc b/components/html_viewer/document_resource_waiter.cc index bc6731d73..10f7df9 100644 --- a/components/html_viewer/document_resource_waiter.cc +++ b/components/html_viewer/document_resource_waiter.cc
@@ -88,12 +88,12 @@ } // The first portion of ready is when we have received OnConnect() - // (|frame_data_| is valid) and we have a view with valid metrics. The view - // is not necessary is ViewConnectType is USE_EXISTING, which means the + // (|frame_data_| is valid) and we have a window with valid metrics. The + // window is not necessary is ViewConnectType is USE_EXISTING, which means the // application is not asked for a ViewTreeClient. The metrics are necessary - // to initialize ResourceBundle. If USE_EXISTING is true, it means a View has - // already been provided to another HTMLDocument and there is no need to wait - // for metrics. + // to initialize ResourceBundle. If USE_EXISTING is true, it means a Window + // has already been provided to another HTMLDocument and there is no need to + // wait for metrics. bool is_ready = (!frame_data_.is_null() && ((view_connect_type_ == @@ -102,9 +102,9 @@ if (is_ready) { HTMLFrameTreeManager* frame_tree = HTMLFrameTreeManager::FindFrameTreeWithRoot(frame_data_[0]->frame_id); - // Once we've received OnConnect() and the view (if necessary), we determine - // which HTMLFrameTreeManager the new frame ends up in. If there is an - // existing HTMLFrameTreeManager then we must wait for the change_id + // Once we've received OnConnect() and the window (if necessary), we + // determine which HTMLFrameTreeManager the new frame ends up in. If there + // is an existing HTMLFrameTreeManager then we must wait for the change_id // supplied to OnConnect() to be <= that of the HTMLFrameTreeManager's // change_id. If we did not wait for the change id to be <= then the // structure of the tree is not in the expected state and it's possible the
diff --git a/components/html_viewer/html_document.cc b/components/html_viewer/html_document.cc index adf7cbf6..78f8b22 100644 --- a/components/html_viewer/html_document.cc +++ b/components/html_viewer/html_document.cc
@@ -21,7 +21,7 @@ #include "components/html_viewer/web_url_loader_impl.h" #include "components/mus/public/cpp/window.h" #include "components/mus/public/cpp/window_tree_connection.h" -#include "components/mus/vm/ids.h" +#include "components/mus/ws/ids.h" #include "mojo/application/public/cpp/application_impl.h" #include "mojo/application/public/cpp/connect.h" #include "mojo/application/public/interfaces/shell.mojom.h" @@ -149,12 +149,12 @@ void HTMLDocument::Load() { DCHECK(resource_waiter_ && resource_waiter_->is_ready()); - // Note: |view| is null if we're taking over for an existing frame. - mus::Window* view = resource_waiter_->root(); - if (view) { + // Note: |window| is null if we're taking over for an existing frame. + mus::Window* window = resource_waiter_->root(); + if (window) { global_state_->InitIfNecessary( - view->viewport_metrics().size_in_pixels.To<gfx::Size>(), - view->viewport_metrics().device_pixel_ratio); + window->viewport_metrics().size_in_pixels.To<gfx::Size>(), + window->viewport_metrics().device_pixel_ratio); } scoped_ptr<WebURLRequestExtraData> extra_data(new WebURLRequestExtraData); @@ -164,7 +164,7 @@ base::TimeTicks navigation_start_time = resource_waiter_->navigation_start_time(); frame_ = HTMLFrameTreeManager::CreateFrameAndAttachToTree( - global_state_, view, resource_waiter_.Pass(), this); + global_state_, window, resource_waiter_.Pass(), this); // If the frame wasn't created we can destroy ourself. if (!frame_) { @@ -246,7 +246,7 @@ DCHECK(!transferable_state_.root); if (!old_delegate) { // We're taking over a child of a local root that isn't associated with a - // delegate. In this case the frame's view is not the root of the + // delegate. In this case the frame's window is not the root of the // WindowTreeConnection. transferable_state_.owns_window_tree_connection = false; transferable_state_.root = frame->window();
diff --git a/components/html_viewer/html_document.h b/components/html_viewer/html_document.h index 2b82384e..2172fb7 100644 --- a/components/html_viewer/html_document.h +++ b/components/html_viewer/html_document.h
@@ -43,10 +43,10 @@ class WindowTreeDelegateImpl; class WebLayerTreeViewImpl; -// A view for a single HTML document. +// A window for a single HTML document. // // HTMLDocument is deleted in one of two ways: -// . When the View the HTMLDocument is embedded in is destroyed. +// . When the Window the HTMLDocument is embedded in is destroyed. // . Explicitly by way of Destroy(). class HTMLDocument : public mus::WindowTreeDelegate,
diff --git a/components/html_viewer/html_frame.cc b/components/html_viewer/html_frame.cc index c1b084d8..37f9bce 100644 --- a/components/html_viewer/html_frame.cc +++ b/components/html_viewer/html_frame.cc
@@ -37,7 +37,7 @@ #include "components/mus/public/cpp/scoped_window_ptr.h" #include "components/mus/public/cpp/window.h" #include "components/mus/public/cpp/window_tree_connection.h" -#include "components/mus/vm/ids.h" +#include "components/mus/ws/ids.h" #include "mojo/application/public/cpp/application_impl.h" #include "mojo/application/public/cpp/connect.h" #include "mojo/application/public/interfaces/shell.mojom.h" @@ -323,10 +323,10 @@ blink::WebSandboxFlags sandbox_flags) { DCHECK(IsLocal()); // Can't create children of remote frames. DCHECK_EQ(parent, web_frame_); - DCHECK(window_); // If we're local we have to have a view. - // Create the view that will house the frame now. We embed once we know the + DCHECK(window_); // If we're local we have to have a window. + // Create the window that will house the frame now. We embed once we know the // url (see decidePolicyForNavigation()). - mus::Window* child_view = window_->connection()->CreateWindow(); + mus::Window* child_window = window_->connection()->CreateWindow(); ReplicatedFrameState child_state; child_state.name = frame_name; child_state.tree_scope = scope; @@ -335,23 +335,23 @@ client_properties.mark_non_null(); ClientPropertiesFromReplicatedFrameState(child_state, &client_properties); - child_view->SetVisible(true); - window_->AddChild(child_view); + child_window->SetVisible(true); + window_->AddChild(child_window); - HTMLFrame::CreateParams params(frame_tree_manager_, this, child_view->id(), - child_view, client_properties, nullptr); + HTMLFrame::CreateParams params(frame_tree_manager_, this, child_window->id(), + child_window, client_properties, nullptr); params.is_local_create_child = true; HTMLFrame* child_frame = GetFirstAncestorWithDelegate() ->delegate_->GetHTMLFactory() ->CreateHTMLFrame(¶ms); - child_frame->owned_window_.reset(new mus::ScopedWindowPtr(child_view)); + child_frame->owned_window_.reset(new mus::ScopedWindowPtr(child_window)); web_view::mojom::FrameClientPtr client_ptr; child_frame->frame_client_binding_.reset( new mojo::Binding<web_view::mojom::FrameClient>( child_frame, mojo::GetProxy(&client_ptr))); server_->OnCreatedFrame(GetProxy(&(child_frame->server_)), client_ptr.Pass(), - child_view->id(), client_properties.Pass()); + child_window->id(), client_properties.Pass()); return child_frame->web_frame_; } @@ -1011,7 +1011,7 @@ } void HTMLFrame::frameRectsChanged(const blink::WebRect& frame_rect) { - // Only the owner of view can update its size. + // Only the owner of window can update its size. if (!owned_window_) return;
diff --git a/components/html_viewer/html_frame.h b/components/html_viewer/html_frame.h index e444f67..bc813f7 100644 --- a/components/html_viewer/html_frame.h +++ b/components/html_viewer/html_frame.h
@@ -55,7 +55,7 @@ // Frame is used to represent a single frame in the frame tree of a page. The // frame is either local or remote. Each Frame is associated with a single // HTMLFrameTreeManager and can not be moved to another HTMLFrameTreeManager. -// Local frames have a mus::View, remote frames do not. +// Local frames have a mus::Window, remote frames do not. // // HTMLFrame serves as the FrameClient. It implements it by forwarding the // calls to HTMLFrameTreeManager so that HTMLFrameTreeManager can update the @@ -131,7 +131,7 @@ blink::WebView* web_view(); blink::WebWidget* GetWebWidget(); - // The mus::View this frame renders to. This is non-null for the local frame + // The mus::Window this frame renders to. This is non-null for the local frame // the frame tree was created with as well as non-null for any frames created // locally. mus::Window* window() { return window_; } @@ -322,11 +322,11 @@ HTMLFrameTreeManager* frame_tree_manager_; HTMLFrame* parent_; - // |view_| is non-null for local frames or remote frames that were once + // |window_| is non-null for local frames or remote frames that were once // local. mus::Window* window_; - // The id for this frame. If there is a view, this is the same id as the - // view has. + // The id for this frame. If there is a window, this is the same id as the + // window has. const uint32_t id_; std::vector<HTMLFrame*> children_; blink::WebFrame* web_frame_; @@ -344,14 +344,14 @@ ReplicatedFrameState state_; // If this frame is the result of creating a local frame - // (createChildFrame()), then |owned_window_| is the View initially created + // (createChildFrame()), then |owned_window_| is the Window initially created // for the frame. While the frame is local |owned_window_| is the same as - // |view_|. If this frame becomes remote |view_| is set to null and - // |owned_window_| remains as the View initially created for the frame. + // |window_|. If this frame becomes remote |window_| is set to null and + // |owned_window_| remains as the Window initially created for the frame. // - // This is done to ensure the View isn't prematurely deleted (it must exist - // as long as the frame is valid). If the View was deleted as soon as the - // frame was swapped to remote then the process rendering to the view would + // This is done to ensure the Window isn't prematurely deleted (it must exist + // as long as the frame is valid). If the Window was deleted as soon as the + // frame was swapped to remote then the process rendering to the window would // be severed. scoped_ptr<mus::ScopedWindowPtr> owned_window_;
diff --git a/components/html_viewer/html_frame_tree_manager.cc b/components/html_viewer/html_frame_tree_manager.cc index e56a9a29..58bc1dbe 100644 --- a/components/html_viewer/html_frame_tree_manager.cc +++ b/components/html_viewer/html_frame_tree_manager.cc
@@ -101,7 +101,7 @@ << " frame_id=" << window_id; if (view_connect_type == web_view::mojom::VIEW_CONNECT_TYPE_USE_EXISTING && !frame_tree) { - DVLOG(1) << "was told to use existing view but do not have frame tree"; + DVLOG(1) << "was told to use existing window but do not have frame tree"; return nullptr; } @@ -113,11 +113,11 @@ web_view::mojom::VIEW_CONNECT_TYPE_USE_EXISTING) { HTMLFrame* existing_frame = frame_tree->root_->FindFrame(window_id); if (!existing_frame) { - DVLOG(1) << "was told to use existing view but could not find view"; + DVLOG(1) << "was told to use existing window but could not find window"; return nullptr; } if (!existing_frame->IsLocal()) { - DVLOG(1) << "was told to use existing view, but frame is remote"; + DVLOG(1) << "was told to use existing window, but frame is remote"; return nullptr; } existing_frame->SwapDelegate(delegate);
diff --git a/components/json_schema/json_schema_validator_unittest_base.cc b/components/json_schema/json_schema_validator_unittest_base.cc index 38f111c..7aae2816 100644 --- a/components/json_schema/json_schema_validator_unittest_base.cc +++ b/components/json_schema/json_schema_validator_unittest_base.cc
@@ -37,7 +37,8 @@ std::string error_message; JSONFileValueDeserializer deserializer(path); - base::Value* result = deserializer.Deserialize(NULL, &error_message); + base::Value* result = + deserializer.Deserialize(NULL, &error_message).release(); if (!result) ADD_FAILURE() << "Could not parse JSON: " << error_message; return result;
diff --git a/components/mus/BUILD.gn b/components/mus/BUILD.gn index ec34ba81..3ebc201 100644 --- a/components/mus/BUILD.gn +++ b/components/mus/BUILD.gn
@@ -52,7 +52,7 @@ "//components/mus/public/cpp:common", "//components/mus/public/interfaces", "//components/mus/surfaces", - "//components/mus/vm:lib", + "//components/mus/ws:lib", "//mojo/application/public/cpp", "//mojo/common:common_base", "//mojo/common:tracing_impl",
diff --git a/components/mus/gles2/BUILD.gn b/components/mus/gles2/BUILD.gn index be5e03c..9c0929f7 100644 --- a/components/mus/gles2/BUILD.gn +++ b/components/mus/gles2/BUILD.gn
@@ -5,7 +5,7 @@ source_set("gles2") { visibility = [ "//components/mus:*", - "//components/mus/vm:*", + "//components/mus/ws:*", "//components/mus/surfaces:*", "//mojo/runner:lib", # For android ]
diff --git a/components/mus/mus_app.cc b/components/mus/mus_app.cc index 3cb357a..335dbca 100644 --- a/components/mus/mus_app.cc +++ b/components/mus/mus_app.cc
@@ -8,11 +8,11 @@ #include "components/mus/gles2/gpu_impl.h" #include "components/mus/public/cpp/args.h" #include "components/mus/surfaces/surfaces_scheduler.h" -#include "components/mus/vm/client_connection.h" -#include "components/mus/vm/connection_manager.h" -#include "components/mus/vm/view_tree_host_connection.h" -#include "components/mus/vm/view_tree_host_impl.h" -#include "components/mus/vm/view_tree_impl.h" +#include "components/mus/ws/client_connection.h" +#include "components/mus/ws/connection_manager.h" +#include "components/mus/ws/view_tree_host_connection.h" +#include "components/mus/ws/view_tree_host_impl.h" +#include "components/mus/ws/view_tree_impl.h" #include "mojo/application/public/cpp/application_connection.h" #include "mojo/application/public/cpp/application_impl.h" #include "mojo/application/public/cpp/application_runner.h"
diff --git a/components/mus/mus_app.h b/components/mus/mus_app.h index c46ab0cb..9ffd4375 100644 --- a/components/mus/mus_app.h +++ b/components/mus/mus_app.h
@@ -11,7 +11,7 @@ #include "components/mus/public/interfaces/gpu.mojom.h" #include "components/mus/public/interfaces/view_tree.mojom.h" #include "components/mus/public/interfaces/view_tree_host.mojom.h" -#include "components/mus/vm/connection_manager_delegate.h" +#include "components/mus/ws/connection_manager_delegate.h" #include "mojo/application/public/cpp/app_lifetime_helper.h" #include "mojo/application/public/cpp/application_delegate.h" #include "mojo/application/public/cpp/interface_factory.h"
diff --git a/components/mus/vm/BUILD.gn b/components/mus/ws/BUILD.gn similarity index 100% rename from components/mus/vm/BUILD.gn rename to components/mus/ws/BUILD.gn
diff --git a/components/mus/vm/access_policy.h b/components/mus/ws/access_policy.h similarity index 93% rename from components/mus/vm/access_policy.h rename to components/mus/ws/access_policy.h index f2862b4..bcaefdd 100644 --- a/components/mus/vm/access_policy.h +++ b/components/mus/ws/access_policy.h
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_ACCESS_POLICY_H_ -#define COMPONENTS_MUS_VM_ACCESS_POLICY_H_ +#ifndef COMPONENTS_MUS_WS_ACCESS_POLICY_H_ +#define COMPONENTS_MUS_WS_ACCESS_POLICY_H_ #include "components/mus/public/interfaces/mus_constants.mojom.h" -#include "components/mus/vm/ids.h" +#include "components/mus/ws/ids.h" namespace mus { @@ -56,4 +56,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_ACCESS_POLICY_H_ +#endif // COMPONENTS_MUS_WS_ACCESS_POLICY_H_
diff --git a/components/mus/vm/access_policy_delegate.h b/components/mus/ws/access_policy_delegate.h similarity index 84% rename from components/mus/vm/access_policy_delegate.h rename to components/mus/ws/access_policy_delegate.h index 60f5e93..ff99a86 100644 --- a/components/mus/vm/access_policy_delegate.h +++ b/components/mus/ws/access_policy_delegate.h
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_ACCESS_POLICY_DELEGATE_H_ -#define COMPONENTS_MUS_VM_ACCESS_POLICY_DELEGATE_H_ +#ifndef COMPONENTS_MUS_WS_ACCESS_POLICY_DELEGATE_H_ +#define COMPONENTS_MUS_WS_ACCESS_POLICY_DELEGATE_H_ #include <vector> #include "base/containers/hash_tables.h" -#include "components/mus/vm/ids.h" +#include "components/mus/ws/ids.h" namespace mus { @@ -37,4 +37,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_ACCESS_POLICY_DELEGATE_H_ +#endif // COMPONENTS_MUS_WS_ACCESS_POLICY_DELEGATE_H_
diff --git a/components/mus/vm/client_connection.cc b/components/mus/ws/client_connection.cc similarity index 87% rename from components/mus/vm/client_connection.cc rename to components/mus/ws/client_connection.cc index 48c8a63b..06fa39a2 100644 --- a/components/mus/vm/client_connection.cc +++ b/components/mus/ws/client_connection.cc
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/client_connection.h" +#include "components/mus/ws/client_connection.h" -#include "components/mus/vm/connection_manager.h" -#include "components/mus/vm/view_tree_impl.h" +#include "components/mus/ws/connection_manager.h" +#include "components/mus/ws/view_tree_impl.h" namespace mus {
diff --git a/components/mus/vm/client_connection.h b/components/mus/ws/client_connection.h similarity index 91% rename from components/mus/vm/client_connection.h rename to components/mus/ws/client_connection.h index ecae3a94..a4550793 100644 --- a/components/mus/vm/client_connection.h +++ b/components/mus/ws/client_connection.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_CLIENT_CONNECTION_H_ -#define COMPONENTS_MUS_VM_CLIENT_CONNECTION_H_ +#ifndef COMPONENTS_MUS_WS_CLIENT_CONNECTION_H_ +#define COMPONENTS_MUS_WS_CLIENT_CONNECTION_H_ #include "base/memory/scoped_ptr.h" #include "components/mus/public/interfaces/view_tree.mojom.h" @@ -54,4 +54,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_CLIENT_CONNECTION_H_ +#endif // COMPONENTS_MUS_WS_CLIENT_CONNECTION_H_
diff --git a/components/mus/vm/connection_manager.cc b/components/mus/ws/connection_manager.cc similarity index 97% rename from components/mus/vm/connection_manager.cc rename to components/mus/ws/connection_manager.cc index 79adc98..51ccdb1 100644 --- a/components/mus/vm/connection_manager.cc +++ b/components/mus/ws/connection_manager.cc
@@ -2,16 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/connection_manager.h" +#include "components/mus/ws/connection_manager.h" #include "base/logging.h" #include "base/stl_util.h" -#include "components/mus/vm/client_connection.h" -#include "components/mus/vm/connection_manager_delegate.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/view_coordinate_conversions.h" -#include "components/mus/vm/view_tree_host_connection.h" -#include "components/mus/vm/view_tree_impl.h" +#include "components/mus/ws/client_connection.h" +#include "components/mus/ws/connection_manager_delegate.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/view_coordinate_conversions.h" +#include "components/mus/ws/view_tree_host_connection.h" +#include "components/mus/ws/view_tree_impl.h" #include "mojo/application/public/cpp/application_connection.h" #include "mojo/converters/geometry/geometry_type_converters.h" #include "mojo/converters/input_events/input_events_type_converters.h"
diff --git a/components/mus/vm/connection_manager.h b/components/mus/ws/connection_manager.h similarity index 95% rename from components/mus/vm/connection_manager.h rename to components/mus/ws/connection_manager.h index bfbbd23b..d3f0b0a 100644 --- a/components/mus/vm/connection_manager.h +++ b/components/mus/ws/connection_manager.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_CONNECTION_MANAGER_H_ -#define COMPONENTS_MUS_VM_CONNECTION_MANAGER_H_ +#ifndef COMPONENTS_MUS_WS_CONNECTION_MANAGER_H_ +#define COMPONENTS_MUS_WS_CONNECTION_MANAGER_H_ #include <map> #include <set> @@ -14,11 +14,11 @@ #include "components/mus/public/interfaces/view_tree.mojom.h" #include "components/mus/public/interfaces/view_tree_host.mojom.h" #include "components/mus/surfaces/surfaces_state.h" -#include "components/mus/vm/focus_controller_delegate.h" -#include "components/mus/vm/ids.h" -#include "components/mus/vm/server_view_delegate.h" -#include "components/mus/vm/server_view_observer.h" -#include "components/mus/vm/view_tree_host_impl.h" +#include "components/mus/ws/focus_controller_delegate.h" +#include "components/mus/ws/ids.h" +#include "components/mus/ws/server_view_delegate.h" +#include "components/mus/ws/server_view_observer.h" +#include "components/mus/ws/view_tree_host_impl.h" #include "mojo/converters/surfaces/custom_surface_converter.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/array.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" @@ -249,4 +249,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_CONNECTION_MANAGER_H_ +#endif // COMPONENTS_MUS_WS_CONNECTION_MANAGER_H_
diff --git a/components/mus/vm/connection_manager_delegate.h b/components/mus/ws/connection_manager_delegate.h similarity index 88% rename from components/mus/vm/connection_manager_delegate.h rename to components/mus/ws/connection_manager_delegate.h index a96071b..d72f363 100644 --- a/components/mus/vm/connection_manager_delegate.h +++ b/components/mus/ws/connection_manager_delegate.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_CONNECTION_MANAGER_DELEGATE_H_ -#define COMPONENTS_MUS_VM_CONNECTION_MANAGER_DELEGATE_H_ +#ifndef COMPONENTS_MUS_WS_CONNECTION_MANAGER_DELEGATE_H_ +#define COMPONENTS_MUS_WS_CONNECTION_MANAGER_DELEGATE_H_ #include <string> @@ -45,4 +45,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_CONNECTION_MANAGER_DELEGATE_H_ +#endif // COMPONENTS_MUS_WS_CONNECTION_MANAGER_DELEGATE_H_
diff --git a/components/mus/vm/default_access_policy.cc b/components/mus/ws/default_access_policy.cc similarity index 96% rename from components/mus/vm/default_access_policy.cc rename to components/mus/ws/default_access_policy.cc index f2a049a..8bf8eb3 100644 --- a/components/mus/vm/default_access_policy.cc +++ b/components/mus/ws/default_access_policy.cc
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/default_access_policy.h" +#include "components/mus/ws/default_access_policy.h" -#include "components/mus/vm/access_policy_delegate.h" -#include "components/mus/vm/server_view.h" +#include "components/mus/ws/access_policy_delegate.h" +#include "components/mus/ws/server_view.h" namespace mus {
diff --git a/components/mus/vm/default_access_policy.h b/components/mus/ws/default_access_policy.h similarity index 91% rename from components/mus/vm/default_access_policy.h rename to components/mus/ws/default_access_policy.h index 6bda02e..a05a22e 100644 --- a/components/mus/vm/default_access_policy.h +++ b/components/mus/ws/default_access_policy.h
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_DEFAULT_ACCESS_POLICY_H_ -#define COMPONENTS_MUS_VM_DEFAULT_ACCESS_POLICY_H_ +#ifndef COMPONENTS_MUS_WS_DEFAULT_ACCESS_POLICY_H_ +#define COMPONENTS_MUS_WS_DEFAULT_ACCESS_POLICY_H_ #include "base/basictypes.h" -#include "components/mus/vm/access_policy.h" +#include "components/mus/ws/access_policy.h" namespace mus { @@ -54,4 +54,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_DEFAULT_ACCESS_POLICY_H_ +#endif // COMPONENTS_MUS_WS_DEFAULT_ACCESS_POLICY_H_
diff --git a/components/mus/vm/display_manager.cc b/components/mus/ws/display_manager.cc similarity index 98% rename from components/mus/vm/display_manager.cc rename to components/mus/ws/display_manager.cc index 3ff9fb2..3f7eebf 100644 --- a/components/mus/vm/display_manager.cc +++ b/components/mus/ws/display_manager.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/display_manager.h" +#include "components/mus/ws/display_manager.h" #include "base/numerics/safe_conversions.h" #include "cc/output/compositor_frame.h" @@ -14,9 +14,9 @@ #include "components/mus/public/interfaces/gpu.mojom.h" #include "components/mus/public/interfaces/quads.mojom.h" #include "components/mus/surfaces/surfaces_state.h" -#include "components/mus/vm/display_manager_factory.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/view_coordinate_conversions.h" +#include "components/mus/ws/display_manager_factory.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/view_coordinate_conversions.h" #include "mojo/application/public/cpp/application_connection.h" #include "mojo/application/public/cpp/application_impl.h" #include "mojo/converters/geometry/geometry_type_converters.h"
diff --git a/components/mus/vm/display_manager.h b/components/mus/ws/display_manager.h similarity index 95% rename from components/mus/vm/display_manager.h rename to components/mus/ws/display_manager.h index 14d973e..e7b0d0f 100644 --- a/components/mus/vm/display_manager.h +++ b/components/mus/ws/display_manager.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_DISPLAY_MANAGER_H_ -#define COMPONENTS_MUS_VM_DISPLAY_MANAGER_H_ +#ifndef COMPONENTS_MUS_WS_DISPLAY_MANAGER_H_ +#define COMPONENTS_MUS_WS_DISPLAY_MANAGER_H_ #include <map> @@ -13,7 +13,7 @@ #include "base/timer/timer.h" #include "components/mus/public/interfaces/view_tree.mojom.h" #include "components/mus/surfaces/top_level_display_client.h" -#include "components/mus/vm/display_manager_delegate.h" +#include "components/mus/ws/display_manager_delegate.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/callback.h" #include "ui/gfx/geometry/rect.h" #include "ui/platform_window/platform_window_delegate.h" @@ -146,4 +146,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_DISPLAY_MANAGER_H_ +#endif // COMPONENTS_MUS_WS_DISPLAY_MANAGER_H_
diff --git a/components/mus/vm/display_manager_delegate.h b/components/mus/ws/display_manager_delegate.h similarity index 85% rename from components/mus/vm/display_manager_delegate.h rename to components/mus/ws/display_manager_delegate.h index e37d3a8..3b2c2fd7 100644 --- a/components/mus/vm/display_manager_delegate.h +++ b/components/mus/ws/display_manager_delegate.h
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_DISPLAY_MANAGER_DELEGATE_H_ -#define COMPONENTS_MUS_VM_DISPLAY_MANAGER_DELEGATE_H_ +#ifndef COMPONENTS_MUS_WS_DISPLAY_MANAGER_DELEGATE_H_ +#define COMPONENTS_MUS_WS_DISPLAY_MANAGER_DELEGATE_H_ #include "components/mus/public/interfaces/view_tree.mojom.h" -#include "components/mus/vm/ids.h" +#include "components/mus/ws/ids.h" namespace cc { struct SurfaceId; @@ -43,4 +43,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_DISPLAY_MANAGER_DELEGATE_H_ +#endif // COMPONENTS_MUS_WS_DISPLAY_MANAGER_DELEGATE_H_
diff --git a/components/mus/vm/display_manager_factory.h b/components/mus/ws/display_manager_factory.h similarity index 81% rename from components/mus/vm/display_manager_factory.h rename to components/mus/ws/display_manager_factory.h index 358b1bc..adfeb23 100644 --- a/components/mus/vm/display_manager_factory.h +++ b/components/mus/ws/display_manager_factory.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_DISPLAY_MANAGER_FACTORY_H_ -#define COMPONENTS_MUS_VM_DISPLAY_MANAGER_FACTORY_H_ +#ifndef COMPONENTS_MUS_WS_DISPLAY_MANAGER_FACTORY_H_ +#define COMPONENTS_MUS_WS_DISPLAY_MANAGER_FACTORY_H_ #include "components/mus/gles2/gpu_state.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/callback.h" @@ -28,4 +28,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_DISPLAY_MANAGER_FACTORY_H_ +#endif // COMPONENTS_MUS_WS_DISPLAY_MANAGER_FACTORY_H_
diff --git a/components/mus/vm/event_dispatcher.cc b/components/mus/ws/event_dispatcher.cc similarity index 94% rename from components/mus/vm/event_dispatcher.cc rename to components/mus/ws/event_dispatcher.cc index 2fd0a6b..f379df3 100644 --- a/components/mus/vm/event_dispatcher.cc +++ b/components/mus/ws/event_dispatcher.cc
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/event_dispatcher.h" +#include "components/mus/ws/event_dispatcher.h" #include "cc/surfaces/surface_id.h" #include "components/mus/surfaces/surfaces_state.h" -#include "components/mus/vm/connection_manager.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/server_view_delegate.h" -#include "components/mus/vm/view_coordinate_conversions.h" -#include "components/mus/vm/view_tree_host_impl.h" +#include "components/mus/ws/connection_manager.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/server_view_delegate.h" +#include "components/mus/ws/view_coordinate_conversions.h" +#include "components/mus/ws/view_tree_host_impl.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/point_f.h"
diff --git a/components/mus/vm/event_dispatcher.h b/components/mus/ws/event_dispatcher.h similarity index 94% rename from components/mus/vm/event_dispatcher.h rename to components/mus/ws/event_dispatcher.h index 28cecc4..b515ec7bc 100644 --- a/components/mus/vm/event_dispatcher.h +++ b/components/mus/ws/event_dispatcher.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_EVENT_DISPATCHER_H_ -#define COMPONENTS_MUS_VM_EVENT_DISPATCHER_H_ +#ifndef COMPONENTS_MUS_WS_EVENT_DISPATCHER_H_ +#define COMPONENTS_MUS_WS_EVENT_DISPATCHER_H_ #include <map> @@ -80,4 +80,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_EVENT_DISPATCHER_H_ +#endif // COMPONENTS_MUS_WS_EVENT_DISPATCHER_H_
diff --git a/components/mus/vm/focus_controller.cc b/components/mus/ws/focus_controller.cc similarity index 86% rename from components/mus/vm/focus_controller.cc rename to components/mus/ws/focus_controller.cc index 1d0d8931..f02fed689 100644 --- a/components/mus/vm/focus_controller.cc +++ b/components/mus/ws/focus_controller.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/focus_controller.h" +#include "components/mus/ws/focus_controller.h" -#include "components/mus/vm/focus_controller_delegate.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/server_view_drawn_tracker.h" +#include "components/mus/ws/focus_controller_delegate.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/server_view_drawn_tracker.h" namespace mus {
diff --git a/components/mus/vm/focus_controller.h b/components/mus/ws/focus_controller.h similarity index 87% rename from components/mus/vm/focus_controller.h rename to components/mus/ws/focus_controller.h index d0c17d74..c756ed2 100644 --- a/components/mus/vm/focus_controller.h +++ b/components/mus/ws/focus_controller.h
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_FOCUS_CONTROLLER_H_ -#define COMPONENTS_MUS_VM_FOCUS_CONTROLLER_H_ +#ifndef COMPONENTS_MUS_WS_FOCUS_CONTROLLER_H_ +#define COMPONENTS_MUS_WS_FOCUS_CONTROLLER_H_ #include "base/memory/scoped_ptr.h" -#include "components/mus/vm/server_view_drawn_tracker_observer.h" +#include "components/mus/ws/server_view_drawn_tracker_observer.h" namespace mus { @@ -49,4 +49,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_FOCUS_CONTROLLER_H_ +#endif // COMPONENTS_MUS_WS_FOCUS_CONTROLLER_H_
diff --git a/components/mus/vm/focus_controller_delegate.h b/components/mus/ws/focus_controller_delegate.h similarity index 72% rename from components/mus/vm/focus_controller_delegate.h rename to components/mus/ws/focus_controller_delegate.h index c0a77dd..ee91a5e2 100644 --- a/components/mus/vm/focus_controller_delegate.h +++ b/components/mus/ws/focus_controller_delegate.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_FOCUS_CONTROLLER_DELEGATE_H_ -#define COMPONENTS_MUS_VM_FOCUS_CONTROLLER_DELEGATE_H_ +#ifndef COMPONENTS_MUS_WS_FOCUS_CONTROLLER_DELEGATE_H_ +#define COMPONENTS_MUS_WS_FOCUS_CONTROLLER_DELEGATE_H_ namespace mus { @@ -20,4 +20,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_FOCUS_CONTROLLER_DELEGATE_H_ +#endif // COMPONENTS_MUS_WS_FOCUS_CONTROLLER_DELEGATE_H_
diff --git a/components/mus/vm/focus_controller_unittest.cc b/components/mus/ws/focus_controller_unittest.cc similarity index 93% rename from components/mus/vm/focus_controller_unittest.cc rename to components/mus/ws/focus_controller_unittest.cc index 5e1c3c1..5a7ad15 100644 --- a/components/mus/vm/focus_controller_unittest.cc +++ b/components/mus/ws/focus_controller_unittest.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/focus_controller.h" +#include "components/mus/ws/focus_controller.h" -#include "components/mus/vm/focus_controller_delegate.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/test_server_view_delegate.h" +#include "components/mus/ws/focus_controller_delegate.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/test_server_view_delegate.h" #include "testing/gtest/include/gtest/gtest.h" namespace mus {
diff --git a/components/mus/vm/ids.h b/components/mus/ws/ids.h similarity index 94% rename from components/mus/vm/ids.h rename to components/mus/ws/ids.h index de84266..a788359 100644 --- a/components/mus/vm/ids.h +++ b/components/mus/ws/ids.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_IDS_H_ -#define COMPONENTS_MUS_VM_IDS_H_ +#ifndef COMPONENTS_MUS_WS_IDS_H_ +#define COMPONENTS_MUS_WS_IDS_H_ #include "components/mus/public/cpp/types.h" #include "components/mus/public/cpp/util.h" @@ -58,4 +58,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_IDS_H_ +#endif // COMPONENTS_MUS_WS_IDS_H_
diff --git a/components/mus/vm/server_view.cc b/components/mus/ws/server_view.cc similarity index 97% rename from components/mus/vm/server_view.cc rename to components/mus/ws/server_view.cc index 5b90a56..9eaa974 100644 --- a/components/mus/vm/server_view.cc +++ b/components/mus/ws/server_view.cc
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/server_view.h" +#include "components/mus/ws/server_view.h" #include <inttypes.h> #include "base/strings/stringprintf.h" -#include "components/mus/vm/server_view_delegate.h" -#include "components/mus/vm/server_view_observer.h" +#include "components/mus/ws/server_view_delegate.h" +#include "components/mus/ws/server_view_observer.h" #include "mojo/converters/geometry/geometry_type_converters.h" namespace mus {
diff --git a/components/mus/vm/server_view.h b/components/mus/ws/server_view.h similarity index 95% rename from components/mus/vm/server_view.h rename to components/mus/ws/server_view.h index e9b1653e..8cebcfc 100644 --- a/components/mus/vm/server_view.h +++ b/components/mus/ws/server_view.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_SERVER_VIEW_H_ -#define COMPONENTS_MUS_VM_SERVER_VIEW_H_ +#ifndef COMPONENTS_MUS_WS_SERVER_VIEW_H_ +#define COMPONENTS_MUS_WS_SERVER_VIEW_H_ #include <vector> @@ -11,8 +11,8 @@ #include "base/observer_list.h" #include "components/mus/public/interfaces/compositor_frame.mojom.h" #include "components/mus/public/interfaces/view_tree.mojom.h" -#include "components/mus/vm/ids.h" -#include "components/mus/vm/server_view_surface.h" +#include "components/mus/ws/ids.h" +#include "components/mus/ws/server_view_surface.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/transform.h" @@ -139,4 +139,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_SERVER_VIEW_H_ +#endif // COMPONENTS_MUS_WS_SERVER_VIEW_H_
diff --git a/components/mus/vm/server_view_delegate.h b/components/mus/ws/server_view_delegate.h similarity index 83% rename from components/mus/vm/server_view_delegate.h rename to components/mus/ws/server_view_delegate.h index a1dd884..58b40a3 100644 --- a/components/mus/vm/server_view_delegate.h +++ b/components/mus/ws/server_view_delegate.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_SERVER_VIEW_DELEGATE_H_ -#define COMPONENTS_MUS_VM_SERVER_VIEW_DELEGATE_H_ +#ifndef COMPONENTS_MUS_WS_SERVER_VIEW_DELEGATE_H_ +#define COMPONENTS_MUS_WS_SERVER_VIEW_DELEGATE_H_ #include "base/memory/scoped_ptr.h" #include "components/mus/public/interfaces/mus_constants.mojom.h" @@ -30,4 +30,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_SERVER_VIEW_DELEGATE_H_ +#endif // COMPONENTS_MUS_WS_SERVER_VIEW_DELEGATE_H_
diff --git a/components/mus/vm/server_view_drawn_tracker.cc b/components/mus/ws/server_view_drawn_tracker.cc similarity index 91% rename from components/mus/vm/server_view_drawn_tracker.cc rename to components/mus/ws/server_view_drawn_tracker.cc index 9441511..8b28d084 100644 --- a/components/mus/vm/server_view_drawn_tracker.cc +++ b/components/mus/ws/server_view_drawn_tracker.cc
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/server_view_drawn_tracker.h" +#include "components/mus/ws/server_view_drawn_tracker.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/server_view_drawn_tracker_observer.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/server_view_drawn_tracker_observer.h" namespace mus {
diff --git a/components/mus/vm/server_view_drawn_tracker.h b/components/mus/ws/server_view_drawn_tracker.h similarity index 87% rename from components/mus/vm/server_view_drawn_tracker.h rename to components/mus/ws/server_view_drawn_tracker.h index a3f4f99..ebf1e4a 100644 --- a/components/mus/vm/server_view_drawn_tracker.h +++ b/components/mus/ws/server_view_drawn_tracker.h
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_SERVER_VIEW_DRAWN_TRACKER_H_ -#define COMPONENTS_MUS_VM_SERVER_VIEW_DRAWN_TRACKER_H_ +#ifndef COMPONENTS_MUS_WS_SERVER_VIEW_DRAWN_TRACKER_H_ +#define COMPONENTS_MUS_WS_SERVER_VIEW_DRAWN_TRACKER_H_ #include <set> #include "base/basictypes.h" -#include "components/mus/vm/server_view_observer.h" +#include "components/mus/ws/server_view_observer.h" namespace mus { @@ -53,4 +53,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_SERVER_VIEW_DRAWN_TRACKER_H_ +#endif // COMPONENTS_MUS_WS_SERVER_VIEW_DRAWN_TRACKER_H_
diff --git a/components/mus/vm/server_view_drawn_tracker_observer.h b/components/mus/ws/server_view_drawn_tracker_observer.h similarity index 80% rename from components/mus/vm/server_view_drawn_tracker_observer.h rename to components/mus/ws/server_view_drawn_tracker_observer.h index 51239bec..a892f5e 100644 --- a/components/mus/vm/server_view_drawn_tracker_observer.h +++ b/components/mus/ws/server_view_drawn_tracker_observer.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_SERVER_VIEW_DRAWN_TRACKER_OBSERVER_H_ -#define COMPONENTS_MUS_VM_SERVER_VIEW_DRAWN_TRACKER_OBSERVER_H_ +#ifndef COMPONENTS_MUS_WS_SERVER_VIEW_DRAWN_TRACKER_OBSERVER_H_ +#define COMPONENTS_MUS_WS_SERVER_VIEW_DRAWN_TRACKER_OBSERVER_H_ namespace mus { @@ -25,4 +25,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_SERVER_VIEW_DRAWN_TRACKER_OBSERVER_H_ +#endif // COMPONENTS_MUS_WS_SERVER_VIEW_DRAWN_TRACKER_OBSERVER_H_
diff --git a/components/mus/vm/server_view_drawn_tracker_unittest.cc b/components/mus/ws/server_view_drawn_tracker_unittest.cc similarity index 95% rename from components/mus/vm/server_view_drawn_tracker_unittest.cc rename to components/mus/ws/server_view_drawn_tracker_unittest.cc index 49db3db8..a8b5122 100644 --- a/components/mus/vm/server_view_drawn_tracker_unittest.cc +++ b/components/mus/ws/server_view_drawn_tracker_unittest.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/server_view_drawn_tracker.h" +#include "components/mus/ws/server_view_drawn_tracker.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/server_view_drawn_tracker_observer.h" -#include "components/mus/vm/test_server_view_delegate.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/server_view_drawn_tracker_observer.h" +#include "components/mus/ws/test_server_view_delegate.h" #include "testing/gtest/include/gtest/gtest.h" namespace mus {
diff --git a/components/mus/vm/server_view_observer.h b/components/mus/ws/server_view_observer.h similarity index 92% rename from components/mus/vm/server_view_observer.h rename to components/mus/ws/server_view_observer.h index a4b151c..2b82d6b 100644 --- a/components/mus/vm/server_view_observer.h +++ b/components/mus/ws/server_view_observer.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_SERVER_VIEW_OBSERVER_H_ -#define COMPONENTS_MUS_VM_SERVER_VIEW_OBSERVER_H_ +#ifndef COMPONENTS_MUS_WS_SERVER_VIEW_OBSERVER_H_ +#define COMPONENTS_MUS_WS_SERVER_VIEW_OBSERVER_H_ #include "components/mus/public/interfaces/mus_constants.mojom.h" @@ -67,4 +67,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_SERVER_VIEW_OBSERVER_H_ +#endif // COMPONENTS_MUS_WS_SERVER_VIEW_OBSERVER_H_
diff --git a/components/mus/vm/server_view_surface.cc b/components/mus/ws/server_view_surface.cc similarity index 96% rename from components/mus/vm/server_view_surface.cc rename to components/mus/ws/server_view_surface.cc index 3959a83..18c2ff9 100644 --- a/components/mus/vm/server_view_surface.cc +++ b/components/mus/ws/server_view_surface.cc
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/server_view_surface.h" +#include "components/mus/ws/server_view_surface.h" #include "cc/output/compositor_frame.h" #include "cc/quads/shared_quad_state.h" #include "cc/quads/surface_draw_quad.h" #include "components/mus/surfaces/surfaces_state.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/server_view_delegate.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/server_view_delegate.h" #include "mojo/converters/geometry/geometry_type_converters.h" #include "mojo/converters/surfaces/surfaces_type_converters.h"
diff --git a/components/mus/vm/server_view_surface.h b/components/mus/ws/server_view_surface.h similarity index 93% rename from components/mus/vm/server_view_surface.h rename to components/mus/ws/server_view_surface.h index 5f5096b..f743e6f 100644 --- a/components/mus/vm/server_view_surface.h +++ b/components/mus/ws/server_view_surface.h
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_SERVER_VIEW_SURFACE_H_ -#define COMPONENTS_MUS_VM_SERVER_VIEW_SURFACE_H_ +#ifndef COMPONENTS_MUS_WS_SERVER_VIEW_SURFACE_H_ +#define COMPONENTS_MUS_WS_SERVER_VIEW_SURFACE_H_ #include "cc/surfaces/surface_factory.h" #include "cc/surfaces/surface_factory_client.h" #include "cc/surfaces/surface_id.h" #include "cc/surfaces/surface_id_allocator.h" #include "components/mus/public/interfaces/compositor_frame.mojom.h" -#include "components/mus/vm/ids.h" +#include "components/mus/ws/ids.h" #include "mojo/converters/surfaces/custom_surface_converter.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" @@ -83,4 +83,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_SERVER_VIEW_SURFACE_H_ +#endif // COMPONENTS_MUS_WS_SERVER_VIEW_SURFACE_H_
diff --git a/components/mus/vm/test_change_tracker.cc b/components/mus/ws/test_change_tracker.cc similarity index 99% rename from components/mus/vm/test_change_tracker.cc rename to components/mus/ws/test_change_tracker.cc index 9ff3b114..4e4f09b 100644 --- a/components/mus/vm/test_change_tracker.cc +++ b/components/mus/ws/test_change_tracker.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/test_change_tracker.h" +#include "components/mus/ws/test_change_tracker.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h"
diff --git a/components/mus/vm/test_change_tracker.h b/components/mus/ws/test_change_tracker.h similarity index 96% rename from components/mus/vm/test_change_tracker.h rename to components/mus/ws/test_change_tracker.h index aa1514b6..aa025719b 100644 --- a/components/mus/vm/test_change_tracker.h +++ b/components/mus/ws/test_change_tracker.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_TEST_CHANGE_TRACKER_H_ -#define COMPONENTS_MUS_VM_TEST_CHANGE_TRACKER_H_ +#ifndef COMPONENTS_MUS_WS_TEST_CHANGE_TRACKER_H_ +#define COMPONENTS_MUS_WS_TEST_CHANGE_TRACKER_H_ #include <string> #include <vector> @@ -153,4 +153,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_TEST_CHANGE_TRACKER_H_ +#endif // COMPONENTS_MUS_WS_TEST_CHANGE_TRACKER_H_
diff --git a/components/mus/vm/test_server_view_delegate.cc b/components/mus/ws/test_server_view_delegate.cc similarity index 85% rename from components/mus/vm/test_server_view_delegate.cc rename to components/mus/ws/test_server_view_delegate.cc index 3ab7393..109d8bea 100644 --- a/components/mus/vm/test_server_view_delegate.cc +++ b/components/mus/ws/test_server_view_delegate.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/test_server_view_delegate.h" -#include "components/mus/vm/server_view.h" +#include "components/mus/ws/test_server_view_delegate.h" +#include "components/mus/ws/server_view.h" namespace mus {
diff --git a/components/mus/vm/test_server_view_delegate.h b/components/mus/ws/test_server_view_delegate.h similarity index 77% rename from components/mus/vm/test_server_view_delegate.h rename to components/mus/ws/test_server_view_delegate.h index 4f3d069..ae591cab 100644 --- a/components/mus/vm/test_server_view_delegate.h +++ b/components/mus/ws/test_server_view_delegate.h
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_TEST_SERVER_VIEW_DELEGATE_H_ -#define COMPONENTS_MUS_VM_TEST_SERVER_VIEW_DELEGATE_H_ +#ifndef COMPONENTS_MUS_WS_TEST_SERVER_VIEW_DELEGATE_H_ +#define COMPONENTS_MUS_WS_TEST_SERVER_VIEW_DELEGATE_H_ #include "base/basictypes.h" -#include "components/mus/vm/server_view_delegate.h" +#include "components/mus/ws/server_view_delegate.h" namespace mus { @@ -32,4 +32,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_TEST_SERVER_VIEW_DELEGATE_H_ +#endif // COMPONENTS_MUS_WS_TEST_SERVER_VIEW_DELEGATE_H_
diff --git a/components/mus/vm/view_coordinate_conversions.cc b/components/mus/ws/view_coordinate_conversions.cc similarity index 95% rename from components/mus/vm/view_coordinate_conversions.cc rename to components/mus/ws/view_coordinate_conversions.cc index 57e00937..e0e34d85 100644 --- a/components/mus/vm/view_coordinate_conversions.cc +++ b/components/mus/ws/view_coordinate_conversions.cc
@@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/view_coordinate_conversions.h" +#include "components/mus/ws/view_coordinate_conversions.h" -#include "components/mus/vm/server_view.h" +#include "components/mus/ws/server_view.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/point_conversions.h" #include "ui/gfx/geometry/point_f.h"
diff --git a/components/mus/vm/view_coordinate_conversions.h b/components/mus/ws/view_coordinate_conversions.h similarity index 86% rename from components/mus/vm/view_coordinate_conversions.h rename to components/mus/ws/view_coordinate_conversions.h index ed9e607d..76e85cb2 100644 --- a/components/mus/vm/view_coordinate_conversions.h +++ b/components/mus/ws/view_coordinate_conversions.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_VIEW_COORDINATE_CONVERSIONS_H_ -#define COMPONENTS_MUS_VM_VIEW_COORDINATE_CONVERSIONS_H_ +#ifndef COMPONENTS_MUS_WS_VIEW_COORDINATE_CONVERSIONS_H_ +#define COMPONENTS_MUS_WS_VIEW_COORDINATE_CONVERSIONS_H_ namespace gfx { class Point; @@ -32,4 +32,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_VIEW_COORDINATE_CONVERSIONS_H_ +#endif // COMPONENTS_MUS_WS_VIEW_COORDINATE_CONVERSIONS_H_
diff --git a/components/mus/vm/view_coordinate_conversions_unittest.cc b/components/mus/ws/view_coordinate_conversions_unittest.cc similarity index 88% rename from components/mus/vm/view_coordinate_conversions_unittest.cc rename to components/mus/ws/view_coordinate_conversions_unittest.cc index becea9b..bc758b0 100644 --- a/components/mus/vm/view_coordinate_conversions_unittest.cc +++ b/components/mus/ws/view_coordinate_conversions_unittest.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/view_coordinate_conversions.h" +#include "components/mus/ws/view_coordinate_conversions.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/server_view_delegate.h" -#include "components/mus/vm/test_server_view_delegate.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/server_view_delegate.h" +#include "components/mus/ws/test_server_view_delegate.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gfx/geometry/point_f.h" #include "ui/gfx/geometry/rect.h"
diff --git a/components/mus/vm/view_manager_client_apptest.cc b/components/mus/ws/view_manager_client_apptest.cc similarity index 100% rename from components/mus/vm/view_manager_client_apptest.cc rename to components/mus/ws/view_manager_client_apptest.cc
diff --git a/components/mus/vm/view_tree_apptest.cc b/components/mus/ws/view_tree_apptest.cc similarity index 99% rename from components/mus/vm/view_tree_apptest.cc rename to components/mus/ws/view_tree_apptest.cc index 3f34d10..04aac5d 100644 --- a/components/mus/vm/view_tree_apptest.cc +++ b/components/mus/ws/view_tree_apptest.cc
@@ -8,8 +8,8 @@ #include "base/strings/stringprintf.h" #include "components/mus/public/interfaces/view_tree.mojom.h" #include "components/mus/public/interfaces/view_tree_host.mojom.h" -#include "components/mus/vm/ids.h" -#include "components/mus/vm/test_change_tracker.h" +#include "components/mus/ws/ids.h" +#include "components/mus/ws/test_change_tracker.h" #include "mojo/application/public/cpp/application_delegate.h" #include "mojo/application/public/cpp/application_impl.h" #include "mojo/application/public/cpp/application_test_base.h"
diff --git a/components/mus/vm/view_tree_host_connection.cc b/components/mus/ws/view_tree_host_connection.cc similarity index 92% rename from components/mus/vm/view_tree_host_connection.cc rename to components/mus/ws/view_tree_host_connection.cc index 7dcfbda7..23ee9f2 100644 --- a/components/mus/vm/view_tree_host_connection.cc +++ b/components/mus/ws/view_tree_host_connection.cc
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/view_tree_host_connection.h" +#include "components/mus/ws/view_tree_host_connection.h" -#include "components/mus/vm/connection_manager.h" -#include "components/mus/vm/view_tree_host_impl.h" +#include "components/mus/ws/connection_manager.h" +#include "components/mus/ws/view_tree_host_impl.h" namespace mus {
diff --git a/components/mus/vm/view_tree_host_connection.h b/components/mus/ws/view_tree_host_connection.h similarity index 90% rename from components/mus/vm/view_tree_host_connection.h rename to components/mus/ws/view_tree_host_connection.h index a84fbbb..62f4d93 100644 --- a/components/mus/vm/view_tree_host_connection.h +++ b/components/mus/ws/view_tree_host_connection.h
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_VIEW_TREE_HOST_CONNECTION_H_ -#define COMPONENTS_MUS_VM_VIEW_TREE_HOST_CONNECTION_H_ +#ifndef COMPONENTS_MUS_WS_VIEW_TREE_HOST_CONNECTION_H_ +#define COMPONENTS_MUS_WS_VIEW_TREE_HOST_CONNECTION_H_ #include "base/memory/scoped_ptr.h" #include "components/mus/public/interfaces/view_tree_host.mojom.h" -#include "components/mus/vm/view_tree_host_delegate.h" -#include "components/mus/vm/view_tree_host_impl.h" +#include "components/mus/ws/view_tree_host_delegate.h" +#include "components/mus/ws/view_tree_host_impl.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" namespace mus { @@ -79,4 +79,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_VIEW_TREE_HOST_CONNECTION_H_ +#endif // COMPONENTS_MUS_WS_VIEW_TREE_HOST_CONNECTION_H_
diff --git a/components/mus/vm/view_tree_host_delegate.h b/components/mus/ws/view_tree_host_delegate.h similarity index 86% rename from components/mus/vm/view_tree_host_delegate.h rename to components/mus/ws/view_tree_host_delegate.h index 724c425d..2551b87 100644 --- a/components/mus/vm/view_tree_host_delegate.h +++ b/components/mus/ws/view_tree_host_delegate.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_VIEW_TREE_HOST_DELEGATE_H_ -#define COMPONENTS_MUS_VM_VIEW_TREE_HOST_DELEGATE_H_ +#ifndef COMPONENTS_MUS_WS_VIEW_TREE_HOST_DELEGATE_H_ +#define COMPONENTS_MUS_WS_VIEW_TREE_HOST_DELEGATE_H_ namespace mus { @@ -32,4 +32,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_VIEW_TREE_HOST_DELEGATE_H_ +#endif // COMPONENTS_MUS_WS_VIEW_TREE_HOST_DELEGATE_H_
diff --git a/components/mus/vm/view_tree_host_impl.cc b/components/mus/ws/view_tree_host_impl.cc similarity index 96% rename from components/mus/vm/view_tree_host_impl.cc rename to components/mus/ws/view_tree_host_impl.cc index 5fdbdc57..636711d 100644 --- a/components/mus/vm/view_tree_host_impl.cc +++ b/components/mus/ws/view_tree_host_impl.cc
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/view_tree_host_impl.h" +#include "components/mus/ws/view_tree_host_impl.h" #include "base/strings/utf_string_conversions.h" #include "components/mus/public/cpp/types.h" -#include "components/mus/vm/connection_manager.h" -#include "components/mus/vm/display_manager.h" -#include "components/mus/vm/focus_controller.h" -#include "components/mus/vm/view_tree_host_delegate.h" -#include "components/mus/vm/view_tree_impl.h" +#include "components/mus/ws/connection_manager.h" +#include "components/mus/ws/display_manager.h" +#include "components/mus/ws/focus_controller.h" +#include "components/mus/ws/view_tree_host_delegate.h" +#include "components/mus/ws/view_tree_impl.h" #include "mojo/common/common_type_converters.h" #include "mojo/converters/geometry/geometry_type_converters.h"
diff --git a/components/mus/vm/view_tree_host_impl.h b/components/mus/ws/view_tree_host_impl.h similarity index 92% rename from components/mus/vm/view_tree_host_impl.h rename to components/mus/ws/view_tree_host_impl.h index 2bda609b..5d6968c 100644 --- a/components/mus/vm/view_tree_host_impl.h +++ b/components/mus/ws/view_tree_host_impl.h
@@ -2,16 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_VIEW_TREE_HOST_IMPL_H_ -#define COMPONENTS_MUS_VM_VIEW_TREE_HOST_IMPL_H_ +#ifndef COMPONENTS_MUS_WS_VIEW_TREE_HOST_IMPL_H_ +#define COMPONENTS_MUS_WS_VIEW_TREE_HOST_IMPL_H_ #include "base/memory/scoped_ptr.h" #include "components/mus/public/cpp/types.h" #include "components/mus/public/interfaces/view_tree_host.mojom.h" -#include "components/mus/vm/display_manager.h" -#include "components/mus/vm/event_dispatcher.h" -#include "components/mus/vm/focus_controller_delegate.h" -#include "components/mus/vm/server_view.h" +#include "components/mus/ws/display_manager.h" +#include "components/mus/ws/event_dispatcher.h" +#include "components/mus/ws/focus_controller_delegate.h" +#include "components/mus/ws/server_view.h" namespace cc { class SurfaceManager; @@ -122,4 +122,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_VIEW_TREE_HOST_IMPL_H_ +#endif // COMPONENTS_MUS_WS_VIEW_TREE_HOST_IMPL_H_
diff --git a/components/mus/vm/view_tree_impl.cc b/components/mus/ws/view_tree_impl.cc similarity index 98% rename from components/mus/vm/view_tree_impl.cc rename to components/mus/ws/view_tree_impl.cc index 40e2c07..6c485bc 100644 --- a/components/mus/vm/view_tree_impl.cc +++ b/components/mus/ws/view_tree_impl.cc
@@ -2,16 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/view_tree_impl.h" +#include "components/mus/ws/view_tree_impl.h" #include "base/bind.h" #include "base/stl_util.h" -#include "components/mus/vm/connection_manager.h" -#include "components/mus/vm/default_access_policy.h" -#include "components/mus/vm/display_manager.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/view_tree_host_impl.h" -#include "components/mus/vm/window_manager_access_policy.h" +#include "components/mus/ws/connection_manager.h" +#include "components/mus/ws/default_access_policy.h" +#include "components/mus/ws/display_manager.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/view_tree_host_impl.h" +#include "components/mus/ws/window_manager_access_policy.h" #include "mojo/converters/geometry/geometry_type_converters.h" #include "mojo/converters/ime/ime_type_converters.h" #include "mojo/converters/input_events/input_events_type_converters.h"
diff --git a/components/mus/vm/view_tree_impl.h b/components/mus/ws/view_tree_impl.h similarity index 97% rename from components/mus/vm/view_tree_impl.h rename to components/mus/ws/view_tree_impl.h index f573b55..2eda4d6 100644 --- a/components/mus/vm/view_tree_impl.h +++ b/components/mus/ws/view_tree_impl.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_VIEW_TREE_IMPL_H_ -#define COMPONENTS_MUS_VM_VIEW_TREE_IMPL_H_ +#ifndef COMPONENTS_MUS_WS_VIEW_TREE_IMPL_H_ +#define COMPONENTS_MUS_WS_VIEW_TREE_IMPL_H_ #include <set> #include <string> @@ -15,8 +15,8 @@ #include "base/memory/scoped_ptr.h" #include "components/mus/public/interfaces/surface_id.mojom.h" #include "components/mus/public/interfaces/view_tree.mojom.h" -#include "components/mus/vm/access_policy_delegate.h" -#include "components/mus/vm/ids.h" +#include "components/mus/ws/access_policy_delegate.h" +#include "components/mus/ws/ids.h" namespace gfx { class Rect; @@ -249,4 +249,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_VIEW_TREE_IMPL_H_ +#endif // COMPONENTS_MUS_WS_VIEW_TREE_IMPL_H_
diff --git a/components/mus/vm/view_tree_unittest.cc b/components/mus/ws/view_tree_unittest.cc similarity index 96% rename from components/mus/vm/view_tree_unittest.cc rename to components/mus/ws/view_tree_unittest.cc index 352625c..caa3b83 100644 --- a/components/mus/vm/view_tree_unittest.cc +++ b/components/mus/ws/view_tree_unittest.cc
@@ -10,16 +10,16 @@ #include "components/mus/public/cpp/util.h" #include "components/mus/public/interfaces/view_tree.mojom.h" #include "components/mus/surfaces/surfaces_state.h" -#include "components/mus/vm/client_connection.h" -#include "components/mus/vm/connection_manager.h" -#include "components/mus/vm/connection_manager_delegate.h" -#include "components/mus/vm/display_manager.h" -#include "components/mus/vm/display_manager_factory.h" -#include "components/mus/vm/ids.h" -#include "components/mus/vm/server_view.h" -#include "components/mus/vm/test_change_tracker.h" -#include "components/mus/vm/view_tree_host_connection.h" -#include "components/mus/vm/view_tree_impl.h" +#include "components/mus/ws/client_connection.h" +#include "components/mus/ws/connection_manager.h" +#include "components/mus/ws/connection_manager_delegate.h" +#include "components/mus/ws/display_manager.h" +#include "components/mus/ws/display_manager_factory.h" +#include "components/mus/ws/ids.h" +#include "components/mus/ws/server_view.h" +#include "components/mus/ws/test_change_tracker.h" +#include "components/mus/ws/view_tree_host_connection.h" +#include "components/mus/ws/view_tree_impl.h" #include "mojo/application/public/interfaces/service_provider.mojom.h" #include "mojo/converters/geometry/geometry_type_converters.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/mus/vm/window_manager_access_policy.cc b/components/mus/ws/window_manager_access_policy.cc similarity index 95% rename from components/mus/vm/window_manager_access_policy.cc rename to components/mus/ws/window_manager_access_policy.cc index 6cfb6202..d5eda63 100644 --- a/components/mus/vm/window_manager_access_policy.cc +++ b/components/mus/ws/window_manager_access_policy.cc
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/mus/vm/window_manager_access_policy.h" +#include "components/mus/ws/window_manager_access_policy.h" -#include "components/mus/vm/access_policy_delegate.h" -#include "components/mus/vm/server_view.h" +#include "components/mus/ws/access_policy_delegate.h" +#include "components/mus/ws/server_view.h" namespace mus {
diff --git a/components/mus/vm/window_manager_access_policy.h b/components/mus/ws/window_manager_access_policy.h similarity index 89% rename from components/mus/vm/window_manager_access_policy.h rename to components/mus/ws/window_manager_access_policy.h index b08946b6..11c56e0 100644 --- a/components/mus/vm/window_manager_access_policy.h +++ b/components/mus/ws/window_manager_access_policy.h
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_MUS_VM_WINDOW_MANAGER_ACCESS_POLICY_H_ -#define COMPONENTS_MUS_VM_WINDOW_MANAGER_ACCESS_POLICY_H_ +#ifndef COMPONENTS_MUS_WS_WINDOW_MANAGER_ACCESS_POLICY_H_ +#define COMPONENTS_MUS_WS_WINDOW_MANAGER_ACCESS_POLICY_H_ #include "base/basictypes.h" -#include "components/mus/vm/access_policy.h" +#include "components/mus/ws/access_policy.h" namespace mus { @@ -52,4 +52,4 @@ } // namespace mus -#endif // COMPONENTS_MUS_VM_WINDOW_MANAGER_ACCESS_POLICY_H_ +#endif // COMPONENTS_MUS_WS_WINDOW_MANAGER_ACCESS_POLICY_H_
diff --git a/components/omnibox/browser/search_suggestion_parser.cc b/components/omnibox/browser/search_suggestion_parser.cc index 24ab6370..df0e00b 100644 --- a/components/omnibox/browser/search_suggestion_parser.cc +++ b/components/omnibox/browser/search_suggestion_parser.cc
@@ -376,7 +376,7 @@ JSONStringValueDeserializer deserializer(json_data); deserializer.set_allow_trailing_comma(true); int error_code = 0; - scoped_ptr<base::Value> data(deserializer.Deserialize(&error_code, NULL)); + scoped_ptr<base::Value> data = deserializer.Deserialize(&error_code, NULL); if (error_code == 0) return data.Pass(); }
diff --git a/components/packed_ct_ev_whitelist/packed_ct_ev_whitelist.cc b/components/packed_ct_ev_whitelist/packed_ct_ev_whitelist.cc index e718f80..bcb8cdb 100644 --- a/components/packed_ct_ev_whitelist/packed_ct_ev_whitelist.cc +++ b/components/packed_ct_ev_whitelist/packed_ct_ev_whitelist.cc
@@ -58,6 +58,10 @@ internal::BitStreamReader reader(base::StringPiece( compressed_whitelist.data(), compressed_whitelist.size())); std::vector<uint64_t> result; + // Reserve exactly the right amount of memory to avoid reallocs. The size + // changes very rarely and if it does change the code will still be correct, + // just slightly less efficient. + result.reserve(110610); VLOG(1) << "Uncompressing EV whitelist of size " << compressed_whitelist.size(); @@ -95,6 +99,18 @@ result.push_back(curr_hash); } + // If there is excess capacity then trim it. + if (result.size() < result.capacity()) { + std::vector<uint64_t> temp(result.size()); + memcpy(&temp[0], &result[0], result.size() * sizeof(result[0])); + + // Swap the right-sized vector with the over-sized vector. + result.swap(temp); + } + + // Make sure our size trimming code worked. + DCHECK(result.size() == result.capacity()); + uncompressed_list->swap(result); return true; }
diff --git a/components/packed_ct_ev_whitelist/packed_ct_ev_whitelist_unittest.cc b/components/packed_ct_ev_whitelist/packed_ct_ev_whitelist_unittest.cc index 686eee5..6e2c1fb 100644 --- a/components/packed_ct_ev_whitelist/packed_ct_ev_whitelist_unittest.cc +++ b/components/packed_ct_ev_whitelist/packed_ct_ev_whitelist_unittest.cc
@@ -104,6 +104,7 @@ std::vector<uint64_t> res; ASSERT_TRUE(PackedEVCertsWhitelist::UncompressEVWhitelist( GetAllWhitelistData(), &res)); + ASSERT_TRUE(res.size() == res.capacity()); // Ensure first hash is found EXPECT_TRUE(std::find(res.begin(), res.end(), HashToUint64(GetFirstHash())) !=
diff --git a/components/policy/core/common/config_dir_policy_loader.cc b/components/policy/core/common/config_dir_policy_loader.cc index b81bfa9..daaf5415 100644 --- a/components/policy/core/common/config_dir_policy_loader.cc +++ b/components/policy/core/common/config_dir_policy_loader.cc
@@ -143,8 +143,8 @@ deserializer.set_allow_trailing_comma(true); int error_code = 0; std::string error_msg; - scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_msg)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_msg); if (!value.get()) { LOG(WARNING) << "Failed to read configuration file " << config_file_iter->value() << ": " << error_msg;
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index 03f75c1..b811a55 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -7527,7 +7527,7 @@ 'id': 274, 'caption': '''Set the recommended locales for a public session''', 'tags': [], - 'desc': '''Sets one or more recommended locales for a public sessions, allowing users to easily choose one of these locales. + 'desc': '''Sets one or more recommended locales for a public session, allowing users to easily choose one of these locales. The user can choose a locale and a keyboard layout before starting a public session. By default, all locales supported by <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> are listed in alphabetic order. You can use this policy to move a set of recommended locales to the top of the list.
diff --git a/components/proximity_auth/remote_status_update_unittest.cc b/components/proximity_auth/remote_status_update_unittest.cc index 3511be3..960ecf6 100644 --- a/components/proximity_auth/remote_status_update_unittest.cc +++ b/components/proximity_auth/remote_status_update_unittest.cc
@@ -11,67 +11,95 @@ namespace proximity_auth { namespace { -// Parses the |json| into a DictionaryValue. -scoped_ptr<base::DictionaryValue> ParseJson(const std::string& json) { - base::DictionaryValue* as_dictionary; - base::JSONReader::Read(json).release()->GetAsDictionary(&as_dictionary); - return make_scoped_ptr(as_dictionary); +// Parses the |json| into a RemoteStatusUpdate instance. +scoped_ptr<RemoteStatusUpdate> ParseJson(const std::string& json) { + scoped_ptr<base::DictionaryValue> as_dictionary = + base::DictionaryValue::From(base::JSONReader::Read(json)); + return RemoteStatusUpdate::Deserialize(*as_dictionary); } } // namespace // Verify that all valid values can be parsed. -TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_ValidStatuses) { - { - const char kValidJson[] = - "{" - " \"type\": \"status_update\"," - " \"user_presence\": \"present\"," - " \"secure_screen_lock\": \"enabled\"," - " \"trust_agent\": \"enabled\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kValidJson)); - ASSERT_TRUE(parsed_update); - EXPECT_EQ(USER_PRESENT, parsed_update->user_presence); - EXPECT_EQ(SECURE_SCREEN_LOCK_ENABLED, - parsed_update->secure_screen_lock_state); - EXPECT_EQ(TRUST_AGENT_ENABLED, parsed_update->trust_agent_state); - } +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_Valid_UserPresent) { + const char kValidJson[] = + "{" + " \"type\": \"status_update\"," + " \"user_presence\": \"present\"," + " \"secure_screen_lock\": \"enabled\"," + " \"trust_agent\": \"enabled\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kValidJson); + ASSERT_TRUE(parsed_update); + EXPECT_EQ(USER_PRESENT, parsed_update->user_presence); + EXPECT_EQ(SECURE_SCREEN_LOCK_ENABLED, + parsed_update->secure_screen_lock_state); + EXPECT_EQ(TRUST_AGENT_ENABLED, parsed_update->trust_agent_state); +} - { - const char kValidJson[] = - "{" - " \"type\": \"status_update\"," - " \"user_presence\": \"absent\"," - " \"secure_screen_lock\": \"disabled\"," - " \"trust_agent\": \"disabled\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kValidJson)); - ASSERT_TRUE(parsed_update); - EXPECT_EQ(USER_ABSENT, parsed_update->user_presence); - EXPECT_EQ(SECURE_SCREEN_LOCK_DISABLED, - parsed_update->secure_screen_lock_state); - EXPECT_EQ(TRUST_AGENT_DISABLED, parsed_update->trust_agent_state); - } +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_Valid_UserAbsent) { + const char kValidJson[] = + "{" + " \"type\": \"status_update\"," + " \"user_presence\": \"absent\"," + " \"secure_screen_lock\": \"disabled\"," + " \"trust_agent\": \"disabled\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kValidJson); + ASSERT_TRUE(parsed_update); + EXPECT_EQ(USER_ABSENT, parsed_update->user_presence); + EXPECT_EQ(SECURE_SCREEN_LOCK_DISABLED, + parsed_update->secure_screen_lock_state); + EXPECT_EQ(TRUST_AGENT_DISABLED, parsed_update->trust_agent_state); +} - { - const char kValidJson[] = - "{" - " \"type\": \"status_update\"," - " \"user_presence\": \"unknown\"," - " \"secure_screen_lock\": \"unknown\"," - " \"trust_agent\": \"unsupported\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kValidJson)); - ASSERT_TRUE(parsed_update); - EXPECT_EQ(USER_PRESENCE_UNKNOWN, parsed_update->user_presence); - EXPECT_EQ(SECURE_SCREEN_LOCK_STATE_UNKNOWN, - parsed_update->secure_screen_lock_state); - EXPECT_EQ(TRUST_AGENT_UNSUPPORTED, parsed_update->trust_agent_state); - } +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_Valid_Unknown) { + const char kValidJson[] = + "{" + " \"type\": \"status_update\"," + " \"user_presence\": \"unknown\"," + " \"secure_screen_lock\": \"unknown\"," + " \"trust_agent\": \"unsupported\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kValidJson); + ASSERT_TRUE(parsed_update); + EXPECT_EQ(USER_PRESENCE_UNKNOWN, parsed_update->user_presence); + EXPECT_EQ(SECURE_SCREEN_LOCK_STATE_UNKNOWN, + parsed_update->secure_screen_lock_state); + EXPECT_EQ(TRUST_AGENT_UNSUPPORTED, parsed_update->trust_agent_state); +} + +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_MissingUserPresence) { + const char kJson[] = + "{" + " \"type\": \"status_update\"," + " \"secure_screen_lock\": \"enabled\"," + " \"trust_agent\": \"enabled\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kJson); + EXPECT_FALSE(parsed_update); +} + +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_MissingSecureScreenLock) { + const char kJson[] = + "{" + " \"type\": \"status_update\"," + " \"user_presence\": \"present\"," + " \"trust_agent\": \"enabled\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kJson); + EXPECT_FALSE(parsed_update); +} + +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_MissingTrustAgent) { + const char kJson[] = + "{" + " \"type\": \"status_update\"," + " \"user_presence\": \"present\"," + " \"secure_screen_lock\": \"enabled\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kJson); + EXPECT_FALSE(parsed_update); } TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_InvalidType) { @@ -82,88 +110,44 @@ " \"secure_screen_lock\": \"enabled\"," " \"trust_agent\": \"enabled\"" "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kJson)); + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kJson); EXPECT_FALSE(parsed_update); } -TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_MissingValue) { - { - const char kJson[] = - "{" - " \"type\": \"status_update\"," - " \"secure_screen_lock\": \"enabled\"," - " \"trust_agent\": \"enabled\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kJson)); - EXPECT_FALSE(parsed_update); - } - - { - const char kJson[] = - "{" - " \"type\": \"status_update\"," - " \"user_presence\": \"present\"," - " \"trust_agent\": \"enabled\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kJson)); - EXPECT_FALSE(parsed_update); - } - - { - const char kJson[] = - "{" - " \"type\": \"status_update\"," - " \"user_presence\": \"present\"," - " \"secure_screen_lock\": \"enabled\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kJson)); - EXPECT_FALSE(parsed_update); - } +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_InvalidPresence) { + const char kJson[] = + "{" + " \"type\": \"status_update\"," + " \"user_presence\": \"garbage\"," + " \"secure_screen_lock\": \"enabled\"," + " \"trust_agent\": \"enabled\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kJson); + EXPECT_FALSE(parsed_update); } -TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_InvalidValues) { - { - const char kJson[] = - "{" - " \"type\": \"status_update\"," - " \"user_presence\": \"garbage\"," - " \"secure_screen_lock\": \"enabled\"," - " \"trust_agent\": \"enabled\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kJson)); - EXPECT_FALSE(parsed_update); - } +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_InvalidLock) { + const char kJson[] = + "{" + " \"type\": \"status_update\"," + " \"user_presence\": \"present\"," + " \"secure_screen_lock\": \"garbage\"," + " \"trust_agent\": \"enabled\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kJson); + EXPECT_FALSE(parsed_update); +} - { - const char kJson[] = - "{" - " \"type\": \"status_update\"," - " \"user_presence\": \"present\"," - " \"secure_screen_lock\": \"garbage\"," - " \"trust_agent\": \"enabled\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kJson)); - EXPECT_FALSE(parsed_update); - } - - { - const char kJson[] = - "{" - " \"type\": \"status_update\"," - " \"user_presence\": \"present\"," - " \"secure_screen_lock\": \"enabled\"," - " \"trust_agent\": \"garbage\"" - "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kJson)); - EXPECT_FALSE(parsed_update); - } +TEST(ProximityAuthRemoteStatusUpdateTest, Deserialize_InvalidAgent) { + const char kJson[] = + "{" + " \"type\": \"status_update\"," + " \"user_presence\": \"present\"," + " \"secure_screen_lock\": \"enabled\"," + " \"trust_agent\": \"garbage\"" + "}"; + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kJson); + EXPECT_FALSE(parsed_update); } // Verify that extra fields do not prevent parsing. This provides @@ -178,8 +162,7 @@ " \"trust_agent\": \"enabled\"," " \"secret_sauce\": \"chipotle\"" "}"; - scoped_ptr<RemoteStatusUpdate> parsed_update = - RemoteStatusUpdate::Deserialize(*ParseJson(kJson)); + scoped_ptr<RemoteStatusUpdate> parsed_update = ParseJson(kJson); ASSERT_TRUE(parsed_update); EXPECT_EQ(USER_PRESENT, parsed_update->user_presence); EXPECT_EQ(SECURE_SCREEN_LOCK_ENABLED,
diff --git a/components/resources/components_resources.grd b/components/resources/components_resources.grd index 3a8f3345..59cc6de 100644 --- a/components/resources/components_resources.grd +++ b/components/resources/components_resources.grd
@@ -20,6 +20,7 @@ <part file="security_interstitials_resources.grdp" /> <part file="sync_driver_resources.grdp" /> <part file="translate_resources.grdp" /> + <part file="version_ui_resources.grdp" /> </includes> </release> </grit>
diff --git a/components/resources/version_ui_resources.grdp b/components/resources/version_ui_resources.grdp new file mode 100644 index 0000000..c76e749 --- /dev/null +++ b/components/resources/version_ui_resources.grdp
@@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<grit-part> + <include name="IDR_VERSION_UI_CSS" file="../version_ui/resources/about_version.css" type="BINDATA" /> + <include name="IDR_VERSION_UI_HTML" file="../version_ui/resources/about_version.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" /> + <include name="IDR_VERSION_UI_JS" file="../version_ui/resources/about_version.js" type="BINDATA" /> +</grit-part>
diff --git a/components/tracing/BUILD.gn b/components/tracing/BUILD.gn index b8ab5a9..40e90f9 100644 --- a/components/tracing/BUILD.gn +++ b/components/tracing/BUILD.gn
@@ -39,18 +39,21 @@ ] } -if (!is_android) { - source_set("unit_tests") { - testonly = true +source_set("unit_tests") { + testonly = true - sources = [ - "trace_config_file_unittest.cc", - ] + sources = [ + "graphics_memory_dump_provider_android_unittest.cc", + ] - deps = [ - ":startup_tracing", - "//base/test:test_support", - "//testing/gtest", - ] + deps = [ + ":tracing", + "//base/test:test_support", + "//testing/gtest", + ] + + if (!is_android) { + sources += [ "trace_config_file_unittest.cc" ] + deps += [ ":startup_tracing" ] } }
diff --git a/components/tracing/graphics_memory_dump_provider_android.h b/components/tracing/graphics_memory_dump_provider_android.h index 3a9aa65..c9dfd21 100644 --- a/components/tracing/graphics_memory_dump_provider_android.h +++ b/components/tracing/graphics_memory_dump_provider_android.h
@@ -8,6 +8,7 @@ #include <string> #include "base/containers/hash_tables.h" +#include "base/gtest_prod_util.h" #include "base/memory/singleton.h" #include "base/trace_event/memory_dump_provider.h" #include "components/tracing/tracing_export.h" @@ -29,6 +30,7 @@ base::trace_event::ProcessMemoryDump* pmd) override; private: + FRIEND_TEST_ALL_PREFIXES(GraphicsMemoryDumpProviderTest, ParseResponse); friend struct base::DefaultSingletonTraits<GraphicsMemoryDumpProvider>; void ParseResponseAndAddToDump(const char* buf,
diff --git a/components/tracing/graphics_memory_dump_provider_android_unittest.cc b/components/tracing/graphics_memory_dump_provider_android_unittest.cc new file mode 100644 index 0000000..02e9cfd --- /dev/null +++ b/components/tracing/graphics_memory_dump_provider_android_unittest.cc
@@ -0,0 +1,52 @@ +// Copyright 2015 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 "base/trace_event/memory_allocator_dump.h" +#include "base/trace_event/process_memory_dump.h" +#include "base/trace_event/trace_event_argument.h" +#include "components/tracing/graphics_memory_dump_provider_android.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace tracing { + +TEST(GraphicsMemoryDumpProviderTest, ParseResponse) { + const char* kDumpBaseName = GraphicsMemoryDumpProvider::kDumpBaseName; + + base::trace_event::ProcessMemoryDump pmd(nullptr); + auto instance = GraphicsMemoryDumpProvider::GetInstance(); + char buf[] = "graphics_total 12\ngraphics_pss 34\ngl_total 56\ngl_pss 78"; + instance->ParseResponseAndAddToDump(buf, strlen(buf), &pmd); + + // Check the "graphics" row. + auto mad = pmd.GetAllocatorDump(kDumpBaseName + std::string("graphics")); + ASSERT_TRUE(mad); + std::string json; + mad->attributes_for_testing()->AppendAsTraceFormat(&json); + ASSERT_EQ( + "{\"memtrack_pss\":{\"type\":\"scalar\",\"units\":\"bytes\",\"value\":" + "\"22\"}," + "\"memtrack_total\":{\"type\":\"scalar\",\"units\":\"bytes\",\"value\":" + "\"c\"}}", + json); + + // Check the "gl" row. + mad = pmd.GetAllocatorDump(kDumpBaseName + std::string("gl")); + ASSERT_TRUE(mad); + json = ""; + mad->attributes_for_testing()->AppendAsTraceFormat(&json); + ASSERT_EQ( + "{\"memtrack_pss\":{\"type\":\"scalar\",\"units\":\"bytes\",\"value\":" + "\"4e\"}," + "\"memtrack_total\":{\"type\":\"scalar\",\"units\":\"bytes\",\"value\":" + "\"38\"}}", + json); + + // Test for truncated input. + pmd.Clear(); + instance->ParseResponseAndAddToDump(buf, strlen(buf) - 14, &pmd); + ASSERT_TRUE(pmd.GetAllocatorDump(kDumpBaseName + std::string("graphics"))); + ASSERT_FALSE(pmd.GetAllocatorDump(kDumpBaseName + std::string("gl"))); +} + +} // namespace tracing
diff --git a/components/translate/content/browser/BUILD.gn b/components/translate/content/browser/BUILD.gn index ea4eb15..4553d25 100644 --- a/components/translate/content/browser/BUILD.gn +++ b/components/translate/content/browser/BUILD.gn
@@ -4,7 +4,7 @@ import("//build/config/features.gni") -static_library("browser") { +source_set("browser") { sources = [ "browser_cld_data_provider.cc", "browser_cld_data_provider.h", @@ -20,7 +20,12 @@ deps = [ "//base", + "//components/translate/content/common", "//components/translate/core/browser", + "//components/translate/core/common", "//content/public/browser", + "//content/public/common", + "//ipc", + "//net", ] }
diff --git a/components/translate/core/browser/BUILD.gn b/components/translate/core/browser/BUILD.gn index 862a6b85..2fafccc 100644 --- a/components/translate/core/browser/BUILD.gn +++ b/components/translate/core/browser/BUILD.gn
@@ -37,11 +37,29 @@ "translate_url_util.h", ] + deps = [ + "//base", + "//base:i18n", + "//base:prefs", + "//components/data_use_measurement/core", + "//components/language_usage_metrics", + "//components/pref_registry", + "//components/resources:components_resources", + "//components/strings", + "//components/translate/core/common", + "//google_apis", + "//net", + "//third_party/icu", + "//ui/base", + "//url", + ] + if (!use_aura) { sources += [ "translate_infobar_delegate.cc", "translate_infobar_delegate.h", ] + deps += [ "//components/infobars/core" ] } if (is_mac) { @@ -50,19 +68,6 @@ "options_menu_model.h", ] } - - deps = [ - "//base", - "//components/data_use_measurement/core", - "//components/language_usage_metrics", - "//components/resources:components_resources", - "//components/strings", - "//components/translate/core/common", - "//net", - "//third_party/icu", - "//ui/base", - "//url", - ] } source_set("unit_tests") { @@ -76,6 +81,11 @@ ] deps = [ ":browser", + "//base", + "//base:prefs", + "//components/pref_registry:test_support", + "//components/translate/core/common", + "//net:test_support", "//testing/gtest", ] }
diff --git a/components/translate/core/common/BUILD.gn b/components/translate/core/common/BUILD.gn index e4f73c02..f4d461f 100644 --- a/components/translate/core/common/BUILD.gn +++ b/components/translate/core/common/BUILD.gn
@@ -33,6 +33,8 @@ ] deps = [ ":common", + "//base", "//testing/gtest", + "//url", ] }
diff --git a/components/translate/core/language_detection/BUILD.gn b/components/translate/core/language_detection/BUILD.gn index a1d15efe..dd8c57f0 100644 --- a/components/translate/core/language_detection/BUILD.gn +++ b/components/translate/core/language_detection/BUILD.gn
@@ -32,6 +32,9 @@ ] deps = [ ":language_detection", + "//base", + "//components/translate/core/common", "//testing/gtest", + "//url", ] }
diff --git a/components/ui/zoom/BUILD.gn b/components/ui/zoom/BUILD.gn index 1cd492e..ec60faf 100644 --- a/components/ui/zoom/BUILD.gn +++ b/components/ui/zoom/BUILD.gn
@@ -18,6 +18,7 @@ deps = [ "//base", + "//base:prefs", "//content/public/browser", "//content/public/common", "//ipc", @@ -33,6 +34,8 @@ ] deps = [ ":zoom", + "//base:prefs", + "//content/public/common", "//testing/gtest", ] }
diff --git a/components/update_client/component_patcher.cc b/components/update_client/component_patcher.cc index 0525882..9105fda0 100644 --- a/components/update_client/component_patcher.cc +++ b/components/update_client/component_patcher.cc
@@ -31,7 +31,7 @@ return NULL; JSONFileValueDeserializer deserializer(commands); - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, NULL); return (root.get() && root->IsType(base::Value::TYPE_LIST)) ? static_cast<base::ListValue*>(root.release())
diff --git a/components/update_client/component_unpacker.cc b/components/update_client/component_unpacker.cc index 9dfd555..b0fc94a 100644 --- a/components/update_client/component_unpacker.cc +++ b/components/update_client/component_unpacker.cc
@@ -63,7 +63,7 @@ return scoped_ptr<base::DictionaryValue>(); JSONFileValueDeserializer deserializer(manifest); std::string error; - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, &error)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, &error); if (!root.get()) return scoped_ptr<base::DictionaryValue>(); if (!root->IsType(base::Value::TYPE_DICTIONARY))
diff --git a/components/upload_list/BUILD.gn b/components/upload_list/BUILD.gn index 9fe4414..b184db0e 100644 --- a/components/upload_list/BUILD.gn +++ b/components/upload_list/BUILD.gn
@@ -23,6 +23,7 @@ deps = [ ":upload_list", + "//base", "//testing/gtest", ] }
diff --git a/components/version_info.grdp b/components/version_info.grdp deleted file mode 100644 index 934d17d..0000000 --- a/components/version_info.grdp +++ /dev/null
@@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<grit-part> - - <message name="IDS_ABOUT_VERSION_UNOFFICIAL" desc="unofficial build on the about:version page"> - Developer Build - </message> - -</grit-part>
diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc index de3f5802..00546f7 100644 --- a/components/version_info/version_info.cc +++ b/components/version_info/version_info.cc
@@ -85,7 +85,7 @@ current_version += GetVersionNumber(); #if !defined(GOOGLE_CHROME_BUILD) current_version += " ("; - current_version += l10n_util::GetStringUTF8(IDS_ABOUT_VERSION_UNOFFICIAL); + current_version += l10n_util::GetStringUTF8(IDS_VERSION_UI_UNOFFICIAL); current_version += " "; current_version += GetLastChange(); current_version += " ";
diff --git a/components/version_ui.gypi b/components/version_ui.gypi new file mode 100644 index 0000000..ec92027 --- /dev/null +++ b/components/version_ui.gypi
@@ -0,0 +1,21 @@ +# Copyright 2015 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. + +{ + 'targets': [ + { + # GN version: //components/version_ui + 'target_name': 'version_ui', + 'type': 'static_library', + 'include_dirs': [ + '..', + ], + 'sources': [ + # Note: sources list duplicated in GN build. + 'version_ui/version_ui_constants.cc', + 'version_ui/version_ui_constants.h', + ], + }, + ], +}
diff --git a/components/version_ui/BUILD.gn b/components/version_ui/BUILD.gn new file mode 100644 index 0000000..fd7e2f5 --- /dev/null +++ b/components/version_ui/BUILD.gn
@@ -0,0 +1,10 @@ +# Copyright 2015 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. + +source_set("version_ui") { + sources = [ + "version_ui_constants.cc", + "version_ui_constants.h", + ] +}
diff --git a/components/version_ui/OWNERS b/components/version_ui/OWNERS new file mode 100644 index 0000000..da5824440 --- /dev/null +++ b/components/version_ui/OWNERS
@@ -0,0 +1,7 @@ +bauerb@chromium.org +dbeam@chromium.org +estade@chromium.org +jhawkins@chromium.org +nkostylev@chromium.org +pam@chromium.org +xiyuan@chromium.org
diff --git a/chrome/browser/resources/about_version.css b/components/version_ui/resources/about_version.css similarity index 100% rename from chrome/browser/resources/about_version.css rename to components/version_ui/resources/about_version.css
diff --git a/chrome/browser/resources/about_version.html b/components/version_ui/resources/about_version.html similarity index 90% rename from chrome/browser/resources/about_version.html rename to components/version_ui/resources/about_version.html index 238bd26c..8a3bdf273 100644 --- a/chrome/browser/resources/about_version.html +++ b/components/version_ui/resources/about_version.html
@@ -9,13 +9,20 @@ <meta charset="utf-8"> <title i18n-content="title"></title> <link rel="stylesheet" href="chrome://resources/css/text_defaults.css"> -<if expr="is_android"> +<if expr="is_android or is_ios"> <meta name="viewport" content="width=device-width"> </if> <link rel="stylesheet" href="chrome://version/about_version.css"> -<if expr="is_android"> - <link rel="stylesheet" href="about_version_android.css"> +<if expr="is_android or is_ios"> + <link rel="stylesheet" href="about_version_mobile.css"> </if> + +<if expr="is_ios"> + <!-- TODO(jyquinn): Remove this once CRWWebUIPageBuilder can inject it. + See http://crbug.com/487000 --> + <script src="chrome://resources/js/ios/web_ui.js"></script> +</if> + <script src="chrome://resources/js/cr.js"></script> <script src="chrome://resources/js/load_time_data.js"></script> <script src="chrome://resources/js/parse_html_subset.js"></script> @@ -65,6 +72,7 @@ </td> </if> </tr> +<if expr="not is_ios"> <tr><td class="label">Blink</td> <td class="version" id="blink_version" i18n-content="blink_version"></td> </tr> @@ -74,7 +82,8 @@ <span i18n-content="js_version"></span> </td> </tr> -<if expr="not is_android"> +</if> +<if expr="not is_android and not is_ios"> <tr><td class="label" i18n-content="flash_plugin"></td> <td class="version" id="flash_version" i18n-content="flash_version"></td> </tr> @@ -85,12 +94,14 @@ <tr><td class="label" i18n-content="command_line_name"></td> <td class="version" id="command_line" i18n-content="command_line"></td> </tr> +<if expr="not is_ios"> <tr><td class="label" i18n-content="executable_path_name"></td> <td class="version" id="executable_path" i18n-content="executable_path"></td> </tr> <tr><td class="label" i18n-content="profile_path_name"></td> <td class="version" id="profile_path" i18n-content="profile_path"></td> </tr> +</if> <tr id="variations-section"> <td class="label" i18n-content="variations_name"></td> <td class="version" id="variations-list"></td>
diff --git a/chrome/browser/resources/about_version.js b/components/version_ui/resources/about_version.js similarity index 100% rename from chrome/browser/resources/about_version.js rename to components/version_ui/resources/about_version.js
diff --git a/chrome/browser/resources/about_version_android.css b/components/version_ui/resources/about_version_mobile.css similarity index 100% rename from chrome/browser/resources/about_version_android.css rename to components/version_ui/resources/about_version_mobile.css
diff --git a/components/version_ui/version_ui_constants.cc b/components/version_ui/version_ui_constants.cc new file mode 100644 index 0000000..8210ad6 --- /dev/null +++ b/components/version_ui/version_ui_constants.cc
@@ -0,0 +1,51 @@ +// Copyright 2015 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 "components/version_ui/version_ui_constants.h" + +namespace version_ui { + +// Resource paths. +const char kAboutVersionCSS[] = "about_version.css"; +const char kVersionJS[] = "version.js"; + +// Message handlers. +const char kRequestVersionInfo[] = "requestVersionInfo"; +const char kReturnFilePaths[] = "returnFilePaths"; +const char kReturnFlashVersion[] = "returnFlashVersion"; +const char kReturnVariationInfo[] = "returnVariationInfo"; + +// Strings. +const char kApplicationLabel[] = "application_label"; +const char kBlinkVersion[] = "blink_version"; +const char kBuildID[] = "build_id"; +const char kBuildIDName[] = "build_id_name"; +const char kCL[] = "cl"; +const char kCommandLine[] = "command_line"; +const char kCommandLineName[] = "command_line_name"; +const char kCompany[] = "company"; +const char kCopyright[] = "copyright"; +const char kExecutablePath[] = "executable_path"; +const char kExecutablePathName[] = "executable_path_name"; +const char kFlashPlugin[] = "flash_plugin"; +const char kFlashVersion[] = "flash_version"; +const char kJSEngine[] = "js_engine"; +const char kJSVersion[] = "js_version"; +const char kOfficial[] = "official"; +const char kOSName[] = "os_name"; +const char kOSType[] = "os_type"; +const char kOSVersion[] = "os_version"; +const char kPlatform[] = "platform"; +const char kProfilePath[] = "profile_path"; +const char kProfilePathName[] = "profile_path_name"; +const char kRevision[] = "revision"; +const char kTitle[] = "title"; +const char kUserAgent[] = "useragent"; +const char kUserAgentName[] = "user_agent_name"; +const char kVariationsName[] = "variations_name"; +const char kVersion[] = "version"; +const char kVersionBitSize[] = "version_bitsize"; +const char kVersionModifier[] = "version_modifier"; + +} // namespace version_ui
diff --git a/components/version_ui/version_ui_constants.h b/components/version_ui/version_ui_constants.h new file mode 100644 index 0000000..79943672 --- /dev/null +++ b/components/version_ui/version_ui_constants.h
@@ -0,0 +1,57 @@ +// Copyright 2015 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 COMPONENTS_VERSION_UI_VERSION_UI_CONSTANTS_H_ +#define COMPONENTS_VERSION_UI_VERSION_UI_CONSTANTS_H_ + +namespace version_ui { + +// Resource paths. +// Must match the resource file names. +extern const char kAboutVersionCSS[]; +extern const char kVersionJS[]; + +// Message handlers. +// Must match the constants used in the resource files. +extern const char kRequestVersionInfo[]; +extern const char kReturnFilePaths[]; +extern const char kReturnFlashVersion[]; +extern const char kReturnVariationInfo[]; + +// Strings. +// Must match the constants used in the resource files. +extern const char kApplicationLabel[]; +extern const char kBlinkVersion[]; +extern const char kBuildID[]; +extern const char kBuildIDName[]; +extern const char kCL[]; +extern const char kCommandLine[]; +extern const char kCommandLineName[]; +extern const char kCompany[]; +extern const char kCopyright[]; +extern const char kExecutablePath[]; +extern const char kExecutablePathName[]; +extern const char kFlashPlugin[]; +extern const char kFlashVersion[]; +extern const char kJSEngine[]; +extern const char kJSVersion[]; +extern const char kOfficial[]; +extern const char kOSName[]; +extern const char kOSType[]; +extern const char kOSVersion[]; +extern const char kPlatform[]; +extern const char kProfilePath[]; +extern const char kProfilePathName[]; +extern const char kRevision[]; +extern const char kTitle[]; +extern const char kUserAgent[]; +extern const char kUserAgentName[]; +extern const char kVariationsName[]; +extern const char kVersion[]; +extern const char kVersionBitSize[]; +extern const char kVersionModifier[]; + +} // namespace version_ui + +#endif // COMPONENTS_VERSION_UI_VERSION_UI_CONSTANTS_H_
diff --git a/components/version_ui_strings.grdp b/components/version_ui_strings.grdp new file mode 100644 index 0000000..a9d2a82 --- /dev/null +++ b/components/version_ui_strings.grdp
@@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<grit-part> + <message name="IDS_VERSION_UI_TITLE" desc="Title on the about:version page"> + About Version + </message> + <message name="IDS_VERSION_UI_OFFICIAL" desc="official build on the about:version page"> + Official Build + </message> + <message name="IDS_VERSION_UI_UNOFFICIAL" desc="unofficial build on the about:version page"> + Developer Build + </message> + <message name="IDS_VERSION_UI_32BIT" desc="32-bit on the chrome://version page"> + (32-bit) + </message> + <message name="IDS_VERSION_UI_64BIT" desc="64-bit on the chrome://version page"> + (64-bit) + </message> + <message name="IDS_VERSION_UI_REVISION" desc="label for the revision on the about:version page"> + Revision + </message> + <message name="IDS_VERSION_UI_OS" desc="label for the OS on the about:version page"> + OS + </message> + <message name="IDS_VERSION_UI_USER_AGENT" desc="label for the user agent on the about:version page"> + User Agent + </message> + <message name="IDS_VERSION_UI_COMMAND_LINE" desc="label for the command line on the about:version page"> + Command Line + </message> +<if expr="chromeos"> + <message name="IDS_VERSION_UI_BUILD_DATE" desc="label for build date on the about:version page"> + Build Date + </message> +</if> + <message name="IDS_VERSION_UI_EXECUTABLE_PATH" desc="label for the executable path on the about:version page"> + Executable Path + </message> + <message name="IDS_VERSION_UI_PROFILE_PATH" desc="label for the profile path on the about:version page"> + Profile Path + </message> + <message name="IDS_VERSION_UI_PATH_NOTFOUND" desc="label for the non-existent path on the about:version page"> + No such file or directory + </message> + <message name="IDS_VERSION_UI_VARIATIONS" desc="label for the variations list on the about:version page"> + Variations + </message> +<if expr="is_android"> + <message name="IDS_VERSION_UI_BUILD_ID" desc="label for the build identifier on the about:version page"> + Build ID + </message> +</if> +</grit-part>
diff --git a/components/visitedlink/browser/BUILD.gn b/components/visitedlink/browser/BUILD.gn index fa2e70ce..a8ce9ea7 100644 --- a/components/visitedlink/browser/BUILD.gn +++ b/components/visitedlink/browser/BUILD.gn
@@ -16,5 +16,6 @@ "//components/visitedlink/common", "//content/public/browser", "//content/public/common", + "//url", ] }
diff --git a/components/visitedlink/renderer/BUILD.gn b/components/visitedlink/renderer/BUILD.gn index 2b95684..01a11f07 100644 --- a/components/visitedlink/renderer/BUILD.gn +++ b/components/visitedlink/renderer/BUILD.gn
@@ -12,6 +12,7 @@ deps = [ "//base", + "//components/visitedlink/common", "//content/public/common", "//content/public/renderer", "//third_party/WebKit/public:blink",
diff --git a/components/visitedlink/test/BUILD.gn b/components/visitedlink/test/BUILD.gn index 7af6d3d8..e74caca 100644 --- a/components/visitedlink/test/BUILD.gn +++ b/components/visitedlink/test/BUILD.gn
@@ -11,7 +11,9 @@ configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] deps = [ + "//base", "//components/visitedlink/browser", + "//components/visitedlink/common", "//components/visitedlink/renderer", "//content/test:test_support", "//testing/gtest",
diff --git a/components/web_resource/BUILD.gn b/components/web_resource/BUILD.gn index da7869a7..4b24750 100644 --- a/components/web_resource/BUILD.gn +++ b/components/web_resource/BUILD.gn
@@ -30,6 +30,7 @@ deps = [ "//base", "//base:prefs", + "//components/google/core/browser", "//components/pref_registry", "//components/version_info", "//net", @@ -66,6 +67,8 @@ ":test_support", "//base", "//base:prefs_test_support", + "//components/version_info", + "//net:test_support", "//testing/gtest", "//third_party/icu", ]
diff --git a/components/webusb/BUILD.gn b/components/webusb/BUILD.gn index c9e9ca1..e15770d 100644 --- a/components/webusb/BUILD.gn +++ b/components/webusb/BUILD.gn
@@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -static_library("webusb") { +source_set("webusb") { sources = [ "webusb_browser_client.h", "webusb_detector.cc", @@ -24,9 +24,12 @@ deps = [ ":webusb", + "//base", + "//device/core", "//device/usb", "//device/usb:mocks", "//testing/gmock", "//testing/gtest", + "//url", ] }
diff --git a/content/browser/compositor/delegated_frame_host.cc b/content/browser/compositor/delegated_frame_host.cc index ca8a0d87..abc001e 100644 --- a/content/browser/compositor/delegated_frame_host.cc +++ b/content/browser/compositor/delegated_frame_host.cc
@@ -254,7 +254,7 @@ resize_lock_->UnlockCompositor(); } -void DelegatedFrameHost::AttemptFrameSubscriberCapture( +void DelegatedFrameHost::DidReceiveFrameFromRenderer( const gfx::Rect& damage_rect) { if (!frame_subscriber() || !CanCopyToVideoFrame()) return; @@ -298,25 +298,14 @@ // screenshots) since those copy requests do not specify |frame_subscriber()| // as a source. request->set_source(frame_subscriber()); + request->set_area(gfx::Rect(current_frame_size_in_dip_)); if (subscriber_texture.get()) { request->SetTextureMailbox( cc::TextureMailbox(subscriber_texture->mailbox(), subscriber_texture->target(), subscriber_texture->sync_point())); } - - if (surface_factory_.get()) { - // To avoid unnecessary composites, go directly to the Surface rather than - // through RequestCopyOfOutput (which goes through the browser - // compositor). - if (!request_copy_of_output_callback_for_testing_.is_null()) - request_copy_of_output_callback_for_testing_.Run(request.Pass()); - else - surface_factory_->RequestCopyOfSurface(surface_id_, request.Pass()); - } else { - request->set_area(gfx::Rect(current_frame_size_in_dip_)); - RequestCopyOfOutput(request.Pass()); - } + RequestCopyOfOutput(request.Pass()); } void DelegatedFrameHost::SwapDelegatedFrame( @@ -486,10 +475,7 @@ } else { AddOnCommitCallbackAndDisableLocks(base::Closure()); } - // With Surfaces, the notification that the surface will be drawn notifies - // the frame subscriber. - if (!use_surfaces_) - AttemptFrameSubscriberCapture(damage_rect); + DidReceiveFrameFromRenderer(damage_rect); if (frame_provider_.get() || !surface_id_.is_null()) delegated_frame_evictor_->SwappedFrame( client_->DelegatedFrameHostIsVisible()); @@ -550,13 +536,6 @@ SendReturnedDelegatedResources(last_output_surface_id_); } -void DelegatedFrameHost::WillDrawSurface(cc::SurfaceId id, - const gfx::Rect& damage_rect) { - if (id != surface_id_) - return; - AttemptFrameSubscriberCapture(damage_rect); -} - void DelegatedFrameHost::EvictDelegatedFrame() { client_->DelegatedFrameHostGetLayer()->SetShowSolidColorContent(); frame_provider_ = NULL;
diff --git a/content/browser/compositor/delegated_frame_host.h b/content/browser/compositor/delegated_frame_host.h index c9662cbc..aa3ce5b1 100644 --- a/content/browser/compositor/delegated_frame_host.h +++ b/content/browser/compositor/delegated_frame_host.h
@@ -116,7 +116,6 @@ // cc::SurfaceFactoryClient implementation. void ReturnResources(const cc::ReturnedResourceArray& resources) override; - void WillDrawSurface(cc::SurfaceId id, const gfx::Rect& damage_rect) override; bool CanCopyToBitmap() const; @@ -247,7 +246,7 @@ // Called to consult the current |frame_subscriber_|, to determine and maybe // initiate a copy-into-video-frame request. - void AttemptFrameSubscriberCapture(const gfx::Rect& damage_rect); + void DidReceiveFrameFromRenderer(const gfx::Rect& damage_rect); DelegatedFrameHostClient* const client_; ui::Compositor* compositor_;
diff --git a/content/browser/devtools/service_worker_devtools_manager.cc b/content/browser/devtools/service_worker_devtools_manager.cc index 0252039..2eae6ab 100644 --- a/content/browser/devtools/service_worker_devtools_manager.cc +++ b/content/browser/devtools/service_worker_devtools_manager.cc
@@ -170,8 +170,7 @@ const ServiceWorkerIdentifier& service_worker_id) { AgentHostMap::iterator it = workers_.begin(); for (; it != workers_.end(); ++it) { - if (static_cast<ServiceWorkerDevToolsAgentHost*>( - it->second)->Matches(service_worker_id)) + if (it->second->Matches(service_worker_id)) break; } return it;
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc index 9145cc0..0b09f0f 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -21,7 +21,6 @@ #include "content/browser/compositor/resize_lock.h" #include "content/browser/compositor/test/no_transport_image_transport_factory.h" #include "content/browser/frame_host/render_widget_host_view_guest.h" -#include "content/browser/gpu/compositor_util.h" #include "content/browser/renderer_host/input/input_router.h" #include "content/browser/renderer_host/input/web_input_event_util.h" #include "content/browser/renderer_host/overscroll_controller.h" @@ -193,14 +192,12 @@ class FakeFrameSubscriber : public RenderWidgetHostViewFrameSubscriber { public: FakeFrameSubscriber(gfx::Size size, base::Callback<void(bool)> callback) - : size_(size), callback_(callback), should_capture_(true) {} + : size_(size), callback_(callback) {} bool ShouldCaptureFrame(const gfx::Rect& damage_rect, base::TimeTicks present_time, scoped_refptr<media::VideoFrame>* storage, DeliverFrameCallback* callback) override { - if (!should_capture_) - return false; last_present_time_ = present_time; *storage = media::VideoFrame::CreateFrame(media::PIXEL_FORMAT_YV12, size_, gfx::Rect(size_), size_, @@ -211,10 +208,6 @@ base::TimeTicks last_present_time() const { return last_present_time_; } - void set_should_capture(bool should_capture) { - should_capture_ = should_capture; - } - static void CallbackMethod(base::Callback<void(bool)> callback, base::TimeTicks present_time, bool success) { @@ -225,7 +218,6 @@ gfx::Size size_; base::Callback<void(bool)> callback_; base::TimeTicks last_present_time_; - bool should_capture_; }; class FakeWindowEventDispatcher : public aura::WindowEventDispatcher { @@ -2244,10 +2236,7 @@ void RunLoopUntilCallback() { base::RunLoop run_loop; quit_closure_ = run_loop.QuitClosure(); - // Temporarily ignore real draw requests. - frame_subscriber_->set_should_capture(false); run_loop.Run(); - frame_subscriber_->set_should_capture(true); } void InitializeView() { @@ -2279,10 +2268,6 @@ void OnSwapCompositorFrame() { view_->OnSwapCompositorFrame( 1, MakeDelegatedFrame(1.f, view_rect_.size(), view_rect_)); - cc::SurfaceId surface_id = - view_->GetDelegatedFrameHost()->SurfaceIdForTesting(); - if (!surface_id.is_null()) - view_->GetDelegatedFrameHost()->WillDrawSurface(surface_id, view_rect_); ASSERT_TRUE(view_->last_copy_request_); }
diff --git a/content/browser/service_worker/embedded_worker_instance.cc b/content/browser/service_worker/embedded_worker_instance.cc index 5efdd30..840b84c6 100644 --- a/content/browser/service_worker/embedded_worker_instance.cc +++ b/content/browser/service_worker/embedded_worker_instance.cc
@@ -149,6 +149,9 @@ return; } DCHECK(status_ == STOPPED); + // TODO(horo): If we will see crashes here, we have to find the root cause of + // the invalid version ID. Otherwise change CHECK to DCHECK. + CHECK_NE(service_worker_version_id, kInvalidServiceWorkerVersionId); start_timing_ = base::TimeTicks::Now(); status_ = STARTING; starting_phase_ = ALLOCATING_PROCESS;
diff --git a/extensions/browser/api/printer_provider/printer_provider_api.cc b/extensions/browser/api/printer_provider/printer_provider_api.cc index 8b02814d..b5d16a8e 100644 --- a/extensions/browser/api/printer_provider/printer_provider_api.cc +++ b/extensions/browser/api/printer_provider/printer_provider_api.cc
@@ -594,7 +594,7 @@ print_job.printer_id = internal_printer_id; JSONStringValueDeserializer deserializer(job.ticket_json); - scoped_ptr<base::Value> ticket_value(deserializer.Deserialize(NULL, NULL)); + scoped_ptr<base::Value> ticket_value = deserializer.Deserialize(NULL, NULL); if (!ticket_value || !api::printer_provider::PrintJob::Ticket::Populate(*ticket_value, &print_job.ticket)) {
diff --git a/extensions/browser/extension_icon_image_unittest.cc b/extensions/browser/extension_icon_image_unittest.cc index 88c2fe41..35a8b5c 100644 --- a/extensions/browser/extension_icon_image_unittest.cc +++ b/extensions/browser/extension_icon_image_unittest.cc
@@ -104,9 +104,8 @@ std::string error; JSONFileValueDeserializer deserializer( test_file.AppendASCII("manifest.json")); - scoped_ptr<base::DictionaryValue> valid_value( - static_cast<base::DictionaryValue*>( - deserializer.Deserialize(&error_code, &error))); + scoped_ptr<base::DictionaryValue> valid_value = base::DictionaryValue::From( + deserializer.Deserialize(&error_code, &error)); EXPECT_EQ(0, error_code) << error; if (error_code != 0) return NULL;
diff --git a/extensions/browser/image_loader_unittest.cc b/extensions/browser/image_loader_unittest.cc index 530a006b..4039b579b 100644 --- a/extensions/browser/image_loader_unittest.cc +++ b/extensions/browser/image_loader_unittest.cc
@@ -83,9 +83,8 @@ std::string error; JSONFileValueDeserializer deserializer( extension_dir.AppendASCII("manifest.json")); - scoped_ptr<base::DictionaryValue> valid_value( - static_cast<base::DictionaryValue*>( - deserializer.Deserialize(&error_code, &error))); + scoped_ptr<base::DictionaryValue> valid_value = base::DictionaryValue::From( + deserializer.Deserialize(&error_code, &error)); EXPECT_EQ(0, error_code) << error; if (error_code != 0) return NULL;
diff --git a/extensions/common/extension_l10n_util.cc b/extensions/common/extension_l10n_util.cc index dd96b07..c4ebbe9 100644 --- a/extensions/common/extension_l10n_util.cc +++ b/extensions/common/extension_l10n_util.cc
@@ -39,7 +39,8 @@ base::FilePath file = locale_path.AppendASCII(locale).Append(extensions::kMessagesFilename); JSONFileValueDeserializer messages_deserializer(file); - base::Value* dictionary = messages_deserializer.Deserialize(NULL, error); + scoped_ptr<base::DictionaryValue> dictionary = base::DictionaryValue::From( + messages_deserializer.Deserialize(NULL, error)); if (!dictionary) { if (error->empty()) { // JSONFileValueSerializer just returns NULL if file cannot be found. It @@ -54,7 +55,7 @@ } } - return static_cast<base::DictionaryValue*>(dictionary); + return dictionary.release(); } // Localizes manifest value of string type for a given key.
diff --git a/extensions/common/file_util_unittest.cc b/extensions/common/file_util_unittest.cc index df82b82..0814334b 100644 --- a/extensions/common/file_util_unittest.cc +++ b/extensions/common/file_util_unittest.cc
@@ -44,7 +44,7 @@ int extra_flags, std::string* error) { JSONStringValueDeserializer deserializer(manifest_value); - scoped_ptr<base::Value> result(deserializer.Deserialize(NULL, error)); + scoped_ptr<base::Value> result = deserializer.Deserialize(NULL, error); if (!result.get()) return NULL; CHECK_EQ(base::Value::TYPE_DICTIONARY, result->GetType());
diff --git a/extensions/common/manifest_test.cc b/extensions/common/manifest_test.cc index 048e183..37034b59 100644 --- a/extensions/common/manifest_test.cc +++ b/extensions/common/manifest_test.cc
@@ -29,7 +29,7 @@ JSONFileValueDeserializer deserializer(manifest_path); base::DictionaryValue* manifest = static_cast<base::DictionaryValue*>( - deserializer.Deserialize(NULL, error)); + deserializer.Deserialize(NULL, error).release()); // Most unit tests don't need localization, and they'll fail if we try to // localize them, since their manifests don't have a default_locale key.
diff --git a/extensions/renderer/resources/stash_client.js b/extensions/renderer/resources/stash_client.js index b7f50fe3..56f289fb 100644 --- a/extensions/renderer/resources/stash_client.js +++ b/extensions/renderer/resources/stash_client.js
@@ -163,6 +163,6 @@ return { registerClient: registerClient, retrieve: retrieve, - saveStashForTesting, saveStashForTesting, + saveStashForTesting: saveStashForTesting, }; });
diff --git a/extensions/utility/unpacker.cc b/extensions/utility/unpacker.cc index 6e28a49b..f499808 100644 --- a/extensions/utility/unpacker.cc +++ b/extensions/utility/unpacker.cc
@@ -121,7 +121,7 @@ JSONFileValueDeserializer deserializer(manifest_path); std::string error; - scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, &error)); + scoped_ptr<base::Value> root = deserializer.Deserialize(NULL, &error); if (!root.get()) { SetError(error); return NULL; @@ -253,8 +253,8 @@ bool Unpacker::ReadMessageCatalog(const base::FilePath& message_path) { std::string error; JSONFileValueDeserializer deserializer(message_path); - scoped_ptr<base::DictionaryValue> root = base::DictionaryValue::From( - make_scoped_ptr(deserializer.Deserialize(NULL, &error))); + scoped_ptr<base::DictionaryValue> root = + base::DictionaryValue::From(deserializer.Deserialize(NULL, &error)); if (!root.get()) { base::string16 messages_file = message_path.LossyDisplayName(); if (error.empty()) {
diff --git a/google_apis/drive/test_util.cc b/google_apis/drive/test_util.cc index e77aedf..e5885195 100644 --- a/google_apis/drive/test_util.cc +++ b/google_apis/drive/test_util.cc
@@ -82,7 +82,7 @@ std::string error; JSONFileValueDeserializer deserializer(path); - scoped_ptr<base::Value> value(deserializer.Deserialize(NULL, &error)); + scoped_ptr<base::Value> value = deserializer.Deserialize(NULL, &error); LOG_IF(WARNING, !value.get()) << "Failed to parse " << path.value() << ": " << error; return value.Pass();
diff --git a/ios/chrome/browser/application_context_impl.cc b/ios/chrome/browser/application_context_impl.cc index e86a64b..c95a0af 100644 --- a/ios/chrome/browser/application_context_impl.cc +++ b/ios/chrome/browser/application_context_impl.cc
@@ -80,7 +80,7 @@ DCHECK(thread_checker_.CalledOnValidThread()); PrefService* local_state = GetLocalState(); - local_state->SetBoolean(prefs::kLastSessionExitedCleanly, true); + local_state->SetBoolean(prefs::kLastSessionExitedCleanly, false); // Tell the metrics service that the application resumes. metrics::MetricsService* metrics_service = GetMetricsService();
diff --git a/mandoline/BUILD.gn b/mandoline/BUILD.gn index b14dfd2..bc32cb0 100644 --- a/mandoline/BUILD.gn +++ b/mandoline/BUILD.gn
@@ -45,7 +45,7 @@ "//components/html_viewer:apptests", "//components/html_viewer:html_viewer_unittests", "//components/html_viewer:layout_test_html_viewer", - "//components/mus/vm:tests", + "//components/mus/ws:tests", "//components/resource_provider:apptests", "//components/resource_provider:resource_provider_unittests", "//components/web_view:apptests",
diff --git a/media/audio/mac/audio_auhal_mac.cc b/media/audio/mac/audio_auhal_mac.cc index 9f665fc..d8166c4c 100644 --- a/media/audio/mac/audio_auhal_mac.cc +++ b/media/audio/mac/audio_auhal_mac.cc
@@ -50,7 +50,7 @@ audio_unit_(0), volume_(1), hardware_latency_frames_(0), - stopped_(false), + stopped_(true), current_hardware_pending_bytes_(0) { // We must have a manager. DCHECK(manager_); @@ -63,9 +63,15 @@ } AUHALStream::~AUHALStream() { + DCHECK(thread_checker_.CalledOnValidThread()); + CHECK(!audio_unit_); } bool AUHALStream::Open() { + DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK(!output_bus_.get()); + DCHECK(!audio_unit_); + // Get the total number of output channels that the // hardware supports. int device_output_channels; @@ -103,27 +109,26 @@ } void AUHALStream::Close() { - if (audio_unit_) { - OSStatus result = AudioUnitUninitialize(audio_unit_); - OSSTATUS_DLOG_IF(ERROR, result != noErr, result) - << "AudioUnitUninitialize() failed."; - result = AudioComponentInstanceDispose(audio_unit_); - OSSTATUS_DLOG_IF(ERROR, result != noErr, result) - << "AudioComponentInstanceDispose() failed."; - } - + DCHECK(thread_checker_.CalledOnValidThread()); + CloseAudioUnit(); // Inform the audio manager that we have been closed. This will cause our // destruction. manager_->ReleaseOutputStream(this); } void AUHALStream::Start(AudioSourceCallback* callback) { + DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(callback); if (!audio_unit_) { DLOG(ERROR) << "Open() has not been called successfully"; return; } + if (!stopped_) { + CHECK_EQ(source_, callback); + return; + } + // Check if we should defer Start() for http://crbug.com/160920. if (manager_->ShouldDeferStreamStart()) { // Use a cancellable closure so that if Stop() is called before Start() @@ -153,6 +158,7 @@ } void AUHALStream::Stop() { + DCHECK(thread_checker_.CalledOnValidThread()); deferred_start_cb_.Cancel(); if (stopped_) return; @@ -355,6 +361,7 @@ } bool AUHALStream::ConfigureAUHAL() { + DCHECK(thread_checker_.CalledOnValidThread()); if (device_ == kAudioObjectUnknown || output_channels_ == 0) return false; @@ -387,8 +394,10 @@ 0, &enable_IO, sizeof(enable_IO)); - if (result != noErr) + if (result != noErr) { + CloseAudioUnit(); return false; + } // Set the device to be used with the AUHAL AudioUnit. result = AudioUnitSetProperty( @@ -398,8 +407,10 @@ 0, &device_, sizeof(AudioDeviceID)); - if (result != noErr) + if (result != noErr) { + CloseAudioUnit(); return false; + } // Set stream formats. // See Apple's tech note for details on the peculiar way that @@ -411,12 +422,15 @@ output_channels_, kAudioUnitScope_Input, 0)) { + CloseAudioUnit(); return false; } if (!manager_->MaybeChangeBufferSize( - device_, audio_unit_, 0, number_of_frames_)) + device_, audio_unit_, 0, number_of_frames_)) { + CloseAudioUnit(); return false; + } // Setup callback. AURenderCallbackStruct callback; @@ -429,16 +443,33 @@ 0, &callback, sizeof(callback)); - if (result != noErr) + if (result != noErr) { + CloseAudioUnit(); return false; + } result = AudioUnitInitialize(audio_unit_); if (result != noErr) { OSSTATUS_DLOG(ERROR, result) << "AudioUnitInitialize() failed."; + CloseAudioUnit(); return false; } return true; } +void AUHALStream::CloseAudioUnit() { + DCHECK(thread_checker_.CalledOnValidThread()); + if (!audio_unit_) + return; + + OSStatus result = AudioUnitUninitialize(audio_unit_); + OSSTATUS_DLOG_IF(ERROR, result != noErr, result) + << "AudioUnitUninitialize() failed."; + result = AudioComponentInstanceDispose(audio_unit_); + OSSTATUS_DLOG_IF(ERROR, result != noErr, result) + << "AudioComponentInstanceDispose() failed."; + audio_unit_ = 0; +} + } // namespace media
diff --git a/media/audio/mac/audio_auhal_mac.h b/media/audio/mac/audio_auhal_mac.h index 62b08e86..ddc22927 100644 --- a/media/audio/mac/audio_auhal_mac.h +++ b/media/audio/mac/audio_auhal_mac.h
@@ -23,6 +23,7 @@ #include "base/cancelable_callback.h" #include "base/compiler_specific.h" #include "base/synchronization/lock.h" +#include "base/threading/thread_checker.h" #include "media/audio/audio_io.h" #include "media/audio/audio_parameters.h" @@ -36,18 +37,22 @@ // It is useful for low-latency output. // // Overview of operation: -// 1) An object of AUHALStream is created by the AudioManager -// factory: audio_man->MakeAudioStream(). -// 2) Next some thread will call Open(), at that point the underlying -// AUHAL Audio Unit is created and configured to use the |device|. -// 3) Then some thread will call Start(source). -// Then the AUHAL is started which creates its own thread which -// periodically will call the source for more data as buffers are being -// consumed. -// 4) At some point some thread will call Stop(), which we handle by directly -// stopping the default output Audio Unit. -// 6) The same thread that called stop will call Close() where we cleanup -// and notify the audio manager, which likely will destroy this object. +// 1) An object of AUHALStream is created by the AudioManager factory on the +// object's main thread via audio_man->MakeAudioStream(). Calls to the +// control routines (Open/Close/Start/Stop), must be made on this thread. +// 2) Next Open() will be called. At that point the underlying AUHAL Audio Unit +// is created and configured to use the |device|. +// 3) Then Start(source) is called and the device is started which creates its +// own thread (or uses an existing background thread) on which the AUHAL's +// callback will periodically ask for more data as buffers are being +// consumed. +// Note that all AUHAL instances receive callbacks on that very same +// thread, so avoid any contention in the callback as to not cause delays for +// other instances. +// 4) At some point Stop() will be called, which we handle by stopping the +// output Audio Unit. +// 6) Lastly, Close() will be called where we cleanup and notify the audio +// manager, which will delete the object. class AUHALStream : public AudioOutputStream { public: @@ -101,6 +106,9 @@ // Creates the AUHAL, sets its stream format, buffer-size, etc. bool ConfigureAUHAL(); + // Uninitializes audio_unit_ if needed. + void CloseAudioUnit(); + // Creates the input and output busses. void CreateIOBusses(); @@ -144,7 +152,7 @@ // Fixed playout hardware latency in frames. double hardware_latency_frames_; - // The flag used to stop the streaming. + // This flag will be set to false while we're actively receiving callbacks. bool stopped_; // Container for retrieving data from AudioSourceCallback::OnMoreData(). @@ -160,6 +168,10 @@ // Used to defer Start() to workaround http://crbug.com/160920. base::CancelableClosure deferred_start_cb_; + // Used to make sure control functions (Start(), Stop() etc) are called on the + // right thread. + base::ThreadChecker thread_checker_; + DISALLOW_COPY_AND_ASSIGN(AUHALStream); };
diff --git a/mojo/runner/BUILD.gn b/mojo/runner/BUILD.gn index 016f383..dc61e16 100644 --- a/mojo/runner/BUILD.gn +++ b/mojo/runner/BUILD.gn
@@ -54,7 +54,7 @@ deps += [ ":jni_headers", "//components/mus", - "//components/mus/vm:lib", + "//components/mus/ws:lib", "//mojo/shell", "//ui/gl", "//ui/platform_window/android", @@ -302,7 +302,7 @@ ":bootstrap", ":bootstrap_java", "//components/clipboard:apptests", - "//components/mus/vm:apptests", + "//components/mus/ws:apptests", "//components/resource_provider:apptests", "//mojo/services/network:apptests", ]
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc index 777d721..72b5b3f3 100644 --- a/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc
@@ -118,7 +118,7 @@ quic_threshold_public_resets_post_handshake(0), quic_threshold_timeouts_streams_open(0), proxy_delegate(NULL) { - quic_supported_versions.push_back(QUIC_VERSION_25); + quic_supported_versions.push_back(QUIC_VERSION_27); } HttpNetworkSession::Params::~Params() {}
diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h index 27ed595..75aea107 100644 --- a/net/http/http_network_session.h +++ b/net/http/http_network_session.h
@@ -84,7 +84,9 @@ uint16 testing_fixed_https_port; bool enable_tcp_fast_open_for_ssl; + // Compress SPDY headers. bool enable_spdy_compression; + // Use SPDY ping frames to test for connection health after idle. bool enable_spdy_ping_based_connection_checking; NextProto spdy_default_protocol; // The protocols supported by NPN (next protocol negotiation) during the @@ -96,40 +98,77 @@ size_t spdy_session_max_recv_window_size; size_t spdy_stream_max_recv_window_size; size_t spdy_initial_max_concurrent_streams; + // Source of time for SPDY connections. SpdySessionPool::TimeFunc time_func; + // This SPDY proxy is allowed to push resources from origins that are + // different from those of their associated streams. std::string trusted_spdy_proxy; // URLs to exclude from forced SPDY. std::set<HostPortPair> forced_spdy_exclusions; + // Process Alt-Svc headers. bool use_alternative_services; + // Only honor alternative service entries which have a higher probability + // than this value. double alternative_service_probability_threshold; + // Enables QUIC support. bool enable_quic; + // Enables insecure QUIC (http:// URLs) support, if enable_quic is true. bool enable_insecure_quic; + // Enables QUIC for proxies. bool enable_quic_for_proxies; + // Instruct QUIC to use consistent ephemeral ports when talking to + // the same server. bool enable_quic_port_selection; + // Disables QUIC's 0-RTT behavior. bool quic_always_require_handshake_confirmation; + // Disables QUIC connection pooling. bool quic_disable_connection_pooling; + // If not zero, the task to load QUIC server configs from the disk cache + // will timeout after this value multiplied by the smoothed RTT for the + // server. float quic_load_server_info_timeout_srtt_multiplier; + // Causes QUIC to race reading the server config from disk with + // sending an inchoate CHLO. bool quic_enable_connection_racing; + // Use non-blocking IO for UDP sockets. bool quic_enable_non_blocking_io; + // Disables using the disk cache to store QUIC server configs. bool quic_disable_disk_cache; + // Prefer AES-GCM to ChaCha20 even if no hardware support is present. bool quic_prefer_aes; + // Specifies the maximum number of connections with high packet loss in + // a row after which QUIC will be disabled. int quic_max_number_of_lossy_connections; + // Specifies packet loss rate in fraction after which a connection is + // closed and is considered as a lossy connection. float quic_packet_loss_threshold; + // Size in bytes of the QUIC DUP socket receive buffer. int quic_socket_receive_buffer_size; + // Delay starting a TCP connection when QUIC believes it can speak + // 0-RTT to a server. bool quic_delay_tcp_race; + // Store server configs in HttpServerProperties, instead of the disk cache. bool quic_store_server_configs_in_properties; + // If not empty, QUIC will be used for all connections to this origin. HostPortPair origin_to_force_quic_on; - QuicClock* quic_clock; // Will be owned by QuicStreamFactory. + // Source of time for QUIC connections. Will be owned by QuicStreamFactory. + QuicClock* quic_clock; + // Source of entropy for QUIC connections. QuicRandom* quic_random; + // Limit on the size of QUIC packets. size_t quic_max_packet_length; + // User agent description to send in the QUIC handshake. std::string quic_user_agent_id; bool enable_user_alternate_protocol_ports; + // Optional factory to use for creating QuicCryptoClientStreams. QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory; + // Versions of QUIC which may be used. QuicVersionVector quic_supported_versions; int quic_max_recent_disabled_reasons; int quic_threshold_public_resets_post_handshake; int quic_threshold_timeouts_streams_open; + // Set of QUIC tags to send in the handshakes connection options. QuicTagVector quic_connection_options; ProxyDelegate* proxy_delegate; };
diff --git a/net/http/transport_security_state_static.h b/net/http/transport_security_state_static.h index 783fda4..3a8dcbf 100644 --- a/net/http/transport_security_state_static.h +++ b/net/http/transport_security_state_static.h
@@ -275,6 +275,7 @@ DOMAIN_DROPBOXUSERCONTENT_COM, DOMAIN_WITHYOUTUBE_COM, DOMAIN_WITHGOOGLE_COM, + DOMAIN_G4W_CO, // Boundary value for UMA_HISTOGRAM_ENUMERATION. DOMAIN_NUM_EVENTS, }; @@ -2716,768 +2717,768 @@ 0x2b, 0xed, 0xda, 0x8a, 0x1d, 0x58, 0x79, 0xde, 0x2b, 0xbf, 0xda, 0x4e, 0xa2, 0xf1, 0x43, 0xaf, 0xff, 0x3c, 0xfd, 0x48, 0x1c, 0x99, 0x38, 0x87, 0x57, 0x8f, 0xe5, 0x93, 0x2b, 0x9b, 0x87, 0x5c, 0x0f, 0xca, 0xa4, 0x35, - 0x9c, 0x15, 0xbf, 0xd8, 0x11, 0xcf, 0x77, 0x0e, 0xbf, 0xa7, 0xfb, 0xb6, - 0xe3, 0xf9, 0xd7, 0xf6, 0x7b, 0xd1, 0xcd, 0x1d, 0x7f, 0x38, 0xff, 0x3f, - 0xfe, 0x3a, 0xa1, 0x11, 0xc2, 0x67, 0xb6, 0x59, 0x66, 0x21, 0x76, 0x26, - 0x73, 0xf0, 0xb5, 0xe4, 0x26, 0x5a, 0xe3, 0xbb, 0x97, 0x08, 0x16, 0x42, - 0xe9, 0x43, 0x0e, 0x0d, 0x42, 0x6b, 0xc9, 0xfb, 0x08, 0x3e, 0xc2, 0xfa, - 0xf2, 0xc1, 0xc2, 0xaf, 0xfc, 0xf2, 0x63, 0x38, 0xd7, 0x76, 0x9a, 0x26, - 0x3b, 0xe8, 0xe4, 0x6d, 0x1d, 0x66, 0x11, 0x11, 0x2b, 0x1c, 0xea, 0x55, - 0xf4, 0x4f, 0x1c, 0x3a, 0xfd, 0x91, 0x32, 0x2c, 0xea, 0x43, 0xc7, 0xe1, - 0x0d, 0xfe, 0xec, 0x72, 0x7f, 0xa0, 0xfc, 0xeb, 0x9f, 0x47, 0x5f, 0x7c, - 0xf6, 0x74, 0xeb, 0x47, 0x4d, 0xc6, 0x85, 0x6f, 0x40, 0xce, 0x75, 0xff, - 0xff, 0xf4, 0xb5, 0xdc, 0x03, 0x3a, 0xee, 0x37, 0x35, 0xf3, 0x37, 0x96, - 0x90, 0x50, 0xeb, 0xce, 0xed, 0x34, 0x56, 0x37, 0xcf, 0xf6, 0x14, 0x3a, - 0x9a, 0x79, 0x5c, 0x27, 0xbf, 0xf6, 0xde, 0x78, 0x70, 0x10, 0x3e, 0x3a, - 0x94, 0x4d, 0xa9, 0xa4, 0xdb, 0x8d, 0xf2, 0x19, 0x3e, 0x22, 0xbf, 0xf8, - 0x7c, 0xa0, 0x20, 0x71, 0xb1, 0xc3, 0xaf, 0xf7, 0x27, 0xf6, 0x9f, 0x76, - 0x9d, 0x50, 0x7e, 0xee, 0x85, 0x7f, 0x46, 0xd7, 0xb3, 0x79, 0x8e, 0xbf, - 0x81, 0xb6, 0xde, 0xa2, 0xa4, 0xeb, 0xfb, 0x35, 0xbc, 0xa3, 0xa7, 0x5d, - 0x1b, 0x0e, 0xb0, 0x7a, 0x78, 0x82, 0x5b, 0x7f, 0xd1, 0xbc, 0xa6, 0x93, - 0xf2, 0x73, 0xaa, 0x11, 0xb5, 0x8f, 0x08, 0x4f, 0x7a, 0x25, 0xe3, 0xaf, - 0xfd, 0x81, 0xe2, 0x02, 0x7f, 0xf5, 0x23, 0xaf, 0x96, 0xfb, 0xf8, 0xeb, - 0xff, 0xa7, 0x8f, 0x7c, 0xfa, 0xdf, 0xbb, 0x5f, 0x74, 0x75, 0xff, 0x72, - 0x34, 0xfc, 0x18, 0x91, 0xd5, 0xc4, 0x43, 0xec, 0x51, 0xbd, 0x27, 0x9c, - 0xeb, 0xdf, 0x27, 0x59, 0xd7, 0x07, 0xc7, 0x52, 0xa9, 0x31, 0xfc, 0x85, - 0x4e, 0xe4, 0xa8, 0x38, 0x23, 0xf7, 0xfe, 0x17, 0x0f, 0x63, 0x67, 0x5c, - 0x4e, 0xbf, 0xff, 0xf0, 0x27, 0xc6, 0xfc, 0x10, 0x6d, 0x7c, 0xcd, 0xe5, - 0x80, 0x1f, 0xf4, 0x75, 0xff, 0x3e, 0xe3, 0x81, 0xeb, 0xb2, 0x75, 0x05, - 0x1d, 0x42, 0x7b, 0xa7, 0x5b, 0xfa, 0x79, 0xa4, 0xaa, 0xe4, 0xe7, 0x5f, - 0x08, 0xe7, 0x8e, 0xa5, 0x64, 0xf5, 0x20, 0xd6, 0xfe, 0x9f, 0xee, 0xdb, - 0x8f, 0xe7, 0x5f, 0xfd, 0x37, 0x5d, 0x7e, 0xec, 0x78, 0x0b, 0x3a, 0xff, - 0x92, 0x49, 0xd0, 0x2d, 0x68, 0x75, 0x42, 0x2b, 0xf0, 0xcf, 0xc8, 0xb7, - 0xba, 0x8c, 0x43, 0x21, 0x5e, 0x44, 0x39, 0x1e, 0xcb, 0x61, 0x93, 0xc2, - 0x0e, 0xc6, 0x16, 0xe5, 0xa2, 0x37, 0xa8, 0xd7, 0xfd, 0x19, 0xe6, 0xdc, - 0x20, 0xfe, 0xc3, 0x56, 0xe9, 0x09, 0xd7, 0xf7, 0x39, 0x01, 0xc5, 0x9d, - 0x77, 0xdf, 0xce, 0xbd, 0xd4, 0x59, 0xd6, 0x98, 0xea, 0x73, 0x58, 0x01, - 0xbb, 0xf3, 0x8c, 0xe0, 0xd1, 0xd7, 0xfd, 0x01, 0xee, 0x07, 0x8e, 0xd3, - 0xa9, 0x11, 0xdf, 0xf9, 0x60, 0xa2, 0xe8, 0x83, 0xc4, 0xf7, 0xb5, 0xf7, - 0x47, 0x5f, 0x6f, 0x3c, 0x28, 0x75, 0x04, 0xf0, 0x80, 0x3d, 0x77, 0xa0, - 0xeb, 0xf2, 0xf0, 0x62, 0x47, 0x5f, 0x03, 0xd9, 0xa3, 0xaf, 0xa3, 0x8e, - 0x27, 0x5f, 0xe7, 0xe4, 0xbf, 0x4d, 0xf4, 0x75, 0xf6, 0xb5, 0x1f, 0x9d, - 0x50, 0x8b, 0xb4, 0x25, 0xe9, 0x08, 0x07, 0xd9, 0x34, 0xbe, 0x97, 0xe0, - 0x91, 0xd7, 0xdc, 0xfb, 0x1f, 0x9d, 0x50, 0x78, 0xe8, 0x47, 0x7f, 0x92, - 0x77, 0x5f, 0xff, 0xc1, 0xd7, 0xfc, 0x8d, 0xee, 0x4c, 0x30, 0x13, 0xaf, - 0xa5, 0xec, 0xfa, 0x75, 0xe6, 0xc7, 0xe7, 0x5e, 0xe4, 0x2c, 0xea, 0x73, - 0xda, 0x01, 0x1b, 0x23, 0x97, 0xe8, 0x9f, 0xee, 0x4c, 0x75, 0xe8, 0x19, - 0x1d, 0x53, 0x26, 0xb1, 0xc2, 0x0e, 0x9a, 0x0c, 0x24, 0x74, 0x5f, 0xe2, - 0xab, 0xff, 0x46, 0x6b, 0xe4, 0x20, 0x7e, 0xc8, 0xeb, 0xf9, 0x19, 0xd4, - 0xf8, 0xc9, 0xd4, 0x27, 0xdf, 0xe4, 0x0b, 0xf4, 0x07, 0xd8, 0xd3, 0xaf, - 0xbb, 0x02, 0xd3, 0xaa, 0x47, 0xcf, 0xa2, 0x1f, 0x13, 0x5f, 0x38, 0xbc, - 0xc7, 0x5f, 0x93, 0xc3, 0x92, 0x3a, 0xfa, 0x19, 0x89, 0x8e, 0xbb, 0xea, - 0xce, 0xbf, 0xe0, 0x7c, 0xf0, 0xbf, 0xf8, 0x27, 0x54, 0xe8, 0xb8, 0x50, - 0x81, 0x09, 0x7a, 0x44, 0x23, 0x17, 0xfa, 0x19, 0x08, 0x1f, 0x92, 0x3a, - 0xfe, 0x4e, 0x6f, 0xa8, 0x91, 0xd6, 0xd8, 0x75, 0x70, 0xfc, 0xba, 0x67, - 0xb4, 0x5b, 0x78, 0x51, 0x43, 0xaf, 0xb0, 0x29, 0xb0, 0xeb, 0xa1, 0x78, - 0x6f, 0x5c, 0x6e, 0xda, 0x3a, 0x90, 0xdd, 0x39, 0x55, 0xdf, 0xc1, 0x57, - 0x32, 0xc9, 0x54, 0x86, 0xb9, 0x91, 0x6b, 0xfc, 0xf2, 0x1c, 0xf7, 0x50, - 0xa6, 0x0d, 0x0d, 0xe7, 0xdf, 0x47, 0x5f, 0x7d, 0xeb, 0xf8, 0xea, 0x09, - 0xbf, 0xf0, 0xe5, 0xe8, 0x19, 0x8e, 0xb8, 0x60, 0xeb, 0x4c, 0x75, 0x4c, - 0x78, 0x1c, 0x1b, 0x71, 0x4b, 0xff, 0x94, 0x41, 0x6e, 0xa1, 0x6f, 0xbf, - 0x8e, 0xbd, 0xfe, 0x6d, 0x1d, 0x4a, 0x1f, 0x1f, 0x11, 0x2f, 0x97, 0xa0, - 0x2c, 0xeb, 0x28, 0x75, 0xb6, 0xce, 0xbb, 0x8a, 0x1d, 0x50, 0x7b, 0xa8, - 0x44, 0x01, 0x1f, 0xa2, 0x77, 0xff, 0xdd, 0xc9, 0x6a, 0x3d, 0x2c, 0x57, - 0x71, 0xfc, 0xeb, 0xff, 0x49, 0x3d, 0xdc, 0xdf, 0xc0, 0x83, 0xae, 0xcd, - 0x1d, 0x50, 0x7a, 0x72, 0x3e, 0xad, 0x23, 0x17, 0xd0, 0xa4, 0xbf, 0x24, - 0x2e, 0x16, 0x75, 0xb0, 0xea, 0x43, 0xdc, 0xd1, 0x46, 0xd9, 0x2d, 0x42, - 0xb0, 0x1c, 0x61, 0x48, 0x49, 0x76, 0x10, 0x0f, 0x1a, 0xed, 0xed, 0x44, - 0xc7, 0x51, 0xd6, 0x59, 0xd5, 0xe2, 0xeb, 0x60, 0x55, 0xfb, 0xf4, 0xe2, - 0x28, 0x75, 0xce, 0xa1, 0xd5, 0x32, 0x25, 0xba, 0x6d, 0xf9, 0x10, 0x94, - 0x5d, 0xe8, 0x3a, 0xfd, 0x1d, 0xcd, 0x8e, 0x75, 0x39, 0xbc, 0xfc, 0x56, - 0xfe, 0x4f, 0x67, 0x5d, 0x43, 0xaf, 0xee, 0x81, 0xe7, 0xea, 0x1d, 0x79, - 0x96, 0x59, 0x2a, 0xff, 0x83, 0x13, 0xfd, 0xce, 0xbe, 0xe5, 0x30, 0x5f, - 0xdd, 0x93, 0x9d, 0x41, 0x45, 0x6b, 0x53, 0x11, 0x2e, 0xf4, 0x2d, 0x0e, - 0xac, 0x3c, 0x96, 0x97, 0xdf, 0x27, 0x36, 0x82, 0x75, 0xfb, 0xb1, 0xbb, - 0xab, 0x9d, 0x7f, 0xfd, 0x1e, 0xd0, 0x73, 0xc9, 0xd0, 0x66, 0xfe, 0x3a, - 0xba, 0x7f, 0x3e, 0x2a, 0xb7, 0x0e, 0xbf, 0xd9, 0x8d, 0xfb, 0xb3, 0xb8, - 0x75, 0xc0, 0xd1, 0xd7, 0xff, 0xec, 0x0c, 0x66, 0xff, 0x7c, 0x82, 0x09, - 0x66, 0x8e, 0xb9, 0x7f, 0x9d, 0x73, 0x89, 0xd5, 0xd3, 0x56, 0xe2, 0xf7, - 0xe5, 0xa7, 0xbf, 0x73, 0xaa, 0x74, 0xf8, 0x72, 0x13, 0xaa, 0xe4, 0x53, - 0x08, 0x39, 0xa8, 0x8b, 0x7a, 0x10, 0x00, 0x20, 0xbe, 0xef, 0x92, 0x73, - 0xaf, 0xf3, 0x53, 0x43, 0x9b, 0x1c, 0xeb, 0xe8, 0x9d, 0xe4, 0x75, 0xd9, - 0xe3, 0xaf, 0xd9, 0x38, 0xe6, 0xe7, 0x56, 0x22, 0xc7, 0x72, 0x2e, 0x19, - 0x74, 0x84, 0x45, 0x6f, 0x76, 0x02, 0x75, 0xdc, 0xd1, 0xd4, 0x72, 0x16, - 0xd7, 0xfa, 0x06, 0x4e, 0xbc, 0x09, 0xd7, 0xde, 0x5a, 0xf8, 0x75, 0xff, - 0xdf, 0xc0, 0xb5, 0xfd, 0xff, 0xd1, 0x91, 0xd7, 0xa4, 0x9d, 0x3a, 0xfb, - 0xc3, 0x92, 0x3a, 0xfd, 0x80, 0x54, 0xe9, 0xce, 0xbf, 0xfc, 0x9a, 0xee, - 0x04, 0x73, 0x60, 0xe6, 0x8e, 0xa9, 0x26, 0x8a, 0xa1, 0x86, 0xe4, 0x53, - 0x23, 0x70, 0x6c, 0x48, 0x3c, 0x55, 0x4a, 0xa6, 0xcf, 0xc6, 0x23, 0x04, - 0x9e, 0x11, 0x72, 0x22, 0x0c, 0x34, 0x32, 0x3e, 0x8d, 0xe3, 0x33, 0x48, - 0x73, 0xcd, 0x0b, 0xce, 0x42, 0xa5, 0x6d, 0xdd, 0x97, 0x02, 0xf0, 0xee, - 0xfd, 0xe9, 0x52, 0x42, 0x31, 0x91, 0x6a, 0x50, 0x17, 0xa3, 0x2f, 0x65, - 0x27, 0x6c, 0xc7, 0xec, 0x6b, 0xb7, 0xfc, 0xc7, 0x93, 0x36, 0xb4, 0x08, - 0x3a, 0xff, 0xff, 0x81, 0x0c, 0x7b, 0x49, 0xd7, 0x4f, 0x67, 0x3f, 0x5b, - 0xc8, 0xea, 0x61, 0x50, 0xec, 0xf1, 0xbe, 0x04, 0xee, 0xfd, 0xc6, 0xbb, - 0xb4, 0xd1, 0x5b, 0xdf, 0xf9, 0xe4, 0xc6, 0x71, 0xae, 0xed, 0x34, 0x4e, - 0x16, 0x63, 0x0f, 0xf5, 0x66, 0x77, 0x2a, 0x82, 0x75, 0xba, 0x75, 0xb4, - 0x75, 0x00, 0xd0, 0x6d, 0x88, 0x5f, 0x35, 0xdd, 0xa6, 0x8b, 0x46, 0xff, - 0xf6, 0x07, 0xae, 0xa4, 0xd3, 0x26, 0x80, 0xb3, 0xab, 0x87, 0xf3, 0xd2, - 0xdb, 0xe6, 0xb8, 0xfe, 0x75, 0xff, 0x4d, 0x8a, 0xfa, 0xe7, 0x1f, 0xc7, - 0x5f, 0xd0, 0xe2, 0x00, 0xe1, 0xd7, 0x22, 0x87, 0x5f, 0xff, 0xa7, 0x8f, - 0x40, 0x79, 0x1d, 0x7d, 0x0e, 0x7e, 0x75, 0xff, 0xa3, 0x77, 0x57, 0xe8, - 0xba, 0xbc, 0xe7, 0x5f, 0xfa, 0x39, 0xfe, 0x26, 0x73, 0xc0, 0x3a, 0xa1, - 0x1a, 0xbd, 0x54, 0xd2, 0x25, 0xb2, 0x64, 0xc6, 0xb5, 0x0e, 0xbb, 0xfd, - 0xde, 0x81, 0x45, 0xc6, 0x8e, 0xbf, 0xff, 0x26, 0x87, 0x36, 0x3f, 0x87, - 0x35, 0xd7, 0x98, 0xea, 0xc4, 0x44, 0x4c, 0x69, 0x7d, 0x9f, 0xbf, 0x4e, - 0xbb, 0xba, 0x3a, 0xcc, 0x2a, 0x15, 0xd5, 0xab, 0x67, 0x59, 0x09, 0xd6, - 0x91, 0x4c, 0x42, 0xb3, 0xce, 0xc6, 0x89, 0xe8, 0x5b, 0xed, 0x91, 0xfd, - 0x21, 0xbe, 0x6b, 0xbb, 0x4d, 0x16, 0xd5, 0xff, 0xfd, 0x0f, 0xe8, 0xec, - 0x69, 0x12, 0x49, 0xcc, 0x09, 0xd7, 0xf7, 0x61, 0x70, 0x81, 0x3a, 0xb8, - 0x8a, 0xed, 0x16, 0xf9, 0x5a, 0xff, 0xdd, 0x40, 0xbc, 0x83, 0xd4, 0x59, - 0xd7, 0xd1, 0xb3, 0x10, 0xeb, 0xfe, 0x89, 0x47, 0x27, 0x8e, 0x4e, 0x75, - 0xff, 0x47, 0x3e, 0x6a, 0x3a, 0xe8, 0x75, 0xfe, 0xea, 0x3c, 0xbc, 0x93, - 0x9d, 0x58, 0x99, 0x8b, 0x4c, 0x38, 0x7a, 0x24, 0x2c, 0x9c, 0xed, 0x9c, - 0x5f, 0xca, 0x3f, 0x02, 0x01, 0x3a, 0xfe, 0x1d, 0xb4, 0xe6, 0x28, 0x75, - 0xf9, 0x27, 0x5c, 0x34, 0xeb, 0xf3, 0xef, 0x2f, 0xba, 0x3a, 0xcc, 0x28, - 0x8a, 0xd1, 0x2d, 0xf1, 0x7e, 0xc2, 0x7a, 0x61, 0x34, 0xdf, 0xe3, 0x07, - 0xb9, 0x7d, 0x3a, 0xfd, 0xc6, 0xbb, 0xb4, 0xd1, 0x72, 0xd9, 0x80, 0x9e, - 0x4e, 0x0b, 0x5f, 0xb8, 0xd7, 0x76, 0x9a, 0x2e, 0xdb, 0xfe, 0x49, 0x49, - 0x07, 0xf8, 0x91, 0xd6, 0x63, 0x0f, 0xa9, 0xcc, 0xea, 0x1d, 0x8a, 0x74, - 0xe5, 0x32, 0x9e, 0x62, 0x0c, 0x6d, 0x0a, 0x52, 0x35, 0x12, 0xb6, 0xf1, - 0x57, 0x85, 0xbf, 0x65, 0xe9, 0x8c, 0xbd, 0xed, 0x3a, 0xfa, 0x12, 0x57, - 0xf9, 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0xa9, 0xef, 0x06, 0x75, 0x9d, 0x6f, - 0x1d, 0x7f, 0xd0, 0xf3, 0xfc, 0xdf, 0x50, 0x13, 0xa9, 0x0f, 0x2c, 0x44, - 0x2f, 0x9a, 0xee, 0xd3, 0x45, 0x73, 0x7f, 0x98, 0xce, 0x35, 0xdd, 0xa6, - 0x8b, 0x3a, 0xf3, 0xbc, 0x8e, 0xbf, 0x93, 0x58, 0x2e, 0xc9, 0xd5, 0xc4, - 0x58, 0xf4, 0xb4, 0x4f, 0xfc, 0x35, 0x7f, 0xfb, 0xd1, 0xaf, 0x80, 0xd7, - 0xa2, 0x69, 0x90, 0xeb, 0xf9, 0x17, 0x38, 0x39, 0x23, 0xaf, 0xf4, 0x77, - 0xe2, 0xd5, 0xb5, 0x47, 0x8e, 0xac, 0x45, 0xcf, 0x53, 0x76, 0x17, 0x5f, - 0xb9, 0x9e, 0x45, 0x9d, 0x7c, 0xe3, 0x01, 0x3a, 0xfe, 0xc9, 0xa1, 0x71, - 0xf4, 0xeb, 0xf7, 0x1a, 0xee, 0xd3, 0x44, 0x85, 0x7f, 0xec, 0x5e, 0x3f, - 0x27, 0xf9, 0xba, 0xce, 0xbf, 0xe4, 0xdf, 0x5e, 0x18, 0x5e, 0x8e, 0xba, - 0x4c, 0x62, 0x2b, 0x3a, 0x67, 0xfa, 0x0d, 0xff, 0xdd, 0x45, 0xe6, 0xbe, - 0x6f, 0x2c, 0xf1, 0xd7, 0xd2, 0xef, 0xdd, 0x1d, 0x50, 0x7d, 0x58, 0x8d, - 0x7c, 0xad, 0xf6, 0x16, 0x75, 0xfd, 0xdd, 0x6b, 0x39, 0x39, 0xd7, 0x43, - 0x27, 0x56, 0x1e, 0x22, 0x17, 0x59, 0x89, 0xd7, 0x33, 0xc2, 0xd1, 0x90, - 0xd1, 0x48, 0x7a, 0xf0, 0xc5, 0x64, 0xdd, 0x1f, 0x78, 0x6d, 0x0c, 0x29, - 0xf4, 0x41, 0xe6, 0xab, 0xff, 0x98, 0xeb, 0xe8, 0x73, 0xde, 0x8f, 0xce, - 0xbf, 0xfc, 0xc2, 0xde, 0x4c, 0x67, 0x1a, 0xee, 0xd3, 0x44, 0xf9, 0x4d, - 0x5e, 0x5c, 0x57, 0x9d, 0x0e, 0x5c, 0x2c, 0xfa, 0x89, 0x72, 0x6e, 0x75, - 0xff, 0xf4, 0xa7, 0x55, 0xa1, 0x5b, 0x9d, 0xbc, 0xf9, 0xf3, 0xbb, 0x67, - 0x54, 0x8f, 0xeb, 0xf1, 0x6b, 0xf6, 0x73, 0x32, 0x63, 0xac, 0xc7, 0x4f, - 0x27, 0xe9, 0x1d, 0xfb, 0x8d, 0x77, 0x69, 0xa2, 0xb2, 0xbf, 0xf3, 0xc9, - 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0x9b, 0xac, 0xc6, 0x1f, 0xea, 0xcc, 0xe9, - 0xa8, 0xd0, 0x48, 0x54, 0x5f, 0xb8, 0xd7, 0x76, 0x9a, 0x25, 0x6b, 0xf0, - 0xc0, 0x5f, 0xa7, 0x5f, 0x98, 0x5b, 0xc9, 0x8c, 0x3d, 0x84, 0x33, 0xbf, - 0xf7, 0xb1, 0x8c, 0xe2, 0x4e, 0xeb, 0x3a, 0xff, 0xf2, 0xb0, 0xac, 0xaa, - 0x35, 0x8f, 0x24, 0xce, 0x61, 0xd7, 0xfe, 0x4d, 0x01, 0x62, 0x9b, 0x00, - 0xe7, 0x5f, 0xd0, 0x2e, 0xd7, 0x57, 0x3a, 0xa4, 0x7d, 0x6b, 0x3e, 0xb8, - 0x3c, 0x3a, 0xfd, 0xc6, 0xbb, 0xb4, 0xd1, 0x2e, 0x5f, 0xf2, 0x3c, 0xbc, - 0x30, 0xbd, 0x1d, 0x7e, 0x96, 0xda, 0x75, 0xce, 0xbd, 0x1b, 0x70, 0x75, - 0xe4, 0x18, 0x3a, 0xa4, 0x7b, 0xe1, 0x29, 0xd8, 0x3b, 0x7f, 0xfe, 0x7f, - 0x20, 0x24, 0x29, 0x28, 0xf0, 0x82, 0x47, 0x5f, 0xd2, 0xee, 0x0e, 0x34, - 0xeb, 0xd2, 0xef, 0x8e, 0xbb, 0xb0, 0x87, 0x8f, 0xd2, 0xbb, 0xff, 0x85, - 0x3f, 0xd7, 0x21, 0x24, 0xfa, 0x3a, 0xb0, 0xfb, 0x90, 0xb2, 0xf3, 0xc9, - 0x85, 0x5e, 0xac, 0x62, 0x21, 0x81, 0x22, 0x2c, 0x16, 0xe9, 0x9b, 0xc2, - 0x57, 0x46, 0x3e, 0x8c, 0x1e, 0xcc, 0x22, 0xbe, 0xe5, 0xcb, 0x56, 0xbf, - 0xf9, 0x87, 0x93, 0x19, 0xc6, 0xbb, 0xb4, 0xd1, 0x1d, 0xdf, 0xf7, 0xbb, - 0x92, 0x61, 0xc7, 0x47, 0x5f, 0xca, 0xa1, 0x86, 0xe0, 0x9d, 0x70, 0x3a, - 0x75, 0xfc, 0xa8, 0x1c, 0xeb, 0xf8, 0xeb, 0xff, 0xfb, 0xd2, 0x40, 0xf5, - 0x36, 0x7c, 0xc0, 0xf1, 0x00, 0xd3, 0xaf, 0xf6, 0x33, 0xa8, 0x1f, 0x68, - 0xeb, 0xfc, 0xe3, 0xfb, 0xf1, 0xfe, 0x9d, 0x7f, 0xe4, 0xe7, 0xcd, 0x0e, - 0x2e, 0x1a, 0x75, 0xff, 0xa0, 0x41, 0xe4, 0x7d, 0x8f, 0x23, 0xaf, 0x9a, - 0xee, 0xd3, 0x45, 0x43, 0x7f, 0xd9, 0xdc, 0x17, 0xe7, 0x10, 0xea, 0x51, - 0x1b, 0xad, 0x3e, 0xe1, 0xee, 0x8b, 0x6e, 0x96, 0x1d, 0x7f, 0xd2, 0xf2, - 0x71, 0xda, 0x82, 0x75, 0xff, 0xe7, 0x5e, 0x70, 0x71, 0x36, 0x27, 0x1c, - 0xeb, 0xff, 0xba, 0x39, 0x37, 0xbb, 0x9c, 0x4d, 0x1d, 0x7e, 0xdc, 0x51, - 0x68, 0x75, 0x42, 0x2c, 0x31, 0x1d, 0x10, 0xef, 0xf4, 0x79, 0xfb, 0xf0, - 0x30, 0x75, 0xff, 0x81, 0xf1, 0xc7, 0x36, 0xbe, 0x74, 0x07, 0x5f, 0xe9, - 0x47, 0x27, 0x8e, 0x4e, 0x75, 0xff, 0xda, 0xd6, 0x0f, 0xb5, 0x92, 0x4e, - 0x9d, 0x7f, 0xfd, 0x1f, 0xe0, 0xfc, 0x7f, 0x7c, 0xee, 0x7e, 0xe7, 0x5c, - 0x33, 0x9d, 0x50, 0x8d, 0xec, 0x34, 0x44, 0x21, 0x52, 0xbf, 0xb6, 0x3a, - 0xfa, 0xcb, 0x9d, 0x7f, 0xff, 0x92, 0x3c, 0xfd, 0x63, 0x5d, 0xc1, 0xf7, - 0xcf, 0xe5, 0xa3, 0xad, 0x88, 0x89, 0x21, 0x2f, 0xbe, 0xef, 0xb2, 0x73, - 0xaf, 0xd9, 0x3b, 0x8e, 0xc3, 0xaf, 0xff, 0xff, 0xf4, 0x4b, 0xe7, 0xba, - 0x91, 0xaf, 0x98, 0x06, 0xc6, 0xcf, 0x99, 0xce, 0x66, 0xc0, 0x3f, 0x4e, - 0xbe, 0xe8, 0xbe, 0xd1, 0xd5, 0x89, 0x81, 0x89, 0x16, 0x8a, 0x3d, 0x09, - 0x6b, 0xff, 0xfe, 0x03, 0xab, 0xa4, 0xfd, 0x74, 0xf4, 0x75, 0x3d, 0xac, - 0x09, 0xd6, 0x61, 0x50, 0xbe, 0xd4, 0xad, 0x97, 0x2a, 0x85, 0xa0, 0xbe, - 0x75, 0xe0, 0x99, 0x64, 0x62, 0x0d, 0x3e, 0xdc, 0x57, 0x90, 0xe6, 0x59, - 0x6f, 0x4c, 0xc6, 0x32, 0x2d, 0x43, 0x2f, 0xd1, 0x94, 0xed, 0xa0, 0xdf, - 0x35, 0xdd, 0xa6, 0x8a, 0xa2, 0xff, 0x72, 0x36, 0x6f, 0x2c, 0xf1, 0xd5, - 0xc3, 0xe2, 0x01, 0x6d, 0xff, 0x9e, 0x4c, 0x67, 0x1a, 0xee, 0xd3, 0x44, - 0xd7, 0x79, 0x6f, 0xe3, 0xac, 0xc6, 0x22, 0x1d, 0x64, 0x4e, 0x95, 0x7e, - 0xe3, 0x5d, 0xda, 0x68, 0xab, 0x2f, 0xfa, 0x25, 0x1c, 0x9e, 0x39, 0x39, - 0xd6, 0x63, 0x0f, 0xb0, 0x4c, 0xef, 0xfc, 0xc7, 0x63, 0x7f, 0x47, 0x5d, - 0x5c, 0xeb, 0xff, 0x98, 0x79, 0x31, 0x9c, 0x6b, 0xbb, 0x4d, 0x12, 0x25, - 0xfb, 0x8d, 0x77, 0x69, 0xa2, 0xd2, 0xbf, 0xf3, 0xc9, 0x8c, 0xe3, 0x5d, - 0xda, 0x68, 0x9f, 0x6c, 0xc6, 0x1f, 0xea, 0xcc, 0xef, 0xff, 0x30, 0xb7, - 0x93, 0x19, 0xc6, 0xbb, 0xb4, 0xd1, 0x42, 0x5f, 0xba, 0x93, 0xc7, 0x0e, - 0xbf, 0x71, 0xae, 0xed, 0x34, 0x51, 0xf7, 0xfd, 0x12, 0x8e, 0x4f, 0x1c, - 0x9c, 0xeb, 0xff, 0x0c, 0x4d, 0x03, 0x13, 0x76, 0x0e, 0xbf, 0xff, 0xb0, - 0x3d, 0x8f, 0xac, 0x78, 0x5f, 0xfd, 0x6a, 0x3f, 0x2a, 0xfc, 0xc2, 0xde, - 0x4c, 0x42, 0x65, 0xb8, 0x4e, 0x26, 0x7e, 0x39, 0xdb, 0x3c, 0xa8, 0x6c, - 0x8d, 0xe7, 0x9c, 0x2d, 0x91, 0x96, 0x28, 0xa9, 0x3f, 0x44, 0xd8, 0xfd, - 0xf7, 0x85, 0x0a, 0x13, 0xcc, 0x85, 0xd8, 0x67, 0x7e, 0x51, 0xe8, 0xe1, - 0x2f, 0xf3, 0x19, 0xc6, 0xbb, 0xb4, 0xd1, 0x11, 0x5f, 0xd9, 0xc6, 0xbb, - 0xb4, 0xd1, 0x15, 0xdf, 0xf2, 0xbb, 0x19, 0xc6, 0xbb, 0xb4, 0xd1, 0x5c, - 0x53, 0x08, 0x80, 0x73, 0x8b, 0xff, 0xdf, 0xc0, 0xb5, 0x87, 0xf7, 0xff, - 0x46, 0x47, 0x5f, 0x31, 0x3c, 0xca, 0xe7, 0x59, 0x37, 0x3f, 0x5f, 0xd3, - 0x6f, 0xb3, 0xaf, 0xe3, 0xaf, 0xf6, 0x27, 0x3f, 0xfc, 0x1a, 0x3a, 0xca, - 0x81, 0x3d, 0x4d, 0x10, 0x5f, 0xff, 0xde, 0xd2, 0x75, 0xd2, 0x48, 0x3e, - 0x07, 0x79, 0x87, 0x5f, 0xb8, 0xd7, 0x76, 0x9a, 0x29, 0xeb, 0xfc, 0xb4, - 0x08, 0x1f, 0x92, 0x3a, 0xe5, 0xa1, 0xd5, 0x07, 0x8e, 0xd3, 0x2b, 0xff, - 0xfd, 0x28, 0xf6, 0x80, 0xb6, 0xa7, 0xf1, 0x9d, 0x40, 0x34, 0xeb, 0xff, - 0xfb, 0x9c, 0x07, 0x39, 0x03, 0x8a, 0x27, 0x7b, 0x9f, 0x4e, 0xbf, 0xf9, - 0x25, 0x83, 0xfc, 0x2d, 0x39, 0x23, 0xaf, 0xf4, 0xa3, 0x93, 0xc7, 0x27, - 0x3a, 0xfb, 0xe0, 0xbc, 0x8e, 0xbf, 0x3e, 0x75, 0x16, 0x75, 0x68, 0xf1, - 0xf6, 0x11, 0x54, 0x22, 0x7f, 0x1e, 0xef, 0xfa, 0x05, 0xb9, 0xb3, 0x3d, - 0xa3, 0xaf, 0xcf, 0x3c, 0x70, 0x07, 0x52, 0xa9, 0x59, 0xdc, 0x15, 0xe2, - 0xc3, 0x5e, 0xb7, 0x21, 0x46, 0x07, 0x5c, 0x18, 0x70, 0xec, 0x21, 0xdb, - 0x38, 0xbf, 0xfc, 0xf2, 0x60, 0x22, 0xec, 0xeb, 0x51, 0xf9, 0xd7, 0xff, - 0xbf, 0xfc, 0x1a, 0x63, 0xe8, 0xba, 0xc6, 0x0e, 0xbf, 0xf8, 0x73, 0xf7, - 0x1f, 0xd8, 0x5a, 0x2c, 0xea, 0xe2, 0x24, 0x7c, 0x9b, 0x4c, 0x27, 0x2c, - 0x18, 0x4b, 0xa4, 0x37, 0x2e, 0x0e, 0x1d, 0x7f, 0xf2, 0x07, 0x8f, 0xbb, - 0x1c, 0xe4, 0x4e, 0x75, 0x30, 0x7b, 0x7d, 0x15, 0xb8, 0x30, 0x75, 0xff, - 0xfb, 0xb1, 0xcc, 0x92, 0x3f, 0xb0, 0x28, 0x06, 0x95, 0x7e, 0x89, 0x7e, - 0x09, 0x1d, 0x7c, 0xd7, 0x76, 0x9a, 0x2b, 0x3a, 0x98, 0xf5, 0x78, 0x51, - 0x7d, 0xe4, 0x5e, 0x8e, 0xbf, 0xa7, 0x5c, 0x0c, 0xb4, 0x75, 0xfb, 0x3d, - 0xaf, 0xba, 0x3a, 0xf4, 0x4e, 0x87, 0x5f, 0xbd, 0xff, 0xd1, 0x91, 0xd7, - 0x80, 0xfa, 0x3a, 0xff, 0xb2, 0x48, 0x05, 0x75, 0x6f, 0xf5, 0x9d, 0x7e, - 0xc9, 0xa7, 0x07, 0xe7, 0x59, 0x88, 0x54, 0x42, 0x11, 0x5c, 0x85, 0x3e, - 0xe4, 0x7c, 0x21, 0x59, 0x6f, 0x4a, 0x5c, 0x6c, 0x4a, 0xb4, 0x37, 0xf5, - 0x06, 0xff, 0xdd, 0x4f, 0x3f, 0x27, 0x84, 0x09, 0xd7, 0xef, 0x20, 0xe2, - 0xce, 0xbe, 0x93, 0x8b, 0x18, 0x7c, 0x5b, 0x47, 0xb7, 0xfe, 0x79, 0x31, - 0x9c, 0x6b, 0xbb, 0x4d, 0x12, 0x2d, 0xff, 0x9f, 0xcc, 0x42, 0x71, 0x3c, - 0x03, 0xa9, 0x84, 0x43, 0xba, 0x55, 0xfd, 0x9c, 0x6b, 0xbb, 0x4d, 0x16, - 0x4d, 0xff, 0xef, 0x6b, 0xee, 0x98, 0xc9, 0xd0, 0x65, 0xa3, 0xa9, 0x84, - 0x42, 0xe1, 0xc5, 0xff, 0xfe, 0x74, 0xf0, 0x38, 0xfa, 0x61, 0xbd, 0x4e, - 0x44, 0xb4, 0x75, 0xfd, 0x9c, 0x6b, 0xbb, 0x4d, 0x16, 0xc5, 0xff, 0xfc, - 0xa8, 0xef, 0xc1, 0xce, 0x7b, 0x5d, 0x9b, 0xe7, 0xce, 0xed, 0x9d, 0x7b, - 0x80, 0xe9, 0xd7, 0x79, 0x88, 0x44, 0x37, 0x1a, 0xa9, 0x84, 0x76, 0xa4, - 0x2f, 0xaf, 0x66, 0xb0, 0xeb, 0xe6, 0xbb, 0xb4, 0xd1, 0x6d, 0xdf, 0x6a, - 0x77, 0xe1, 0xd5, 0xc3, 0xcf, 0xf1, 0x6d, 0xfc, 0x9d, 0xf2, 0x7e, 0x03, - 0xaf, 0xfa, 0x25, 0x1c, 0x9e, 0x39, 0x39, 0xd6, 0x62, 0x48, 0xf1, 0xc6, - 0x99, 0x88, 0x84, 0xb6, 0xff, 0xf6, 0x0f, 0xec, 0x2d, 0xc3, 0x98, 0x2a, - 0x1d, 0x79, 0x55, 0xd0, 0x9d, 0x7a, 0x7e, 0xa1, 0xd7, 0xfe, 0x55, 0x2a, - 0x95, 0xa7, 0xbb, 0x83, 0x1f, 0x9d, 0x7f, 0x40, 0xc8, 0x20, 0x59, 0xd7, - 0xcd, 0x77, 0x69, 0xa2, 0xf0, 0xbf, 0xf3, 0xfa, 0x36, 0x73, 0x99, 0xbe, - 0x8e, 0xae, 0x1f, 0x68, 0x96, 0xdf, 0x7b, 0x6f, 0x3a, 0x75, 0xf9, 0x70, - 0x32, 0x73, 0xaf, 0xf4, 0xa0, 0x7d, 0xb1, 0xda, 0x75, 0xfe, 0x8f, 0x3f, - 0x7e, 0x06, 0x0e, 0xbf, 0xf7, 0xd5, 0xef, 0x2f, 0x60, 0xfb, 0x47, 0x5d, - 0x8a, 0x1d, 0x50, 0x7a, 0xf8, 0x83, 0x7c, 0x93, 0xe2, 0xce, 0xbf, 0x60, - 0xff, 0xb5, 0x07, 0x5f, 0xa3, 0xe8, 0x1f, 0x47, 0x5f, 0xfe, 0xc5, 0xc3, - 0x7e, 0x60, 0x82, 0x59, 0xa3, 0xaf, 0xfe, 0xce, 0xf5, 0xe4, 0xb4, 0x8e, - 0x48, 0xeb, 0xa3, 0xf3, 0xaa, 0x47, 0xb1, 0xe4, 0x2a, 0x54, 0x2b, 0x9d, - 0x55, 0x10, 0x2a, 0xf1, 0xc9, 0xd3, 0x32, 0x13, 0x3b, 0x90, 0xa1, 0x24, - 0xc4, 0xab, 0x33, 0xec, 0x22, 0x9c, 0x83, 0xf2, 0x11, 0x29, 0xd1, 0x47, - 0xa1, 0x43, 0x7f, 0xb7, 0x63, 0x3f, 0x7e, 0x68, 0xeb, 0xfd, 0xfb, 0x13, - 0x4a, 0x07, 0xc7, 0x53, 0x09, 0xaa, 0xc4, 0x3a, 0xf8, 0x6b, 0x79, 0x33, - 0x73, 0xaf, 0x9a, 0xee, 0xd3, 0x45, 0xe9, 0x7f, 0xe4, 0xf7, 0x45, 0xe5, - 0xfb, 0xfe, 0x75, 0x70, 0xfa, 0xd6, 0x5b, 0x79, 0x69, 0xe3, 0xaf, 0xf9, - 0xfd, 0x28, 0x53, 0xc9, 0x39, 0xd4, 0xb3, 0xd4, 0x11, 0xbb, 0xf6, 0x2f, - 0xae, 0x13, 0xa8, 0x29, 0xa1, 0xe4, 0x21, 0xbe, 0xbb, 0x6d, 0x10, 0xdf, - 0xff, 0xf2, 0x6c, 0xc1, 0x60, 0x38, 0x1e, 0xe2, 0xd6, 0xf2, 0xc1, 0x3a, - 0x98, 0x45, 0x66, 0x23, 0xd4, 0x36, 0xc7, 0xf3, 0xc2, 0xfe, 0x50, 0x98, - 0xc9, 0xd4, 0xe6, 0xc2, 0x59, 0x25, 0x22, 0x4d, 0x18, 0x3f, 0x21, 0x84, - 0xb8, 0x54, 0x74, 0x8f, 0xf8, 0xd3, 0x46, 0x31, 0x9d, 0x21, 0x82, 0x74, - 0xed, 0x99, 0x44, 0xb7, 0x03, 0xa7, 0x5f, 0xfc, 0x08, 0x98, 0x73, 0x63, - 0xad, 0x68, 0x75, 0xf6, 0x75, 0xfc, 0x75, 0xfe, 0xc4, 0xe7, 0xff, 0x83, - 0x47, 0x59, 0x50, 0xa2, 0x26, 0x05, 0x13, 0x44, 0x17, 0xde, 0x8d, 0xe7, - 0x3a, 0xff, 0xbd, 0xac, 0xde, 0x5d, 0x02, 0x87, 0x52, 0x1e, 0xf0, 0x91, - 0xdf, 0x46, 0xc8, 0x91, 0xd7, 0xee, 0x35, 0xdd, 0xa6, 0x88, 0x8e, 0xff, - 0xfb, 0xa0, 0xd6, 0xb1, 0x63, 0x9b, 0x3e, 0x42, 0xb0, 0x75, 0xff, 0x44, - 0xfc, 0xcf, 0x79, 0x3c, 0x75, 0xe1, 0x8d, 0xce, 0xa9, 0x1e, 0x98, 0x4e, - 0x2f, 0xfb, 0x39, 0x9a, 0xc7, 0x19, 0xce, 0xbd, 0x81, 0x59, 0xd7, 0xff, - 0xfb, 0xae, 0x9e, 0x8e, 0x8e, 0x7b, 0xa9, 0xdc, 0x46, 0x4e, 0xbf, 0xff, - 0xfd, 0xef, 0x22, 0xf8, 0x99, 0xb8, 0x83, 0xd1, 0xdf, 0x9b, 0x13, 0xd3, - 0x41, 0xd5, 0x08, 0xd8, 0xc5, 0xdb, 0xfc, 0xeb, 0xce, 0x4a, 0x16, 0x75, - 0xd3, 0xac, 0xab, 0x99, 0x64, 0xab, 0xff, 0x30, 0xde, 0xa4, 0xdd, 0x89, - 0xd8, 0xfc, 0xd7, 0xb2, 0x2f, 0x7d, 0xb2, 0x3d, 0x07, 0x54, 0x8f, 0xf5, - 0x16, 0xef, 0xec, 0x75, 0xe6, 0xfe, 0x3a, 0xff, 0x3b, 0x1a, 0x4e, 0x3f, - 0xe7, 0x59, 0x5c, 0xeb, 0xfe, 0x8c, 0xde, 0x1e, 0x4f, 0x23, 0xa9, 0x59, - 0x3c, 0x90, 0x89, 0xdf, 0xca, 0xe3, 0x9d, 0x7f, 0x1d, 0x7f, 0x42, 0x98, - 0x28, 0xa1, 0xd7, 0xf6, 0x7b, 0x6b, 0xd9, 0xd3, 0xab, 0x11, 0x12, 0x25, - 0xda, 0x2c, 0xbf, 0xff, 0x9a, 0xc7, 0x1c, 0x53, 0xcc, 0x72, 0x3c, 0x2f, - 0xf9, 0xd4, 0xad, 0xaf, 0x58, 0x2a, 0xa1, 0x5d, 0x10, 0x98, 0x91, 0x06, - 0x11, 0x34, 0xcf, 0x78, 0x55, 0x21, 0x14, 0xc6, 0xdc, 0x87, 0x9f, 0x48, - 0x5e, 0x1b, 0xbf, 0x90, 0x89, 0x66, 0x9f, 0x3d, 0x0b, 0x0d, 0x85, 0xd7, - 0x6d, 0x74, 0xeb, 0xf7, 0x1a, 0xee, 0xd3, 0x44, 0x5d, 0x7e, 0xf7, 0xff, - 0x46, 0x45, 0x5f, 0xb5, 0xee, 0xc7, 0xe7, 0x5f, 0x9e, 0x78, 0xe0, 0x0e, - 0xb3, 0x13, 0xa3, 0x17, 0x06, 0x5c, 0xcc, 0x05, 0x5b, 0x65, 0x14, 0xc2, - 0xa2, 0x89, 0x47, 0xab, 0x7f, 0xf2, 0xde, 0x4c, 0x67, 0x1a, 0xee, 0xd3, - 0x44, 0xcd, 0x7f, 0x2a, 0xca, 0xd1, 0x51, 0xa8, 0xf1, 0xd7, 0xb7, 0x8d, - 0x1d, 0x79, 0xa8, 0xb3, 0xaf, 0x95, 0x5e, 0x71, 0x3a, 0xed, 0xb5, 0x64, - 0xeb, 0xb0, 0x07, 0x5f, 0xfe, 0xec, 0x2d, 0xfd, 0x9b, 0xfe, 0xbf, 0xbd, - 0x3a, 0xfe, 0xf6, 0x4f, 0x9f, 0xcc, 0x75, 0xfe, 0xf9, 0x82, 0xfc, 0xff, - 0x6c, 0xeb, 0xff, 0xf2, 0xdf, 0xb9, 0xbf, 0xfd, 0x65, 0xfb, 0x37, 0x40, - 0x75, 0x05, 0x12, 0x18, 0x6f, 0x76, 0xb0, 0xeb, 0xb6, 0xbc, 0x75, 0x95, - 0x27, 0x5b, 0xf8, 0x35, 0xa0, 0x19, 0xbf, 0xff, 0xf2, 0x0c, 0x34, 0x61, - 0x7f, 0x23, 0x9c, 0x4d, 0x9c, 0x77, 0xfc, 0xea, 0x56, 0x55, 0x1b, 0x34, - 0x79, 0x05, 0x66, 0x4d, 0xec, 0x2f, 0xdc, 0x8b, 0xf4, 0x2f, 0x13, 0xdf, - 0xcc, 0xc0, 0x8e, 0x78, 0xeb, 0xe7, 0xea, 0x4c, 0x75, 0xf7, 0x66, 0x80, - 0x9d, 0x58, 0x7d, 0xcd, 0x2b, 0x72, 0x1b, 0xfc, 0xd4, 0xc1, 0x0f, 0x60, - 0xea, 0x3a, 0xfd, 0xd7, 0xf4, 0xbf, 0x3a, 0xff, 0xf7, 0xce, 0xba, 0x7b, - 0xf0, 0x08, 0xbc, 0x8e, 0xac, 0x45, 0x63, 0x4c, 0x10, 0x29, 0x65, 0x17, - 0xff, 0xff, 0xff, 0xff, 0x95, 0x7a, 0xa3, 0x15, 0x7a, 0xa9, 0x5a, 0x2b, - 0x46, 0xaa, 0x61, 0x57, 0x2a, 0xb9, 0x3e, 0xd6, 0x00, 0x2a, 0xd6, 0x36, - 0xf7, 0xfb, 0xd5, 0x54, 0x42, 0xa9, 0x5d, 0x56, 0xf7, 0xcf, 0x9d, 0xdb, - 0x3a, 0xff, 0xfd, 0xfe, 0xf2, 0xe8, 0x23, 0x8c, 0x75, 0x1a, 0xfc, 0x3a, - 0xff, 0xed, 0xd9, 0x8f, 0x05, 0x15, 0xf5, 0x0b, 0x3a, 0xff, 0xff, 0xc8, - 0xb4, 0xe7, 0x41, 0xa9, 0x46, 0xce, 0x40, 0xfb, 0xb9, 0x23, 0xaf, 0xfc, - 0x9e, 0x46, 0xa0, 0x7d, 0x8d, 0x3a, 0xb1, 0x1e, 0x1e, 0x48, 0xda, 0x6c, - 0xbe, 0xf6, 0xde, 0x74, 0xeb, 0xff, 0xfc, 0xe2, 0xd1, 0xc0, 0xf4, 0x1f, - 0x3b, 0x12, 0xe4, 0x4e, 0x75, 0x62, 0x21, 0x40, 0x49, 0x7f, 0xff, 0x9d, - 0x41, 0xcf, 0xc1, 0xaf, 0x92, 0x4e, 0xc3, 0x45, 0xce, 0xbe, 0xf2, 0x75, - 0x0e, 0xbf, 0xe7, 0xe4, 0xbe, 0x63, 0x43, 0x87, 0x52, 0xa9, 0x70, 0x1a, - 0x23, 0x2b, 0xc8, 0xd2, 0x3b, 0x0b, 0x77, 0x22, 0x16, 0x10, 0x10, 0x5b, - 0x87, 0x5f, 0xde, 0xc5, 0xef, 0x8b, 0x3a, 0xdd, 0xc3, 0x7a, 0x82, 0x17, - 0xf8, 0x01, 0x79, 0x69, 0x24, 0x75, 0xff, 0xf8, 0x28, 0x33, 0xe6, 0x91, - 0xfa, 0xc3, 0x2c, 0xb2, 0x55, 0xfd, 0xee, 0xc4, 0xfd, 0x01, 0xd7, 0xf6, - 0xf2, 0xd7, 0xe0, 0x98, 0xeb, 0xfe, 0x9f, 0x3f, 0x08, 0x1f, 0x92, 0x3a, - 0xf3, 0xbb, 0x4d, 0x16, 0x7d, 0xfd, 0xfb, 0x8c, 0x91, 0x67, 0x54, 0xe8, - 0x8d, 0x69, 0xd7, 0xe4, 0xf7, 0xfe, 0x4e, 0xc4, 0x93, 0xd1, 0xed, 0x1d, - 0x7f, 0xfb, 0x9d, 0x7f, 0x99, 0xb0, 0x73, 0x58, 0x27, 0x5f, 0xfd, 0xaf, - 0x24, 0xcc, 0xb8, 0x63, 0x7d, 0x1d, 0x48, 0x89, 0x00, 0x25, 0x5e, 0x65, - 0x96, 0x4a, 0xbf, 0xf3, 0xcb, 0x43, 0x8d, 0x0e, 0x70, 0xa6, 0x0b, 0xfb, - 0xf6, 0xd0, 0x17, 0x81, 0x3a, 0xff, 0x7b, 0xb9, 0xb3, 0xe4, 0x96, 0x75, - 0x61, 0xf0, 0x80, 0xaa, 0xff, 0xdb, 0xc8, 0x41, 0xff, 0xc6, 0xaf, 0xf3, - 0xae, 0x85, 0x0e, 0xa8, 0x3d, 0xa9, 0xd1, 0x2f, 0xf7, 0x50, 0x22, 0xef, - 0x31, 0xd7, 0xf8, 0x3d, 0x03, 0xff, 0xb7, 0x87, 0x54, 0x1f, 0x3a, 0x18, - 0xdf, 0xf2, 0x08, 0x7e, 0x84, 0x1e, 0xd1, 0xd7, 0xa0, 0x54, 0x3a, 0xa4, - 0xba, 0x00, 0x12, 0x56, 0x99, 0x6e, 0xb1, 0x31, 0x77, 0x21, 0x7c, 0xb3, - 0x2e, 0xc3, 0x33, 0xf4, 0x11, 0x85, 0x6e, 0x9e, 0xfd, 0x08, 0x9d, 0x84, - 0x1f, 0x4e, 0xaf, 0xfb, 0x8e, 0xcf, 0x52, 0x39, 0x07, 0x5f, 0xfb, 0x89, - 0xa9, 0x7d, 0xec, 0x0c, 0x1d, 0x7d, 0xc4, 0x85, 0x9d, 0x7f, 0xfe, 0xf2, - 0x80, 0x8c, 0x0f, 0x73, 0x5b, 0xca, 0x3a, 0x75, 0x71, 0x16, 0x8b, 0x3e, - 0x12, 0x0b, 0x9e, 0x47, 0x5f, 0xff, 0xff, 0xc2, 0xec, 0xfb, 0x3a, 0x39, - 0xe0, 0x7e, 0xb7, 0x93, 0x86, 0x05, 0xf8, 0xf2, 0x3a, 0xff, 0x67, 0x7a, - 0x0f, 0x38, 0x9d, 0x7c, 0xb4, 0x9b, 0x47, 0x59, 0x02, 0x8e, 0xd9, 0x85, - 0x79, 0x08, 0x55, 0x98, 0xdf, 0xb9, 0x36, 0xcc, 0x09, 0xd7, 0xfe, 0xc6, - 0x76, 0xb9, 0x9b, 0x42, 0x06, 0x4e, 0xa8, 0x4f, 0x4f, 0xb1, 0x8e, 0x3a, - 0x40, 0x95, 0x5f, 0xff, 0xff, 0x7f, 0xac, 0xc1, 0x53, 0xef, 0x06, 0x33, - 0xac, 0x68, 0x72, 0x75, 0xe2, 0xce, 0xbf, 0x7d, 0x81, 0xfa, 0xb3, 0xab, - 0x11, 0x53, 0xe7, 0xfb, 0xf6, 0xc7, 0xec, 0x7d, 0x3a, 0xb0, 0xf3, 0x10, - 0x8a, 0xf6, 0xa2, 0x73, 0xaf, 0xfa, 0x31, 0xbd, 0x4d, 0x8f, 0xc3, 0xae, - 0xce, 0x9d, 0x42, 0x79, 0xbb, 0x67, 0x15, 0x24, 0x56, 0xe8, 0x83, 0xcd, - 0x37, 0xba, 0x06, 0x4e, 0xbd, 0xf8, 0x1a, 0x75, 0xef, 0x67, 0xd3, 0xaf, - 0xe8, 0xdf, 0x5f, 0x39, 0x07, 0x5e, 0x08, 0x1a, 0x75, 0xf0, 0x46, 0x24, - 0x75, 0x21, 0xbc, 0x71, 0xca, 0x0a, 0x38, 0x77, 0x1d, 0x41, 0xd5, 0x8e, - 0xf5, 0xae, 0xec, 0x69, 0xd7, 0xf7, 0x13, 0x66, 0x0e, 0x8e, 0xbf, 0xb7, - 0xf6, 0x74, 0x0a, 0xe7, 0x5f, 0xdc, 0xce, 0xf4, 0x1e, 0x3a, 0xfd, 0xd1, - 0x8c, 0xe1, 0x97, 0xf6, 0x72, 0x70, 0x38, 0x4d, 0x10, 0x6b, 0x06, 0x96, - 0xdc, 0x9d, 0x13, 0xb2, 0x52, 0xa8, 0x47, 0xc2, 0x43, 0x3a, 0xfc, 0xed, - 0x45, 0xc1, 0xd7, 0xf4, 0xba, 0x2f, 0xbf, 0x8e, 0xb6, 0x34, 0xf4, 0x84, - 0x96, 0xfd, 0x1e, 0xf8, 0xb6, 0x4e, 0xbf, 0xd2, 0x45, 0xc7, 0x7e, 0x84, - 0xeb, 0xff, 0xd1, 0x83, 0xbf, 0xb3, 0x89, 0x3b, 0xac, 0xeb, 0xf3, 0xb3, - 0xec, 0xee, 0x8f, 0xf3, 0xc6, 0x94, 0xad, 0xaa, 0xbd, 0x81, 0x59, 0x46, - 0x4b, 0x8f, 0x1c, 0x26, 0x18, 0x53, 0x5e, 0xd6, 0x48, 0xeb, 0xf2, 0x6f, - 0x24, 0x13, 0xaf, 0x27, 0x70, 0xeb, 0xa1, 0x78, 0x78, 0x0d, 0x26, 0xbe, - 0x0e, 0xbb, 0x07, 0x5f, 0x87, 0x8c, 0xbc, 0xe7, 0x56, 0x1e, 0x4b, 0x90, - 0xdc, 0x01, 0x3a, 0xa1, 0x30, 0x54, 0x5b, 0xe3, 0xae, 0x88, 0x2f, 0x77, - 0x04, 0xeb, 0xfd, 0x34, 0x4e, 0xb7, 0x9a, 0x0e, 0xbf, 0xfe, 0x75, 0x3d, - 0x1c, 0xff, 0x91, 0xe1, 0x7f, 0xce, 0xbf, 0xff, 0x85, 0xd4, 0xf9, 0xf4, - 0x5f, 0xda, 0x4d, 0xfa, 0x8c, 0x9d, 0x58, 0x8f, 0xd7, 0x1a, 0x13, 0x40, - 0x28, 0x5d, 0xad, 0x87, 0x5f, 0x20, 0xb8, 0x4e, 0xbf, 0xf2, 0xf3, 0xda, - 0xfb, 0xa7, 0x96, 0x1d, 0x7e, 0xd4, 0x73, 0xd0, 0x73, 0x06, 0xfe, 0x82, - 0x89, 0x5d, 0x2f, 0x5f, 0xbe, 0xcc, 0xef, 0xc3, 0xaf, 0xbb, 0x89, 0xb0, - 0xeb, 0xfb, 0x49, 0xcc, 0x07, 0x0e, 0xbf, 0xff, 0xd1, 0x37, 0xc4, 0x68, - 0x39, 0xa0, 0x7c, 0x5a, 0x7b, 0xa8, 0x75, 0x62, 0x75, 0x89, 0x0a, 0xd5, - 0x91, 0xf4, 0xa7, 0xc4, 0x5b, 0x45, 0x97, 0x2d, 0x50, 0x68, 0xbf, 0x2f, - 0xb5, 0xcc, 0xc3, 0xaf, 0xfe, 0x97, 0x81, 0x29, 0x2f, 0xde, 0x85, 0x9d, - 0x7f, 0xbd, 0xa8, 0x9f, 0x34, 0x13, 0xae, 0xee, 0x1d, 0x7f, 0xfd, 0xd8, - 0x0e, 0x37, 0xe6, 0x0e, 0x07, 0xb0, 0x75, 0xff, 0xc9, 0x83, 0x99, 0xaf, - 0x92, 0xd2, 0xce, 0xbf, 0xf3, 0xc6, 0xf2, 0xf9, 0xad, 0xc3, 0x07, 0x50, - 0x53, 0x7f, 0xdc, 0x81, 0x11, 0x55, 0xcc, 0xe6, 0x15, 0xd2, 0x77, 0x90, - 0xef, 0x29, 0x1c, 0x3a, 0xfe, 0x0c, 0x7f, 0xcc, 0xdc, 0xea, 0x60, 0xf2, - 0x96, 0x39, 0x7f, 0xa1, 0x78, 0x9c, 0x9a, 0x47, 0x5c, 0x93, 0x1d, 0x7f, - 0xfb, 0xd1, 0xd1, 0x79, 0xe3, 0x9c, 0x79, 0x1d, 0x7b, 0xc9, 0x39, 0xd7, - 0xef, 0xdf, 0x78, 0x98, 0xeb, 0xc3, 0x0d, 0x3a, 0xff, 0xe0, 0xa4, 0xdd, - 0x8e, 0x6f, 0x28, 0xe1, 0xd7, 0xff, 0x90, 0x5f, 0x7d, 0x6b, 0x38, 0x1e, - 0xe1, 0xd5, 0xf1, 0x34, 0xa4, 0x16, 0x5a, 0x43, 0x8e, 0x09, 0x4e, 0x86, - 0xb6, 0x91, 0x6d, 0x07, 0x5e, 0xea, 0x78, 0xeb, 0x6c, 0xc3, 0x55, 0xf4, - 0x3e, 0xa1, 0x74, 0x44, 0x2b, 0xd9, 0x1d, 0x32, 0x42, 0xcf, 0xa4, 0x6f, - 0x1b, 0xe7, 0xf0, 0x91, 0xbf, 0xec, 0x19, 0x0e, 0x2e, 0x1a, 0x75, 0xfb, - 0xa9, 0xb3, 0x02, 0x75, 0xff, 0x83, 0x03, 0x82, 0x09, 0x66, 0x8e, 0xbf, - 0x3a, 0xd3, 0x6b, 0x0e, 0xbd, 0xe8, 0xdc, 0xea, 0xc3, 0xc4, 0x72, 0x8b, - 0xd0, 0x93, 0x1d, 0x78, 0x55, 0x9d, 0xa3, 0xaf, 0xd9, 0x3a, 0xe3, 0x47, - 0x5f, 0xff, 0xfa, 0x3a, 0x8b, 0x62, 0x69, 0x3f, 0x3e, 0xf5, 0x37, 0xd3, - 0x52, 0x73, 0xa8, 0x29, 0xe9, 0x28, 0x6a, 0x85, 0x13, 0x3f, 0xf4, 0x80, - 0x46, 0xf4, 0x47, 0xb4, 0x4f, 0x7f, 0x3f, 0x23, 0xbf, 0x42, 0x75, 0xf4, - 0x24, 0xf0, 0x75, 0xf3, 0x2f, 0x9a, 0x3a, 0xff, 0xa4, 0xb7, 0x97, 0xb5, - 0x0a, 0x1d, 0x50, 0x7b, 0x4e, 0x43, 0x7b, 0x48, 0x27, 0x5f, 0x85, 0xbf, - 0x35, 0xb9, 0xd5, 0x87, 0x88, 0xe3, 0x54, 0xe9, 0x96, 0x7e, 0x5c, 0x2f, - 0x40, 0x64, 0xba, 0x79, 0x1d, 0x79, 0x3a, 0x87, 0x56, 0xe6, 0xc7, 0xc2, - 0xf7, 0xdf, 0x40, 0xfa, 0x3a, 0xff, 0x48, 0x03, 0x3e, 0x93, 0x73, 0xaf, - 0xbf, 0xff, 0x37, 0x3a, 0xfe, 0xda, 0xf6, 0x38, 0xb4, 0xeb, 0xfe, 0x03, - 0xc8, 0x39, 0x9f, 0xe8, 0xeb, 0xfd, 0xfa, 0x6f, 0xbc, 0xb3, 0xc7, 0x57, - 0x4f, 0xb7, 0x47, 0x17, 0xed, 0xf4, 0xb4, 0x57, 0x3a, 0xff, 0xfd, 0x9a, - 0xf9, 0xd7, 0x4f, 0x7e, 0x01, 0x17, 0x91, 0xd5, 0x08, 0x80, 0x12, 0xbb, - 0xf9, 0xe7, 0xfd, 0xc4, 0x27, 0x54, 0xc9, 0xf1, 0xf0, 0xd3, 0xa4, 0x9e, - 0x84, 0xde, 0xc8, 0x51, 0x6d, 0x90, 0xdf, 0xf7, 0x7e, 0xc3, 0x76, 0xf3, - 0x90, 0x75, 0x42, 0xaa, 0xac, 0x94, 0x0c, 0xed, 0x17, 0x4c, 0x03, 0xac, - 0xb3, 0xab, 0x73, 0x4e, 0xa9, 0x17, 0xbf, 0xfa, 0x39, 0x9b, 0x1e, 0x5f, - 0xe6, 0x04, 0xeb, 0xf9, 0xf7, 0x90, 0xc0, 0x4e, 0xbf, 0xe8, 0xde, 0x48, - 0x2b, 0x7f, 0x1d, 0x4e, 0x7c, 0x62, 0x59, 0x7e, 0x79, 0x64, 0xf0, 0x75, - 0xff, 0xd1, 0xad, 0x62, 0xfc, 0x30, 0xbd, 0x1d, 0x7f, 0xf2, 0x46, 0x85, - 0xe5, 0xf3, 0x59, 0xc3, 0xaf, 0xff, 0xf2, 0x6a, 0x7c, 0x67, 0x04, 0x1b, - 0x50, 0xc6, 0x0b, 0xf0, 0xeb, 0xfd, 0xbc, 0xb5, 0x34, 0xa2, 0x73, 0xa8, - 0x29, 0xa1, 0xb4, 0x98, 0x50, 0xbc, 0x86, 0x06, 0x2b, 0xff, 0xff, 0x75, - 0x37, 0xf6, 0x6f, 0xee, 0x72, 0x3d, 0xff, 0xd1, 0x97, 0x70, 0xeb, 0xe0, - 0x85, 0xc4, 0xeb, 0xff, 0x4a, 0x07, 0xdc, 0x4d, 0x98, 0x13, 0xaf, 0xfc, - 0xfd, 0x6a, 0x3f, 0xcd, 0x3f, 0x4e, 0xbf, 0xff, 0x68, 0x7e, 0x75, 0xd3, - 0xdf, 0x80, 0x45, 0xe4, 0x75, 0xfe, 0xea, 0x29, 0xb6, 0x0e, 0x28, 0x75, - 0xff, 0x43, 0x2b, 0xec, 0x20, 0xce, 0x75, 0xff, 0xf0, 0xe6, 0xb1, 0x70, - 0xdc, 0xf2, 0x73, 0x0e, 0xb6, 0x35, 0x17, 0x7e, 0x38, 0xd8, 0x71, 0x7f, - 0x4f, 0x9c, 0x46, 0xc1, 0xd7, 0xc2, 0x18, 0x59, 0xd7, 0xed, 0x98, 0x20, - 0x73, 0xaf, 0xe7, 0xff, 0x02, 0xf2, 0x3a, 0xa0, 0xfc, 0xf0, 0x81, 0x09, - 0xe9, 0x11, 0x97, 0xd8, 0x4f, 0xd4, 0x2e, 0xdf, 0xce, 0x4c, 0x18, 0x53, - 0xe4, 0x6c, 0x6d, 0x4a, 0x47, 0x09, 0x88, 0x3a, 0x7d, 0xf9, 0xf0, 0xc6, - 0x21, 0xe8, 0xc0, 0xaf, 0xfe, 0xc1, 0xff, 0x33, 0x9a, 0xf4, 0x61, 0xd7, - 0xfd, 0xbf, 0xb3, 0x89, 0x3b, 0xac, 0xeb, 0x67, 0xe7, 0xf4, 0x28, 0x37, - 0x95, 0x32, 0x43, 0xaf, 0xa0, 0x5e, 0x47, 0x5f, 0xb1, 0x5d, 0xc7, 0xff, - 0x86, 0xfb, 0x83, 0xf7, 0xf6, 0xce, 0xa4, 0x73, 0x47, 0x5f, 0xff, 0xa0, - 0x65, 0x9d, 0x45, 0x87, 0x26, 0x8c, 0xe1, 0xd7, 0xcd, 0xea, 0x4c, 0x75, - 0xff, 0xf8, 0x71, 0x45, 0x10, 0x3d, 0x49, 0xba, 0x9b, 0xf8, 0xea, 0x83, - 0xf9, 0xc2, 0x2b, 0xcd, 0x7e, 0x1d, 0x7e, 0xd3, 0x63, 0x8a, 0x1d, 0x5d, - 0x3c, 0x3f, 0xc6, 0xef, 0xf6, 0x4b, 0x10, 0x3d, 0x43, 0xaf, 0xbd, 0x25, - 0xf4, 0xeb, 0xe4, 0x51, 0x19, 0x3a, 0xb0, 0xf1, 0x04, 0x8a, 0xef, 0x98, - 0x75, 0xf6, 0x86, 0x16, 0x75, 0x41, 0xb7, 0xdc, 0x5e, 0xfb, 0x3b, 0x25, - 0x9d, 0x50, 0xac, 0xce, 0x4c, 0xb8, 0x84, 0xa1, 0x77, 0x61, 0x96, 0xec, - 0x62, 0x47, 0xa7, 0x40, 0x2b, 0xed, 0x90, 0xde, 0x0a, 0xda, 0x75, 0xba, - 0x75, 0xda, 0x91, 0xd5, 0xf9, 0xa6, 0x00, 0x85, 0xfd, 0x3c, 0xd2, 0x55, - 0x72, 0x73, 0xaf, 0x3e, 0x70, 0xeb, 0xc3, 0x9e, 0x3a, 0xba, 0x6d, 0x04, - 0x6a, 0xef, 0x09, 0xd7, 0xa3, 0x7d, 0x1d, 0x7c, 0x83, 0x2c, 0x3a, 0xf4, - 0xee, 0x27, 0x50, 0x4f, 0x59, 0x63, 0x9e, 0x1f, 0xbf, 0x67, 0xba, 0x9e, - 0x3a, 0xfc, 0xfb, 0xe6, 0xfe, 0x3a, 0xca, 0x74, 0xf3, 0xbc, 0x4d, 0x72, - 0x70, 0xeb, 0xfa, 0x7f, 0x93, 0xbb, 0xf4, 0xea, 0x56, 0x53, 0xdf, 0x86, - 0x99, 0x10, 0x63, 0x5a, 0x3e, 0xf4, 0xa5, 0xc5, 0x6f, 0xfb, 0x02, 0x14, - 0xdf, 0x37, 0xf1, 0xd7, 0xcd, 0x18, 0x91, 0xd5, 0xd3, 0xd9, 0x73, 0x9b, - 0xfd, 0x19, 0xe8, 0xeb, 0x84, 0xea, 0x9c, 0xf4, 0x42, 0x43, 0x7f, 0xf0, - 0x60, 0x3c, 0x8f, 0x23, 0x50, 0x27, 0x5f, 0x4d, 0x1b, 0x52, 0x3a, 0xfe, - 0xf3, 0x42, 0x15, 0xf0, 0xeb, 0xfe, 0x9b, 0x5b, 0x1c, 0x67, 0x00, 0x4e, - 0xbe, 0xcf, 0x62, 0xce, 0xb8, 0x54, 0x3a, 0xda, 0x73, 0x6c, 0x02, 0x0b, - 0xfb, 0xa0, 0x9e, 0x6e, 0xa1, 0xd7, 0xc2, 0x39, 0xe3, 0xaa, 0x13, 0x9e, - 0x09, 0x1e, 0x21, 0x28, 0x4a, 0x85, 0xd3, 0x39, 0x74, 0x9b, 0xc5, 0xf7, - 0xf7, 0xc9, 0xa3, 0xc3, 0xb0, 0xeb, 0xff, 0xc3, 0x1b, 0x39, 0x1c, 0xc4, - 0xec, 0x04, 0xeb, 0xc2, 0xeb, 0x3a, 0xa4, 0x89, 0x3c, 0x31, 0x44, 0x8b, - 0x30, 0xac, 0xbb, 0xa0, 0xd5, 0x6c, 0xf1, 0x5a, 0x0e, 0x2b, 0x51, 0xb8, - 0x94, 0xb5, 0x3c, 0x3a, 0xe5, 0x0d, 0x90, 0xce, 0x20, 0xe4, 0xed, 0xaa, - 0x90, 0xdc, 0x6c, 0xab, 0xed, 0xe3, 0xe3, 0x48, 0xc4, 0x66, 0x96, 0x0f, - 0xc8, 0xda, 0xd7, 0x19, 0xcf, 0x67, 0xbd, 0xde, 0x52, 0x67, 0xf1, 0xd0, - 0xaa, 0x5b, 0x86, 0x56, 0x66, 0xa7, 0x87, 0x3d, 0x38, 0xbc, 0x08, 0x49, - 0x32, 0x85, 0xb7, 0x28, 0x07, 0xec, 0xaa, 0xed, 0xa8, 0xc1, 0x29, 0x87, - 0x79, 0x27, 0xdb, 0x74, 0xbb, 0x7f, 0xf9, 0x85, 0xbc, 0x98, 0xce, 0x35, - 0xdd, 0xa6, 0x89, 0xb2, 0xff, 0x31, 0x9c, 0x6b, 0xbb, 0x4d, 0x15, 0x6d, - 0xfe, 0x94, 0x81, 0xe1, 0x89, 0x1d, 0x7d, 0x9d, 0x7f, 0x1d, 0x65, 0x46, - 0x1e, 0x90, 0x99, 0x5f, 0xee, 0x63, 0x63, 0xff, 0xab, 0x3a, 0xff, 0xa3, - 0xb1, 0x3f, 0x23, 0x02, 0x75, 0x70, 0xfb, 0x3a, 0x6b, 0x7e, 0x8e, 0x2f, - 0xa1, 0x3a, 0xf0, 0x70, 0x4e, 0xbc, 0xee, 0xd3, 0x45, 0x69, 0x7e, 0x53, - 0x7d, 0x03, 0x73, 0xa9, 0xa7, 0xa4, 0x84, 0xf7, 0xff, 0x93, 0xd2, 0x86, - 0xf5, 0x3d, 0xa7, 0xdc, 0xea, 0xe1, 0xf5, 0x6c, 0x21, 0xbf, 0xfd, 0xd4, - 0x5c, 0x37, 0x17, 0x83, 0xed, 0xb3, 0xaf, 0xff, 0x9b, 0x1c, 0xcf, 0xdd, - 0x6f, 0x28, 0x46, 0x9d, 0x7f, 0xfd, 0x2d, 0x60, 0xc2, 0xdf, 0x3d, 0xe8, - 0x59, 0xd7, 0x7b, 0xd0, 0x89, 0x97, 0x4d, 0xbf, 0xff, 0xfd, 0x1b, 0x13, - 0xda, 0xc5, 0x1b, 0xd4, 0xf6, 0x4c, 0x30, 0xb9, 0xf1, 0x93, 0xaf, 0xf4, - 0x79, 0xfb, 0xf0, 0x30, 0x75, 0xf4, 0xbc, 0x93, 0x9d, 0x7e, 0xfb, 0xe1, - 0x8f, 0xce, 0xad, 0xcf, 0x2f, 0x61, 0x15, 0xfe, 0x79, 0x79, 0x27, 0xea, - 0x1d, 0x50, 0x7a, 0xe8, 0x4b, 0x7e, 0xce, 0xa6, 0x2c, 0xeb, 0xff, 0x85, - 0xd1, 0xbd, 0x70, 0x4f, 0xc4, 0x3a, 0xa7, 0x3e, 0x7e, 0x92, 0xdf, 0xe9, - 0x47, 0x27, 0x8e, 0x4e, 0x75, 0xec, 0xe7, 0xe7, 0x5f, 0xa6, 0xc0, 0xad, - 0x5c, 0xeb, 0xf8, 0x61, 0x9d, 0xe5, 0xa3, 0xa9, 0x0f, 0xd6, 0x61, 0xcd, - 0xa2, 0xba, 0x84, 0x6d, 0xe4, 0x2a, 0x6f, 0xff, 0xff, 0xec, 0x46, 0xe7, - 0xa0, 0x7d, 0xaf, 0x90, 0x81, 0xc5, 0xfc, 0xe4, 0x24, 0x9f, 0x47, 0x5f, - 0xd9, 0xe7, 0x1f, 0xc0, 0x75, 0xfd, 0xdf, 0x89, 0x3b, 0x89, 0xd5, 0x23, - 0xda, 0xc2, 0xcb, 0x30, 0xaa, 0x5e, 0xe5, 0x88, 0x4b, 0x4e, 0x44, 0x12, - 0x7c, 0x86, 0xb3, 0x49, 0x12, 0x1c, 0x7c, 0x2d, 0x5b, 0xd7, 0x61, 0xaa, - 0xf0, 0x87, 0x18, 0x7f, 0x68, 0x9b, 0xd0, 0xe1, 0xbf, 0xcc, 0x67, 0x1a, - 0xee, 0xd3, 0x45, 0x81, 0x7e, 0xe3, 0x5d, 0xda, 0x68, 0x9d, 0x6f, 0xff, - 0xf7, 0x62, 0x70, 0xe2, 0xd8, 0xd6, 0xb3, 0xa9, 0xa0, 0x4e, 0x75, 0xf9, - 0x85, 0xbc, 0x98, 0xc4, 0x4b, 0x4c, 0x67, 0x7f, 0xa5, 0xa6, 0x14, 0x52, - 0x16, 0x75, 0xfb, 0x8d, 0x77, 0x69, 0xa2, 0xd9, 0xbf, 0xff, 0xcf, 0x26, - 0x35, 0x09, 0x81, 0x4c, 0xd6, 0x78, 0x60, 0xeb, 0xff, 0x7f, 0x1a, 0x63, - 0xa8, 0xd7, 0xe1, 0xd7, 0xfd, 0x12, 0x8e, 0x4f, 0x1c, 0x9c, 0xeb, 0x31, - 0x89, 0x83, 0xac, 0xcd, 0xd7, 0x04, 0xfe, 0xff, 0xfc, 0xff, 0xfe, 0x0d, - 0x31, 0x9c, 0x7d, 0x75, 0xe4, 0x75, 0xf3, 0x5d, 0xda, 0x68, 0xb9, 0xac, - 0xb3, 0xab, 0x86, 0xf5, 0x92, 0xdb, 0xfd, 0xc1, 0xcd, 0xff, 0x49, 0x1d, - 0x74, 0xcb, 0x3a, 0x8e, 0xb3, 0x18, 0x7e, 0xc8, 0x44, 0xc9, 0x9e, 0xd8, - 0xbd, 0xfb, 0x8d, 0x77, 0x69, 0xa2, 0xef, 0xbf, 0xd2, 0x63, 0x5c, 0xe2, - 0x32, 0x75, 0x98, 0xc3, 0xe8, 0x73, 0x3b, 0xe6, 0x14, 0x0f, 0xe7, 0x54, - 0x3e, 0x52, 0x36, 0x5b, 0xcb, 0xf6, 0x9a, 0xee, 0xae, 0x93, 0xee, 0xdc, - 0x87, 0x62, 0xe1, 0xaa, 0xe8, 0x5f, 0xc6, 0x7a, 0x28, 0x5a, 0x8c, 0x2b, - 0xd0, 0xad, 0xfa, 0x4f, 0x7f, 0xe6, 0x5c, 0x67, 0xd2, 0x0e, 0xf2, 0x3a, - 0xff, 0xec, 0x9f, 0x19, 0xee, 0x6b, 0x10, 0x4e, 0xb9, 0x18, 0xea, 0x20, - 0x44, 0xfe, 0xfd, 0xad, 0x2d, 0xe4, 0x75, 0xff, 0xff, 0xff, 0xba, 0x9d, - 0x48, 0x1f, 0x0b, 0xa9, 0x9e, 0x07, 0x93, 0xda, 0xea, 0x72, 0x27, 0x7e, - 0x34, 0xeb, 0xb5, 0x07, 0x5f, 0xfd, 0xbb, 0x40, 0xfb, 0xfb, 0x30, 0x54, - 0x3a, 0xf0, 0xbb, 0x10, 0x98, 0xc3, 0x49, 0xf5, 0x09, 0x7f, 0x0a, 0xde, - 0x03, 0xac, 0xeb, 0xf6, 0x6d, 0x7a, 0x14, 0x3a, 0xdb, 0x47, 0x54, 0xe6, - 0xf7, 0x0a, 0xab, 0x87, 0xf2, 0x2b, 0x17, 0xfe, 0xd3, 0xa9, 0xd4, 0x81, - 0x04, 0x1d, 0x7f, 0xee, 0xbf, 0x9f, 0xbb, 0xcb, 0x3c, 0x75, 0x61, 0xfd, - 0x21, 0xe5, 0xcf, 0xf9, 0xd7, 0xff, 0xff, 0x85, 0xd9, 0x1c, 0xf7, 0xb2, - 0x78, 0x17, 0x53, 0x4b, 0x8c, 0x10, 0x9d, 0x58, 0x88, 0xae, 0x0b, 0x5f, - 0xee, 0xe0, 0x53, 0x67, 0x30, 0xeb, 0xce, 0xed, 0x34, 0x4a, 0xf7, 0xf9, - 0x47, 0x1f, 0xfd, 0x9d, 0x3a, 0x9a, 0x7b, 0x48, 0x4f, 0x7f, 0xfb, 0xdd, - 0xc9, 0x37, 0xa8, 0x18, 0x1f, 0x1d, 0x52, 0x47, 0xb7, 0x21, 0x1a, 0x24, - 0x37, 0x4a, 0x73, 0xaf, 0xfc, 0x2e, 0xc8, 0x7b, 0x13, 0xe3, 0x27, 0x5f, - 0xff, 0xb1, 0x3f, 0xc5, 0xa7, 0xb5, 0x0b, 0x7d, 0xfc, 0x75, 0xff, 0x42, - 0xfd, 0x93, 0x49, 0x3c, 0x75, 0x49, 0x11, 0x9e, 0x54, 0xbe, 0x03, 0xf2, - 0x47, 0x5f, 0xf4, 0x34, 0x62, 0x7f, 0xdf, 0xc7, 0x5f, 0xff, 0xe4, 0xf3, - 0xad, 0xc7, 0xfe, 0xb2, 0xe3, 0x3b, 0x52, 0x73, 0xa8, 0x28, 0xba, 0x42, - 0x17, 0x38, 0xbf, 0xe0, 0x7e, 0xb7, 0x96, 0xb8, 0x13, 0xaf, 0xff, 0xf6, - 0x20, 0xfb, 0x07, 0xe0, 0xb8, 0x60, 0x67, 0x8e, 0x1d, 0x6c, 0xf2, 0x25, - 0xf6, 0x1d, 0x5f, 0xf6, 0xff, 0xe7, 0x33, 0x3d, 0xa3, 0xa8, 0x2a, 0xb4, - 0x32, 0x19, 0x7d, 0x86, 0xe8, 0xc3, 0x17, 0xe9, 0x55, 0xff, 0xbc, 0xf2, - 0xd7, 0x63, 0x9f, 0x42, 0x75, 0xff, 0xde, 0x4d, 0x89, 0xe9, 0xa5, 0x03, - 0xe3, 0xaf, 0xff, 0x3e, 0x4b, 0xb8, 0x83, 0x9f, 0xed, 0xe1, 0xd7, 0x9e, - 0x4c, 0x42, 0xf5, 0x0c, 0xa1, 0x36, 0x18, 0x55, 0x64, 0x63, 0x0b, 0x34, - 0xd4, 0xae, 0x7f, 0x2d, 0xfd, 0x40, 0xda, 0x45, 0xbf, 0xfd, 0x9d, 0x60, - 0x70, 0x28, 0x3e, 0xce, 0x9d, 0x7b, 0xd0, 0x12, 0xaf, 0xff, 0x75, 0xd3, - 0xd1, 0x24, 0xe4, 0xe0, 0xfc, 0xab, 0xfc, 0xed, 0x60, 0x3c, 0x54, 0xb1, - 0x07, 0xcb, 0xa1, 0xbb, 0x30, 0x16, 0x52, 0xe3, 0x63, 0x46, 0x5c, 0xfb, - 0x6f, 0xa1, 0x5b, 0xb2, 0x15, 0x97, 0xff, 0x98, 0x5b, 0xc9, 0x8c, 0xe3, - 0x5d, 0xda, 0x68, 0x98, 0x6f, 0xff, 0xec, 0xd8, 0xe1, 0xec, 0x31, 0xee, - 0xe0, 0x41, 0xed, 0x1d, 0x7f, 0xfb, 0x8f, 0xfb, 0x0a, 0x7a, 0x4c, 0xc6, - 0xa4, 0x75, 0xd8, 0xc0, 0xa2, 0xaf, 0xea, 0xed, 0xff, 0xca, 0x8c, 0xde, - 0x40, 0x7f, 0x0c, 0x48, 0xeb, 0xf6, 0x2f, 0xe6, 0xea, 0xe7, 0x5f, 0xd0, - 0xbc, 0xfe, 0x36, 0x1d, 0x41, 0x3d, 0xbe, 0x96, 0xdf, 0xee, 0x63, 0x63, - 0xff, 0xab, 0x3a, 0xfd, 0xd8, 0x0a, 0x28, 0x75, 0x21, 0xff, 0x70, 0x8b, - 0x68, 0xd6, 0xff, 0x43, 0xcf, 0xe5, 0x1f, 0x87, 0x5f, 0x9f, 0x92, 0x75, - 0x9d, 0x42, 0x7b, 0x20, 0x33, 0xbf, 0xff, 0x27, 0x3a, 0xff, 0x03, 0x92, - 0xec, 0x6c, 0x0c, 0x1d, 0x7f, 0xcc, 0xfd, 0xec, 0x37, 0xa9, 0x31, 0xd7, - 0xc0, 0x5e, 0x04, 0xeb, 0x66, 0xe7, 0xbb, 0xb4, 0x79, 0x5d, 0x46, 0xf8, - 0xc2, 0xd2, 0xfe, 0x5c, 0x60, 0xfb, 0x6c, 0xeb, 0x68, 0xeb, 0xf4, 0x60, - 0xfb, 0x6c, 0xeb, 0xfb, 0xa9, 0xed, 0x3e, 0xff, 0x0f, 0x9a, 0x62, 0xe5, - 0x88, 0x5f, 0xe9, 0x7a, 0x17, 0xb3, 0xf9, 0x1d, 0x7f, 0xff, 0x99, 0xda, - 0xf6, 0x77, 0xe0, 0xe4, 0xe9, 0x83, 0xbc, 0xb4, 0x75, 0xf9, 0x9f, 0x67, - 0x5a, 0x75, 0x87, 0x11, 0x1c, 0xec, 0xd7, 0xff, 0xbc, 0x2f, 0xff, 0x71, - 0x02, 0x0f, 0x68, 0xeb, 0xfe, 0x89, 0xfe, 0xcb, 0xa0, 0x79, 0xce, 0xa8, - 0x44, 0x2f, 0x12, 0x6f, 0xfe, 0xcd, 0xe5, 0xf3, 0xae, 0xd8, 0x10, 0x9d, - 0x7f, 0x6c, 0xfb, 0xe1, 0x8f, 0xce, 0xbf, 0xfd, 0x1e, 0xfe, 0x25, 0x9b, - 0xfa, 0x70, 0x32, 0x75, 0x41, 0xff, 0x21, 0x8d, 0xfc, 0xff, 0xf3, 0x89, - 0xc3, 0xaf, 0x7b, 0xe6, 0x1d, 0x5f, 0x9e, 0x57, 0xd2, 0xdb, 0xfb, 0x48, - 0xa2, 0xdf, 0xc7, 0x5f, 0xff, 0xfb, 0x99, 0xb2, 0x07, 0xdf, 0x3e, 0x8c, - 0x75, 0xd3, 0xd1, 0xed, 0x1d, 0x7f, 0x0e, 0x6b, 0xe3, 0x55, 0x47, 0x56, - 0xe8, 0xcd, 0xe1, 0x6e, 0xc6, 0xeb, 0xef, 0x9b, 0x36, 0xa7, 0x3a, 0xb0, - 0xf7, 0x54, 0x33, 0xb2, 0xb9, 0xd7, 0x7b, 0x0e, 0xbf, 0xfc, 0xa9, 0x18, - 0x5b, 0xa7, 0x5f, 0xdd, 0x83, 0xaa, 0x0f, 0x7c, 0x02, 0xb7, 0xfb, 0xa9, - 0x33, 0xb7, 0x52, 0x3a, 0xff, 0x40, 0xf9, 0xd6, 0x9e, 0x3a, 0xff, 0xb1, - 0x31, 0x63, 0x93, 0xb9, 0xd7, 0xe8, 0xf6, 0xbf, 0x01, 0xd4, 0xac, 0xa6, - 0xa7, 0x8e, 0x4d, 0x21, 0xe9, 0x98, 0x98, 0x78, 0xd6, 0xff, 0xfd, 0xd1, - 0xcf, 0x75, 0x33, 0x7f, 0x66, 0xc8, 0xd1, 0xd7, 0xff, 0x38, 0xf6, 0x10, - 0x29, 0xac, 0x91, 0xd7, 0xa3, 0xff, 0xa7, 0x56, 0x22, 0xcd, 0xd5, 0x45, - 0x02, 0xf7, 0xd0, 0xe1, 0xd7, 0x95, 0x3a, 0x55, 0x1d, 0x4e, 0x78, 0x3a, - 0x1d, 0xbf, 0xc2, 0xec, 0xc7, 0xb2, 0x73, 0xac, 0xc2, 0xa9, 0x95, 0xbb, - 0x11, 0x90, 0x06, 0x11, 0x59, 0x18, 0x03, 0x61, 0x1b, 0xba, 0xac, 0xd0, - 0xc4, 0xe4, 0x2a, 0xd6, 0x45, 0xd8, 0x61, 0xfe, 0xd4, 0x31, 0xa7, 0xea, - 0x37, 0x5f, 0x46, 0x1c, 0x06, 0xed, 0xb2, 0x1b, 0xff, 0xee, 0x26, 0xf2, - 0xd2, 0x7b, 0xb1, 0xcf, 0x41, 0xd7, 0xee, 0x35, 0xdd, 0xa6, 0x8a, 0xba, - 0xf7, 0x21, 0x67, 0x5f, 0xf4, 0x98, 0xce, 0x35, 0xdd, 0xa6, 0x88, 0xf2, - 0xff, 0xa2, 0x51, 0xc9, 0xe3, 0x93, 0x9d, 0x7f, 0xe8, 0xf2, 0x01, 0x53, - 0x92, 0x9e, 0x63, 0xac, 0xc0, 0x53, 0x5e, 0xc4, 0xfe, 0x19, 0xb8, 0xd8, - 0xa2, 0xe8, 0xe6, 0xfd, 0xc6, 0xbb, 0xb4, 0xd1, 0x60, 0xde, 0x52, 0x27, - 0x3a, 0xff, 0xfe, 0x10, 0x3c, 0xeb, 0xcd, 0xb0, 0x73, 0x39, 0x2f, 0xb2, - 0x3a, 0xfd, 0x83, 0x9e, 0xd1, 0xd7, 0xfb, 0x8e, 0xbf, 0xbc, 0x7d, 0xce, - 0xb3, 0x18, 0x98, 0x52, 0x86, 0x6d, 0x1d, 0x76, 0x0f, 0xa4, 0xb7, 0xf9, - 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0xb2, 0xaf, 0xdc, 0x6b, 0xbb, 0x4d, 0x16, - 0x9d, 0xff, 0x38, 0x7a, 0xf3, 0x75, 0x16, 0x75, 0x98, 0xc3, 0xeb, 0x59, - 0x9d, 0xf9, 0x5a, 0x2a, 0xf5, 0x65, 0x59, 0x56, 0xce, 0xbf, 0xe5, 0x57, - 0x51, 0x90, 0xbb, 0xb4, 0xeb, 0xf2, 0xb4, 0x54, 0x6b, 0x20, 0xeb, 0xfd, - 0xf5, 0x79, 0xed, 0x26, 0x8e, 0xb2, 0x1d, 0x4a, 0xa3, 0xc3, 0xdb, 0x34, - 0xbf, 0xff, 0x93, 0xae, 0x3e, 0x96, 0x73, 0x20, 0x47, 0x3c, 0x75, 0xfb, - 0x63, 0x87, 0x16, 0x75, 0xf2, 0xe3, 0x7d, 0x1d, 0x52, 0x44, 0xfe, 0x2a, - 0xcc, 0x51, 0x7e, 0xf9, 0xce, 0x03, 0xa7, 0x5f, 0x91, 0x48, 0x16, 0x9d, - 0x6c, 0xd1, 0xe8, 0x78, 0xaa, 0xff, 0xf8, 0x5b, 0xd4, 0xea, 0x72, 0x26, - 0x67, 0x3a, 0x75, 0xff, 0x96, 0xb7, 0x96, 0xd8, 0x3a, 0x9c, 0x3a, 0xfc, - 0xfa, 0xf4, 0x04, 0xea, 0x83, 0xe7, 0x02, 0x0d, 0x42, 0x35, 0xfb, 0x0b, - 0x6b, 0xe8, 0xfb, 0x1d, 0x3a, 0xf9, 0xae, 0xed, 0x34, 0x5b, 0x97, 0xfe, - 0xce, 0x60, 0xfc, 0xee, 0x6e, 0xc9, 0xd7, 0xe1, 0xfd, 0xf7, 0xd1, 0xd5, - 0x07, 0xd0, 0xe8, 0x15, 0xba, 0x35, 0xf8, 0x45, 0xa8, 0x4a, 0xdf, 0xe7, - 0x1f, 0xe6, 0x18, 0x59, 0xd7, 0x96, 0x28, 0x75, 0x84, 0xeb, 0xfe, 0xe8, - 0x1f, 0x59, 0x82, 0xa1, 0xd7, 0xed, 0x3e, 0xee, 0x13, 0xac, 0x81, 0x3d, - 0xef, 0x1b, 0xd4, 0x22, 0xbb, 0x06, 0xba, 0xdb, 0x7f, 0xd0, 0xe3, 0xdc, - 0xc1, 0x69, 0xd7, 0xfb, 0xde, 0x49, 0xd7, 0x02, 0x75, 0x48, 0xf9, 0xb0, - 0xd2, 0xff, 0xa0, 0x40, 0xb8, 0xd7, 0x90, 0xeb, 0xe0, 0xc6, 0x70, 0xeb, - 0xf7, 0xcd, 0xf4, 0x8a, 0x1d, 0x67, 0x9c, 0xf2, 0xf7, 0x20, 0xbf, 0xfa, - 0x59, 0xd4, 0xe0, 0x7b, 0x02, 0xd3, 0xaf, 0xf6, 0xf2, 0x81, 0xf6, 0x7e, - 0x75, 0xf6, 0xbf, 0x4f, 0x1d, 0x4e, 0x8c, 0x0d, 0x14, 0x81, 0x0b, 0xe9, - 0x9d, 0xff, 0xde, 0x4f, 0xe2, 0x41, 0xec, 0x0b, 0x4e, 0xa3, 0xaf, 0x01, - 0xfc, 0x75, 0xc0, 0x83, 0xaa, 0x46, 0xc3, 0xc3, 0x74, 0x75, 0xf6, 0xed, - 0x4e, 0x1d, 0x7a, 0x16, 0xc6, 0x22, 0x1f, 0x73, 0xa5, 0x90, 0xf8, 0x2a, - 0xa1, 0x31, 0x94, 0x86, 0x55, 0xe1, 0xf6, 0xd9, 0xd7, 0xfd, 0x26, 0x33, - 0x8d, 0x77, 0x69, 0xa2, 0x87, 0xa4, 0x3e, 0x37, 0x1e, 0xbf, 0x7f, 0x0d, - 0xc5, 0x9d, 0x7d, 0x13, 0x60, 0x4e, 0xae, 0x1e, 0x46, 0x89, 0xef, 0xfb, - 0x20, 0x3d, 0x8d, 0xa8, 0x98, 0xeb, 0xfd, 0xfa, 0x77, 0xb9, 0xfb, 0x9d, - 0x4b, 0x3e, 0xdf, 0xce, 0xaa, 0x11, 0x64, 0xf0, 0x8f, 0xbf, 0xf3, 0x86, - 0x03, 0xd4, 0x14, 0x59, 0xd7, 0xff, 0x6a, 0x06, 0x6c, 0x1f, 0xdf, 0xd8, - 0x75, 0xfe, 0xd0, 0x1b, 0x9e, 0x18, 0x3a, 0x96, 0x8a, 0xee, 0x9d, 0xf9, - 0x0a, 0xff, 0xe0, 0x4b, 0xaf, 0xcd, 0xfd, 0x09, 0x39, 0xd7, 0xfd, 0x12, - 0x8e, 0x4f, 0x1c, 0x9c, 0xeb, 0xf2, 0x7b, 0x4e, 0x87, 0x5f, 0xf7, 0x3f, - 0xe3, 0x8f, 0xb3, 0xf3, 0xab, 0xf3, 0xde, 0x01, 0x2d, 0xef, 0xbc, 0x91, - 0xd7, 0xf7, 0xdf, 0x02, 0x32, 0x73, 0xaa, 0x47, 0x9b, 0x30, 0xf5, 0xff, - 0xcd, 0x18, 0xf0, 0xe6, 0xcc, 0xe4, 0x8e, 0xbf, 0xe0, 0x0a, 0x9f, 0x7b, - 0xd0, 0x68, 0xeb, 0xfc, 0x22, 0xfe, 0xfb, 0x0d, 0x3a, 0xf8, 0x7f, 0x9f, - 0xf3, 0xab, 0x0f, 0x59, 0x0c, 0xaf, 0xf6, 0xbe, 0x7b, 0xe0, 0x70, 0x4e, - 0xb7, 0xe7, 0x59, 0x37, 0x3c, 0x7e, 0x1b, 0x5f, 0x9f, 0x7d, 0x79, 0x0e, - 0xa8, 0x4e, 0xbb, 0x08, 0xd1, 0x0f, 0xb0, 0x92, 0x16, 0x7d, 0x14, 0x5f, - 0x9c, 0x0a, 0x47, 0xd3, 0xaf, 0xca, 0xac, 0xe4, 0x68, 0xea, 0x98, 0xf4, - 0xc4, 0xa6, 0xff, 0x9f, 0x51, 0x36, 0xf2, 0xcd, 0x87, 0x5f, 0xff, 0x83, - 0xd8, 0xfa, 0xc7, 0x85, 0xff, 0xd6, 0xa3, 0xf2, 0xae, 0x0e, 0x1d, 0x7e, - 0x9e, 0x27, 0x7d, 0x1d, 0x58, 0x89, 0x64, 0x59, 0x71, 0x5b, 0xbf, 0x01, - 0xd7, 0xf3, 0xff, 0x30, 0xc0, 0x4e, 0xa8, 0x3c, 0x4e, 0x8b, 0xd9, 0x85, - 0x61, 0xb0, 0x6c, 0x56, 0xd0, 0xd5, 0x79, 0xe2, 0xac, 0xe7, 0x10, 0xc8, - 0x94, 0x20, 0x03, 0x0f, 0xec, 0x87, 0xf2, 0x86, 0xcd, 0x87, 0x06, 0xf0, - 0x94, 0x42, 0x19, 0xa3, 0x41, 0xe4, 0x6a, 0xeb, 0x84, 0x57, 0x63, 0x1a, - 0x78, 0x6a, 0x7e, 0x60, 0x28, 0xba, 0x84, 0xbf, 0xa5, 0x0f, 0x02, 0x15, - 0x9b, 0x08, 0xb6, 0xe1, 0xa3, 0xf5, 0xc6, 0xfe, 0x62, 0x78, 0xe4, 0x96, - 0x75, 0xfe, 0x63, 0x38, 0xd7, 0x76, 0x9a, 0x2f, 0x3a, 0x87, 0x48, 0x51, - 0x26, 0xf0, 0xc6, 0x05, 0x94, 0xb0, 0xdd, 0xe5, 0x40, 0x72, 0x36, 0x65, - 0xa9, 0xf6, 0x15, 0x43, 0x58, 0x4a, 0x6a, 0x3c, 0x5d, 0x85, 0xf7, 0xf9, - 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0xa5, 0xaf, 0xdc, 0x6b, 0xbb, 0x4d, 0x16, - 0x15, 0xff, 0xfa, 0x30, 0x43, 0x1d, 0x8d, 0xfd, 0x82, 0xeb, 0x3a, 0xfe, - 0x07, 0x12, 0x77, 0x59, 0xd6, 0x63, 0x11, 0x62, 0xb3, 0x3d, 0xb5, 0x1b, - 0xfc, 0xc6, 0x71, 0xae, 0xed, 0x34, 0x59, 0x77, 0x71, 0x43, 0xaf, 0x98, - 0x51, 0x56, 0x56, 0x0e, 0xbc, 0xc7, 0xd5, 0x9d, 0x4d, 0x3c, 0xd0, 0x17, - 0x50, 0xa2, 0x1b, 0x4c, 0x96, 0xfc, 0xeb, 0x94, 0x9c, 0xeb, 0x9f, 0x92, - 0x35, 0x38, 0x23, 0x7f, 0xcf, 0xb8, 0xe6, 0xfe, 0x85, 0x0e, 0xbf, 0xd3, - 0xef, 0xa8, 0x0f, 0x90, 0xeb, 0xf4, 0x66, 0xc8, 0xd1, 0xd6, 0x87, 0x3d, - 0xb6, 0x4d, 0x29, 0xd1, 0x76, 0x30, 0x94, 0xbe, 0x79, 0x48, 0x27, 0x5f, - 0xcf, 0xc8, 0xf3, 0xf4, 0xeb, 0xcc, 0xb2, 0xc9, 0x57, 0xfd, 0x12, 0xdf, - 0xdc, 0x8c, 0xdc, 0xa6, 0x0b, 0xfb, 0xfe, 0x03, 0xef, 0x9e, 0x4d, 0xd9, - 0x3a, 0xe8, 0xd1, 0xd4, 0x14, 0xc0, 0xfa, 0x42, 0x29, 0x5a, 0x49, 0xd8, - 0x75, 0x7f, 0x23, 0xeb, 0xfd, 0x00, 0xeb, 0xff, 0xfb, 0xa9, 0xee, 0xe6, - 0x87, 0x16, 0x0d, 0x75, 0xe4, 0x75, 0xfe, 0x89, 0x79, 0xfa, 0xe1, 0x3a, - 0xb1, 0x11, 0x5c, 0x59, 0xb4, 0x8e, 0xb4, 0x8e, 0xb4, 0x8e, 0xa8, 0x36, - 0x0a, 0x08, 0x20, 0x85, 0xff, 0xfb, 0xda, 0x46, 0xe0, 0xf2, 0x07, 0x03, - 0x8a, 0x1d, 0x6d, 0xce, 0xbb, 0x40, 0x3a, 0xb0, 0xfe, 0x74, 0xa5, 0xe1, - 0x1b, 0x92, 0x0e, 0xbf, 0x86, 0x16, 0x31, 0x87, 0x5d, 0x28, 0x3a, 0x82, - 0x7a, 0x53, 0x0a, 0x00, 0xa6, 0xff, 0xff, 0xfb, 0xb1, 0xed, 0x26, 0xb5, - 0x1e, 0xea, 0x47, 0x3f, 0x5b, 0xca, 0x5e, 0x50, 0xeb, 0x93, 0x73, 0xae, - 0x85, 0x9d, 0x7f, 0xff, 0x4a, 0x04, 0x12, 0x94, 0x7b, 0xb8, 0xbf, 0xb1, - 0xf9, 0xd7, 0x35, 0x88, 0x5e, 0x0a, 0x9d, 0x2c, 0x30, 0xe6, 0xc8, 0xca, - 0x5a, 0x99, 0xc8, 0x5b, 0xba, 0x90, 0xc2, 0x9b, 0x50, 0x80, 0xf1, 0x86, - 0xc7, 0xed, 0xb1, 0x6f, 0xa2, 0xb7, 0xff, 0x98, 0x5b, 0xc9, 0x8c, 0xe3, - 0x5d, 0xda, 0x68, 0xa3, 0x2f, 0xdb, 0x23, 0x91, 0xf9, 0xd7, 0xe1, 0x7f, - 0xe3, 0xe9, 0xd7, 0xff, 0x6e, 0xd4, 0xe7, 0x73, 0x06, 0x5a, 0x3a, 0xcc, - 0x42, 0x25, 0x3a, 0x53, 0xe2, 0x8a, 0x93, 0x27, 0xe7, 0x90, 0xf0, 0x59, - 0xcb, 0xcf, 0x67, 0xea, 0x1c, 0x1e, 0x87, 0x5d, 0xff, 0xcc, 0x3c, 0x98, - 0xce, 0x35, 0xdd, 0xa6, 0x88, 0xe6, 0xff, 0xf3, 0x0b, 0x79, 0x31, 0x9c, - 0x6b, 0xbb, 0x4d, 0x13, 0x95, 0xfe, 0x63, 0x38, 0xd7, 0x76, 0x9a, 0x2c, - 0xcb, 0xfe, 0x96, 0x9d, 0x6c, 0x77, 0xdf, 0x9d, 0x7f, 0xca, 0xb8, 0x38, - 0xb8, 0xde, 0x16, 0x75, 0xff, 0x7f, 0xc8, 0xf7, 0x5f, 0x79, 0x1d, 0x7f, - 0xb3, 0x5c, 0xe6, 0x6f, 0xa3, 0xaf, 0xee, 0x37, 0xae, 0x8a, 0x93, 0xae, - 0xdd, 0x67, 0x59, 0x85, 0x61, 0x1e, 0x50, 0x7d, 0x23, 0xa0, 0x19, 0xed, - 0x98, 0x5f, 0xe6, 0x33, 0x8d, 0x77, 0x69, 0xa2, 0xdd, 0xbf, 0x85, 0xd8, - 0xe4, 0xfd, 0x3a, 0xf2, 0x6f, 0xf9, 0xd7, 0xee, 0x35, 0xdd, 0xa6, 0x8a, - 0x42, 0xff, 0xd9, 0xd4, 0xd9, 0xdc, 0xc1, 0x69, 0xd7, 0x9e, 0x4c, 0x61, - 0xf8, 0x68, 0xce, 0xcc, 0x35, 0x1d, 0xdc, 0x2e, 0x5c, 0x23, 0x6f, 0xfe, - 0x61, 0xe4, 0xc6, 0x71, 0xae, 0xed, 0x34, 0x4a, 0x55, 0x3a, 0xe1, 0x34, - 0xca, 0x2b, 0x57, 0x73, 0xff, 0xe3, 0x2d, 0x15, 0x8f, 0x46, 0x5b, 0xb4, - 0x79, 0x7f, 0xa4, 0x83, 0xec, 0x40, 0x9d, 0x7b, 0x40, 0x59, 0xd6, 0x63, - 0x73, 0xcc, 0x43, 0x0b, 0xc2, 0xf2, 0x3a, 0xff, 0xcf, 0x26, 0x33, 0x8d, - 0x77, 0x69, 0xa2, 0x76, 0xba, 0x75, 0x73, 0xaf, 0xff, 0xc8, 0x10, 0x2e, - 0x36, 0x9c, 0x23, 0x03, 0x8d, 0x3a, 0xff, 0xa2, 0x51, 0xc9, 0xe3, 0x93, - 0x9d, 0x66, 0x31, 0x30, 0xb5, 0x8d, 0x75, 0x29, 0xc6, 0x85, 0x52, 0xff, - 0xf9, 0x8f, 0xbb, 0x6e, 0x3f, 0xe7, 0xa0, 0x53, 0xf3, 0xaf, 0xfe, 0x75, - 0xf7, 0x1a, 0xfd, 0x8f, 0xb2, 0x3a, 0xf2, 0x05, 0xce, 0xbf, 0xf8, 0x73, - 0xaf, 0x3e, 0x68, 0x5f, 0x73, 0xae, 0xdb, 0x60, 0x28, 0xa0, 0xea, 0x26, - 0x86, 0xaa, 0x4a, 0xad, 0xd7, 0x19, 0xa6, 0x93, 0xf6, 0xe1, 0xe9, 0x7f, - 0xff, 0x05, 0xfc, 0xc6, 0x6a, 0x07, 0x7f, 0xf5, 0xa8, 0xfc, 0xeb, 0xf7, - 0x1a, 0xee, 0xd3, 0x44, 0x59, 0x7f, 0xe7, 0x93, 0x19, 0xc6, 0xbb, 0xb4, - 0xd1, 0x2e, 0xdf, 0xff, 0xd8, 0x1e, 0xc7, 0xd6, 0x3c, 0x2f, 0xfe, 0xb5, - 0x1f, 0x95, 0x66, 0x31, 0x1b, 0x6b, 0x33, 0xdb, 0x4a, 0xbf, 0xfc, 0xc2, - 0xde, 0x4c, 0x67, 0x1a, 0xee, 0xd3, 0x44, 0xc5, 0x7e, 0xe3, 0x5d, 0xda, - 0x68, 0xaa, 0x6d, 0x87, 0x56, 0x1e, 0x12, 0x86, 0x77, 0xff, 0xff, 0xb8, - 0xfd, 0xde, 0x59, 0xe6, 0x3a, 0xfa, 0xe2, 0x33, 0xee, 0xa7, 0x24, 0x75, - 0x30, 0x89, 0xc7, 0x22, 0xbf, 0xfc, 0xc2, 0xde, 0x4c, 0x67, 0x1a, 0xee, - 0xd3, 0x44, 0xe9, 0x7f, 0x91, 0xf9, 0x12, 0x7d, 0x87, 0x5f, 0xa6, 0x89, - 0xa3, 0x47, 0x5f, 0xcc, 0xe2, 0x6c, 0xc1, 0x3a, 0x90, 0xf5, 0x74, 0x51, - 0x79, 0x3b, 0x07, 0x30, 0x68, 0x6f, 0xfe, 0x06, 0xbd, 0x1b, 0xb0, 0x09, - 0x91, 0x67, 0x52, 0xcf, 0xcb, 0xa5, 0x77, 0xfe, 0x79, 0x31, 0x9c, 0x6b, - 0xbb, 0x4d, 0x13, 0xbd, 0xfb, 0xc0, 0x75, 0xa1, 0x57, 0xfe, 0x18, 0xf6, - 0x6b, 0x33, 0x79, 0x1d, 0x41, 0x4f, 0xa3, 0x23, 0x1a, 0x59, 0x13, 0xa5, - 0x78, 0x9a, 0xfe, 0x86, 0x3f, 0x1c, 0x09, 0xd4, 0xc1, 0xfe, 0x0a, 0x7d, - 0xff, 0xe6, 0x16, 0xf2, 0x63, 0x38, 0xd7, 0x76, 0x9a, 0x28, 0x5b, 0xff, - 0xff, 0xdd, 0x02, 0xd6, 0xf2, 0x61, 0xbd, 0x07, 0xa0, 0x72, 0x75, 0x01, - 0x13, 0x1d, 0x7e, 0x06, 0xfe, 0x46, 0x9d, 0x7e, 0xcf, 0xf1, 0xc4, 0xeb, - 0xd1, 0xfb, 0x13, 0x9e, 0x68, 0x94, 0x52, 0x23, 0xf4, 0x61, 0x91, 0x7f, - 0xf9, 0x85, 0xbc, 0x98, 0xce, 0x35, 0xdd, 0xa6, 0x8a, 0x4a, 0xff, 0xff, - 0x66, 0x98, 0xfb, 0x93, 0x75, 0xd7, 0xee, 0xc7, 0x80, 0xb3, 0xaa, 0x17, - 0xf6, 0xe7, 0x8c, 0xe2, 0x47, 0x2d, 0x8c, 0xd7, 0x84, 0x6b, 0x95, 0x77, - 0xf9, 0x17, 0xa3, 0x54, 0x01, 0x36, 0xda, 0xbd, 0xfe, 0x63, 0x38, 0xd7, - 0x76, 0x9a, 0x22, 0x4b, 0xff, 0xcc, 0x2d, 0xe4, 0xc6, 0x71, 0xae, 0xed, - 0x34, 0x4b, 0xd7, 0xdc, 0x07, 0xb4, 0x75, 0xfb, 0x9f, 0xad, 0x34, 0x75, - 0xe8, 0x1d, 0xce, 0xbf, 0x7b, 0xea, 0xc6, 0x0e, 0xb2, 0x74, 0xf0, 0xc4, - 0x6e, 0xff, 0xf7, 0x76, 0x40, 0xfe, 0xaf, 0x81, 0xce, 0x6e, 0x75, 0xd1, - 0xe3, 0xaf, 0xff, 0x00, 0x29, 0xcf, 0xb3, 0x6d, 0x01, 0xc6, 0x63, 0xaa, - 0x48, 0xda, 0x42, 0x6f, 0xd3, 0xf4, 0x2b, 0x7f, 0xf3, 0xcd, 0xa8, 0xd8, - 0xfd, 0x8d, 0xe6, 0x3a, 0xfd, 0x93, 0xe6, 0x96, 0x75, 0xff, 0xd3, 0x7c, - 0xfa, 0x31, 0xb1, 0xf6, 0x44, 0xc7, 0x51, 0xd7, 0xf4, 0xd2, 0x7f, 0x3e, - 0xc3, 0xaa, 0x11, 0x0b, 0x89, 0x8e, 0x15, 0x77, 0x20, 0xea, 0x0a, 0xad, - 0x94, 0x22, 0x9a, 0x34, 0x5e, 0x1e, 0x8a, 0x3e, 0xc8, 0x56, 0x6d, 0x16, - 0xde, 0x0e, 0x09, 0xd7, 0x07, 0x73, 0xaf, 0xf9, 0x1c, 0x41, 0xe9, 0xa1, - 0x43, 0xaf, 0xff, 0x93, 0x9f, 0x3b, 0x09, 0xed, 0x01, 0xa0, 0x83, 0xaf, - 0x92, 0x7f, 0xd5, 0xce, 0xbe, 0x6b, 0xbb, 0x4d, 0x14, 0xbd, 0xf0, 0xfa, - 0x38, 0x75, 0xff, 0x67, 0x15, 0xf0, 0x39, 0xcd, 0xce, 0xa4, 0x3d, 0xbd, - 0x84, 0x14, 0xa2, 0x64, 0x33, 0x28, 0x70, 0x9b, 0xb0, 0x88, 0xbf, 0x0f, - 0xa7, 0xc6, 0x4e, 0xbf, 0xf4, 0x0c, 0x77, 0xe0, 0x04, 0x0d, 0x3a, 0xf0, - 0x1f, 0x47, 0x5f, 0xa3, 0xf7, 0xdf, 0x47, 0x5e, 0x14, 0xfc, 0xeb, 0xd9, - 0xed, 0x1d, 0x50, 0x6d, 0xb4, 0x37, 0x41, 0x46, 0xbc, 0xc7, 0xdf, 0x8d, - 0xf9, 0x7a, 0xfc, 0xae, 0xe2, 0x1d, 0xa3, 0xaf, 0xfb, 0xfd, 0x72, 0x37, - 0x92, 0x2c, 0xeb, 0xde, 0x7d, 0x87, 0x5f, 0xf3, 0xcf, 0xf2, 0x70, 0x4d, - 0x0a, 0xe7, 0x54, 0x22, 0x5d, 0xce, 0x80, 0x3b, 0x7f, 0xc9, 0xa9, 0x90, - 0x7d, 0x1f, 0x9d, 0x52, 0x3e, 0x65, 0x97, 0x5c, 0xe2, 0x75, 0xff, 0x47, - 0xff, 0x3b, 0x0b, 0x71, 0x3a, 0xdc, 0xdc, 0xf3, 0x76, 0x0a, 0x54, 0x27, - 0x87, 0x91, 0x94, 0xa3, 0x7d, 0xee, 0x42, 0xce, 0xbf, 0xa0, 0x66, 0xf2, - 0x28, 0x75, 0xff, 0x4b, 0x39, 0x36, 0x0c, 0x2c, 0xeb, 0xf7, 0xf0, 0xdc, - 0x59, 0xd4, 0x87, 0xbd, 0xc3, 0x7b, 0xa5, 0x87, 0x5e, 0x8f, 0xf4, 0x75, - 0x41, 0xe9, 0x04, 0x85, 0x91, 0x5b, 0xf7, 0x40, 0xa6, 0x09, 0xd7, 0xfd, - 0x1d, 0xd3, 0xfa, 0x39, 0xb4, 0x75, 0xff, 0x96, 0xe1, 0xfb, 0x34, 0xa0, - 0x77, 0x3a, 0x82, 0x7f, 0x68, 0x75, 0x7d, 0xcf, 0xfe, 0xec, 0x3a, 0xf2, - 0x33, 0xe3, 0xab, 0xa7, 0x87, 0xa2, 0x7a, 0x0a, 0x65, 0x1d, 0x85, 0x17, - 0x99, 0x2f, 0xfb, 0xf4, 0xee, 0x71, 0xe6, 0xd1, 0xd7, 0xff, 0xe8, 0x90, - 0xc4, 0xff, 0x66, 0xd7, 0x73, 0x6b, 0x9f, 0x9d, 0x7f, 0x7c, 0x5e, 0x79, - 0xfc, 0x75, 0x9a, 0x75, 0xdb, 0xeb, 0x0d, 0xf3, 0x97, 0x56, 0xe8, 0xff, - 0x59, 0xcb, 0xc2, 0x6a, 0xff, 0x63, 0x32, 0x4d, 0x01, 0x67, 0x5d, 0xb3, - 0x47, 0x5f, 0xb2, 0x7c, 0xee, 0x8e, 0xa8, 0x37, 0xe2, 0x31, 0x7b, 0x39, - 0xa3, 0xa9, 0xa6, 0xeb, 0x60, 0xfd, 0xff, 0x7f, 0x1f, 0xfd, 0xd9, 0x03, - 0xb4, 0x75, 0x42, 0x61, 0xf9, 0x0a, 0xc4, 0x23, 0xbf, 0xff, 0xfb, 0xb1, - 0xcd, 0xda, 0x9b, 0xfc, 0x51, 0xfe, 0x6b, 0xae, 0xd8, 0x10, 0x9d, 0x7d, - 0xe1, 0x45, 0x9d, 0x7f, 0x86, 0x1c, 0x7d, 0x82, 0x75, 0xfe, 0xeb, 0xcc, - 0x9c, 0x89, 0xce, 0xbb, 0x16, 0x75, 0x05, 0x30, 0xdc, 0x77, 0x59, 0x03, - 0x97, 0x6c, 0x33, 0xbf, 0x6d, 0x22, 0xe3, 0x47, 0x5f, 0x9f, 0x66, 0x73, - 0x47, 0x50, 0x4f, 0x45, 0x65, 0x37, 0xee, 0xb8, 0xa2, 0xce, 0xbe, 0x52, - 0x6d, 0x41, 0xd7, 0xf9, 0xff, 0xd4, 0x76, 0x34, 0x75, 0x42, 0x27, 0x30, - 0x89, 0x09, 0x44, 0x8e, 0xef, 0xda, 0x75, 0xb4, 0x75, 0xc8, 0xa6, 0x8d, - 0x38, 0x05, 0xef, 0x7e, 0xed, 0x3a, 0xff, 0xfc, 0x81, 0xcd, 0x8f, 0xc9, - 0xbe, 0xc9, 0xfc, 0xeb, 0x3a, 0xa0, 0xfd, 0x38, 0x39, 0x66, 0x21, 0x9b, - 0xb7, 0x3b, 0xac, 0x86, 0x82, 0x2f, 0x91, 0xac, 0xee, 0x8a, 0x90, 0xff, - 0x9a, 0x50, 0x17, 0x0d, 0x16, 0x37, 0xd8, 0x6e, 0xbc, 0x6a, 0xff, 0xc6, - 0x6a, 0x31, 0xa2, 0x6a, 0x34, 0x0f, 0x46, 0x71, 0xb6, 0xc1, 0xf6, 0x14, - 0x37, 0xf9, 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0xa7, 0x2f, 0xfc, 0x9c, 0x7d, - 0x77, 0x30, 0x5a, 0x75, 0xf9, 0x7c, 0xe6, 0x68, 0xeb, 0xff, 0xf7, 0x41, - 0xee, 0x47, 0xb5, 0x8d, 0xd4, 0x71, 0xa7, 0x5f, 0xe4, 0x58, 0x63, 0x40, - 0x13, 0xaf, 0xec, 0xf6, 0xf2, 0x86, 0x4e, 0xbf, 0xf9, 0x44, 0xdf, 0x43, - 0x81, 0xeb, 0xb2, 0x75, 0xff, 0xb3, 0xb1, 0xcc, 0x61, 0x96, 0x59, 0x2a, - 0xe4, 0x64, 0xeb, 0xa7, 0x60, 0x29, 0xd9, 0x61, 0xdb, 0x49, 0xfa, 0xaa, - 0x26, 0x3e, 0x2e, 0xdb, 0x45, 0xda, 0x41, 0xbf, 0x71, 0xae, 0xed, 0x34, - 0x57, 0x97, 0xff, 0xf6, 0x07, 0xb1, 0xf5, 0x8f, 0x0b, 0xff, 0xad, 0x47, - 0xe5, 0x59, 0x8c, 0x44, 0x8e, 0xd9, 0x9d, 0xff, 0xcc, 0x3c, 0x98, 0xce, - 0x35, 0xdd, 0xa6, 0x89, 0x1e, 0xf3, 0x71, 0x67, 0x5e, 0x4f, 0xe0, 0xeb, - 0xcd, 0xc5, 0x94, 0xc1, 0x77, 0x7e, 0xe3, 0x5d, 0xda, 0x68, 0x92, 0x2f, - 0xff, 0xe8, 0x4e, 0x26, 0xd4, 0x0c, 0xf1, 0xe4, 0xeb, 0xce, 0x75, 0xd2, - 0x62, 0x11, 0x73, 0x85, 0x7d, 0x33, 0xbf, 0x67, 0x58, 0xc5, 0x9d, 0x66, - 0x21, 0x35, 0x17, 0x87, 0x7f, 0x8e, 0xef, 0xfe, 0x61, 0xe4, 0xc6, 0x71, - 0xae, 0xed, 0x34, 0x49, 0x57, 0xee, 0x35, 0xdd, 0xa6, 0x8b, 0xc6, 0xff, - 0xa4, 0xc6, 0x71, 0xae, 0xed, 0x34, 0x49, 0xb6, 0x63, 0x0f, 0xe1, 0xcc, - 0xee, 0x67, 0xa7, 0x5f, 0x93, 0xfd, 0x60, 0x9d, 0x7f, 0xfc, 0x07, 0xdf, - 0x31, 0x45, 0x1e, 0x59, 0xbf, 0x8e, 0xa9, 0x1f, 0xbe, 0x89, 0xaf, 0x7d, - 0x19, 0xce, 0xbb, 0x9e, 0x3a, 0xf4, 0xc3, 0x39, 0xd6, 0x13, 0xae, 0xfb, - 0xf4, 0xea, 0xfc, 0xd4, 0xfd, 0x0f, 0xbb, 0x6d, 0x88, 0x4d, 0x3b, 0x21, - 0x1d, 0xd2, 0x27, 0x1e, 0xd0, 0xb7, 0xd4, 0x6a, 0x86, 0xe8, 0xfe, 0x73, - 0xf9, 0x56, 0x21, 0x61, 0x8c, 0xf1, 0x23, 0xf1, 0x9a, 0x31, 0x55, 0x96, - 0x76, 0x3a, 0x2f, 0x1d, 0x82, 0x19, 0x3f, 0x63, 0x75, 0xa8, 0x97, 0xf8, - 0x0d, 0x3c, 0xa4, 0x69, 0x4e, 0xbb, 0x86, 0x75, 0x2b, 0x31, 0x1c, 0x84, - 0xa4, 0xe3, 0x73, 0x6f, 0x53, 0x77, 0x7a, 0xcb, 0x8d, 0x29, 0x2f, 0xaa, - 0xf2, 0x88, 0xe6, 0xb6, 0x18, 0xfc, 0xb4, 0x26, 0x4b, 0xcd, 0xb0, 0x8b, - 0xb4, 0xa8, 0xc7, 0xb6, 0x50, 0x5f, 0xcf, 0x9a, 0xaa, 0x63, 0xe3, 0x1a, - 0xca, 0xdb, 0x55, 0xb8, 0x8f, 0xaf, 0x50, 0xe0, 0x16, 0xbf, 0xaf, 0x65, - 0x2b, 0x21, 0x99, 0xc9, 0x7d, 0xb9, 0x70, 0xff, 0x69, 0x05, 0x1b, 0x55, - 0xd7, 0x55, 0x00, + 0x9c, 0x15, 0xbf, 0xd8, 0x11, 0xcf, 0x77, 0x0e, 0xb9, 0x54, 0xd3, 0xc6, + 0x15, 0x7f, 0x4f, 0xf7, 0x6d, 0xc7, 0xf3, 0xaf, 0xec, 0xf7, 0xa3, 0x9a, + 0x3a, 0xfe, 0x71, 0xfe, 0x7f, 0xfc, 0x75, 0x42, 0x23, 0x84, 0xcf, 0x6c, + 0xb2, 0xcc, 0x42, 0xed, 0x84, 0xe7, 0xe1, 0x6b, 0xc8, 0x4c, 0xb5, 0xc7, + 0x77, 0x2e, 0x10, 0x2c, 0x85, 0xd2, 0x86, 0x1c, 0x1a, 0x84, 0xd7, 0x93, + 0xf6, 0x10, 0x32, 0x61, 0xf6, 0x16, 0xb7, 0x96, 0x0e, 0x15, 0x7f, 0xe7, + 0x93, 0x19, 0xc6, 0xbb, 0xb4, 0xd1, 0x31, 0xdf, 0x47, 0x23, 0x68, 0xeb, + 0x30, 0x88, 0x89, 0x58, 0xe7, 0x52, 0xaf, 0xa2, 0x78, 0xe1, 0xd7, 0xec, + 0x89, 0x91, 0x67, 0x52, 0x1e, 0x3f, 0x08, 0x6f, 0xf7, 0x63, 0x93, 0xfd, + 0x07, 0xe7, 0x5c, 0xfa, 0x3a, 0xfb, 0xe7, 0xb3, 0xa7, 0x5a, 0x3a, 0x6e, + 0x34, 0x2b, 0x7a, 0x06, 0x73, 0xaf, 0xff, 0xff, 0xa5, 0xae, 0xe0, 0x19, + 0xd7, 0x71, 0xb9, 0xaf, 0x99, 0xbc, 0xb4, 0x82, 0x87, 0x5e, 0x77, 0x69, + 0xa2, 0xb1, 0xbe, 0x7f, 0xb0, 0xa1, 0xd4, 0xd3, 0xca, 0xe1, 0x3d, 0xff, + 0xb6, 0xf3, 0xc3, 0x80, 0x81, 0xf1, 0xd4, 0xa2, 0x6d, 0x4d, 0x26, 0xdc, + 0x6f, 0x90, 0xc9, 0xf1, 0x15, 0xff, 0xc3, 0xe5, 0x01, 0x03, 0x8d, 0x8e, + 0x1d, 0x7f, 0xb9, 0x3f, 0xb4, 0xfb, 0xb4, 0xea, 0x83, 0xf7, 0x74, 0x2b, + 0xfa, 0x36, 0xbd, 0x9b, 0xcc, 0x75, 0xfc, 0x0d, 0xb6, 0xf5, 0x15, 0x27, + 0x5f, 0xd9, 0xad, 0xe5, 0x1d, 0x3a, 0xe8, 0xd8, 0x75, 0x83, 0xd3, 0xc4, + 0x12, 0xdb, 0xfe, 0x8d, 0xe5, 0x34, 0x9f, 0x93, 0x9d, 0x50, 0x8d, 0xac, + 0x78, 0x42, 0x7b, 0xd1, 0x2f, 0x1d, 0x7f, 0xec, 0x0f, 0x10, 0x13, 0xff, + 0xa9, 0x1d, 0x7c, 0xb7, 0xdf, 0xc7, 0x5f, 0xfd, 0x3c, 0x7b, 0xe7, 0xd6, + 0xfd, 0xda, 0xfb, 0xa3, 0xaf, 0xfb, 0x91, 0xa7, 0xe0, 0xc4, 0x8e, 0xae, + 0x22, 0x1f, 0x62, 0x8d, 0xe9, 0x3c, 0xe7, 0x5e, 0xf9, 0x3a, 0xce, 0xb8, + 0x3e, 0x3a, 0x95, 0x49, 0x8f, 0xe4, 0x2a, 0x77, 0x25, 0x41, 0xc1, 0x1f, + 0xbf, 0xf0, 0xb8, 0x7b, 0x1b, 0x3a, 0xe2, 0x75, 0xff, 0xff, 0x81, 0x3e, + 0x37, 0xe0, 0x83, 0x6b, 0xe6, 0x6f, 0x2c, 0x00, 0xff, 0xa3, 0xaf, 0xf9, + 0xf7, 0x1c, 0x0f, 0x5d, 0x93, 0xa8, 0x28, 0xea, 0x13, 0xdd, 0x3a, 0xdf, + 0xd3, 0xcd, 0x25, 0x57, 0x27, 0x3a, 0xf8, 0x47, 0x3c, 0x75, 0x2b, 0x27, + 0xa9, 0x06, 0xb7, 0xf4, 0xff, 0x76, 0xdc, 0x7f, 0x3a, 0xff, 0xe9, 0xba, + 0xeb, 0xf7, 0x63, 0xc0, 0x59, 0xd7, 0xfc, 0x92, 0x4e, 0x81, 0x6b, 0x43, + 0xaa, 0x11, 0x5f, 0x86, 0x7e, 0x45, 0xbd, 0xd4, 0x62, 0x19, 0x0a, 0xf2, + 0x21, 0xc8, 0xf6, 0x5b, 0x0c, 0x9e, 0x10, 0x76, 0x30, 0xb7, 0x2d, 0x11, + 0xbd, 0x46, 0xbf, 0xe8, 0xcf, 0x36, 0xe1, 0x07, 0xf6, 0x1a, 0xb7, 0x48, + 0x4e, 0xbf, 0xb9, 0xc8, 0x0e, 0x2c, 0xeb, 0xbe, 0xfe, 0x75, 0xee, 0xa2, + 0xce, 0xb4, 0xc7, 0x53, 0x9a, 0xc0, 0x0d, 0xdf, 0x9c, 0x67, 0x06, 0x8e, + 0xbf, 0xe8, 0x0f, 0x70, 0x3c, 0x76, 0x9d, 0x48, 0x8e, 0xff, 0xcb, 0x05, + 0x17, 0x44, 0x1e, 0x27, 0xbd, 0xaf, 0xba, 0x3a, 0xfb, 0x79, 0xe1, 0x43, + 0xa8, 0x27, 0x84, 0x01, 0xeb, 0xbd, 0x07, 0x5f, 0x97, 0x83, 0x12, 0x3a, + 0xf8, 0x1e, 0xcd, 0x1d, 0x7d, 0x1c, 0x71, 0x3a, 0xff, 0x3f, 0x25, 0xfa, + 0x6f, 0xa3, 0xaf, 0xb5, 0xa8, 0xfc, 0xea, 0x84, 0x5d, 0xa1, 0x2f, 0x48, + 0x40, 0x3e, 0xc9, 0xa5, 0xf4, 0xbf, 0x04, 0x8e, 0xbe, 0xe7, 0xd8, 0xfc, + 0xea, 0x83, 0xc7, 0x42, 0x3b, 0xfc, 0x93, 0xba, 0xff, 0xfe, 0x0e, 0xbf, + 0xe4, 0x6f, 0x72, 0x61, 0x80, 0x9d, 0x7d, 0x2f, 0x67, 0xd3, 0xaf, 0x36, + 0x3f, 0x3a, 0xf7, 0x21, 0x67, 0x53, 0x9e, 0xd0, 0x08, 0xd9, 0x1c, 0xbf, + 0x44, 0xff, 0x72, 0x63, 0xaf, 0x40, 0xc8, 0xea, 0x99, 0x35, 0x8e, 0x10, + 0x74, 0xd0, 0x61, 0x23, 0xa2, 0xff, 0x15, 0x5f, 0xfa, 0x33, 0x5f, 0x21, + 0x03, 0xf6, 0x47, 0x5f, 0xc8, 0xce, 0xa7, 0xc6, 0x4e, 0xa1, 0x3e, 0xff, + 0x20, 0x5f, 0xa0, 0x3e, 0xc6, 0x9d, 0x7d, 0xd8, 0x16, 0x9d, 0x52, 0x3e, + 0x7d, 0x10, 0xf8, 0x9a, 0xf9, 0xc5, 0xe6, 0x3a, 0xfc, 0x9e, 0x1c, 0x91, + 0xd7, 0xd0, 0xcc, 0x4c, 0x75, 0xdf, 0x56, 0x75, 0xff, 0x03, 0xe7, 0x85, + 0xff, 0xc1, 0x3a, 0xa7, 0x45, 0xc2, 0x84, 0x08, 0x4b, 0xd2, 0x21, 0x18, + 0xbf, 0xd0, 0xc8, 0x40, 0xfc, 0x91, 0xd7, 0xf2, 0x73, 0x7d, 0x44, 0x8e, + 0xb6, 0xc3, 0xab, 0x87, 0xe5, 0xd3, 0x3d, 0xa2, 0xdb, 0xc2, 0x8a, 0x1d, + 0x7d, 0x81, 0x4d, 0x87, 0x5d, 0x0b, 0xc3, 0x7a, 0xe3, 0x76, 0xd1, 0xd4, + 0x86, 0xe9, 0xca, 0xae, 0xfe, 0x0a, 0xb9, 0x96, 0x4a, 0xa4, 0x35, 0xcc, + 0x8b, 0x5f, 0xe7, 0x90, 0xe7, 0xba, 0x85, 0x30, 0x68, 0x6f, 0x3e, 0xfa, + 0x3a, 0xfb, 0xef, 0x5f, 0xc7, 0x50, 0x4d, 0xff, 0x87, 0x2f, 0x40, 0xcc, + 0x75, 0xc3, 0x07, 0x5a, 0x63, 0xaa, 0x63, 0xc0, 0xe0, 0xdb, 0x8a, 0x5f, + 0xfc, 0xa2, 0x0b, 0x75, 0x0b, 0x7d, 0xfc, 0x75, 0xef, 0xf3, 0x68, 0xea, + 0x50, 0xf8, 0xf8, 0x89, 0x7c, 0xbd, 0x01, 0x67, 0x59, 0x43, 0xad, 0xb6, + 0x75, 0xdc, 0x50, 0xea, 0x83, 0xdd, 0x42, 0x20, 0x08, 0xfd, 0x13, 0xbf, + 0xfe, 0xee, 0x4b, 0x51, 0xe9, 0x62, 0xbb, 0x8f, 0xe7, 0x5f, 0xfa, 0x49, + 0xee, 0xe6, 0xfe, 0x04, 0x1d, 0x76, 0x68, 0xea, 0x83, 0xd3, 0x91, 0xf5, + 0x69, 0x18, 0xbe, 0x85, 0x25, 0xf9, 0x21, 0x70, 0xb3, 0xad, 0x87, 0x52, + 0x1e, 0xe6, 0x8a, 0x36, 0xc9, 0x6a, 0x15, 0x80, 0xe3, 0x0a, 0x42, 0x4b, + 0xb0, 0x80, 0x78, 0xd7, 0x6f, 0x6a, 0x26, 0x3a, 0x8e, 0xb2, 0xce, 0xaf, + 0x17, 0x5b, 0x02, 0xaf, 0xdf, 0xa7, 0x11, 0x43, 0xae, 0x75, 0x0e, 0xa9, + 0x91, 0x2d, 0xd3, 0x6f, 0xc8, 0x84, 0xa2, 0xef, 0x41, 0xd7, 0xe8, 0xee, + 0x6c, 0x73, 0xa9, 0xcd, 0xe7, 0xe2, 0xb7, 0xf2, 0x7b, 0x3a, 0xea, 0x1d, + 0x7f, 0x74, 0x0f, 0x3f, 0x50, 0xeb, 0xcc, 0xb2, 0xc9, 0x57, 0xfc, 0x18, + 0x9f, 0xee, 0x75, 0xf7, 0x29, 0x82, 0xfe, 0xec, 0x9c, 0xea, 0x0a, 0x2b, + 0x5a, 0x98, 0x89, 0x77, 0xa1, 0x68, 0x75, 0x61, 0xe4, 0xb4, 0xbe, 0xf9, + 0x39, 0xb4, 0x13, 0xaf, 0xdd, 0x8d, 0xdd, 0x5c, 0xeb, 0xff, 0xe8, 0xf6, + 0x83, 0x9e, 0x4e, 0x83, 0x37, 0xf1, 0xd5, 0xd3, 0xf9, 0xf1, 0x55, 0xb8, + 0x75, 0xfe, 0xcc, 0x6f, 0xdd, 0x9d, 0xc3, 0xae, 0x06, 0x8e, 0xbf, 0xff, + 0x60, 0x63, 0x37, 0xfb, 0xe4, 0x10, 0x4b, 0x34, 0x75, 0xcb, 0xfc, 0xeb, + 0x9c, 0x4e, 0xae, 0x9a, 0xb7, 0x17, 0xbf, 0x2d, 0x3d, 0xfb, 0x9d, 0x53, + 0xa7, 0xc3, 0x90, 0x9d, 0x57, 0x22, 0x98, 0x41, 0xcd, 0x44, 0x5b, 0xd0, + 0x80, 0x01, 0x05, 0xf7, 0x7c, 0x93, 0x9d, 0x7f, 0x9a, 0x9a, 0x1c, 0xd8, + 0xe7, 0x5f, 0x44, 0xef, 0x23, 0xae, 0xcf, 0x1d, 0x7e, 0xc9, 0xc7, 0x37, + 0x3a, 0xb1, 0x16, 0x3b, 0x91, 0x70, 0xcb, 0xa4, 0x22, 0x2b, 0x7b, 0xb0, + 0x13, 0xae, 0xe6, 0x8e, 0xa3, 0x90, 0xb6, 0xbf, 0xd0, 0x32, 0x75, 0xe0, + 0x4e, 0xbe, 0xf2, 0xd7, 0xc3, 0xaf, 0xfe, 0xfe, 0x05, 0xaf, 0xef, 0xfe, + 0x8c, 0x8e, 0xbd, 0x24, 0xe9, 0xd7, 0xde, 0x1c, 0x91, 0xd7, 0xec, 0x02, + 0xa7, 0x4e, 0x75, 0xff, 0xe4, 0xd7, 0x70, 0x23, 0x9b, 0x07, 0x34, 0x75, + 0x49, 0x34, 0x55, 0x0c, 0x37, 0x22, 0x99, 0x1b, 0x83, 0x62, 0x41, 0xe2, + 0xaa, 0x55, 0x36, 0x7e, 0x31, 0x18, 0x24, 0xf0, 0x8b, 0x91, 0x10, 0x61, + 0xa1, 0x91, 0xf4, 0x6f, 0x19, 0x9a, 0x43, 0x9e, 0x68, 0x5e, 0x72, 0x15, + 0x2b, 0x6e, 0xec, 0xb8, 0x17, 0x87, 0x77, 0xef, 0x4a, 0x92, 0x11, 0x8c, + 0x8b, 0x52, 0x80, 0xbd, 0x19, 0x7b, 0x29, 0x3b, 0x66, 0x3f, 0x63, 0x5d, + 0xbf, 0xe6, 0x3c, 0x99, 0xb5, 0xa0, 0x41, 0xd7, 0xff, 0xfc, 0x08, 0x63, + 0xda, 0x4e, 0xba, 0x7b, 0x39, 0xfa, 0xde, 0x47, 0x53, 0x0a, 0x87, 0x67, + 0x8d, 0xf0, 0x27, 0x77, 0xee, 0x35, 0xdd, 0xa6, 0x8a, 0xde, 0xff, 0xcf, + 0x26, 0x33, 0x8d, 0x77, 0x69, 0xa2, 0x70, 0xb3, 0x18, 0x7f, 0xab, 0x33, + 0xb9, 0x54, 0x13, 0xad, 0xd3, 0xad, 0xa3, 0xa8, 0x06, 0x83, 0x6c, 0x42, + 0xf9, 0xae, 0xed, 0x34, 0x5a, 0x37, 0xff, 0xb0, 0x3d, 0x75, 0x26, 0x99, + 0x34, 0x05, 0x9d, 0x5c, 0x3f, 0x9e, 0x96, 0xdf, 0x35, 0xc7, 0xf3, 0xaf, + 0xfa, 0x6c, 0x57, 0xd7, 0x38, 0xfe, 0x3a, 0xfe, 0x87, 0x10, 0x07, 0x0e, + 0xb9, 0x14, 0x3a, 0xff, 0xfd, 0x3c, 0x7a, 0x03, 0xc8, 0xeb, 0xe8, 0x73, + 0xf3, 0xaf, 0xfd, 0x1b, 0xba, 0xbf, 0x45, 0xd5, 0xe7, 0x3a, 0xff, 0xd1, + 0xcf, 0xf1, 0x33, 0x9e, 0x01, 0xd5, 0x08, 0xd5, 0xea, 0xa6, 0x91, 0x2d, + 0x93, 0x26, 0x35, 0xa8, 0x75, 0xdf, 0xee, 0xf4, 0x0a, 0x2e, 0x34, 0x75, + 0xff, 0xf9, 0x34, 0x39, 0xb1, 0xfc, 0x39, 0xae, 0xbc, 0xc7, 0x56, 0x22, + 0x22, 0x63, 0x4b, 0xec, 0xfd, 0xfa, 0x75, 0xdd, 0xd1, 0xd6, 0x61, 0x50, + 0xae, 0xad, 0x5b, 0x3a, 0xc8, 0x4e, 0xb4, 0x8a, 0x62, 0x15, 0x9e, 0x76, + 0x34, 0x4f, 0x42, 0xdf, 0x6c, 0x8f, 0xe9, 0x0d, 0xf3, 0x5d, 0xda, 0x68, + 0xb6, 0xaf, 0xff, 0xe8, 0x7f, 0x47, 0x63, 0x48, 0x92, 0x4e, 0x60, 0x4e, + 0xbf, 0xbb, 0x0b, 0x84, 0x09, 0xd5, 0xc4, 0x57, 0x68, 0xb7, 0xca, 0xd7, + 0xfe, 0xea, 0x05, 0xe4, 0x1e, 0xa2, 0xce, 0xbe, 0x8d, 0x98, 0x87, 0x5f, + 0xf4, 0x4a, 0x39, 0x3c, 0x72, 0x73, 0xaf, 0xfa, 0x39, 0xf3, 0x51, 0xd7, + 0x43, 0xaf, 0xf7, 0x51, 0xe5, 0xe4, 0x9c, 0xea, 0xc4, 0xcc, 0x5a, 0x61, + 0xc3, 0xd1, 0x21, 0x64, 0xe7, 0x6c, 0xe2, 0xfe, 0x51, 0xf8, 0x10, 0x09, + 0xd7, 0xf0, 0xed, 0xa7, 0x31, 0x43, 0xaf, 0xc9, 0x3a, 0xe1, 0xa7, 0x5f, + 0x9f, 0x79, 0x7d, 0xd1, 0xd6, 0x61, 0x44, 0x56, 0x89, 0x6f, 0x8b, 0xf6, + 0x13, 0xd3, 0x09, 0xa6, 0xff, 0x18, 0x3d, 0xcb, 0xe9, 0xd7, 0xee, 0x35, + 0xdd, 0xa6, 0x8b, 0x96, 0xcc, 0x04, 0xf2, 0x70, 0x5a, 0xfd, 0xc6, 0xbb, + 0xb4, 0xd1, 0x76, 0xdf, 0xf2, 0x4a, 0x48, 0x3f, 0xc4, 0x8e, 0xb3, 0x18, + 0x7d, 0x4e, 0x67, 0x50, 0xec, 0x60, 0xe7, 0x29, 0x94, 0xf4, 0x48, 0x63, + 0x76, 0x52, 0x91, 0xa8, 0x95, 0xb7, 0x8a, 0xbc, 0x2d, 0xfb, 0x2f, 0x4c, + 0x65, 0xef, 0x69, 0xd7, 0xd0, 0x92, 0xbf, 0xcc, 0x67, 0x1a, 0xee, 0xd3, + 0x45, 0x4f, 0x78, 0x33, 0xac, 0xeb, 0x78, 0xeb, 0xfe, 0x87, 0x9f, 0xe6, + 0xfa, 0x80, 0x9d, 0x48, 0x79, 0x62, 0x21, 0x7c, 0xd7, 0x76, 0x9a, 0x2b, + 0x9b, 0xfc, 0xc6, 0x71, 0xae, 0xed, 0x34, 0x59, 0xd7, 0x9d, 0xe4, 0x75, + 0xfc, 0x9a, 0xc1, 0x76, 0x4e, 0xae, 0x22, 0xc7, 0xa5, 0xa2, 0x7f, 0xe1, + 0xab, 0xff, 0xde, 0x8d, 0x7c, 0x06, 0xbd, 0x13, 0x4c, 0x87, 0x5f, 0xc8, + 0xb9, 0xc1, 0xc9, 0x1d, 0x7f, 0xa3, 0xbf, 0x16, 0xad, 0xaa, 0x3c, 0x75, + 0x62, 0x2e, 0x7a, 0x9b, 0xb0, 0xba, 0xfd, 0xcc, 0xf2, 0x2c, 0xeb, 0xe7, + 0x18, 0x09, 0xd7, 0xf6, 0x4d, 0x0b, 0x8f, 0xa7, 0x5f, 0xb8, 0xd7, 0x76, + 0x9a, 0x24, 0x2b, 0xff, 0x62, 0xf1, 0xf9, 0x3f, 0xcd, 0xd6, 0x75, 0xff, + 0x26, 0xfa, 0xf0, 0xc2, 0xf4, 0x75, 0xd2, 0x63, 0x11, 0x59, 0xd3, 0x3f, + 0xd0, 0x6f, 0xfe, 0xea, 0x2f, 0x35, 0xf3, 0x79, 0x67, 0x8e, 0xbe, 0x97, + 0x7e, 0xe8, 0xea, 0x83, 0xea, 0xc4, 0x6b, 0xe5, 0x6f, 0xb0, 0xb3, 0xaf, + 0xee, 0xeb, 0x59, 0xc9, 0xce, 0xba, 0x19, 0x3a, 0xb0, 0xf1, 0x10, 0xba, + 0xcc, 0x4e, 0xb9, 0x9e, 0x16, 0x8c, 0x86, 0x8a, 0x43, 0xd7, 0x86, 0x2b, + 0x26, 0xe8, 0xfb, 0xc3, 0x68, 0x61, 0x4f, 0xa2, 0x0f, 0x35, 0x5f, 0xfc, + 0xc7, 0x5f, 0x43, 0x9e, 0xf4, 0x7e, 0x75, 0xff, 0xe6, 0x16, 0xf2, 0x63, + 0x38, 0xd7, 0x76, 0x9a, 0x27, 0xca, 0x6a, 0xf2, 0xe2, 0xbc, 0xe8, 0x72, + 0xe1, 0x67, 0xd4, 0x4b, 0x93, 0x73, 0xaf, 0xff, 0xa5, 0x3a, 0xad, 0x0a, + 0xdc, 0xed, 0xe7, 0xcf, 0x9d, 0xdb, 0x3a, 0xa4, 0x7f, 0x5f, 0x8b, 0x5f, + 0xb3, 0x99, 0x93, 0x1d, 0x66, 0x3a, 0x79, 0x3f, 0x48, 0xef, 0xdc, 0x6b, + 0xbb, 0x4d, 0x15, 0x95, 0xff, 0x9e, 0x4c, 0x67, 0x1a, 0xee, 0xd3, 0x44, + 0xdd, 0x66, 0x30, 0xff, 0x56, 0x67, 0x4d, 0x46, 0x82, 0x42, 0xa2, 0xfd, + 0xc6, 0xbb, 0xb4, 0xd1, 0x2b, 0x5f, 0x86, 0x02, 0xfd, 0x3a, 0xfc, 0xc2, + 0xde, 0x4c, 0x61, 0xec, 0x21, 0x9d, 0xff, 0xbd, 0x8c, 0x67, 0x12, 0x77, + 0x59, 0xd7, 0xff, 0x95, 0x85, 0x65, 0x51, 0xac, 0x79, 0x26, 0x73, 0x0e, + 0xbf, 0xf2, 0x68, 0x0b, 0x14, 0xd8, 0x07, 0x3a, 0xfe, 0x81, 0x76, 0xba, + 0xb9, 0xd5, 0x23, 0xeb, 0x59, 0xf5, 0xc1, 0xe1, 0xd7, 0xee, 0x35, 0xdd, + 0xa6, 0x89, 0x72, 0xff, 0x91, 0xe5, 0xe1, 0x85, 0xe8, 0xeb, 0xf4, 0xb6, + 0xd3, 0xae, 0x75, 0xe8, 0xdb, 0x83, 0xaf, 0x20, 0xc1, 0xd5, 0x23, 0xdf, + 0x09, 0x4e, 0xc1, 0xdb, 0xff, 0xf3, 0xf9, 0x01, 0x21, 0x49, 0x47, 0x84, + 0x12, 0x3a, 0xfe, 0x97, 0x70, 0x71, 0xa7, 0x5e, 0x97, 0x7c, 0x75, 0xdd, + 0x84, 0x3c, 0x7e, 0x95, 0xdf, 0xfc, 0x29, 0xfe, 0xb9, 0x09, 0x27, 0xd1, + 0xd5, 0x87, 0xdc, 0x85, 0x97, 0x9e, 0x4c, 0x2a, 0xf5, 0x63, 0x11, 0x0c, + 0x09, 0x11, 0x60, 0xb7, 0x4c, 0xde, 0x12, 0xba, 0x31, 0xf4, 0x60, 0xf6, + 0x61, 0x15, 0xf7, 0x2e, 0x5a, 0xb5, 0xff, 0xcc, 0x3c, 0x98, 0xce, 0x35, + 0xdd, 0xa6, 0x88, 0xee, 0xff, 0xbd, 0xdc, 0x93, 0x0e, 0x3a, 0x3a, 0xfe, + 0x55, 0x0c, 0x37, 0x04, 0xeb, 0x81, 0xd3, 0xaf, 0xe5, 0x40, 0xe7, 0x5f, + 0xc7, 0x5f, 0xff, 0xde, 0x92, 0x07, 0xa9, 0xb3, 0xe6, 0x07, 0x88, 0x06, + 0x9d, 0x7f, 0xb1, 0x9d, 0x40, 0xfb, 0x47, 0x5f, 0xe7, 0x1f, 0xdf, 0x8f, + 0xf4, 0xeb, 0xff, 0x27, 0x3e, 0x68, 0x71, 0x70, 0xd3, 0xaf, 0xfd, 0x02, + 0x0f, 0x23, 0xec, 0x79, 0x1d, 0x7c, 0xd7, 0x76, 0x9a, 0x2a, 0x1b, 0xfe, + 0xce, 0xe0, 0xbf, 0x38, 0x87, 0x52, 0x88, 0xdd, 0x69, 0xf7, 0x0f, 0x74, + 0x5b, 0x74, 0xb0, 0xeb, 0xfe, 0x97, 0x93, 0x8e, 0xd4, 0x13, 0xaf, 0xff, + 0x3a, 0xf3, 0x83, 0x89, 0xb1, 0x38, 0xe7, 0x5f, 0xfd, 0xd1, 0xc9, 0xbd, + 0xdc, 0xe2, 0x68, 0xeb, 0xf6, 0xe2, 0x8b, 0x43, 0xaa, 0x11, 0x61, 0x88, + 0xe8, 0x87, 0x7f, 0xa3, 0xcf, 0xdf, 0x81, 0x83, 0xaf, 0xfc, 0x0f, 0x8e, + 0x39, 0xb5, 0xf3, 0xa0, 0x3a, 0xff, 0x4a, 0x39, 0x3c, 0x72, 0x73, 0xaf, + 0xfe, 0xd6, 0xb0, 0x7d, 0xac, 0x92, 0x74, 0xeb, 0xff, 0xe8, 0xff, 0x07, + 0xe3, 0xfb, 0xe7, 0x73, 0xf7, 0x3a, 0xe1, 0x9c, 0xea, 0x84, 0x6f, 0x61, + 0xa2, 0x21, 0x0a, 0x95, 0xfd, 0xb1, 0xd7, 0xd6, 0x5c, 0xeb, 0xff, 0xfc, + 0x91, 0xe7, 0xeb, 0x1a, 0xee, 0x0f, 0xbe, 0x7f, 0x2d, 0x1d, 0x6c, 0x44, + 0x49, 0x09, 0x7d, 0xf7, 0x7d, 0x93, 0x9d, 0x7e, 0xc9, 0xdc, 0x76, 0x1d, + 0x7f, 0xff, 0xff, 0xa2, 0x5f, 0x3d, 0xd4, 0x8d, 0x7c, 0xc0, 0x36, 0x36, + 0x7c, 0xce, 0x73, 0x36, 0x01, 0xfa, 0x75, 0xf7, 0x45, 0xf6, 0x8e, 0xac, + 0x4c, 0x0c, 0x48, 0xb4, 0x51, 0xe8, 0x4b, 0x5f, 0xff, 0xf0, 0x1d, 0x5d, + 0x27, 0xeb, 0xa7, 0xa3, 0xa9, 0xed, 0x60, 0x4e, 0xb3, 0x0a, 0x85, 0xf6, + 0xa5, 0x6c, 0xb9, 0x54, 0x2d, 0x05, 0xf3, 0xaf, 0x04, 0xcb, 0x23, 0x10, + 0x69, 0xf6, 0xe2, 0xbc, 0x87, 0x32, 0xcb, 0x7a, 0x66, 0x31, 0x91, 0x6a, + 0x19, 0x7e, 0x8c, 0xa7, 0x6d, 0x06, 0xf9, 0xae, 0xed, 0x34, 0x55, 0x17, + 0xfb, 0x91, 0xb3, 0x79, 0x67, 0x8e, 0xae, 0x1f, 0x10, 0x0b, 0x6f, 0xfc, + 0xf2, 0x63, 0x38, 0xd7, 0x76, 0x9a, 0x26, 0xbb, 0xcb, 0x7f, 0x1d, 0x66, + 0x31, 0x10, 0xeb, 0x22, 0x74, 0xab, 0xf7, 0x1a, 0xee, 0xd3, 0x45, 0x59, + 0x7f, 0xd1, 0x28, 0xe4, 0xf1, 0xc9, 0xce, 0xb3, 0x18, 0x7d, 0x82, 0x67, + 0x7f, 0xe6, 0x3b, 0x1b, 0xfa, 0x3a, 0xea, 0xe7, 0x5f, 0xfc, 0xc3, 0xc9, + 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0x91, 0x2f, 0xdc, 0x6b, 0xbb, 0x4d, 0x16, + 0x95, 0xff, 0x9e, 0x4c, 0x67, 0x1a, 0xee, 0xd3, 0x44, 0xfb, 0x66, 0x30, + 0xff, 0x56, 0x67, 0x7f, 0xf9, 0x85, 0xbc, 0x98, 0xce, 0x35, 0xdd, 0xa6, + 0x8a, 0x12, 0xfd, 0xd4, 0x9e, 0x38, 0x75, 0xfb, 0x8d, 0x77, 0x69, 0xa2, + 0x8f, 0xbf, 0xe8, 0x94, 0x72, 0x78, 0xe4, 0xe7, 0x5f, 0xf8, 0x62, 0x68, + 0x18, 0x9b, 0xb0, 0x75, 0xff, 0xfd, 0x81, 0xec, 0x7d, 0x63, 0xc2, 0xff, + 0xeb, 0x51, 0xf9, 0x57, 0xe6, 0x16, 0xf2, 0x62, 0x13, 0x2d, 0xc2, 0x71, + 0x33, 0xf1, 0xce, 0xd9, 0xe5, 0x43, 0x64, 0x6f, 0x3c, 0xe1, 0x6c, 0x8c, + 0xb1, 0x45, 0x49, 0xfa, 0x26, 0xc7, 0xef, 0xbc, 0x28, 0x50, 0x9e, 0x64, + 0x2e, 0xc3, 0x3b, 0xf2, 0x8f, 0x47, 0x09, 0x7f, 0x98, 0xce, 0x35, 0xdd, + 0xa6, 0x88, 0x8a, 0xfe, 0xce, 0x35, 0xdd, 0xa6, 0x88, 0xae, 0xff, 0x95, + 0xd8, 0xce, 0x35, 0xdd, 0xa6, 0x8a, 0xe2, 0x98, 0x44, 0x03, 0x9c, 0x5f, + 0xfe, 0xfe, 0x05, 0xac, 0x3f, 0xbf, 0xfa, 0x32, 0x3a, 0xf9, 0x89, 0xe6, + 0x57, 0x3a, 0xc9, 0xb9, 0xfa, 0xfe, 0x9b, 0x7d, 0x9d, 0x7f, 0x1d, 0x7f, + 0xb1, 0x39, 0xff, 0xe0, 0xd1, 0xd6, 0x54, 0x09, 0xea, 0x68, 0x82, 0xff, + 0xfe, 0xf6, 0x93, 0xae, 0x92, 0x41, 0xf0, 0x3b, 0xcc, 0x3a, 0xfd, 0xc6, + 0xbb, 0xb4, 0xd1, 0x4f, 0x5f, 0xe5, 0xa0, 0x40, 0xfc, 0x91, 0xd7, 0x2d, + 0x0e, 0xa8, 0x3c, 0x76, 0x99, 0x5f, 0xff, 0xe9, 0x47, 0xb4, 0x05, 0xb5, + 0x3f, 0x8c, 0xea, 0x01, 0xa7, 0x5f, 0xff, 0xdc, 0xe0, 0x39, 0xc8, 0x1c, + 0x51, 0x3b, 0xdc, 0xfa, 0x75, 0xff, 0xc9, 0x2c, 0x1f, 0xe1, 0x69, 0xc9, + 0x1d, 0x7f, 0xa5, 0x1c, 0x9e, 0x39, 0x39, 0xd7, 0xdf, 0x05, 0xe4, 0x75, + 0xf9, 0xf3, 0xa8, 0xb3, 0xab, 0x47, 0x8f, 0xb0, 0x8a, 0xa1, 0x13, 0xf8, + 0xf7, 0x7f, 0xd0, 0x2d, 0xcd, 0x99, 0xed, 0x1d, 0x7e, 0x79, 0xe3, 0x80, + 0x3a, 0x95, 0x4a, 0xce, 0xe0, 0xaf, 0x16, 0x1a, 0xf5, 0xb9, 0x0a, 0x30, + 0x3a, 0xe0, 0xc3, 0x87, 0x61, 0x0e, 0xd9, 0xc5, 0xff, 0xe7, 0x93, 0x01, + 0x17, 0x67, 0x5a, 0x8f, 0xce, 0xbf, 0xfd, 0xff, 0xe0, 0xd3, 0x1f, 0x45, + 0xd6, 0x30, 0x75, 0xff, 0xc3, 0x9f, 0xb8, 0xfe, 0xc2, 0xd1, 0x67, 0x57, + 0x11, 0x23, 0xe4, 0xda, 0x61, 0x39, 0x60, 0xc2, 0x5d, 0x21, 0xb9, 0x70, + 0x70, 0xeb, 0xff, 0x90, 0x3c, 0x7d, 0xd8, 0xe7, 0x22, 0x73, 0xa9, 0x83, + 0xdb, 0xe8, 0xad, 0xc1, 0x83, 0xaf, 0xff, 0xdd, 0x8e, 0x64, 0x91, 0xfd, + 0x81, 0x40, 0x34, 0xab, 0xf4, 0x4b, 0xf0, 0x48, 0xeb, 0xe6, 0xbb, 0xb4, + 0xd1, 0x59, 0xd4, 0xc7, 0xab, 0xc2, 0x8b, 0xef, 0x22, 0xf4, 0x75, 0xfd, + 0x3a, 0xe0, 0x65, 0xa3, 0xaf, 0xd9, 0xed, 0x7d, 0xd1, 0xd7, 0xa2, 0x74, + 0x3a, 0xfd, 0xef, 0xfe, 0x8c, 0x8e, 0xbc, 0x07, 0xd1, 0xd7, 0xfd, 0x92, + 0x40, 0x2b, 0xab, 0x7f, 0xac, 0xeb, 0xf6, 0x4d, 0x38, 0x3f, 0x3a, 0xcc, + 0x42, 0xa2, 0x10, 0x8a, 0xe4, 0x29, 0xf7, 0x23, 0xe1, 0x0a, 0xcb, 0x7a, + 0x52, 0xe3, 0x62, 0x55, 0xa1, 0xbf, 0xa8, 0x37, 0xfe, 0xea, 0x79, 0xf9, + 0x3c, 0x20, 0x4e, 0xbf, 0x79, 0x07, 0x16, 0x75, 0xf4, 0x9c, 0x58, 0xc3, + 0xe2, 0xda, 0x3d, 0xbf, 0xf3, 0xc9, 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0x91, + 0x6f, 0xfc, 0xfe, 0x62, 0x13, 0x89, 0xe0, 0x1d, 0x4c, 0x22, 0x1d, 0xd2, + 0xaf, 0xec, 0xe3, 0x5d, 0xda, 0x68, 0xb2, 0x6f, 0xff, 0x7b, 0x5f, 0x74, + 0xc6, 0x4e, 0x83, 0x2d, 0x1d, 0x4c, 0x22, 0x17, 0x0e, 0x2f, 0xff, 0xf3, + 0xa7, 0x81, 0xc7, 0xd3, 0x0d, 0xea, 0x72, 0x25, 0xa3, 0xaf, 0xec, 0xe3, + 0x5d, 0xda, 0x68, 0xb6, 0x2f, 0xff, 0xe5, 0x47, 0x7e, 0x0e, 0x73, 0xda, + 0xec, 0xdf, 0x3e, 0x77, 0x6c, 0xeb, 0xdc, 0x07, 0x4e, 0xbb, 0xcc, 0x42, + 0x21, 0xb8, 0xd5, 0x4c, 0x23, 0xb5, 0x21, 0x7d, 0x7b, 0x35, 0x87, 0x5f, + 0x35, 0xdd, 0xa6, 0x8b, 0x6e, 0xfb, 0x53, 0xbf, 0x0e, 0xae, 0x1e, 0x7f, + 0x8b, 0x6f, 0xe4, 0xef, 0x93, 0xf0, 0x1d, 0x7f, 0xd1, 0x28, 0xe4, 0xf1, + 0xc9, 0xce, 0xb3, 0x12, 0x47, 0x8e, 0x34, 0xcc, 0x44, 0x25, 0xb7, 0xff, + 0xb0, 0x7f, 0x61, 0x6e, 0x1c, 0xc1, 0x50, 0xeb, 0xca, 0xae, 0x84, 0xeb, + 0xd3, 0xf5, 0x0e, 0xbf, 0xf2, 0xa9, 0x54, 0xad, 0x3d, 0xdc, 0x18, 0xfc, + 0xeb, 0xfa, 0x06, 0x41, 0x02, 0xce, 0xbe, 0x6b, 0xbb, 0x4d, 0x17, 0x85, + 0xff, 0x9f, 0xd1, 0xb3, 0x9c, 0xcd, 0xf4, 0x75, 0x70, 0xfb, 0x44, 0xb6, + 0xfb, 0xdb, 0x79, 0xd3, 0xaf, 0xcb, 0x81, 0x93, 0x9d, 0x7f, 0xa5, 0x03, + 0xed, 0x8e, 0xd3, 0xaf, 0xf4, 0x79, 0xfb, 0xf0, 0x30, 0x75, 0xff, 0xbe, + 0xaf, 0x79, 0x7b, 0x07, 0xda, 0x3a, 0xec, 0x50, 0xea, 0x83, 0xd7, 0xc4, + 0x1b, 0xe4, 0x9f, 0x16, 0x75, 0xfb, 0x07, 0xfd, 0xa8, 0x3a, 0xfd, 0x1f, + 0x40, 0xfa, 0x3a, 0xff, 0xf6, 0x2e, 0x1b, 0xf3, 0x04, 0x12, 0xcd, 0x1d, + 0x7f, 0xf6, 0x77, 0xaf, 0x25, 0xa4, 0x72, 0x47, 0x5d, 0x1f, 0x9d, 0x52, + 0x3d, 0x8f, 0x21, 0x52, 0xa1, 0x5c, 0xea, 0xa8, 0x81, 0x57, 0x8e, 0x4e, + 0x99, 0x90, 0x99, 0xdc, 0x85, 0x09, 0x26, 0x25, 0x59, 0x9f, 0x61, 0x14, + 0xe4, 0x1f, 0x90, 0x89, 0x4e, 0x8a, 0x3d, 0x0a, 0x1b, 0xfd, 0xbb, 0x19, + 0xfb, 0xf3, 0x47, 0x5f, 0xef, 0xd8, 0x9a, 0x50, 0x3e, 0x3a, 0x98, 0x4d, + 0x56, 0x21, 0xd7, 0xc3, 0x5b, 0xc9, 0x9b, 0x9d, 0x7c, 0xd7, 0x76, 0x9a, + 0x2f, 0x4b, 0xff, 0x27, 0xba, 0x2f, 0x2f, 0xdf, 0xf3, 0xab, 0x87, 0xd6, + 0xb2, 0xdb, 0xcb, 0x4f, 0x1d, 0x7f, 0xcf, 0xe9, 0x42, 0x9e, 0x49, 0xce, + 0xa5, 0x9e, 0xa0, 0x8d, 0xdf, 0xb1, 0x7d, 0x70, 0x9d, 0x41, 0x4d, 0x0f, + 0x21, 0x0d, 0xf5, 0xdb, 0x68, 0x86, 0xff, 0xff, 0x93, 0x66, 0x0b, 0x01, + 0xc0, 0xf7, 0x16, 0xb7, 0x96, 0x09, 0xd4, 0xc2, 0x2b, 0x31, 0x1e, 0xa1, + 0xb6, 0x3f, 0x9e, 0x17, 0xf2, 0x84, 0xc6, 0x4e, 0xa7, 0x36, 0x12, 0xc9, + 0x29, 0x12, 0x68, 0xc1, 0xf9, 0x0c, 0x25, 0xc2, 0xa3, 0xa4, 0x7f, 0xc6, + 0x9a, 0x31, 0x8c, 0xe9, 0x0c, 0x13, 0xa7, 0x6c, 0xca, 0x25, 0xb8, 0x1d, + 0x3a, 0xff, 0xe0, 0x44, 0xc3, 0x9b, 0x1d, 0x6b, 0x43, 0xaf, 0xb3, 0xaf, + 0xe3, 0xaf, 0xf6, 0x27, 0x3f, 0xfc, 0x1a, 0x3a, 0xca, 0x85, 0x11, 0x30, + 0x28, 0x9a, 0x20, 0xbe, 0xf4, 0x6f, 0x39, 0xd7, 0xfd, 0xed, 0x66, 0xf2, + 0xe8, 0x14, 0x3a, 0x90, 0xf7, 0x84, 0x8e, 0xfa, 0x36, 0x44, 0x8e, 0xbf, + 0x71, 0xae, 0xed, 0x34, 0x44, 0x77, 0xff, 0xdd, 0x06, 0xb5, 0x8b, 0x1c, + 0xd9, 0xf2, 0x15, 0x83, 0xaf, 0xfa, 0x27, 0xe6, 0x7b, 0xc9, 0xe3, 0xaf, + 0x0c, 0x6e, 0x75, 0x48, 0xf4, 0xc2, 0x71, 0x7f, 0xd9, 0xcc, 0xd6, 0x38, + 0xce, 0x75, 0xec, 0x0a, 0xce, 0xbf, 0xff, 0xdd, 0x74, 0xf4, 0x74, 0x73, + 0xdd, 0x4e, 0xe2, 0x32, 0x75, 0xff, 0xff, 0xef, 0x79, 0x17, 0xc4, 0xcd, + 0xc4, 0x1e, 0x8e, 0xfc, 0xd8, 0x9e, 0x9a, 0x0e, 0xa8, 0x46, 0xc6, 0x2e, + 0xdf, 0xe7, 0x5e, 0x72, 0x50, 0xb3, 0xae, 0x9d, 0x65, 0x5c, 0xcb, 0x25, + 0x5f, 0xf9, 0x86, 0xf5, 0x26, 0xec, 0x4e, 0xc7, 0xe6, 0xbd, 0x91, 0x7b, + 0xed, 0x91, 0xe8, 0x3a, 0xa4, 0x7f, 0xa8, 0xb7, 0x7f, 0x63, 0xaf, 0x37, + 0xf1, 0xd7, 0xf9, 0xd8, 0xd2, 0x71, 0xff, 0x3a, 0xca, 0xe7, 0x5f, 0xf4, + 0x66, 0xf0, 0xf2, 0x79, 0x1d, 0x4a, 0xc9, 0xe4, 0x84, 0x4e, 0xfe, 0x57, + 0x1c, 0xeb, 0xf8, 0xeb, 0xfa, 0x14, 0xc1, 0x45, 0x0e, 0xbf, 0xb3, 0xdb, + 0x5e, 0xce, 0x9d, 0x58, 0x88, 0x91, 0x2e, 0xd1, 0x65, 0xff, 0xfc, 0xd6, + 0x38, 0xe2, 0x9e, 0x63, 0x91, 0xe1, 0x7f, 0xce, 0xa5, 0x6d, 0x7a, 0xc1, + 0x55, 0x0a, 0xe8, 0x84, 0xc4, 0x88, 0x30, 0x89, 0xa6, 0x7b, 0xc2, 0xa9, + 0x08, 0xa6, 0x36, 0xe4, 0x3c, 0xfa, 0x42, 0xf0, 0xdd, 0xfc, 0x84, 0x4b, + 0x34, 0xf9, 0xe8, 0x58, 0x6c, 0x2e, 0xbb, 0x6b, 0xa7, 0x5f, 0xb8, 0xd7, + 0x76, 0x9a, 0x22, 0xeb, 0xf7, 0xbf, 0xfa, 0x32, 0x2a, 0xfd, 0xaf, 0x76, + 0x3f, 0x3a, 0xfc, 0xf3, 0xc7, 0x00, 0x75, 0x98, 0x9d, 0x18, 0xb8, 0x32, + 0xe6, 0x60, 0x2a, 0xdb, 0x28, 0xa6, 0x15, 0x14, 0x4a, 0x3d, 0x5b, 0xff, + 0x96, 0xf2, 0x63, 0x38, 0xd7, 0x76, 0x9a, 0x26, 0x6b, 0xf9, 0x56, 0x56, + 0x8a, 0x8d, 0x47, 0x8e, 0xbd, 0xbc, 0x68, 0xeb, 0xcd, 0x45, 0x9d, 0x7c, + 0xaa, 0xf3, 0x89, 0xd7, 0x6d, 0xab, 0x27, 0x5d, 0x80, 0x3a, 0xff, 0xf7, + 0x61, 0x6f, 0xec, 0xdf, 0xf5, 0xfd, 0xe9, 0xd7, 0xf7, 0xb2, 0x7c, 0xfe, + 0x63, 0xaf, 0xf7, 0xcc, 0x17, 0xe7, 0xfb, 0x67, 0x5f, 0xff, 0x96, 0xfd, + 0xcd, 0xff, 0xeb, 0x2f, 0xd9, 0xba, 0x03, 0xa8, 0x28, 0x90, 0xc3, 0x7b, + 0xb5, 0x87, 0x5d, 0xb5, 0xe3, 0xac, 0xa9, 0x3a, 0xdf, 0xc1, 0xad, 0x00, + 0xcd, 0xff, 0xff, 0x90, 0x61, 0xa3, 0x0b, 0xf9, 0x1c, 0xe2, 0x6c, 0xe3, + 0xbf, 0xe7, 0x52, 0xb2, 0xa8, 0xd9, 0xa3, 0xc8, 0x2b, 0x32, 0x6f, 0x61, + 0x7e, 0xe4, 0x5f, 0xa1, 0x78, 0x9e, 0xfe, 0x66, 0x04, 0x73, 0xc7, 0x5f, + 0x3f, 0x52, 0x63, 0xaf, 0xbb, 0x34, 0x04, 0xea, 0xc3, 0xee, 0x69, 0x5b, + 0x90, 0xdf, 0xe6, 0xa6, 0x08, 0x7b, 0x07, 0x51, 0xd7, 0xee, 0xbf, 0xa5, + 0xf9, 0xd7, 0xff, 0xbe, 0x75, 0xd3, 0xdf, 0x80, 0x45, 0xe4, 0x75, 0x62, + 0x2b, 0x1a, 0x60, 0x81, 0x4b, 0x28, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0xab, + 0xd5, 0x18, 0xab, 0xd5, 0x4a, 0xd1, 0x5a, 0x35, 0x53, 0x0a, 0xb9, 0x55, + 0xc9, 0xf6, 0xb0, 0x01, 0x56, 0xb1, 0xb7, 0xbf, 0xde, 0xaa, 0xa2, 0x15, + 0x4a, 0xea, 0xb7, 0xbe, 0x7c, 0xee, 0xd9, 0xd7, 0xff, 0xef, 0xf7, 0x97, + 0x41, 0x1c, 0x63, 0xa8, 0xd7, 0xe1, 0xd7, 0xff, 0x6e, 0xcc, 0x78, 0x28, + 0xaf, 0xa8, 0x59, 0xd7, 0xff, 0xfe, 0x45, 0xa7, 0x3a, 0x0d, 0x4a, 0x36, + 0x72, 0x07, 0xdd, 0xc9, 0x1d, 0x7f, 0xe4, 0xf2, 0x35, 0x03, 0xec, 0x69, + 0xd5, 0x88, 0xf0, 0xf2, 0x46, 0xd3, 0x65, 0xf7, 0xb6, 0xf3, 0xa7, 0x5f, + 0xff, 0xe7, 0x16, 0x8e, 0x07, 0xa0, 0xf9, 0xd8, 0x97, 0x22, 0x73, 0xab, + 0x11, 0x0a, 0x02, 0x4b, 0xff, 0xfc, 0xea, 0x0e, 0x7e, 0x0d, 0x7c, 0x92, + 0x76, 0x1a, 0x2e, 0x75, 0xf7, 0x93, 0xa8, 0x75, 0xff, 0x3f, 0x25, 0xf3, + 0x1a, 0x1c, 0x3a, 0x95, 0x4b, 0x80, 0xd1, 0x19, 0x5e, 0x46, 0x91, 0xd8, + 0x5b, 0xb9, 0x10, 0xb0, 0x80, 0x82, 0xdc, 0x3a, 0xfe, 0xf6, 0x2f, 0x7c, + 0x59, 0xd6, 0xee, 0x1b, 0xd4, 0x10, 0xbf, 0xc0, 0x0b, 0xcb, 0x49, 0x23, + 0xaf, 0xff, 0xc1, 0x41, 0x9f, 0x34, 0x8f, 0xd6, 0x19, 0x65, 0x92, 0xaf, + 0xef, 0x76, 0x27, 0xe8, 0x0e, 0xbf, 0xb7, 0x96, 0xbf, 0x04, 0xc7, 0x5f, + 0xf4, 0xf9, 0xf8, 0x40, 0xfc, 0x91, 0xd7, 0x9d, 0xda, 0x68, 0xb3, 0xef, + 0xef, 0xdc, 0x64, 0x8b, 0x3a, 0xa7, 0x44, 0x6b, 0x4e, 0xbf, 0x27, 0xbf, + 0xf2, 0x76, 0x24, 0x9e, 0x8f, 0x68, 0xeb, 0xff, 0xdc, 0xeb, 0xfc, 0xcd, + 0x83, 0x9a, 0xc1, 0x3a, 0xff, 0xed, 0x79, 0x26, 0x65, 0xc3, 0x1b, 0xe8, + 0xea, 0x44, 0x48, 0x01, 0x2a, 0xf3, 0x2c, 0xb2, 0x55, 0xff, 0x9e, 0x5a, + 0x1c, 0x68, 0x73, 0x85, 0x30, 0x5f, 0xdf, 0xb6, 0x80, 0xbc, 0x09, 0xd7, + 0xfb, 0xdd, 0xcd, 0x9f, 0x24, 0xb3, 0xab, 0x0f, 0x84, 0x05, 0x57, 0xfe, + 0xde, 0x42, 0x0f, 0xfe, 0x35, 0x7f, 0x9d, 0x74, 0x28, 0x75, 0x41, 0xed, + 0x4e, 0x89, 0x7f, 0xba, 0x81, 0x17, 0x79, 0x8e, 0xbf, 0xc1, 0xe8, 0x1f, + 0xfd, 0xbc, 0x3a, 0xa0, 0xf9, 0xd0, 0xc6, 0xff, 0x90, 0x43, 0xf4, 0x20, + 0xf6, 0x8e, 0xbd, 0x02, 0xa1, 0xd5, 0x25, 0xd0, 0x00, 0x92, 0xb4, 0xcb, + 0x75, 0x89, 0x8b, 0xb9, 0x0b, 0xe5, 0x99, 0x76, 0x19, 0x9f, 0xa0, 0x8c, + 0x2b, 0x74, 0xf7, 0xe8, 0x44, 0xec, 0x20, 0xfa, 0x75, 0x7f, 0xdc, 0x76, + 0x7a, 0x91, 0xc8, 0x3a, 0xff, 0xdc, 0x4d, 0x4b, 0xef, 0x60, 0x60, 0xeb, + 0xee, 0x24, 0x2c, 0xeb, 0xff, 0xf7, 0x94, 0x04, 0x60, 0x7b, 0x9a, 0xde, + 0x51, 0xd3, 0xab, 0x88, 0xb4, 0x59, 0xf0, 0x90, 0x5c, 0xf2, 0x3a, 0xff, + 0xff, 0xfe, 0x17, 0x67, 0xd9, 0xd1, 0xcf, 0x03, 0xf5, 0xbc, 0x9c, 0x30, + 0x2f, 0xc7, 0x91, 0xd7, 0xfb, 0x3b, 0xd0, 0x79, 0xc4, 0xeb, 0xe5, 0xa4, + 0xda, 0x3a, 0xc8, 0x14, 0x76, 0xcc, 0x2b, 0xc8, 0x42, 0xac, 0xc6, 0xfd, + 0xc9, 0xb6, 0x60, 0x4e, 0xbf, 0xf6, 0x33, 0xb5, 0xcc, 0xda, 0x10, 0x32, + 0x75, 0x42, 0x7a, 0x7d, 0x8c, 0x71, 0xd2, 0x04, 0xaa, 0xff, 0xff, 0xfb, + 0xfd, 0x66, 0x0a, 0x9f, 0x78, 0x31, 0x9d, 0x63, 0x43, 0x93, 0xaf, 0x16, + 0x75, 0xfb, 0xec, 0x0f, 0xd5, 0x9d, 0x58, 0x8a, 0x9f, 0x3f, 0xdf, 0xb6, + 0x3f, 0x63, 0xe9, 0xd5, 0x87, 0x98, 0x84, 0x57, 0xb5, 0x13, 0x9d, 0x7f, + 0xd1, 0x8d, 0xea, 0x6c, 0x7e, 0x1d, 0x76, 0x74, 0xea, 0x13, 0xcd, 0xdb, + 0x38, 0xa9, 0x22, 0xb7, 0x44, 0x1e, 0x69, 0xbd, 0xd0, 0x32, 0x75, 0xef, + 0xc0, 0xd3, 0xaf, 0x7b, 0x3e, 0x9d, 0x7f, 0x46, 0xfa, 0xf9, 0xc8, 0x3a, + 0xf0, 0x40, 0xd3, 0xaf, 0x82, 0x31, 0x23, 0xa9, 0x0d, 0xe3, 0x8e, 0x50, + 0x51, 0xc3, 0xb8, 0xea, 0x0e, 0xac, 0x77, 0xad, 0x77, 0x63, 0x4e, 0xbf, + 0xb8, 0x9b, 0x30, 0x74, 0x75, 0xfd, 0xbf, 0xb3, 0xa0, 0x57, 0x3a, 0xfe, + 0xe6, 0x77, 0xa0, 0xf1, 0xd7, 0xee, 0x8c, 0x67, 0x0c, 0xbf, 0xb3, 0x93, + 0x81, 0xc2, 0x68, 0x83, 0x58, 0x34, 0xb6, 0xe4, 0xe8, 0x9d, 0x92, 0x95, + 0x42, 0x3e, 0x12, 0x19, 0xd7, 0xe7, 0x6a, 0x2e, 0x0e, 0xbf, 0xa5, 0xd1, + 0x7d, 0xfc, 0x75, 0xb1, 0xa7, 0xa4, 0x24, 0xb7, 0xe8, 0xf7, 0xc5, 0xb2, + 0x75, 0xfe, 0x92, 0x2e, 0x3b, 0xf4, 0x27, 0x5f, 0xfe, 0x8c, 0x1d, 0xfd, + 0x9c, 0x49, 0xdd, 0x67, 0x5f, 0x9d, 0x9f, 0x67, 0x74, 0x7f, 0x9e, 0x34, + 0xa5, 0x6d, 0x55, 0xec, 0x0a, 0xca, 0x32, 0x5c, 0x78, 0xe1, 0x30, 0xc2, + 0x9a, 0xf6, 0xb2, 0x47, 0x5f, 0x93, 0x79, 0x20, 0x9d, 0x79, 0x3b, 0x87, + 0x5d, 0x0b, 0xc3, 0xc0, 0x69, 0x35, 0xf0, 0x75, 0xd8, 0x3a, 0xfc, 0x3c, + 0x65, 0xe7, 0x3a, 0xb0, 0xf2, 0x5c, 0x86, 0xe0, 0x09, 0xd5, 0x09, 0x82, + 0xa2, 0xdf, 0x1d, 0x74, 0x41, 0x7b, 0xb8, 0x27, 0x5f, 0xe9, 0xa2, 0x75, + 0xbc, 0xd0, 0x75, 0xff, 0xf3, 0xa9, 0xe8, 0xe7, 0xfc, 0x8f, 0x0b, 0xfe, + 0x75, 0xff, 0xfc, 0x2e, 0xa7, 0xcf, 0xa2, 0xfe, 0xd2, 0x6f, 0xd4, 0x64, + 0xea, 0xc4, 0x7e, 0xb8, 0xd0, 0x9a, 0x01, 0x42, 0xed, 0x6c, 0x3a, 0xf9, + 0x05, 0xc2, 0x75, 0xff, 0x97, 0x9e, 0xd7, 0xdd, 0x3c, 0xb0, 0xeb, 0xf6, + 0xa3, 0x9e, 0x83, 0x98, 0x37, 0xf4, 0x14, 0x4a, 0xe9, 0x7a, 0xfd, 0xf6, + 0x67, 0x7e, 0x1d, 0x7d, 0xdc, 0x4d, 0x87, 0x5f, 0xda, 0x4e, 0x60, 0x38, + 0x75, 0xff, 0xfe, 0x89, 0xbe, 0x23, 0x41, 0xcd, 0x03, 0xe2, 0xd3, 0xdd, + 0x43, 0xab, 0x13, 0xac, 0x48, 0x56, 0xac, 0x8f, 0xa5, 0x3e, 0x22, 0xda, + 0x2c, 0xb9, 0x6a, 0x83, 0x45, 0xf9, 0x7d, 0xae, 0x66, 0x1d, 0x7f, 0xf4, + 0xbc, 0x09, 0x49, 0x7e, 0xf4, 0x2c, 0xeb, 0xfd, 0xed, 0x44, 0xf9, 0xa0, + 0x9d, 0x77, 0x70, 0xeb, 0xff, 0xee, 0xc0, 0x71, 0xbf, 0x30, 0x70, 0x3d, + 0x83, 0xaf, 0xfe, 0x4c, 0x1c, 0xcd, 0x7c, 0x96, 0x96, 0x75, 0xff, 0x9e, + 0x37, 0x97, 0xcd, 0x6e, 0x18, 0x3a, 0x82, 0x9b, 0xfe, 0xe4, 0x08, 0x8a, + 0xae, 0x67, 0x30, 0xae, 0x93, 0xbc, 0x87, 0x79, 0x48, 0xe1, 0xd7, 0xf0, + 0x63, 0xfe, 0x66, 0xe7, 0x53, 0x07, 0x94, 0xb1, 0xcb, 0xfd, 0x0b, 0xc4, + 0xe4, 0xd2, 0x3a, 0xe4, 0x98, 0xeb, 0xff, 0xde, 0x8e, 0x8b, 0xcf, 0x1c, + 0xe3, 0xc8, 0xeb, 0xde, 0x49, 0xce, 0xbf, 0x7e, 0xfb, 0xc4, 0xc7, 0x5e, + 0x18, 0x69, 0xd7, 0xff, 0x05, 0x26, 0xec, 0x73, 0x79, 0x47, 0x0e, 0xbf, + 0xfc, 0x82, 0xfb, 0xeb, 0x59, 0xc0, 0xf7, 0x0e, 0xaf, 0x89, 0xa5, 0x20, + 0xb2, 0xd2, 0x1c, 0x70, 0x4a, 0x74, 0x35, 0xb4, 0x8b, 0x68, 0x3a, 0xf7, + 0x53, 0xc7, 0x5b, 0x66, 0x1a, 0xaf, 0xa1, 0xf5, 0x0b, 0xa2, 0x21, 0x5e, + 0xc8, 0xe9, 0x92, 0x16, 0x7d, 0x23, 0x78, 0xdf, 0x3f, 0x84, 0x8d, 0xff, + 0x60, 0xc8, 0x71, 0x70, 0xd3, 0xaf, 0xdd, 0x4d, 0x98, 0x13, 0xaf, 0xfc, + 0x18, 0x1c, 0x10, 0x4b, 0x34, 0x75, 0xf9, 0xd6, 0x9b, 0x58, 0x75, 0xef, + 0x46, 0xe7, 0x56, 0x1e, 0x23, 0x94, 0x5e, 0x84, 0x98, 0xeb, 0xc2, 0xac, + 0xed, 0x1d, 0x7e, 0xc9, 0xd7, 0x1a, 0x3a, 0xff, 0xff, 0xd1, 0xd4, 0x5b, + 0x13, 0x49, 0xf9, 0xf7, 0xa9, 0xbe, 0x9a, 0x93, 0x9d, 0x41, 0x4f, 0x49, + 0x43, 0x54, 0x28, 0x99, 0xff, 0xa4, 0x02, 0x37, 0xa2, 0x3d, 0xa2, 0x7b, + 0xf9, 0xf9, 0x1d, 0xfa, 0x13, 0xaf, 0xa1, 0x27, 0x83, 0xaf, 0x99, 0x7c, + 0xd1, 0xd7, 0xfd, 0x25, 0xbc, 0xbd, 0xa8, 0x50, 0xea, 0x83, 0xda, 0x72, + 0x1b, 0xda, 0x41, 0x3a, 0xfc, 0x2d, 0xf9, 0xad, 0xce, 0xac, 0x3c, 0x47, + 0x1a, 0xa7, 0x4c, 0xb3, 0xf2, 0xe1, 0x7a, 0x03, 0x25, 0xd3, 0xc8, 0xeb, + 0xc9, 0xd4, 0x3a, 0xb7, 0x36, 0x3e, 0x17, 0xbe, 0xfa, 0x07, 0xd1, 0xd7, + 0xfa, 0x40, 0x19, 0xf4, 0x9b, 0x9d, 0x7d, 0xff, 0xf9, 0xb9, 0xd7, 0xf6, + 0xd7, 0xb1, 0xc5, 0xa7, 0x5f, 0xf0, 0x1e, 0x41, 0xcc, 0xff, 0x47, 0x5f, + 0xef, 0xd3, 0x7d, 0xe5, 0x9e, 0x3a, 0xba, 0x7d, 0xba, 0x38, 0xbf, 0x6f, + 0xa5, 0xa2, 0xb9, 0xd7, 0xff, 0xec, 0xd7, 0xce, 0xba, 0x7b, 0xf0, 0x08, + 0xbc, 0x8e, 0xa8, 0x44, 0x00, 0x95, 0xdf, 0xcf, 0x3f, 0xee, 0x21, 0x3a, + 0xa6, 0x4f, 0x8f, 0x86, 0x9d, 0x24, 0xf4, 0x26, 0xf6, 0x42, 0x8b, 0x6c, + 0x86, 0xff, 0xbb, 0xf6, 0x1b, 0xb7, 0x9c, 0x83, 0xaa, 0x15, 0x55, 0x64, + 0xa0, 0x67, 0x68, 0xba, 0x60, 0x1d, 0x65, 0x9d, 0x5b, 0x9a, 0x75, 0x48, + 0xbd, 0xff, 0xd1, 0xcc, 0xd8, 0xf2, 0xff, 0x30, 0x27, 0x5f, 0xcf, 0xbc, + 0x86, 0x02, 0x75, 0xff, 0x46, 0xf2, 0x41, 0x5b, 0xf8, 0xea, 0x73, 0xe3, + 0x12, 0xcb, 0xf3, 0xcb, 0x27, 0x83, 0xaf, 0xfe, 0x8d, 0x6b, 0x17, 0xe1, + 0x85, 0xe8, 0xeb, 0xff, 0x92, 0x34, 0x2f, 0x2f, 0x9a, 0xce, 0x1d, 0x7f, + 0xff, 0x93, 0x53, 0xe3, 0x38, 0x20, 0xda, 0x86, 0x30, 0x5f, 0x87, 0x5f, + 0xed, 0xe5, 0xa9, 0xa5, 0x13, 0x9d, 0x41, 0x4d, 0x0d, 0xa4, 0xc2, 0x85, + 0xe4, 0x30, 0x31, 0x5f, 0xff, 0xfb, 0xa9, 0xbf, 0xb3, 0x7f, 0x73, 0x91, + 0xef, 0xfe, 0x8c, 0xbb, 0x87, 0x5f, 0x04, 0x2e, 0x27, 0x5f, 0xfa, 0x50, + 0x3e, 0xe2, 0x6c, 0xc0, 0x9d, 0x7f, 0xe7, 0xeb, 0x51, 0xfe, 0x69, 0xfa, + 0x75, 0xff, 0xfb, 0x43, 0xf3, 0xae, 0x9e, 0xfc, 0x02, 0x2f, 0x23, 0xaf, + 0xf7, 0x51, 0x4d, 0xb0, 0x71, 0x43, 0xaf, 0xfa, 0x19, 0x5f, 0x61, 0x06, + 0x73, 0xaf, 0xff, 0x87, 0x35, 0x8b, 0x86, 0xe7, 0x93, 0x98, 0x75, 0xb1, + 0xa8, 0xbb, 0xf1, 0xc6, 0xc3, 0x8b, 0xfa, 0x7c, 0xe2, 0x36, 0x0e, 0xbe, + 0x10, 0xc2, 0xce, 0xbf, 0x6c, 0xc1, 0x03, 0x9d, 0x7f, 0x3f, 0xf8, 0x17, + 0x91, 0xd5, 0x07, 0xe7, 0x84, 0x08, 0x4f, 0x48, 0x8c, 0xbe, 0xc2, 0x7e, + 0xa1, 0x76, 0xfe, 0x72, 0x60, 0xc2, 0x9f, 0x23, 0x63, 0x6a, 0x52, 0x38, + 0x4c, 0x41, 0xd3, 0xef, 0xcf, 0x86, 0x31, 0x0f, 0x46, 0x05, 0x7f, 0xf6, + 0x0f, 0xf9, 0x9c, 0xd7, 0xa3, 0x0e, 0xbf, 0xed, 0xfd, 0x9c, 0x49, 0xdd, + 0x67, 0x5b, 0x3f, 0x3f, 0xa1, 0x41, 0xbc, 0xa9, 0x92, 0x1d, 0x7d, 0x02, + 0xf2, 0x3a, 0xfd, 0x8a, 0xee, 0x3f, 0xfc, 0x37, 0xdc, 0x1f, 0xbf, 0xb6, + 0x75, 0x23, 0x9a, 0x3a, 0xff, 0xfd, 0x03, 0x2c, 0xea, 0x2c, 0x39, 0x34, + 0x67, 0x0e, 0xbe, 0x6f, 0x52, 0x63, 0xaf, 0xff, 0xc3, 0x8a, 0x28, 0x81, + 0xea, 0x4d, 0xd4, 0xdf, 0xc7, 0x54, 0x1f, 0xce, 0x11, 0x5e, 0x6b, 0xf0, + 0xeb, 0xf6, 0x9b, 0x1c, 0x50, 0xea, 0xe9, 0xe1, 0xfe, 0x37, 0x7f, 0xb2, + 0x58, 0x81, 0xea, 0x1d, 0x7d, 0xe9, 0x2f, 0xa7, 0x5f, 0x22, 0x88, 0xc9, + 0xd5, 0x87, 0x88, 0x24, 0x57, 0x7c, 0xc3, 0xaf, 0xb4, 0x30, 0xb3, 0xaa, + 0x0d, 0xbe, 0xe2, 0xf7, 0xd9, 0xd9, 0x2c, 0xea, 0x85, 0x66, 0x72, 0x65, + 0xc4, 0x25, 0x0b, 0xbb, 0x0c, 0xb7, 0x63, 0x12, 0x3d, 0x3a, 0x01, 0x5f, + 0x6c, 0x86, 0xf0, 0x56, 0xd3, 0xad, 0xd3, 0xae, 0xd4, 0x8e, 0xaf, 0xcd, + 0x30, 0x04, 0x2f, 0xe9, 0xe6, 0x92, 0xab, 0x93, 0x9d, 0x79, 0xf3, 0x87, + 0x5e, 0x1c, 0xf1, 0xd5, 0xd3, 0x68, 0x23, 0x57, 0x78, 0x4e, 0xbd, 0x1b, + 0xe8, 0xeb, 0xe4, 0x19, 0x61, 0xd7, 0xa7, 0x71, 0x3a, 0x82, 0x7a, 0xcb, + 0x1c, 0xf0, 0xfd, 0xfb, 0x3d, 0xd4, 0xf1, 0xd7, 0xe7, 0xdf, 0x37, 0xf1, + 0xd6, 0x53, 0xa7, 0x9d, 0xe2, 0x6b, 0x93, 0x87, 0x5f, 0xd3, 0xfc, 0x9d, + 0xdf, 0xa7, 0x52, 0xb2, 0x9e, 0xfc, 0x34, 0xc8, 0x83, 0x1a, 0xd1, 0xf7, + 0xa5, 0x2e, 0x2b, 0x7f, 0xd8, 0x10, 0xa6, 0xf9, 0xbf, 0x8e, 0xbe, 0x68, + 0xc4, 0x8e, 0xae, 0x9e, 0xcb, 0x9c, 0xdf, 0xe8, 0xcf, 0x47, 0x5c, 0x27, + 0x54, 0xe7, 0xa2, 0x12, 0x1b, 0xff, 0x83, 0x01, 0xe4, 0x79, 0x1a, 0x81, + 0x3a, 0xfa, 0x68, 0xda, 0x91, 0xd7, 0xf7, 0x9a, 0x10, 0xaf, 0x87, 0x5f, + 0xf4, 0xda, 0xd8, 0xe3, 0x38, 0x02, 0x75, 0xf6, 0x7b, 0x16, 0x75, 0xc2, + 0xa1, 0xd6, 0xd3, 0x9b, 0x60, 0x10, 0x5f, 0xdd, 0x04, 0xf3, 0x75, 0x0e, + 0xbe, 0x11, 0xcf, 0x1d, 0x50, 0x9c, 0xf0, 0x48, 0xf1, 0x09, 0x42, 0x54, + 0x2e, 0x99, 0xcb, 0xa4, 0xde, 0x2f, 0xbf, 0xbe, 0x4d, 0x1e, 0x1d, 0x87, + 0x5f, 0xfe, 0x18, 0xd9, 0xc8, 0xe6, 0x27, 0x60, 0x27, 0x5e, 0x17, 0x59, + 0xd5, 0x24, 0x49, 0xe1, 0x8a, 0x24, 0x59, 0x85, 0x65, 0xdd, 0x06, 0xab, + 0x67, 0x8a, 0xd0, 0x71, 0x5a, 0x8d, 0xc4, 0xa5, 0xa9, 0xe1, 0xd7, 0x28, + 0x6c, 0x86, 0x71, 0x07, 0x27, 0x6d, 0x54, 0x86, 0xe3, 0x65, 0x5f, 0x6f, + 0x1f, 0x1a, 0x46, 0x23, 0x34, 0xb0, 0x7e, 0x46, 0xd6, 0xb8, 0xce, 0x7b, + 0x3d, 0xee, 0xf2, 0x93, 0x3f, 0x8e, 0x85, 0x52, 0xdc, 0x32, 0xb3, 0x35, + 0x3c, 0x39, 0xe9, 0xc5, 0xe0, 0x42, 0x49, 0x94, 0x2d, 0xb9, 0x40, 0x3f, + 0x65, 0x57, 0x6d, 0x46, 0x09, 0x4c, 0x3b, 0xc9, 0x3e, 0xdb, 0xa5, 0xdb, + 0xff, 0xcc, 0x2d, 0xe4, 0xc6, 0x71, 0xae, 0xed, 0x34, 0x4d, 0x97, 0xf9, + 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0xab, 0x6f, 0xf4, 0xa4, 0x0f, 0x0c, 0x48, + 0xeb, 0xec, 0xeb, 0xf8, 0xeb, 0x2a, 0x30, 0xf4, 0x84, 0xca, 0xff, 0x73, + 0x1b, 0x1f, 0xfd, 0x59, 0xd7, 0xfd, 0x1d, 0x89, 0xf9, 0x18, 0x13, 0xab, + 0x87, 0xd9, 0xd3, 0x5b, 0xf4, 0x71, 0x7d, 0x09, 0xd7, 0x83, 0x82, 0x75, + 0xe7, 0x76, 0x9a, 0x2b, 0x4b, 0xf2, 0x9b, 0xe8, 0x1b, 0x9d, 0x4d, 0x3d, + 0x24, 0x27, 0xbf, 0xfc, 0x9e, 0x94, 0x37, 0xa9, 0xed, 0x3e, 0xe7, 0x57, + 0x0f, 0xab, 0x61, 0x0d, 0xff, 0xee, 0xa2, 0xe1, 0xb8, 0xbc, 0x1f, 0x6d, + 0x9d, 0x7f, 0xfc, 0xd8, 0xe6, 0x7e, 0xeb, 0x79, 0x42, 0x34, 0xeb, 0xff, + 0xe9, 0x6b, 0x06, 0x16, 0xf9, 0xef, 0x42, 0xce, 0xbb, 0xde, 0x84, 0x4c, + 0xba, 0x6d, 0xff, 0xff, 0xe8, 0xd8, 0x9e, 0xd6, 0x28, 0xde, 0xa7, 0xb2, + 0x61, 0x85, 0xcf, 0x8c, 0x9d, 0x7f, 0xa3, 0xcf, 0xdf, 0x81, 0x83, 0xaf, + 0xa5, 0xe4, 0x9c, 0xeb, 0xf7, 0xdf, 0x0c, 0x7e, 0x75, 0x6e, 0x79, 0x7b, + 0x08, 0xaf, 0xf3, 0xcb, 0xc9, 0x3f, 0x50, 0xea, 0x83, 0xd7, 0x42, 0x5b, + 0xf6, 0x75, 0x31, 0x67, 0x5f, 0xfc, 0x2e, 0x8d, 0xeb, 0x82, 0x7e, 0x21, + 0xd5, 0x39, 0xf3, 0xf4, 0x96, 0xff, 0x4a, 0x39, 0x3c, 0x72, 0x73, 0xaf, + 0x67, 0x3f, 0x3a, 0xfd, 0x36, 0x05, 0x6a, 0xe7, 0x5f, 0xc3, 0x0c, 0xef, + 0x2d, 0x1d, 0x48, 0x7e, 0xb3, 0x0e, 0x6d, 0x15, 0xd4, 0x23, 0x6f, 0x21, + 0x53, 0x7f, 0xff, 0xff, 0x62, 0x37, 0x3d, 0x03, 0xed, 0x7c, 0x84, 0x0e, + 0x2f, 0xe7, 0x21, 0x24, 0xfa, 0x3a, 0xfe, 0xcf, 0x38, 0xfe, 0x03, 0xaf, + 0xee, 0xfc, 0x49, 0xdc, 0x4e, 0xa9, 0x1e, 0xd6, 0x16, 0x59, 0x85, 0x52, + 0xf7, 0x2c, 0x42, 0x5a, 0x72, 0x20, 0x93, 0xe4, 0x35, 0x9a, 0x48, 0x90, + 0xe3, 0xe1, 0x6a, 0xde, 0xbb, 0x0d, 0x57, 0x84, 0x38, 0xc3, 0xfb, 0x44, + 0xde, 0x87, 0x0d, 0xfe, 0x63, 0x38, 0xd7, 0x76, 0x9a, 0x2c, 0x0b, 0xf7, + 0x1a, 0xee, 0xd3, 0x44, 0xeb, 0x7f, 0xff, 0xbb, 0x13, 0x87, 0x16, 0xc6, + 0xb5, 0x9d, 0x4d, 0x02, 0x73, 0xaf, 0xcc, 0x2d, 0xe4, 0xc6, 0x22, 0x5a, + 0x63, 0x3b, 0xfd, 0x2d, 0x30, 0xa2, 0x90, 0xb3, 0xaf, 0xdc, 0x6b, 0xbb, + 0x4d, 0x16, 0xcd, 0xff, 0xfe, 0x79, 0x31, 0xa8, 0x4c, 0x0a, 0x66, 0xb3, + 0xc3, 0x07, 0x5f, 0xfb, 0xf8, 0xd3, 0x1d, 0x46, 0xbf, 0x0e, 0xbf, 0xe8, + 0x94, 0x72, 0x78, 0xe4, 0xe7, 0x59, 0x8c, 0x4c, 0x1d, 0x66, 0x6e, 0xb8, + 0x27, 0xf7, 0xff, 0xe7, 0xff, 0xf0, 0x69, 0x8c, 0xe3, 0xeb, 0xaf, 0x23, + 0xaf, 0x9a, 0xee, 0xd3, 0x45, 0xcd, 0x65, 0x9d, 0x5c, 0x37, 0xac, 0x96, + 0xdf, 0xee, 0x0e, 0x6f, 0xfa, 0x48, 0xeb, 0xa6, 0x59, 0xd4, 0x75, 0x98, + 0xc3, 0xf6, 0x42, 0x26, 0x4c, 0xf6, 0xc5, 0xef, 0xdc, 0x6b, 0xbb, 0x4d, + 0x17, 0x7d, 0xfe, 0x93, 0x1a, 0xe7, 0x11, 0x93, 0xac, 0xc6, 0x1f, 0x43, + 0x99, 0xdf, 0x30, 0xa0, 0x7f, 0x3a, 0xa1, 0xf2, 0x91, 0xb2, 0xde, 0x5f, + 0xb4, 0xd7, 0x75, 0x74, 0x9f, 0x76, 0xe4, 0x3b, 0x17, 0x0d, 0x57, 0x42, + 0xfe, 0x33, 0xd1, 0x42, 0xd4, 0x61, 0x5e, 0x85, 0x6f, 0xd2, 0x7b, 0xff, + 0x32, 0xe3, 0x3e, 0x90, 0x77, 0x91, 0xd7, 0xff, 0x64, 0xf8, 0xcf, 0x73, + 0x58, 0x82, 0x75, 0xc8, 0xc7, 0x51, 0x02, 0x27, 0xf7, 0xed, 0x69, 0x6f, + 0x23, 0xaf, 0xff, 0xff, 0xfd, 0xd4, 0xea, 0x40, 0xf8, 0x5d, 0x4c, 0xf0, + 0x3c, 0x9e, 0xd7, 0x53, 0x91, 0x3b, 0xf1, 0xa7, 0x5d, 0xa8, 0x3a, 0xff, + 0xed, 0xda, 0x07, 0xdf, 0xd9, 0x82, 0xa1, 0xd7, 0x85, 0xd8, 0x84, 0xc6, + 0x1a, 0x4f, 0xa8, 0x4b, 0xf8, 0x56, 0xf0, 0x1d, 0x67, 0x5f, 0xb3, 0x6b, + 0xd0, 0xa1, 0xd6, 0xda, 0x3a, 0xa7, 0x37, 0xb8, 0x55, 0x5c, 0x3f, 0x91, + 0x58, 0xbf, 0xf6, 0x9d, 0x4e, 0xa4, 0x08, 0x20, 0xeb, 0xff, 0x75, 0xfc, + 0xfd, 0xde, 0x59, 0xe3, 0xab, 0x0f, 0xe9, 0x0f, 0x2e, 0x7f, 0xce, 0xbf, + 0xff, 0xfc, 0x2e, 0xc8, 0xe7, 0xbd, 0x93, 0xc0, 0xba, 0x9a, 0x5c, 0x60, + 0x84, 0xea, 0xc4, 0x45, 0x70, 0x5a, 0xff, 0x77, 0x02, 0x9b, 0x39, 0x87, + 0x5e, 0x77, 0x69, 0xa2, 0x57, 0xbf, 0xca, 0x38, 0xff, 0xec, 0xe9, 0xd4, + 0xd3, 0xda, 0x42, 0x7b, 0xff, 0xde, 0xee, 0x49, 0xbd, 0x40, 0xc0, 0xf8, + 0xea, 0x92, 0x3d, 0xb9, 0x08, 0xd1, 0x21, 0xba, 0x53, 0x9d, 0x7f, 0xe1, + 0x76, 0x43, 0xd8, 0x9f, 0x19, 0x3a, 0xff, 0xfd, 0x89, 0xfe, 0x2d, 0x3d, + 0xa8, 0x5b, 0xef, 0xe3, 0xaf, 0xfa, 0x17, 0xec, 0x9a, 0x49, 0xe3, 0xaa, + 0x48, 0x8c, 0xf2, 0xa5, 0xf0, 0x1f, 0x92, 0x3a, 0xff, 0xa1, 0xa3, 0x13, + 0xfe, 0xfe, 0x3a, 0xff, 0xff, 0x27, 0x9d, 0x6e, 0x3f, 0xf5, 0x97, 0x19, + 0xda, 0x93, 0x9d, 0x41, 0x45, 0xd2, 0x10, 0xb9, 0xc5, 0xff, 0x03, 0xf5, + 0xbc, 0xb5, 0xc0, 0x9d, 0x7f, 0xff, 0xb1, 0x07, 0xd8, 0x3f, 0x05, 0xc3, + 0x03, 0x3c, 0x70, 0xeb, 0x67, 0x91, 0x2f, 0xb0, 0xea, 0xff, 0xb7, 0xff, + 0x39, 0x99, 0xed, 0x1d, 0x41, 0x55, 0xa1, 0x90, 0xcb, 0xec, 0x37, 0x46, + 0x18, 0xbf, 0x4a, 0xaf, 0xfd, 0xe7, 0x96, 0xbb, 0x1c, 0xfa, 0x13, 0xaf, + 0xfe, 0xf2, 0x6c, 0x4f, 0x4d, 0x28, 0x1f, 0x1d, 0x7f, 0xf9, 0xf2, 0x5d, + 0xc4, 0x1c, 0xff, 0x6f, 0x0e, 0xbc, 0xf2, 0x62, 0x17, 0xa8, 0x65, 0x09, + 0xb0, 0xc2, 0xab, 0x23, 0x18, 0x59, 0xa6, 0xa5, 0x73, 0xf9, 0x6f, 0xea, + 0x06, 0xd2, 0x2d, 0xff, 0xec, 0xeb, 0x03, 0x81, 0x41, 0xf6, 0x74, 0xeb, + 0xde, 0x80, 0x95, 0x7f, 0xfb, 0xae, 0x9e, 0x89, 0x27, 0x27, 0x07, 0xe5, + 0x5f, 0xe7, 0x6b, 0x01, 0xe2, 0xa5, 0x88, 0x3e, 0x5d, 0x0d, 0xd9, 0x80, + 0xb2, 0x97, 0x1b, 0x1a, 0x32, 0xe7, 0xdb, 0x7d, 0x0a, 0xdd, 0x90, 0xac, + 0xbf, 0xfc, 0xc2, 0xde, 0x4c, 0x67, 0x1a, 0xee, 0xd3, 0x44, 0xc3, 0x7f, + 0xff, 0x66, 0xc7, 0x0f, 0x61, 0x8f, 0x77, 0x02, 0x0f, 0x68, 0xeb, 0xff, + 0xdc, 0x7f, 0xd8, 0x53, 0xd2, 0x66, 0x35, 0x23, 0xae, 0xc6, 0x05, 0x15, + 0x7f, 0x57, 0x6f, 0xfe, 0x54, 0x66, 0xf2, 0x03, 0xf8, 0x62, 0x47, 0x5f, + 0xb1, 0x7f, 0x37, 0x57, 0x3a, 0xfe, 0x85, 0xe7, 0xf1, 0xb0, 0xea, 0x09, + 0xed, 0xf4, 0xb6, 0xff, 0x73, 0x1b, 0x1f, 0xfd, 0x59, 0xd7, 0xee, 0xc0, + 0x51, 0x43, 0xa9, 0x0f, 0xfb, 0x84, 0x5b, 0x46, 0xb7, 0xfa, 0x1e, 0x7f, + 0x28, 0xfc, 0x3a, 0xfc, 0xfc, 0x93, 0xac, 0xea, 0x13, 0xd9, 0x01, 0x9d, + 0xff, 0xf9, 0x39, 0xd7, 0xf8, 0x1c, 0x97, 0x63, 0x60, 0x60, 0xeb, 0xfe, + 0x67, 0xef, 0x61, 0xbd, 0x49, 0x8e, 0xbe, 0x02, 0xf0, 0x27, 0x5b, 0x37, + 0x3d, 0xdd, 0xa3, 0xca, 0xea, 0x37, 0xc6, 0x16, 0x97, 0xf2, 0xe3, 0x07, + 0xdb, 0x67, 0x5b, 0x47, 0x5f, 0xa3, 0x07, 0xdb, 0x67, 0x5f, 0xdd, 0x4f, + 0x69, 0xf7, 0xf8, 0x7c, 0xd3, 0x17, 0x2c, 0x42, 0xff, 0x4b, 0xd0, 0xbd, + 0x9f, 0xc8, 0xeb, 0xff, 0xfc, 0xce, 0xd7, 0xb3, 0xbf, 0x07, 0x27, 0x4c, + 0x1d, 0xe5, 0xa3, 0xaf, 0xcc, 0xfb, 0x3a, 0xd3, 0xac, 0x38, 0x88, 0xe7, + 0x66, 0xbf, 0xfd, 0xe1, 0x7f, 0xfb, 0x88, 0x10, 0x7b, 0x47, 0x5f, 0xf4, + 0x4f, 0xf6, 0x5d, 0x03, 0xce, 0x75, 0x42, 0x21, 0x78, 0x93, 0x7f, 0xf6, + 0x6f, 0x2f, 0x9d, 0x76, 0xc0, 0x84, 0xeb, 0xfb, 0x67, 0xdf, 0x0c, 0x7e, + 0x75, 0xff, 0xe8, 0xf7, 0xf1, 0x2c, 0xdf, 0xd3, 0x81, 0x93, 0xaa, 0x0f, + 0xf9, 0x0c, 0x6f, 0xe7, 0xff, 0x9c, 0x4e, 0x1d, 0x7b, 0xdf, 0x30, 0xea, + 0xfc, 0xf2, 0xbe, 0x96, 0xdf, 0xda, 0x45, 0x16, 0xfe, 0x3a, 0xff, 0xff, + 0xdc, 0xcd, 0x90, 0x3e, 0xf9, 0xf4, 0x63, 0xae, 0x9e, 0x8f, 0x68, 0xeb, + 0xf8, 0x73, 0x5f, 0x1a, 0xaa, 0x3a, 0xb7, 0x46, 0x6f, 0x0b, 0x76, 0x37, + 0x5f, 0x7c, 0xd9, 0xb5, 0x39, 0xd5, 0x87, 0xba, 0xa1, 0x9d, 0x95, 0xce, + 0xbb, 0xd8, 0x75, 0xff, 0xe5, 0x48, 0xc2, 0xdd, 0x3a, 0xfe, 0xec, 0x1d, + 0x50, 0x7b, 0xe0, 0x15, 0xbf, 0xdd, 0x49, 0x9d, 0xba, 0x91, 0xd7, 0xfa, + 0x07, 0xce, 0xb4, 0xf1, 0xd7, 0xfd, 0x89, 0x8b, 0x1c, 0x9d, 0xce, 0xbf, + 0x47, 0xb5, 0xf8, 0x0e, 0xa5, 0x65, 0x35, 0x3c, 0x72, 0x69, 0x0f, 0x4c, + 0xc4, 0xc3, 0xc6, 0xb7, 0xff, 0xee, 0x8e, 0x7b, 0xa9, 0x9b, 0xfb, 0x36, + 0x46, 0x8e, 0xbf, 0xf9, 0xc7, 0xb0, 0x81, 0x4d, 0x64, 0x8e, 0xbd, 0x1f, + 0xfd, 0x3a, 0xb1, 0x16, 0x6e, 0xaa, 0x28, 0x17, 0xbe, 0x87, 0x0e, 0xbc, + 0xa9, 0xd2, 0xa8, 0xea, 0x73, 0xc1, 0xd0, 0xed, 0xfe, 0x17, 0x66, 0x3d, + 0x93, 0x9d, 0x66, 0x15, 0x4c, 0xad, 0xd8, 0x8c, 0x80, 0x30, 0x8a, 0xc8, + 0xc0, 0x1b, 0x08, 0xdd, 0xd5, 0x66, 0x86, 0x27, 0x21, 0x56, 0xb2, 0x2e, + 0xc3, 0x0f, 0xf6, 0xa1, 0x8d, 0x3f, 0x51, 0xba, 0xfa, 0x30, 0xe0, 0x37, + 0x6d, 0x90, 0xdf, 0xff, 0x71, 0x37, 0x96, 0x93, 0xdd, 0x8e, 0x7a, 0x0e, + 0xbf, 0x71, 0xae, 0xed, 0x34, 0x55, 0xd7, 0xb9, 0x0b, 0x3a, 0xff, 0xa4, + 0xc6, 0x71, 0xae, 0xed, 0x34, 0x47, 0x97, 0xfd, 0x12, 0x8e, 0x4f, 0x1c, + 0x9c, 0xeb, 0xff, 0x47, 0x90, 0x0a, 0x9c, 0x94, 0xf3, 0x1d, 0x66, 0x02, + 0x9a, 0xf6, 0x27, 0xf0, 0xcd, 0xc6, 0xc5, 0x17, 0x47, 0x37, 0xee, 0x35, + 0xdd, 0xa6, 0x8b, 0x06, 0xf2, 0x91, 0x39, 0xd7, 0xff, 0xf0, 0x81, 0xe7, + 0x5e, 0x6d, 0x83, 0x99, 0xc9, 0x7d, 0x91, 0xd7, 0xec, 0x1c, 0xf6, 0x8e, + 0xbf, 0xdc, 0x75, 0xfd, 0xe3, 0xee, 0x75, 0x98, 0xc4, 0xc2, 0x94, 0x33, + 0x68, 0xeb, 0xb0, 0x7d, 0x25, 0xbf, 0xcc, 0x67, 0x1a, 0xee, 0xd3, 0x45, + 0x95, 0x7e, 0xe3, 0x5d, 0xda, 0x68, 0xb4, 0xef, 0xf9, 0xc3, 0xd7, 0x9b, + 0xa8, 0xb3, 0xac, 0xc6, 0x1f, 0x5a, 0xcc, 0xef, 0xca, 0xd1, 0x57, 0xab, + 0x2a, 0xca, 0xb6, 0x75, 0xff, 0x2a, 0xba, 0x8c, 0x85, 0xdd, 0xa7, 0x5f, + 0x95, 0xa2, 0xa3, 0x59, 0x07, 0x5f, 0xef, 0xab, 0xcf, 0x69, 0x34, 0x75, + 0x90, 0xea, 0x55, 0x1e, 0x1e, 0xd9, 0xa5, 0xff, 0xfc, 0x9d, 0x71, 0xf4, + 0xb3, 0x99, 0x02, 0x39, 0xe3, 0xaf, 0xdb, 0x1c, 0x38, 0xb3, 0xaf, 0x97, + 0x1b, 0xe8, 0xea, 0x92, 0x27, 0xf1, 0x56, 0x62, 0x8b, 0xf7, 0xce, 0x70, + 0x1d, 0x3a, 0xfc, 0x8a, 0x40, 0xb4, 0xeb, 0x66, 0x8f, 0x43, 0xc5, 0x57, + 0xff, 0xc2, 0xde, 0xa7, 0x53, 0x91, 0x33, 0x39, 0xd3, 0xaf, 0xfc, 0xb5, + 0xbc, 0xb6, 0xc1, 0xd4, 0xe1, 0xd7, 0xe7, 0xd7, 0xa0, 0x27, 0x54, 0x1f, + 0x38, 0x10, 0x6a, 0x11, 0xaf, 0xd8, 0x5b, 0x5f, 0x47, 0xd8, 0xe9, 0xd7, + 0xcd, 0x77, 0x69, 0xa2, 0xdc, 0xbf, 0xf6, 0x73, 0x07, 0xe7, 0x73, 0x76, + 0x4e, 0xbf, 0x0f, 0xef, 0xbe, 0x8e, 0xa8, 0x3e, 0x87, 0x40, 0xad, 0xd1, + 0xaf, 0xc2, 0x2d, 0x42, 0x56, 0xff, 0x38, 0xff, 0x30, 0xc2, 0xce, 0xbc, + 0xb1, 0x43, 0xac, 0x27, 0x5f, 0xf7, 0x40, 0xfa, 0xcc, 0x15, 0x0e, 0xbf, + 0x69, 0xf7, 0x70, 0x9d, 0x64, 0x09, 0xef, 0x78, 0xde, 0xa1, 0x15, 0xd8, + 0x35, 0xd6, 0xdb, 0xfe, 0x87, 0x1e, 0xe6, 0x0b, 0x4e, 0xbf, 0xde, 0xf2, + 0x4e, 0xb8, 0x13, 0xaa, 0x47, 0xcd, 0x86, 0x97, 0xfd, 0x02, 0x05, 0xc6, + 0xbc, 0x87, 0x5f, 0x06, 0x33, 0x87, 0x5f, 0xbe, 0x6f, 0xa4, 0x50, 0xeb, + 0x3c, 0xe7, 0x97, 0xb9, 0x05, 0xff, 0xd2, 0xce, 0xa7, 0x03, 0xd8, 0x16, + 0x9d, 0x7f, 0xb7, 0x94, 0x0f, 0xb3, 0xf3, 0xaf, 0xb5, 0xfa, 0x78, 0xea, + 0x74, 0x60, 0x68, 0xa4, 0x08, 0x5f, 0x4c, 0xef, 0xfe, 0xf2, 0x7f, 0x12, + 0x0f, 0x60, 0x5a, 0x75, 0x1d, 0x78, 0x0f, 0xe3, 0xae, 0x04, 0x1d, 0x52, + 0x36, 0x1e, 0x1b, 0xa3, 0xaf, 0xb7, 0x6a, 0x70, 0xeb, 0xd0, 0xb6, 0x31, + 0x10, 0xfb, 0x9d, 0x2c, 0x87, 0xc1, 0x55, 0x09, 0x8c, 0xa4, 0x32, 0xaf, + 0x0f, 0xb6, 0xce, 0xbf, 0xe9, 0x31, 0x9c, 0x6b, 0xbb, 0x4d, 0x14, 0x3d, + 0x21, 0xf1, 0xb8, 0xf5, 0xfb, 0xf8, 0x6e, 0x2c, 0xeb, 0xe8, 0x9b, 0x02, + 0x75, 0x70, 0xf2, 0x34, 0x4f, 0x7f, 0xd9, 0x01, 0xec, 0x6d, 0x44, 0xc7, + 0x5f, 0xef, 0xd3, 0xbd, 0xcf, 0xdc, 0xea, 0x59, 0xf6, 0xfe, 0x75, 0x50, + 0x8b, 0x27, 0x84, 0x7d, 0xff, 0x9c, 0x30, 0x1e, 0xa0, 0xa2, 0xce, 0xbf, + 0xfb, 0x50, 0x33, 0x60, 0xfe, 0xfe, 0xc3, 0xaf, 0xf6, 0x80, 0xdc, 0xf0, + 0xc1, 0xd4, 0xb4, 0x57, 0x74, 0xef, 0xc8, 0x57, 0xff, 0x02, 0x5d, 0x7e, + 0x6f, 0xe8, 0x49, 0xce, 0xbf, 0xe8, 0x94, 0x72, 0x78, 0xe4, 0xe7, 0x5f, + 0x93, 0xda, 0x74, 0x3a, 0xff, 0xb9, 0xff, 0x1c, 0x7d, 0x9f, 0x9d, 0x5f, + 0x9e, 0xf0, 0x09, 0x6f, 0x7d, 0xe4, 0x8e, 0xbf, 0xbe, 0xf8, 0x11, 0x93, + 0x9d, 0x52, 0x3c, 0xd9, 0x87, 0xaf, 0xfe, 0x68, 0xc7, 0x87, 0x36, 0x67, + 0x24, 0x75, 0xff, 0x00, 0x54, 0xfb, 0xde, 0x83, 0x47, 0x5f, 0xe1, 0x17, + 0xf7, 0xd8, 0x69, 0xd7, 0xc3, 0xfc, 0xff, 0x9d, 0x58, 0x7a, 0xc8, 0x65, + 0x7f, 0xb5, 0xf3, 0xdf, 0x03, 0x82, 0x75, 0xbf, 0x3a, 0xc9, 0xb9, 0xe3, + 0xf0, 0xda, 0xfc, 0xfb, 0xeb, 0xc8, 0x75, 0x42, 0x75, 0xd8, 0x46, 0x88, + 0x7d, 0x84, 0x90, 0xb3, 0xe8, 0xa2, 0xfc, 0xe0, 0x52, 0x3e, 0x9d, 0x7e, + 0x55, 0x67, 0x23, 0x47, 0x54, 0xc7, 0xa6, 0x25, 0x37, 0xfc, 0xfa, 0x89, + 0xb7, 0x96, 0x6c, 0x3a, 0xff, 0xfc, 0x1e, 0xc7, 0xd6, 0x3c, 0x2f, 0xfe, + 0xb5, 0x1f, 0x95, 0x70, 0x70, 0xeb, 0xf4, 0xf1, 0x3b, 0xe8, 0xea, 0xc4, + 0x4b, 0x22, 0xcb, 0x8a, 0xdd, 0xf8, 0x0e, 0xbf, 0x9f, 0xf9, 0x86, 0x02, + 0x75, 0x41, 0xe2, 0x74, 0x5e, 0xcc, 0x2b, 0x0d, 0x83, 0x62, 0xb6, 0x86, + 0xab, 0xcf, 0x15, 0x67, 0x38, 0x86, 0x44, 0xa1, 0x00, 0x18, 0x7f, 0x64, + 0x3f, 0x94, 0x36, 0x6c, 0x38, 0x37, 0x84, 0xa2, 0x10, 0xcd, 0x1a, 0x0f, + 0x23, 0x57, 0x5c, 0x22, 0xbb, 0x18, 0xd3, 0xc3, 0x53, 0xf3, 0x01, 0x45, + 0xd4, 0x25, 0xfd, 0x28, 0x78, 0x10, 0xac, 0xd8, 0x45, 0xb7, 0x0d, 0x1f, + 0xae, 0x37, 0xf3, 0x13, 0xc7, 0x24, 0xb3, 0xaf, 0xf3, 0x19, 0xc6, 0xbb, + 0xb4, 0xd1, 0x79, 0xd4, 0x3a, 0x42, 0x89, 0x37, 0x86, 0x30, 0x2c, 0xa5, + 0x86, 0xef, 0x2a, 0x03, 0x91, 0xb3, 0x2d, 0x4f, 0xb0, 0xaa, 0x1a, 0xc2, + 0x53, 0x51, 0xe2, 0xec, 0x2f, 0xbf, 0xcc, 0x67, 0x1a, 0xee, 0xd3, 0x45, + 0x2d, 0x7e, 0xe3, 0x5d, 0xda, 0x68, 0xb0, 0xaf, 0xff, 0xd1, 0x82, 0x18, + 0xec, 0x6f, 0xec, 0x17, 0x59, 0xd7, 0xf0, 0x38, 0x93, 0xba, 0xce, 0xb3, + 0x18, 0x8b, 0x15, 0x99, 0xed, 0xa8, 0xdf, 0xe6, 0x33, 0x8d, 0x77, 0x69, + 0xa2, 0xcb, 0xbb, 0x8a, 0x1d, 0x7c, 0xc2, 0x8a, 0xb2, 0xb0, 0x75, 0xe6, + 0x3e, 0xac, 0xea, 0x69, 0xe6, 0x80, 0xba, 0x85, 0x10, 0xda, 0x64, 0xb7, + 0xe7, 0x5c, 0xa4, 0xe7, 0x5c, 0xfc, 0x91, 0xa9, 0xc1, 0x1b, 0xfe, 0x7d, + 0xc7, 0x37, 0xf4, 0x28, 0x75, 0xfe, 0x9f, 0x7d, 0x40, 0x7c, 0x87, 0x5f, + 0xa3, 0x36, 0x46, 0x8e, 0xb4, 0x39, 0xed, 0xb2, 0x69, 0x4e, 0x8b, 0xb1, + 0x84, 0xa5, 0xf3, 0xca, 0x41, 0x3a, 0xfe, 0x7e, 0x47, 0x9f, 0xa7, 0x5e, + 0x65, 0x96, 0x4a, 0xbf, 0xe8, 0x96, 0xfe, 0xe4, 0x66, 0xe5, 0x30, 0x5f, + 0xdf, 0xf0, 0x1f, 0x7c, 0xf2, 0x6e, 0xc9, 0xd7, 0x46, 0x8e, 0xa0, 0xa6, + 0x07, 0xd2, 0x11, 0x4a, 0xd2, 0x4e, 0xc3, 0xab, 0xf9, 0x1f, 0x5f, 0xe8, + 0x07, 0x5f, 0xff, 0xdd, 0x4f, 0x77, 0x34, 0x38, 0xb0, 0x6b, 0xaf, 0x23, + 0xaf, 0xf4, 0x4b, 0xcf, 0xd7, 0x09, 0xd5, 0x88, 0x8a, 0xe2, 0xcd, 0xa4, + 0x75, 0xa4, 0x75, 0xa4, 0x75, 0x41, 0xb0, 0x50, 0x41, 0x04, 0x2f, 0xff, + 0xde, 0xd2, 0x37, 0x07, 0x90, 0x38, 0x1c, 0x50, 0xeb, 0x6e, 0x75, 0xda, + 0x01, 0xd5, 0x87, 0xf3, 0xa5, 0x2f, 0x08, 0xdc, 0x90, 0x75, 0xfc, 0x30, + 0xb1, 0x8c, 0x3a, 0xe9, 0x41, 0xd4, 0x13, 0xd2, 0x98, 0x50, 0x05, 0x37, + 0xff, 0xff, 0xdd, 0x8f, 0x69, 0x35, 0xa8, 0xf7, 0x52, 0x39, 0xfa, 0xde, + 0x52, 0xf2, 0x87, 0x5c, 0x9b, 0x9d, 0x74, 0x2c, 0xeb, 0xff, 0xfa, 0x50, + 0x20, 0x94, 0xa3, 0xdd, 0xc5, 0xfd, 0x8f, 0xce, 0xb9, 0xac, 0x42, 0xf0, + 0x54, 0xe9, 0x61, 0x87, 0x36, 0x46, 0x52, 0xd4, 0xce, 0x42, 0xdd, 0xd4, + 0x86, 0x14, 0xda, 0x84, 0x07, 0x8c, 0x36, 0x3f, 0x6d, 0x8b, 0x7d, 0x15, + 0xbf, 0xfc, 0xc2, 0xde, 0x4c, 0x67, 0x1a, 0xee, 0xd3, 0x45, 0x19, 0x7e, + 0xd9, 0x1c, 0x8f, 0xce, 0xbf, 0x0b, 0xff, 0x1f, 0x4e, 0xbf, 0xfb, 0x76, + 0xa7, 0x3b, 0x98, 0x32, 0xd1, 0xd6, 0x62, 0x11, 0x29, 0xd2, 0x9f, 0x14, + 0x54, 0x99, 0x3f, 0x3c, 0x87, 0x82, 0xce, 0x5e, 0x7b, 0x3f, 0x50, 0xe0, + 0xf4, 0x3a, 0xef, 0xfe, 0x61, 0xe4, 0xc6, 0x71, 0xae, 0xed, 0x34, 0x47, + 0x37, 0xff, 0x98, 0x5b, 0xc9, 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0x9c, 0xaf, + 0xf3, 0x19, 0xc6, 0xbb, 0xb4, 0xd1, 0x66, 0x5f, 0xf4, 0xb4, 0xeb, 0x63, + 0xbe, 0xfc, 0xeb, 0xfe, 0x55, 0xc1, 0xc5, 0xc6, 0xf0, 0xb3, 0xaf, 0xfb, + 0xfe, 0x47, 0xba, 0xfb, 0xc8, 0xeb, 0xfd, 0x9a, 0xe7, 0x33, 0x7d, 0x1d, + 0x7f, 0x71, 0xbd, 0x74, 0x54, 0x9d, 0x76, 0xeb, 0x3a, 0xcc, 0x2b, 0x08, + 0xf2, 0x83, 0xe9, 0x1d, 0x00, 0xcf, 0x6c, 0xc2, 0xff, 0x31, 0x9c, 0x6b, + 0xbb, 0x4d, 0x16, 0xed, 0xfc, 0x2e, 0xc7, 0x27, 0xe9, 0xd7, 0x93, 0x7f, + 0xce, 0xbf, 0x71, 0xae, 0xed, 0x34, 0x52, 0x17, 0xfe, 0xce, 0xa6, 0xce, + 0xe6, 0x0b, 0x4e, 0xbc, 0xf2, 0x63, 0x0f, 0xc3, 0x46, 0x76, 0x61, 0xa8, + 0xee, 0xe1, 0x72, 0xe1, 0x1b, 0x7f, 0xf3, 0x0f, 0x26, 0x33, 0x8d, 0x77, + 0x69, 0xa2, 0x52, 0xa9, 0xd7, 0x09, 0xa6, 0x51, 0x5a, 0xbb, 0x9f, 0xff, + 0x19, 0x68, 0xac, 0x7a, 0x32, 0xdd, 0xa3, 0xcb, 0xfd, 0x24, 0x1f, 0x62, + 0x04, 0xeb, 0xda, 0x02, 0xce, 0xb3, 0x1b, 0x9e, 0x62, 0x18, 0x5e, 0x17, + 0x91, 0xd7, 0xfe, 0x79, 0x31, 0x9c, 0x6b, 0xbb, 0x4d, 0x13, 0xb5, 0xd3, + 0xab, 0x9d, 0x7f, 0xfe, 0x40, 0x81, 0x71, 0xb4, 0xe1, 0x18, 0x1c, 0x69, + 0xd7, 0xfd, 0x12, 0x8e, 0x4f, 0x1c, 0x9c, 0xeb, 0x31, 0x89, 0x85, 0xac, + 0x6b, 0xa9, 0x4e, 0x34, 0x2a, 0x97, 0xff, 0xcc, 0x7d, 0xdb, 0x71, 0xff, + 0x3d, 0x02, 0x9f, 0x9d, 0x7f, 0xf3, 0xaf, 0xb8, 0xd7, 0xec, 0x7d, 0x91, + 0xd7, 0x90, 0x2e, 0x75, 0xff, 0xc3, 0x9d, 0x79, 0xf3, 0x42, 0xfb, 0x9d, + 0x76, 0xdb, 0x01, 0x45, 0x07, 0x51, 0x34, 0x35, 0x52, 0x55, 0x6e, 0xb8, + 0xcd, 0x34, 0x9f, 0xb7, 0x0f, 0x4b, 0xff, 0xf8, 0x2f, 0xe6, 0x33, 0x50, + 0x3b, 0xff, 0xad, 0x47, 0xe7, 0x5f, 0xb8, 0xd7, 0x76, 0x9a, 0x22, 0xcb, + 0xff, 0x3c, 0x98, 0xce, 0x35, 0xdd, 0xa6, 0x89, 0x76, 0xff, 0xfe, 0xc0, + 0xf6, 0x3e, 0xb1, 0xe1, 0x7f, 0xf5, 0xa8, 0xfc, 0xab, 0x31, 0x88, 0xdb, + 0x59, 0x9e, 0xda, 0x55, 0xff, 0xe6, 0x16, 0xf2, 0x63, 0x38, 0xd7, 0x76, + 0x9a, 0x26, 0x2b, 0xf7, 0x1a, 0xee, 0xd3, 0x45, 0x53, 0x6c, 0x3a, 0xb0, + 0xf0, 0x94, 0x33, 0xbf, 0xff, 0xfd, 0xc7, 0xee, 0xf2, 0xcf, 0x31, 0xd7, + 0xd7, 0x11, 0x9f, 0x75, 0x39, 0x23, 0xa9, 0x84, 0x4e, 0x39, 0x15, 0xff, + 0xe6, 0x16, 0xf2, 0x63, 0x38, 0xd7, 0x76, 0x9a, 0x27, 0x4b, 0xfc, 0x8f, + 0xc8, 0x93, 0xec, 0x3a, 0xfd, 0x34, 0x4d, 0x1a, 0x3a, 0xfe, 0x67, 0x13, + 0x66, 0x09, 0xd4, 0x87, 0xab, 0xa2, 0x8b, 0xc9, 0xd8, 0x39, 0x83, 0x43, + 0x7f, 0xf0, 0x35, 0xe8, 0xdd, 0x80, 0x4c, 0x8b, 0x3a, 0x96, 0x7e, 0x5d, + 0x2b, 0xbf, 0xf3, 0xc9, 0x8c, 0xe3, 0x5d, 0xda, 0x68, 0x9d, 0xef, 0xde, + 0x03, 0xad, 0x0a, 0xbf, 0xf0, 0xc7, 0xb3, 0x59, 0x9b, 0xc8, 0xea, 0x0a, + 0x7d, 0x19, 0x18, 0xd2, 0xc8, 0x9d, 0x2b, 0xc4, 0xd7, 0xf4, 0x31, 0xf8, + 0xe0, 0x4e, 0xa6, 0x0f, 0xf0, 0x53, 0xef, 0xff, 0x30, 0xb7, 0x93, 0x19, + 0xc6, 0xbb, 0xb4, 0xd1, 0x42, 0xdf, 0xff, 0xfe, 0xe8, 0x16, 0xb7, 0x93, + 0x0d, 0xe8, 0x3d, 0x03, 0x93, 0xa8, 0x08, 0x98, 0xeb, 0xf0, 0x37, 0xf2, + 0x34, 0xeb, 0xf6, 0x7f, 0x8e, 0x27, 0x5e, 0x8f, 0xd8, 0x9c, 0xf3, 0x44, + 0xa2, 0x91, 0x1f, 0xa3, 0x0c, 0x8b, 0xff, 0xcc, 0x2d, 0xe4, 0xc6, 0x71, + 0xae, 0xed, 0x34, 0x52, 0x57, 0xff, 0xfb, 0x34, 0xc7, 0xdc, 0x9b, 0xae, + 0xbf, 0x76, 0x3c, 0x05, 0x9d, 0x50, 0xbf, 0xb7, 0x3c, 0x67, 0x12, 0x39, + 0x6c, 0x66, 0xbc, 0x23, 0x5c, 0xab, 0xbf, 0xc8, 0xbd, 0x1a, 0xa0, 0x09, + 0xb6, 0xd5, 0xef, 0xf3, 0x19, 0xc6, 0xbb, 0xb4, 0xd1, 0x12, 0x5f, 0xfe, + 0x61, 0x6f, 0x26, 0x33, 0x8d, 0x77, 0x69, 0xa2, 0x5e, 0xbe, 0xe0, 0x3d, + 0xa3, 0xaf, 0xdc, 0xfd, 0x69, 0xa3, 0xaf, 0x40, 0xee, 0x75, 0xfb, 0xdf, + 0x56, 0x30, 0x75, 0x93, 0xa7, 0x86, 0x23, 0x77, 0xff, 0xbb, 0xb2, 0x07, + 0xf5, 0x7c, 0x0e, 0x73, 0x73, 0xae, 0x8f, 0x1d, 0x7f, 0xf8, 0x01, 0x4e, + 0x7d, 0x9b, 0x68, 0x0e, 0x33, 0x1d, 0x52, 0x46, 0xd2, 0x13, 0x7e, 0x9f, + 0xa1, 0x5b, 0xff, 0x9e, 0x6d, 0x46, 0xc7, 0xec, 0x6f, 0x31, 0xd7, 0xec, + 0x9f, 0x34, 0xb3, 0xaf, 0xfe, 0x9b, 0xe7, 0xd1, 0x8d, 0x8f, 0xb2, 0x26, + 0x3a, 0x8e, 0xbf, 0xa6, 0x93, 0xf9, 0xf6, 0x1d, 0x50, 0x88, 0x5c, 0x4c, + 0x70, 0xab, 0xb9, 0x07, 0x50, 0x55, 0x6c, 0xa1, 0x14, 0xd1, 0xa2, 0xf0, + 0xf4, 0x51, 0xf6, 0x42, 0xb3, 0x68, 0xb6, 0xf0, 0x70, 0x4e, 0xb8, 0x3b, + 0x9d, 0x7f, 0xc8, 0xe2, 0x0f, 0x4d, 0x0a, 0x1d, 0x7f, 0xfc, 0x9c, 0xf9, + 0xd8, 0x4f, 0x68, 0x0d, 0x04, 0x1d, 0x7c, 0x93, 0xfe, 0xae, 0x75, 0xf3, + 0x5d, 0xda, 0x68, 0xa5, 0xef, 0x87, 0xd1, 0xc3, 0xaf, 0xfb, 0x38, 0xaf, + 0x81, 0xce, 0x6e, 0x75, 0x21, 0xed, 0xec, 0x20, 0xa5, 0x13, 0x21, 0x99, + 0x43, 0x84, 0xdd, 0x84, 0x45, 0xf8, 0x7d, 0x3e, 0x32, 0x75, 0xff, 0xa0, + 0x63, 0xbf, 0x00, 0x20, 0x69, 0xd7, 0x80, 0xfa, 0x3a, 0xfd, 0x1f, 0xbe, + 0xfa, 0x3a, 0xf0, 0xa7, 0xe7, 0x5e, 0xcf, 0x68, 0xea, 0x83, 0x6d, 0xa1, + 0xba, 0x0a, 0x35, 0xe6, 0x3e, 0xfc, 0x6f, 0xcb, 0xd7, 0xe5, 0x77, 0x10, + 0xed, 0x1d, 0x7f, 0xdf, 0xeb, 0x91, 0xbc, 0x91, 0x67, 0x5e, 0xf3, 0xec, + 0x3a, 0xff, 0x9e, 0x7f, 0x93, 0x82, 0x68, 0x57, 0x3a, 0xa1, 0x12, 0xee, + 0x74, 0x01, 0xdb, 0xfe, 0x4d, 0x4c, 0x83, 0xe8, 0xfc, 0xea, 0x91, 0xf3, + 0x2c, 0xba, 0xe7, 0x13, 0xaf, 0xfa, 0x3f, 0xf9, 0xd8, 0x5b, 0x89, 0xd6, + 0xe6, 0xe7, 0x9b, 0xb0, 0x52, 0xa1, 0x3c, 0x3c, 0x8c, 0xa5, 0x1b, 0xef, + 0x72, 0x16, 0x75, 0xfd, 0x03, 0x37, 0x91, 0x43, 0xaf, 0xfa, 0x59, 0xc9, + 0xb0, 0x61, 0x67, 0x5f, 0xbf, 0x86, 0xe2, 0xce, 0xa4, 0x3d, 0xee, 0x1b, + 0xdd, 0x2c, 0x3a, 0xf4, 0x7f, 0xa3, 0xaa, 0x0f, 0x48, 0x24, 0x2c, 0x8a, + 0xdf, 0xba, 0x05, 0x30, 0x4e, 0xbf, 0xe8, 0xee, 0x9f, 0xd1, 0xcd, 0xa3, + 0xaf, 0xfc, 0xb7, 0x0f, 0xd9, 0xa5, 0x03, 0xb9, 0xd4, 0x13, 0xfb, 0x43, + 0xab, 0xee, 0x7f, 0xf7, 0x61, 0xd7, 0x91, 0x9f, 0x1d, 0x5d, 0x3c, 0x3d, + 0x13, 0xd0, 0x53, 0x28, 0xec, 0x28, 0xbc, 0xc9, 0x7f, 0xdf, 0xa7, 0x73, + 0x8f, 0x36, 0x8e, 0xbf, 0xff, 0x44, 0x86, 0x27, 0xfb, 0x36, 0xbb, 0x9b, + 0x5c, 0xfc, 0xeb, 0xfb, 0xe2, 0xf3, 0xcf, 0xe3, 0xac, 0xd3, 0xae, 0xdf, + 0x58, 0x6f, 0x9c, 0xba, 0xb7, 0x47, 0xfa, 0xce, 0x5e, 0x13, 0x57, 0xfb, + 0x19, 0x92, 0x68, 0x0b, 0x3a, 0xed, 0x9a, 0x3a, 0xfd, 0x93, 0xe7, 0x74, + 0x75, 0x41, 0xbf, 0x11, 0x8b, 0xd9, 0xcd, 0x1d, 0x4d, 0x37, 0x5b, 0x07, + 0xef, 0xfb, 0xf8, 0xff, 0xee, 0xc8, 0x1d, 0xa3, 0xaa, 0x13, 0x0f, 0xc8, + 0x56, 0x21, 0x1d, 0xff, 0xff, 0xdd, 0x8e, 0x6e, 0xd4, 0xdf, 0xe2, 0x8f, + 0xf3, 0x5d, 0x76, 0xc0, 0x84, 0xeb, 0xef, 0x0a, 0x2c, 0xeb, 0xfc, 0x30, + 0xe3, 0xec, 0x13, 0xaf, 0xf7, 0x5e, 0x64, 0xe4, 0x4e, 0x75, 0xd8, 0xb3, + 0xa8, 0x29, 0x86, 0xe3, 0xba, 0xc8, 0x1c, 0xbb, 0x61, 0x9d, 0xfb, 0x69, + 0x17, 0x1a, 0x3a, 0xfc, 0xfb, 0x33, 0x9a, 0x3a, 0x82, 0x7a, 0x2b, 0x29, + 0xbf, 0x75, 0xc5, 0x16, 0x75, 0xf2, 0x93, 0x6a, 0x0e, 0xbf, 0xcf, 0xfe, + 0xa3, 0xb1, 0xa3, 0xaa, 0x11, 0x39, 0x84, 0x48, 0x4a, 0x24, 0x77, 0x7e, + 0xd3, 0xad, 0xa3, 0xae, 0x45, 0x34, 0x69, 0xc0, 0x2f, 0x7b, 0xf7, 0x69, + 0xd7, 0xff, 0xe4, 0x0e, 0x6c, 0x7e, 0x4d, 0xf6, 0x4f, 0xe7, 0x59, 0xd5, + 0x07, 0xe9, 0xc1, 0xcb, 0x31, 0x0c, 0xdd, 0xb9, 0xdd, 0x64, 0x34, 0x11, + 0x7c, 0x8d, 0x67, 0x74, 0x54, 0x87, 0xfc, 0xd2, 0x80, 0xb8, 0x68, 0xb1, + 0xbe, 0xc3, 0x75, 0xe3, 0x57, 0xfe, 0x33, 0x51, 0x8d, 0x13, 0x51, 0xa0, + 0x7a, 0x33, 0x8d, 0xb6, 0x0f, 0xb0, 0xa1, 0xbf, 0xcc, 0x67, 0x1a, 0xee, + 0xd3, 0x45, 0x39, 0x7f, 0xe4, 0xe3, 0xeb, 0xb9, 0x82, 0xd3, 0xaf, 0xcb, + 0xe7, 0x33, 0x47, 0x5f, 0xff, 0xba, 0x0f, 0x72, 0x3d, 0xac, 0x6e, 0xa3, + 0x8d, 0x3a, 0xff, 0x22, 0xc3, 0x1a, 0x00, 0x9d, 0x7f, 0x67, 0xb7, 0x94, + 0x32, 0x75, 0xff, 0xca, 0x26, 0xfa, 0x1c, 0x0f, 0x5d, 0x93, 0xaf, 0xfd, + 0x9d, 0x8e, 0x63, 0x0c, 0xb2, 0xc9, 0x57, 0x23, 0x27, 0x5d, 0x3b, 0x01, + 0x4e, 0xcb, 0x0e, 0xda, 0x4f, 0xd5, 0x51, 0x31, 0xf1, 0x76, 0xda, 0x2e, + 0xd2, 0x0d, 0xfb, 0x8d, 0x77, 0x69, 0xa2, 0xbc, 0xbf, 0xff, 0xb0, 0x3d, + 0x8f, 0xac, 0x78, 0x5f, 0xfd, 0x6a, 0x3f, 0x2a, 0xcc, 0x62, 0x24, 0x76, + 0xcc, 0xef, 0xfe, 0x61, 0xe4, 0xc6, 0x71, 0xae, 0xed, 0x34, 0x48, 0xf7, + 0x9b, 0x8b, 0x3a, 0xf2, 0x7f, 0x07, 0x5e, 0x6e, 0x2c, 0xa6, 0x0b, 0xbb, + 0xf7, 0x1a, 0xee, 0xd3, 0x44, 0x91, 0x7f, 0xff, 0x42, 0x71, 0x36, 0xa0, + 0x67, 0x8f, 0x27, 0x5e, 0x73, 0xae, 0x93, 0x10, 0x8b, 0x9c, 0x2b, 0xe9, + 0x9d, 0xfb, 0x3a, 0xc6, 0x2c, 0xeb, 0x31, 0x09, 0xa8, 0xbc, 0x3b, 0xfc, + 0x77, 0x7f, 0xf3, 0x0f, 0x26, 0x33, 0x8d, 0x77, 0x69, 0xa2, 0x4a, 0xbf, + 0x71, 0xae, 0xed, 0x34, 0x5e, 0x37, 0xfd, 0x26, 0x33, 0x8d, 0x77, 0x69, + 0xa2, 0x4d, 0xb3, 0x18, 0x7f, 0x0e, 0x67, 0x73, 0x3d, 0x3a, 0xfc, 0x9f, + 0xeb, 0x04, 0xeb, 0xff, 0xe0, 0x3e, 0xf9, 0x8a, 0x28, 0xf2, 0xcd, 0xfc, + 0x75, 0x48, 0xfd, 0xf4, 0x4d, 0x7b, 0xe8, 0xce, 0x75, 0xdc, 0xf1, 0xd7, + 0xa6, 0x19, 0xce, 0xb0, 0x9d, 0x77, 0xdf, 0xa7, 0x57, 0xe6, 0xa7, 0xe8, + 0x7d, 0xdb, 0x6c, 0x42, 0x69, 0xd9, 0x08, 0xee, 0x91, 0x38, 0xf6, 0x85, + 0xbe, 0xa3, 0x54, 0x37, 0x47, 0xf3, 0x9f, 0xca, 0xb1, 0x0b, 0x0c, 0x67, + 0x89, 0x1f, 0x8c, 0xd1, 0x8a, 0xac, 0xb3, 0xb1, 0xd1, 0x78, 0xec, 0x10, + 0xc9, 0xfb, 0x1b, 0xad, 0x44, 0xbf, 0xc3, 0xb9, 0xe5, 0x23, 0x4a, 0x75, + 0xdc, 0x33, 0xa9, 0x59, 0x88, 0xe4, 0x25, 0x27, 0x1b, 0x9b, 0x7a, 0x9b, + 0xbb, 0xd6, 0x5c, 0x69, 0x49, 0x7d, 0x57, 0x94, 0x47, 0x35, 0xb0, 0xc7, + 0xe5, 0xa1, 0x32, 0x5e, 0x6d, 0x84, 0x5d, 0xa5, 0x46, 0x3d, 0xb2, 0xb7, + 0xfe, 0x7c, 0xd5, 0x53, 0x1f, 0x18, 0xd6, 0x56, 0xda, 0xad, 0xc4, 0x7d, + 0x7a, 0x87, 0x00, 0xb5, 0xfd, 0x7b, 0x29, 0x59, 0x0c, 0xce, 0x4b, 0xed, + 0xcb, 0x87, 0xfb, 0x48, 0x28, 0xda, 0xae, 0xba, 0xa8, }; -static const unsigned kPreloadedHSTSBits = 265744; +static const unsigned kPreloadedHSTSBits = 265797; -static const unsigned kHSTSRootPosition = 265131; +static const unsigned kHSTSRootPosition = 265184; #endif // NET_HTTP_TRANSPORT_SECURITY_STATE_STATIC_H_
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json index d7d949c..62f251c 100644 --- a/net/http/transport_security_state_static.json +++ b/net/http/transport_security_state_static.json
@@ -248,6 +248,7 @@ { "name": "gvt3.com", "include_subdomains": true, "mode": "force-https", "pins": "google" }, { "name": "withyoutube.com", "include_subdomains": true, "mode": "force-https", "pins": "google" }, { "name": "withgoogle.com", "include_subdomains": true, "mode": "force-https", "pins": "google" }, + { "name": "g4w.co", "include_subdomains": true, "mode": "force-https", "pins": "google" }, { "name": "webfilings.appspot.com", "include_subdomains": true, "mode": "force-https", "pins": "google" }, { "name": "webfilings-mirror-hrd.appspot.com", "include_subdomains": true, "mode": "force-https", "pins": "google" }, @@ -4126,6 +4127,7 @@ "DROPBOXSTATIC_COM", "DROPBOXUSERCONTENT_COM", "WITHYOUTUBE_COM", - "WITHGOOGLE_COM" + "WITHGOOGLE_COM", + "G4W_CO" ] }
diff --git a/net/quic/quic_end_to_end_unittest.cc b/net/quic/quic_end_to_end_unittest.cc index 7b4bb5a..6b6149d 100644 --- a/net/quic/quic_end_to_end_unittest.cc +++ b/net/quic/quic_end_to_end_unittest.cc
@@ -9,6 +9,7 @@ #include "base/strings/string_number_conversions.h" #include "net/base/elements_upload_data_stream.h" #include "net/base/test_completion_callback.h" +#include "net/base/test_data_directory.h" #include "net/base/upload_bytes_element_reader.h" #include "net/base/upload_data_stream.h" #include "net/cert/mock_cert_verifier.h" @@ -21,8 +22,10 @@ #include "net/http/http_transaction_test_util.h" #include "net/http/transport_security_state.h" #include "net/proxy/proxy_service.h" +#include "net/quic/test_tools/crypto_test_utils.h" #include "net/quic/test_tools/quic_test_utils.h" #include "net/ssl/ssl_config_service_defaults.h" +#include "net/test/cert_test_util.h" #include "net/tools/quic/quic_in_memory_cache.h" #include "net/tools/quic/quic_server.h" #include "net/tools/quic/test_tools/quic_in_memory_cache_peer.h" @@ -81,7 +84,7 @@ HttpAuthHandlerFactory::CreateDefault(&host_resolver_)), strike_register_no_startup_period_(false) { request_.method = "GET"; - request_.url = GURL("http://www.google.com/"); + request_.url = GURL("https://test.example.com/"); request_.load_flags = 0; params_.enable_quic = true; @@ -94,13 +97,25 @@ params_.ssl_config_service = ssl_config_service_.get(); params_.http_auth_handler_factory = auth_handler_factory_.get(); params_.http_server_properties = http_server_properties.GetWeakPtr(); + + net::CertVerifyResult verify_result; + verify_result.verified_cert = ImportCertFromFile( + GetTestCertsDirectory(), "quic_test.example.com.crt"); + cert_verifier_.AddResultForCertAndHost(verify_result.verified_cert.get(), + "test.example.com", verify_result, + OK); + verify_result.verified_cert = ImportCertFromFile( + GetTestCertsDirectory(), "quic_test_ecc.example.com.crt"); + cert_verifier_.AddResultForCertAndHost(verify_result.verified_cert.get(), + "test.example.com", verify_result, + OK); } - // Creates a mock host resolver in which www.google.com + // Creates a mock host resolver in which test.example.com // resolves to localhost. static MockHostResolver* CreateResolverImpl() { MockHostResolver* resolver = new MockHostResolver(); - resolver->rules()->AddRule("www.google.com", "127.0.0.1"); + resolver->rules()->AddRule("test.example.com", "127.0.0.1"); return resolver; } @@ -108,16 +123,16 @@ QuicInMemoryCachePeer::ResetForTests(); StartServer(); - // Use a mapped host resolver so that request for www.google.com (port 80) + // Use a mapped host resolver so that request for test.example.com (port 80) // reach the server running on localhost. - std::string map_rule = "MAP www.google.com www.google.com:" + - base::IntToString(server_thread_->GetPort()); + std::string map_rule = "MAP test.example.com test.example.com:" + + base::IntToString(server_thread_->GetPort()); EXPECT_TRUE(host_resolver_.AddRuleFromString(map_rule)); // To simplify the test, and avoid the race with the HTTP request, we force // QUIC for these requests. params_.origin_to_force_quic_on = - HostPortPair::FromString("www.google.com:80"); + HostPortPair::FromString("test.example.com:443"); transaction_factory_.reset(new TestTransactionFactory(params_)); } @@ -136,10 +151,14 @@ kInitialStreamFlowControlWindowForTest); server_config_.SetInitialSessionFlowControlWindowToSend( kInitialSessionFlowControlWindowForTest); - server_thread_.reset(new ServerThread( - new QuicServer(server_config_, QuicSupportedVersions()), - /*is_secure=*/true, server_address_, - strike_register_no_startup_period_)); + + QuicServer* server = + new QuicServer(server_config_, QuicSupportedVersions()); + server_thread_.reset(new ServerThread(server, /*is_secure=*/true, + server_address_, + strike_register_no_startup_period_)); + server->SetProofSource(CryptoTestUtils::ProofSourceForTesting()); + server_thread_->Initialize(); server_address_ = IPEndPoint(server_address_.address(), server_thread_->GetPort()); @@ -165,7 +184,7 @@ StringPiece response_detail, StringPiece body) { QuicInMemoryCache::GetInstance()->AddSimpleResponse( - "www.google.com", path, response_code, response_detail, body); + "test.example.com", path, response_code, response_detail, body); } // Populates |request_body_| with |length_| ASCII bytes. @@ -187,7 +206,7 @@ upload_data_stream_.reset( new ElementsUploadDataStream(element_readers.Pass(), 0)); request_.method = "POST"; - request_.url = GURL("http://www.google.com/"); + request_.url = GURL("https://test.example.com/"); request_.upload_data_stream = upload_data_stream_.get(); ASSERT_EQ(OK, request_.upload_data_stream->Init(CompletionCallback())); } @@ -197,7 +216,7 @@ const std::string& status_line, const std::string& body) { ASSERT_TRUE(consumer.is_done()); - EXPECT_EQ(OK, consumer.error()); + ASSERT_EQ(OK, consumer.error()); EXPECT_EQ(status_line, consumer.response_info()->headers->GetStatusLine()); EXPECT_EQ(body, consumer.content());
diff --git a/remoting/host/pairing_registry_delegate_linux.cc b/remoting/host/pairing_registry_delegate_linux.cc index 7b22721..cf51255 100644 --- a/remoting/host/pairing_registry_delegate_linux.cc +++ b/remoting/host/pairing_registry_delegate_linux.cc
@@ -49,8 +49,8 @@ JSONFileValueDeserializer deserializer(pairing_file); int error_code; std::string error_message; - scoped_ptr<base::Value> pairing_json( - deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<base::Value> pairing_json = + deserializer.Deserialize(&error_code, &error_message); if (!pairing_json) { LOG(WARNING) << "Failed to load '" << pairing_file.value() << "' (" << error_code << ")."; @@ -88,8 +88,8 @@ JSONFileValueDeserializer deserializer(pairing_file); int error_code; std::string error_message; - scoped_ptr<base::Value> pairing( - deserializer.Deserialize(&error_code, &error_message)); + scoped_ptr<base::Value> pairing = + deserializer.Deserialize(&error_code, &error_message); if (!pairing) { LOG(WARNING) << "Failed to load pairing information: " << error_message << " (" << error_code << ").";
diff --git a/remoting/host/pairing_registry_delegate_win.cc b/remoting/host/pairing_registry_delegate_win.cc index a714e31..90b04ba 100644 --- a/remoting/host/pairing_registry_delegate_win.cc +++ b/remoting/host/pairing_registry_delegate_win.cc
@@ -52,8 +52,8 @@ JSONStringValueDeserializer deserializer(value_json_utf8); int error_code; std::string error_message; - scoped_ptr<base::Value> value(deserializer.Deserialize(&error_code, - &error_message)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_message); if (!value) { LOG(ERROR) << "Failed to parse '" << value_name << "': " << error_message << " (" << error_code << ").";
diff --git a/rlz/chromeos/lib/rlz_value_store_chromeos.cc b/rlz/chromeos/lib/rlz_value_store_chromeos.cc index 80d269e..6714de449 100644 --- a/rlz/chromeos/lib/rlz_value_store_chromeos.cc +++ b/rlz/chromeos/lib/rlz_value_store_chromeos.cc
@@ -212,8 +212,8 @@ int error_code = 0; std::string error_msg; JSONFileValueDeserializer deserializer(store_path_); - scoped_ptr<base::Value> value( - deserializer.Deserialize(&error_code, &error_msg)); + scoped_ptr<base::Value> value = + deserializer.Deserialize(&error_code, &error_msg); switch (error_code) { case JSONFileValueDeserializer::JSON_NO_SUCH_FILE: read_only_ = false;
diff --git a/third_party/WebKit/LayoutTests/ASANExpectations b/third_party/WebKit/LayoutTests/ASANExpectations index 9930704..909a712e 100644 --- a/third_party/WebKit/LayoutTests/ASANExpectations +++ b/third_party/WebKit/LayoutTests/ASANExpectations
@@ -54,14 +54,14 @@ crbug.com/250520 [ Linux ] fast/speechsynthesis/speech-synthesis-cancel.html [ Timeout ] # These tests consistently fail on slow bots. -crbug.com/231357 [ Linux ] compositing/video-page-visibility.html [ ImageOnlyFailure ] +crbug.com/231357 [ Linux ] compositing/video-page-visibility.html [ Failure ] # These have been failing since at least chrome r203901, blink r151723 (no memory errors, just text failure): crbug.com/231357 [ Linux ] editing/execCommand/switch-list-type-with-orphaned-li.html [ Failure ] crbug.com/231357 [ Linux ] perf/mouse-event.html [ Crash ] -crbug.com/333791 [ Linux ] svg/animations/repeatn-event-1b.svg [ Pass ImageOnlyFailure ] -crbug.com/333791 [ Linux ] svg/animations/repeatn-event-1d.svg [ Pass ImageOnlyFailure ] +crbug.com/333791 [ Linux ] svg/animations/repeatn-event-1b.svg [ Pass Failure ] +crbug.com/333791 [ Linux ] svg/animations/repeatn-event-1d.svg [ Pass Failure ] crbug.com/192172 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow.html [ Failure Pass ] crbug.com/192172 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure Pass ] crbug.com/192172 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure Pass ] @@ -70,7 +70,7 @@ crbug.com/290411 [ Linux ] fast/text/sub-pixel/text-scaling-pixel.html [ Failure Pass ] crbug.com/333901 [ Linux ] virtual/legacy-animations-engine/animations/timing-model.html [ Failure Pass ] crbug.com/339778 [ Linux ] fast/dom/timer-throttling-hidden-page.html [ Failure Pass ] -crbug.com/353746 [ Linux ] virtual/android/fullscreen/video-specified-size.html [ ImageOnlyFailure Pass ] +crbug.com/353746 [ Linux ] virtual/android/fullscreen/video-specified-size.html [ Failure Pass ] crbug.com/248938 [ Linux ] virtual/threaded/animations/opacity-transform-animation.html [ Timeout Pass ] crbug.com/248938 [ Linux ] virtual/threaded/animations/missing-values-first-keyframe.html [ Pass Timeout ]
diff --git a/third_party/WebKit/LayoutTests/OilpanExpectations b/third_party/WebKit/LayoutTests/OilpanExpectations index 0c19b08d..0a8f440e 100644 --- a/third_party/WebKit/LayoutTests/OilpanExpectations +++ b/third_party/WebKit/LayoutTests/OilpanExpectations
@@ -16,13 +16,13 @@ crbug.com/356658 fast/dom/gc-12.html [ Failure ] crbug.com/356658 fast/dom/gc-dom-tree-lifetime.html [ Failure ] -crbug.com/410145 [ Win ] fast/text/decorations-with-text-combine.html [ ImageOnlyFailure ] -crbug.com/410145 [ Win ] fast/text/international/text-combine-image-test.html [ ImageOnlyFailure ] -crbug.com/410145 [ Win ] fast/text/international/vertical-text-glyph-test.html [ ImageOnlyFailure ] -crbug.com/410145 [ Win ] fast/text/justify-ideograph-vertical.html [ ImageOnlyFailure ] -crbug.com/410145 [ Win ] fast/text/orientation-sideways.html [ ImageOnlyFailure ] -crbug.com/410145 [ Win ] fast/css/font-weight-1.html [ ImageOnlyFailure ] -crbug.com/410145 [ Win ] fast/writing-mode/english-lr-text.html [ ImageOnlyFailure ] +crbug.com/410145 [ Win ] fast/text/decorations-with-text-combine.html [ Failure ] +crbug.com/410145 [ Win ] fast/text/international/text-combine-image-test.html [ Failure ] +crbug.com/410145 [ Win ] fast/text/international/vertical-text-glyph-test.html [ Failure ] +crbug.com/410145 [ Win ] fast/text/justify-ideograph-vertical.html [ Failure ] +crbug.com/410145 [ Win ] fast/text/orientation-sideways.html [ Failure ] +crbug.com/410145 [ Win ] fast/css/font-weight-1.html [ Failure ] +crbug.com/410145 [ Win ] fast/writing-mode/english-lr-text.html [ Failure ] crbug.com/377567 [ Debug ] editing/selection/extend-selection-character.html [ Timeout Pass ] crbug.com/377567 [ Debug ] editing/selection/programmatic-selection-on-mac-is-directionless.html [ Timeout Pass ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 55f0f7ae..ebe46b10 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -3,9 +3,9 @@ # TODO(wangxianzhu): Triage the failures crbug.com/524134 virtual/spv2/paint/invalidation/invalidate-after-composited-scroll.html [ Failure ] -crbug.com/524134 crbug.com/539546 virtual/spv2/paint/selection/text-selection-drag.html [ ImageOnlyFailure Pass Failure ] -crbug.com/524134 virtual/spv2/paint/paintlayer/non-self-painting-layer-overrides-visibility.html [ Crash ImageOnlyFailure Timeout ] -crbug.com/524134 virtual/spv2/paint/invalidation/spv2/focus-ring-on-continuation-move.html [ ImageOnlyFailure ] +crbug.com/524134 crbug.com/539546 virtual/spv2/paint/selection/text-selection-drag.html [ Pass Failure ] +crbug.com/524134 virtual/spv2/paint/paintlayer/non-self-painting-layer-overrides-visibility.html [ Crash Failure Timeout ] +crbug.com/524134 virtual/spv2/paint/invalidation/spv2/focus-ring-on-continuation-move.html [ Failure ] crbug.com/524236 virtual/spv2/paint/invalidation/spv2/clipping-should-not-repaint-composited-descendants-as-text.html [ Failure ] crbug.com/524236 virtual/spv2/paint/invalidation/spv2/scroll-fixed-layer-no-content-as-text.html [ Failure ] @@ -24,53 +24,41 @@ crbug.com/524236 virtual/spv2/paint/invalidation/spv2/updating-scrolling-content-as-text.html [ Failure ] crbug.com/524236 virtual/spv2/paint/invalidation/spv2/scrolling-without-painting-as-text.html [ Failure ] -crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-cell-append.html [ ImageOnlyFailure ] -crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-cell-remove.html [ ImageOnlyFailure ] -crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-cell-border-width.html [ ImageOnlyFailure ] -crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-col-border-width.html [ ImageOnlyFailure ] -crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-colgroup-border-width.html [ ImageOnlyFailure ] -crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-row-border-width.html [ ImageOnlyFailure ] -crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-table-border-width.html [ ImageOnlyFailure ] -crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-tbody-border-width.html [ ImageOnlyFailure ] +crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-cell-append.html [ Failure ] +crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-cell-remove.html [ Failure ] +crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-cell-border-width.html [ Failure ] +crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-col-border-width.html [ Failure ] +crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-colgroup-border-width.html [ Failure ] +crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-row-border-width.html [ Failure ] +crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-table-border-width.html [ Failure ] +crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-tbody-border-width.html [ Failure ] -crbug.com/536138 virtual/spv2/paint/invalidation/repaint-subsequence-on-ancestor-clip-change.html [ ImageOnlyFailure ] +crbug.com/536138 virtual/spv2/paint/invalidation/repaint-subsequence-on-ancestor-clip-change.html [ Failure ] -crbug.com/537172 [ SnowLeopard XP Win10 ] virtual/spv2/paint/invalidation/spv2/background-image-paint-invalidation.html [ ImageOnlyFailure ] +crbug.com/537172 [ SnowLeopard XP Win10 ] virtual/spv2/paint/invalidation/spv2/background-image-paint-invalidation.html [ Failure ] crbug.com/504613 crbug.com/524248 paint/images/image-backgrounds-not-antialiased.html [ Skip ] crbug.com/504613 crbug.com/524248 virtual/spv2/paint/images/image-backgrounds-not-antialiased.html [ Skip ] -crbug.com/502531 fast/borders/border-antialiasing.html [ ImageOnlyFailure ] +crbug.com/502531 fast/borders/border-antialiasing.html [ Failure ] crbug.com/538697 [ Win7 Debug ] virtual/threaded/printing/webgl-oversized-printing.html [ Crash ] crbug.com/538697 [ Win7 Debug ] printing/webgl-oversized-printing.html [ Crash ] -crbug.com/404597 fast/text/basic/015.html [ NeedsRebaseline ] -crbug.com/404597 fast/text/font-variant-ligatures.html [ NeedsRebaseline ] -crbug.com/404597 fast/text/font-weight-600.html [ NeedsRebaseline ] -crbug.com/404597 [ Win Linux Android Lion Mavericks MountainLion Retina SnowLeopard ] fast/text/justify-ideograph-simple.html [ NeedsRebaseline ] -crbug.com/404597 fast/text/whitespace/002.html [ NeedsRebaseline ] -crbug.com/404597 fast/text-autosizing/tables/css-table-lots-of-text-many-cells.html [ NeedsRebaseline ] -crbug.com/404597 fast/text-autosizing/tables/fixed-table-lots-of-text-many-cells.html [ NeedsRebaseline ] -crbug.com/404597 fast/text-autosizing/tables/lots-of-text-many-cells.html [ NeedsRebaseline ] -crbug.com/404597 fast/text-autosizing/tables/narrow-percentage-width.html [ NeedsRebaseline ] crbug.com/404597 fast/text-autosizing/tables/narrow-specified-width.html [ NeedsRebaseline ] +crbug.com/404597 fast/text-autosizing/tables/narrow-percentage-width.html [ NeedsRebaseline ] +crbug.com/404597 fast/text-autosizing/tables/lots-of-text-many-cells.html [ NeedsRebaseline ] +crbug.com/404597 fast/text-autosizing/tables/fixed-table-lots-of-text-many-cells.html [ NeedsRebaseline ] +crbug.com/404597 fast/text-autosizing/tables/css-table-lots-of-text-many-cells.html [ NeedsRebaseline ] +crbug.com/404597 fast/text/whitespace/002.html [ NeedsRebaseline ] +crbug.com/404597 fast/text/font-weight-600.html [ NeedsRebaseline ] +crbug.com/404597 fast/text/font-variant-ligatures.html [ NeedsRebaseline ] # Ref-tests that fail due to character based shaping/fallback. -crbug.com/404597 fast/text/international/inline-plaintext-is-isolated.html [ ImageOnlyFailure ] -crbug.com/404597 fast/text/international/bdi-dir-default-to-auto.html [ ImageOnlyFailure ] +crbug.com/404597 fast/text/international/inline-plaintext-is-isolated.html [ Failure ] +crbug.com/404597 fast/text/international/bdi-dir-default-to-auto.html [ Failure ] crbug.com/542643 fast/text/zero-font-size-2.html [ Pass Crash ] -crbug.com/541598 fast/repaint/selected-replaced.html [ NeedsRebaseline ] -crbug.com/541598 svg/custom/mouse-move-on-svg-container.xhtml [ NeedsRebaseline ] -crbug.com/541598 svg/custom/mouse-move-on-svg-root.xhtml [ NeedsRebaseline ] -crbug.com/541598 svg/custom/pattern-userSpaceOnUse-userToBaseTransform.xhtml [ NeedsRebaseline ] -crbug.com/541598 svg/hixie/mixed/010.xml [ NeedsRebaseline ] -crbug.com/541598 svg/repaint/add-background-property-on-root.html [ NeedsRebaseline ] -crbug.com/541598 svg/repaint/change-background-color.html [ NeedsRebaseline ] -crbug.com/541598 svg/repaint/remove-background-property-on-root.html [ NeedsRebaseline ] -crbug.com/541598 svg/text/small-fonts-in-html5.html [ NeedsRebaseline ] - crbug.com/539226 [ Win7 ] http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-cross-origin-response-handling.html [ Timeout ] crbug.com/539226 [ Win7 ] http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling.html [ Timeout ] crbug.com/539226 [ Win7 ] http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling.html [ Timeout ] @@ -79,36 +67,35 @@ crbug.com/539247 [ Win10 ] http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling.html [ Timeout Failure ] crbug.com/539247 [ Win10 ] http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling.html [ Timeout Failure ] -crbug.com/465705 fast/text/international/menulist-width-rtl.html [ NeedsRebaseline ] -crbug.com/417782 [ Linux Win ] virtual/rootlayerscrolls/fast/scrolling/fractional-scroll-offset-fixed-position-non-composited.html [ ImageOnlyFailure ] -crbug.com/492664 [ Linux XP ] imported/csswg-test/css-writing-modes-3/box-offsets-rel-pos-vlr-005.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Linux XP ] imported/csswg-test/css-writing-modes-3/box-offsets-rel-pos-vrl-004.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/bidi-embed-002.html [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/bidi-isolate-002.html [ ImageOnlyFailure ] -crbug.com/492664 [ Win ] imported/csswg-test/css-writing-modes-3/bidi-override-005.html [ ImageOnlyFailure ] -crbug.com/492664 [ Win ] imported/csswg-test/css-writing-modes-3/bidi-plaintext-001.html [ ImageOnlyFailure ] +crbug.com/417782 [ Linux Win ] virtual/rootlayerscrolls/fast/scrolling/fractional-scroll-offset-fixed-position-non-composited.html [ Failure ] +crbug.com/492664 [ Linux XP ] imported/csswg-test/css-writing-modes-3/box-offsets-rel-pos-vlr-005.xht [ Failure ] +crbug.com/492664 [ Linux XP ] imported/csswg-test/css-writing-modes-3/box-offsets-rel-pos-vrl-004.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/bidi-embed-002.html [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/bidi-isolate-002.html [ Failure ] +crbug.com/492664 [ Win ] imported/csswg-test/css-writing-modes-3/bidi-override-005.html [ Failure ] +crbug.com/492664 [ Win ] imported/csswg-test/css-writing-modes-3/bidi-plaintext-001.html [ Failure ] crbug.com/492664 imported/csswg-test/css-transitions-2/transitioncancel-001.html [ Failure ] crbug.com/418091 [ SnowLeopard ] fast/text/aat-morx.html [ Failure ] -crbug.com/463358 [ Mac Linux Debug ] svg/hixie/perf/005.xml [ ImageOnlyFailure ] -crbug.com/463358 [ Mac Linux Debug ] svg/hixie/perf/006.xml [ ImageOnlyFailure ] -crbug.com/463358 [ Linux Lion Mavericks MountainLion Retina SnowLeopard Debug ] svg/transforms/text-with-pattern-inside-transformed-html.xhtml [ ImageOnlyFailure ] -crbug.com/463358 [ Mac Linux Debug ] fast/backgrounds/transformed-body-html-background.html [ ImageOnlyFailure ] -crbug.com/463358 [ Mac Linux Debug ] css3/masking/clip-path-polygon-nonzero.html [ ImageOnlyFailure ] -crbug.com/463358 [ Mac Linux Debug ] fast/transforms/transformed-caret.html [ ImageOnlyFailure ] -crbug.com/463358 [ Mac Linux Debug ] fast/backgrounds/transformed-body-background.html [ ImageOnlyFailure ] -crbug.com/463358 [ Mac Linux Debug ] svg/W3C-SVG-1.1/paths-data-02-t.svg [ ImageOnlyFailure ] -crbug.com/463358 [ Mac Linux Debug ] css3/masking/clip-path-polygon.html [ ImageOnlyFailure ] +crbug.com/463358 [ Mac Linux Debug ] svg/hixie/perf/005.xml [ Failure ] +crbug.com/463358 [ Mac Linux Debug ] svg/hixie/perf/006.xml [ Failure ] +crbug.com/463358 [ Linux Lion Mavericks MountainLion Retina SnowLeopard Debug ] svg/transforms/text-with-pattern-inside-transformed-html.xhtml [ Failure ] +crbug.com/463358 [ Mac Linux Debug ] fast/backgrounds/transformed-body-html-background.html [ Failure ] +crbug.com/463358 [ Mac Linux Debug ] css3/masking/clip-path-polygon-nonzero.html [ Failure ] +crbug.com/463358 [ Mac Linux Debug ] fast/transforms/transformed-caret.html [ Failure ] +crbug.com/463358 [ Mac Linux Debug ] fast/backgrounds/transformed-body-background.html [ Failure ] +crbug.com/463358 [ Mac Linux Debug ] svg/W3C-SVG-1.1/paths-data-02-t.svg [ Failure ] +crbug.com/463358 [ Mac Linux Debug ] css3/masking/clip-path-polygon.html [ Failure ] crbug.com/267206 [ Mac ] virtual/rootlayerscrolls/fast/scrolling/scrollbar-tickmarks-hittest.html [ Timeout ] crbug.com/280342 [ Linux Win ] http/tests/media/progress-events-generated-correctly.html [ Failure ] crbug.com/520739 [ Mac ] http/tests/websocket/close-code-and-reason.html [ Failure Pass Timeout ] -crbug.com/520737 [ Mac ] imported/csswg-test/css-writing-modes-3/writing-mode-vertical-rl-001.xht [ ImageOnlyFailure Pass Timeout ] +crbug.com/520737 [ Mac ] imported/csswg-test/css-writing-modes-3/writing-mode-vertical-rl-001.xht [ Failure Pass Timeout ] crbug.com/520736 [ Win7 ] media/W3C/video/networkState/networkState_during_progress.html [ Failure Pass ] crbug.com/522641 inspector/elements/styles-4/styles-update-links.html [ Pass Timeout ] -crbug.com/522645 [ Linux ] virtual/android/fullscreen/video-fixed-background.html [ ImageOnlyFailure Pass ] +crbug.com/522645 [ Linux ] virtual/android/fullscreen/video-fixed-background.html [ Failure Pass ] crbug.com/522646 http/tests/media/encrypted-media/encrypted-media-encrypted-event-different-origin.html [ Pass Slow ] crbug.com/522647 http/tests/notifications/close-dispatch-asynchronous.html [ Failure Pass ] crbug.com/522648 fast/events/touch/compositor-touch-hit-rects-iframes.html [ Crash Failure Pass ] @@ -167,8 +154,6 @@ crbug.com/410974 fast/scroll-behavior/scroll-customization/scrollstate-distribute-to-scroll-chain-descendant.html [ Pass Failure ] crbug.com/410974 fast/scroll-behavior/scroll-customization/touch-scroll-customization.html [ Pass Failure ] -crbug.com/537277 fast/inline/vertical-align-with-fallback-fonts.html [ NeedsRebaseline ] - crbug.com/410974 virtual/threaded/fast/scroll-behavior/scroll-customization/scrollstate-basic.html [ Pass Failure ] crbug.com/410974 virtual/threaded/fast/scroll-behavior/scroll-customization/scrollstate-consume-deltas.html [ Pass Failure ] crbug.com/410974 virtual/threaded/fast/scroll-behavior/scroll-customization/scrollstate-consume-deltas-throw.html [ Pass Failure ] @@ -187,14 +172,14 @@ crbug.com/518883 crbug.com/390452 http/tests/security/isolatedWorld/media-query-wrapper-leaks.html [ Failure Pass Timeout ] crbug.com/518987 http/tests/xmlhttprequest/navigation-abort-detaches-frame.html [ Pass Timeout ] crbug.com/518988 [ Win7 ] http/tests/xmlhttprequest/xmlhttprequest-50ms-download-dispatch.html [ Failure Pass ] -crbug.com/518989 [ Mac ] imported/csswg-test/css-writing-modes-3/writing-mode-vertical-rl-002.xht [ ImageOnlyFailure Pass Timeout ] +crbug.com/518989 [ Mac ] imported/csswg-test/css-writing-modes-3/writing-mode-vertical-rl-002.xht [ Failure Pass Timeout ] crbug.com/518992 [ Win ] imported/web-platform-tests/user-timing/test_user_timing_measure.html [ Skip ] crbug.com/518993 [ Win ] imported/web-platform-tests/user-timing/test_user_timing_measure_navigation_timing.html [ Skip ] crbug.com/518995 media/track/media-element-move-to-new-document-assert.html [ Failure Pass ] -crbug.com/518998 media/video-poster-after-loadedmetadata.html [ ImageOnlyFailure Pass ] +crbug.com/518998 media/video-poster-after-loadedmetadata.html [ Failure Pass ] -crbug.com/526594 [ Win10 ] plugins/webview-plugin-lifecycle.html [ ImageOnlyFailure ] -crbug.com/518999 [ Win7 Debug ] plugins/webview-plugin-lifecycle.html [ ImageOnlyFailure Pass ] +crbug.com/526594 [ Win10 ] plugins/webview-plugin-lifecycle.html [ Failure ] +crbug.com/518999 [ Win7 Debug ] plugins/webview-plugin-lifecycle.html [ Failure Pass ] crbug.com/519001 storage/indexeddb/pending-version-change-stuck-works-with-terminate.html [ Pass Timeout ] crbug.com/519002 storage/indexeddb/pending-version-change-stuck.html [ Pass Timeout ] @@ -215,20 +200,20 @@ crbug.com/248938 virtual/threaded/transitions/cancel-and-start-new.html [ Pass Failure ] crbug.com/248938 virtual/threaded/animations/change-keyframes-name.html [ Failure Pass Timeout ] crbug.com/248938 virtual/threaded/animations/change-one-anim.html [ Failure Pass ] -crbug.com/326139 crbug.com/390125 media/video-frame-accurate-seek.html [ ImageOnlyFailure Pass ] +crbug.com/326139 crbug.com/390125 media/video-frame-accurate-seek.html [ Failure Pass ] crbug.com/352856 [ Mac ] svg/batik/text/textPosition.svg [ Failure Pass ] crbug.com/352856 [ Mac ] svg/batik/text/textPosition2.svg [ Failure Pass ] crbug.com/392640 [ Release ] svg/as-object/sizing/svg-in-object-placeholder-height-auto.html [ Timeout Pass ] crbug.com/392640 [ Debug ] svg/as-object/sizing/svg-in-object-placeholder-height-auto.html [ Failure Timeout Pass ] crbug.com/413604 http/tests/loading/script-priorities.html [ Failure Pass ] crbug.com/479181 inspector-protocol/animation/animation-multiple-frames.html [ Failure Pass ] -crbug.com/495523 svg/wicd/test-rightsizing-b.xhtml [ Failure ImageOnlyFailure Pass ] +crbug.com/495523 svg/wicd/test-rightsizing-b.xhtml [ Failure Pass ] crbug.com/516364 svg/animations/smil-leak-element-instances.svg [ Failure Pass ] crbug.com/248938 virtual/threaded/animations/3d/transform-origin-vs-functions.html [ Pass Failure ] crbug.com/248938 virtual/threaded/transitions/cancel-transition.html [ Pass Failure ] crbug.com/248938 virtual/threaded/transitions/extra-transition.html [ Pass Failure ] crbug.com/248938 virtual/threaded/transitions/start-transform-transition.html [ Pass Failure ] -crbug.com/248938 virtual/threaded/animations/animation-direction-normal.html [ Pass ImageOnlyFailure Timeout ] +crbug.com/248938 virtual/threaded/animations/animation-direction-normal.html [ Pass Failure Timeout ] crbug.com/248938 virtual/threaded/animations/animation-iteration-event-destroy-renderer.html [ Pass Timeout ] crbug.com/248938 virtual/threaded/animations/transition-and-animation-3.html [ Pass Timeout ] crbug.com/501543 fast/images/size-failure.html [ Crash Timeout Pass ] @@ -259,7 +244,7 @@ crbug.com/248938 [ Win Debug ] virtual/threaded/transitions/transition-end-event-multiple-04.html [ Pass Failure ] crbug.com/352405 virtual/threaded/animations/transition-and-animation-1.html [ Pass Timeout ] -crbug.com/461179 virtual/spv2/paint/invalidation/invalidate-when-receiving-paint-layer.html [ ImageOnlyFailure ] +crbug.com/461179 virtual/spv2/paint/invalidation/invalidate-when-receiving-paint-layer.html [ Failure ] crbug.com/542541 [ Debug ] fast/events/click-count.html [ Pass Failure ] @@ -276,9 +261,9 @@ crbug.com/423739 fast/js/string-replace-2.html [ NeedsManualRebaseline ] crbug.com/423739 fast/dom/Window/Location/location-override-valueOf.html [ NeedsManualRebaseline ] crbug.com/524859 fast/text/complex-text-opacity.html [ NeedsManualRebaseline ] -# crbug.com/498021 [ Linux ] fast/text/complex-text-opacity.html [ ImageOnlyFailure ] +# crbug.com/498021 [ Linux ] fast/text/complex-text-opacity.html [ Failure ] # crbug.com/509025 [ Yosemite ] fast/text/complex-text-opacity.html [ Failure ] -# crbug.com/521730 [ Win10 ] fast/text/complex-text-opacity.html [ Failure Timeout Failure Failure ] +# crbug.com/521730 [ Win10 ] fast/text/complex-text-opacity.html [ Failure Timeout ] crbug.com/524859 transforms/2d/hindi-rotated.html [ NeedsManualRebaseline ] crbug.com/535408 fast/js/function-bind.html [ NeedsManualRebaseline ] @@ -360,7 +345,7 @@ crbug.com/542763 fast/forms/radio/radio-appearance-basic.html [ NeedsRebaseline ] crbug.com/542763 fast/forms/select/menulist-appearance-basic.html [ NeedsRebaseline ] -crbug.com/487281 [ SnowLeopard Lion MountainLion Retina Mavericks ] fast/forms/menulist-narrow-width.html [ ImageOnlyFailure ] +crbug.com/487281 [ SnowLeopard Lion MountainLion Retina Mavericks ] fast/forms/menulist-narrow-width.html [ Failure ] crbug.com/441840 [ Mac XP ] cssom/ahem-ex-units.html [ Failure ] @@ -375,17 +360,17 @@ # Text::inDocument() returns false but should not. crbug.com/264138 dom/xhtml/level3/core/nodecomparedocumentposition38.xhtml [ Failure ] -crbug.com/503626 virtual/gpu/fast/canvas/canvas-filter-shadow.html [ ImageOnlyFailure ] +crbug.com/503626 virtual/gpu/fast/canvas/canvas-filter-shadow.html [ Failure ] -crbug.com/240374 compositing/overlap-blending/reflection-opacity-huge.html [ ImageOnlyFailure ] -crbug.com/240374 compositing/overlap-blending/children-opacity-huge.html [ ImageOnlyFailure ] -crbug.com/240374 compositing/overlap-blending/children-opacity-no-overlap.html [ ImageOnlyFailure ] +crbug.com/240374 compositing/overlap-blending/reflection-opacity-huge.html [ Failure ] +crbug.com/240374 compositing/overlap-blending/children-opacity-huge.html [ Failure ] +crbug.com/240374 compositing/overlap-blending/children-opacity-no-overlap.html [ Failure ] crbug.com/411164 [ Win ] http/tests/security/powerfulFeatureRestrictions/serviceworker-on-insecure-origin.html [ Pass Slow ] # This batch is flaky: -crbug.com/310679 [ Mac ] virtual/pointerevent/fast/events/scale-and-scroll-iframe-body.html [ ImageOnlyFailure ] -crbug.com/310679 [ Mac ] virtual/pointerevent/fast/events/scale-and-scroll-iframe-window.html [ ImageOnlyFailure ] +crbug.com/310679 [ Mac ] virtual/pointerevent/fast/events/scale-and-scroll-iframe-body.html [ Failure ] +crbug.com/310679 [ Mac ] virtual/pointerevent/fast/events/scale-and-scroll-iframe-window.html [ Failure ] crbug.com/475984 [ Mac Debug ] css2.1/t100801-c544-valgn-03-d-agi.html [ Failure ] @@ -404,11 +389,11 @@ # expectation files because they contain local path names. # Use crbug.com/490511 for untriaged failures. crbug.com/490511 imported/web-platform-tests/html/browsers/history/the-location-interface/location_assign.html [ Timeout ] -crbug.com/526898 imported/web-platform-tests/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-x.xhtml [ ImageOnlyFailure ] -crbug.com/108417 imported/web-platform-tests/html/rendering/non-replaced-elements/tables/table-border-1.html [ ImageOnlyFailure ] -crbug.com/525872 imported/web-platform-tests/html/rendering/non-replaced-elements/tables/table-border-2.html [ ImageOnlyFailure ] +crbug.com/526898 imported/web-platform-tests/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-x.xhtml [ Failure ] +crbug.com/108417 imported/web-platform-tests/html/rendering/non-replaced-elements/tables/table-border-1.html [ Failure ] +crbug.com/525872 imported/web-platform-tests/html/rendering/non-replaced-elements/tables/table-border-2.html [ Failure ] crbug.com/490511 imported/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle.html [ Failure Pass ] -crbug.com/525896 imported/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html [ ImageOnlyFailure ] +crbug.com/525896 imported/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html [ Failure ] crbug.com/508725 imported/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html [ Failure Timeout ] crbug.com/490511 imported/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src.html [ Failure ] crbug.com/526920 imported/web-platform-tests/html/semantics/embedded-content/media-elements/location-of-the-media-resource/currentSrc.html [ Failure ] @@ -436,7 +421,7 @@ crbug.com/505364 imported/web-platform-tests/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-002.html [ Failure ] crbug.com/505364 crbug.com/520616 imported/web-platform-tests/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-009.html [ Failure ] -crbug.com/539623 [ SnowLeopard ] fast/repaint/selection-change-in-iframe-with-relative-parent.html [ Pass Failure ImageOnlyFailure ] +crbug.com/539623 [ SnowLeopard ] fast/repaint/selection-change-in-iframe-with-relative-parent.html [ Pass Failure ] crbug.com/387740 imported/web-platform-tests/mediacapture-streams/stream-api/introduction/disabled-audio-silence.html [ Skip ] crbug.com/387740 imported/web-platform-tests/mediacapture-streams/stream-api/introduction/disabled-video-black.html [ Skip ] @@ -498,9 +483,9 @@ crbug.com/380217 [ Linux Win ] fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius.html [ Skip ] crbug.com/380217 [ Win ] fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-bottom-left.html [ Skip ] -crbug.com/405389 imported/csswg-test/css-shapes-1/shape-outside/supported-shapes/polygon/shape-outside-polygon-017.html [ ImageOnlyFailure ] -crbug.com/424365 imported/csswg-test/css-shapes-1/shape-outside/shape-image/shape-image-010.html [ ImageOnlyFailure ] -crbug.com/424365 imported/csswg-test/css-shapes-1/shape-outside/shape-image/shape-image-024.html [ ImageOnlyFailure ] +crbug.com/405389 imported/csswg-test/css-shapes-1/shape-outside/supported-shapes/polygon/shape-outside-polygon-017.html [ Failure ] +crbug.com/424365 imported/csswg-test/css-shapes-1/shape-outside/shape-image/shape-image-010.html [ Failure ] +crbug.com/424365 imported/csswg-test/css-shapes-1/shape-outside/shape-image/shape-image-024.html [ Failure ] crbug.com/441840 imported/csswg-test/css-shapes-1/shape-outside/values/shape-margin-001.html [ Failure ] crbug.com/441840 imported/csswg-test/css-shapes-1/shape-outside/values/shape-outside-circle-004.html [ Failure ] crbug.com/441840 imported/csswg-test/css-shapes-1/shape-outside/values/shape-outside-circle-005.html [ Failure ] @@ -510,94 +495,94 @@ crbug.com/441840 imported/csswg-test/css-shapes-1/shape-outside/values/shape-outside-polygon-004.html [ Failure ] crbug.com/441840 imported/csswg-test/css-shapes-1/shape-outside/values/shape-outside-shape-arguments-000.html [ Failure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-003.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-005.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-011.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-013.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-033.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-002.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-004.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-006.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-008.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-010.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-012.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-014.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-016.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-018.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-020.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-030.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-005.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-017.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-029.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-041.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-053.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-065.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-077.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-089.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-095.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-105.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-109.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-121.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-125.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-137.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-141.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-153.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-157.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-004.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-010.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-016.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-028.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-034.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-040.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-052.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-064.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-076.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-088.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-104.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-108.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-112.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-116.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-124.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-128.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-136.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-140.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-144.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-148.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-156.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-160.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-169.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-173.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-185.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-189.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-201.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-205.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-217.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-221.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-225.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-229.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-172.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-176.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-188.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-192.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-204.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-208.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-220.xht [ ImageOnlyFailure ] -crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-224.xht [ ImageOnlyFailure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-003.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-005.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-011.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-013.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vlr-033.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-002.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-004.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-006.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-008.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-010.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-012.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-014.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-016.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-018.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-020.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-icb-vrl-030.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-005.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-017.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-029.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-041.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-053.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-065.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-077.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-089.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-095.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-105.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-109.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-121.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-125.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-137.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-141.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-153.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-157.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-004.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-010.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-016.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-028.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-034.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-040.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-052.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-064.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-076.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-088.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-104.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-108.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-112.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-116.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-124.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-128.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-136.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-140.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-144.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-148.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-156.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-160.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-169.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-173.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-185.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-189.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-201.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-205.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-217.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-221.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-225.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vlr-229.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-172.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-176.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-188.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-192.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-204.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-208.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-220.xht [ Failure ] +crbug.com/505151 imported/csswg-test/css-writing-modes-3/abs-pos-non-replaced-vrl-224.xht [ Failure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-block-alignment-003.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-block-alignment-005.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-block-alignment-007.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-table-alignment-003.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-table-alignment-005.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-column-order-002.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-column-order-003.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-column-order-004.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-column-order-005.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-progression-vlr-001.html [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-progression-vlr-004.html [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-progression-vrl-001.html [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-progression-vrl-004.html [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/writing-mode-stretch-001.html [ ImageOnlyFailure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-block-alignment-003.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-block-alignment-005.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-block-alignment-007.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-table-alignment-003.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/inline-table-alignment-005.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-column-order-002.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-column-order-003.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-column-order-004.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-column-order-005.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-progression-vlr-001.html [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-progression-vlr-004.html [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-progression-vrl-001.html [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/table-progression-vrl-004.html [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/writing-mode-stretch-001.html [ Failure ] # Either "combo" or split should run: http://testthewebforward.org/docs/css-naming.html crbug.com/410320 imported/csswg-test/css-writing-modes-3/orthogonal-parent-shrink-to-fit-001.html [ Skip ] @@ -613,119 +598,119 @@ crbug.com/492664 imported/csswg-test/css-writing-modes-3/text-orientation-script-001e.html [ Failure ] # These tests pass but images do not match because of wrong half-leading in vertical-lr -crbug.com/537080 imported/csswg-test/css-writing-modes-3/vertical-alignment-003.xht [ ImageOnlyFailure ] -crbug.com/537080 imported/csswg-test/css-writing-modes-3/vertical-alignment-009.xht [ ImageOnlyFailure ] +crbug.com/537080 imported/csswg-test/css-writing-modes-3/vertical-alignment-003.xht [ Failure ] +crbug.com/537080 imported/csswg-test/css-writing-modes-3/vertical-alignment-009.xht [ Failure ] # These tests pass but images do not match because of position: absolute in vertical flow bug -crbug.com/492664 imported/csswg-test/css-writing-modes-3/block-flow-direction-009.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vlr-003.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vlr-005.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vlr-007.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vlr-009.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vrl-002.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vrl-004.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vrl-006.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vrl-008.xht [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/line-box-direction-009.xht [ ImageOnlyFailure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/block-flow-direction-009.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vlr-003.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vlr-005.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vlr-007.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vlr-009.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vrl-002.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vrl-004.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vrl-006.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/clip-rect-vrl-008.xht [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/line-box-direction-009.xht [ Failure ] # These tests pass but images do not match because tests are stricter than the spec. -crbug.com/492664 imported/csswg-test/css-writing-modes-3/text-combine-upright-value-all-001.html [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/text-combine-upright-value-all-002.html [ ImageOnlyFailure ] -crbug.com/492664 imported/csswg-test/css-writing-modes-3/text-combine-upright-value-all-003.html [ ImageOnlyFailure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/text-combine-upright-value-all-001.html [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/text-combine-upright-value-all-002.html [ Failure ] +crbug.com/492664 imported/csswg-test/css-writing-modes-3/text-combine-upright-value-all-003.html [ Failure ] # These CSS Writing Modes Level 3 tests pass but causes 1px diff on images, notified to the submitter. -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-001.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-002.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-003.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-004.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-005.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-006.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-007.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-008.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-010.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-011.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-012.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-013.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-014.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-015.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-016.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-019.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-020.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-021.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-022.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-023.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-024.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/inline-block-alignment-006.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-001.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-002.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-003.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-005.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-006.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-007.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-008.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-010.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-011.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-012.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-013.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-014.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-017.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-018.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-019.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-020.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-002.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-003.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-004.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-005.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-006.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-007.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-008.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-009.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/text-baseline-006.xht [ ImageOnlyFailure ] -crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/text-baseline-007.xht [ ImageOnlyFailure ] -crbug.com/539425 [ XP ] imported/csswg-test/css-writing-modes-3/vertical-alignment-vrl-022.xht [ ImageOnlyFailure ] -crbug.com/539425 [ XP ] imported/csswg-test/css-writing-modes-3/vertical-alignment-vrl-024.xht [ ImageOnlyFailure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-001.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-002.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-003.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-004.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-005.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-006.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-007.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-008.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-010.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-011.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-012.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-013.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-014.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-015.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-016.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-019.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-020.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-021.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-022.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-023.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/block-flow-direction-024.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/inline-block-alignment-006.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-001.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-002.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-003.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-005.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-006.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-007.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-008.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-010.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-011.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-012.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-013.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-014.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-017.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-018.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-019.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/line-box-direction-020.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-002.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-003.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-004.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-005.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-006.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-007.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-008.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/row-progression-009.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/text-baseline-006.xht [ Failure ] +crbug.com/492664 [ Mac ] imported/csswg-test/css-writing-modes-3/text-baseline-007.xht [ Failure ] +crbug.com/539425 [ XP ] imported/csswg-test/css-writing-modes-3/vertical-alignment-vrl-022.xht [ Failure ] +crbug.com/539425 [ XP ] imported/csswg-test/css-writing-modes-3/vertical-alignment-vrl-024.xht [ Failure ] -crbug.com/498845 [ Win ] fast/multicol/vertical-rl/float-content-break.html [ ImageOnlyFailure ] +crbug.com/498845 [ Win ] fast/multicol/vertical-rl/float-content-break.html [ Failure ] -crbug.com/443615 [ Linux Win ] imported/csswg-test/css-shapes-1/shape-outside/supported-shapes/circle/shape-outside-circle-027.html [ ImageOnlyFailure ] +crbug.com/443615 [ Linux Win ] imported/csswg-test/css-shapes-1/shape-outside/supported-shapes/circle/shape-outside-circle-027.html [ Failure ] crbug.com/443379 imported/web-platform-tests/gamepad/idlharness.html [ Failure Timeout ] -crbug.com/396775 compositing/overflow/reflected-overlay-scrollbars-should-appear-without-compositing.html [ ImageOnlyFailure ] -crbug.com/396775 virtual/prefer_compositing_to_lcd_text/compositing/overflow/reflected-overlay-scrollbars-should-appear-without-compositing.html [ ImageOnlyFailure ] +crbug.com/396775 compositing/overflow/reflected-overlay-scrollbars-should-appear-without-compositing.html [ Failure ] +crbug.com/396775 virtual/prefer_compositing_to_lcd_text/compositing/overflow/reflected-overlay-scrollbars-should-appear-without-compositing.html [ Failure ] crbug.com/381684 [ Win Android Mac ] fonts/family-fallback-gardiner.html [ Skip ] crbug.com/467635 fast/dom/HTMLImageElement/image-sizes-meta-viewport.html [ Skip ] -# crbug.com/396823 [ Mac ] fast/multicol/multicol-with-child-renderLayer-for-input.html [ ImageOnlyFailure ] +# crbug.com/396823 [ Mac ] fast/multicol/multicol-with-child-renderLayer-for-input.html [ Failure ] -crbug.com/484370 [ Win Debug ] svg/custom/gradient-userSpaceOnUse-with-percentage.svg [ ImageOnlyFailure ] +crbug.com/484370 [ Win Debug ] svg/custom/gradient-userSpaceOnUse-with-percentage.svg [ Failure ] -crbug.com/116710 [ Win Debug ] transforms/3d/point-mapping/3d-point-mapping-preserve-3d.html [ ImageOnlyFailure ] +crbug.com/116710 [ Win Debug ] transforms/3d/point-mapping/3d-point-mapping-preserve-3d.html [ Failure ] # Printing Layout broken in these tests. crbug.com/377696 printing/setPrinting.html [ Skip ] crbug.com/377696 printing/width-overflow.html [ Skip ] # Reftests that needs investigation. -crbug.com/397232 [ XP ] css2.1/20110323/c541-word-sp-000.htm [ ImageOnlyFailure ] -crbug.com/397232 [ XP ] css2.1/20110323/vertical-align-boxes-001.htm [ ImageOnlyFailure ] -crbug.com/397255 [ Linux XP ] css3/masking/clip-path-reference-userSpaceOnUse.html [ ImageOnlyFailure ] -crbug.com/475882 [ Mac Win7 ] fast/writing-mode/table-vertical-child-width.html [ ImageOnlyFailure ] -crbug.com/396940 ietestcenter/css3/multicolumn/column-containing-block-001.htm [ ImageOnlyFailure ] -crbug.com/396940 ietestcenter/css3/multicolumn/column-containing-block-002.htm [ ImageOnlyFailure ] -crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-007.htm [ ImageOnlyFailure ] -crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-009.htm [ ImageOnlyFailure ] -crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-010.htm [ ImageOnlyFailure ] -crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-012.htm [ ImageOnlyFailure ] -crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-015.htm [ ImageOnlyFailure ] -crbug.com/378610 [ Win7 ] svg/custom/focus-ring-text.svg [ ImageOnlyFailure ] +crbug.com/397232 [ XP ] css2.1/20110323/c541-word-sp-000.htm [ Failure ] +crbug.com/397232 [ XP ] css2.1/20110323/vertical-align-boxes-001.htm [ Failure ] +crbug.com/397255 [ Linux XP ] css3/masking/clip-path-reference-userSpaceOnUse.html [ Failure ] +crbug.com/475882 [ Mac Win7 ] fast/writing-mode/table-vertical-child-width.html [ Failure ] +crbug.com/396940 ietestcenter/css3/multicolumn/column-containing-block-001.htm [ Failure ] +crbug.com/396940 ietestcenter/css3/multicolumn/column-containing-block-002.htm [ Failure ] +crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-007.htm [ Failure ] +crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-009.htm [ Failure ] +crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-010.htm [ Failure ] +crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-012.htm [ Failure ] +crbug.com/396941 ietestcenter/css3/multicolumn/column-width-applies-to-015.htm [ Failure ] +crbug.com/378610 [ Win7 ] svg/custom/focus-ring-text.svg [ Failure ] crbug.com/515454 [ Mac Win7 Win10 Android Linux ] css3/fonts/font-style-matching.html [ Slow ] crbug.com/523021 [ XP ] css3/fonts/font-style-matching.html [ Failure Slow ] -crbug.com/474987 [ Win7 Mac ] css3/flexbox/auto-margins.html [ ImageOnlyFailure ] +crbug.com/474987 [ Win7 Mac ] css3/flexbox/auto-margins.html [ Failure ] crbug.com/267206 [ Mac ] fast/scrolling/scrollbar-tickmarks-hittest.html [ Timeout ] crbug.com/267206 [ Mac ] virtual/scroll_customization/fast/scrolling/scrollbar-tickmarks-hittest.html [ Timeout ] @@ -738,13 +723,13 @@ crbug.com/527152 http/tests/media/media-source/mediasource-duration.html [ Pass Crash ] -crbug.com/517449 [ Android ] css3/images/optimize-contrast-image.html [ ImageOnlyFailure ] +crbug.com/517449 [ Android ] css3/images/optimize-contrast-image.html [ Failure ] -crbug.com/309675 compositing/gestures/gesture-tapHighlight-simple-longPress.html [ ImageOnlyFailure ] +crbug.com/309675 compositing/gestures/gesture-tapHighlight-simple-longPress.html [ Failure ] -crbug.com/245556 compositing/transitions/transform-on-large-layer.html [ ImageOnlyFailure ] +crbug.com/245556 compositing/transitions/transform-on-large-layer.html [ Failure ] -crbug.com/253763 fast/text-autosizing/first-line-scale-factor.html [ ImageOnlyFailure ] +crbug.com/253763 fast/text-autosizing/first-line-scale-factor.html [ Failure ] crbug.com/374643 [ Mac ] fast/text-autosizing/supercluster-multiple-layout.html [ Failure ] crbug.com/374643 [ Mac ] fast/text-autosizing/tables/table-with-inline-block.html [ Failure ] @@ -758,7 +743,6 @@ crbug.com/357427 http/tests/workers/terminate-during-sync-operation-filesystem.html [ Crash Pass Slow Timeout ] crbug.com/356957 [ Win Mac Debug ] editing/spelling/spellcheck-editable-on-focus.html [ Timeout ] -crbug.com/539693 [ XP Win10 ] editing/selection/doubleclick-crash.html [ Failure ] crbug.com/365400 [ Mac ] compositing/images/direct-pdf-image.html [ Failure ] @@ -768,14 +752,14 @@ crbug.com/364250 [ Debug ] virtual/threaded/animations/interpolation/transform-interpolation.html [ Pass Crash Slow ] crbug.com/364250 [ Debug ] virtual/threaded/animations/interpolation/webkit-transform-interpolation.html [ Pass Crash Slow ] -crbug.com/467477 fast/multicol/vertical-rl/nested-columns.html [ ImageOnlyFailure ] +crbug.com/467477 fast/multicol/vertical-rl/nested-columns.html [ Failure ] -crbug.com/506525 [ XP ] paint/masks/fieldset-mask.html [ ImageOnlyFailure ] +crbug.com/506525 [ XP ] paint/masks/fieldset-mask.html [ Failure ] crbug.com/506525 [ XP ] virtual/spv2/paint/masks/fieldset-mask.html [ Skip ] -crbug.com/400841 media/video-canvas-draw.html [ ImageOnlyFailure ] -crbug.com/400829 media/video-object-fit.html [ ImageOnlyFailure ] -crbug.com/400829 virtual/stable/media/stable/video-object-fit-stable.html [ ImageOnlyFailure ] +crbug.com/400841 media/video-canvas-draw.html [ Failure ] +crbug.com/400829 media/video-object-fit.html [ Failure ] +crbug.com/400829 virtual/stable/media/stable/video-object-fit-stable.html [ Failure ] # We only want to run one of the web-animations-api tests in stable mode. crbug.com/441553 virtual/stable/web-animations-api [ Skip ] @@ -785,7 +769,7 @@ crbug.com/437696 virtual/stable/web-animations-api/additive-animations-unsupported.html [ Pass ] # switching to apache-win32: needs triaging. -crbug.com/528062 [ Win ] http/tests/css/missing-repaint-after-slow-style-sheet.pl [ ImageOnlyFailure ] +crbug.com/528062 [ Win ] http/tests/css/missing-repaint-after-slow-style-sheet.pl [ Failure ] crbug.com/528062 [ Win ] http/tests/local/blob/send-data-blob.html [ Failure ] crbug.com/528062 [ Win ] http/tests/local/blob/send-hybrid-blob.html [ Failure Timeout ] crbug.com/528062 [ Win ] http/tests/security/XFrameOptions/x-frame-options-cached.html [ Failure ] @@ -1504,6 +1488,33 @@ crbug.com/404597 css3/selectors3/xml/css3-modsel-14e.xml [ NeedsRebaseline ] crbug.com/404597 css2.1/t0402-c71-fwd-parsing-02-f.html [ NeedsRebaseline ] +crbug.com/543309 editing/execCommand/4916541.html [ NeedsRebaseline ] +crbug.com/543309 editing/execCommand/remove-list-from-range-selection.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/3690703-2.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/3690703.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/3690719.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/extend-by-character-002.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/image-before-linebreak.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/paragraph-granularity.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/replaced-boundaries-3.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/select-all-002.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/selection-actions.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/selection-button-text.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/vertical-lr-ltr-extend-line-backward-br.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/vertical-lr-ltr-extend-line-forward-br.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/vertical-rl-ltr-extend-line-backward-br.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/vertical-rl-ltr-extend-line-forward-br.html [ NeedsRebaseline ] +crbug.com/543309 editing/selection/word-granularity.html [ NeedsRebaseline ] +crbug.com/543309 fast/text/selection-hard-linebreak.html [ NeedsRebaseline ] +crbug.com/543309 fast/text/whitespace/pre-wrap-overflow-selection.html [ NeedsRebaseline ] +crbug.com/543309 fast/writing-mode/vertical-lr-replaced-selection.html [ NeedsRebaseline ] +crbug.com/543309 virtual/spv2/paint/invalidation/spv2/selection-change-in-iframe-with-relative-parent.html [ NeedsRebaseline ] +crbug.com/543309 paint/selection/text-selection-newline-br.html [ NeedsRebaseline ] +crbug.com/543309 virtual/spv2/paint/selection/text-selection-newline-br.html [ NeedsRebaseline ] +crbug.com/543309 fast/writing-mode/horizontal-bt-replaced-selection.html [ NeedsRebaseline ] +# The below is failing on XP and Win10 only. See crbug.com/539693 +crbug.com/543309 editing/selection/doubleclick-crash.html [ NeedsManualRebaseline ] + crbug.com/419993 [ Debug ] fast/css/giant-stylesheet-crash.html [ Pass Slow ] # Part of a larger issue referenced in the bug. This specific issue will be fixed shortly. @@ -1521,9 +1532,9 @@ # fast/text/international/bidi-neutral-run.html is missing here, since it has a NeedsRebaseline expectation up above. crbug.com/421854 [ Debug SnowLeopard ] fast/text/zero-width-characters-complex-script.html [ Crash ] -crbug.com/418091 [ SnowLeopard ] fast/text/international/zerowidthjoiner.html [ ImageOnlyFailure ] +crbug.com/418091 [ SnowLeopard ] fast/text/international/zerowidthjoiner.html [ Failure ] -crbug.com/507351 [ Mac ] fast/text/international/kana-voiced-sound-marks.html [ ImageOnlyFailure ] +crbug.com/507351 [ Mac ] fast/text/international/kana-voiced-sound-marks.html [ Failure ] crbug.com/425345 [ Mac ] fast/text/line-break-after-question-mark.html [ Failure ] @@ -1531,7 +1542,7 @@ # In this configuration, the pixel smoothed glyphs will be created from subpixel smoothed glyphs. # This means that CoreGraphics may draw outside the reported glyph bounds, and in this case does. # By about a quarter or less of a pixel. -crbug.com/421412 [ MountainLion Mavericks Retina ] fast/text/international/bdo-bidi-width.html [ ImageOnlyFailure ] +crbug.com/421412 [ MountainLion Mavericks Retina ] fast/text/international/bdo-bidi-width.html [ Failure ] crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-overflow-hidden.html [ Failure ] crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html [ Failure ] @@ -1542,7 +1553,7 @@ crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-visibility-hidden-child.html [ Failure ] crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-zero-size-and-border.html [ Failure ] crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame.html [ Failure ] -crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollbar-tickmarks-styled.html [ ImageOnlyFailure ] +crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollbar-tickmarks-styled.html [ Failure ] crbug.com/385014 accessibility/canvas-fallback-content-2.html [ Failure ] @@ -1561,20 +1572,20 @@ crbug.com/364614 [ Mac ] virtual/scroll_customization/fast/scroll-behavior/overflow-scroll-root-frame-animates.html [ Skip ] crbug.com/364614 [ Mac ] virtual/threaded_animation_timelines/fast/scroll-behavior/overflow-scroll-root-frame-animates.html [ Skip ] -crbug.com/524596 paint/invalidation/composited-non-stacking-context-descendant-change-color.html [ ImageOnlyFailure ] -crbug.com/524596 paint/invalidation/composited-non-stacking-context-descendant-move.html [ ImageOnlyFailure ] -crbug.com/524596 paint/invalidation/fixed-position-descendant-paint-offset-indirect.html [ ImageOnlyFailure ] +crbug.com/524596 paint/invalidation/composited-non-stacking-context-descendant-change-color.html [ Failure ] +crbug.com/524596 paint/invalidation/composited-non-stacking-context-descendant-move.html [ Failure ] +crbug.com/524596 paint/invalidation/fixed-position-descendant-paint-offset-indirect.html [ Failure ] crbug.com/524596 virtual/spv2/paint/invalidation/composited-non-stacking-context-descendant-move.html [ Skip ] crbug.com/524596 virtual/spv2/paint/invalidation/fixed-position-descendant-paint-offset-indirect.html [ Skip ] -crbug.com/425113 svg/clip-path/clip-path-multiple-children.svg [ ImageOnlyFailure ] +crbug.com/425113 svg/clip-path/clip-path-multiple-children.svg [ Failure ] crbug.com/480769 http/tests/inspector/service-workers/service-workers-redundant.html [ Crash Pass Slow Failure ] crbug.com/528198 http/tests/inspector/service-workers/service-worker-agents.html [ Crash Pass ] -crbug.com/472330 fast/borders/border-image-outset-split-inline-vertical-lr.html [ ImageOnlyFailure ] -crbug.com/472330 fast/writing-mode/box-shadow-vertical-lr.html [ ImageOnlyFailure ] -crbug.com/472330 fast/writing-mode/box-shadow-vertical-rl.html [ ImageOnlyFailure ] +crbug.com/472330 fast/borders/border-image-outset-split-inline-vertical-lr.html [ Failure ] +crbug.com/472330 fast/writing-mode/box-shadow-vertical-lr.html [ Failure ] +crbug.com/472330 fast/writing-mode/box-shadow-vertical-rl.html [ Failure ] crbug.com/466200 svg/custom/repaint-on-constant-size-change.svg [ Failure ] @@ -1582,31 +1593,31 @@ crbug.com/498021 [ Linux ] fast/text/unicode-fallback-font.html [ Failure ] crbug.com/498021 [ Linux ] http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked.html [ Failure ] crbug.com/498021 [ Linux ] svg/custom/use-on-symbol-inside-pattern.svg [ Failure ] -crbug.com/498021 [ Linux ] fast/forms/month/month-appearance-l10n.html [ ImageOnlyFailure ] -crbug.com/498021 [ Linux ] fast/text/ellipsis-stroked.html [ ImageOnlyFailure ] -crbug.com/498021 [ Linux ] fast/text/emphasis-complex.html [ ImageOnlyFailure ] -crbug.com/498021 [ Linux ] fast/text/international/danda-space.html [ Failure ImageOnlyFailure ] -crbug.com/498021 [ Linux ] fast/text/international/hindi-whitespace.html [ ImageOnlyFailure ] -crbug.com/498021 [ Linux ] fast/text/international/thai-line-breaks.html [ Failure ImageOnlyFailure ] -crbug.com/498021 [ Linux ] fast/text/selection-multiple-runs.html [ ImageOnlyFailure ] -crbug.com/498021 [ Linux ] svg/W3C-SVG-1.1/paths-data-03-f.svg [ ImageOnlyFailure ] -crbug.com/498021 [ Linux ] svg/W3C-SVG-1.1/text-align-08-b.svg [ ImageOnlyFailure ] -crbug.com/498021 [ Linux ] svg/custom/control-points-for-S-and-T.svg [ ImageOnlyFailure ] +crbug.com/498021 [ Linux ] fast/forms/month/month-appearance-l10n.html [ Failure ] +crbug.com/498021 [ Linux ] fast/text/ellipsis-stroked.html [ Failure ] +crbug.com/498021 [ Linux ] fast/text/emphasis-complex.html [ Failure ] +crbug.com/498021 [ Linux ] fast/text/international/danda-space.html [ Failure ] +crbug.com/498021 [ Linux ] fast/text/international/hindi-whitespace.html [ Failure ] +crbug.com/498021 [ Linux ] fast/text/international/thai-line-breaks.html [ Failure ] +crbug.com/498021 [ Linux ] fast/text/selection-multiple-runs.html [ Failure ] +crbug.com/498021 [ Linux ] svg/W3C-SVG-1.1/paths-data-03-f.svg [ Failure ] +crbug.com/498021 [ Linux ] svg/W3C-SVG-1.1/text-align-08-b.svg [ Failure ] +crbug.com/498021 [ Linux ] svg/custom/control-points-for-S-and-T.svg [ Failure ] crbug.com/498021 [ Linux ] editing/pasteboard/4944770-2.html [ Failure ] crbug.com/498021 [ Linux ] fast/encoding/invalid-UTF-8.html [ Failure ] crbug.com/498021 [ Linux ] fast/text/emoticons.html [ Failure ] crbug.com/498021 [ Linux ] fast/text/international/complex-character-based-fallback.html [ Failure ] crbug.com/498021 [ Linux ] fast/text/international/hindi-spacing.html [ Failure ] -crbug.com/528122 [ Mac ] fast/text/justify-ideograph-vertical.html [ Failure ImageOnlyFailure Pass ] +crbug.com/528122 [ Mac ] fast/text/justify-ideograph-vertical.html [ Failure Pass ] # Significant Slimming Paint failure. -crbug.com/459305 [ Mac ] svg/custom/foreign-object-skew.svg [ ImageOnlyFailure ] +crbug.com/459305 [ Mac ] svg/custom/foreign-object-skew.svg [ Failure ] crbug.com/463798 [ Mac ] svg/as-image/svg-invalid-image-1.html [ Failure ] -crbug.com/463358 [ Mac Linux Debug ] css3/masking/clip-path-polygon-evenodd.html [ ImageOnlyFailure ] -crbug.com/463358 [ Lion Mavericks MountainLion Retina SnowLeopard Debug ] svg/transforms/animated-path-inside-transformed-html.xhtml [ ImageOnlyFailure ] +crbug.com/463358 [ Mac Linux Debug ] css3/masking/clip-path-polygon-evenodd.html [ Failure ] +crbug.com/463358 [ Lion Mavericks MountainLion Retina SnowLeopard Debug ] svg/transforms/animated-path-inside-transformed-html.xhtml [ Failure ] crbug.com/482229 compositing/layer-creation/fixed-position-under-transform.html [ Failure ] @@ -1620,16 +1631,16 @@ crbug.com/471066 [ SnowLeopard ] fast/text/apply-start-width-after-skipped-text.html [ Failure ] crbug.com/471066 [ SnowLeopard ] fast/text/bidi-explicit-embedding-past-end.html [ Failure ] crbug.com/471066 [ SnowLeopard ] fast/text/emphasis-overlap.html [ Failure ] -crbug.com/471066 [ SnowLeopard ] fast/text/fake-italic.html [ Failure ImageOnlyFailure ] +crbug.com/471066 [ SnowLeopard ] fast/text/fake-italic.html [ Failure ] crbug.com/478109 [ SnowLeopard ] fast/text/bidi-embedding-pop-and-push-same-2.html [ Failure ] -crbug.com/521124 [ Win7 ] fast/text/international/vertical-text-glyph-test.html [ Pass ImageOnlyFailure ] -crbug.com/521124 [ Win7 ] fast/text/international/text-combine-image-test.html [ Pass ImageOnlyFailure ] -crbug.com/521124 [ Win7 Release ] fast/css/font-weight-1.html [ Pass ImageOnlyFailure ] -crbug.com/521124 [ Win7 Release ] fast/text/justify-ideograph-vertical.html [ Pass ImageOnlyFailure ] -crbug.com/521124 [ Win7 Release ] fast/writing-mode/english-lr-text.html [ Pass ImageOnlyFailure ] -crbug.com/521124 [ Win7 ] fast/text/orientation-sideways.html [ Pass ImageOnlyFailure ] +crbug.com/521124 [ Win7 ] fast/text/international/vertical-text-glyph-test.html [ Pass Failure ] +crbug.com/521124 [ Win7 ] fast/text/international/text-combine-image-test.html [ Pass Failure ] +crbug.com/521124 [ Win7 Release ] fast/css/font-weight-1.html [ Pass Failure ] +crbug.com/521124 [ Win7 Release ] fast/text/justify-ideograph-vertical.html [ Pass Failure ] +crbug.com/521124 [ Win7 Release ] fast/writing-mode/english-lr-text.html [ Pass Failure ] +crbug.com/521124 [ Win7 ] fast/text/orientation-sideways.html [ Pass Failure ] crbug.com/419769 [ Debug SnowLeopard ] fast/forms/time-multiple-fields/time-multiple-fields-localization.html [ Crash ] crbug.com/419769 [ SnowLeopard ] fast/text/unicode-fallback-font.html [ Crash ] @@ -1639,13 +1650,13 @@ #crbug.com/485332 [ XP ] virtual/gpu/fast/canvas/canvas-as-image.html [ Failure ] # Temporary, until we stop use_system_harfbuzz on Linux including non-official builds -crbug.com/462689 [ Linux ] fast/text/unicode-variation-selector.html [ ImageOnlyFailure ] +crbug.com/462689 [ Linux ] fast/text/unicode-variation-selector.html [ Failure ] # Temporary, until WebAXObjectProxy support lands. crbug.com/421771 accessibility/inline-text-box-next-on-line.html [ Skip ] -crbug.com/486962 [ Linux Win Debug ] svg/W3C-SVG-1.1/animate-elem-41-t.svg [ ImageOnlyFailure ] -crbug.com/486962 [ Linux Win Debug ] svg/W3C-SVG-1.1/animate-elem-46-t.svg [ ImageOnlyFailure ] +crbug.com/486962 [ Linux Win Debug ] svg/W3C-SVG-1.1/animate-elem-41-t.svg [ Failure ] +crbug.com/486962 [ Linux Win Debug ] svg/W3C-SVG-1.1/animate-elem-46-t.svg [ Failure ] # Disabled briefly until test runner support lands. crbug.com/479533 accessibility/show-context-menu.html [ Skip ] @@ -1659,9 +1670,9 @@ crbug.com/474798 virtual/spv2/paint/invalidation/spv2/justify-self-change-keeping-geometry-as-text.html [ Failure ] # Temporarily disabled after chromium change -crbug.com/492511 [ Mac ] fast/text/atsui-negative-spacing-features.html [ Failure ImageOnlyFailure ] -crbug.com/492511 [ Mac ] fast/text/atsui-spacing-features.html [ Failure ImageOnlyFailure ] -crbug.com/492511 [ Mac ] fast/text/international/arabic-justify.html [ Failure ImageOnlyFailure ] +crbug.com/492511 [ Mac ] fast/text/atsui-negative-spacing-features.html [ Failure ] +crbug.com/492511 [ Mac ] fast/text/atsui-spacing-features.html [ Failure ] +crbug.com/492511 [ Mac ] fast/text/international/arabic-justify.html [ Failure ] crbug.com/541544 fast/layers/scroll-descendant-with-cached-cliprects.html [ NeedsRebaseline ] crbug.com/541544 fast/repaint/create-layer-repaint.html [ NeedsRebaseline ] @@ -1669,22 +1680,22 @@ # Ref tests that fail due to differences in inline box structure, even though they contain the same text. # This happens because inline box layout uses fixed-point measurements, which can cause rounding differences. -crbug.com/321237 [ Mac ] fast/dom/shadow/shadow-insertion-point-rendering-multiple-shadow-roots.html [ ImageOnlyFailure ] -crbug.com/321237 [ Mac ] fast/selectors/007a.html [ ImageOnlyFailure ] -crbug.com/321237 [ Mac Win ] fast/text-autosizing/inherited-multiplier.html [ ImageOnlyFailure ] -crbug.com/321237 [ Mac ] virtual/stable/fast/css3-text/css3-text-decoration/stable/first-letter-text-decoration.html [ ImageOnlyFailure ] -crbug.com/321237 [ Win ] fast/multicol/span/pseudo-before-after-in-content.html [ ImageOnlyFailure ] -crbug.com/321237 [ Win ] fast/selectors/004.html [ ImageOnlyFailure ] +crbug.com/321237 [ Mac ] fast/dom/shadow/shadow-insertion-point-rendering-multiple-shadow-roots.html [ Failure ] +crbug.com/321237 [ Mac ] fast/selectors/007a.html [ Failure ] +crbug.com/321237 [ Mac Win ] fast/text-autosizing/inherited-multiplier.html [ Failure ] +crbug.com/321237 [ Mac ] virtual/stable/fast/css3-text/css3-text-decoration/stable/first-letter-text-decoration.html [ Failure ] +crbug.com/321237 [ Win ] fast/multicol/span/pseudo-before-after-in-content.html [ Failure ] +crbug.com/321237 [ Win ] fast/selectors/004.html [ Failure ] # Rebaselines that got missed in the first pass -crbug.com/321237 [ Mac ] fast/text/international/complex-text-leading-space-wrapping.html [ ImageOnlyFailure ] -crbug.com/321237 [ Win ] fast/text/international/complex-text-leading-space-wrapping.html [ ImageOnlyFailure ] +crbug.com/321237 [ Mac ] fast/text/international/complex-text-leading-space-wrapping.html [ Failure ] +crbug.com/321237 [ Win ] fast/text/international/complex-text-leading-space-wrapping.html [ Failure ] crbug.com/495523 [ XP ] svg/W3C-SVG-1.1/animate-elem-52-t.svg [ Failure ] crbug.com/495523 [ XP ] svg/W3C-SVG-1.1/extend-namespace-01-f.svg [ Failure ] # This new test will need a Chrome-side change before it passes. -crbug.com/240827 css3/filters/filterRegions.html [ ImageOnlyFailure ] +crbug.com/240827 css3/filters/filterRegions.html [ Failure ] crbug.com/501659 fast/xsl/xslt-missing-namespace-in-xslt.xml [ Failure ] crbug.com/501659 http/tests/xmlviewer/dumpAsText/svg.xml [ Failure ] @@ -1695,11 +1706,11 @@ # Slow expected on debug builds crbug.com/445194 [ Debug ] fast/dom/shadow/focus-controller-recursion-crash.html [ Skip ] -crbug.com/505387 [ Win ] virtual/prefer_compositing_to_lcd_text/scrollbars/rtl/overflow-scroll-rtl.html [ ImageOnlyFailure ] +crbug.com/505387 [ Win ] virtual/prefer_compositing_to_lcd_text/scrollbars/rtl/overflow-scroll-rtl.html [ Failure ] crbug.com/505415 [ XP ] accessibility/canvas-fallback-content-labels.html [ Failure ] -crbug.com/506312 imported/csswg-test/css-pseudo-4/first-letter-001.html [ ImageOnlyFailure ] +crbug.com/506312 imported/csswg-test/css-pseudo-4/first-letter-001.html [ Failure ] crbug.com/510002 [ Win ] http/tests/cachestorage/window/cache-match.html [ Pass Failure ] crbug.com/510002 [ Win ] http/tests/cachestorage/window/cache-put.html [ Pass Failure Timeout ] @@ -1759,48 +1770,48 @@ crbug.com/509025 [ Yosemite ] svg/custom/absolute-sized-content-with-resources.xhtml [ Failure ] crbug.com/509025 [ Yosemite ] svg/custom/bug78807.svg [ Failure ] crbug.com/509025 [ Yosemite ] svg/text/text-rescale.html [ Failure ] -crbug.com/509025 [ Yosemite ] compositing/iframes/iframe-copy-on-scroll.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ ImageOnlyFailure Failure Timeout ] -crbug.com/509025 [ Yosemite ] compositing/plugins/composited-plugin.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] compositing/visibility/visibility-image-layers.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fonts/cursive.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fonts/default.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fonts/fantasy.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fonts/monospace.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fonts/sans-serif.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fonts/serif.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] http/tests/local/file-url-sent-as-referer.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] http/tests/mime/png-image-with-x-png-mime-type.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] http/tests/misc/iframe404.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] http/tests/misc/location-replace-crossdomain.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] http/tests/misc/object-embedding-svg-delayed-size-negotiation.xhtml [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] ietestcenter/css3/bordersbackgrounds/background-attachment-local-scrolling.htm [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio.htm [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] ietestcenter/css3/bordersbackgrounds/background_position_three_four_values.htm [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] media/video-layer-crash.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] media/video-transformed.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] plugins/embed-attributes-style.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] printing/return-from-printing-mode.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] scrollbars/rtl/overflow-scroll-rtl.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] scrollbars/scrollbars-on-positioned-content.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] scrollbars/short-scrollbar.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] tables/layering/paint-test-layering-1.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] tables/layering/paint-test-layering-2.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] transforms/2d/transform-fixed-container.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] transforms/3d/point-mapping/3d-point-mapping-origins.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] transforms/3d/point-mapping/3d-point-mapping.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fast/text/atsui-rtl-override-selection.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fast/text/international/bdo-bidi-width.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/pointerevent/fast/events/reveal-link-when-focused.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/trustedeventsdefaultaction/fast/events/reveal-link-when-focused.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbars-on-positioned-content.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/scrollbars/short-scrollbar.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/threaded/compositing/visibility/visibility-image-layers.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/threaded/printing/return-from-printing-mode.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] fast/encoding/denormalised-voiced-japanese-chars.html [ ImageOnlyFailure ] +crbug.com/509025 [ Yosemite ] compositing/iframes/iframe-copy-on-scroll.html [ Failure ] +crbug.com/509025 [ Yosemite ] compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Failure ] +crbug.com/509025 [ Yosemite ] compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ Failure Timeout ] +crbug.com/509025 [ Yosemite ] compositing/plugins/composited-plugin.html [ Failure ] +crbug.com/509025 [ Yosemite ] compositing/visibility/visibility-image-layers.html [ Failure ] +crbug.com/509025 [ Yosemite ] fonts/cursive.html [ Failure ] +crbug.com/509025 [ Yosemite ] fonts/default.html [ Failure ] +crbug.com/509025 [ Yosemite ] fonts/fantasy.html [ Failure ] +crbug.com/509025 [ Yosemite ] fonts/monospace.html [ Failure ] +crbug.com/509025 [ Yosemite ] fonts/sans-serif.html [ Failure ] +crbug.com/509025 [ Yosemite ] fonts/serif.html [ Failure ] +crbug.com/509025 [ Yosemite ] http/tests/local/file-url-sent-as-referer.html [ Failure ] +crbug.com/509025 [ Yosemite ] http/tests/mime/png-image-with-x-png-mime-type.html [ Failure ] +crbug.com/509025 [ Yosemite ] http/tests/misc/iframe404.html [ Failure ] +crbug.com/509025 [ Yosemite ] http/tests/misc/location-replace-crossdomain.html [ Failure ] +crbug.com/509025 [ Yosemite ] http/tests/misc/object-embedding-svg-delayed-size-negotiation.xhtml [ Failure ] +crbug.com/509025 [ Yosemite ] ietestcenter/css3/bordersbackgrounds/background-attachment-local-scrolling.htm [ Failure ] +crbug.com/509025 [ Yosemite ] ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio.htm [ Failure ] +crbug.com/509025 [ Yosemite ] ietestcenter/css3/bordersbackgrounds/background_position_three_four_values.htm [ Failure ] +crbug.com/509025 [ Yosemite ] media/video-layer-crash.html [ Failure ] +crbug.com/509025 [ Yosemite ] media/video-transformed.html [ Failure ] +crbug.com/509025 [ Yosemite ] plugins/embed-attributes-style.html [ Failure ] +crbug.com/509025 [ Yosemite ] printing/return-from-printing-mode.html [ Failure ] +crbug.com/509025 [ Yosemite ] scrollbars/rtl/overflow-scroll-rtl.html [ Failure ] +crbug.com/509025 [ Yosemite ] scrollbars/scrollbars-on-positioned-content.html [ Failure ] +crbug.com/509025 [ Yosemite ] scrollbars/short-scrollbar.html [ Failure ] +crbug.com/509025 [ Yosemite ] tables/layering/paint-test-layering-1.html [ Failure ] +crbug.com/509025 [ Yosemite ] tables/layering/paint-test-layering-2.html [ Failure ] +crbug.com/509025 [ Yosemite ] transforms/2d/transform-fixed-container.html [ Failure ] +crbug.com/509025 [ Yosemite ] transforms/3d/point-mapping/3d-point-mapping-origins.html [ Failure ] +crbug.com/509025 [ Yosemite ] transforms/3d/point-mapping/3d-point-mapping.html [ Failure ] +crbug.com/509025 [ Yosemite ] fast/text/atsui-rtl-override-selection.html [ Failure ] +crbug.com/509025 [ Yosemite ] fast/text/international/bdo-bidi-width.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/pointerevent/fast/events/reveal-link-when-focused.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/trustedeventsdefaultaction/fast/events/reveal-link-when-focused.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbars-on-positioned-content.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/scrollbars/short-scrollbar.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/threaded/compositing/visibility/visibility-image-layers.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/threaded/printing/return-from-printing-mode.html [ Failure ] +crbug.com/509025 [ Yosemite ] fast/encoding/denormalised-voiced-japanese-chars.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/overflow/scrollRevealButton.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/ruby/nested-ruby.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/text/drawBidiText.html [ Failure ] @@ -1842,9 +1853,9 @@ crbug.com/509025 [ Yosemite ] virtual/pointerevent/fast/events/context-no-deselect.html [ Failure ] crbug.com/509025 [ Yosemite ] virtual/trustedeventsdefaultaction/fast/events/context-no-deselect.html [ Failure ] crbug.com/509025 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/theme-affects-visual-overflow.html [ Failure ] -crbug.com/509025 [ Yosemite ] virtual/rootlayerscrolls/scrollbars/rtl/overflow-scroll-rtl.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/rootlayerscrolls/scrollbars/scrollbars-on-positioned-content.html [ ImageOnlyFailure ] -crbug.com/509025 [ Yosemite ] virtual/rootlayerscrolls/scrollbars/short-scrollbar.html [ ImageOnlyFailure ] +crbug.com/509025 [ Yosemite ] virtual/rootlayerscrolls/scrollbars/rtl/overflow-scroll-rtl.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/rootlayerscrolls/scrollbars/scrollbars-on-positioned-content.html [ Failure ] +crbug.com/509025 [ Yosemite ] virtual/rootlayerscrolls/scrollbars/short-scrollbar.html [ Failure ] crbug.com/472084 editing/execCommand/5136770.html [ NeedsRebaseline ] crbug.com/472084 editing/execCommand/5190926.html [ NeedsRebaseline ] @@ -1860,7 +1871,7 @@ crbug.com/532469 http/tests/security/cross-frame-access-custom.html [ NeedsManualRebaseline ] # Win10 specific failures that still need triaging. -crbug.com/521730 [ Win10 ] fast/text/shaping/same-script-different-lang.html [ ImageOnlyFailure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/shaping/same-script-different-lang.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] fast/dom/Window/property-access-on-cached-properties-after-frame-navigated.html [ Failure ] crbug.com/521730 [ Win10 ] fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html [ Failure ] crbug.com/521730 [ Win10 ] fast/dom/Window/property-access-on-cached-properties-after-frame-removed.html [ Failure ] @@ -1887,63 +1898,63 @@ crbug.com/521730 [ Win10 ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-repaint-if-scrolling-composited-layers.html [ Failure ] crbug.com/521730 [ Win10 ] virtual/stable/webexposed/global-interface-listing.html [ Failure ] #crbug.com/521730 [ Win10 ] webexposed/global-interface-listing.html [ Failure ] -crbug.com/521730 [ Win10 ] css3/flexbox/auto-margins.html [ ImageOnlyFailure ImageOnlyFailure ImageOnlyFailure Timeout ] -crbug.com/521730 [ Win10 ] fast/forms/datetimelocal/datetimelocal-appearance-l10n.html [ ImageOnlyFailure Timeout ImageOnlyFailure Timeout ] -crbug.com/521730 [ Win10 ] fast/forms/month/month-appearance-basic.html [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/forms/select/popup-menu-appearance-styled.html [ ImageOnlyFailure Timeout ImageOnlyFailure Timeout ] -crbug.com/521730 [ Win10 ] fast/text-autosizing/hackernews-comments.html [ Failure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text-autosizing/list-item-above-dbcat.html [ Failure Timeout Timeout Timeout ] -crbug.com/521730 [ Win10 ] fast/text-autosizing/supercluster-multiple-layout.html [ ImageOnlyFailure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/fixed-table-single-cell-lots-of-text.html [ Failure Timeout ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] css3/flexbox/auto-margins.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/forms/datetimelocal/datetimelocal-appearance-l10n.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/forms/month/month-appearance-basic.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/forms/select/popup-menu-appearance-styled.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text-autosizing/hackernews-comments.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text-autosizing/list-item-above-dbcat.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text-autosizing/supercluster-multiple-layout.html [ Timeout Failure ] +crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/fixed-table-single-cell-lots-of-text.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/nested-tables.html [ Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/single-percent-width-cell-lots-of-text.html [ Failure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/table-cell-inflation.html [ Failure Timeout ImageOnlyFailure Timeout ] -crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/table-for-layout.html [ Failure Timeout ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/single-percent-width-cell-lots-of-text.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/table-cell-inflation.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/table-for-layout.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/table-with-inline-block.html [ Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/wide-percentage-width.html [ Failure ImageOnlyFailure ImageOnlyFailure Timeout ] +crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/wide-percentage-width.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] fast/text-autosizing/tables/wide-specified-width.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] virtual/threaded/inspector/tracing/timeline-event-dispatch.html [ Failure ] -crbug.com/521730 [ Win10 ] fast/text/atsui-kerning-and-ligatures.html [ Failure Timeout Timeout ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] fast/text/atsui-kerning-and-ligatures.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] fast/text/atsui-multiple-renderers.html [ Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/text/atsui-spacing-features.html [ Failure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/basic/009.html [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/basic/generic-family-changes.html [ Failure Timeout ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] fast/text/atsui-spacing-features.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/basic/009.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/basic/generic-family-changes.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] fast/text/capitalize-boundaries.html [ Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/text/drawBidiText.html [ Failure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/emoji-web-font.html [ Failure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/firstline/001.html [ ImageOnlyFailure ImageOnlyFailure Timeout Timeout ] -crbug.com/521730 [ Win10 ] fast/text/firstline/002.html [ Failure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/firstline/003.html [ ImageOnlyFailure ImageOnlyFailure Timeout Timeout ] +crbug.com/521730 [ Win10 ] fast/text/drawBidiText.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/emoji-web-font.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/firstline/001.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/firstline/002.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/firstline/003.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] fast/text/font-stretch.html [ Timeout Failure ] crbug.com/521730 [ Win10 ] fast/text/format-control.html [ Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/text/international/alef-connected.html [ ImageOnlyFailure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/international/bidi-linebreak-001.html [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/international/bidi-linebreak-003.html [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/international/bidi-word-spacing-rtl.html [ ImageOnlyFailure Timeout Timeout Timeout ] -crbug.com/521730 [ Win10 ] fast/text/international/inline-block-with-mixed-direction-words.html [ ImageOnlyFailure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/international/kana-voiced-sound-marks.html [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/international/mixed-directionality-selection.html [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/international/plane2.html [ Failure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/letter-spacing-negative-opacity.html [ Failure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/line-breaks-after-white-space.html [ ImageOnlyFailure ImageOnlyFailure ImageOnlyFailure Timeout ] -crbug.com/521730 [ Win10 ] fast/text/line-breaks.html [ ImageOnlyFailure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/shadow-no-blur.html [ Failure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/text/stroking-decorations.html [ Failure ImageOnlyFailure Timeout ] -crbug.com/521730 [ Win10 ] fast/text/trailing-white-space-2.html [ ImageOnlyFailure ImageOnlyFailure ImageOnlyFailure Timeout ] -crbug.com/521730 [ Win10 ] fast/text/whitespace/nbsp-mode-and-linewraps.html [ Failure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/writing-mode/table-vertical-child-width.html [ ImageOnlyFailure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] fast/writing-mode/vertical-font-fallback.html [ ImageOnlyFailure ImageOnlyFailure Timeout Timeout ] -crbug.com/521730 [ Win10 ] svg/W3C-I18N/text-dirLTR-ubNone.svg [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] svg/W3C-I18N/text-dirLTR-ubOverride.svg [ ImageOnlyFailure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context.svg [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-default-context.svg [ ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubNone-in-ltr-context.svg [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] svg/W3C-SVG-1.1/text-intro-03-b.svg [ ImageOnlyFailure ImageOnlyFailure Timeout ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] fast/text/international/alef-connected.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/bidi-linebreak-001.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/bidi-linebreak-003.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/bidi-word-spacing-rtl.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/inline-block-with-mixed-direction-words.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/kana-voiced-sound-marks.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/mixed-directionality-selection.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/plane2.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/letter-spacing-negative-opacity.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/line-breaks-after-white-space.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/line-breaks.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/shadow-no-blur.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/stroking-decorations.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/trailing-white-space-2.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/whitespace/nbsp-mode-and-linewraps.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/writing-mode/table-vertical-child-width.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/writing-mode/vertical-font-fallback.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] svg/W3C-I18N/text-dirLTR-ubNone.svg [ Failure Timeout ] +crbug.com/521730 [ Win10 ] svg/W3C-I18N/text-dirLTR-ubOverride.svg [ Failure Timeout ] +crbug.com/521730 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context.svg [ Failure Timeout ] +crbug.com/521730 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-default-context.svg [ Failure ] +crbug.com/521730 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubNone-in-ltr-context.svg [ Failure Timeout ] +crbug.com/521730 [ Win10 ] svg/W3C-SVG-1.1/text-intro-03-b.svg [ Failure Timeout ] crbug.com/521730 [ Win10 ] svg/batik/text/verticalText.svg [ Failure ] -crbug.com/521730 [ Win10 ] svg/carto.net/combobox.svg [ ImageOnlyFailure Timeout ImageOnlyFailure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] svg/css/text-gradient-shadow.svg [ ImageOnlyFailure ImageOnlyFailure ImageOnlyFailure Timeout ] +crbug.com/521730 [ Win10 ] svg/carto.net/combobox.svg [ Failure Timeout ] +crbug.com/521730 [ Win10 ] svg/css/text-gradient-shadow.svg [ Failure Timeout ] crbug.com/521730 [ Win10 ] compositing/plugins/invalidate_rect.html [ Crash ] -crbug.com/521730 [ Win10 ] compositing/squashing/squashing-print.html [ Crash ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] compositing/squashing/squashing-print.html [ Crash Failure ] crbug.com/521730 [ Win10 ] fast/replaced/no-focus-ring-embed.html [ Crash ] crbug.com/521730 [ Win10 ] fast/replaced/no-focus-ring-object.html [ Crash ] crbug.com/521730 [ Win10 ] fast/text-autosizing/print-autosizing.html [ Crash ] @@ -1956,21 +1967,21 @@ crbug.com/521730 [ Win10 ] plugins/tabindex.html [ Crash ] crbug.com/521730 [ Win10 ] plugins/windowless_plugin_paint_test.html [ Crash ] crbug.com/521730 [ Win10 ] printing/ellipsis-printing-style.html [ Crash ] -crbug.com/521730 [ Win10 ] printing/iframe-print.html [ Crash Failure ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] printing/iframe-print.html [ Failure Crash ] crbug.com/521730 [ Win10 ] printing/print-no-background.html [ Crash ] -crbug.com/521730 [ Win10 ] printing/quirks-percentage-height-body.html [ Crash Failure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] printing/quirks-percentage-height.html [ Crash Failure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] printing/simultaneous-position-float-change.html [ Crash Failure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] printing/standards-percentage-heights.html [ Crash Failure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] printing/subframes-percentage-height.html [ Crash Failure ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] printing/quirks-percentage-height-body.html [ Failure Crash ] +crbug.com/521730 [ Win10 ] printing/quirks-percentage-height.html [ Failure Crash ] +crbug.com/521730 [ Win10 ] printing/simultaneous-position-float-change.html [ Failure Crash ] +crbug.com/521730 [ Win10 ] printing/standards-percentage-heights.html [ Failure Crash ] +crbug.com/521730 [ Win10 ] printing/subframes-percentage-height.html [ Failure Crash ] crbug.com/521730 [ Win10 ] virtual/threaded/printing/ellipsis-printing-style.html [ Crash ] -crbug.com/521730 [ Win10 ] virtual/threaded/printing/iframe-print.html [ Crash Failure ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] virtual/threaded/printing/iframe-print.html [ Failure Crash ] crbug.com/521730 [ Win10 ] virtual/threaded/printing/print-no-background.html [ Crash ] -crbug.com/521730 [ Win10 ] virtual/threaded/printing/quirks-percentage-height-body.html [ Crash Failure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] virtual/threaded/printing/quirks-percentage-height.html [ Crash Failure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] virtual/threaded/printing/simultaneous-position-float-change.html [ Crash Failure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] virtual/threaded/printing/standards-percentage-heights.html [ Crash Failure ImageOnlyFailure ] -crbug.com/521730 [ Win10 ] virtual/threaded/printing/subframes-percentage-height.html [ Crash Failure ImageOnlyFailure ] +crbug.com/521730 [ Win10 ] virtual/threaded/printing/quirks-percentage-height-body.html [ Failure Crash ] +crbug.com/521730 [ Win10 ] virtual/threaded/printing/quirks-percentage-height.html [ Failure Crash ] +crbug.com/521730 [ Win10 ] virtual/threaded/printing/simultaneous-position-float-change.html [ Failure Crash ] +crbug.com/521730 [ Win10 ] virtual/threaded/printing/standards-percentage-heights.html [ Failure Crash ] +crbug.com/521730 [ Win10 ] virtual/threaded/printing/subframes-percentage-height.html [ Failure Crash ] crbug.com/521730 [ Win10 ] virtual/threaded/printing/webgl-repeated-printing-preservedrawingbuffer.html [ Crash Failure ] crbug.com/521730 [ Win10 ] virtual/threaded/printing/webgl-repeated-printing.html [ Crash Failure ] #crbug.com/521730 [ Win10 ] imported/web-platform-tests/screen-orientation/lock-bad-argument.html [ Timeout ] @@ -1980,23 +1991,23 @@ crbug.com/521730 [ Win10 ] screen_orientation/orientationchange-event-subframe.html [ Timeout ] crbug.com/521730 [ Win10 ] screen_orientation/orientationchange-event.html [ Timeout ] crbug.com/521730 [ Win10 ] screen_orientation/page-visibility.html [ Timeout ] -crbug.com/521730 [ Win10 ] fast/dynamic/text-combine.html [ Failure Failure Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/ruby/base-shorter-than-text.html [ Failure Failure Timeout Failure ] -crbug.com/521730 [ Win10 ] fast/text/emphasis-combined-text.html [ Failure Timeout Failure Failure ] -crbug.com/521730 [ Win10 ] fast/text/emphasis-complex.html [ Failure Timeout Failure Failure ] -crbug.com/521730 [ Win10 ] fast/text/font-weight-variant.html [ Failure Timeout Failure Failure ] -crbug.com/521730 [ Win10 ] fast/text/international/003.html [ Failure Timeout Failure Failure ] -crbug.com/521730 [ Win10 ] fast/text/international/bold-bengali.html [ Failure Failure Timeout Failure ] -crbug.com/521730 [ Win10 ] fast/text/international/complex-character-based-fallback.html [ Failure Timeout Timeout Timeout ] -crbug.com/521730 [ Win10 ] fast/text/international/hindi-spacing.html [ Failure Failure Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/text/international/hindi-whitespace.html [ Failure Failure Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/text/justify-ideograph-leading-expansion.html [ Failure Timeout Failure Timeout ] -crbug.com/521730 [ Win10 ] fast/writing-mode/Kusa-Makura-background-canvas.html [ Failure Failure Timeout Failure ] -crbug.com/521730 [ Win10 ] fast/writing-mode/border-vertical-lr.html [ Failure Timeout Failure Failure ] -crbug.com/521730 [ Win10 ] fast/writing-mode/japanese-ruby-vertical-lr.html [ Failure Failure Timeout Failure ] +crbug.com/521730 [ Win10 ] fast/dynamic/text-combine.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/ruby/base-shorter-than-text.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/emphasis-combined-text.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/emphasis-complex.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/font-weight-variant.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/003.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/bold-bengali.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/complex-character-based-fallback.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/hindi-spacing.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/international/hindi-whitespace.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/text/justify-ideograph-leading-expansion.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/writing-mode/Kusa-Makura-background-canvas.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/writing-mode/border-vertical-lr.html [ Failure Timeout ] +crbug.com/521730 [ Win10 ] fast/writing-mode/japanese-ruby-vertical-lr.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] media/track/track-cue-rendering-vertical.html [ Failure ] crbug.com/521730 [ Win10 ] svg/W3C-SVG-1.1-SE/text-intro-05-t.svg [ Failure ] -crbug.com/521730 [ Win10 ] svg/W3C-SVG-1.1/text-align-08-b.svg [ Failure Timeout Failure Failure ] +crbug.com/521730 [ Win10 ] svg/W3C-SVG-1.1/text-align-08-b.svg [ Failure Timeout ] crbug.com/521730 [ Win10 ] virtual/display_list_2d_canvas/fast/canvas/canvas-lose-restore-max-int-size.html [ Failure ] crbug.com/521730 [ Win10 ] virtual/trustedeventsdefaultaction/fast/events/drag-svg-image-crash.html [ Timeout ] crbug.com/521730 [ Win10 ] webexposed/global-interface-listing.html [ Failure ] @@ -2037,12 +2048,12 @@ crbug.com/521730 [ Win10 ] inspector/file-reader-with-network-panel.html [ Failure Pass ] crbug.com/521730 [ Win10 ] inspector/sources/debugger-step/debugger-step-out-document-write.html [ Pass Timeout ] crbug.com/521730 [ Win10 ] media/W3C/audio/error/error_onerror_called_on_bogus_source.html [ Pass Timeout ] -crbug.com/521730 [ Win10 ] paint/inline/outline-offset.html [ ImageOnlyFailure Timeout ] +crbug.com/521730 [ Win10 ] paint/inline/outline-offset.html [ Failure Timeout ] crbug.com/521730 [ Win10 ] svg/as-image/svg-object-intrinsic-size.html [ Missing Timeout ] crbug.com/521730 [ Win10 ] svg/as-object/nested-embedded-svg-size-changes.html [ Pass Timeout ] crbug.com/521730 [ Win10 ] svg/custom/rounded-rect-update-to-empty.html [ Pass Timeout ] # TODO(wangxianzhu): Restore this after manual rebaseline. -# crbug.com/521730 [ Win10 ] transforms/2d/transform-borderbox.html [ ImageOnlyFailure Timeout ] +# crbug.com/521730 [ Win10 ] transforms/2d/transform-borderbox.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] virtual/gpu/fast/canvas/canvas-composite-transformclip.html [ Timeout ] crbug.com/521764 [ Win10 ] imported/web-platform-tests/screen-orientation/lock-bad-argument.html [ Timeout Failure ] crbug.com/521764 [ Win10 ] accessibility/is-richly-editable.html [ Failure Pass ] @@ -2057,7 +2068,7 @@ crbug.com/521764 [ Win10 ] fast/canvas/canvas-lose-restore-googol-size.html [ Failure Pass ] crbug.com/521764 [ Win10 ] fast/canvas/canvas-lose-restore-max-int-size.html [ Failure Pass ] crbug.com/521764 [ Win10 ] fast/canvas/webgl/texture-color-profile.html [ Failure Pass ] -crbug.com/521764 [ Win10 ] fast/css/line-height-determined-by-primary-font.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/css/line-height-determined-by-primary-font.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/dom/HTMLImageElement/image-srcset-in-iframe-external.html [ Pass Timeout ] crbug.com/521764 [ Win10 ] fast/dom/HTMLLinkElement/subresource.html [ Failure Pass ] crbug.com/521764 [ Win10 ] fast/dom/shadow/event-path-load.html [ Pass Timeout ] @@ -2065,11 +2076,11 @@ crbug.com/521764 [ Win10 ] fast/dom/shadow/iframe-shadow.html [ Failure Pass ] crbug.com/521764 [ Win10 ] fast/dom/wrapper-classes.html [ Failure Pass ] crbug.com/521764 [ Win10 ] fast/events/touch/gesture/pad-gesture-cancel.html [ Failure Pass ] -crbug.com/521764 [ Win10 ] fast/forms/month/month-appearance-l10n.html [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] fast/forms/month/month-appearance-pseudo-elements.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/forms/month/month-appearance-l10n.html [ Failure Timeout ] +crbug.com/521764 [ Win10 ] fast/forms/month/month-appearance-pseudo-elements.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/forms/search/search-appearance-basic.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/html/imports/rel-style-to-import.html [ Pass Timeout ] -crbug.com/521764 [ Win10 ] fast/inline/justify-emphasis-inline-box.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/inline/justify-emphasis-inline-box.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/loader/scroll-restore-overrides-fragment.html [ Failure Pass ] crbug.com/521764 [ Win10 ] fast/loader/scroll-restore-target-pseudo.html [ Failure Pass ] crbug.com/521764 [ Win10 ] fast/preloader/input.html [ Failure Pass ] @@ -2090,15 +2101,15 @@ crbug.com/521764 [ Win10 ] fast/text/basic/013.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/basic/generic-family-reset.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/cg-fallback-bolding.html [ Failure Timeout ] -crbug.com/521764 [ Win10 ] fast/text/cg-vs-atsui.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/text/cg-vs-atsui.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/decorations-with-text-combine.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/emoticons.html [ Failure Timeout ] -crbug.com/521764 [ Win10 ] fast/text/emphasis-ellipsis-complextext.html [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] fast/text/font-ascent-mac.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/text/emphasis-ellipsis-complextext.html [ Failure Timeout ] +crbug.com/521764 [ Win10 ] fast/text/font-ascent-mac.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/font-stretch-variant.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/font-weight.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/international/002.html [ Failure Timeout ] -crbug.com/521764 [ Win10 ] fast/text/international/bidi-linebreak-002.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/text/international/bidi-linebreak-002.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/international/danda-space.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/international/hebrew-vowels.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/international/khmer-selection.html [ Failure Timeout ] @@ -2111,17 +2122,17 @@ crbug.com/521764 [ Win10 ] fast/text/selection-multiple-runs.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/stroking.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/sub-pixel/text-scaling-pixel.html [ Failure Timeout ] -crbug.com/521764 [ Win10 ] fast/text/trailing-white-space.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/text/trailing-white-space.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/text/wide-zero-width-space.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/tokenizer/001.html [ Pass Timeout ] -crbug.com/521764 [ Win10 ] fast/writing-mode/fallback-orientation.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/writing-mode/fallback-orientation.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/writing-mode/japanese-lr-text.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/writing-mode/japanese-rl-text.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/writing-mode/japanese-ruby-horizontal-bt.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] fast/writing-mode/japanese-ruby-vertical-rl.html [ Failure Timeout ] -crbug.com/521764 [ Win10 ] fast/writing-mode/vertical-align-table-baseline.html [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] fast/writing-mode/vertical-baseline-alignment.html [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] fonts/fantasy.html [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] fast/writing-mode/vertical-align-table-baseline.html [ Failure Timeout ] +crbug.com/521764 [ Win10 ] fast/writing-mode/vertical-baseline-alignment.html [ Failure Timeout ] +crbug.com/521764 [ Win10 ] fonts/fantasy.html [ Failure Timeout ] crbug.com/521764 [ Win10 ] http/tests/inspector/network/network-xhr-redirect-method.html [ Failure Pass ] crbug.com/521764 [ Win10 ] http/tests/inspector/resource-tree/resource-tree-document-url.html [ Failure Pass ] crbug.com/521764 [ Win10 ] http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny.html [ Failure Pass ] @@ -2129,8 +2140,8 @@ crbug.com/521764 [ Win10 ] http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny.html [ Failure Pass ] crbug.com/521764 [ Win10 ] http/tests/security/suborigins/suborigin-valid-names.html [ Failure Pass ] crbug.com/521764 [ Win10 ] http/tests/xmlhttprequest/xmlhttprequest-post-crash.html [ Pass Timeout ] -crbug.com/521764 [ Win10 ] ietestcenter/css3/text/textshadow-002.htm [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] ietestcenter/css3/text/textshadow-010.htm [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] ietestcenter/css3/text/textshadow-002.htm [ Failure Timeout ] +crbug.com/521764 [ Win10 ] ietestcenter/css3/text/textshadow-010.htm [ Failure Timeout ] crbug.com/521764 [ Win10 ] inspector/console/console-format-table.html [ Failure Pass ] crbug.com/521764 [ Win10 ] inspector/editor/text-editor-search-switch-editor.html [ Pass Timeout ] crbug.com/521764 [ Win10 ] inspector/elements/styles-4/styles-should-not-force-sync-style-recalc.html [ Failure Pass ] @@ -2143,53 +2154,53 @@ crbug.com/521764 [ Win10 ] media/video-source-error.html [ Failure Pass ] crbug.com/521764 [ Win10 ] printing/return-from-printing-mode.html [ Pass Timeout ] crbug.com/521764 [ Win10 ] printing/webgl-repeated-printing-preservedrawingbuffer.html [ Crash Failure ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/g-dirLTR-ubNone.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/g-dirLTR-ubOverride.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/g-dirRTL-ubNone.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/g-dirRTL-ubOverride.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirLTR-anchorEnd.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirLTR-anchorMiddle.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirLTR-anchorStart.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirNone-anchorEnd.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirNone-anchorMiddle.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirNone-anchorStart.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirRTL-anchorEnd.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirRTL-anchorMiddle.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirRTL-anchorStart.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorEnd.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorMiddle.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorStart.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorEnd.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorMiddle.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorStart.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-no-markup.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-dirRTL-ubNone.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-dirRTL-ubOverride.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-ltr-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubNone-in-default-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-direction-ltr.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-direction-rtl.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/W3C-SVG-1.1/text-fonts-01-t.svg [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/g-dirLTR-ubNone.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/g-dirLTR-ubOverride.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/g-dirRTL-ubNone.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/g-dirRTL-ubOverride.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirLTR-anchorEnd.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirLTR-anchorMiddle.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirLTR-anchorStart.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirNone-anchorEnd.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirNone-anchorMiddle.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirNone-anchorStart.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirRTL-anchorEnd.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirRTL-anchorMiddle.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-dirRTL-anchorStart.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorEnd.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorMiddle.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorStart.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorEnd.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorMiddle.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorStart.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-anchor-no-markup.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-dirRTL-ubNone.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/text-dirRTL-ubOverride.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-ltr-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubNone-in-default-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-direction-ltr.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-I18N/tspan-direction-rtl.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/W3C-SVG-1.1/text-fonts-01-t.svg [ Failure Timeout ] crbug.com/521764 [ Win10 ] svg/W3C-SVG-1.1/text-intro-01-t.svg [ Failure Timeout ] crbug.com/521764 [ Win10 ] svg/W3C-SVG-1.1/text-intro-04-t.svg [ Failure Timeout ] crbug.com/521764 [ Win10 ] svg/as-image/svg-canvas-xhtml-tainted.html [ Failure Pass ] -crbug.com/521764 [ Win10 ] svg/css/text-shadow-multiple.xhtml [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/custom/focus-ring-text.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/custom/textPath-change-id2-pattern.svg [ ImageOnlyFailure Pass Timeout ] -crbug.com/521764 [ Win10 ] svg/text/bidi-text-query.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/text/bidi-tspans.svg [ ImageOnlyFailure Timeout ] -crbug.com/521764 [ Win10 ] svg/text/obb-paintserver.html [ ImageOnlyFailure Pass Timeout ] -crbug.com/521764 [ Win10 ] svg/text/text-selection-fonts-01-t.svg [ ImageOnlyFailure Timeout ] +crbug.com/521764 [ Win10 ] svg/css/text-shadow-multiple.xhtml [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/custom/focus-ring-text.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/custom/textPath-change-id2-pattern.svg [ Failure Pass Timeout ] +crbug.com/521764 [ Win10 ] svg/text/bidi-text-query.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/text/bidi-tspans.svg [ Failure Timeout ] +crbug.com/521764 [ Win10 ] svg/text/obb-paintserver.html [ Failure Pass Timeout ] +crbug.com/521764 [ Win10 ] svg/text/text-selection-fonts-01-t.svg [ Failure Timeout ] crbug.com/521764 [ Win10 ] svg/text/text-selection-intro-05-t.svg [ Failure Timeout ] crbug.com/521764 [ Win10 ] animations/interpolation/background-position-origin-interpolation.html [ Failure Pass ] crbug.com/521764 [ Win10 ] animations/interpolation/background-size-interpolation.html [ Failure Pass ] @@ -2227,20 +2238,20 @@ crbug.com/521764 [ Win10 ] plugins/netscape-plugin-map-data-to-src.html [ Failure Pass ] crbug.com/521764 [ Win10 ] plugins/update-widgets-crash.html [ Pass Timeout ] crbug.com/521764 [ Win10 ] printing/webgl-repeated-printing.html [ Crash Timeout Failure ] -crbug.com/521764 [ Win10 ] svg/custom/textPath-remove-path-pattern.svg [ ImageOnlyFailure Pass Timeout ] +crbug.com/521764 [ Win10 ] svg/custom/textPath-remove-path-pattern.svg [ Failure Pass Timeout ] crbug.com/521764 [ Win10 ] accessibility/inline-text-changes.html [ Failure Pass ] crbug.com/521764 [ Win10 ] fast/loader/javascript-detached-frame-no-crash.html [ Pass Timeout ] crbug.com/521764 [ Win10 ] virtual/display_list_2d_canvas/fast/canvas/canvas-resize-reset.html [ Pass Timeout ] crbug.com/521764 [ Win10 ] transitions/equivalent-background-image-no-transition.html [ Pass Timeout ] -crbug.com/474759 fast/writing-mode/vertical-rl-replaced-selection.html [ ImageOnlyFailure ] -crbug.com/474759 fast/block/line-layout/selection-highlight-overlap.html [ ImageOnlyFailure ] +crbug.com/474759 fast/writing-mode/vertical-rl-replaced-selection.html [ Failure ] +crbug.com/474759 fast/block/line-layout/selection-highlight-overlap.html [ Failure ] crbug.com/502927 [ XP ] paint/frames/frameset-with-stacking-context-and-not-stacking-context-children.html [ Failure ] crbug.com/502927 [ XP ] paint/frames/frameset-with-stacking-contexts.html [ Failure ] crbug.com/502927 [ XP ] virtual/spv2/paint/frames/frameset-with-stacking-context-and-not-stacking-context-children.html [ Skip ] crbug.com/502927 [ XP ] virtual/spv2/paint/frames/frameset-with-stacking-contexts.html [ Skip ] -crbug.com/353746 virtual/android/fullscreen/video-specified-size.html [ ImageOnlyFailure Pass ] +crbug.com/353746 virtual/android/fullscreen/video-specified-size.html [ Failure Pass ] crbug.com/524764 [ Win10 ] virtual/trustedeventsdefaultaction/fast/events/selectstart-prevent-selectall.html [ Failure Pass ] crbug.com/524764 [ Win10 ] virtual/pointerevent/fast/events/selectstart-prevent-selectall.html [ Failure Pass ] @@ -2305,11 +2316,11 @@ crbug.com/532643 [ Mac ] virtual/pointerevent/fast/events/hit-test-cache-scrollbar-no-crash.html [ Pass Failure ] # The Win10 result for fast/text/emoji-font-fallback-win.html does not match the description -crbug.com/527044 [ Win10 ] fast/text/emoji-font-fallback-win.html [ ImageOnlyFailure Timeout ] +crbug.com/527044 [ Win10 ] fast/text/emoji-font-fallback-win.html [ Failure Timeout ] crbug.com/525065 webaudio/audionode-disconnect-audioparam.html [ Failure Pass ] -crbug.com/525296 fast/css/font-load-while-styleresolver-missing.html [ Crash ImageOnlyFailure Pass ] +crbug.com/525296 fast/css/font-load-while-styleresolver-missing.html [ Crash Failure Pass ] crbug.com/525299 [ MountainLion Mavericks XP Win10 ] http/tests/security/redirect-BLOCKED-to-localURL.html [ Failure Pass ] @@ -2319,15 +2330,15 @@ crbug.com/538525 [ Lion ] virtual/threaded/animations/multiple-same-animations-asan-crash.html [ Crash ] -crbug.com/538526 [ Win7 Win10 ] virtual/spv2/paint/invalidation/spv2/fixed-img-src-change-after-scroll.html [ ImageOnlyFailure ] +crbug.com/538526 [ Win7 Win10 ] virtual/spv2/paint/invalidation/spv2/fixed-img-src-change-after-scroll.html [ Failure ] crbug.com/527743 [ Win10 ] paint/masks/table-cell-masks.html [ Pass Timeout ] -crbug.com/531286 virtual/gpu/fast/canvas/yuv-video-on-accelerated-canvas.html [ ImageOnlyFailure ] +crbug.com/531286 virtual/gpu/fast/canvas/yuv-video-on-accelerated-canvas.html [ Failure ] crbug.com/535478 [ Win ] virtual/threaded/inspector/tracing/decode-resize.html [ Slow Pass Failure ] -crbug.com/524646 [ Yosemite ] fast/dom/shadow/shadowdom-for-button.html [ ImageOnlyFailure ] +crbug.com/524646 [ Yosemite ] fast/dom/shadow/shadowdom-for-button.html [ Failure ] crbug.com/502267 fast/css/image-orientation/image-orientation-from-image-composited-dynamic.html [ NeedsRebaseline ] crbug.com/502267 fast/css/image-orientation/image-orientation-default.html [ NeedsRebaseline ] @@ -2373,6 +2384,6 @@ crbug.com/522389 [ Linux Mac Win ] fast/overflow/overflow-update-transform.html [ NeedsRebaseline ] crbug.com/522389 [ Linux Mac Win ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-with-rotation.html [ NeedsRebaseline ] -crbug.com/541601 svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults.xhtml [ ImageOnlyFailure ] +crbug.com/541601 svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults.xhtml [ Failure ] -crbug.com/543369 [ Linux ] fast/forms/select/popup-menu-appearance-tall.html [ ImageOnlyFailure ] +crbug.com/543369 [ Linux ] fast/forms/select/popup-menu-appearance-tall.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/animations/delay-timer-cancel-bug.html b/third_party/WebKit/LayoutTests/animations/delay-timer-cancel-bug.html new file mode 100644 index 0000000..43d6c44 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/delay-timer-cancel-bug.html
@@ -0,0 +1,15 @@ +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<div id="target"></div> +<script> +var asyncHandle = async_test('Delayed animations are unaffected by on demand timeline updates.'); +target.animate(null, {delay: 100}).onfinish = () => asyncHandle.done(); +requestAnimationFrame(() => { + requestAnimationFrame(() => { + setTimeout(() => { + // Force layout tree update which forces an on demand timing update. + target.offsetTop; + }, 0); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/animations/multiple-same-animations-asan-crash.html b/third_party/WebKit/LayoutTests/animations/multiple-same-animations-asan-crash.html index 42a4fdd..3a223974 100644 --- a/third_party/WebKit/LayoutTests/animations/multiple-same-animations-asan-crash.html +++ b/third_party/WebKit/LayoutTests/animations/multiple-same-animations-asan-crash.html
@@ -16,8 +16,6 @@ // Force the next style recalc to be non-animation triggered. target.style.color = 'blue'; requestAnimationFrame(function() { - // Clear the running animations to avoid hitting a debug assertion. (crbug.com/487092) - target.style.animation = 'none'; asyncHandle.done(); }); });
diff --git a/third_party/WebKit/LayoutTests/animations/multiple-same-name-css-animations.html b/third_party/WebKit/LayoutTests/animations/multiple-same-name-css-animations.html new file mode 100644 index 0000000..fe1c3f2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/multiple-same-name-css-animations.html
@@ -0,0 +1,139 @@ +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<style> +@keyframes a {} +@keyframes b {} +</style> +<div id="target"></div> +<script> +function setAnimationProperty(value) { + target.style.animation = value; + target.offsetTop; +} + +function getAnimations() { + return document.timeline.getAnimations(); +} + +function clearAnimations() { + setAnimationProperty('none'); + assert_equals(getAnimations().length, 0); +} + +test(() => { + clearAnimations(); + setAnimationProperty('a 1000ms 1500ms forwards, a 2000ms 2500ms backwards, a 3000ms 3500ms both'); + var animations = getAnimations(); + assert_equals(animations.length, 3); + assert_equals(animations[0].effect.timing.duration, 1000); + assert_equals(animations[0].effect.timing.delay, 1500); + assert_equals(animations[0].effect.timing.fill, 'forwards'); + + assert_equals(animations[1].effect.timing.duration, 2000); + assert_equals(animations[1].effect.timing.delay, 2500); + assert_equals(animations[1].effect.timing.fill, 'backwards'); + + assert_equals(animations[2].effect.timing.duration, 3000); + assert_equals(animations[2].effect.timing.delay, 3500); + assert_equals(animations[2].effect.timing.fill, 'both'); +}, 'Multiple same animation names should start multiple animations.'); + +test(() => { + clearAnimations(); + + setAnimationProperty('a 1500ms paused, a 2500ms paused, a 3500ms paused'); + var animations = getAnimations(); + assert_equals(animations.length, 3); + animations[0].currentTime = 1000; + animations[1].currentTime = 2000; + animations[2].currentTime = 3000; + + setAnimationProperty('a 1750ms paused, a 2750ms paused, a 3750ms paused'); + animations = getAnimations(); + assert_equals(animations.length, 3); + + assert_equals(animations[0].currentTime, 1000); + assert_equals(animations[0].effect.timing.duration, 1750); + + assert_equals(animations[1].currentTime, 2000); + assert_equals(animations[1].effect.timing.duration, 2750); + + assert_equals(animations[2].currentTime, 3000); + assert_equals(animations[2].effect.timing.duration, 3750); +}, 'Multiple same animation names should persist with animation timing updates.'); + +test(() => { + clearAnimations(); + + setAnimationProperty('a 1500ms paused, a 2500ms paused, b 3500ms paused, b 4500ms paused'); + var animations = getAnimations(); + assert_equals(animations.length, 4); + animations[0].currentTime = 1000; + animations[1].currentTime = 2000; + animations[2].currentTime = 3000; + animations[3].currentTime = 4000; + + setAnimationProperty('a 1500ms paused, b 3500ms paused, a 2500ms paused, b 4500ms paused'); + animations = getAnimations(); + assert_equals(animations.length, 4); + + assert_equals(animations[0].currentTime, 1000); + assert_equals(animations[0].effect.timing.duration, 1500); + + assert_equals(animations[1].currentTime, 2000); + assert_equals(animations[1].effect.timing.duration, 2500); + + assert_equals(animations[2].currentTime, 3000); + assert_equals(animations[2].effect.timing.duration, 3500); + + assert_equals(animations[3].currentTime, 4000); + assert_equals(animations[3].effect.timing.duration, 4500); +}, 'Mixed multiple same animation names should persist based on their same name relative position'); + +test(() => { + clearAnimations(); + + setAnimationProperty('a 1500ms paused, a 2500ms paused, a 3500ms paused'); + var animations = getAnimations(); + assert_equals(animations.length, 3); + animations[0].currentTime = 1000; + animations[1].currentTime = 2000; + animations[2].currentTime = 3000; + + setAnimationProperty('a 1500ms paused, b 2500ms paused, a 3500ms paused'); + animations = getAnimations(); + assert_equals(animations.length, 3); + + assert_equals(animations[0].currentTime, 1000); + assert_equals(animations[0].effect.timing.duration, 1500); + + assert_equals(animations[1].currentTime, 2000); + assert_equals(animations[1].effect.timing.duration, 3500); + + assert_equals(animations[2].currentTime, null); + assert_equals(animations[2].effect.timing.duration, 2500); +}, 'Removing same animation names should cancel animations from the end of the name list.'); + +test(() => { + clearAnimations(); + + setAnimationProperty('a 1500ms paused, a 2500ms paused'); + var animations = getAnimations(); + assert_equals(animations.length, 2); + animations[0].currentTime = 1000; + animations[1].currentTime = 2000; + + setAnimationProperty('a 3500ms paused, a 2500ms paused, a 1500ms paused'); + animations = getAnimations(); + assert_equals(animations.length, 3); + + assert_equals(animations[0].currentTime, 1000); + assert_equals(animations[0].effect.timing.duration, 3500); + + assert_equals(animations[1].currentTime, 2000); + assert_equals(animations[1].effect.timing.duration, 2500); + + assert_equals(animations[2].currentTime, null); + assert_equals(animations[2].effect.timing.duration, 1500); +}, 'Adding same animation names should start additional animations from the end of the name list.'); +</script>
diff --git a/third_party/WebKit/LayoutTests/fast/dom/Element/classlist-empty-string-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/Element/classlist-empty-string-expected.txt new file mode 100644 index 0000000..361da39 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/dom/Element/classlist-empty-string-expected.txt
@@ -0,0 +1,7 @@ +Check the classlist length attribute for empty strings +PASS div.className.length is 3 +PASS div.className.length is 5 +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/WebKit/LayoutTests/fast/dom/Element/classlist-empty-string.html b/third_party/WebKit/LayoutTests/fast/dom/Element/classlist-empty-string.html new file mode 100644 index 0000000..5d6da58 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/dom/Element/classlist-empty-string.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html> +<script src="../../../resources/js-test.js"></script> +<script> +debug("Check the classlist length attribute for empty strings"); +var div = document.createElement('div'); +div.className = ' '; +shouldBe("div.className.length", "3"); + +div.className = ' '; +shouldBe("div.className.length", "5"); +</script> +</html>
diff --git a/third_party/WebKit/LayoutTests/fast/dom/access-key-iframe.html b/third_party/WebKit/LayoutTests/fast/dom/access-key-iframe.html index 01762c9..8895a92 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/access-key-iframe.html +++ b/third_party/WebKit/LayoutTests/fast/dom/access-key-iframe.html
@@ -10,11 +10,7 @@ function pressAccessKey(key) { - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - modifiers = ["ctrlKey", "altKey"]; - else - modifiers = ["altKey"]; - eventSender.keyDown(key, modifiers); + eventSender.keyDown(key, "accessKey"); } var targetsOfFocusEvents = [];
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/create-shadow-root-with-parameter-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/shadow/create-shadow-root-with-parameter-expected.txt index 34de767..edbe6520 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/create-shadow-root-with-parameter-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/create-shadow-root-with-parameter-expected.txt
@@ -1,15 +1,15 @@ -Create open shadow root. +Attach open shadow root. PASS [object ShadowRoot] is non-null. -Create closed shadow root. +Attach closed shadow root. PASS host2.createShadowRoot({mode: 'closed'}) is non-null. Create shadow root with empty parameter. PASS [object ShadowRoot] is non-null. -Create shadow root whose mode is neither open nor closed. -PASS host4.createShadowRoot({mode: 'illegal'}) threw exception TypeError: Failed to execute 'createShadowRoot' on 'Element': The provided value 'illegal' is not a valid enum value of type ShadowRootMode.. -Create open shadow root with shadow-dom.js utility. +Attach shadow root whose mode is neither open nor closed. +PASS host4.attachShadow({mode: 'illegal'}) threw exception TypeError: Failed to execute 'attachShadow' on 'Element': The provided value 'illegal' is not a valid enum value of type ShadowRootMode.. +Attach open shadow root with shadow-dom.js utility. PASS [object ShadowRoot] is non-null. -Create shadow root on already shadowed host will raise InvalidStateError exception. -PASS host1.createShadowRoot({mode: 'open'}) threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. +Attach shadow root on already shadowed host will raise InvalidStateError exception. +PASS host1.attachShadow({mode: 'open'}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. PASS successfullyParsed is true TEST COMPLETE
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/create-shadow-root-with-parameter.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/create-shadow-root-with-parameter.html index 1719162..0dedf12e 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/create-shadow-root-with-parameter.html +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/create-shadow-root-with-parameter.html
@@ -11,12 +11,12 @@ <div id="host4"></div> </body> <script> -debug('Create open shadow root.'); +debug('Attach open shadow root.'); var host1 = document.querySelector('#host1'); -var root1 = host1.createShadowRoot({mode: 'open'}); +var root1 = host1.attachShadow({mode: 'open'}); shouldBeNonNull(root1); -debug('Create closed shadow root.'); +debug('Attach closed shadow root.'); var host2 = document.querySelector('#host2'); shouldBeNonNull("host2.createShadowRoot({mode: 'closed'})"); @@ -25,11 +25,11 @@ var root3 = host3.createShadowRoot({}); shouldBeNonNull(root3); -debug('Create shadow root whose mode is neither open nor closed.'); +debug('Attach shadow root whose mode is neither open nor closed.'); var host4 = document.querySelector('#host4'); -shouldThrow("host4.createShadowRoot({mode: 'illegal'})"); +shouldThrow("host4.attachShadow({mode: 'illegal'})"); -debug('Create open shadow root with shadow-dom.js utility.'); +debug('Attach open shadow root with shadow-dom.js utility.'); document.body.appendChild( createDOM('div', {id: 'host5'}, createShadowRoot({mode: 'open'}))); @@ -37,7 +37,7 @@ var root5 = host5.shadowRoot; shouldBeNonNull(root5); -debug('Create shadow root on already shadowed host will raise InvalidStateError exception.'); -shouldThrow("host1.createShadowRoot({mode: 'open'})"); +debug('Attach shadow root on already shadowed host will raise InvalidStateError exception.'); +shouldThrow("host1.attachShadow({mode: 'open'})"); </script> </html>
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/delegatesFocus-highlight-sibling.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/delegatesFocus-highlight-sibling.html index e313263..704553ea 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/delegatesFocus-highlight-sibling.html +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/delegatesFocus-highlight-sibling.html
@@ -45,7 +45,7 @@ var xMenuProto = Object.create(HTMLElement.prototype); xMenuProto.createdCallback = function() { var delegatesFocus = this.hasAttribute('delegatesFocus'); - this.createShadowRoot({ 'delegatesFocus': delegatesFocus }) + this.attachShadow({ 'delegatesFocus': delegatesFocus }) .appendChild( document.importNode(template.content, true) );
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/focus-method-with-delegatesFocus.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/focus-method-with-delegatesFocus.html index a4674ab..8efe716 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/focus-method-with-delegatesFocus.html +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/focus-method-with-delegatesFocus.html
@@ -29,7 +29,7 @@ var proto = Object.create(HTMLElement.prototype); proto.createdCallback = function() { var delegatesFocus = this.hasAttribute('delegatesFocus'); - this.createShadowRoot({'delegatesFocus': delegatesFocus}).appendChild( + this.attachShadow({'delegatesFocus': delegatesFocus}).appendChild( document.importNode(template.content, true)); }; document.registerElement(tagName, { prototype: proto });
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/focus-shadowhost-display-none.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/focus-shadowhost-display-none.html index 01c2fe2..6a6f7f9 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/focus-shadowhost-display-none.html +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/focus-shadowhost-display-none.html
@@ -17,7 +17,7 @@ host = sandbox.appendChild(document.createElement('div')); host.id = 'host'; - root = host.createShadowRoot({ 'delegatesFocus': delegatesFocus }); + root = host.attachShadow({ 'delegatesFocus': delegatesFocus }); input = document.createElement('input'); root.appendChild(input);
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params-expected.txt index 9f8785f..4376993 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params-expected.txt
@@ -5,37 +5,32 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -(1/1) For compatibility, no parameter createShadowRoot() can still create multiple shadow roots. -PASS internals.shadowRootType(shadow1) is "OpenByDefaultShadowRoot" -PASS internals.shadowRootType(shadow2) is "OpenByDefaultShadowRoot" +createShadowRoot() can still create multiple shadow roots. +PASS internals.shadowRootType(shadow1) is "V0ShadowRoot" +PASS internals.shadowRootType(shadow2) is "V0ShadowRoot" PASS internals.youngestShadowRoot(div) is shadow2 PASS shadow2.olderShadowRoot is shadow1 -(2/2) createShadowRoot({mode:"open"}) cannot create multiple shadow roots -PASS internals.shadowRootType(shadow1) is "OpenByDefaultShadowRoot" -PASS div.createShadowRoot({mode: "open"}) threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. +Other attempts to create multiple shadow roots should fail +PASS internals.shadowRootType(shadow1) is "V0ShadowRoot" +PASS div.attachShadow({mode: "open"}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. +PASS div.attachShadow({mode: "closed"}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. PASS internals.youngestShadowRoot(div) is shadow1 -(3/3) createShadowRoot() cannot create multiple shadow roots on shadow root with explicit open parameter. PASS internals.shadowRootType(shadow1) is "OpenShadowRoot" PASS div.createShadowRoot() threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts this type of shadow tree.. +PASS div.attachShadow({mode: "open"}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. +PASS div.attachShadow({mode: "closed"}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. PASS internals.youngestShadowRoot(div) is shadow1 -(4/4) closed shadow root cannot be created on any open shadow roots -PASS internals.shadowRootType(shadow1) is "OpenByDefaultShadowRoot" -PASS div.createShadowRoot({mode: "closed"}) threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. -PASS internals.youngestShadowRoot(div) is shadow1 -PASS internals.shadowRootType(shadow1) is "OpenShadowRoot" -PASS div.createShadowRoot({mode: "closed"}) threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. -PASS internals.youngestShadowRoot(div) is shadow1 -(5/5) any shadow root cannot be created on closed shadow root PASS internals.shadowRootType(shadow1) is "ClosedShadowRoot" PASS div.createShadowRoot() threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts this type of shadow tree.. -PASS div.createShadowRoot({mode: "open"}) threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. -PASS div.createShadowRoot({mode: "closed"}) threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. -(6/6) explicitly open/closed shadow root cannot be created on UA shadow root +PASS div.attachShadow({mode: "open"}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. +PASS div.attachShadow({mode: "closed"}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. +PASS internals.youngestShadowRoot(div) is shadow1 +V1 shadow root cannot be created on UA shadow root PASS internals.shadowRootType(internals.shadowRoot(input)) is "UserAgentShadowRoot" PASS internals.youngestShadowRoot(input) is shadow1 -PASS internals.shadowRootType(shadow1) is "OpenByDefaultShadowRoot" -PASS input.createShadowRoot({mode: "open"}) threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. -PASS input.createShadowRoot({mode: "closed"}) threw exception InvalidStateError: Failed to execute 'createShadowRoot' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. +PASS internals.shadowRootType(shadow1) is "V0ShadowRoot" +PASS input.attachShadow({mode: "open"}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. +PASS input.attachShadow({mode: "closed"}) threw exception InvalidStateError: Failed to execute 'attachShadow' on 'Element': Shadow root cannot be created on a host which already hosts a shadow tree.. PASS successfullyParsed is true TEST COMPLETE
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params.html index 4f1e3cc..50f10a6 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params.html +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params.html
@@ -3,8 +3,8 @@ <script> description('This tests multiple shadow roots creation with createShadowRoot and mode parameter.'); -function shouldBeOpenByDefaultShadowRoot(root) { - shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'OpenByDefaultShadowRoot'); +function shouldBeV0ShadowRoot(root) { + shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'V0ShadowRoot'); } function shouldBeOpenShadowRoot(root) { @@ -23,72 +23,52 @@ shouldBe('internals.youngestShadowRoot(' + host + ')', root); } -debug('(1/1) For compatibility, no parameter createShadowRoot() can still create multiple shadow roots.'); +debug('createShadowRoot() can still create multiple shadow roots.'); + var div = document.createElement('div'); var shadow1 = div.createShadowRoot(); -shouldBeOpenByDefaultShadowRoot('shadow1'); - +shouldBeV0ShadowRoot('shadow1'); var shadow2 = div.createShadowRoot(); -shouldBeOpenByDefaultShadowRoot('shadow2'); - +shouldBeV0ShadowRoot('shadow2'); youngestShadowRootShouldBe('div', 'shadow2'); shouldBe('shadow2.olderShadowRoot', 'shadow1'); +debug('Other attempts to create multiple shadow roots should fail'); -debug('(2/2) createShadowRoot({mode:"open"}) cannot create multiple shadow roots'); div = document.createElement('div'); shadow1 = div.createShadowRoot(); -shouldBeOpenByDefaultShadowRoot('shadow1'); - -shouldThrow('div.createShadowRoot({mode: "open"})'); +shouldBeV0ShadowRoot('shadow1'); +shouldThrow('div.attachShadow({mode: "open"})'); +shouldThrow('div.attachShadow({mode: "closed"})'); youngestShadowRootShouldBe('div', 'shadow1'); - -debug('(3/3) createShadowRoot() cannot create multiple shadow roots on shadow root with explicit open parameter.'); div = document.createElement('div'); -shadow1 = div.createShadowRoot({mode: 'open'}); +shadow1 = div.attachShadow({mode: "open"}); shouldBeOpenShadowRoot('shadow1'); - shouldThrow('div.createShadowRoot()'); -youngestShadowRootShouldBe('div', 'shadow1'); - - -debug('(4/4) closed shadow root cannot be created on any open shadow roots'); -div = document.createElement('div'); -shadow1 = div.createShadowRoot(); -shouldBeOpenByDefaultShadowRoot('shadow1'); - -shouldThrow('div.createShadowRoot({mode: "closed"})'); +shouldThrow('div.attachShadow({mode: "open"})'); +shouldThrow('div.attachShadow({mode: "closed"})'); youngestShadowRootShouldBe('div', 'shadow1'); div = document.createElement('div'); -shadow1 = div.createShadowRoot({mode: 'open'}); -shouldBeOpenShadowRoot('shadow1'); - -shouldThrow('div.createShadowRoot({mode: "closed"})'); -youngestShadowRootShouldBe('div', 'shadow1'); - - -debug('(5/5) any shadow root cannot be created on closed shadow root'); -div = document.createElement('div'); -shadow1 = div.createShadowRoot({mode: 'closed'}); +shadow1 = div.attachShadow({mode: "closed"}); shouldBeClosedShadowRoot('shadow1'); - shouldThrow('div.createShadowRoot()'); -shouldThrow('div.createShadowRoot({mode: "open"})'); -shouldThrow('div.createShadowRoot({mode: "closed"})'); +shouldThrow('div.attachShadow({mode: "open"})'); +shouldThrow('div.attachShadow({mode: "closed"})'); +youngestShadowRootShouldBe('div', 'shadow1'); -debug('(6/6) explicitly open/closed shadow root cannot be created on UA shadow root'); +debug('V1 shadow root cannot be created on UA shadow root'); var input = document.createElement('input'); shouldBeUserAgentShadowRoot('internals.shadowRoot(input)'); shadow1 = input.createShadowRoot(); youngestShadowRootShouldBe('input', 'shadow1'); -shouldBeOpenByDefaultShadowRoot('shadow1'); +shouldBeV0ShadowRoot('shadow1'); input = document.createElement('input'); -shouldThrow('input.createShadowRoot({mode: "open"})'); +shouldThrow('input.attachShadow({mode: "open"})'); input = document.createElement('input'); -shouldThrow('input.createShadowRoot({mode: "closed"})'); +shouldThrow('input.attachShadow({mode: "closed"})'); </script>
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/resources/shadow-dom.js b/third_party/WebKit/LayoutTests/fast/dom/shadow/resources/shadow-dom.js index 19ba8e4..651084c9 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/resources/shadow-dom.js +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/resources/shadow-dom.js
@@ -1,3 +1,4 @@ +// TODO(hayato): Have both createShadowRoot and attachShadow. function createShadowRoot() { var children = Array.prototype.slice.call(arguments); @@ -41,7 +42,7 @@ shadowRoot = window.internals.createUserAgentShadowRoot(element); } else { if (child.parameter && Object.keys(child.parameter).length > 0) - shadowRoot = element.createShadowRoot(child.parameter); + shadowRoot = element.attachShadow(child.parameter); else shadowRoot = element.createShadowRoot(); }
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/shadowroot-type-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/shadow/shadowroot-type-expected.txt index 2fb98e2..6bf6d8b 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/shadowroot-type-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/shadowroot-type-expected.txt
@@ -3,7 +3,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -PASS "OpenByDefaultShadowRoot" is internals.shadowRootType(shadowRootForDiv) +PASS "V0ShadowRoot" is internals.shadowRootType(shadowRootForDiv) PASS "UserAgentShadowRoot" is internals.shadowRootType(shadowRootForInput) PASS successfullyParsed is true
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/shadowroot-type.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/shadowroot-type.html index 06652fd..0e402ed 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/shadow/shadowroot-type.html +++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/shadowroot-type.html
@@ -15,7 +15,7 @@ var shadowRootForDiv = host.createShadowRoot(); var shadowRootForInput = internals.shadowRoot(input); -shouldBe('"OpenByDefaultShadowRoot"', 'internals.shadowRootType(shadowRootForDiv)'); +shouldBe('"V0ShadowRoot"', 'internals.shadowRootType(shadowRootForDiv)'); shouldBe('"UserAgentShadowRoot"', 'internals.shadowRootType(shadowRootForInput)'); container.innerHTML = "";
diff --git a/third_party/WebKit/LayoutTests/fast/events/access-key-self-destruct.html b/third_party/WebKit/LayoutTests/fast/events/access-key-self-destruct.html index e19fece..279c3c3 100644 --- a/third_party/WebKit/LayoutTests/fast/events/access-key-self-destruct.html +++ b/third_party/WebKit/LayoutTests/fast/events/access-key-self-destruct.html
@@ -7,11 +7,7 @@ { if (window.testRunner) { testRunner.dumpAsText(); - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - modifiers = ["ctrlKey", "altKey"]; - else - modifiers = ["altKey"]; - eventSender.keyDown("a", modifiers); + eventSender.keyDown("a", "accessKey"); } } </script>
diff --git a/third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing-002.html b/third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing-002.html index 67de1130..a793c39 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing-002.html +++ b/third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing-002.html
@@ -85,12 +85,7 @@ select = document.getElementById("select-selecting-by-key-2"); shouldBeTrue('valueMissingFor("select-selecting-by-key-2")'); select.focus(); - var modifiers; - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - modifiers = ['ctrlKey', 'altKey']; - else - modifiers = ['altKey']; - eventSender.keyDown("1", modifiers); + eventSender.keyDown("1", "accessKey"); shouldBe('select.value', '"a"'); shouldBeFalse('valueMissingFor("select-selecting-by-key-2")'); } else {
diff --git a/third_party/WebKit/LayoutTests/fast/forms/access-key.html b/third_party/WebKit/LayoutTests/fast/forms/access-key.html index b39b90c..c8b208d 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/access-key.html +++ b/third_party/WebKit/LayoutTests/fast/forms/access-key.html
@@ -9,11 +9,7 @@ } function pressKey(key) { - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - modifiers = ["ctrlKey", "altKey"]; - else - modifiers = ["altKey"]; - eventSender.keyDown(key, modifiers); + eventSender.keyDown(key, "accessKey"); } function test() {
diff --git a/third_party/WebKit/LayoutTests/fast/forms/focus-selection-input.html b/third_party/WebKit/LayoutTests/fast/forms/focus-selection-input.html index 6836d8e..d7c8c2b 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/focus-selection-input.html +++ b/third_party/WebKit/LayoutTests/fast/forms/focus-selection-input.html
@@ -7,10 +7,6 @@ if (!window.testRunner) return; - var accessKeyModifiers = ["altKey"]; - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - accessKeyModifiers = ["ctrlKey", "altKey"]; - testRunner.dumpEditingCallbacks(); testRunner.dumpAsText(); @@ -22,7 +18,7 @@ shouldBe("second.selectionStart", "11"); shouldBe("second.selectionEnd", "18"); - eventSender.keyDown("J", accessKeyModifiers); + eventSender.keyDown("J", "accessKey"); shouldBe("second.selectionStart", "11"); shouldBe("second.selectionEnd", "18"); @@ -51,7 +47,7 @@ shouldBe("sixth.selectionStart", "12"); shouldBe("sixth.selectionEnd", "19"); - eventSender.keyDown("U", accessKeyModifiers); + eventSender.keyDown("U", "accessKey"); shouldBe("sixth.selectionStart", "0"); shouldBe("sixth.selectionEnd", "19"); @@ -71,7 +67,7 @@ shouldBe("ninth.selectionStart", "12"); shouldBe("ninth.selectionEnd", "19"); - eventSender.keyDown("I", accessKeyModifiers); + eventSender.keyDown("I", "accessKey"); shouldBe("ninth.selectionStart", "0"); shouldBe("ninth.selectionEnd", "19");
diff --git a/third_party/WebKit/LayoutTests/fast/forms/focus-selection-textarea.html b/third_party/WebKit/LayoutTests/fast/forms/focus-selection-textarea.html index 169826b..f8ddf1f6 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/focus-selection-textarea.html +++ b/third_party/WebKit/LayoutTests/fast/forms/focus-selection-textarea.html
@@ -7,10 +7,6 @@ if (!window.testRunner) return; - var accessKeyModifiers = ["altKey"]; - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - accessKeyModifiers = ["ctrlKey", "altKey"]; - testRunner.dumpEditingCallbacks(); testRunner.dumpAsText(); @@ -22,7 +18,7 @@ shouldBe("second.selectionStart", "11"); shouldBe("second.selectionEnd", "18"); - eventSender.keyDown("J", accessKeyModifiers); + eventSender.keyDown("J", "accessKey"); shouldBe("second.selectionStart", "11"); shouldBe("second.selectionEnd", "18"); @@ -51,7 +47,7 @@ shouldBe("sixth.selectionStart", "11"); shouldBe("sixth.selectionEnd", "18"); - eventSender.keyDown("U", accessKeyModifiers); + eventSender.keyDown("U", "accessKey"); shouldBe("sixth.selectionStart", "11"); shouldBe("sixth.selectionEnd", "18"); @@ -71,7 +67,7 @@ shouldBe("ninth.selectionStart", "11"); shouldBe("ninth.selectionEnd", "18"); - eventSender.keyDown("I", accessKeyModifiers); + eventSender.keyDown("I", "accessKey"); shouldBe("ninth.selectionStart", "11"); shouldBe("ninth.selectionEnd", "18");
diff --git a/third_party/WebKit/LayoutTests/fast/forms/legend-access-key.html b/third_party/WebKit/LayoutTests/fast/forms/legend-access-key.html index 8fea663..58407c23 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/legend-access-key.html +++ b/third_party/WebKit/LayoutTests/fast/forms/legend-access-key.html
@@ -11,12 +11,7 @@ { if (window.testRunner) { testRunner.dumpAsText(); - - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - modifiers = ["ctrlKey", "altKey"]; - else - modifiers = "altKey"; - eventSender.keyDown("f", modifiers); + eventSender.keyDown("f", "accessKey"); } } </script>
diff --git a/third_party/WebKit/LayoutTests/fast/forms/select-accesskey.html b/third_party/WebKit/LayoutTests/fast/forms/select-accesskey.html index 253ba998..af47cea 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/select-accesskey.html +++ b/third_party/WebKit/LayoutTests/fast/forms/select-accesskey.html
@@ -1,4 +1,6 @@ -<select accesskey='a' onfocus='document.getElementById("res1").innerHTML="PASS 1";' onclick='document.getElementById("res2").innerHTML="PASS 2";'> +<select accesskey='a' + onfocus='document.getElementById("res1").innerHTML="PASS 1";' + onclick='document.getElementById("res2").innerHTML="PASS 2";'> <option>blaa <option>jee </select> @@ -14,14 +16,8 @@ FAIL </div> <script> - if (window.eventSender) { - testRunner.dumpAsText(); - - var modifiers; - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - modifiers = ['ctrlKey', 'altKey']; - else - modifiers = ['altKey']; - eventSender.keyDown('a', modifiers); - } +if (window.eventSender) { + testRunner.dumpAsText(); + eventSender.keyDown('a', 'accessKey'); +} </script>
diff --git a/third_party/WebKit/LayoutTests/fast/forms/select-option-accesskey-crash.html b/third_party/WebKit/LayoutTests/fast/forms/select-option-accesskey-crash.html index d602a6d..f212d57 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/select-option-accesskey-crash.html +++ b/third_party/WebKit/LayoutTests/fast/forms/select-option-accesskey-crash.html
@@ -17,17 +17,11 @@ if (window.testRunner) { testRunner.dumpAsText(); - var selectElement = document.getElementById("target"); + var selectElement = document.getElementById('target'); selectElement.focus(); if (window.eventSender) { - var modifiers; - if (navigator.userAgent.search(/\bMac OS X\b/) != -1) - modifiers = ['ctrlKey', 'altKey']; - else - modifiers = ['altKey']; - - eventSender.keyDown('x', modifiers); - testPassed("Did not crash"); + eventSender.keyDown('x', 'accessKey'); + testPassed('Did not crash'); } } </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/security/security-state-comparator-expected.txt b/third_party/WebKit/LayoutTests/http/tests/inspector/security/security-state-comparator-expected.txt new file mode 100644 index 0000000..ca10c2e11 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/security/security-state-comparator-expected.txt
@@ -0,0 +1,39 @@ +Tests that SecurityStateComparator correctly compares the severity of security states. + +Sign of SecurityStateComparator("unknown","unknown"): 0 (expected: 0) +Sign of SecurityStateComparator("unknown","info"): -1 (expected: -1) +Sign of SecurityStateComparator("unknown","insecure"): -1 (expected: -1) +Sign of SecurityStateComparator("unknown","neutral"): -1 (expected: -1) +Sign of SecurityStateComparator("unknown","warning"): -1 (expected: -1) +Sign of SecurityStateComparator("unknown","secure"): -1 (expected: -1) +Sign of SecurityStateComparator("info","unknown"): 1 (expected: 1) +Sign of SecurityStateComparator("info","info"): 0 (expected: 0) +Sign of SecurityStateComparator("info","insecure"): -1 (expected: -1) +Sign of SecurityStateComparator("info","neutral"): -1 (expected: -1) +Sign of SecurityStateComparator("info","warning"): -1 (expected: -1) +Sign of SecurityStateComparator("info","secure"): -1 (expected: -1) +Sign of SecurityStateComparator("insecure","unknown"): 1 (expected: 1) +Sign of SecurityStateComparator("insecure","info"): 1 (expected: 1) +Sign of SecurityStateComparator("insecure","insecure"): 0 (expected: 0) +Sign of SecurityStateComparator("insecure","neutral"): -1 (expected: -1) +Sign of SecurityStateComparator("insecure","warning"): -1 (expected: -1) +Sign of SecurityStateComparator("insecure","secure"): -1 (expected: -1) +Sign of SecurityStateComparator("neutral","unknown"): 1 (expected: 1) +Sign of SecurityStateComparator("neutral","info"): 1 (expected: 1) +Sign of SecurityStateComparator("neutral","insecure"): 1 (expected: 1) +Sign of SecurityStateComparator("neutral","neutral"): 0 (expected: 0) +Sign of SecurityStateComparator("neutral","warning"): -1 (expected: -1) +Sign of SecurityStateComparator("neutral","secure"): -1 (expected: -1) +Sign of SecurityStateComparator("warning","unknown"): 1 (expected: 1) +Sign of SecurityStateComparator("warning","info"): 1 (expected: 1) +Sign of SecurityStateComparator("warning","insecure"): 1 (expected: 1) +Sign of SecurityStateComparator("warning","neutral"): 1 (expected: 1) +Sign of SecurityStateComparator("warning","warning"): 0 (expected: 0) +Sign of SecurityStateComparator("warning","secure"): -1 (expected: -1) +Sign of SecurityStateComparator("secure","unknown"): 1 (expected: 1) +Sign of SecurityStateComparator("secure","info"): 1 (expected: 1) +Sign of SecurityStateComparator("secure","insecure"): 1 (expected: 1) +Sign of SecurityStateComparator("secure","neutral"): 1 (expected: 1) +Sign of SecurityStateComparator("secure","warning"): 1 (expected: 1) +Sign of SecurityStateComparator("secure","secure"): 0 (expected: 0) +
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/security/security-state-comparator.html b/third_party/WebKit/LayoutTests/http/tests/inspector/security/security-state-comparator.html new file mode 100644 index 0000000..f84840aa --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/security/security-state-comparator.html
@@ -0,0 +1,48 @@ +<html> +<head> +<script src="../inspector-test.js"></script> +<script> +var initialize_SecurityTest = function() +{ + InspectorTest.preloadPanel("security"); +} + +function test() +{ + var ordering = [ + SecurityAgent.SecurityState.Unknown, + SecurityAgent.SecurityState.Info, + SecurityAgent.SecurityState.Insecure, + SecurityAgent.SecurityState.Neutral, + SecurityAgent.SecurityState.Warning, + SecurityAgent.SecurityState.Secure + ]; + + InspectorTest.assertEquals(ordering.length, Object.keys(SecurityAgent.SecurityState).length); + + for (var i = 0; i < ordering.length; i++) { + InspectorTest.assertEquals(WebInspector.SecurityModel.SecurityStateComparator(ordering[i], ordering[i]), 0, "Security state comparison failed when checking that \"" + ordering[i] + "\" == \"" + ordering[i] + "\""); + } + + for (var i = 0; i < ordering.length; i++) { + var j; + + for (j = 0; j < i; j++) { + InspectorTest.addResult("Sign of SecurityStateComparator(\"" + ordering[i] + "\",\"" + ordering[j] + "\"): " + Math.sign(WebInspector.SecurityModel.SecurityStateComparator(ordering[i], ordering[j])) + " (expected: 1)"); + } + + InspectorTest.addResult("Sign of SecurityStateComparator(\"" + ordering[i] + "\",\"" + ordering[j] + "\"): " + Math.sign(WebInspector.SecurityModel.SecurityStateComparator(ordering[i], ordering[j])) + " (expected: 0)"); + + for (j = i + 1; j < ordering.length; j++) { + InspectorTest.addResult("Sign of SecurityStateComparator(\"" + ordering[i] + "\",\"" + ordering[j] + "\"): " + Math.sign(WebInspector.SecurityModel.SecurityStateComparator(ordering[i], ordering[j])) + " (expected: -1)"); + } + } + + InspectorTest.completeTest(); +} +</script> +</head> +<body onload="runTest()"> +<p>Tests that SecurityStateComparator correctly compares the severity of security states.</p> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/iso-latin1-header.html b/third_party/WebKit/LayoutTests/http/tests/serviceworker/iso-latin1-header.html index e56e68c..e93bc05b 100644 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/iso-latin1-header.html +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/iso-latin1-header.html
@@ -1,5 +1,5 @@ <!DOCTYPE html> -<title>Service Worker: respondWith with header value containing a non ascii string</title> +<title>Service Worker: respondWith with header value containing an ISO Latin 1 (ISO-8859-1 Character Set) string</title> <script src="../resources/testharness.js"></script> <script src="../resources/testharnessreport.js"></script> <script src="../resources/get-host-info.js"></script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/iso-latin1-header-iframe.html b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/iso-latin1-header-iframe.html index 56f26c4..f076f180 100644 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/iso-latin1-header-iframe.html +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/iso-latin1-header-iframe.html
@@ -9,7 +9,7 @@ resolve(); }; xhr.onerror = function() { - reject('XHR must fail.'); + reject('XHR must succeed.'); }; xhr.responseType = 'text'; xhr.open(method, './dummy?test', true); @@ -17,11 +17,11 @@ }); } - window.addEventListener('message', function(evt) { var port = evt.ports[0]; xhr_send('POST', 'test string') .then(function() { port.postMessage({results: 'finish'}); }) .catch(function(e) { port.postMessage({results: 'failure:' + e}); }); }); + </script>
diff --git a/third_party/WebKit/LayoutTests/inspector/elements/shadow/breadcrumb-shadow-roots.html b/third_party/WebKit/LayoutTests/inspector/elements/shadow/breadcrumb-shadow-roots.html index 0187f4e..d4c90113 100644 --- a/third_party/WebKit/LayoutTests/inspector/elements/shadow/breadcrumb-shadow-roots.html +++ b/third_party/WebKit/LayoutTests/inspector/elements/shadow/breadcrumb-shadow-roots.html
@@ -10,7 +10,7 @@ var template = document.querySelector("#tmpl"); var root = document.querySelector("#host").createShadowRoot(); root.appendChild(template.content.cloneNode(true)); - var rootClosed = document.querySelector("#hostClosed").createShadowRoot({mode: 'closed'}); + var rootClosed = document.querySelector("#hostClosed").attachShadow({mode: 'closed'}); rootClosed.appendChild(template.content.cloneNode(true)); runTest(); }
diff --git a/third_party/WebKit/LayoutTests/inspector/elements/shadow/elements-panel-shadow-selection-on-refresh.html b/third_party/WebKit/LayoutTests/inspector/elements/shadow/elements-panel-shadow-selection-on-refresh.html index 5687267..1abb3a8 100644 --- a/third_party/WebKit/LayoutTests/inspector/elements/shadow/elements-panel-shadow-selection-on-refresh.html +++ b/third_party/WebKit/LayoutTests/inspector/elements/shadow/elements-panel-shadow-selection-on-refresh.html
@@ -115,7 +115,7 @@ <script> var root = document.getElementById("hostElement").createShadowRoot(); root.innerHTML = "<input type='text'>"; -var closedRoot = document.getElementById("closedHostElement").createShadowRoot({mode: 'closed'}); +var closedRoot = document.getElementById("closedHostElement").attachShadow({mode: 'closed'}); closedRoot.innerHTML = "<button></button>"; </script> </body>
diff --git a/third_party/WebKit/LayoutTests/paint/selection/text-selection-newline-br-expected.txt b/third_party/WebKit/LayoutTests/paint/selection/text-selection-newline-br-expected.txt deleted file mode 100644 index d2b15c2..0000000 --- a/third_party/WebKit/LayoutTests/paint/selection/text-selection-newline-br-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x48 - LayoutBlockFlow {HTML} at (0,0) size 800x48 - LayoutBlockFlow {BODY} at (8,8) size 784x32 - LayoutBlockFlow {DIV} at (0,0) size 784x32 - LayoutText {#text} at (0,0) size 16x16 - text run at (0,0) width 16: "a" - LayoutBR {BR} at (16,0) size 0x16 - LayoutText {#text} at (0,16) size 16x16 - text run at (0,16) width 16: "b" -selection start: position 5 of child 0 {#text} of child 3 {DIV} of body -selection end: position 1 of child 2 {#text} of child 3 {DIV} of body
diff --git a/third_party/WebKit/LayoutTests/paint/selection/text-selection-newline-br.html b/third_party/WebKit/LayoutTests/paint/selection/text-selection-newline-br.html index 580cd46..c20ad73 100644 --- a/third_party/WebKit/LayoutTests/paint/selection/text-selection-newline-br.html +++ b/third_party/WebKit/LayoutTests/paint/selection/text-selection-newline-br.html
@@ -1,19 +1,12 @@ <!DOCTYPE html> -<html> -<head> <script src="../../resources/ahem.js"></script> <script src="../../resources/run-after-layout-and-paint.js"></script> <script src="resources/selection.js"></script> -<style> -div { - font-family: Ahem; -} -</style> -</head> -<body onload="selectRangeAfterLayoutAndPaint(container, 0, container, 3);"> <!-- Two lines in one block explicitly wrapped with a br which should include space representing a newline at end of the first line. --> -<div id="container"> +<div id="container" style="font-family: Ahem;"> a<br>b </div> -</body> +<script> +onload = selectRangeAfterLayoutAndPaint(container, 0, container, 3); +</script>
diff --git a/third_party/WebKit/LayoutTests/platform/android/fast/text/basic/015-expected.txt b/third_party/WebKit/LayoutTests/platform/android/fast/text/basic/015-expected.txt new file mode 100644 index 0000000..1c09e6f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/android/fast/text/basic/015-expected.txt
@@ -0,0 +1,61 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x600 + LayoutBlockFlow {HTML} at (0,0) size 800x600 + LayoutBlockFlow {BODY} at (8,8) size 784x576 + LayoutBlockFlow {P} at (0,0) size 784x40 + LayoutText {#text} at (0,0) size 202x19 + text run at (0,0) width 202: "This tests for a regression against " + LayoutInline {I} at (0,0) size 752x39 + LayoutInline {A} at (0,0) size 350x19 [color=#0000EE] + LayoutText {#text} at (202,0) size 350x19 + text run at (202,0) width 350: "http://bugzilla.opendarwin.org/show_bug.cgi?id=6418" + LayoutText {#text} at (552,0) size 752x39 + text run at (552,0) width 4: " " + text run at (556,0) width 196: "Incorrect scrollbar when using" + text run at (0,20) width 283: "overflow:auto and word-wrap:break-word; " + text run at (283,20) width 87: "in some cases" + LayoutText {#text} at (370,20) size 4x19 + text run at (370,20) width 4: "." + LayoutBlockFlow {HR} at (0,56) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,74) size 784x20 + LayoutText {#text} at (0,0) size 246x19 + text run at (0,0) width 246: "The first line should break after \x{201C}Lorem\x{201D}." + LayoutBlockFlow {DIV} at (0,110) size 85x42 [border: (1px solid #00FFFF)] + LayoutText {#text} at (1,1) size 79x19 + text run at (1,1) width 79: "Lorem ipsum" + LayoutInline {SPAN} at (0,0) size 32x19 + LayoutText {#text} at (1,21) size 32x19 + text run at (1,21) width 32: "dolor" + LayoutText {#text} at (0,0) size 0x0 + LayoutBlockFlow {HR} at (0,160) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,178) size 784x20 + LayoutText {#text} at (0,0) size 632x19 + text run at (0,0) width 458: "The first line should break after the letter u, so that the gray border does not " + text run at (458,0) width 174: "extend beyond the cyan box." + LayoutBlockFlow {DIV} at (0,214) size 87x42 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 64x39 [border: none (30px solid #C0C0C0) none] + LayoutText {#text} at (1,1) size 64x39 + text run at (1,1) width 64: "Loremipsu" + text run at (1,21) width 11: "m" + LayoutText {#text} at (0,0) size 0x0 + LayoutBlockFlow {HR} at (0,264) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,282) size 784x20 + LayoutText {#text} at (0,0) size 584x19 + text run at (0,0) width 410: "The first line should break after the letter p, so that the text does not " + text run at (410,0) width 174: "extend beyond the cyan box." + LayoutBlockFlow {DIV} at (0,318) size 87x42 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 81x39 [border: none (30px solid #C0C0C0)] + LayoutText {#text} at (31,1) size 81x39 + text run at (31,1) width 51: "Loremip" + text run at (1,21) width 24: "sum" + LayoutText {#text} at (0,0) size 0x0 + LayoutBlockFlow {HR} at (0,368) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,386) size 784x20 + LayoutText {#text} at (0,0) size 239x19 + text run at (0,0) width 239: "\x{201C}Dolor\x{201D} should not break into two lines." +layer at (8,430) size 37x22 + LayoutBlockFlow (positioned) {DIV} at (8,430) size 37x22 + LayoutBlockFlow {DIV} at (0,0) size 37x22 [border: (1px solid #00FFFF)] + LayoutText {#text} at (1,1) size 35x19 + text run at (1,1) width 35: "Dolor"
diff --git a/third_party/WebKit/LayoutTests/platform/android/paint/selection/text-selection-newline-br-expected.png b/third_party/WebKit/LayoutTests/platform/android/paint/selection/text-selection-newline-br-expected.png deleted file mode 100644 index ae94bee..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/paint/selection/text-selection-newline-br-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/svg/custom/mouse-move-on-svg-container-expected.txt b/third_party/WebKit/LayoutTests/platform/android/svg/custom/mouse-move-on-svg-container-expected.txt new file mode 100644 index 0000000..f1d08bb2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/android/svg/custom/mouse-move-on-svg-container-expected.txt
@@ -0,0 +1,14 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x411 + LayoutBlockFlow {html} at (0,0) size 800x411 + LayoutBlockFlow {body} at (0,0) size 800x411 + LayoutSVGRoot {svg} at (0,0) size 406x410 + LayoutSVGContainer {g} at (303,303) size 100x100 + LayoutSVGEllipse {circle} at (303,303) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=350.00] [cy=350.00] [r=50.00] + LayoutSVGText {text} at (56,35) size 288x19 contains 1 chunk(s) + LayoutSVGInlineText {#text} at (0,0) size 288x19 + chunk 1 (middle anchor) text run 1 at (56.00,50.00) startOffset 0 endOffset 49 width 288.00: "The circle should stay in the bottom-right corner" + LayoutText {#text} at (0,0) size 0x0 + LayoutText {#text} at (0,0) size 0x0 +caret: position 0 of child 0 {#text} of child 3 {text} of child 1 {svg} of body
diff --git a/third_party/WebKit/LayoutTests/platform/android/svg/custom/mouse-move-on-svg-root-expected.txt b/third_party/WebKit/LayoutTests/platform/android/svg/custom/mouse-move-on-svg-root-expected.txt new file mode 100644 index 0000000..b635233 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/android/svg/custom/mouse-move-on-svg-root-expected.txt
@@ -0,0 +1,13 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x411 + LayoutBlockFlow {html} at (0,0) size 800x411 + LayoutBlockFlow {body} at (0,0) size 800x411 + LayoutSVGRoot {svg} at (0,0) size 406x410 + LayoutSVGEllipse {circle} at (150,150) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=197.00] [cy=197.00] [r=50.00] + LayoutSVGText {text} at (99,35) size 202x19 contains 1 chunk(s) + LayoutSVGInlineText {#text} at (0,0) size 201x19 + chunk 1 (middle anchor) text run 1 at (99.50,50.00) startOffset 0 endOffset 34 width 201.00: "The circle should be in the middle" + LayoutText {#text} at (0,0) size 0x0 + LayoutText {#text} at (0,0) size 0x0 +caret: position 0 of child 0 {#text} of child 3 {text} of child 1 {svg} of body
diff --git a/third_party/WebKit/LayoutTests/platform/android/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt b/third_party/WebKit/LayoutTests/platform/android/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt new file mode 100644 index 0000000..80b9a0db --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/android/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt
@@ -0,0 +1,42 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x363 + LayoutBlockFlow {html} at (0,0) size 800x363 + LayoutBlockFlow {body} at (8,8) size 784x347 + LayoutText {#text} at (0,0) size 728x19 + text run at (0,0) width 728: "There should be no red displayed on the screen, and the patterns should not change when the browser window is resized." + LayoutBR {br} at (728,0) size 0x19 + LayoutBR {br} at (0,20) size 0x19 + LayoutSVGRoot {svg} at (8,47) size 202x307 + LayoutSVGContainer {g} at (9,49) size 200x200 + LayoutSVGRect {rect} at (9,149) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=100.00] [width=100.00] [height=50.00] + LayoutSVGRect {rect} at (109,49) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=100.00] [y=0.00] [width=100.00] [height=50.00] + LayoutSVGRect {rect} at (9,149) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=0.00] [y=100.00] [width=100.00] [height=100.00] + LayoutSVGRect {rect} at (109,49) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=100.00] [y=0.00] [width=100.00] [height=100.00] + LayoutText {#text} at (202,327) size 4x19 + text run at (202,327) width 4: " " + LayoutSVGRoot {svg} at (214,47) size 202x307 + LayoutSVGText {text} at (5,265) size 77x19 contains 1 chunk(s) + LayoutSVGInlineText {#text} at (0,0) size 77x19 + chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 11 width 77.00: "+Transforms" + LayoutSVGContainer {g} at (215,149) size 100x100 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}] + LayoutSVGRect {rect} at (215,149) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=100.00] [height=50.00] + LayoutSVGRect {rect} at (215,149) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00] + LayoutSVGContainer {g} at (315,49) size 100x100 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}] + LayoutSVGRect {rect} at (315,49) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=100.00] [height=50.00] + LayoutSVGRect {rect} at (315,49) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00] + LayoutSVGHiddenContainer {defs} at (0,0) size 0x0 + LayoutSVGResourcePattern {pattern} [id="pattern"] [patternUnits=userSpaceOnUse] [patternContentUnits=userSpaceOnUse] + LayoutSVGRect {rect} at (215,49) size 100x25 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=25.00] + LayoutSVGRect {rect} at (215,74) size 100x25 [fill={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=25.00] [width=100.00] [height=25.00] + LayoutText {#text} at (408,327) size 4x19 + text run at (408,327) width 4: " " + LayoutText {#text} at (0,0) size 0x0 +layer at (420,48) size 202x302 + LayoutSVGRoot {svg} at (420,47) size 202x307 + LayoutSVGText {text} at (5,265) size 162x19 contains 1 chunk(s) + LayoutSVGInlineText {#text} at (0,0) size 162x19 + chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 24 width 162.00: "+Accelerated Compositing" + LayoutSVGContainer {g} at (421,49) size 200x200 + LayoutSVGRect {rect} at (421,149) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=0.00] [y=100.00] [width=100.00] [height=100.00] + LayoutSVGRect {rect} at (521,49) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=100.00] [y=0.00] [width=100.00] [height=100.00]
diff --git a/third_party/WebKit/LayoutTests/platform/android/svg/hixie/mixed/010-expected.txt b/third_party/WebKit/LayoutTests/platform/android/svg/hixie/mixed/010-expected.txt new file mode 100644 index 0000000..efc8b5a5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/android/svg/hixie/mixed/010-expected.txt
@@ -0,0 +1,13 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x165 + LayoutBlockFlow {html} at (0,0) size 800x165 + LayoutBlockFlow {body} at (8,16) size 784x141 [color=#008000] + LayoutBlockFlow {p} at (0,0) size 784x20 [color=#000000] + LayoutText {#text} at (0,0) size 228x19 + text run at (0,0) width 228: "There should be a green block below." + LayoutBlockFlow (anonymous) at (0,36) size 784x105 + LayoutSVGRoot {svg} at (8,52) size 300x104 + LayoutSVGRect {rect} at (8,52) size 300x100 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] + LayoutSVGRect {rect} at (8,52) size 300x100 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] + LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/repaint/change-background-color-expected.txt b/third_party/WebKit/LayoutTests/platform/android/svg/repaint/add-background-property-on-root-expected.txt similarity index 75% copy from third_party/WebKit/LayoutTests/platform/win/svg/repaint/change-background-color-expected.txt copy to third_party/WebKit/LayoutTests/platform/android/svg/repaint/add-background-property-on-root-expected.txt index c6762ac..54a5e69 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/repaint/change-background-color-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/android/svg/repaint/add-background-property-on-root-expected.txt
@@ -6,9 +6,11 @@ "contentsOpaque": true, "drawsContent": true, "repaintRects": [ - [8, 8, 200, 103] + [8, 8, 100, 104], + [8, 8, 100, 104] ], "paintInvalidationClients": [ + "LayoutBlockFlow DIV", "LayoutSVGRoot svg" ] }
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/spv2/paint/selection/text-selection-newline-br-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/spv2/paint/selection/text-selection-newline-br-expected.png deleted file mode 100644 index ae94bee..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/virtual/spv2/paint/selection/text-selection-newline-br-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/inline/vertical-align-with-fallback-fonts-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/inline/vertical-align-with-fallback-fonts-expected.png new file mode 100644 index 0000000..97b1f498 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/inline/vertical-align-with-fallback-fonts-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/inline/vertical-align-with-fallback-fonts-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/inline/vertical-align-with-fallback-fonts-expected.txt new file mode 100644 index 0000000..0aca0e9c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/inline/vertical-align-with-fallback-fonts-expected.txt
@@ -0,0 +1,26 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x210 + LayoutBlockFlow {HTML} at (0,0) size 800x210 + LayoutBlockFlow {BODY} at (8,16) size 784x186 + LayoutBlockFlow {P} at (0,0) size 784x20 + LayoutText {#text} at (0,0) size 336x19 + text run at (0,0) width 336: "Test pass if all lines have superscripts enclosed in a box." + LayoutBlockFlow {DIV} at (0,36) size 784x50 + LayoutText {#text} at (0,-4) size 35x57 + text run at (0,-4) width 35: "A" + LayoutInline {SPAN} at (0,0) size 20x30 [border: (1px solid #000000)] + LayoutText {#text} at (36,-2) size 18x28 + text run at (36,-2) width 18: "A" + LayoutBlockFlow {DIV} at (0,86) size 784x50 + LayoutText {#text} at (0,-4) size 35x57 + text run at (0,-4) width 35: "A" + LayoutInline {SPAN} at (0,0) size 19x30 [border: (1px solid #000000)] + LayoutText {#text} at (36,-2) size 17x28 + text run at (36,-2) width 17: "B" + LayoutBlockFlow {DIV} at (0,136) size 784x50 + LayoutText {#text} at (0,-4) size 35x57 + text run at (0,-4) width 35: "A" + LayoutInline {SPAN} at (0,0) size 27x30 [border: (1px solid #000000)] + LayoutText {#text} at (36,-2) size 25x28 + text run at (36,-2) width 25: "\x{3042}"
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/repaint/selected-replaced-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/repaint/selected-replaced-expected.txt index 67bdad3..38eafa6 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/repaint/selected-replaced-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/repaint/selected-replaced-expected.txt
@@ -6,9 +6,9 @@ "contentsOpaque": true, "drawsContent": true, "repaintRects": [ - [8, 132, 214, 236], + [8, 132, 214, 232], [8, 52, 784, 236], - [8, 52, 214, 236] + [8, 52, 214, 232] ], "paintInvalidationClients": [ "InlineBox",
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/text/basic/015-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/text/basic/015-expected.png index 177b849..19b59bd 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/text/basic/015-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/text/basic/015-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/text/basic/015-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/text/basic/015-expected.txt index 1c09e6f..08f18b88 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/text/basic/015-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/text/basic/015-expected.txt
@@ -6,17 +6,17 @@ LayoutBlockFlow {P} at (0,0) size 784x40 LayoutText {#text} at (0,0) size 202x19 text run at (0,0) width 202: "This tests for a regression against " - LayoutInline {I} at (0,0) size 752x39 + LayoutInline {I} at (0,0) size 751x39 LayoutInline {A} at (0,0) size 350x19 [color=#0000EE] LayoutText {#text} at (202,0) size 350x19 text run at (202,0) width 350: "http://bugzilla.opendarwin.org/show_bug.cgi?id=6418" - LayoutText {#text} at (552,0) size 752x39 - text run at (552,0) width 4: " " - text run at (556,0) width 196: "Incorrect scrollbar when using" - text run at (0,20) width 283: "overflow:auto and word-wrap:break-word; " - text run at (283,20) width 87: "in some cases" - LayoutText {#text} at (370,20) size 4x19 - text run at (370,20) width 4: "." + LayoutText {#text} at (551,0) size 751x39 + text run at (551,0) width 5: " " + text run at (555,0) width 196: "Incorrect scrollbar when using" + text run at (0,20) width 282: "overflow:auto and word-wrap:break-word; " + text run at (281,20) width 88: "in some cases" + LayoutText {#text} at (368,20) size 5x19 + text run at (368,20) width 5: "." LayoutBlockFlow {HR} at (0,56) size 784x2 [border: (1px inset #EEEEEE)] LayoutBlockFlow {P} at (0,74) size 784x20 LayoutText {#text} at (0,0) size 246x19 @@ -33,29 +33,27 @@ LayoutText {#text} at (0,0) size 632x19 text run at (0,0) width 458: "The first line should break after the letter u, so that the gray border does not " text run at (458,0) width 174: "extend beyond the cyan box." - LayoutBlockFlow {DIV} at (0,214) size 87x42 [border: (1px solid #00FFFF)] - LayoutInline {SPAN} at (0,0) size 64x39 [border: none (30px solid #C0C0C0) none] - LayoutText {#text} at (1,1) size 64x39 - text run at (1,1) width 64: "Loremipsu" - text run at (1,21) width 11: "m" + LayoutBlockFlow {DIV} at (0,214) size 87x22 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 105x19 [border: none (30px solid #C0C0C0) none] + LayoutText {#text} at (1,1) size 75x19 + text run at (1,1) width 75: "Loremipsum" LayoutText {#text} at (0,0) size 0x0 - LayoutBlockFlow {HR} at (0,264) size 784x2 [border: (1px inset #EEEEEE)] - LayoutBlockFlow {P} at (0,282) size 784x20 + LayoutBlockFlow {HR} at (0,244) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,262) size 784x20 LayoutText {#text} at (0,0) size 584x19 text run at (0,0) width 410: "The first line should break after the letter p, so that the text does not " text run at (410,0) width 174: "extend beyond the cyan box." - LayoutBlockFlow {DIV} at (0,318) size 87x42 [border: (1px solid #00FFFF)] - LayoutInline {SPAN} at (0,0) size 81x39 [border: none (30px solid #C0C0C0)] - LayoutText {#text} at (31,1) size 81x39 - text run at (31,1) width 51: "Loremip" - text run at (1,21) width 24: "sum" + LayoutBlockFlow {DIV} at (0,298) size 87x22 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 105x19 [border: none (30px solid #C0C0C0)] + LayoutText {#text} at (31,1) size 75x19 + text run at (31,1) width 75: "Loremipsum" LayoutText {#text} at (0,0) size 0x0 - LayoutBlockFlow {HR} at (0,368) size 784x2 [border: (1px inset #EEEEEE)] - LayoutBlockFlow {P} at (0,386) size 784x20 + LayoutBlockFlow {HR} at (0,328) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,346) size 784x20 LayoutText {#text} at (0,0) size 239x19 text run at (0,0) width 239: "\x{201C}Dolor\x{201D} should not break into two lines." -layer at (8,430) size 37x22 - LayoutBlockFlow (positioned) {DIV} at (8,430) size 37x22 +layer at (8,390) size 37x22 + LayoutBlockFlow (positioned) {DIV} at (8,390) size 37x22 LayoutBlockFlow {DIV} at (0,0) size 37x22 [border: (1px solid #00FFFF)] LayoutText {#text} at (1,1) size 35x19 text run at (1,1) width 35: "Dolor"
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/menulist-width-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/menulist-width-rtl-expected.png new file mode 100644 index 0000000..f8508520 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/menulist-width-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/menulist-width-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/menulist-width-rtl-expected.txt new file mode 100644 index 0000000..74581524 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/menulist-width-rtl-expected.txt
@@ -0,0 +1,17 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x75 + LayoutBlockFlow {HTML} at (0,0) size 800x75 + LayoutBlockFlow {BODY} at (8,8) size 784x59 + LayoutBlockFlow {DIV} at (0,0) size 784x20 + LayoutText {#text} at (0,0) size 587x19 + text run at (0,0) width 587: "The following line and the SELECT element should have same text, and no characters are lacking." + LayoutBlockFlow {DIV} at (0,20) size 784x19 + LayoutText {#text} at (676,0) size 108x18 + text run at (676,0) width 108 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutBlockFlow (anonymous) at (0,39) size 784x20 + LayoutMenuList {SELECT} at (668,0) size 116x20 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] + LayoutBlockFlow (anonymous) at (1,1) size 114x18 + LayoutText (anonymous) at (19,1) size 91x16 + text run at (19,1) width 91 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/text/justify-ideograph-simple-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/text/justify-ideograph-simple-expected.png index 5888fd6..62c3f79 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/text/justify-ideograph-simple-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/text/justify-ideograph-simple-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/mouse-move-on-svg-container-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/mouse-move-on-svg-container-expected.txt index f1d08bb2..c633b9ab 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/mouse-move-on-svg-container-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/mouse-move-on-svg-container-expected.txt
@@ -3,7 +3,7 @@ layer at (0,0) size 800x411 LayoutBlockFlow {html} at (0,0) size 800x411 LayoutBlockFlow {body} at (0,0) size 800x411 - LayoutSVGRoot {svg} at (0,0) size 406x410 + LayoutSVGRoot {svg} at (0,0) size 406x406 LayoutSVGContainer {g} at (303,303) size 100x100 LayoutSVGEllipse {circle} at (303,303) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=350.00] [cy=350.00] [r=50.00] LayoutSVGText {text} at (56,35) size 288x19 contains 1 chunk(s)
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/mouse-move-on-svg-root-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/mouse-move-on-svg-root-expected.txt index b635233..b2701ba 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/mouse-move-on-svg-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/mouse-move-on-svg-root-expected.txt
@@ -3,7 +3,7 @@ layer at (0,0) size 800x411 LayoutBlockFlow {html} at (0,0) size 800x411 LayoutBlockFlow {body} at (0,0) size 800x411 - LayoutSVGRoot {svg} at (0,0) size 406x410 + LayoutSVGRoot {svg} at (0,0) size 406x406 LayoutSVGEllipse {circle} at (150,150) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=197.00] [cy=197.00] [r=50.00] LayoutSVGText {text} at (99,35) size 202x19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 201x19
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt index 80b9a0db..0f3f1b4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt
@@ -7,7 +7,7 @@ text run at (0,0) width 728: "There should be no red displayed on the screen, and the patterns should not change when the browser window is resized." LayoutBR {br} at (728,0) size 0x19 LayoutBR {br} at (0,20) size 0x19 - LayoutSVGRoot {svg} at (8,47) size 202x307 + LayoutSVGRoot {svg} at (8,48) size 202x302 LayoutSVGContainer {g} at (9,49) size 200x200 LayoutSVGRect {rect} at (9,149) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=100.00] [width=100.00] [height=50.00] LayoutSVGRect {rect} at (109,49) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=100.00] [y=0.00] [width=100.00] [height=50.00] @@ -15,7 +15,7 @@ LayoutSVGRect {rect} at (109,49) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=100.00] [y=0.00] [width=100.00] [height=100.00] LayoutText {#text} at (202,327) size 4x19 text run at (202,327) width 4: " " - LayoutSVGRoot {svg} at (214,47) size 202x307 + LayoutSVGRoot {svg} at (214,48) size 202x302 LayoutSVGText {text} at (5,265) size 77x19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 77x19 chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 11 width 77.00: "+Transforms" @@ -33,7 +33,7 @@ text run at (408,327) width 4: " " LayoutText {#text} at (0,0) size 0x0 layer at (420,48) size 202x302 - LayoutSVGRoot {svg} at (420,47) size 202x307 + LayoutSVGRoot {svg} at (420,48) size 202x302 LayoutSVGText {text} at (5,265) size 162x19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 162x19 chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 24 width 162.00: "+Accelerated Compositing"
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/hixie/mixed/010-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/hixie/mixed/010-expected.txt index efc8b5a5..bf92423 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/hixie/mixed/010-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/hixie/mixed/010-expected.txt
@@ -7,7 +7,7 @@ LayoutText {#text} at (0,0) size 228x19 text run at (0,0) width 228: "There should be a green block below." LayoutBlockFlow (anonymous) at (0,36) size 784x105 - LayoutSVGRoot {svg} at (8,52) size 300x104 + LayoutSVGRoot {svg} at (8,52) size 300x100 LayoutSVGRect {rect} at (8,52) size 300x100 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] LayoutSVGRect {rect} at (8,52) size 300x100 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/add-background-property-on-root-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/add-background-property-on-root-expected.txt index 54a5e69..df1ca09 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/add-background-property-on-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/add-background-property-on-root-expected.txt
@@ -7,7 +7,7 @@ "drawsContent": true, "repaintRects": [ [8, 8, 100, 104], - [8, 8, 100, 104] + [8, 8, 100, 100] ], "paintInvalidationClients": [ "LayoutBlockFlow DIV",
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/change-background-color-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/change-background-color-expected.txt deleted file mode 100644 index 1e7bff9..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/change-background-color-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -{ - "bounds": [800, 600], - "children": [ - { - "bounds": [800, 600], - "contentsOpaque": true, - "drawsContent": true, - "repaintRects": [ - [8, 8, 200, 104] - ], - "paintInvalidationClients": [ - "LayoutSVGRoot svg" - ] - } - ] -} -
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/remove-background-property-on-root-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/remove-background-property-on-root-expected.txt index 54a5e69..df1ca09 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/remove-background-property-on-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/repaint/remove-background-property-on-root-expected.txt
@@ -7,7 +7,7 @@ "drawsContent": true, "repaintRects": [ [8, 8, 100, 104], - [8, 8, 100, 104] + [8, 8, 100, 100] ], "paintInvalidationClients": [ "LayoutBlockFlow DIV",
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/text/small-fonts-in-html5-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/text/small-fonts-in-html5-expected.txt index 5cb936d8..1b914136 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/text/small-fonts-in-html5-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/text/small-fonts-in-html5-expected.txt
@@ -7,7 +7,7 @@ LayoutText {#text} at (0,0) size 472x36 text run at (0,0) width 472: "Small fonts in HTML5/inline SVG" LayoutBlockFlow (anonymous) at (0,58.44) size 784x507 - LayoutSVGRoot {svg} at (8,79) size 502x507 + LayoutSVGRoot {svg} at (8,79) size 502x503 LayoutSVGContainer {g} at (159,267) size 94x21 [transform={m=((400.00,0.00)(0.00,400.00)) t=(0.00,0.00)}] LayoutSVGText {text} at (0,0) size 1x1 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 1x1
diff --git a/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/basic/015-expected.png b/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/basic/015-expected.png index 847842f..d4b4f64 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/basic/015-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/basic/015-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/international/menulist-width-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/international/menulist-width-rtl-expected.png new file mode 100644 index 0000000..8059ce87 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/international/menulist-width-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/justify-ideograph-simple-expected.png b/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/justify-ideograph-simple-expected.png index 032e254..9ffd03c 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/justify-ideograph-simple-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-lion/fast/text/justify-ideograph-simple-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/inline/vertical-align-with-fallback-fonts-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/inline/vertical-align-with-fallback-fonts-expected.png new file mode 100644 index 0000000..2175d9c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/inline/vertical-align-with-fallback-fonts-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/international/menulist-width-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/international/menulist-width-rtl-expected.png new file mode 100644 index 0000000..f326f35d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/international/menulist-width-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/international/menulist-width-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/international/menulist-width-rtl-expected.txt new file mode 100644 index 0000000..256d8b0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/international/menulist-width-rtl-expected.txt
@@ -0,0 +1,17 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x71 + LayoutBlockFlow {HTML} at (0,0) size 800x71 + LayoutBlockFlow {BODY} at (8,8) size 784x55 + LayoutBlockFlow {DIV} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 632x18 + text run at (0,0) width 632: "The following line and the SELECT element should have same text, and no characters are lacking." + LayoutBlockFlow {DIV} at (0,18) size 784x18 + LayoutText {#text} at (682,0) size 102x16 + text run at (682,0) width 102 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutBlockFlow (anonymous) at (0,36) size 784x19 + LayoutMenuList {SELECT} at (666,1) size 118x18 [bgcolor=#F8F8F8] + LayoutBlockFlow (anonymous) at (0,0) size 118x21 + LayoutText (anonymous) at (8,2) size 87x13 + text run at (8,2) width 87 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/justify-ideograph-simple-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/justify-ideograph-simple-expected.png index ab22303..1d44d006 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/justify-ideograph-simple-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mavericks/fast/text/justify-ideograph-simple-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mountainlion/fast/text/justify-ideograph-simple-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mountainlion/fast/text/justify-ideograph-simple-expected.png new file mode 100644 index 0000000..4f52bf0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mountainlion/fast/text/justify-ideograph-simple-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/basic/015-expected.png b/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/basic/015-expected.png index c92904612..b0db61c 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/basic/015-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/basic/015-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/international/menulist-width-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/international/menulist-width-rtl-expected.png new file mode 100644 index 0000000..36eb8986 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/international/menulist-width-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/justify-ideograph-simple-expected.png b/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/justify-ideograph-simple-expected.png new file mode 100644 index 0000000..93fe2fb0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-snowleopard/fast/text/justify-ideograph-simple-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/inline/vertical-align-with-fallback-fonts-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/inline/vertical-align-with-fallback-fonts-expected.png new file mode 100644 index 0000000..a3419cf --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/inline/vertical-align-with-fallback-fonts-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/inline/vertical-align-with-fallback-fonts-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/inline/vertical-align-with-fallback-fonts-expected.txt new file mode 100644 index 0000000..43314b7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/inline/vertical-align-with-fallback-fonts-expected.txt
@@ -0,0 +1,26 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x208 + LayoutBlockFlow {HTML} at (0,0) size 800x208 + LayoutBlockFlow {BODY} at (8,16) size 784x184 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 362x18 + text run at (0,0) width 362: "Test pass if all lines have superscripts enclosed in a box." + LayoutBlockFlow {DIV} at (0,34) size 784x50 + LayoutText {#text} at (0,-4) size 37x58 + text run at (0,-4) width 37: "A" + LayoutInline {SPAN} at (0,0) size 21x31 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 19x29 + text run at (37,-2) width 19: "A" + LayoutBlockFlow {DIV} at (0,84) size 784x50 + LayoutText {#text} at (0,-4) size 37x58 + text run at (0,-4) width 37: "A" + LayoutInline {SPAN} at (0,0) size 19x31 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 17x29 + text run at (37,-2) width 17: "B" + LayoutBlockFlow {DIV} at (0,134) size 784x50 + LayoutText {#text} at (0,-4) size 37x58 + text run at (0,-4) width 37: "A" + LayoutInline {SPAN} at (0,0) size 28x31 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 26x29 + text run at (37,-2) width 26: "\x{3042}"
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/repaint/selected-replaced-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/repaint/selected-replaced-expected.txt index 3b96aca9..e8ac9a4 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/repaint/selected-replaced-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/repaint/selected-replaced-expected.txt
@@ -6,9 +6,9 @@ "contentsOpaque": true, "drawsContent": true, "repaintRects": [ - [8, 148, 214, 236], + [8, 148, 214, 232], [8, 68, 784, 236], - [8, 68, 214, 236] + [8, 68, 214, 232] ], "paintInvalidationClients": [ "InlineBox",
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/text/basic/015-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/text/basic/015-expected.png index 3a7fc81..78bd0b0d 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/text/basic/015-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/text/basic/015-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/text/basic/015-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/text/basic/015-expected.txt index ee0e15f..8f373f5 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/text/basic/015-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/text/basic/015-expected.txt
@@ -6,17 +6,17 @@ LayoutBlockFlow {P} at (0,0) size 784x36 LayoutText {#text} at (0,0) size 218x18 text run at (0,0) width 218: "This tests for a regression against " - LayoutInline {I} at (0,0) size 774x36 - LayoutInline {A} at (0,0) size 355x18 [color=#0000EE] - LayoutText {#text} at (217,0) size 355x18 - text run at (217,0) width 355: "http://bugzilla.opendarwin.org/show_bug.cgi?id=6418" - LayoutText {#text} at (571,0) size 774x36 - text run at (571,0) width 5: " " - text run at (575,0) width 199: "Incorrect scrollbar when using" - text run at (0,18) width 283: "overflow:auto and word-wrap:break-word; " - text run at (282,18) width 89: "in some cases" - LayoutText {#text} at (370,18) size 5x18 - text run at (370,18) width 5: "." + LayoutInline {I} at (0,0) size 773x36 + LayoutInline {A} at (0,0) size 354x18 [color=#0000EE] + LayoutText {#text} at (217,0) size 354x18 + text run at (217,0) width 354: "http://bugzilla.opendarwin.org/show_bug.cgi?id=6418" + LayoutText {#text} at (570,0) size 773x36 + text run at (570,0) width 5: " " + text run at (574,0) width 199: "Incorrect scrollbar when using" + text run at (0,18) width 280: "overflow:auto and word-wrap:break-word; " + text run at (279,18) width 89: "in some cases" + LayoutText {#text} at (367,18) size 5x18 + text run at (367,18) width 5: "." LayoutBlockFlow {HR} at (0,52) size 784x2 [border: (1px inset #EEEEEE)] LayoutBlockFlow {P} at (0,70) size 784x18 LayoutText {#text} at (0,0) size 267x18 @@ -31,32 +31,30 @@ LayoutText {#text} at (0,0) size 0x0 LayoutBlockFlow {HR} at (0,150) size 784x2 [border: (1px inset #EEEEEE)] LayoutBlockFlow {P} at (0,168) size 784x18 - LayoutText {#text} at (0,0) size 672x18 - text run at (0,0) width 489: "The first line should break after the letter u, so that the gray border does not " - text run at (488,0) width 184: "extend beyond the cyan box." - LayoutBlockFlow {DIV} at (0,202) size 87x38 [border: (1px solid #00FFFF)] - LayoutInline {SPAN} at (0,0) size 70x36 [border: none (30px solid #C0C0C0) none] - LayoutText {#text} at (1,1) size 70x36 - text run at (1,1) width 70: "Loremipsu" - text run at (1,19) width 13: "m" + LayoutText {#text} at (0,0) size 671x18 + text run at (0,0) width 488: "The first line should break after the letter u, so that the gray border does not " + text run at (487,0) width 184: "extend beyond the cyan box." + LayoutBlockFlow {DIV} at (0,202) size 87x20 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 112x18 [border: none (30px solid #C0C0C0) none] + LayoutText {#text} at (1,1) size 82x18 + text run at (1,1) width 82: "Loremipsum" LayoutText {#text} at (0,0) size 0x0 - LayoutBlockFlow {HR} at (0,248) size 784x2 [border: (1px inset #EEEEEE)] - LayoutBlockFlow {P} at (0,266) size 784x18 - LayoutText {#text} at (0,0) size 622x18 - text run at (0,0) width 439: "The first line should break after the letter p, so that the text does not " - text run at (438,0) width 184: "extend beyond the cyan box." - LayoutBlockFlow {DIV} at (0,300) size 87x38 [border: (1px solid #00FFFF)] - LayoutInline {SPAN} at (0,0) size 78x36 [border: none (30px solid #C0C0C0)] - LayoutText {#text} at (31,1) size 78x36 - text run at (31,1) width 48: "Loremi" - text run at (1,19) width 35: "psum" + LayoutBlockFlow {HR} at (0,230) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,248) size 784x18 + LayoutText {#text} at (0,0) size 621x18 + text run at (0,0) width 438: "The first line should break after the letter p, so that the text does not " + text run at (437,0) width 184: "extend beyond the cyan box." + LayoutBlockFlow {DIV} at (0,282) size 87x20 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 112x18 [border: none (30px solid #C0C0C0)] + LayoutText {#text} at (31,1) size 82x18 + text run at (31,1) width 82: "Loremipsum" LayoutText {#text} at (0,0) size 0x0 - LayoutBlockFlow {HR} at (0,346) size 784x2 [border: (1px inset #EEEEEE)] - LayoutBlockFlow {P} at (0,364) size 784x18 + LayoutBlockFlow {HR} at (0,310) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,328) size 784x18 LayoutText {#text} at (0,0) size 258x18 text run at (0,0) width 258: "\x{201C}Dolor\x{201D} should not break into two lines." -layer at (8,406) size 45x20 - LayoutBlockFlow (positioned) {DIV} at (8,406) size 44.81x20 +layer at (8,370) size 45x20 + LayoutBlockFlow (positioned) {DIV} at (8,370) size 44.81x20 LayoutBlockFlow {DIV} at (0,0) size 44.81x20 [border: (1px solid #00FFFF)] LayoutText {#text} at (1,1) size 43x18 text run at (1,1) width 43: "Dolor"
diff --git a/third_party/WebKit/LayoutTests/platform/mac/paint/selection/text-selection-newline-br-expected.png b/third_party/WebKit/LayoutTests/platform/mac/paint/selection/text-selection-newline-br-expected.png deleted file mode 100644 index fcfe07d..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac/paint/selection/text-selection-newline-br-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt index febe4b9..1736a9d 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt
@@ -3,7 +3,7 @@ layer at (0,0) size 800x410 LayoutBlockFlow {html} at (0,0) size 800x410 LayoutBlockFlow {body} at (0,0) size 800x410 - LayoutSVGRoot {svg} at (0,0) size 406x410 + LayoutSVGRoot {svg} at (0,0) size 406x406 LayoutSVGContainer {g} at (303,303) size 100x100 LayoutSVGEllipse {circle} at (303,303) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=350.00] [cy=350.00] [r=50.00] LayoutSVGText {text} at (44,36) size 312x18 contains 1 chunk(s)
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt index 235ff52..255dcc4c 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt
@@ -3,7 +3,7 @@ layer at (0,0) size 800x410 LayoutBlockFlow {html} at (0,0) size 800x410 LayoutBlockFlow {body} at (0,0) size 800x410 - LayoutSVGRoot {svg} at (0,0) size 406x410 + LayoutSVGRoot {svg} at (0,0) size 406x406 LayoutSVGEllipse {circle} at (150,150) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=197.00] [cy=197.00] [r=50.00] LayoutSVGText {text} at (90,36) size 220x18 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 219x18
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt index 358eab36..e74562bf 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt
@@ -7,7 +7,7 @@ text run at (0,0) width 773: "There should be no red displayed on the screen, and the patterns should not change when the browser window is resized." LayoutBR {br} at (772,0) size 1x18 LayoutBR {br} at (0,18) size 0x18 - LayoutSVGRoot {svg} at (8,44) size 202x306 + LayoutSVGRoot {svg} at (8,44) size 202x302 LayoutSVGContainer {g} at (9,45) size 200x200 LayoutSVGRect {rect} at (9,145) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=100.00] [width=100.00] [height=50.00] LayoutSVGRect {rect} at (109,45) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=100.00] [y=0.00] [width=100.00] [height=50.00] @@ -15,7 +15,7 @@ LayoutSVGRect {rect} at (109,45) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=100.00] [y=0.00] [width=100.00] [height=100.00] LayoutText {#text} at (202,324) size 4x18 text run at (202,324) width 4: " " - LayoutSVGRoot {svg} at (214,44) size 202x306 + LayoutSVGRoot {svg} at (214,44) size 202x302 LayoutSVGText {text} at (5,266) size 83x18 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 83x18 chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 11 width 82.78: "+Transforms" @@ -33,7 +33,7 @@ text run at (408,324) width 4: " " LayoutText {#text} at (0,0) size 0x0 layer at (420,44) size 202x302 - LayoutSVGRoot {svg} at (420,44) size 202x306 + LayoutSVGRoot {svg} at (420,44) size 202x302 LayoutSVGText {text} at (5,266) size 173x18 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 173x18 chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 24 width 172.09: "+Accelerated Compositing"
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/hixie/mixed/010-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/hixie/mixed/010-expected.txt index f16274e..eef4f30 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/hixie/mixed/010-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/hixie/mixed/010-expected.txt
@@ -7,7 +7,7 @@ LayoutText {#text} at (0,0) size 241x18 text run at (0,0) width 241: "There should be a green block below." LayoutBlockFlow (anonymous) at (0,34) size 784x104 - LayoutSVGRoot {svg} at (8,50) size 300x104 + LayoutSVGRoot {svg} at (8,50) size 300x100 LayoutSVGRect {rect} at (8,50) size 300x100 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] LayoutSVGRect {rect} at (8,50) size 300x100 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/add-background-property-on-root-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/add-background-property-on-root-expected.txt index 54a5e69..df1ca09 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/add-background-property-on-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/add-background-property-on-root-expected.txt
@@ -7,7 +7,7 @@ "drawsContent": true, "repaintRects": [ [8, 8, 100, 104], - [8, 8, 100, 104] + [8, 8, 100, 100] ], "paintInvalidationClients": [ "LayoutBlockFlow DIV",
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/change-background-color-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/change-background-color-expected.txt deleted file mode 100644 index 1e7bff9..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/change-background-color-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -{ - "bounds": [800, 600], - "children": [ - { - "bounds": [800, 600], - "contentsOpaque": true, - "drawsContent": true, - "repaintRects": [ - [8, 8, 200, 104] - ], - "paintInvalidationClients": [ - "LayoutSVGRoot svg" - ] - } - ] -} -
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/remove-background-property-on-root-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/remove-background-property-on-root-expected.txt index 54a5e69..df1ca09 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/remove-background-property-on-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/repaint/remove-background-property-on-root-expected.txt
@@ -7,7 +7,7 @@ "drawsContent": true, "repaintRects": [ [8, 8, 100, 104], - [8, 8, 100, 104] + [8, 8, 100, 100] ], "paintInvalidationClients": [ "LayoutBlockFlow DIV",
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/text/small-fonts-in-html5-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/text/small-fonts-in-html5-expected.txt index c165e7d..7f78e28 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/text/small-fonts-in-html5-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/text/small-fonts-in-html5-expected.txt
@@ -7,7 +7,7 @@ LayoutText {#text} at (0,0) size 470x37 text run at (0,0) width 470: "Small fonts in HTML5/inline SVG" LayoutBlockFlow (anonymous) at (0,58.44) size 784x506 - LayoutSVGRoot {svg} at (8,79) size 502x507 + LayoutSVGRoot {svg} at (8,79) size 502x503 LayoutSVGContainer {g} at (159,267) size 94x21 [transform={m=((400.00,0.00)(0.00,400.00)) t=(0.00,0.00)}] LayoutSVGText {text} at (0,0) size 1x1 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 1x1
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/spv2/paint/selection/text-selection-newline-br-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/spv2/paint/selection/text-selection-newline-br-expected.png deleted file mode 100644 index fcfe07d..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac/virtual/spv2/paint/selection/text-selection-newline-br-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/fast/inline/vertical-align-with-fallback-fonts-expected.png b/third_party/WebKit/LayoutTests/platform/win-xp/fast/inline/vertical-align-with-fallback-fonts-expected.png new file mode 100644 index 0000000..aa01564 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win-xp/fast/inline/vertical-align-with-fallback-fonts-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/fast/inline/vertical-align-with-fallback-fonts-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/fast/inline/vertical-align-with-fallback-fonts-expected.txt new file mode 100644 index 0000000..080e5ce5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win-xp/fast/inline/vertical-align-with-fallback-fonts-expected.txt
@@ -0,0 +1,26 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x210 + LayoutBlockFlow {HTML} at (0,0) size 800x210 + LayoutBlockFlow {BODY} at (8,16) size 784x186 + LayoutBlockFlow {P} at (0,0) size 784x20 + LayoutText {#text} at (0,0) size 336x19 + text run at (0,0) width 336: "Test pass if all lines have superscripts enclosed in a box." + LayoutBlockFlow {DIV} at (0,36) size 784x50 + LayoutText {#text} at (0,-4) size 35x57 + text run at (0,-4) width 35: "A" + LayoutInline {SPAN} at (0,0) size 20x30 [border: (1px solid #000000)] + LayoutText {#text} at (36,-2) size 18x28 + text run at (36,-2) width 18: "A" + LayoutBlockFlow {DIV} at (0,86) size 784x50 + LayoutText {#text} at (0,-4) size 35x57 + text run at (0,-4) width 35: "A" + LayoutInline {SPAN} at (0,0) size 19x30 [border: (1px solid #000000)] + LayoutText {#text} at (36,-2) size 17x28 + text run at (36,-2) width 17: "B" + LayoutBlockFlow {DIV} at (0,136) size 784x50 + LayoutText {#text} at (0,-4) size 35x57 + text run at (0,-4) width 35: "A" + LayoutInline {SPAN} at (0,0) size 26x30 [border: (1px solid #000000)] + LayoutText {#text} at (36,-2) size 24x28 + text run at (36,-2) width 24: "\x{3042}"
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/fast/repaint/selected-replaced-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/fast/repaint/selected-replaced-expected.txt index 67bdad3..38eafa6 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/fast/repaint/selected-replaced-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/fast/repaint/selected-replaced-expected.txt
@@ -6,9 +6,9 @@ "contentsOpaque": true, "drawsContent": true, "repaintRects": [ - [8, 132, 214, 236], + [8, 132, 214, 232], [8, 52, 784, 236], - [8, 52, 214, 236] + [8, 52, 214, 232] ], "paintInvalidationClients": [ "InlineBox",
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/basic/015-expected.png b/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/basic/015-expected.png index 271e71d4..204bf60 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/basic/015-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/basic/015-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/basic/015-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/basic/015-expected.txt index 1c09e6f..8cd0286 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/basic/015-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/basic/015-expected.txt
@@ -33,29 +33,27 @@ LayoutText {#text} at (0,0) size 632x19 text run at (0,0) width 458: "The first line should break after the letter u, so that the gray border does not " text run at (458,0) width 174: "extend beyond the cyan box." - LayoutBlockFlow {DIV} at (0,214) size 87x42 [border: (1px solid #00FFFF)] - LayoutInline {SPAN} at (0,0) size 64x39 [border: none (30px solid #C0C0C0) none] - LayoutText {#text} at (1,1) size 64x39 - text run at (1,1) width 64: "Loremipsu" - text run at (1,21) width 11: "m" + LayoutBlockFlow {DIV} at (0,214) size 87x22 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 105x19 [border: none (30px solid #C0C0C0) none] + LayoutText {#text} at (1,1) size 75x19 + text run at (1,1) width 75: "Loremipsum" LayoutText {#text} at (0,0) size 0x0 - LayoutBlockFlow {HR} at (0,264) size 784x2 [border: (1px inset #EEEEEE)] - LayoutBlockFlow {P} at (0,282) size 784x20 + LayoutBlockFlow {HR} at (0,244) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,262) size 784x20 LayoutText {#text} at (0,0) size 584x19 text run at (0,0) width 410: "The first line should break after the letter p, so that the text does not " text run at (410,0) width 174: "extend beyond the cyan box." - LayoutBlockFlow {DIV} at (0,318) size 87x42 [border: (1px solid #00FFFF)] - LayoutInline {SPAN} at (0,0) size 81x39 [border: none (30px solid #C0C0C0)] - LayoutText {#text} at (31,1) size 81x39 - text run at (31,1) width 51: "Loremip" - text run at (1,21) width 24: "sum" + LayoutBlockFlow {DIV} at (0,298) size 87x22 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 105x19 [border: none (30px solid #C0C0C0)] + LayoutText {#text} at (31,1) size 75x19 + text run at (31,1) width 75: "Loremipsum" LayoutText {#text} at (0,0) size 0x0 - LayoutBlockFlow {HR} at (0,368) size 784x2 [border: (1px inset #EEEEEE)] - LayoutBlockFlow {P} at (0,386) size 784x20 + LayoutBlockFlow {HR} at (0,328) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,346) size 784x20 LayoutText {#text} at (0,0) size 239x19 text run at (0,0) width 239: "\x{201C}Dolor\x{201D} should not break into two lines." -layer at (8,430) size 37x22 - LayoutBlockFlow (positioned) {DIV} at (8,430) size 37x22 +layer at (8,390) size 37x22 + LayoutBlockFlow (positioned) {DIV} at (8,390) size 37x22 LayoutBlockFlow {DIV} at (0,0) size 37x22 [border: (1px solid #00FFFF)] LayoutText {#text} at (1,1) size 35x19 text run at (1,1) width 35: "Dolor"
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/international/menulist-width-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/international/menulist-width-rtl-expected.png new file mode 100644 index 0000000..7632ed8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/international/menulist-width-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/international/menulist-width-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/international/menulist-width-rtl-expected.txt new file mode 100644 index 0000000..b60dc65 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win-xp/fast/text/international/menulist-width-rtl-expected.txt
@@ -0,0 +1,17 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x69 + LayoutBlockFlow {HTML} at (0,0) size 800x69 + LayoutBlockFlow {BODY} at (8,8) size 784x53 + LayoutBlockFlow {DIV} at (0,0) size 784x20 + LayoutText {#text} at (0,0) size 587x19 + text run at (0,0) width 587: "The following line and the SELECT element should have same text, and no characters are lacking." + LayoutBlockFlow {DIV} at (0,20) size 784x13 + LayoutText {#text} at (686,0) size 98x13 + text run at (686,0) width 98 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutBlockFlow (anonymous) at (0,33) size 784x20 + LayoutMenuList {SELECT} at (668,0) size 116x20 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] + LayoutBlockFlow (anonymous) at (1,1) size 114x18 + LayoutText (anonymous) at (19,1) size 91x16 + text run at (19,1) width 91 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/mouse-move-on-svg-container-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/mouse-move-on-svg-container-expected.txt index f1d08bb2..c633b9ab 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/mouse-move-on-svg-container-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/mouse-move-on-svg-container-expected.txt
@@ -3,7 +3,7 @@ layer at (0,0) size 800x411 LayoutBlockFlow {html} at (0,0) size 800x411 LayoutBlockFlow {body} at (0,0) size 800x411 - LayoutSVGRoot {svg} at (0,0) size 406x410 + LayoutSVGRoot {svg} at (0,0) size 406x406 LayoutSVGContainer {g} at (303,303) size 100x100 LayoutSVGEllipse {circle} at (303,303) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=350.00] [cy=350.00] [r=50.00] LayoutSVGText {text} at (56,35) size 288x19 contains 1 chunk(s)
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/mouse-move-on-svg-root-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/mouse-move-on-svg-root-expected.txt index b635233..b2701ba 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/mouse-move-on-svg-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/mouse-move-on-svg-root-expected.txt
@@ -3,7 +3,7 @@ layer at (0,0) size 800x411 LayoutBlockFlow {html} at (0,0) size 800x411 LayoutBlockFlow {body} at (0,0) size 800x411 - LayoutSVGRoot {svg} at (0,0) size 406x410 + LayoutSVGRoot {svg} at (0,0) size 406x406 LayoutSVGEllipse {circle} at (150,150) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=197.00] [cy=197.00] [r=50.00] LayoutSVGText {text} at (99,35) size 202x19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 201x19
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt index 80b9a0db..0f3f1b4 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt
@@ -7,7 +7,7 @@ text run at (0,0) width 728: "There should be no red displayed on the screen, and the patterns should not change when the browser window is resized." LayoutBR {br} at (728,0) size 0x19 LayoutBR {br} at (0,20) size 0x19 - LayoutSVGRoot {svg} at (8,47) size 202x307 + LayoutSVGRoot {svg} at (8,48) size 202x302 LayoutSVGContainer {g} at (9,49) size 200x200 LayoutSVGRect {rect} at (9,149) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=100.00] [width=100.00] [height=50.00] LayoutSVGRect {rect} at (109,49) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=100.00] [y=0.00] [width=100.00] [height=50.00] @@ -15,7 +15,7 @@ LayoutSVGRect {rect} at (109,49) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=100.00] [y=0.00] [width=100.00] [height=100.00] LayoutText {#text} at (202,327) size 4x19 text run at (202,327) width 4: " " - LayoutSVGRoot {svg} at (214,47) size 202x307 + LayoutSVGRoot {svg} at (214,48) size 202x302 LayoutSVGText {text} at (5,265) size 77x19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 77x19 chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 11 width 77.00: "+Transforms" @@ -33,7 +33,7 @@ text run at (408,327) width 4: " " LayoutText {#text} at (0,0) size 0x0 layer at (420,48) size 202x302 - LayoutSVGRoot {svg} at (420,47) size 202x307 + LayoutSVGRoot {svg} at (420,48) size 202x302 LayoutSVGText {text} at (5,265) size 162x19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 162x19 chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 24 width 162.00: "+Accelerated Compositing"
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/svg/hixie/mixed/010-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/svg/hixie/mixed/010-expected.txt index efc8b5a5..bf92423 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/svg/hixie/mixed/010-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/svg/hixie/mixed/010-expected.txt
@@ -7,7 +7,7 @@ LayoutText {#text} at (0,0) size 228x19 text run at (0,0) width 228: "There should be a green block below." LayoutBlockFlow (anonymous) at (0,36) size 784x105 - LayoutSVGRoot {svg} at (8,52) size 300x104 + LayoutSVGRoot {svg} at (8,52) size 300x100 LayoutSVGRect {rect} at (8,52) size 300x100 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] LayoutSVGRect {rect} at (8,52) size 300x100 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/add-background-property-on-root-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/add-background-property-on-root-expected.txt index 54a5e69..df1ca09 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/add-background-property-on-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/add-background-property-on-root-expected.txt
@@ -7,7 +7,7 @@ "drawsContent": true, "repaintRects": [ [8, 8, 100, 104], - [8, 8, 100, 104] + [8, 8, 100, 100] ], "paintInvalidationClients": [ "LayoutBlockFlow DIV",
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/change-background-color-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/change-background-color-expected.txt deleted file mode 100644 index 1e7bff9..0000000 --- a/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/change-background-color-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -{ - "bounds": [800, 600], - "children": [ - { - "bounds": [800, 600], - "contentsOpaque": true, - "drawsContent": true, - "repaintRects": [ - [8, 8, 200, 104] - ], - "paintInvalidationClients": [ - "LayoutSVGRoot svg" - ] - } - ] -} -
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/remove-background-property-on-root-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/remove-background-property-on-root-expected.txt index 54a5e69..df1ca09 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/remove-background-property-on-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/svg/repaint/remove-background-property-on-root-expected.txt
@@ -7,7 +7,7 @@ "drawsContent": true, "repaintRects": [ [8, 8, 100, 104], - [8, 8, 100, 104] + [8, 8, 100, 100] ], "paintInvalidationClients": [ "LayoutBlockFlow DIV",
diff --git a/third_party/WebKit/LayoutTests/platform/win-xp/svg/text/small-fonts-in-html5-expected.txt b/third_party/WebKit/LayoutTests/platform/win-xp/svg/text/small-fonts-in-html5-expected.txt index 5cb936d8..1b914136 100644 --- a/third_party/WebKit/LayoutTests/platform/win-xp/svg/text/small-fonts-in-html5-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win-xp/svg/text/small-fonts-in-html5-expected.txt
@@ -7,7 +7,7 @@ LayoutText {#text} at (0,0) size 472x36 text run at (0,0) width 472: "Small fonts in HTML5/inline SVG" LayoutBlockFlow (anonymous) at (0,58.44) size 784x507 - LayoutSVGRoot {svg} at (8,79) size 502x507 + LayoutSVGRoot {svg} at (8,79) size 502x503 LayoutSVGContainer {g} at (159,267) size 94x21 [transform={m=((400.00,0.00)(0.00,400.00)) t=(0.00,0.00)}] LayoutSVGText {text} at (0,0) size 1x1 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 1x1
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/inline/vertical-align-with-fallback-fonts-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/inline/vertical-align-with-fallback-fonts-expected.png new file mode 100644 index 0000000..f4f6570 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/inline/vertical-align-with-fallback-fonts-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/inline/vertical-align-with-fallback-fonts-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/inline/vertical-align-with-fallback-fonts-expected.txt new file mode 100644 index 0000000..d001b7b1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/inline/vertical-align-with-fallback-fonts-expected.txt
@@ -0,0 +1,26 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x208 + LayoutBlockFlow {HTML} at (0,0) size 800x208 + LayoutBlockFlow {BODY} at (8,16) size 784x184 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 362x17 + text run at (0,0) width 362: "Test pass if all lines have superscripts enclosed in a box." + LayoutBlockFlow {DIV} at (0,34) size 784x50 + LayoutText {#text} at (0,-3) size 37x56 + text run at (0,-3) width 37: "A" + LayoutInline {SPAN} at (0,0) size 21x30 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 19x28 + text run at (37,-2) width 19: "A" + LayoutBlockFlow {DIV} at (0,84) size 784x50 + LayoutText {#text} at (0,-3) size 37x56 + text run at (0,-3) width 37: "A" + LayoutInline {SPAN} at (0,0) size 19x30 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 17x28 + text run at (37,-2) width 17: "B" + LayoutBlockFlow {DIV} at (0,134) size 784x50 + LayoutText {#text} at (0,-3) size 37x56 + text run at (0,-3) width 37: "A" + LayoutInline {SPAN} at (0,0) size 28x30 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 26x28 + text run at (37,-2) width 26: "\x{3042}"
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/repaint/selected-replaced-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/repaint/selected-replaced-expected.txt index 948c2b7..0e484c0 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/repaint/selected-replaced-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/repaint/selected-replaced-expected.txt
@@ -6,9 +6,9 @@ "contentsOpaque": true, "drawsContent": true, "repaintRects": [ - [8, 148, 214, 235], + [8, 148, 214, 232], [8, 68, 784, 235], - [8, 68, 214, 235] + [8, 68, 214, 232] ], "paintInvalidationClients": [ "InlineBox",
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/text/basic/015-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/text/basic/015-expected.png index 5e512366..79a6fc5 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/text/basic/015-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/text/basic/015-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/text/basic/015-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/text/basic/015-expected.txt index 8f318d4..31dff7e4 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/text/basic/015-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/text/basic/015-expected.txt
@@ -6,17 +6,17 @@ LayoutBlockFlow {P} at (0,0) size 784x36 LayoutText {#text} at (0,0) size 218x17 text run at (0,0) width 218: "This tests for a regression against " - LayoutInline {I} at (0,0) size 774x35 - LayoutInline {A} at (0,0) size 355x17 [color=#0000EE] - LayoutText {#text} at (217,0) size 355x17 - text run at (217,0) width 355: "http://bugzilla.opendarwin.org/show_bug.cgi?id=6418" - LayoutText {#text} at (571,0) size 774x35 - text run at (571,0) width 5: " " - text run at (575,0) width 199: "Incorrect scrollbar when using" - text run at (0,18) width 283: "overflow:auto and word-wrap:break-word; " - text run at (282,18) width 89: "in some cases" - LayoutText {#text} at (370,18) size 5x17 - text run at (370,18) width 5: "." + LayoutInline {I} at (0,0) size 773x35 + LayoutInline {A} at (0,0) size 354x17 [color=#0000EE] + LayoutText {#text} at (217,0) size 354x17 + text run at (217,0) width 354: "http://bugzilla.opendarwin.org/show_bug.cgi?id=6418" + LayoutText {#text} at (570,0) size 773x35 + text run at (570,0) width 5: " " + text run at (574,0) width 199: "Incorrect scrollbar when using" + text run at (0,18) width 281: "overflow:auto and word-wrap:break-word; " + text run at (280,18) width 89: "in some cases" + LayoutText {#text} at (368,18) size 5x17 + text run at (368,18) width 5: "." LayoutBlockFlow {HR} at (0,52) size 784x2 [border: (1px inset #EEEEEE)] LayoutBlockFlow {P} at (0,70) size 784x18 LayoutText {#text} at (0,0) size 267x17 @@ -34,29 +34,27 @@ LayoutText {#text} at (0,0) size 672x17 text run at (0,0) width 489: "The first line should break after the letter u, so that the gray border does not " text run at (488,0) width 184: "extend beyond the cyan box." - LayoutBlockFlow {DIV} at (0,202) size 87x38 [border: (1px solid #00FFFF)] - LayoutInline {SPAN} at (0,0) size 70x35 [border: none (30px solid #C0C0C0) none] - LayoutText {#text} at (1,1) size 70x35 - text run at (1,1) width 70: "Loremipsu" - text run at (1,19) width 13: "m" + LayoutBlockFlow {DIV} at (0,202) size 87x20 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 112x17 [border: none (30px solid #C0C0C0) none] + LayoutText {#text} at (1,1) size 82x17 + text run at (1,1) width 82: "Loremipsum" LayoutText {#text} at (0,0) size 0x0 - LayoutBlockFlow {HR} at (0,248) size 784x2 [border: (1px inset #EEEEEE)] - LayoutBlockFlow {P} at (0,266) size 784x18 + LayoutBlockFlow {HR} at (0,230) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,248) size 784x18 LayoutText {#text} at (0,0) size 622x17 text run at (0,0) width 439: "The first line should break after the letter p, so that the text does not " text run at (438,0) width 184: "extend beyond the cyan box." - LayoutBlockFlow {DIV} at (0,300) size 87x38 [border: (1px solid #00FFFF)] - LayoutInline {SPAN} at (0,0) size 78x35 [border: none (30px solid #C0C0C0)] - LayoutText {#text} at (31,1) size 78x35 - text run at (31,1) width 48: "Loremi" - text run at (1,19) width 35: "psum" + LayoutBlockFlow {DIV} at (0,282) size 87x20 [border: (1px solid #00FFFF)] + LayoutInline {SPAN} at (0,0) size 112x17 [border: none (30px solid #C0C0C0)] + LayoutText {#text} at (31,1) size 82x17 + text run at (31,1) width 82: "Loremipsum" LayoutText {#text} at (0,0) size 0x0 - LayoutBlockFlow {HR} at (0,346) size 784x2 [border: (1px inset #EEEEEE)] - LayoutBlockFlow {P} at (0,364) size 784x18 + LayoutBlockFlow {HR} at (0,310) size 784x2 [border: (1px inset #EEEEEE)] + LayoutBlockFlow {P} at (0,328) size 784x18 LayoutText {#text} at (0,0) size 258x17 text run at (0,0) width 258: "\x{201C}Dolor\x{201D} should not break into two lines." -layer at (8,406) size 39x20 - LayoutBlockFlow (positioned) {DIV} at (8,406) size 39.33x20 +layer at (8,370) size 39x20 + LayoutBlockFlow (positioned) {DIV} at (8,370) size 39.33x20 LayoutBlockFlow {DIV} at (0,0) size 39.33x20 [border: (1px solid #00FFFF)] LayoutText {#text} at (1,1) size 38x17 text run at (1,1) width 38: "Dolor"
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/text/international/menulist-width-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/text/international/menulist-width-rtl-expected.png new file mode 100644 index 0000000..e3c745d2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/text/international/menulist-width-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/text/international/menulist-width-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/text/international/menulist-width-rtl-expected.txt new file mode 100644 index 0000000..625543af8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/text/international/menulist-width-rtl-expected.txt
@@ -0,0 +1,17 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x69 + LayoutBlockFlow {HTML} at (0,0) size 800x69 + LayoutBlockFlow {BODY} at (8,8) size 784x53 + LayoutBlockFlow {DIV} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 632x17 + text run at (0,0) width 632: "The following line and the SELECT element should have same text, and no characters are lacking." + LayoutBlockFlow {DIV} at (0,18) size 784x16 + LayoutText {#text} at (683,0) size 101x16 + text run at (683,0) width 101 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutBlockFlow (anonymous) at (0,34) size 784x19 + LayoutMenuList {SELECT} at (664,0) size 120x19 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] + LayoutBlockFlow (anonymous) at (1,1) size 118x17 + LayoutText (anonymous) at (19,1) size 95x15 + text run at (19,1) width 95 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/text/justify-ideograph-simple-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/text/justify-ideograph-simple-expected.png index c2001f213..5f386ea0 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/text/justify-ideograph-simple-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/text/justify-ideograph-simple-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/text/justify-ideograph-simple-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/text/justify-ideograph-simple-expected.txt index 069ba45..1fdc9fd3 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/text/justify-ideograph-simple-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/text/justify-ideograph-simple-expected.txt
@@ -16,9 +16,9 @@ text run at (0,30) width 336: "\x{61C9}\x{7528}\x{7A0B}\x{5F0F}\x{5E73}\x{53F0}\x{FF0C}\x{5BA2}\x{6236}\x{4E5F}\x{975E}\x{5E38}\x{559C}\x{611B}\x{958B}\x{767C}\x{4EBA}\x{54E1}\x{6240}\x{5275}\x{4F5C}\x{7684}\x{61C9}\x{7528}\x{7A0B}\x{5F0F}\x{3002}\x{300D}" LayoutBlockFlow {P} at (0,129) size 550x45 LayoutText {#text} at (0,0) size 550x44 - text run at (0,0) width 550: "EA Mobile \x{7684} Worldwide Studios \x{526F}\x{7E3D}\x{88C1} Travis Boatman \x{6307}\x{51FA}\x{FF1A}\x{300C}App Store \x{4E0D}\x{50C5}\x{5FB9}\x{5E95}\x{6539}\x{8B8A}\x{4E86}\x{884C}\x{52D5}\x{904A}\x{6232}\x{7522}\x{696D}" - text run at (0,15) width 550: "\x{7684}\x{751F}\x{614B}\x{FF0C}\x{800C}\x{4E14}\x{9084}\x{5728}\x{6301}\x{7E8C}\x{6F14}\x{9032}\x{3002}\x{6709}\x{4E86}\x{5168}\x{7403} 5 \x{5343}\x{591A}\x{842C}\x{7684} iPhone \x{548C} iPod touch \x{5BA2}\x{6236}\x{70BA}\x{57FA}\x{790E}\x{FF0C}App Store \x{8B93}\x{6211}\x{5011}\x{80FD}" - text run at (0,30) width 262: "\x{5920}\x{958B}\x{767C}\x{53D7}\x{5230}\x{5EE3}\x{5927}\x{7684}\x{5BA2}\x{6236}\x{559C}\x{611B}\x{7684}\x{9AD8}\x{54C1}\x{8CEA} EA \x{904A}\x{6232}\x{3002}\x{300D}" + text run at (0,0) width 550: "EA Mobile \x{7684} Worldwide Studios \x{526F}\x{7E3D}\x{88C1} Travis Boatman \x{6307}\x{51FA}\x{FF1A}\x{300C}App Store \x{4E0D}\x{50C5}\x{5FB9}\x{5E95}\x{6539}\x{8B8A}\x{4E86}\x{884C}\x{52D5}\x{904A}\x{6232}\x{7522}\x{696D}\x{7684}" + text run at (0,15) width 550: "\x{751F}\x{614B}\x{FF0C}\x{800C}\x{4E14}\x{9084}\x{5728}\x{6301}\x{7E8C}\x{6F14}\x{9032}\x{3002}\x{6709}\x{4E86}\x{5168}\x{7403} 5 \x{5343}\x{591A}\x{842C}\x{7684} iPhone \x{548C} iPod touch \x{5BA2}\x{6236}\x{70BA}\x{57FA}\x{790E}\x{FF0C}App Store \x{8B93}\x{6211}\x{5011}\x{80FD}\x{5920}" + text run at (0,30) width 250: "\x{958B}\x{767C}\x{53D7}\x{5230}\x{5EE3}\x{5927}\x{7684}\x{5BA2}\x{6236}\x{559C}\x{611B}\x{7684}\x{9AD8}\x{54C1}\x{8CEA} EA \x{904A}\x{6232}\x{3002}\x{300D}" LayoutBlockFlow {P} at (0,186) size 550x45 LayoutText {#text} at (0,0) size 550x44 text run at (0,0) width 550: "Smule \x{7684}\x{57F7}\x{884C}\x{9577} Jeff Smith \x{8868}\x{793A}\x{FF1A}\x{300C}\x{6211}\x{5011}\x{7684} I Am T-Pain \x{61C9}\x{7528}\x{7A0B}\x{5F0F}\x{53D7}\x{5230}\x{5168}\x{7403}\x{5BA2}\x{6236}\x{7684}\x{71B1}\x{70C8}\x{8FF4}\x{97FF}\x{FF0C}\x{6BCF}\x{65E5}\x{8D85}\x{904E}"
diff --git a/third_party/WebKit/LayoutTests/platform/win/paint/selection/text-selection-newline-br-expected.png b/third_party/WebKit/LayoutTests/platform/win/paint/selection/text-selection-newline-br-expected.png deleted file mode 100644 index b397b03..0000000 --- a/third_party/WebKit/LayoutTests/platform/win/paint/selection/text-selection-newline-br-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/custom/mouse-move-on-svg-container-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/custom/mouse-move-on-svg-container-expected.txt index 029cadf..0049ff8 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/custom/mouse-move-on-svg-container-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/custom/mouse-move-on-svg-container-expected.txt
@@ -3,7 +3,7 @@ layer at (0,0) size 800x410 LayoutBlockFlow {html} at (0,0) size 800x410 LayoutBlockFlow {body} at (0,0) size 800x410 - LayoutSVGRoot {svg} at (0,0) size 406x409 + LayoutSVGRoot {svg} at (0,0) size 406x406 LayoutSVGContainer {g} at (303,303) size 100x100 LayoutSVGEllipse {circle} at (303,303) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=350.00] [cy=350.00] [r=50.00] LayoutSVGText {text} at (44,36) size 312x17 contains 1 chunk(s)
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/custom/mouse-move-on-svg-root-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/custom/mouse-move-on-svg-root-expected.txt index cea70fc..03f153a 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/custom/mouse-move-on-svg-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/custom/mouse-move-on-svg-root-expected.txt
@@ -3,7 +3,7 @@ layer at (0,0) size 800x410 LayoutBlockFlow {html} at (0,0) size 800x410 LayoutBlockFlow {body} at (0,0) size 800x410 - LayoutSVGRoot {svg} at (0,0) size 406x409 + LayoutSVGRoot {svg} at (0,0) size 406x406 LayoutSVGEllipse {circle} at (150,150) size 100x100 [fill={[type=SOLID] [color=#008000]}] [cx=197.00] [cy=197.00] [r=50.00] LayoutSVGText {text} at (90,36) size 220x17 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 219x17
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt index de807f5..5e4d1df 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt
@@ -7,7 +7,7 @@ text run at (0,0) width 773: "There should be no red displayed on the screen, and the patterns should not change when the browser window is resized." LayoutBR {br} at (772,0) size 1x17 LayoutBR {br} at (0,18) size 0x17 - LayoutSVGRoot {svg} at (8,43) size 202x306 + LayoutSVGRoot {svg} at (8,44) size 202x302 LayoutSVGContainer {g} at (9,45) size 200x200 LayoutSVGRect {rect} at (9,145) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=100.00] [width=100.00] [height=50.00] LayoutSVGRect {rect} at (109,45) size 100x50 [fill={[type=SOLID] [color=#FF0000]}] [x=100.00] [y=0.00] [width=100.00] [height=50.00] @@ -15,7 +15,7 @@ LayoutSVGRect {rect} at (109,45) size 100x100 [fill={[type=PATTERN] [id="pattern"]}] [x=100.00] [y=0.00] [width=100.00] [height=100.00] LayoutText {#text} at (202,324) size 4x17 text run at (202,324) width 4: " " - LayoutSVGRoot {svg} at (214,43) size 202x306 + LayoutSVGRoot {svg} at (214,44) size 202x302 LayoutSVGText {text} at (5,266) size 83x17 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 83x17 chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 11 width 82.78: "+Transforms" @@ -33,7 +33,7 @@ text run at (408,324) width 4: " " LayoutText {#text} at (0,0) size 0x0 layer at (420,44) size 202x302 - LayoutSVGRoot {svg} at (420,43) size 202x306 + LayoutSVGRoot {svg} at (420,44) size 202x302 LayoutSVGText {text} at (5,266) size 173x17 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 173x17 chunk 1 text run 1 at (5.00,280.00) startOffset 0 endOffset 24 width 172.09: "+Accelerated Compositing"
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/hixie/mixed/010-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/hixie/mixed/010-expected.txt index a61402b..2af3bbb 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/hixie/mixed/010-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/hixie/mixed/010-expected.txt
@@ -7,7 +7,7 @@ LayoutText {#text} at (0,0) size 241x17 text run at (0,0) width 241: "There should be a green block below." LayoutBlockFlow (anonymous) at (0,34) size 784x104 - LayoutSVGRoot {svg} at (8,50) size 300x103 + LayoutSVGRoot {svg} at (8,50) size 300x100 LayoutSVGRect {rect} at (8,50) size 300x100 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] LayoutSVGRect {rect} at (8,50) size 300x100 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=300.00] [height=100.00] LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/repaint/add-background-property-on-root-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/repaint/add-background-property-on-root-expected.txt index 495656f0..c797995 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/repaint/add-background-property-on-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/repaint/add-background-property-on-root-expected.txt
@@ -7,7 +7,7 @@ "drawsContent": true, "repaintRects": [ [8, 8, 100, 103], - [8, 8, 100, 103] + [8, 8, 100, 100] ], "paintInvalidationClients": [ "LayoutBlockFlow DIV",
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/repaint/remove-background-property-on-root-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/repaint/remove-background-property-on-root-expected.txt index 495656f0..c797995 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/repaint/remove-background-property-on-root-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/repaint/remove-background-property-on-root-expected.txt
@@ -7,7 +7,7 @@ "drawsContent": true, "repaintRects": [ [8, 8, 100, 103], - [8, 8, 100, 103] + [8, 8, 100, 100] ], "paintInvalidationClients": [ "LayoutBlockFlow DIV",
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/text/small-fonts-in-html5-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/text/small-fonts-in-html5-expected.txt index c08b56a..e932f11d 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/text/small-fonts-in-html5-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/text/small-fonts-in-html5-expected.txt
@@ -7,7 +7,7 @@ LayoutText {#text} at (0,0) size 470x36 text run at (0,0) width 470: "Small fonts in HTML5/inline SVG" LayoutBlockFlow (anonymous) at (0,58.44) size 784x506 - LayoutSVGRoot {svg} at (8,79) size 502x506 + LayoutSVGRoot {svg} at (8,79) size 502x503 LayoutSVGContainer {g} at (159,267) size 94x21 [transform={m=((400.00,0.00)(0.00,400.00)) t=(0.00,0.00)}] LayoutSVGText {text} at (0,0) size 1x1 contains 1 chunk(s) LayoutSVGInlineText {#text} at (0,0) size 1x1
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/spv2/paint/selection/text-selection-newline-br-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/spv2/paint/selection/text-selection-newline-br-expected.png deleted file mode 100644 index b397b03..0000000 --- a/third_party/WebKit/LayoutTests/platform/win/virtual/spv2/paint/selection/text-selection-newline-br-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win7/fast/inline/vertical-align-with-fallback-fonts-expected.png b/third_party/WebKit/LayoutTests/platform/win7/fast/inline/vertical-align-with-fallback-fonts-expected.png new file mode 100644 index 0000000..00dfb980 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win7/fast/inline/vertical-align-with-fallback-fonts-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win7/fast/inline/vertical-align-with-fallback-fonts-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/fast/inline/vertical-align-with-fallback-fonts-expected.txt new file mode 100644 index 0000000..2dec5e71 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win7/fast/inline/vertical-align-with-fallback-fonts-expected.txt
@@ -0,0 +1,26 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x208 + LayoutBlockFlow {HTML} at (0,0) size 800x208 + LayoutBlockFlow {BODY} at (8,16) size 784x184 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 362x17 + text run at (0,0) width 362: "Test pass if all lines have superscripts enclosed in a box." + LayoutBlockFlow {DIV} at (0,34) size 784x50 + LayoutText {#text} at (0,-3) size 37x56 + text run at (0,-3) width 37: "A" + LayoutInline {SPAN} at (0,0) size 21x30 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 19x28 + text run at (37,-2) width 19: "A" + LayoutBlockFlow {DIV} at (0,84) size 784x50 + LayoutText {#text} at (0,-3) size 37x56 + text run at (0,-3) width 37: "A" + LayoutInline {SPAN} at (0,0) size 19x30 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 17x28 + text run at (37,-2) width 17: "B" + LayoutBlockFlow {DIV} at (0,134) size 784x50 + LayoutText {#text} at (0,-3) size 37x56 + text run at (0,-3) width 37: "A" + LayoutInline {SPAN} at (0,0) size 26x30 [border: (1px solid #000000)] + LayoutText {#text} at (37,-2) size 24x28 + text run at (37,-2) width 24: "\x{3042}"
diff --git a/third_party/WebKit/LayoutTests/platform/win7/fast/text/international/menulist-width-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/win7/fast/text/international/menulist-width-rtl-expected.png new file mode 100644 index 0000000..8111f13 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win7/fast/text/international/menulist-width-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win7/fast/text/international/menulist-width-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/fast/text/international/menulist-width-rtl-expected.txt new file mode 100644 index 0000000..fd78fd6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win7/fast/text/international/menulist-width-rtl-expected.txt
@@ -0,0 +1,17 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x69 + LayoutBlockFlow {HTML} at (0,0) size 800x69 + LayoutBlockFlow {BODY} at (8,8) size 784x53 + LayoutBlockFlow {DIV} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 632x17 + text run at (0,0) width 632: "The following line and the SELECT element should have same text, and no characters are lacking." + LayoutBlockFlow {DIV} at (0,18) size 784x16 + LayoutText {#text} at (697,0) size 87x16 + text run at (697,0) width 87 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutBlockFlow (anonymous) at (0,34) size 784x19 + LayoutMenuList {SELECT} at (664,0) size 120x19 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] + LayoutBlockFlow (anonymous) at (1,1) size 118x17 + LayoutText (anonymous) at (19,1) size 95x15 + text run at (19,1) width 95 RTL: "\x{627}\x{644}\x{627}\x{642}\x{62A}\x{631}\x{627}\x{62D}\x{627}\x{62A} / \x{627}\x{644}\x{634}\x{643}\x{627}\x{648}\x{64A}" + LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/repaint/change-background-color-expected.txt b/third_party/WebKit/LayoutTests/svg/repaint/change-background-color-expected.txt similarity index 90% rename from third_party/WebKit/LayoutTests/platform/win/svg/repaint/change-background-color-expected.txt rename to third_party/WebKit/LayoutTests/svg/repaint/change-background-color-expected.txt index c6762ac..8dedcb9 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/repaint/change-background-color-expected.txt +++ b/third_party/WebKit/LayoutTests/svg/repaint/change-background-color-expected.txt
@@ -6,7 +6,7 @@ "contentsOpaque": true, "drawsContent": true, "repaintRects": [ - [8, 8, 200, 103] + [8, 8, 200, 100] ], "paintInvalidationClients": [ "LayoutSVGRoot svg"
diff --git a/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt index 08251431..ec715f7 100644 --- a/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt
@@ -28,6 +28,7 @@ property addEventListener property animate property appendChild + property attachShadow property attributes property baseURI property blur @@ -1115,6 +1116,7 @@ property addEventListener property animate property appendChild + property attachShadow property attributes property baseURI property blur
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt index 90cc7c7..e91e073a5 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -1247,6 +1247,7 @@ getter shadowRoot getter tagName method animate + method attachShadow method closest method constructor method createShadowRoot
diff --git a/third_party/WebKit/Source/core/animation/AnimationTimeline.cpp b/third_party/WebKit/Source/core/animation/AnimationTimeline.cpp index fe82bc2..08004af 100644 --- a/third_party/WebKit/Source/core/animation/AnimationTimeline.cpp +++ b/third_party/WebKit/Source/core/animation/AnimationTimeline.cpp
@@ -132,8 +132,6 @@ m_lastCurrentTimeInternal = currentTimeInternal(); - m_timing->cancelWake(); - HeapVector<Member<Animation>> animations; animations.reserveInitialCapacity(m_animationsNeedingUpdate.size()); for (Animation* animation : m_animationsNeedingUpdate)
diff --git a/third_party/WebKit/Source/core/animation/AnimationTimelineTest.cpp b/third_party/WebKit/Source/core/animation/AnimationTimelineTest.cpp index b4546ce..03cb2ee7 100644 --- a/third_party/WebKit/Source/core/animation/AnimationTimelineTest.cpp +++ b/third_party/WebKit/Source/core/animation/AnimationTimelineTest.cpp
@@ -64,20 +64,6 @@ EXPECT_CALL(*this, cancelWake()); } - void expectNextFrameAction() - { - ::testing::Sequence sequence; - EXPECT_CALL(*this, cancelWake()).InSequence(sequence); - EXPECT_CALL(*this, serviceOnNextFrame()).InSequence(sequence); - } - - void expectDelayedAction(double when) - { - ::testing::Sequence sequence; - EXPECT_CALL(*this, cancelWake()).InSequence(sequence); - EXPECT_CALL(*this, wakeAfter(when)).InSequence(sequence); - } - DEFINE_INLINE_TRACE() { AnimationTimeline::PlatformTiming::trace(visitor); @@ -366,16 +352,16 @@ timeline->play(keyframeEffect); // TODO: Put the animation startTime in the future when we add the capability to change animation startTime - platformTiming->expectDelayedAction(timing.startDelay - minimumDelay()); + EXPECT_CALL(*platformTiming, wakeAfter(timing.startDelay - minimumDelay())); updateClockAndService(0); - platformTiming->expectDelayedAction(timing.startDelay - minimumDelay() - 1.5); + EXPECT_CALL(*platformTiming, wakeAfter(timing.startDelay - minimumDelay() - 1.5)); updateClockAndService(1.5); EXPECT_CALL(*platformTiming, serviceOnNextFrame()); wake(); - platformTiming->expectNextFrameAction(); + EXPECT_CALL(*platformTiming, serviceOnNextFrame()); updateClockAndService(4.98); }
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h b/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h index a45b0a9..5131ac4f 100644 --- a/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h +++ b/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h
@@ -36,8 +36,9 @@ { } - NewAnimation(AtomicString name, InertEffect* effect, Timing timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) + NewAnimation(AtomicString name, size_t nameIndex, InertEffect* effect, Timing timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) : name(name) + , nameIndex(nameIndex) , effect(effect) , timing(timing) , styleRule(styleRule) @@ -52,6 +53,7 @@ } AtomicString name; + size_t nameIndex; Member<InertEffect> effect; Timing timing; RefPtrWillBeMember<StyleRuleKeyframes> styleRule; @@ -66,8 +68,8 @@ { } - UpdatedAnimation(AtomicString name, Animation* animation, InertEffect* effect, Timing specifiedTiming, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) - : name(name) + UpdatedAnimation(size_t index, Animation* animation, InertEffect* effect, Timing specifiedTiming, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) + : index(index) , animation(animation) , effect(effect) , specifiedTiming(specifiedTiming) @@ -83,7 +85,7 @@ visitor->trace(styleRule); } - AtomicString name; + size_t index; Member<Animation> animation; Member<InertEffect> effect; Timing specifiedTiming; @@ -110,8 +112,8 @@ m_newTransitions = update.newTransitions(); m_activeInterpolationsForAnimations = update.activeInterpolationsForAnimations(); m_activeInterpolationsForTransitions = update.activeInterpolationsForTransitions(); - m_cancelledAnimationNames = update.cancelledAnimationNames(); - m_animationsWithPauseToggled = update.animationsWithPauseToggled(); + m_cancelledAnimationIndices = update.cancelledAnimationIndices(); + m_animationIndicesWithPauseToggled = update.animationIndicesWithPauseToggled(); m_cancelledTransitions = update.cancelledTransitions(); m_finishedTransitions = update.finishedTransitions(); m_updatedCompositorKeyframes = update.updatedCompositorKeyframes(); @@ -124,33 +126,33 @@ m_newTransitions.clear(); m_activeInterpolationsForAnimations.clear(); m_activeInterpolationsForTransitions.clear(); - m_cancelledAnimationNames.clear(); - m_animationsWithPauseToggled.clear(); + m_cancelledAnimationIndices.clear(); + m_animationIndicesWithPauseToggled.clear(); m_cancelledTransitions.clear(); m_finishedTransitions.clear(); m_updatedCompositorKeyframes.clear(); } - void startAnimation(const AtomicString& animationName, InertEffect* effect, const Timing& timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) + void startAnimation(const AtomicString& animationName, size_t nameIndex, InertEffect* effect, const Timing& timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) { effect->setName(animationName); - m_newAnimations.append(NewAnimation(animationName, effect, timing, styleRule)); + m_newAnimations.append(NewAnimation(animationName, nameIndex, effect, timing, styleRule)); } // Returns whether animation has been suppressed and should be filtered during style application. bool isSuppressedAnimation(const Animation* animation) const { return m_suppressedAnimations.contains(animation); } - void cancelAnimation(const AtomicString& name, Animation& animation) + void cancelAnimation(size_t index, const Animation& animation) { - m_cancelledAnimationNames.append(name); + m_cancelledAnimationIndices.append(index); m_suppressedAnimations.add(&animation); } - void toggleAnimationPaused(const AtomicString& name) + void toggleAnimationIndexPaused(size_t index) { - m_animationsWithPauseToggled.append(name); + m_animationIndicesWithPauseToggled.append(index); } - void updateAnimation(const AtomicString& name, Animation* animation, InertEffect* effect, const Timing& specifiedTiming, + void updateAnimation(size_t index, Animation* animation, InertEffect* effect, const Timing& specifiedTiming, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) { - m_animationsWithUpdates.append(UpdatedAnimation(name, animation, effect, specifiedTiming, styleRule)); + m_animationsWithUpdates.append(UpdatedAnimation(index, animation, effect, specifiedTiming, styleRule)); m_suppressedAnimations.add(animation); } void updateCompositorKeyframes(Animation* animation) @@ -173,9 +175,9 @@ void finishTransition(CSSPropertyID id) { m_finishedTransitions.add(id); } const HeapVector<NewAnimation>& newAnimations() const { return m_newAnimations; } - const Vector<AtomicString>& cancelledAnimationNames() const { return m_cancelledAnimationNames; } + const Vector<size_t>& cancelledAnimationIndices() const { return m_cancelledAnimationIndices; } const HeapHashSet<Member<const Animation>>& suppressedAnimations() const { return m_suppressedAnimations; } - const Vector<AtomicString>& animationsWithPauseToggled() const { return m_animationsWithPauseToggled; } + const Vector<size_t>& animationIndicesWithPauseToggled() const { return m_animationIndicesWithPauseToggled; } const HeapVector<UpdatedAnimation>& animationsWithUpdates() const { return m_animationsWithUpdates; } const HeapVector<Member<Animation>>& updatedCompositorKeyframes() const { return m_updatedCompositorKeyframes; } @@ -206,9 +208,9 @@ bool isEmpty() const { return m_newAnimations.isEmpty() - && m_cancelledAnimationNames.isEmpty() + && m_cancelledAnimationIndices.isEmpty() && m_suppressedAnimations.isEmpty() - && m_animationsWithPauseToggled.isEmpty() + && m_animationIndicesWithPauseToggled.isEmpty() && m_animationsWithUpdates.isEmpty() && m_newTransitions.isEmpty() && m_cancelledTransitions.isEmpty() @@ -233,9 +235,9 @@ // with the same name, due to the way in which we split up animations with // incomplete keyframes. HeapVector<NewAnimation> m_newAnimations; - Vector<AtomicString> m_cancelledAnimationNames; + Vector<size_t> m_cancelledAnimationIndices; HeapHashSet<Member<const Animation>> m_suppressedAnimations; - Vector<AtomicString> m_animationsWithPauseToggled; + Vector<size_t> m_animationIndicesWithPauseToggled; HeapVector<UpdatedAnimation> m_animationsWithUpdates; HeapVector<Member<Animation>> m_updatedCompositorKeyframes;
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp b/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp index 13865e9..4070218f 100644 --- a/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp +++ b/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
@@ -191,8 +191,8 @@ bool CSSAnimations::isAnimationForInspector(const Animation& animation) { - for (const auto& it : m_animations) { - if (it.value->animation->sequenceNumber() == animation.sequenceNumber()) + for (const auto& runningAnimation : m_runningAnimations) { + if (runningAnimation->animation->sequenceNumber() == animation.sequenceNumber()) return true; } return false; @@ -232,7 +232,7 @@ return; CSSAnimations& cssAnimations = elementAnimations->cssAnimations(); - for (auto& runningAnimation : cssAnimations.m_animations.values()) { + for (auto& runningAnimation : cssAnimations.m_runningAnimations) { Animation& animation = *runningAnimation->animation; if (animation.effect() && animation.effect()->isKeyframeEffect()) { EffectModel* model = toKeyframeEffect(animation.effect())->model(); @@ -276,18 +276,24 @@ const CSSAnimations* cssAnimations = elementAnimations ? &elementAnimations->cssAnimations() : nullptr; const Element* elementForScoping = animatingElement ? animatingElement : &element; - HashSet<AtomicString> inactive; - if (cssAnimations) { - for (const auto& entry : cssAnimations->m_animations) - inactive.add(entry.key); - } + Vector<bool> cancelRunningAnimationFlags(cssAnimations ? cssAnimations->m_runningAnimations.size() : 0); + for (bool& flag : cancelRunningAnimationFlags) + flag = true; - if (style.display() != NONE) { - for (size_t i = 0; animationData && i < animationData->nameList().size(); ++i) { - AtomicString animationName(animationData->nameList()[i]); - if (animationName == CSSAnimationData::initialName()) + if (animationData && style.display() != NONE) { + const Vector<AtomicString>& nameList = animationData->nameList(); + for (size_t i = 0; i < nameList.size(); ++i) { + AtomicString name = nameList[i]; + if (name == CSSAnimationData::initialName()) continue; + // Find n where this is the nth occurence of this animation name. + size_t nameIndex = 0; + for (size_t j = 0; j < i; j++) { + if (nameList[j] == name) + nameIndex++; + } + const bool isPaused = CSSTimingData::getRepeated(animationData->playStateList(), i) == AnimPlayStatePaused; Timing timing = animationData->convertToTiming(i); @@ -295,45 +301,54 @@ RefPtr<TimingFunction> keyframeTimingFunction = timing.timingFunction; timing.timingFunction = Timing::defaults().timingFunction; - RefPtrWillBeRawPtr<StyleRuleKeyframes> keyframesRule = resolver->findKeyframesRule(elementForScoping, animationName); + RefPtrWillBeRawPtr<StyleRuleKeyframes> keyframesRule = resolver->findKeyframesRule(elementForScoping, name); if (!keyframesRule) continue; // Cancel the animation if there's no style rule for it. + const RunningAnimation* existingAnimation = nullptr; + size_t existingAnimationIndex = 0; + if (cssAnimations) { - AnimationMap::const_iterator existing(cssAnimations->m_animations.find(animationName)); - if (existing != cssAnimations->m_animations.end()) { - inactive.remove(animationName); - - const RunningAnimation* runningAnimation = existing->value.get(); - Animation* animation = runningAnimation->animation.get(); - - if (keyframesRule != runningAnimation->styleRule || keyframesRule->version() != runningAnimation->styleRuleVersion || runningAnimation->specifiedTiming != specifiedTiming) { - ASSERT(!isAnimationStyleChange); - update.updateAnimation(animationName, animation, InertEffect::create( - createKeyframeEffectModel(resolver, animatingElement, element, &style, parentStyle, animationName, keyframeTimingFunction.get(), i), - timing, isPaused, animation->unlimitedCurrentTimeInternal()), specifiedTiming, keyframesRule); + for (size_t i = 0; i < cssAnimations->m_runningAnimations.size(); i++) { + const RunningAnimation& runningAnimation = *cssAnimations->m_runningAnimations[i]; + if (runningAnimation.name == name && runningAnimation.nameIndex == nameIndex) { + existingAnimation = &runningAnimation; + existingAnimationIndex = i; + break; } - - if (isPaused != animation->paused()) { - ASSERT(!isAnimationStyleChange); - update.toggleAnimationPaused(animationName); - } - - continue; } } - ASSERT(!isAnimationStyleChange); - update.startAnimation(animationName, InertEffect::create( - createKeyframeEffectModel(resolver, animatingElement, element, &style, parentStyle, animationName, keyframeTimingFunction.get(), i), - timing, isPaused, 0), specifiedTiming, keyframesRule); + if (existingAnimation) { + cancelRunningAnimationFlags[existingAnimationIndex] = false; + + Animation* animation = existingAnimation->animation.get(); + + if (keyframesRule != existingAnimation->styleRule || keyframesRule->version() != existingAnimation->styleRuleVersion || existingAnimation->specifiedTiming != specifiedTiming) { + ASSERT(!isAnimationStyleChange); + update.updateAnimation(existingAnimationIndex, animation, InertEffect::create( + createKeyframeEffectModel(resolver, animatingElement, element, &style, parentStyle, name, keyframeTimingFunction.get(), i), + timing, isPaused, animation->unlimitedCurrentTimeInternal()), specifiedTiming, keyframesRule); + } + + if (isPaused != animation->paused()) { + ASSERT(!isAnimationStyleChange); + update.toggleAnimationIndexPaused(existingAnimationIndex); + } + } else { + ASSERT(!isAnimationStyleChange); + update.startAnimation(name, nameIndex, InertEffect::create( + createKeyframeEffectModel(resolver, animatingElement, element, &style, parentStyle, name, keyframeTimingFunction.get(), i), + timing, isPaused, 0), specifiedTiming, keyframesRule); + } } } - ASSERT(inactive.isEmpty() || cssAnimations); - for (const AtomicString& animationName : inactive) { - ASSERT(!isAnimationStyleChange); - update.cancelAnimation(animationName, *cssAnimations->m_animations.get(animationName)->animation); + for (size_t i = 0; i < cancelRunningAnimationFlags.size(); i++) { + if (cancelRunningAnimationFlags[i]) { + ASSERT(cssAnimations && !isAnimationStyleChange); + update.cancelAnimation(i, *cssAnimations->m_runningAnimations[i]->animation); + } } } @@ -350,20 +365,23 @@ // https://code.google.com/p/chromium/issues/detail?id=339847 DisableCompositingQueryAsserts disabler; - for (const AtomicString& animationName : m_pendingUpdate.cancelledAnimationNames()) { - Animation* animation = m_animations.take(animationName)->animation; - animation->cancel(); - animation->update(TimingUpdateOnDemand); + const Vector<size_t>& cancelledIndices = m_pendingUpdate.cancelledAnimationIndices(); + for (size_t i = cancelledIndices.size(); i-- > 0;) { + ASSERT(i == cancelledIndices.size() - 1 || cancelledIndices[i] < cancelledIndices[i + 1]); + Animation& animation = *m_runningAnimations[cancelledIndices[i]]->animation; + animation.cancel(); + animation.update(TimingUpdateOnDemand); + m_runningAnimations.remove(cancelledIndices[i]); } - for (const AtomicString& animationName : m_pendingUpdate.animationsWithPauseToggled()) { - Animation* animation = m_animations.get(animationName)->animation.get(); - if (animation->paused()) - animation->unpause(); + for (size_t pausedIndex : m_pendingUpdate.animationIndicesWithPauseToggled()) { + Animation& animation = *m_runningAnimations[pausedIndex]->animation; + if (animation.paused()) + animation.unpause(); else - animation->pause(); - if (animation->outdated()) - animation->update(TimingUpdateOnDemand); + animation.pause(); + if (animation.outdated()) + animation.update(TimingUpdateOnDemand); } for (const auto& animation : m_pendingUpdate.updatedCompositorKeyframes()) @@ -375,7 +393,7 @@ effect->setModel(entry.effect->model()); effect->updateSpecifiedTiming(entry.effect->specifiedTiming()); - m_animations.find(entry.name)->value->update(entry); + m_runningAnimations[entry.index]->update(entry); } for (const auto& entry : m_pendingUpdate.newAnimations()) { @@ -388,7 +406,7 @@ animation->pause(); animation->update(TimingUpdateOnDemand); - m_animations.set(entry.name, new RunningAnimation(animation, entry)); + m_runningAnimations.append(new RunningAnimation(animation, entry)); } // Transitions that are run on the compositor only update main-thread state @@ -613,9 +631,9 @@ void CSSAnimations::cancel() { - for (const auto& entry : m_animations) { - entry.value->animation->cancel(); - entry.value->animation->update(TimingUpdateOnDemand); + for (const auto& runningAnimation : m_runningAnimations) { + runningAnimation->animation->cancel(); + runningAnimation->animation->update(TimingUpdateOnDemand); } for (const auto& entry : m_transitions) { @@ -623,7 +641,7 @@ entry.value.animation->update(TimingUpdateOnDemand); } - m_animations.clear(); + m_runningAnimations.clear(); m_transitions.clear(); clearPendingUpdate(); } @@ -818,7 +836,7 @@ { visitor->trace(m_transitions); visitor->trace(m_pendingUpdate); - visitor->trace(m_animations); + visitor->trace(m_runningAnimations); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimations.h b/third_party/WebKit/Source/core/animation/css/CSSAnimations.h index b28a7e1..70437b75 100644 --- a/third_party/WebKit/Source/core/animation/css/CSSAnimations.h +++ b/third_party/WebKit/Source/core/animation/css/CSSAnimations.h
@@ -73,7 +73,7 @@ m_pendingUpdate.clear(); } void maybeApplyPendingUpdate(Element*); - bool isEmpty() const { return m_animations.isEmpty() && m_transitions.isEmpty() && m_pendingUpdate.isEmpty(); } + bool isEmpty() const { return m_runningAnimations.isEmpty() && m_transitions.isEmpty() && m_pendingUpdate.isEmpty(); } void cancel(); DECLARE_TRACE(); @@ -83,6 +83,8 @@ public: RunningAnimation(Animation* animation, CSSAnimationUpdate::NewAnimation newAnimation) : animation(animation) + , name(newAnimation.name) + , nameIndex(newAnimation.nameIndex) , specifiedTiming(newAnimation.timing) , styleRule(newAnimation.styleRule) , styleRuleVersion(newAnimation.styleRuleVersion) @@ -91,6 +93,7 @@ void update(CSSAnimationUpdate::UpdatedAnimation update) { + ASSERT(update.animation == animation); styleRule = update.styleRule; styleRuleVersion = update.styleRuleVersion; specifiedTiming = update.specifiedTiming; @@ -103,6 +106,8 @@ } Member<Animation> animation; + AtomicString name; + size_t nameIndex; Timing specifiedTiming; RefPtrWillBeMember<StyleRuleKeyframes> styleRule; unsigned styleRuleVersion; @@ -121,8 +126,7 @@ const AnimatableValue* to; }; - using AnimationMap = HeapHashMap<AtomicString, Member<RunningAnimation>>; - AnimationMap m_animations; + HeapVector<Member<RunningAnimation>> m_runningAnimations; using TransitionMap = HeapHashMap<CSSPropertyID, RunningTransition>; TransitionMap m_transitions;
diff --git a/third_party/WebKit/Source/core/core.gypi b/third_party/WebKit/Source/core/core.gypi index d9f411d5..5baa046 100644 --- a/third_party/WebKit/Source/core/core.gypi +++ b/third_party/WebKit/Source/core/core.gypi
@@ -1973,6 +1973,7 @@ 'paint/ObjectPaintProperties.h', 'paint/ObjectPainter.cpp', 'paint/ObjectPainter.h', + 'paint/PaintInfo.cpp', 'paint/PaintInfo.h', 'paint/PaintLayer.cpp', 'paint/PaintLayerClipper.cpp', @@ -3903,6 +3904,7 @@ 'paint/NinePieceImageGridTest.cpp', 'paint/PaintControllerPaintTest.cpp', 'paint/PaintControllerPaintTest.h', + 'paint/PaintInfoTest.cpp', 'paint/PaintLayerPainterTest.cpp', 'paint/TableCellPainterTest.cpp', 'paint/TextPainterTest.cpp',
diff --git a/third_party/WebKit/Source/core/dom/Element.cpp b/third_party/WebKit/Source/core/dom/Element.cpp index 68af23e..271ecb12 100644 --- a/third_party/WebKit/Source/core/dom/Element.cpp +++ b/third_party/WebKit/Source/core/dom/Element.cpp
@@ -153,6 +153,8 @@ using namespace HTMLNames; using namespace XMLNames; +enum class ClassStringContent { Empty, WhiteSpaceOnly, HasClasses }; + PassRefPtrWillBeRawPtr<Element> Element::create(const QualifiedName& tagName, Document* document) { return adoptRefWillBeNoop(new Element(tagName, document, CreateElement)); @@ -1229,7 +1231,7 @@ } template <typename CharacterType> -static inline bool classStringHasClassName(const CharacterType* characters, unsigned length) +static inline ClassStringContent classStringHasClassName(const CharacterType* characters, unsigned length) { ASSERT(length > 0); @@ -1240,15 +1242,20 @@ ++i; } while (i < length); - return i < length; + if (i == length && length == 1) + return ClassStringContent::Empty; + if (i == length && length > 1) + return ClassStringContent::WhiteSpaceOnly; + + return ClassStringContent::HasClasses; } -static inline bool classStringHasClassName(const AtomicString& newClassString) +static inline ClassStringContent classStringHasClassName(const AtomicString& newClassString) { unsigned length = newClassString.length(); if (!length) - return false; + return ClassStringContent::Empty; if (newClassString.is8Bit()) return classStringHasClassName(newClassString.characters8(), length); @@ -1261,8 +1268,9 @@ bool testShouldInvalidateStyle = inActiveDocument() && styleResolver && styleChangeType() < SubtreeStyleChange; ASSERT(elementData()); - if (classStringHasClassName(newClassString)) { - const bool shouldFoldCase = document().inQuirksMode(); + ClassStringContent classStringContentType = classStringHasClassName(newClassString); + const bool shouldFoldCase = document().inQuirksMode(); + if (classStringContentType == ClassStringContent::HasClasses) { const SpaceSplitString oldClasses = elementData()->classNames(); elementData()->setClass(newClassString, shouldFoldCase); const SpaceSplitString& newClasses = elementData()->classNames(); @@ -1272,7 +1280,10 @@ const SpaceSplitString& oldClasses = elementData()->classNames(); if (testShouldInvalidateStyle) document().styleEngine().classChangedForElement(oldClasses, *this); - elementData()->clearClass(); + if (classStringContentType == ClassStringContent::WhiteSpaceOnly) + elementData()->setClass(newClassString, shouldFoldCase); + else + elementData()->clearClass(); } if (hasRareData()) @@ -1297,7 +1308,7 @@ if (name == HTMLNames::classAttr) { const AtomicString& newClassString = newValue; - if (classStringHasClassName(newClassString)) { + if (classStringHasClassName(newClassString) == ClassStringContent::HasClasses) { const SpaceSplitString& oldClasses = elementData()->classNames(); const SpaceSplitString newClasses(newClassString, document().inQuirksMode() ? SpaceSplitString::ShouldFoldCase : SpaceSplitString::ShouldNotFoldCase); if (featureSet.checkSelectorsForClassChange(oldClasses, newClasses)) @@ -1915,22 +1926,21 @@ exceptionState.throwDOMException(InvalidStateError, "Shadow root cannot be created on a host which already hosts this type of shadow tree."); return nullptr; } - return createShadowRootInternal(ShadowRootType::OpenByDefault, exceptionState); + return createShadowRootInternal(ShadowRootType::V0, exceptionState); } -PassRefPtrWillBeRawPtr<ShadowRoot> Element::createShadowRoot(const ScriptState* scriptState, const ShadowRootInit& shadowRootInitDict, ExceptionState& exceptionState) +PassRefPtrWillBeRawPtr<ShadowRoot> Element::attachShadow(const ScriptState* scriptState, const ShadowRootInit& shadowRootInitDict, ExceptionState& exceptionState) { ASSERT(RuntimeEnabledFeatures::shadowDOMV1Enabled()); - UseCounter::count(document(), UseCounter::ElementCreateShadowRootWithParameter); - OriginsUsingFeatures::countMainWorldOnly(scriptState, document(), OriginsUsingFeatures::Feature::ElementCreateShadowRoot); + OriginsUsingFeatures::countMainWorldOnly(scriptState, document(), OriginsUsingFeatures::Feature::ElementAttachShadow); if (shadowRootInitDict.hasMode() && shadowRoot()) { exceptionState.throwDOMException(InvalidStateError, "Shadow root cannot be created on a host which already hosts a shadow tree."); return nullptr; } - ShadowRootType type = ShadowRootType::OpenByDefault; + ShadowRootType type = ShadowRootType::V0; if (shadowRootInitDict.hasMode()) type = shadowRootInitDict.mode() == "open" ? ShadowRootType::Open : ShadowRootType::Closed; @@ -1939,9 +1949,9 @@ exceptionState.throwDOMException(NotSupportedError, "Closed shadow root is not supported yet."); return nullptr; } - UseCounter::count(document(), UseCounter::ElementCreateShadowRootClosed); + UseCounter::count(document(), UseCounter::ElementAttachShadowClosed); } else if (type == ShadowRootType::Open) { - UseCounter::count(document(), UseCounter::ElementCreateShadowRootOpen); + UseCounter::count(document(), UseCounter::ElementAttachShadowOpen); } RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = createShadowRootInternal(type, exceptionState); @@ -1983,7 +1993,7 @@ ShadowRoot* root = shadowRoot(); if (!root) return nullptr; - return root->type() == ShadowRootType::OpenByDefault || root->type() == ShadowRootType::Open ? root : nullptr; + return root->type() == ShadowRootType::V0 || root->type() == ShadowRootType::Open ? root : nullptr; } ShadowRoot* Element::closedShadowRoot() const @@ -3550,11 +3560,6 @@ return false; if (hasAnimations()) return false; - // Turn off style sharing for elements that can gain layers for reasons outside of the style system. - // See comments in LayoutObject::setStyle(). - // FIXME: Why does gaining a layer from outside the style system require disabling sharing? - if (isHTMLFrameElementBase(*this) || isHTMLPlugInElement(*this) || isHTMLCanvasElement(*this)) - return false; if (Fullscreen::isActiveFullScreenElement(*this)) return false; return true;
diff --git a/third_party/WebKit/Source/core/dom/Element.h b/third_party/WebKit/Source/core/dom/Element.h index 61a4cc3..213c3ae 100644 --- a/third_party/WebKit/Source/core/dom/Element.h +++ b/third_party/WebKit/Source/core/dom/Element.h
@@ -329,7 +329,7 @@ // shadow roots is prohibited in any combination and throws an exception. Multiple shadow roots // are allowed only when createShadowRoot() is used without any parameters from JavaScript. PassRefPtrWillBeRawPtr<ShadowRoot> createShadowRoot(const ScriptState*, ExceptionState&); - PassRefPtrWillBeRawPtr<ShadowRoot> createShadowRoot(const ScriptState*, const ShadowRootInit&, ExceptionState&); + PassRefPtrWillBeRawPtr<ShadowRoot> attachShadow(const ScriptState*, const ShadowRootInit&, ExceptionState&); PassRefPtrWillBeRawPtr<ShadowRoot> createShadowRootInternal(ShadowRootType, ExceptionState&); ShadowRoot* openShadowRoot() const;
diff --git a/third_party/WebKit/Source/core/dom/Element.idl b/third_party/WebKit/Source/core/dom/Element.idl index f83577e..f2f6cd531 100644 --- a/third_party/WebKit/Source/core/dom/Element.idl +++ b/third_party/WebKit/Source/core/dom/Element.idl
@@ -70,7 +70,7 @@ // Shadow DOM // http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-element-interface [RaisesException, CallWith=ScriptState, MeasureAs=ElementCreateShadowRoot] ShadowRoot createShadowRoot(); - [RuntimeEnabled=ShadowDOMV1, RaisesException, CallWith=ScriptState, MeasureAs=ElementCreateShadowRoot] ShadowRoot createShadowRoot(ShadowRootInit shadowRootInitDict); + [RuntimeEnabled=ShadowDOMV1, RaisesException, CallWith=ScriptState, MeasureAs=ElementAttachShadow] ShadowRoot attachShadow(ShadowRootInit shadowRootInitDict); NodeList getDestinationInsertionPoints(); [PerWorldBindings, ImplementedAs=openShadowRoot] readonly attribute ShadowRoot? shadowRoot;
diff --git a/third_party/WebKit/Source/core/dom/SelectorQuery.cpp b/third_party/WebKit/Source/core/dom/SelectorQuery.cpp index 572180d..6317c40 100644 --- a/third_party/WebKit/Source/core/dom/SelectorQuery.cpp +++ b/third_party/WebKit/Source/core/dom/SelectorQuery.cpp
@@ -388,7 +388,7 @@ ElementShadow* shadow = toElement(node).shadow(); ASSERT(shadow); for (ShadowRoot* shadowRoot = shadow->oldestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->youngerShadowRoot()) { - if (shadowRoot->type() == ShadowRootType::OpenByDefault || shadowRoot->type() == ShadowRootType::Open) + if (shadowRoot->type() == ShadowRootType::V0 || shadowRoot->type() == ShadowRootType::Open) return shadowRoot; } return nullptr; @@ -419,7 +419,7 @@ return nullptr; if (ShadowRoot* youngerShadowRoot = shadowRoot->youngerShadowRoot()) { // Should not obtain any elements in closed or user-agent shadow root. - ASSERT(youngerShadowRoot->type() == ShadowRootType::OpenByDefault || youngerShadowRoot->type() == ShadowRootType::Open); + ASSERT(youngerShadowRoot->type() == ShadowRootType::V0 || youngerShadowRoot->type() == ShadowRootType::Open); return youngerShadowRoot; }
diff --git a/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp b/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp index 5c8806cc..9239828 100644 --- a/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp +++ b/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp
@@ -19,7 +19,7 @@ RefPtrWillBeRawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION); document->appendChild(html, ASSERT_NO_EXCEPTION); - RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = html->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = html->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); EXPECT_EQ(shadowRoot.get(), shadowRoot->commonAncestorTreeScope(*shadowRoot)); } @@ -32,7 +32,7 @@ RefPtrWillBeRawPtr<Document> document = Document::create(); RefPtrWillBeRawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION); document->appendChild(html, ASSERT_NO_EXCEPTION); - RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = html->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = html->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); EXPECT_EQ(document.get(), document->commonAncestorTreeScope(*shadowRoot)); EXPECT_EQ(document.get(), shadowRoot->commonAncestorTreeScope(*document)); @@ -52,8 +52,8 @@ RefPtrWillBeRawPtr<Element> body = document->createElement("body", nullAtom, ASSERT_NO_EXCEPTION); html->appendChild(body); - RefPtrWillBeRawPtr<ShadowRoot> shadowRootA = head->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); - RefPtrWillBeRawPtr<ShadowRoot> shadowRootB = body->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRootA = head->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRootB = body->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); EXPECT_EQ(document.get(), shadowRootA->commonAncestorTreeScope(*shadowRootB)); EXPECT_EQ(document.get(), shadowRootB->commonAncestorTreeScope(*shadowRootA)); @@ -75,12 +75,12 @@ RefPtrWillBeRawPtr<Element> body = document->createElement("body", nullAtom, ASSERT_NO_EXCEPTION); html->appendChild(body); - RefPtrWillBeRawPtr<ShadowRoot> shadowRootY = head->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); - RefPtrWillBeRawPtr<ShadowRoot> shadowRootB = body->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRootY = head->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRootB = body->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); RefPtrWillBeRawPtr<Element> divInY = document->createElement("div", nullAtom, ASSERT_NO_EXCEPTION); shadowRootY->appendChild(divInY); - RefPtrWillBeRawPtr<ShadowRoot> shadowRootA = divInY->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRootA = divInY->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); EXPECT_EQ(document.get(), shadowRootA->commonAncestorTreeScope(*shadowRootB)); EXPECT_EQ(document.get(), shadowRootB->commonAncestorTreeScope(*shadowRootA));
diff --git a/third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp b/third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp index f653c7e..873e86ca 100644 --- a/third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp +++ b/third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp
@@ -59,7 +59,7 @@ RefPtrWillBeRawPtr<Element> body = document().body(); body->setInnerHTML(String::fromUTF8(mainHTML), ASSERT_NO_EXCEPTION); RefPtrWillBeRawPtr<Element> shadowHost = toElement(NodeTraversal::childAt(*body, index)); - RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); shadowRoot->setInnerHTML(String::fromUTF8(shadowHTML), ASSERT_NO_EXCEPTION); body->updateDistribution(); }
diff --git a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp index 7dd2fc7..906fa2a 100644 --- a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp +++ b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp
@@ -148,7 +148,7 @@ EventDispatchForbiddenScope assertNoEventDispatch; ScriptForbiddenScope forbidScript; - if (type == ShadowRootType::OpenByDefault) { + if (type == ShadowRootType::V0) { if (!youngestShadowRoot()) { shadowHost.willAddFirstAuthorShadowRoot(); } else if (youngestShadowRoot()->type() == ShadowRootType::UserAgent) {
diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h index a3f4577..5748962 100644 --- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h +++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h
@@ -46,7 +46,7 @@ enum class ShadowRootType { UserAgent, - OpenByDefault, + V0, Open, Closed }; @@ -78,7 +78,7 @@ ShadowRoot* youngerShadowRoot() const { return prev(); } ShadowRoot* olderShadowRootForBindings() const; - bool isOpen() const { return type() == ShadowRootType::OpenByDefault || type() == ShadowRootType::Open; } + bool isOpen() const { return type() == ShadowRootType::V0 || type() == ShadowRootType::Open; } bool isYoungest() const { return !youngerShadowRoot(); } bool isOldest() const { return !olderShadowRoot(); }
diff --git a/third_party/WebKit/Source/core/editing/EditingTestBase.cpp b/third_party/WebKit/Source/core/editing/EditingTestBase.cpp index 4f7fa78..da40097 100644 --- a/third_party/WebKit/Source/core/editing/EditingTestBase.cpp +++ b/third_party/WebKit/Source/core/editing/EditingTestBase.cpp
@@ -34,7 +34,7 @@ PassRefPtrWillBeRawPtr<ShadowRoot> EditingTestBase::createShadowRootForElementWithIDAndSetInnerHTML(TreeScope& scope, const char* hostElementID, const char* shadowRootContent) { - RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = scope.getElementById(AtomicString::fromUTF8(hostElementID))->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = scope.getElementById(AtomicString::fromUTF8(hostElementID))->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); shadowRoot->setInnerHTML(String::fromUTF8(shadowRootContent), ASSERT_NO_EXCEPTION); return shadowRoot.release(); }
diff --git a/third_party/WebKit/Source/core/editing/EditingUtilities.cpp b/third_party/WebKit/Source/core/editing/EditingUtilities.cpp index 4a0cebe..ee9f1467 100644 --- a/third_party/WebKit/Source/core/editing/EditingUtilities.cpp +++ b/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
@@ -705,11 +705,6 @@ } -bool nodeIsUserSelectNone(Node* node) -{ - return node && node->layoutObject() && !node->layoutObject()->isSelectable(); -} - template <typename Strategy> TextDirection directionOfEnclosingBlockAlgorithm(const PositionTemplate<Strategy>& position) {
diff --git a/third_party/WebKit/Source/core/editing/EditingUtilities.h b/third_party/WebKit/Source/core/editing/EditingUtilities.h index a53cd0a..7b0f0bb 100644 --- a/third_party/WebKit/Source/core/editing/EditingUtilities.h +++ b/third_party/WebKit/Source/core/editing/EditingUtilities.h
@@ -150,7 +150,6 @@ bool isNonTableCellHTMLBlockElement(const Node*); bool isBlockFlowElement(const Node&); bool nodeIsUserSelectAll(const Node*); -bool nodeIsUserSelectNone(Node*); CORE_EXPORT TextDirection directionOfEnclosingBlock(const Position&); CORE_EXPORT TextDirection directionOfEnclosingBlock(const PositionInComposedTree&); CORE_EXPORT TextDirection primaryDirectionOf(const Node&);
diff --git a/third_party/WebKit/Source/core/editing/InputMethodController.cpp b/third_party/WebKit/Source/core/editing/InputMethodController.cpp index e58047a9980..49e5921 100644 --- a/third_party/WebKit/Source/core/editing/InputMethodController.cpp +++ b/third_party/WebKit/Source/core/editing/InputMethodController.cpp
@@ -120,14 +120,59 @@ bool InputMethodController::confirmComposition() { - if (!hasComposition()) - return false; return confirmComposition(plainText(compositionEphemeralRange())); } +static void dispatchCompositionEndEvent(LocalFrame& frame, const String& text) +{ + // We should send this event before sending a TextEvent as written in + // Section 6.2.2 and 6.2.3 of the DOM Event specification. + Element* target = frame.document()->focusedElement(); + if (!target) + return; + + RefPtrWillBeRawPtr<CompositionEvent> event = + CompositionEvent::create(EventTypeNames::compositionend, frame.domWindow(), text); + target->dispatchEvent(event); +} + bool InputMethodController::confirmComposition(const String& text) { - return finishComposition(text, ConfirmComposition); + if (!hasComposition()) + return false; + + Editor::RevealSelectionScope revealSelectionScope(&editor()); + + // If the composition was set from existing text and didn't change, then + // there's nothing to do here (and we should avoid doing anything as that + // may clobber multi-node styled text). + if (!m_isDirty && plainText(compositionEphemeralRange()) == text) { + clear(); + return true; + } + + // Select the text that will be deleted or replaced. + selectComposition(); + + if (frame().selection().isNone()) + return false; + + dispatchCompositionEndEvent(frame(), text); + + if (!frame().document()) + return false; + + // If text is empty, then delete the old composition here. If text is + // non-empty, InsertTextCommand::input will delete the old composition with + // an optimized replace operation. + if (text.isEmpty()) + TypingCommand::deleteSelection(*frame().document(), 0); + + clear(); + + insertTextForConfirmedComposition(text); + + return true; } bool InputMethodController::confirmCompositionOrInsertText(const String& text, ConfirmCompositionBehavior confirmBehavior) @@ -153,7 +198,21 @@ void InputMethodController::cancelComposition() { - finishComposition(emptyString(), CancelComposition); + if (!hasComposition()) + return; + + Editor::RevealSelectionScope revealSelectionScope(&editor()); + + if (frame().selection().isNone()) + return; + + dispatchCompositionEndEvent(frame(), emptyString()); + clear(); + insertTextForConfirmedComposition(emptyString()); + + // An open typing command that disagrees about current selection would cause + // issues with typing later on. + TypingCommand::closeTyping(m_frame); } void InputMethodController::cancelCompositionIfSelectionIsInvalid() @@ -173,54 +232,6 @@ frame().chromeClient().didCancelCompositionOnSelectionChange(); } -bool InputMethodController::finishComposition(const String& text, FinishCompositionMode mode) -{ - if (!hasComposition()) - return false; - - ASSERT(mode == ConfirmComposition || mode == CancelComposition); - - Editor::RevealSelectionScope revealSelectionScope(&editor()); - - bool dirty = m_isDirty || plainText(compositionEphemeralRange()) != text; - - if (mode == CancelComposition) { - ASSERT(text == emptyString()); - } else if (dirty) { - selectComposition(); - } - - if (frame().selection().isNone()) - return false; - - // Dispatch a compositionend event to the focused node. - // We should send this event before sending a TextEvent as written in Section 6.2.2 and 6.2.3 of - // the DOM Event specification. - if (Element* target = frame().document()->focusedElement()) { - RefPtrWillBeRawPtr<CompositionEvent> event = CompositionEvent::create(EventTypeNames::compositionend, frame().domWindow(), text); - target->dispatchEvent(event); - } - - // If text is empty, then delete the old composition here. If text is non-empty, InsertTextCommand::input - // will delete the old composition with an optimized replace operation. - if (text.isEmpty() && mode != CancelComposition && dirty) { - ASSERT(frame().document()); - TypingCommand::deleteSelection(*frame().document(), 0); - } - - clear(); - - if (dirty) - insertTextForConfirmedComposition(text); - - if (mode == CancelComposition) { - // An open typing command that disagrees about current selection would cause issues with typing later on. - TypingCommand::closeTyping(m_frame); - } - - return true; -} - void InputMethodController::setComposition(const String& text, const Vector<CompositionUnderline>& underlines, unsigned selectionStart, unsigned selectionEnd) { Editor::RevealSelectionScope revealSelectionScope(&editor());
diff --git a/third_party/WebKit/Source/core/editing/InputMethodController.h b/third_party/WebKit/Source/core/editing/InputMethodController.h index 67c40c2..f9c6cc6 100644 --- a/third_party/WebKit/Source/core/editing/InputMethodController.h +++ b/third_party/WebKit/Source/core/editing/InputMethodController.h
@@ -110,9 +110,6 @@ bool insertTextForConfirmedComposition(const String& text); void selectComposition() const; - enum FinishCompositionMode { ConfirmComposition, CancelComposition }; - // Returns true if composition exists. - bool finishComposition(const String&, FinishCompositionMode); bool setSelectionOffsets(const PlainTextRange&); };
diff --git a/third_party/WebKit/Source/core/editing/SelectionController.cpp b/third_party/WebKit/Source/core/editing/SelectionController.cpp index 7d51c9b..d49d0214 100644 --- a/third_party/WebKit/Source/core/editing/SelectionController.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionController.cpp
@@ -267,7 +267,7 @@ template <typename Strategy> bool SelectionController::updateSelectionForMouseDownDispatchingSelectStart(Node* targetNode, const VisibleSelectionTemplate<Strategy>& selection, TextGranularity granularity) { - if (nodeIsUserSelectNone(targetNode)) + if (targetNode && targetNode->layoutObject() && !targetNode->layoutObject()->isSelectable()) return false; if (!dispatchSelectStart(targetNode))
diff --git a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp b/third_party/WebKit/Source/core/editing/SelectionEditor.cpp index fafb5b3..9d0301e 100644 --- a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
@@ -83,7 +83,7 @@ void SelectionEditor::setVisibleSelection(const VisibleSelection& newSelection) { m_selection = newSelection; - adjustVisibleSelectionInCompsoedTree(); + adjustVisibleSelectionInComposedTree(); } void SelectionEditor::setVisibleSelection(const VisibleSelectionInComposedTree& newSelection) @@ -93,7 +93,7 @@ } // Updates |m_selectionInComposedTree| to match with |m_selection|. -void SelectionEditor::adjustVisibleSelectionInCompsoedTree() +void SelectionEditor::adjustVisibleSelectionInComposedTree() { if (m_selection.isNone()) { m_selectionInComposedTree = VisibleSelectionInComposedTree(); @@ -163,7 +163,7 @@ void SelectionEditor::setWithoutValidation(const Position& start, const Position& end) { m_selection.setWithoutValidation(start, end); - adjustVisibleSelectionInCompsoedTree(); + adjustVisibleSelectionInComposedTree(); } TextDirection SelectionEditor::directionOfEnclosingBlock()
diff --git a/third_party/WebKit/Source/core/editing/SelectionEditor.h b/third_party/WebKit/Source/core/editing/SelectionEditor.h index 1cd093a..f1aff73e 100644 --- a/third_party/WebKit/Source/core/editing/SelectionEditor.h +++ b/third_party/WebKit/Source/core/editing/SelectionEditor.h
@@ -85,7 +85,7 @@ LocalFrame* frame() const; - void adjustVisibleSelectionInCompsoedTree(); + void adjustVisibleSelectionInComposedTree(); void adjustVisibleSelectionInDOMTree(); TextDirection directionOfEnclosingBlock();
diff --git a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp index ce2040e..442667b 100644 --- a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp +++ b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
@@ -2668,11 +2668,14 @@ // still need to support legacy positions. if (position.isAfterAnchor()) return false; - return !position.computeEditingOffset() && !nodeIsUserSelectNone(Strategy::parent(*anchorNode)); + if (position.computeEditingOffset()) + return false; + const Node* parent = Strategy::parent(*anchorNode); + return parent->layoutObject() && parent->layoutObject()->isSelectable(); } if (layoutObject->isText()) - return !nodeIsUserSelectNone(anchorNode) && inRenderedText(position); + return layoutObject->isSelectable() && inRenderedText(position); if (layoutObject->isSVG()) { // We don't consider SVG elements are contenteditable except for @@ -2681,22 +2684,29 @@ return false; } - if (isRenderedHTMLTableElement(anchorNode) || Strategy::editingIgnoresContent(anchorNode)) - return (position.atFirstEditingPositionForNode() || position.atLastEditingPositionForNode()) && !nodeIsUserSelectNone(Strategy::parent(*anchorNode)); + if (isRenderedHTMLTableElement(anchorNode) || Strategy::editingIgnoresContent(anchorNode)) { + if (!position.atFirstEditingPositionForNode() && !position.atLastEditingPositionForNode()) + return false; + const Node* parent = Strategy::parent(*anchorNode); + return parent->layoutObject() && parent->layoutObject()->isSelectable(); + } if (isHTMLHtmlElement(*anchorNode)) return false; + if (!layoutObject->isSelectable()) + return false; + if (layoutObject->isLayoutBlockFlow() || layoutObject->isFlexibleBox() || layoutObject->isLayoutGrid()) { if (toLayoutBlock(layoutObject)->logicalHeight() || isHTMLBodyElement(*anchorNode)) { if (!hasRenderedNonAnonymousDescendantsWithHeight(layoutObject)) - return position.atFirstEditingPositionForNode() && !nodeIsUserSelectNone(anchorNode); - return anchorNode->hasEditableStyle() && !nodeIsUserSelectNone(anchorNode) && atEditingBoundary(position); + return position.atFirstEditingPositionForNode(); + return anchorNode->hasEditableStyle() && atEditingBoundary(position); } } else { LocalFrame* frame = anchorNode->document().frame(); bool caretBrowsing = frame->settings() && frame->settings()->caretBrowsingEnabled(); - return (caretBrowsing || anchorNode->hasEditableStyle()) && !nodeIsUserSelectNone(anchorNode) && atEditingBoundary(position); + return (caretBrowsing || anchorNode->hasEditableStyle()) && atEditingBoundary(position); } return false;
diff --git a/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp b/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp index e578686..2e11e86 100644 --- a/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp +++ b/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp
@@ -285,7 +285,7 @@ if (m_iterationProgress < HandledOpenShadowRoots) { if (entersOpenShadowRoots() && m_node->isElementNode() && toElement(m_node)->openShadowRoot()) { ShadowRoot* youngestShadowRoot = toElement(m_node)->openShadowRoot(); - ASSERT(youngestShadowRoot->type() == ShadowRootType::OpenByDefault || youngestShadowRoot->type() == ShadowRootType::Open); + ASSERT(youngestShadowRoot->type() == ShadowRootType::V0 || youngestShadowRoot->type() == ShadowRootType::Open); m_node = youngestShadowRoot; m_iterationProgress = HandledNone; ++m_shadowDepth; @@ -374,9 +374,9 @@ return; } ShadowRoot* shadowRoot = toShadowRoot(m_node); - if (shadowRoot->type() == ShadowRootType::OpenByDefault || shadowRoot->type() == ShadowRootType::Open) { + if (shadowRoot->type() == ShadowRootType::V0 || shadowRoot->type() == ShadowRootType::Open) { ShadowRoot* nextShadowRoot = shadowRoot->olderShadowRoot(); - if (nextShadowRoot && nextShadowRoot->type() == ShadowRootType::OpenByDefault) { + if (nextShadowRoot && nextShadowRoot->type() == ShadowRootType::V0) { m_fullyClippedStack.pop(); m_node = nextShadowRoot; m_iterationProgress = HandledNone;
diff --git a/third_party/WebKit/Source/core/frame/OriginsUsingFeatures.cpp b/third_party/WebKit/Source/core/frame/OriginsUsingFeatures.cpp index 8a45175..5ce94be 100644 --- a/third_party/WebKit/Source/core/frame/OriginsUsingFeatures.cpp +++ b/third_party/WebKit/Source/core/frame/OriginsUsingFeatures.cpp
@@ -141,6 +141,8 @@ { if (get(Feature::ElementCreateShadowRoot)) Platform::current()->recordRappor("WebComponents.ElementCreateShadowRoot", origin); + if (get(Feature::ElementAttachShadow)) + Platform::current()->recordRappor("WebComponents.ElementAttachShadow", origin); if (get(Feature::DocumentRegisterElement)) Platform::current()->recordRappor("WebComponents.DocumentRegisterElement", origin); if (get(Feature::EventPath))
diff --git a/third_party/WebKit/Source/core/frame/OriginsUsingFeatures.h b/third_party/WebKit/Source/core/frame/OriginsUsingFeatures.h index 185c409..e289738 100644 --- a/third_party/WebKit/Source/core/frame/OriginsUsingFeatures.h +++ b/third_party/WebKit/Source/core/frame/OriginsUsingFeatures.h
@@ -34,6 +34,7 @@ GeolocationInsecureOrigin, GetUserMediaInsecureOrigin, GetUserMediaSecureOrigin, + ElementAttachShadow, NumberOfFeatures // This must be the last item. };
diff --git a/third_party/WebKit/Source/core/frame/UseCounter.h b/third_party/WebKit/Source/core/frame/UseCounter.h index ccaf404..5dd36039 100644 --- a/third_party/WebKit/Source/core/frame/UseCounter.h +++ b/third_party/WebKit/Source/core/frame/UseCounter.h
@@ -676,7 +676,7 @@ ElementCreateShadowRootMultipleWithUserAgentShadowRoot = 800, InputTypeFileSecureOrigin = 801, InputTypeFileInsecureOrigin = 802, - ElementCreateShadowRootWithParameter = 804, + ElementAttachShadow = 804, V8KeyboardEvent_KeyIdentifier_AttributeGetter = 805, V8SecurityPolicyViolationEvent_DocumentURI_AttributeGetter = 806, V8SecurityPolicyViolationEvent_BlockedURI_AttributeGetter = 807, @@ -780,8 +780,8 @@ ClientHintsMetaAcceptCH = 904, HTMLElementDeprecatedWidth = 905, ClientHintsContentDPR = 906, - ElementCreateShadowRootOpen = 907, - ElementCreateShadowRootClosed = 908, + ElementAttachShadowOpen = 907, + ElementAttachShadowClosed = 908, AudioParamSetValueAtTime = 909, AudioParamLinearRampToValueAtTime = 910, AudioParamExponentialRampToValueAtTime = 911,
diff --git a/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp b/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp index f1257a1e7..f6018074 100644 --- a/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp
@@ -35,6 +35,7 @@ #include "core/frame/LocalFrame.h" #include "core/html/FormAssociatedElement.h" #include "core/input/EventHandler.h" +#include "core/layout/LayoutObject.h" namespace blink { @@ -162,7 +163,7 @@ if (LocalFrame* frame = document().frame()) { // Check if there is a selection and click is not on the // selection. - if (!nodeIsUserSelectNone(this) && frame->selection().isRange() && !frame->eventHandler().selectionController().mouseDownWasSingleClickInSelection()) + if (layoutObject() && layoutObject()->isSelectable() && frame->selection().isRange() && !frame->eventHandler().selectionController().mouseDownWasSingleClickInSelection()) isLabelTextSelected = true; // If selection is there and is single click i.e. text is // selected by dragging over label text, then return.
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp index 4e91190..9734e411 100644 --- a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp +++ b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
@@ -1481,7 +1481,7 @@ switch (shadowRoot->type()) { case ShadowRootType::UserAgent: return TypeBuilder::DOM::ShadowRootType::User_agent; - case ShadowRootType::OpenByDefault: + case ShadowRootType::V0: case ShadowRootType::Open: return TypeBuilder::DOM::ShadowRootType::Open; case ShadowRootType::Closed:
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp index 99e8689..42f3b6a 100644 --- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
@@ -2684,8 +2684,7 @@ LayoutRect logicalRect(curr->logicalLeft(), selTop, curr->logicalWidth(), selTop + selHeight); logicalRect.move(isHorizontalWritingMode() ? offsetFromRootBlock : offsetFromRootBlock.transposedSize()); LayoutRect physicalRect = rootBlock->logicalRectToPhysicalRect(rootBlockPhysicalPosition, logicalRect); - if (!paintInfo || (isHorizontalWritingMode() && physicalRect.y() < paintInfo->rect.maxY() && physicalRect.maxY() > paintInfo->rect.y()) - || (!isHorizontalWritingMode() && physicalRect.x() < paintInfo->rect.maxX() && physicalRect.maxX() > paintInfo->rect.x())) + if (!paintInfo || paintInfo->intersectsCullRect(enclosingIntRect(physicalRect))) result.unite(curr->lineSelectionGap(rootBlock, rootBlockPhysicalPosition, offsetFromRootBlock, selTop, selHeight, paintInfo)); lastSelectedLine = curr;
diff --git a/third_party/WebKit/Source/core/layout/LayoutReplaced.cpp b/third_party/WebKit/Source/core/layout/LayoutReplaced.cpp index 329b4205..cdc1f3e 100644 --- a/third_party/WebKit/Source/core/layout/LayoutReplaced.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutReplaced.cpp
@@ -128,14 +128,7 @@ paintRect.unite(localSelectionRect()); paintRect.moveBy(paintOffset + location()); - // Early exit if the element touches the edges. - LayoutUnit top = paintRect.y(); - LayoutUnit bottom = paintRect.maxY(); - - if (paintRect.x() >= paintInfo.rect.maxX() || paintRect.maxX() <= paintInfo.rect.x()) - return false; - - if (top >= paintInfo.rect.maxY() || bottom <= paintInfo.rect.y()) + if (!paintInfo.intersectsCullRect(paintRect)) return false; return true;
diff --git a/third_party/WebKit/Source/core/paint/BlockPainter.cpp b/third_party/WebKit/Source/core/paint/BlockPainter.cpp index 9227b4df..13e4bb7 100644 --- a/third_party/WebKit/Source/core/paint/BlockPainter.cpp +++ b/third_party/WebKit/Source/core/paint/BlockPainter.cpp
@@ -237,7 +237,7 @@ } m_layoutBlock.flipForWritingMode(overflowRect); overflowRect.moveBy(paintOffset + m_layoutBlock.location()); - return (overflowRect.intersects(LayoutRect(paintInfo.rect))); + return paintInfo.intersectsCullRect(overflowRect); } void BlockPainter::paintContents(const PaintInfo& paintInfo, const LayoutPoint& paintOffset)
diff --git a/third_party/WebKit/Source/core/paint/DetailsMarkerPainter.cpp b/third_party/WebKit/Source/core/paint/DetailsMarkerPainter.cpp index 0da7474..f43cde6 100644 --- a/third_party/WebKit/Source/core/paint/DetailsMarkerPainter.cpp +++ b/third_party/WebKit/Source/core/paint/DetailsMarkerPainter.cpp
@@ -28,7 +28,7 @@ LayoutRect overflowRect(m_layoutDetailsMarker.visualOverflowRect()); overflowRect.moveBy(boxOrigin); - if (!paintInfo.rect.intersects(pixelSnappedIntRect(overflowRect))) + if (!paintInfo.intersectsCullRect(overflowRect)) return; LayoutObjectDrawingRecorder layoutDrawingRecorder(*paintInfo.context, m_layoutDetailsMarker, paintInfo.phase, overflowRect, paintOffset);
diff --git a/third_party/WebKit/Source/core/paint/FrameSetPainter.cpp b/third_party/WebKit/Source/core/paint/FrameSetPainter.cpp index 72dbf19..c4fcd0f 100644 --- a/third_party/WebKit/Source/core/paint/FrameSetPainter.cpp +++ b/third_party/WebKit/Source/core/paint/FrameSetPainter.cpp
@@ -29,7 +29,7 @@ void FrameSetPainter::paintColumnBorder(const PaintInfo& paintInfo, const IntRect& borderRect) { - if (!paintInfo.rect.intersects(borderRect)) + if (!paintInfo.intersectsCullRect(borderRect)) return; // FIXME: We should do something clever when borders from distinct framesets meet at a join.
diff --git a/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp b/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp index 58a44133..bb69956 100644 --- a/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp +++ b/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
@@ -28,7 +28,7 @@ m_inlineFlowBox.flipForWritingMode(overflowRect); overflowRect.moveBy(paintOffset); - if (!paintInfo.rect.intersects(pixelSnappedIntRect(overflowRect))) + if (!paintInfo.intersectsCullRect(overflowRect)) return; if (paintInfo.phase == PaintPhaseMask) {
diff --git a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp index b438aa1..590e62e1 100644 --- a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp +++ b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
@@ -488,7 +488,9 @@ FloatPoint localOrigin(boxRect.x().toFloat(), (boxRect.y() - deltaY).toFloat()); LayoutRect selectionRect = LayoutRect(font.selectionRectForText(textRun, localOrigin, selHeight, sPos, ePos)); - if (m_inlineTextBox.hasWrappedSelectionNewline()) + if (m_inlineTextBox.hasWrappedSelectionNewline() + // For line breaks, just painting a selection where the line break itself is rendered is sufficient. + && !m_inlineTextBox.isLineBreak()) expandToIncludeNewlineForSelection(selectionRect); context->fillRect(FloatRect(selectionRect), c);
diff --git a/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp b/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp index 3d7e8a4..e4246e6 100644 --- a/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp +++ b/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
@@ -60,7 +60,7 @@ overflowRect.moveBy(boxOrigin); IntRect pixelSnappedOverflowRect = pixelSnappedIntRect(overflowRect); - if (!paintInfo.rect.intersects(pixelSnappedOverflowRect)) + if (!paintInfo.intersectsCullRect(overflowRect)) return; LayoutObjectDrawingRecorder recorder(*paintInfo.context, m_layoutListMarker, paintInfo.phase, pixelSnappedOverflowRect, paintOffset);
diff --git a/third_party/WebKit/Source/core/paint/PaintInfo.cpp b/third_party/WebKit/Source/core/paint/PaintInfo.cpp new file mode 100644 index 0000000..1ad1ccb --- /dev/null +++ b/third_party/WebKit/Source/core/paint/PaintInfo.cpp
@@ -0,0 +1,48 @@ +// Copyright 2014 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 "config.h" +#include "core/paint/PaintInfo.h" + +namespace blink { + +void PaintInfo::updatePaintingRootForChildren(const LayoutObject* layoutObject) +{ + if (!paintingRoot) + return; + + // If we're the painting root, kids draw normally, and see root of nullptr. + if (paintingRoot == layoutObject) { + paintingRoot = nullptr; + return; + } +} + +bool PaintInfo::shouldPaintWithinRoot(const LayoutObject* layoutObject) const +{ + return !paintingRoot || paintingRoot == layoutObject; +} + +bool PaintInfo::intersectsCullRect(const IntRect& rectArg) const +{ + return rectArg.intersects(rect); +} + +bool PaintInfo::intersectsCullRect(const LayoutRect& rectArg) const +{ + return rect.intersects(enclosingIntRect(rectArg)); +} + +bool PaintInfo::intersectsCullRect(const AffineTransform& transform, const FloatRect& boundingBox) const +{ + return transform.mapRect(boundingBox).intersects(rect); +} + +void PaintInfo::updateCullRectForSVGTransform(const AffineTransform& localToParentTransform) +{ + if (rect != LayoutRect::infiniteIntRect()) + rect = localToParentTransform.inverse().mapRect(rect); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/paint/PaintInfo.h b/third_party/WebKit/Source/core/paint/PaintInfo.h index 2172564..5cacf78 100644 --- a/third_party/WebKit/Source/core/paint/PaintInfo.h +++ b/third_party/WebKit/Source/core/paint/PaintInfo.h
@@ -28,6 +28,7 @@ // TODO(jchaffraix): Once we unify PaintBehavior and PaintLayerFlags, we should move // PaintLayerFlags to PaintPhase and rename it. Thus removing the need for this #include. +#include "core/CoreExport.h" #include "core/paint/PaintLayerPaintingInfo.h" #include "core/paint/PaintPhase.h" #include "platform/geometry/IntRect.h" @@ -46,11 +47,12 @@ class LayoutInline; class LayoutBoxModelObject; class LayoutObject; +class PaintInvalidationState; -struct PaintInfo { +struct CORE_EXPORT PaintInfo { ALLOW_ONLY_INLINE_ALLOCATION(); PaintInfo(GraphicsContext* newContext, const IntRect& newRect, PaintPhase newPhase, GlobalPaintFlags globalPaintFlags, PaintLayerFlags paintFlags, - LayoutObject* newPaintingRoot = 0, const LayoutBoxModelObject* newPaintContainer = 0) + LayoutObject* newPaintingRoot = nullptr, const LayoutBoxModelObject* newPaintContainer = nullptr) : context(newContext) , rect(newRect) , phase(newPhase) @@ -62,22 +64,9 @@ { } - void updatePaintingRootForChildren(const LayoutObject* layoutObject) - { - if (!paintingRoot) - return; + void updatePaintingRootForChildren(const LayoutObject*); - // If we're the painting root, kids draw normally, and see root of 0. - if (paintingRoot == layoutObject) { - paintingRoot = 0; - return; - } - } - - bool shouldPaintWithinRoot(const LayoutObject* layoutObject) const - { - return !paintingRoot || paintingRoot == layoutObject; - } + bool shouldPaintWithinRoot(const LayoutObject*) const; bool isRenderingClipPathAsMaskImage() const { return m_paintFlags & PaintLayerPaintingRenderingClipPathAsMask; } @@ -94,16 +83,12 @@ PaintLayerFlags paintFlags() const { return m_paintFlags; } - bool intersectsCullRect(const AffineTransform& transform, const FloatRect& boundingBox) const - { - return transform.mapRect(boundingBox).intersects(rect); - } + bool intersectsCullRect(const AffineTransform&, const FloatRect& boundingBox) const; - void updateCullRectForSVGTransform(const AffineTransform& localToParentTransform) - { - if (rect != LayoutRect::infiniteIntRect()) - rect = localToParentTransform.inverse().mapRect(rect); - } + void updateCullRectForSVGTransform(const AffineTransform& localToParentTransform); + + bool intersectsCullRect(const IntRect&) const; + bool intersectsCullRect(const LayoutRect&) const; // FIXME: Introduce setters/getters at some point. Requires a lot of changes throughout layout/. GraphicsContext* context;
diff --git a/third_party/WebKit/Source/core/paint/PaintInfoTest.cpp b/third_party/WebKit/Source/core/paint/PaintInfoTest.cpp new file mode 100644 index 0000000..a4573a4 --- /dev/null +++ b/third_party/WebKit/Source/core/paint/PaintInfoTest.cpp
@@ -0,0 +1,52 @@ +// Copyright 2014 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 "config.h" +#include "core/paint/PaintInfo.h" + +#include <gtest/gtest.h> + +namespace blink { + +class PaintInfoTest : public testing::Test { +}; + +TEST_F(PaintInfoTest, intersectsCullRect) +{ + PaintInfo paintInfo(nullptr, IntRect(0, 0, 50, 50), PaintPhaseBlockBackground, GlobalPaintNormalPhase, PaintLayerNoFlag); + + EXPECT_TRUE(paintInfo.intersectsCullRect(IntRect(0, 0, 1, 1))); + EXPECT_FALSE(paintInfo.intersectsCullRect(IntRect(51, 51, 1, 1))); +} + +TEST_F(PaintInfoTest, intersectsCullRectWithLayoutRect) +{ + PaintInfo paintInfo(nullptr, IntRect(0, 0, 50, 50), PaintPhaseBlockBackground, GlobalPaintNormalPhase, PaintLayerNoFlag); + + EXPECT_TRUE(paintInfo.intersectsCullRect(LayoutRect(0, 0, 1, 1))); + EXPECT_TRUE(paintInfo.intersectsCullRect(LayoutRect(0.1, 0.1, 0.1, 0.1))); +} + +TEST_F(PaintInfoTest, intersectsCullRectWithTransform) +{ + PaintInfo paintInfo(nullptr, IntRect(0, 0, 50, 50), PaintPhaseBlockBackground, GlobalPaintNormalPhase, PaintLayerNoFlag); + AffineTransform transform; + transform.translate(-2, -2); + + EXPECT_TRUE(paintInfo.intersectsCullRect(transform, IntRect(51, 51, 1, 1))); + EXPECT_FALSE(paintInfo.intersectsCullRect(IntRect(52, 52, 1, 1))); +} + +TEST_F(PaintInfoTest, updateCullRectForSVGTransform) +{ + PaintInfo paintInfo(nullptr, IntRect(1, 1, 50, 50), PaintPhaseBlockBackground, GlobalPaintNormalPhase, PaintLayerNoFlag); + AffineTransform transform; + transform.translate(1, 1); + paintInfo.updateCullRectForSVGTransform(transform); + + EXPECT_TRUE(paintInfo.intersectsCullRect(IntRect(0, 0, 1, 1))); + EXPECT_FALSE(paintInfo.intersectsCullRect(IntRect(51, 51, 1, 1))); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp index e9cb238..1050466 100644 --- a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp +++ b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
@@ -570,7 +570,7 @@ clipRecorder.emplace(*context, *m_paintLayer.layoutObject(), clipType, clipRect, &paintingInfo, fragment.paginationOffset, paintFlags, clippingRule); } - PaintInfo paintInfo(context, pixelSnappedIntRect(clipRect.rect()), phase, paintingInfo.globalPaintFlags(), paintFlags, paintingRootForLayoutObject, paintingInfo.rootLayer->layoutObject()); + LayoutRect newCullRect(clipRect.rect()); Optional<ScrollRecorder> scrollRecorder; LayoutPoint paintOffset = toPoint(fragment.layerBounds.location() - m_paintLayer.layoutBoxLocation()); if (!paintingInfo.scrollOffsetAccumulation.isZero()) { @@ -579,9 +579,13 @@ // for this layer seperately, with the scroll offset accumulated from the root layer to the parent of this // layer, to get the same result as ScrollRecorder in BlockPainter. paintOffset += paintingInfo.scrollOffsetAccumulation; - paintInfo.rect.move(paintingInfo.scrollOffsetAccumulation); - scrollRecorder.emplace(*paintInfo.context, *m_paintLayer.layoutObject(), paintInfo.phase, paintingInfo.scrollOffsetAccumulation); + + newCullRect.move(paintingInfo.scrollOffsetAccumulation); + scrollRecorder.emplace(*context, *m_paintLayer.layoutObject(), phase, paintingInfo.scrollOffsetAccumulation); } + PaintInfo paintInfo(context, pixelSnappedIntRect(newCullRect), phase, paintingInfo.globalPaintFlags(), paintFlags, + paintingRootForLayoutObject, paintingInfo.rootLayer->layoutObject()); + m_paintLayer.layoutObject()->paint(paintInfo, paintOffset); }
diff --git a/third_party/WebKit/Source/core/paint/TableCellPainter.cpp b/third_party/WebKit/Source/core/paint/TableCellPainter.cpp index 7e5a0d7..22ee5503 100644 --- a/third_party/WebKit/Source/core/paint/TableCellPainter.cpp +++ b/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
@@ -102,7 +102,7 @@ paintRect.width() + leftWidth / 2 + (rightWidth + 1) / 2, paintRect.height() + topWidth / 2 + (bottomWidth + 1) / 2); - if (!borderRect.intersects(paintInfo.rect)) + if (!paintInfo.intersectsCullRect(borderRect)) return; GraphicsContext* graphicsContext = paintInfo.context;
diff --git a/third_party/WebKit/Source/core/testing/Internals.cpp b/third_party/WebKit/Source/core/testing/Internals.cpp index 61ae4c1..0f9f83c 100644 --- a/third_party/WebKit/Source/core/testing/Internals.cpp +++ b/third_party/WebKit/Source/core/testing/Internals.cpp
@@ -691,8 +691,8 @@ switch (toShadowRoot(root)->type()) { case ShadowRootType::UserAgent: return String("UserAgentShadowRoot"); - case ShadowRootType::OpenByDefault: - return String("OpenByDefaultShadowRoot"); + case ShadowRootType::V0: + return String("V0ShadowRoot"); case ShadowRootType::Open: return String("OpenShadowRoot"); case ShadowRootType::Closed:
diff --git a/third_party/WebKit/Source/devtools/front_end/common/Settings.js b/third_party/WebKit/Source/devtools/front_end/common/Settings.js index 029ba4c..d7d5eca 100644 --- a/third_party/WebKit/Source/devtools/front_end/common/Settings.js +++ b/third_party/WebKit/Source/devtools/front_end/common/Settings.js
@@ -333,7 +333,7 @@ } WebInspector.VersionController._currentVersionName = "inspectorVersion"; -WebInspector.VersionController.currentVersion = 15; +WebInspector.VersionController.currentVersion = 16; WebInspector.VersionController.prototype = { updateVersion: function() @@ -593,6 +593,15 @@ setting.set(newValue); }, + _updateVersionFrom15To16: function() + { + var setting = WebInspector.settings.createSetting("InspectorView.panelOrder", {}); + var tabOrders = setting.get(); + for (var key of Object.keys(tabOrders)) + tabOrders[key] = (tabOrders[key] + 1) * 10; + setting.set(tabOrders); + }, + _migrateSettingsFromLocalStorage: function() { // This step migrates all the settings except for the ones below into the browser profile.
diff --git a/third_party/WebKit/Source/devtools/front_end/components/DockController.js b/third_party/WebKit/Source/devtools/front_end/components/DockController.js index b1704fc..830330d8 100644 --- a/third_party/WebKit/Source/devtools/front_end/components/DockController.js +++ b/third_party/WebKit/Source/devtools/front_end/components/DockController.js
@@ -186,10 +186,12 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { WebInspector.dockController._toggleDockSide(); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/components/InspectElementModeController.js b/third_party/WebKit/Source/devtools/front_end/components/InspectElementModeController.js index ce8665c..76675672 100644 --- a/third_party/WebKit/Source/devtools/front_end/components/InspectElementModeController.js +++ b/third_party/WebKit/Source/devtools/front_end/components/InspectElementModeController.js
@@ -160,19 +160,21 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { if (!WebInspector.inspectElementModeController) - return; + return false; WebInspector.inspectElementModeController._toggleInspectMode(); if (WebInspector.inspectElementModeController.isInInspectElementMode()) - return; + return true; var node = WebInspector.context.flavor(WebInspector.DOMNode); if (node) WebInspector.Revealer.reveal(node); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/components/InspectorView.js b/third_party/WebKit/Source/devtools/front_end/components/InspectorView.js index ecd66f3..7b63d1e2 100644 --- a/third_party/WebKit/Source/devtools/front_end/components/InspectorView.js +++ b/third_party/WebKit/Source/devtools/front_end/components/InspectorView.js
@@ -114,19 +114,25 @@ weight = extension.descriptor()["order"]; if (weight === undefined) weight = 10000; - panelsByWeight.set(weight, descriptor); + panelWeights.set(descriptor, weight); + } + + /** + * @param {!WebInspector.PanelDescriptor} left + * @param {!WebInspector.PanelDescriptor} right + */ + function orderComparator(left, right) + { + return panelWeights.get(left) > panelWeights.get(right); } WebInspector.startBatchUpdate(); - /** @type {!Map.<number, !WebInspector.PanelDescriptor>} */ - var panelsByWeight = new Map(); + /** @type {!Map.<!WebInspector.PanelDescriptor, number>} */ + var panelWeights = new Map(); self.runtime.extensions(WebInspector.PanelFactory).forEach(processPanelExtensions.bind(this)); - var sortedPanelOrders = panelsByWeight.keysArray().sort(); - for (var order of sortedPanelOrders) { - var panelDescriptor = panelsByWeight.get(order); - if (panelDescriptor) - this._innerAddPanel(panelDescriptor); - } + var sortedPanels = panelWeights.keysArray().sort(orderComparator); + for (var panelDescriptor of sortedPanels) + this._innerAddPanel(panelDescriptor); WebInspector.endBatchUpdate(); }, @@ -543,7 +549,7 @@ var tabs = /** @type {!Array.<!WebInspector.TabbedPaneTab>} */(event.data); var tabOrders = this._tabOrderSetting.get(); for (var i = 0; i < tabs.length; i++) - tabOrders[tabs[i].id] = i; + tabOrders[tabs[i].id] = (i + 1)* 10; this._tabOrderSetting.set(tabOrders); }, @@ -568,6 +574,7 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { @@ -575,5 +582,6 @@ WebInspector.inspectorView.closeDrawer(); else WebInspector.inspectorView.showDrawer(); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js b/third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js index 3c978cb7..c51dcbc 100644 --- a/third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js +++ b/third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js
@@ -1288,13 +1288,19 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { - if (actionId === "console.show") + switch (actionId) { + case "console.show": WebInspector.console.show(); - else if (actionId === "console.clear") + return true; + case "console.clear": WebInspector.ConsoleModel.clearConsole(); + return true; + } + return false; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/devices/DevicesDialog.js b/third_party/WebKit/Source/devtools/front_end/devices/DevicesDialog.js index 43548c70..08332fcb 100644 --- a/third_party/WebKit/Source/devtools/front_end/devices/DevicesDialog.js +++ b/third_party/WebKit/Source/devtools/front_end/devices/DevicesDialog.js
@@ -24,6 +24,7 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { @@ -36,6 +37,8 @@ this._view.show(dialog.element); dialog.setMaxSize(new Size(800, 600)); dialog.show(); + return true; } + return false; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js index a401a39..4bf1422 100644 --- a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js +++ b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
@@ -1211,14 +1211,19 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { - var elementsPanel = WebInspector.ElementsPanel.instance(); - if (actionId === "elements.hide-element") - elementsPanel._toggleHideElement(); - else if (actionId === "elements.edit-as-html") - elementsPanel._toggleEditAsHTML(); + switch (actionId) { + case "elements.hide-element": + WebInspector.ElementsPanel.instance()._toggleHideElement(); + return true; + case "elements.edit-as-html": + WebInspector.ElementsPanel.instance()._toggleEditAsHTML(); + return true; + } + return false; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeButton.js b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeButton.js index ec6f8db..d88bf38 100644 --- a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeButton.js +++ b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeButton.js
@@ -55,9 +55,11 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { WebInspector.overridesSupport.setEmulationEnabled(!WebInspector.overridesSupport.emulationEnabled()); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js b/third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js index bd443756..b75a912 100644 --- a/third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js +++ b/third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js
@@ -300,9 +300,11 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { WebInspector.inspectorView.showCloseableViewInDrawer("sensors", WebInspector.UIString("Sensors"), WebInspector.SensorsView.instance()); + return true; } } \ No newline at end of file
diff --git a/third_party/WebKit/Source/devtools/front_end/main/Main.js b/third_party/WebKit/Source/devtools/front_end/main/Main.js index 357bdb1..8a0c621 100644 --- a/third_party/WebKit/Source/devtools/front_end/main/Main.js +++ b/third_party/WebKit/Source/devtools/front_end/main/Main.js
@@ -694,20 +694,22 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { switch (actionId) { case "main.reload": WebInspector.Main._reloadPage(false); - break; + return true; case "main.hard-reload": WebInspector.Main._reloadPage(true); - break; + return true; case "main.debug-reload": WebInspector.reload(); - break; + return true; } + return false; } } @@ -724,23 +726,25 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { if (InspectorFrontendHost.isHostedMode()) - return; + return false; switch (actionId) { case "main.zoom-in": InspectorFrontendHost.zoomIn(); - break; + return true; case "main.zoom-out": InspectorFrontendHost.zoomOut(); - break; + return true; case "main.zoom-reset": InspectorFrontendHost.resetZoom(); - break; + return true; } + return false; } } @@ -757,10 +761,12 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { InspectorFrontendHost.openInNewTab("chrome://inspect#devices"); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js b/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js index 0ebafe9..4fb1adf 100644 --- a/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js +++ b/third_party/WebKit/Source/devtools/front_end/main/RenderingOptions.js
@@ -123,9 +123,11 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { WebInspector.inspectorView.showCloseableViewInDrawer("rendering", WebInspector.UIString("Rendering"), WebInspector.RenderingOptionsView.instance()); + return true; } } \ No newline at end of file
diff --git a/third_party/WebKit/Source/devtools/front_end/network/BlockedURLsPane.js b/third_party/WebKit/Source/devtools/front_end/network/BlockedURLsPane.js index aa8c1d91..721f342 100644 --- a/third_party/WebKit/Source/devtools/front_end/network/BlockedURLsPane.js +++ b/third_party/WebKit/Source/devtools/front_end/network/BlockedURLsPane.js
@@ -305,10 +305,12 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { WebInspector.BlockedURLsPane.reveal(); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkPanel.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkPanel.js index caf0edc..7dc4e47 100644 --- a/third_party/WebKit/Source/devtools/front_end/network/NetworkPanel.js +++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkPanel.js
@@ -787,11 +787,13 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { var panel = WebInspector.context.flavor(WebInspector.NetworkPanel); console.assert(panel && panel instanceof WebInspector.NetworkPanel); panel._toggleRecording(); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js b/third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js index 8c567e8..8ed6e1e 100644 --- a/third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js +++ b/third_party/WebKit/Source/devtools/front_end/profiler/ProfilesPanel.js
@@ -1302,11 +1302,13 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { var panel = WebInspector.context.flavor(WebInspector.ProfilesPanel); console.assert(panel && panel instanceof WebInspector.ProfilesPanel); panel.toggleRecordButton(); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/security/SecurityModel.js b/third_party/WebKit/Source/devtools/front_end/security/SecurityModel.js index d587755f..650b96f 100644 --- a/third_party/WebKit/Source/devtools/front_end/security/SecurityModel.js +++ b/third_party/WebKit/Source/devtools/front_end/security/SecurityModel.js
@@ -37,6 +37,36 @@ } /** + * @param {!SecurityAgent.SecurityState} a + * @param {!SecurityAgent.SecurityState} b + * @return {number} + */ +WebInspector.SecurityModel.SecurityStateComparator = function(a, b) +{ + var securityStateMap; + if (WebInspector.SecurityModel._symbolicToNumericSecurityState) { + securityStateMap = WebInspector.SecurityModel._symbolicToNumericSecurityState; + } else { + securityStateMap = new Map(); + var ordering = [ + SecurityAgent.SecurityState.Unknown, + SecurityAgent.SecurityState.Info, + SecurityAgent.SecurityState.Insecure, + SecurityAgent.SecurityState.Neutral, + SecurityAgent.SecurityState.Warning, + SecurityAgent.SecurityState.Secure + ]; + for (var i = 0; i < ordering.length; i++) + securityStateMap.set(ordering[i], i + 1); + WebInspector.SecurityModel._symbolicToNumericSecurityState = securityStateMap; + } + var aScore = securityStateMap.get(a) || 0; + var bScore = securityStateMap.get(b) || 0; + + return aScore - bScore; +} + +/** * @constructor * @param {!SecurityAgent.SecurityState} securityState * @param {!Array<!SecurityAgent.SecurityStateExplanation>} explanations
diff --git a/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js b/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js index 1db881c..28a4259 100644 --- a/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js +++ b/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js
@@ -262,16 +262,7 @@ */ _securityStateMin: function(stateA, stateB) { - /** @type {!Array<!SecurityAgent.SecurityState>} */ - var ordering = [ - SecurityAgent.SecurityState.Unknown, - SecurityAgent.SecurityState.Info, - SecurityAgent.SecurityState.Insecure, - SecurityAgent.SecurityState.Neutral, - SecurityAgent.SecurityState.Warning, - SecurityAgent.SecurityState.Secure - ]; - return (ordering.indexOf(stateA) < ordering.indexOf(stateB)) ? stateA : stateB; + return WebInspector.SecurityModel.SecurityStateComparator(stateA, stateB) < 0 ? stateA : stateB; }, /** @@ -426,28 +417,7 @@ */ WebInspector.SecurityOriginViewSidebarTreeElement.SecurityStateComparator = function(a, b) { - var securityStateMap; - if (WebInspector.SecurityOriginViewSidebarTreeElement._symbolicToNumericSecurityState) { - securityStateMap = WebInspector.SecurityOriginViewSidebarTreeElement._symbolicToNumericSecurityState; - } else { - securityStateMap = new Map(); - var ordering = [ - SecurityAgent.SecurityState.Unknown, - SecurityAgent.SecurityState.Info, - SecurityAgent.SecurityState.Insecure, - SecurityAgent.SecurityState.Neutral, - SecurityAgent.SecurityState.Warning, - SecurityAgent.SecurityState.Secure - ]; - for (var i = 0; i < ordering.length; i++) { - securityStateMap.set(ordering[i], i + 1); - } - WebInspector.SecurityOriginViewSidebarTreeElement._symbolicToNumericSecurityState = securityStateMap; - } - var aScore = securityStateMap.get(a.securityState()) || 0; - var bScore = securityStateMap.get(b.securityState()) || 0; - - return aScore - bScore; + return WebInspector.SecurityModel.SecurityStateComparator(a.securityState(), b.securityState()); } /**
diff --git a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js index 453815a5..1b925f0b 100644 --- a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js +++ b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
@@ -531,15 +531,22 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { - if (actionId === "settings.show") + switch (actionId) { + case "settings.show": WebInspector._settingsController.showSettingsScreen(); - else if (actionId === "settings.help") + return true; + case "settings.help": InspectorFrontendHost.openInNewTab("https://developers.google.com/web/tools/chrome-devtools/"); - else if (actionId === "settings.shortcuts") + return true; + case "settings.shortcuts": WebInspector._settingsController.showSettingsScreen("shortcuts"); + return true; + } + return false; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/AdvancedSearchView.js b/third_party/WebKit/Source/devtools/front_end/sources/AdvancedSearchView.js index e2edd39..82faa23 100644 --- a/third_party/WebKit/Source/devtools/front_end/sources/AdvancedSearchView.js +++ b/third_party/WebKit/Source/devtools/front_end/sources/AdvancedSearchView.js
@@ -349,6 +349,7 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { @@ -362,7 +363,9 @@ this._searchView._toggle(queryCandidate); WebInspector.inspectorView.showCloseableViewInDrawer("sources.search", WebInspector.UIString("Search"), this._searchView); this._searchView.focus(); + return true; } + return false; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js b/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js index 991ba12..07a71a9 100644 --- a/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js +++ b/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js
@@ -1355,6 +1355,7 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { @@ -1363,11 +1364,12 @@ switch (actionId) { case "debugger.toggle-pause": panel.togglePause(); - break; + return true; case "sources.go-to-source": panel.showGoToSourceDialog(); - break; + return true; } + return false; } } @@ -1384,6 +1386,7 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { @@ -1391,23 +1394,24 @@ switch (actionId) { case "debugger.step-over": panel._stepOverClicked(); - break; + return true; case "debugger.step-into": panel._stepIntoClicked(); - break; + return true; case "debugger.step-into-async": panel._stepIntoAsyncClicked(); - break; + return true; case "debugger.step-out": panel._stepOutClicked(); - break; + return true; case "debugger.run-snippet": panel._runSnippet(); - break; + return true; case "debugger.toggle-breakpoints-active": panel._toggleBreakpointsActive(); - break; + return true; } + return false; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/SourcesView.js b/third_party/WebKit/Source/devtools/front_end/sources/SourcesView.js index cb4027b..247f2ea 100644 --- a/third_party/WebKit/Source/devtools/front_end/sources/SourcesView.js +++ b/third_party/WebKit/Source/devtools/front_end/sources/SourcesView.js
@@ -810,16 +810,18 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { var sourcesView = WebInspector.context.flavor(WebInspector.SourcesView); var currentUISourceCode = sourcesView.currentUISourceCode(); if (!currentUISourceCode) - return; + return false; var nextUISourceCode = WebInspector.SourcesView.SwitchFileActionDelegate._nextFile(currentUISourceCode); if (!nextUISourceCode) - return; + return false; sourcesView.showSourceLocation(nextUISourceCode); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js b/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js index 9ffd71a4..e0c9157 100644 --- a/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js +++ b/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js
@@ -1978,11 +1978,13 @@ * @override * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) { var panel = WebInspector.context.flavor(WebInspector.TimelinePanel); console.assert(panel && panel instanceof WebInspector.TimelinePanel); panel._toggleTimelineButtonClicked(); + return true; } }
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/ActionRegistry.js b/third_party/WebKit/Source/devtools/front_end/ui/ActionRegistry.js index 712e4b9..4be46e8 100644 --- a/third_party/WebKit/Source/devtools/front_end/ui/ActionRegistry.js +++ b/third_party/WebKit/Source/devtools/front_end/ui/ActionRegistry.js
@@ -50,7 +50,7 @@ /** * @param {string} actionId - * @return {!Promise.<undefined>} + * @return {!Promise.<boolean>} */ execute: function(actionId) { @@ -60,10 +60,12 @@ /** * @param {!Object} actionDelegate + * @return {boolean} */ function handleAction(actionDelegate) { - /** @type {!WebInspector.ActionDelegate} */(actionDelegate).handleAction(WebInspector.context, actionId); + var delegate = /** @type {!WebInspector.ActionDelegate} */(actionDelegate); + return delegate.handleAction(WebInspector.context, actionId); } }, @@ -101,6 +103,7 @@ /** * @param {!WebInspector.Context} context * @param {string} actionId + * @return {boolean} */ handleAction: function(context, actionId) {} }
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/ShortcutRegistry.js b/third_party/WebKit/Source/devtools/front_end/ui/ShortcutRegistry.js index 99e62d7..737d545 100644 --- a/third_party/WebKit/Source/devtools/front_end/ui/ShortcutRegistry.js +++ b/third_party/WebKit/Source/devtools/front_end/ui/ShortcutRegistry.js
@@ -99,19 +99,20 @@ if (!isPossiblyInputKey()) { if (event) event.consume(true); - processNextAction.call(this); + processNextAction.call(this, false); } else { - this._pendingActionTimer = setTimeout(processNextAction.bind(this), 0); + this._pendingActionTimer = setTimeout(processNextAction.bind(this, false), 0); } /** + * @param {boolean} handled * @this {WebInspector.ShortcutRegistry} */ - function processNextAction() + function processNextAction(handled) { delete this._pendingActionTimer; var actionId = actionIds.shift(); - if (!actionId) + if (!actionId || handled) return; this._actionRegistry.execute(actionId).then(processNextAction.bind(this));
diff --git a/third_party/WebKit/Source/platform/heap/HeapAllocator.cpp b/third_party/WebKit/Source/platform/heap/HeapAllocator.cpp index 8d27428..d78e072 100644 --- a/third_party/WebKit/Source/platform/heap/HeapAllocator.cpp +++ b/third_party/WebKit/Source/platform/heap/HeapAllocator.cpp
@@ -88,14 +88,10 @@ bool HeapAllocator::backingShrink(void* address, size_t quantizedCurrentSize, size_t quantizedShrunkSize) { - // We shrink the object only if the shrinking will make a non-small - // prompt-free block. - // FIXME: Optimize the threshold size. - if (quantizedCurrentSize <= quantizedShrunkSize + sizeof(HeapObjectHeader) + sizeof(void*) * 32) + if (!address || quantizedShrunkSize == quantizedCurrentSize) return true; - if (!address) - return true; + ASSERT(quantizedShrunkSize < quantizedCurrentSize); ThreadState* state = ThreadState::current(); if (state->sweepForbidden()) @@ -112,6 +108,12 @@ HeapObjectHeader* header = HeapObjectHeader::fromPayload(address); ASSERT(header->checkHeader()); NormalPageHeap* heap = static_cast<NormalPage*>(page)->heapForNormalPage(); + // We shrink the object only if the shrinking will make a non-small + // prompt-free block. + // FIXME: Optimize the threshold size. + if (quantizedCurrentSize <= quantizedShrunkSize + sizeof(HeapObjectHeader) + sizeof(void*) * 32 && !heap->isObjectAllocatedAtAllocationPoint(header)) + return true; + bool succeededAtAllocationPoint = heap->shrinkObject(header, quantizedShrunkSize); if (succeededAtAllocationPoint) state->allocationPointAdjusted(heap->heapIndex());
diff --git a/third_party/WebKit/Source/platform/heap/HeapAllocator.h b/third_party/WebKit/Source/platform/heap/HeapAllocator.h index 5765214..86ec0223 100644 --- a/third_party/WebKit/Source/platform/heap/HeapAllocator.h +++ b/third_party/WebKit/Source/platform/heap/HeapAllocator.h
@@ -116,7 +116,7 @@ template<typename VisitorDispatcher, typename T, typename Traits> static void trace(VisitorDispatcher visitor, T& t) { - TraceCollectionIfEnabled<WTF::ShouldBeTraced<Traits>::value, Traits::weakHandlingFlag, WTF::WeakPointersActWeak, T, Traits>::trace(visitor, t); + TraceCollectionIfEnabled<WTF::NeedsTracingTrait<Traits>::value, Traits::weakHandlingFlag, WTF::WeakPointersActWeak, T, Traits>::trace(visitor, t); } template<typename VisitorDispatcher> @@ -190,7 +190,7 @@ // (there's an assert elsewhere), but we have to specify some value for the // strongify template argument, so we specify WTF::WeakPointersActWeak, // arbitrarily. - TraceCollectionIfEnabled<WTF::ShouldBeTraced<WTF::HashTraits<Value>>::value, WTF::NoWeakHandlingInCollections, WTF::WeakPointersActWeak, Value, WTF::HashTraits<Value>>::trace(visitor, value); + TraceCollectionIfEnabled<WTF::NeedsTracingTrait<WTF::HashTraits<Value>>::value, WTF::NoWeakHandlingInCollections, WTF::WeakPointersActWeak, Value, WTF::HashTraits<Value>>::trace(visitor, value); } // The inline capacity is just a dummy template argument to match the off-heap
diff --git a/third_party/WebKit/Source/platform/heap/HeapPage.cpp b/third_party/WebKit/Source/platform/heap/HeapPage.cpp index b4de4d6..ccf2c81f 100644 --- a/third_party/WebKit/Source/platform/heap/HeapPage.cpp +++ b/third_party/WebKit/Source/platform/heap/HeapPage.cpp
@@ -699,7 +699,7 @@ size_t allocationSize = Heap::allocationSizeFromSize(newSize); ASSERT(allocationSize > header->size()); size_t expandSize = allocationSize - header->size(); - if (header->payloadEnd() == m_currentAllocationPoint && expandSize <= m_remainingAllocationSize) { + if (isObjectAllocatedAtAllocationPoint(header) && expandSize <= m_remainingAllocationSize) { m_currentAllocationPoint += expandSize; m_remainingAllocationSize -= expandSize; @@ -719,7 +719,7 @@ size_t allocationSize = Heap::allocationSizeFromSize(newSize); ASSERT(header->size() > allocationSize); size_t shrinkSize = header->size() - allocationSize; - if (header->payloadEnd() == m_currentAllocationPoint) { + if (isObjectAllocatedAtAllocationPoint(header)) { m_currentAllocationPoint -= shrinkSize; m_remainingAllocationSize += shrinkSize; SET_MEMORY_INACCESSIBLE(m_currentAllocationPoint, shrinkSize);
diff --git a/third_party/WebKit/Source/platform/heap/HeapPage.h b/third_party/WebKit/Source/platform/heap/HeapPage.h index e8473d42..cda3116 100644 --- a/third_party/WebKit/Source/platform/heap/HeapPage.h +++ b/third_party/WebKit/Source/platform/heap/HeapPage.h
@@ -782,6 +782,11 @@ bool shrinkObject(HeapObjectHeader*, size_t); void decreasePromptlyFreedSize(size_t size) { m_promptlyFreedSize -= size; } + bool isObjectAllocatedAtAllocationPoint(HeapObjectHeader* header) + { + return header->payloadEnd() == m_currentAllocationPoint; + } + private: void allocatePage(); Address lazySweepPages(size_t, size_t gcInfoIndex) override;
diff --git a/third_party/WebKit/Source/platform/heap/HeapTest.cpp b/third_party/WebKit/Source/platform/heap/HeapTest.cpp index 663b0b3..6512242 100644 --- a/third_party/WebKit/Source/platform/heap/HeapTest.cpp +++ b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
@@ -2415,8 +2415,8 @@ } }; -struct ShouldBeTraced { - explicit ShouldBeTraced(IntWrapper* wrapper) : m_wrapper(wrapper) { } +struct NeedsTracingTrait { + explicit NeedsTracingTrait(IntWrapper* wrapper) : m_wrapper(wrapper) { } DEFINE_INLINE_TRACE() { visitor->trace(m_wrapper); } Member<IntWrapper> m_wrapper; };
diff --git a/third_party/WebKit/Source/platform/heap/TraceTraits.h b/third_party/WebKit/Source/platform/heap/TraceTraits.h index eafe3ee..285c6d7 100644 --- a/third_party/WebKit/Source/platform/heap/TraceTraits.h +++ b/third_party/WebKit/Source/platform/heap/TraceTraits.h
@@ -181,7 +181,7 @@ static void trace(VisitorDispatcher visitor, void* self) { static_assert(!WTF::IsWeak<T>::value, "weakness in HeapVectors and Deques are not supported"); - if (WTF::ShouldBeTraced<Traits>::value) + if (WTF::NeedsTracingTrait<Traits>::value) WTF::TraceInCollectionTrait<WTF::NoWeakHandlingInCollections, WTF::WeakPointersActWeak, HeapVectorBacking<T, Traits>, void>::trace(visitor, self); } @@ -206,7 +206,7 @@ template<typename VisitorDispatcher> static void trace(VisitorDispatcher visitor, void* self) { - if (WTF::ShouldBeTraced<Traits>::value || Traits::weakHandlingFlag == WTF::WeakHandlingInCollections) + if (WTF::NeedsTracingTrait<Traits>::value || Traits::weakHandlingFlag == WTF::WeakHandlingInCollections) WTF::TraceInCollectionTrait<WTF::NoWeakHandlingInCollections, WTF::WeakPointersActStrong, Backing, void>::trace(visitor, self); } @@ -375,13 +375,13 @@ // This is fine because the fact that the object can be initialized // with memset indicates that it is safe to treat the zerod slot // as a valid object. - static_assert(!ShouldBeTraced<Traits>::value || Traits::canClearUnusedSlotsWithMemset || WTF::IsPolymorphic<T>::value, "HeapVectorBacking doesn't support objects that cannot be cleared as unused with memset."); + static_assert(!NeedsTracingTrait<Traits>::value || Traits::canClearUnusedSlotsWithMemset || WTF::IsPolymorphic<T>::value, "HeapVectorBacking doesn't support objects that cannot be cleared as unused with memset."); // This trace method is instantiated for vectors where - // ShouldBeTraced<Traits>::value is false, but the trace method + // NeedsTracingTrait<Traits>::value is false, but the trace method // should not be called. Thus we cannot static-assert - // ShouldBeTraced<Traits>::value but should runtime-assert it. - ASSERT(ShouldBeTraced<Traits>::value); + // NeedsTracingTrait<Traits>::value but should runtime-assert it. + ASSERT(NeedsTracingTrait<Traits>::value); T* array = reinterpret_cast<T*>(self); blink::HeapObjectHeader* header = blink::HeapObjectHeader::fromPayload(self); @@ -392,7 +392,7 @@ if (WTF::IsPolymorphic<T>::value) { for (size_t i = 0; i < length; ++i) { if (blink::vTableInitialized(&array[i])) - blink::TraceIfEnabled<T, ShouldBeTraced<Traits>::value>::trace(visitor, array[i]); + blink::TraceIfEnabled<T, NeedsTracingTrait<Traits>::value>::trace(visitor, array[i]); } } else { #ifdef ANNOTATE_CONTIGUOUS_CONTAINER @@ -401,7 +401,7 @@ ANNOTATE_CHANGE_SIZE(array, length, 0, length); #endif for (size_t i = 0; i < length; ++i) - blink::TraceIfEnabled<T, ShouldBeTraced<Traits>::value>::trace(visitor, array[i]); + blink::TraceIfEnabled<T, NeedsTracingTrait<Traits>::value>::trace(visitor, array[i]); } return false; } @@ -427,7 +427,7 @@ size_t length = header->payloadSize() / sizeof(Value); for (size_t i = 0; i < length; ++i) { if (!HashTableHelper<Value, typename Table::ExtractorType, typename Table::KeyTraitsType>::isEmptyOrDeletedBucket(array[i])) - blink::TraceCollectionIfEnabled<ShouldBeTraced<Traits>::value, Traits::weakHandlingFlag, strongify, Value, Traits>::trace(visitor, array[i]); + blink::TraceCollectionIfEnabled<NeedsTracingTrait<Traits>::value, Traits::weakHandlingFlag, strongify, Value, Traits>::trace(visitor, array[i]); } return false; } @@ -472,9 +472,9 @@ template<typename VisitorDispatcher> static bool trace(VisitorDispatcher visitor, KeyValuePair<Key, Value>& self) { - ASSERT(ShouldBeTraced<Traits>::value); - blink::TraceCollectionIfEnabled<ShouldBeTraced<typename Traits::KeyTraits>::value, NoWeakHandlingInCollections, strongify, Key, typename Traits::KeyTraits>::trace(visitor, self.key); - blink::TraceCollectionIfEnabled<ShouldBeTraced<typename Traits::ValueTraits>::value, NoWeakHandlingInCollections, strongify, Value, typename Traits::ValueTraits>::trace(visitor, self.value); + ASSERT(NeedsTracingTrait<Traits>::value); + blink::TraceCollectionIfEnabled<NeedsTracingTrait<typename Traits::KeyTraits>::value, NoWeakHandlingInCollections, strongify, Key, typename Traits::KeyTraits>::trace(visitor, self.key); + blink::TraceCollectionIfEnabled<NeedsTracingTrait<typename Traits::ValueTraits>::value, NoWeakHandlingInCollections, strongify, Value, typename Traits::ValueTraits>::trace(visitor, self.value); return false; } }; @@ -501,21 +501,21 @@ // reviewers, and we may relax it. const bool keyIsWeak = Traits::KeyTraits::weakHandlingFlag == WeakHandlingInCollections; const bool valueIsWeak = Traits::ValueTraits::weakHandlingFlag == WeakHandlingInCollections; - const bool keyHasStrongRefs = ShouldBeTraced<typename Traits::KeyTraits>::value; - const bool valueHasStrongRefs = ShouldBeTraced<typename Traits::ValueTraits>::value; + const bool keyHasStrongRefs = NeedsTracingTrait<typename Traits::KeyTraits>::value; + const bool valueHasStrongRefs = NeedsTracingTrait<typename Traits::ValueTraits>::value; static_assert(!keyIsWeak || !valueIsWeak || !keyHasStrongRefs || !valueHasStrongRefs, "this configuration is disallowed to avoid unexpected leaks"); if ((valueIsWeak && !keyIsWeak) || (valueIsWeak && keyIsWeak && !valueHasStrongRefs)) { // Check value first. - bool deadWeakObjectsFoundOnValueSide = blink::TraceCollectionIfEnabled<ShouldBeTraced<typename Traits::ValueTraits>::value, Traits::ValueTraits::weakHandlingFlag, strongify, Value, typename Traits::ValueTraits>::trace(visitor, self.value); + bool deadWeakObjectsFoundOnValueSide = blink::TraceCollectionIfEnabled<NeedsTracingTrait<typename Traits::ValueTraits>::value, Traits::ValueTraits::weakHandlingFlag, strongify, Value, typename Traits::ValueTraits>::trace(visitor, self.value); if (deadWeakObjectsFoundOnValueSide) return true; - return blink::TraceCollectionIfEnabled<ShouldBeTraced<typename Traits::KeyTraits>::value, Traits::KeyTraits::weakHandlingFlag, strongify, Key, typename Traits::KeyTraits>::trace(visitor, self.key); + return blink::TraceCollectionIfEnabled<NeedsTracingTrait<typename Traits::KeyTraits>::value, Traits::KeyTraits::weakHandlingFlag, strongify, Key, typename Traits::KeyTraits>::trace(visitor, self.key); } // Check key first. - bool deadWeakObjectsFoundOnKeySide = blink::TraceCollectionIfEnabled<ShouldBeTraced<typename Traits::KeyTraits>::value, Traits::KeyTraits::weakHandlingFlag, strongify, Key, typename Traits::KeyTraits>::trace(visitor, self.key); + bool deadWeakObjectsFoundOnKeySide = blink::TraceCollectionIfEnabled<NeedsTracingTrait<typename Traits::KeyTraits>::value, Traits::KeyTraits::weakHandlingFlag, strongify, Key, typename Traits::KeyTraits>::trace(visitor, self.key); if (deadWeakObjectsFoundOnKeySide) return true; - return blink::TraceCollectionIfEnabled<ShouldBeTraced<typename Traits::ValueTraits>::value, Traits::ValueTraits::weakHandlingFlag, strongify, Value, typename Traits::ValueTraits>::trace(visitor, self.value); + return blink::TraceCollectionIfEnabled<NeedsTracingTrait<typename Traits::ValueTraits>::value, Traits::ValueTraits::weakHandlingFlag, strongify, Value, typename Traits::ValueTraits>::trace(visitor, self.value); } }; @@ -526,7 +526,7 @@ template<typename VisitorDispatcher> static bool trace(VisitorDispatcher visitor, LinkedHashSetNode<Value, Allocator>& self) { - ASSERT(ShouldBeTraced<Traits>::value); + ASSERT(NeedsTracingTrait<Traits>::value); return TraceInCollectionTrait<NoWeakHandlingInCollections, strongify, Value, typename Traits::ValueTraits>::trace(visitor, self.m_value); } };
diff --git a/third_party/WebKit/Source/web/WebElementTest.cpp b/third_party/WebKit/Source/web/WebElementTest.cpp index ea3542d..9bdae0f 100644 --- a/third_party/WebKit/Source/web/WebElementTest.cpp +++ b/third_party/WebKit/Source/web/WebElementTest.cpp
@@ -116,7 +116,7 @@ EXPECT_TRUE(testElement().hasNonEmptyLayoutSize()); insertHTML(s_emptyBlock); - RefPtrWillBeRawPtr<ShadowRoot> root = document().getElementById("testElement")->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> root = document().getElementById("testElement")->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); root->setInnerHTML("<div>Hello World</div>", ASSERT_NO_EXCEPTION); EXPECT_TRUE(testElement().hasNonEmptyLayoutSize()); }
diff --git a/third_party/WebKit/Source/web/tests/TextFinderTest.cpp b/third_party/WebKit/Source/web/tests/TextFinderTest.cpp index 58ea0069d..0630e0bc 100644 --- a/third_party/WebKit/Source/web/tests/TextFinderTest.cpp +++ b/third_party/WebKit/Source/web/tests/TextFinderTest.cpp
@@ -188,7 +188,7 @@ TEST_F(TextFinderTest, FindTextInShadowDOM) { document().body()->setInnerHTML("<b>FOO</b><i>foo</i>", ASSERT_NO_EXCEPTION); - RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = document().body()->createShadowRootInternal(ShadowRootType::OpenByDefault, ASSERT_NO_EXCEPTION); + RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = document().body()->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); shadowRoot->setInnerHTML("<content select=\"i\"></content><u>Foo</u><content></content>", ASSERT_NO_EXCEPTION); Node* textInBElement = document().body()->firstChild()->firstChild(); Node* textInIElement = document().body()->lastChild()->firstChild();
diff --git a/third_party/WebKit/Source/wtf/Deque.h b/third_party/WebKit/Source/wtf/Deque.h index 45ecd0d..37f5c9e 100644 --- a/third_party/WebKit/Source/wtf/Deque.h +++ b/third_party/WebKit/Source/wtf/Deque.h
@@ -547,7 +547,7 @@ ASSERT(Allocator::isGarbageCollected); // Garbage collector must be enabled. const T* bufferBegin = m_buffer.buffer(); const T* end = bufferBegin + m_end; - if (ShouldBeTraced<VectorTraits<T>>::value) { + if (NeedsTracingTrait<VectorTraits<T>>::value) { if (m_start <= m_end) { for (const T* bufferEntry = bufferBegin + m_start; bufferEntry != end; bufferEntry++) Allocator::template trace<VisitorDispatcher, T, VectorTraits<T>>(visitor, *const_cast<T*>(bufferEntry));
diff --git a/third_party/WebKit/Source/wtf/HashTable.h b/third_party/WebKit/Source/wtf/HashTable.h index c85ddc2a..60527e73 100644 --- a/third_party/WebKit/Source/wtf/HashTable.h +++ b/third_party/WebKit/Source/wtf/HashTable.h
@@ -1333,7 +1333,7 @@ // cases). However, it shouldn't cause any issue. Allocator::registerWeakMembers(visitor, this, m_table, WeakProcessingHashTableHelper<Traits::weakHandlingFlag, Key, Value, Extractor, HashFunctions, Traits, KeyTraits, Allocator>::process); } - if (ShouldBeTraced<Traits>::value) { + if (NeedsTracingTrait<Traits>::value) { if (Traits::weakHandlingFlag == WeakHandlingInCollections) { // If we have both strong and weak pointers in the collection then // we queue up the collection for fixed point iteration a la
diff --git a/third_party/WebKit/Source/wtf/HashTraits.h b/third_party/WebKit/Source/wtf/HashTraits.h index 51d89726..b131594 100644 --- a/third_party/WebKit/Source/wtf/HashTraits.h +++ b/third_party/WebKit/Source/wtf/HashTraits.h
@@ -276,7 +276,7 @@ template <typename U = void> struct NeedsTracingLazily { - static const bool value = ShouldBeTraced<KeyTraits>::value || ShouldBeTraced<ValueTraits>::value; + static const bool value = NeedsTracingTrait<KeyTraits>::value || NeedsTracingTrait<ValueTraits>::value; }; static const WeakHandlingFlag weakHandlingFlag = (KeyTraits::weakHandlingFlag == WeakHandlingInCollections || ValueTraits::weakHandlingFlag == WeakHandlingInCollections) ? WeakHandlingInCollections : NoWeakHandlingInCollections;
diff --git a/third_party/WebKit/Source/wtf/TypeTraits.h b/third_party/WebKit/Source/wtf/TypeTraits.h index 7f78db7..8cfcbb1 100644 --- a/third_party/WebKit/Source/wtf/TypeTraits.h +++ b/third_party/WebKit/Source/wtf/TypeTraits.h
@@ -337,7 +337,7 @@ // Convenience template wrapping the NeedsTracingLazily template in // Collection Traits. It helps make the code more readable. template <typename Traits> -class ShouldBeTraced { +class NeedsTracingTrait { public: static const bool value = Traits::template NeedsTracingLazily<>::value; };
diff --git a/third_party/WebKit/Source/wtf/Vector.h b/third_party/WebKit/Source/wtf/Vector.h index 6acd88d..4209f95 100644 --- a/third_party/WebKit/Source/wtf/Vector.h +++ b/third_party/WebKit/Source/wtf/Vector.h
@@ -339,13 +339,13 @@ // If the vector backing is garbage-collected and needs tracing or // finalizing, we clear out the unused slots so that the visitor or the // finalizer does not cause a problem when visiting the unused slots. - VectorUnusedSlotClearer<Allocator::isGarbageCollected && (VectorTraits<T>::needsDestruction || ShouldBeTraced<VectorTraits<T>>::value), T>::clear(from, to); + VectorUnusedSlotClearer<Allocator::isGarbageCollected && (VectorTraits<T>::needsDestruction || NeedsTracingTrait<VectorTraits<T>>::value), T>::clear(from, to); } void checkUnusedSlots(const T* from, const T* to) { #if ENABLE(ASSERT) && !defined(ANNOTATE_CONTIGUOUS_CONTAINER) - VectorUnusedSlotClearer<Allocator::isGarbageCollected && (VectorTraits<T>::needsDestruction || ShouldBeTraced<VectorTraits<T>>::value), T>::checkCleared(from, to); + VectorUnusedSlotClearer<Allocator::isGarbageCollected && (VectorTraits<T>::needsDestruction || NeedsTracingTrait<VectorTraits<T>>::value), T>::checkCleared(from, to); #endif } @@ -1330,7 +1330,7 @@ } const T* bufferBegin = buffer(); const T* bufferEnd = buffer() + size(); - if (ShouldBeTraced<VectorTraits<T>>::value) { + if (NeedsTracingTrait<VectorTraits<T>>::value) { for (const T* bufferEntry = bufferBegin; bufferEntry != bufferEnd; bufferEntry++) Allocator::template trace<VisitorDispatcher, T, VectorTraits<T>>(visitor, *const_cast<T*>(bufferEntry)); checkUnusedSlots(buffer() + size(), buffer() + capacity());
diff --git a/third_party/WebKit/Source/wtf/VectorTraits.h b/third_party/WebKit/Source/wtf/VectorTraits.h index 0ced420..11798ad 100644 --- a/third_party/WebKit/Source/wtf/VectorTraits.h +++ b/third_party/WebKit/Source/wtf/VectorTraits.h
@@ -99,7 +99,7 @@ static const bool canClearUnusedSlotsWithMemset = FirstTraits::canClearUnusedSlotsWithMemset && SecondTraits::canClearUnusedSlotsWithMemset; template <typename U = void> struct NeedsTracingLazily { - static const bool value = ShouldBeTraced<FirstTraits>::value || ShouldBeTraced<SecondTraits>::value; + static const bool value = NeedsTracingTrait<FirstTraits>::value || NeedsTracingTrait<SecondTraits>::value; }; static const WeakHandlingFlag weakHandlingFlag = NoWeakHandlingInCollections; // We don't support weak handling in vectors. };
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations_unittest.py index 8a675d8..be2a4e91 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/bot_test_expectations_unittest.py
@@ -177,7 +177,7 @@ 'fail.html': {'results': [[4, 'F']]}, 'f_p.html': {'results': [[1, 'F'], [2, 'P']]}, 'crash.html': {'results': [[2, 'F'], [1, 'C']], 'expected': 'WONTFIX'}, - 'image.html': {'results': [[2, 'F'], [1, 'I']], 'expected': 'CRASH FAIL'}, + 'image.html': {'results': [[2, 'F'], [1, 'I']], 'expected': 'CRASH TEXT'}, 'i_f.html': {'results': [[1, 'F'], [5, 'I']], 'expected': 'PASS'}, 'all.html': self._results_from_string('FPFPCNCNTXTXIZIZOCOCYKYK'), } @@ -190,7 +190,7 @@ 'foo/fail.html': sorted(["TEXT", "PASS"]), 'foo/f_p.html': sorted(["TEXT", "PASS"]), 'foo/crash.html': sorted(["WONTFIX", "CRASH", "TEXT"]), - 'foo/image.html': sorted(["CRASH", "FAIL", "IMAGE"]), + 'foo/image.html': sorted(["CRASH", "TEXT", "IMAGE"]), 'foo/i_f.html': sorted(["PASS", "IMAGE", "TEXT"]), 'foo/all.html': sorted(["TEXT", "PASS", "IMAGE+TEXT", "TIMEOUT", "CRASH", "IMAGE", "MISSING", "LEAK"]), })
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py index 562a4a7..c36e98cf 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py
@@ -229,7 +229,6 @@ 'Crash': 'CRASH', 'Leak': 'LEAK', 'Failure': 'FAIL', - 'ImageOnlyFailure': 'IMAGE', MISSING_KEYWORD: 'MISSING', 'Pass': 'PASS', 'Rebaseline': 'REBASELINE', @@ -242,7 +241,7 @@ } _inverted_expectation_tokens = dict([(value, name) for name, value in _expectation_tokens.iteritems()] + - [('TEXT', 'Failure'), ('IMAGE+TEXT', 'Failure'), ('AUDIO', 'Failure')]) + [('TEXT', 'Failure'), ('IMAGE', 'Failure'), ('IMAGE+TEXT', 'Failure'), ('AUDIO', 'Failure')]) # FIXME: Seems like these should be classmethods on TestExpectationLine instead of TestExpectationParser. @classmethod @@ -884,7 +883,7 @@ return True if result in (PASS, TEXT, IMAGE, IMAGE_PLUS_TEXT, AUDIO, MISSING) and (NEEDS_REBASELINE in expected_results or NEEDS_MANUAL_REBASELINE in expected_results): return True - if result in (TEXT, IMAGE_PLUS_TEXT, AUDIO) and (FAIL in expected_results): + if result in (TEXT, IMAGE, IMAGE_PLUS_TEXT, AUDIO) and (FAIL in expected_results): return True if result == MISSING and test_needs_rebaselining: return True
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py index f438fbc..feabaa9 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py
@@ -194,7 +194,7 @@ 'disabled-test.html-disabled', self.parse_exp("Bug(user) [ FOO ] failures/expected/text.html [ Failure ]\n" "Bug(user) non-existent-test.html [ Failure ]\n" - "Bug(user) disabled-test.html-disabled [ ImageOnlyFailure ]\n" + "Bug(user) disabled-test.html-disabled [ Failure ]\n" "Bug(user) [ Release ] test-to-rebaseline.html [ NeedsRebaseline ]", is_lint_mode=True) self.assertFalse(True, "ParseError wasn't raised") except ParseError, e: @@ -226,8 +226,8 @@ def test_overrides(self): self.parse_exp("Bug(exp) failures/expected/text.html [ Failure ]", - "Bug(override) failures/expected/text.html [ ImageOnlyFailure ]") - self.assert_exp_list('failures/expected/text.html', [FAIL, IMAGE]) + "Bug(override) failures/expected/text.html [ Timeout ]") + self.assert_exp_list('failures/expected/text.html', [FAIL, TIMEOUT]) def test_overrides__directory(self): self.parse_exp("Bug(exp) failures/expected/text.html [ Failure ]", @@ -237,7 +237,7 @@ def test_overrides__duplicate(self): self.assert_bad_expectations("Bug(exp) failures/expected/text.html [ Failure ]", - "Bug(override) failures/expected/text.html [ ImageOnlyFailure ]\n" + "Bug(override) failures/expected/text.html [ Timeout ]\n" "Bug(override) failures/expected/text.html [ Crash ]\n") def test_pixel_tests_flag(self): @@ -266,7 +266,7 @@ self.parse_exp(""" Bug(test) failures/expected/crash.html [ Crash ] -Bug(test) failures/expected/image.html [ ImageOnlyFailure ] +Bug(test) failures/expected/image.html [ Failure ] Bug(test) failures/expected/text.html [ Failure ] Bug(test) failures/expected/timeout.html [ Timeout ] """) @@ -277,8 +277,8 @@ def test_more_specific_override_resets_skip(self): self.parse_exp("Bug(x) failures/expected [ Skip ]\n" - "Bug(x) failures/expected/text.html [ ImageOnlyFailure ]\n") - self.assert_exp('failures/expected/text.html', IMAGE) + "Bug(x) failures/expected/text.html [ Failure ]\n") + self.assert_exp('failures/expected/text.html', FAIL) self.assertFalse(self._port._filesystem.join(self._port.layout_tests_dir(), 'failures/expected/text.html') in self._exp.get_tests_with_result_type(SKIP)) @@ -289,11 +289,11 @@ test_name2 = 'passes/text.html' expectations_dict = OrderedDict() - expectations_dict['expectations'] = "Bug(x) %s [ ImageOnlyFailure ]\nBug(x) %s [ Slow ]\n" % (test_name1, test_name2) + expectations_dict['expectations'] = "Bug(x) %s [ Failure ]\nBug(x) %s [ Slow ]\n" % (test_name1, test_name2) self._port.expectations_dict = lambda: expectations_dict expectations = TestExpectations(self._port, self.get_basic_tests()) - self.assertEqual(expectations.get_expectations(test_name1), set([IMAGE])) + self.assertEqual(expectations.get_expectations(test_name1), set([FAIL])) self.assertEqual(expectations.get_expectations(test_name2), set([SLOW])) def bot_expectations(): @@ -302,7 +302,7 @@ self._port._options.ignore_flaky_tests = 'unexpected' expectations = TestExpectations(self._port, self.get_basic_tests()) - self.assertEqual(expectations.get_expectations(test_name1), set([PASS, IMAGE, TIMEOUT])) + self.assertEqual(expectations.get_expectations(test_name1), set([PASS, FAIL, TIMEOUT])) self.assertEqual(expectations.get_expectations(test_name2), set([CRASH, SLOW])) class SkippedTests(Base): @@ -407,7 +407,7 @@ def test_wontfix(self): self.assert_tokenize_exp('foo.html [ WontFix ]', specifiers=[], expectations=['WONTFIX', 'SKIP']) - self.assert_tokenize_exp('foo.html [ WontFix ImageOnlyFailure ]', specifiers=[], expectations=['WONTFIX', 'SKIP'], + self.assert_tokenize_exp('foo.html [ WontFix Failure ]', specifiers=[], expectations=['WONTFIX', 'SKIP'], warnings=['A test marked Skip or WontFix must not have other expectations.']) def test_blank_line(self): @@ -463,12 +463,12 @@ def test_duplicates(self): self.assertRaises(ParseError, self.parse_exp, """ Bug(exp) failures/expected/text.html [ Failure ] -Bug(exp) failures/expected/text.html [ ImageOnlyFailure ]""", is_lint_mode=True) +Bug(exp) failures/expected/text.html [ Timeout ]""", is_lint_mode=True) self.assertRaises(ParseError, self.parse_exp, self.get_basic_expectations(), overrides=""" Bug(override) failures/expected/text.html [ Failure ] -Bug(override) failures/expected/text.html [ ImageOnlyFailure ]""", is_lint_mode=True) +Bug(override) failures/expected/text.html [ Timeout ]""", is_lint_mode=True) def test_duplicate_with_line_before_preceding_line(self): self.assert_bad_expectations("""Bug(exp) [ Debug ] failures/expected/text.html [ Failure ] @@ -814,9 +814,9 @@ expectation_line.parsed_expectations = set([IMAGE]) self.assertEqual(expectation_line.to_string(self._converter), None) expectation_line.matching_configurations = set([TestConfiguration('xp', 'x86', 'release')]) - self.assertEqual(expectation_line.to_string(self._converter), 'Bug(x) [ XP Release ] test/name/for/realz.html [ ImageOnlyFailure ]') + self.assertEqual(expectation_line.to_string(self._converter), 'Bug(x) [ XP Release ] test/name/for/realz.html [ Failure ]') expectation_line.matching_configurations = set([TestConfiguration('xp', 'x86', 'release'), TestConfiguration('xp', 'x86', 'debug')]) - self.assertEqual(expectation_line.to_string(self._converter), 'Bug(x) [ XP ] test/name/for/realz.html [ ImageOnlyFailure ]') + self.assertEqual(expectation_line.to_string(self._converter), 'Bug(x) [ XP ] test/name/for/realz.html [ Failure ]') def test_serialize_parsed_expectations(self): expectation_line = TestExpectationLine() @@ -894,9 +894,9 @@ add_line(set([TestConfiguration('xp', 'x86', 'release')]), True) add_line(set([TestConfiguration('xp', 'x86', 'release'), TestConfiguration('xp', 'x86', 'debug')]), False) serialized = TestExpectations.list_to_string(lines, self._converter) - self.assertEqual(serialized, "Bug(x) [ XP Release ] Yay [ ImageOnlyFailure ]\nBug(x) [ XP ] Yay [ ImageOnlyFailure ]") + self.assertEqual(serialized, "Bug(x) [ XP Release ] Yay [ Failure ]\nBug(x) [ XP ] Yay [ Failure ]") serialized = TestExpectations.list_to_string(lines, self._converter, reconstitute_only_these=reconstitute_only_these) - self.assertEqual(serialized, "Bug(x) [ XP Release ] Yay [ ImageOnlyFailure ]\nNay") + self.assertEqual(serialized, "Bug(x) [ XP Release ] Yay [ Failure ]\nNay") def disabled_test_string_whitespace_stripping(self): # FIXME: Re-enable this test once we rework the code to no longer support the old syntax.
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py index a18c5393..fb34b66 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py
@@ -259,7 +259,7 @@ self.assertTrue('time' not in summary['tests']['failures']['expected']['leak.html']) def test_timeout_then_unexpected_pass(self): - test_name = 'failures/expected/image.html' + test_name = 'failures/expected/text.html' expectations = test_expectations.TestExpectations(self.port, [test_name]) initial_results = test_run_results.TestRunResults(expectations, 1) initial_results.add(get_result(test_name, test_expectations.TIMEOUT, run_time=1), False, False) @@ -272,9 +272,9 @@ summary = test_run_results.summarize_results( self.port, expectations, initial_results, all_retry_results, enabled_pixel_tests_in_retry=True) - self.assertTrue('is_unexpected' not in summary['tests']['failures']['expected']['image.html']) - self.assertEquals(summary['tests']['failures']['expected']['image.html']['expected'], 'IMAGE') - self.assertEquals(summary['tests']['failures']['expected']['image.html']['actual'], 'TIMEOUT LEAK PASS PASS') + self.assertTrue('is_unexpected' in summary['tests']['failures']['expected']['text.html']) + self.assertEquals(summary['tests']['failures']['expected']['text.html']['expected'], 'FAIL') + self.assertEquals(summary['tests']['failures']['expected']['text.html']['actual'], 'TIMEOUT LEAK PASS PASS') self.assertEquals(summary['num_passes'], 1) self.assertEquals(summary['num_regressions'], 0) self.assertEquals(summary['num_flaky'], 0)
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py index bd7ac7a8..328454d 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py
@@ -285,12 +285,12 @@ filesystem.write_text_file('/mock-checkout/LayoutTests/TestExpectations', """ Bug(test) failures/expected/crash.html [ Crash ] Bug(test) failures/expected/crash_then_text.html [ Failure ] -Bug(test) failures/expected/image.html [ ImageOnlyFailure ] +Bug(test) failures/expected/image.html [ Failure ] Bug(test) failures/expected/needsrebaseline.html [ NeedsRebaseline ] Bug(test) failures/expected/needsmanualrebaseline.html [ NeedsManualRebaseline ] Bug(test) failures/expected/audio.html [ Failure ] -Bug(test) failures/expected/image_checksum.html [ ImageOnlyFailure ] -Bug(test) failures/expected/mismatch.html [ ImageOnlyFailure ] +Bug(test) failures/expected/image_checksum.html [ Failure ] +Bug(test) failures/expected/mismatch.html [ Failure ] Bug(test) failures/expected/missing_check.html [ Missing Pass ] Bug(test) failures/expected/missing_image.html [ Missing Pass ] Bug(test) failures/expected/missing_audio.html [ Missing Pass ] @@ -298,7 +298,7 @@ Bug(test) failures/expected/newlines_leading.html [ Failure ] Bug(test) failures/expected/newlines_trailing.html [ Failure ] Bug(test) failures/expected/newlines_with_excess_CR.html [ Failure ] -Bug(test) failures/expected/reftest.html [ ImageOnlyFailure ] +Bug(test) failures/expected/reftest.html [ Failure ] Bug(test) failures/expected/text.html [ Failure ] Bug(test) failures/expected/timeout.html [ Timeout ] Bug(test) failures/expected/keyboard.html [ WontFix ]
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py index 9814900..febc6754b 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py
@@ -446,7 +446,7 @@ # This tests that we skip both known failing and known flaky tests. Because there are # no known flaky tests in the default test_expectations, we add additional expectations. host = MockHost() - host.filesystem.write_text_file('/tmp/overrides.txt', 'Bug(x) passes/image.html [ ImageOnlyFailure Pass ]\n') + host.filesystem.write_text_file('/tmp/overrides.txt', 'Bug(x) passes/image.html [ Failure Pass ]\n') batches = get_test_batches(['--skip-failing-tests', '--additional-expectations', '/tmp/overrides.txt'], host=host) has_passes_text = False @@ -822,7 +822,7 @@ def test_additional_expectations(self): host = MockHost() - host.filesystem.write_text_file('/tmp/overrides.txt', 'Bug(x) failures/unexpected/mismatch.html [ ImageOnlyFailure ]\n') + host.filesystem.write_text_file('/tmp/overrides.txt', 'Bug(x) failures/unexpected/mismatch.html [ Failure ]\n') self.assertTrue(passing_run(['--additional-expectations', '/tmp/overrides.txt', 'failures/unexpected/mismatch.html'], tests_included=True, host=host))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/queries_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/queries_unittest.py index 6bce725..8fb37fb2 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/queries_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/queries_unittest.py
@@ -53,44 +53,44 @@ self.assertMultiLineEqual(stdout, expected_stdout) def test_basic(self): - self.run_test(['failures/expected/text.html', 'failures/expected/image.html'], + self.run_test(['failures/expected/text.html', 'failures/expected/timeout.html'], ('// For test-win-xp\n' - 'failures/expected/image.html [ ImageOnlyFailure ]\n' - 'failures/expected/text.html [ Failure ]\n')) + 'failures/expected/text.html [ Failure ]\n' + 'failures/expected/timeout.html [ Timeout ]\n')) def test_multiple(self): - self.run_test(['failures/expected/text.html', 'failures/expected/image.html'], + self.run_test(['failures/expected/text.html', 'failures/expected/timeout.html'], ('// For test-win-win7\n' - 'failures/expected/image.html [ ImageOnlyFailure ]\n' 'failures/expected/text.html [ Failure ]\n' + 'failures/expected/timeout.html [ Timeout ]\n' '\n' '// For test-win-xp\n' - 'failures/expected/image.html [ ImageOnlyFailure ]\n' - 'failures/expected/text.html [ Failure ]\n'), + 'failures/expected/text.html [ Failure ]\n' + 'failures/expected/timeout.html [ Timeout ]\n'), platform='test-win-*') def test_full(self): - self.run_test(['failures/expected/text.html', 'failures/expected/image.html'], + self.run_test(['failures/expected/text.html', 'failures/expected/timeout.html'], ('// For test-win-xp\n' - 'Bug(test) failures/expected/image.html [ ImageOnlyFailure ]\n' - 'Bug(test) failures/expected/text.html [ Failure ]\n'), + 'Bug(test) failures/expected/text.html [ Failure ]\n' + 'Bug(test) failures/expected/timeout.html [ Timeout ]\n'), full=True) def test_exclude(self): - self.run_test(['failures/expected/text.html', 'failures/expected/image.html'], + self.run_test(['failures/expected/text.html', 'failures/expected/crash.html'], ('// For test-win-xp\n' 'failures/expected/text.html [ Failure ]\n'), - exclude_keyword=['image']) + exclude_keyword=['crash']) def test_include(self): - self.run_test(['failures/expected/text.html', 'failures/expected/image.html'], + self.run_test(['failures/expected/text.html', 'failures/expected/crash.html'], ('// For test-win-xp\n' - 'failures/expected/image.html\n'), - include_keyword=['image']) + 'failures/expected/crash.html\n'), + include_keyword=['crash']) def test_csv(self): self.run_test(['failures/expected/text.html', 'failures/expected/image.html'], - ('test-win-xp,failures/expected/image.html,Bug(test),,IMAGE\n' + ('test-win-xp,failures/expected/image.html,Bug(test),,FAIL\n' 'test-win-xp,failures/expected/text.html,Bug(test),,FAIL\n'), csv=True)
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py index eb43b1a..c723841 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py
@@ -272,7 +272,7 @@ def test_rebaseline_test_with_results_directory(self): self._write("userscripts/another-test.html", "test data") - self._write(self.lion_expectations_path, "Bug(x) [ Mac ] userscripts/another-test.html [ ImageOnlyFailure ]\nbug(z) [ Linux ] userscripts/another-test.html [ ImageOnlyFailure ]\n") + self._write(self.lion_expectations_path, "Bug(x) [ Mac ] userscripts/another-test.html [ Failure ]\nbug(z) [ Linux ] userscripts/another-test.html [ Failure ]\n") self.options.results_directory = '/tmp' self.command._rebaseline_test_and_update_expectations(self.options) self.assertItemsEqual(self.tool.web.urls_fetched, ['file:///tmp/userscripts/another-test-actual.txt']) @@ -377,7 +377,7 @@ options = MockOptions(optimize=True, verbose=True, results_directory=None) - self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.html [ ImageOnlyFailure ]\n") + self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.html [ Failure ]\n") self._write("userscripts/first-test.html", "Dummy test contents") self.command._rebaseline(options, {"userscripts/first-test.html": {"MOCK builder": ["txt", "png"]}}) @@ -457,26 +457,26 @@ def test_rebaseline_updates_expectations_file(self): options = MockOptions(optimize=False, verbose=True, results_directory=None) - self._write(self.lion_expectations_path, "Bug(x) [ Mac ] userscripts/first-test.html [ ImageOnlyFailure ]\nbug(z) [ Linux ] userscripts/first-test.html [ ImageOnlyFailure ]\n") + self._write(self.lion_expectations_path, "Bug(x) [ Mac ] userscripts/first-test.html [ Failure ]\nbug(z) [ Linux ] userscripts/first-test.html [ Failure ]\n") self._write("userscripts/first-test.html", "Dummy test contents") self._setup_mock_builder_data() self.command._rebaseline(options, {"userscripts/first-test.html": {"WebKit Mac10.7": ["txt", "png"]}}) new_expectations = self._read(self.lion_expectations_path) - self.assertMultiLineEqual(new_expectations, "Bug(x) [ Mavericks MountainLion Retina SnowLeopard Yosemite ] userscripts/first-test.html [ ImageOnlyFailure ]\nbug(z) [ Linux ] userscripts/first-test.html [ ImageOnlyFailure ]\n") + self.assertMultiLineEqual(new_expectations, "Bug(x) [ Mavericks MountainLion Retina SnowLeopard Yosemite ] userscripts/first-test.html [ Failure ]\nbug(z) [ Linux ] userscripts/first-test.html [ Failure ]\n") def test_rebaseline_updates_expectations_file_all_platforms(self): options = MockOptions(optimize=False, verbose=True, results_directory=None) - self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.html [ ImageOnlyFailure ]\n") + self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.html [ Failure ]\n") self._write("userscripts/first-test.html", "Dummy test contents") self._setup_mock_builder_data() self.command._rebaseline(options, {"userscripts/first-test.html": {"WebKit Mac10.7": ["txt", "png"]}}) new_expectations = self._read(self.lion_expectations_path) - self.assertMultiLineEqual(new_expectations, "Bug(x) [ Android Linux Mavericks MountainLion Retina SnowLeopard Win Yosemite ] userscripts/first-test.html [ ImageOnlyFailure ]\n") + self.assertMultiLineEqual(new_expectations, "Bug(x) [ Android Linux Mavericks MountainLion Retina SnowLeopard Win Yosemite ] userscripts/first-test.html [ Failure ]\n") def test_rebaseline_handles_platform_skips(self): # This test is just like test_rebaseline_updates_expectations_file_all_platforms(), @@ -484,7 +484,7 @@ # we count that as passing, and do not think that we still need to rebaseline it. options = MockOptions(optimize=False, verbose=True, results_directory=None) - self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.html [ ImageOnlyFailure ]\n") + self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.html [ Failure ]\n") self._write("NeverFixTests", "Bug(y) [ Android ] userscripts [ Skip ]\n") self._write("userscripts/first-test.html", "Dummy test contents") self._setup_mock_builder_data() @@ -492,7 +492,7 @@ self.command._rebaseline(options, {"userscripts/first-test.html": {"WebKit Mac10.7": ["txt", "png"]}}) new_expectations = self._read(self.lion_expectations_path) - self.assertMultiLineEqual(new_expectations, "Bug(x) [ Linux Mavericks MountainLion Retina SnowLeopard Win Yosemite ] userscripts/first-test.html [ ImageOnlyFailure ]\n") + self.assertMultiLineEqual(new_expectations, "Bug(x) [ Linux Mavericks MountainLion Retina SnowLeopard Win Yosemite ] userscripts/first-test.html [ Failure ]\n") def test_rebaseline_handles_skips_in_file(self): # This test is like test_Rebaseline_handles_platform_skips, except that the @@ -503,7 +503,7 @@ options = MockOptions(optimize=False, verbose=True, results_directory=None) self._write(self.lion_expectations_path, - ("Bug(x) [ Linux Mac Win ] userscripts/first-test.html [ ImageOnlyFailure ]\n" + ("Bug(x) [ Linux Mac Win ] userscripts/first-test.html [ Failure ]\n" "Bug(y) [ Android ] userscripts/first-test.html [ Skip ]\n")) self._write("userscripts/first-test.html", "Dummy test contents") self._setup_mock_builder_data() @@ -513,7 +513,7 @@ new_expectations = self._read(self.lion_expectations_path) self.assertMultiLineEqual( new_expectations, - ("Bug(x) [ Linux Mavericks MountainLion Retina SnowLeopard Win Yosemite ] userscripts/first-test.html [ ImageOnlyFailure ]\n" + ("Bug(x) [ Linux Mavericks MountainLion Retina SnowLeopard Win Yosemite ] userscripts/first-test.html [ Failure ]\n" "Bug(y) [ Android ] userscripts/first-test.html [ Skip ]\n")) def test_rebaseline_handles_smoke_tests(self): @@ -523,7 +523,7 @@ # run smoke tests, and do not think that we still need to rebaseline it. options = MockOptions(optimize=False, verbose=True, results_directory=None) - self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.html [ ImageOnlyFailure ]\n") + self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.html [ Failure ]\n") self._write("SmokeTests", "fast/html/article-element.html") self._write("userscripts/first-test.html", "Dummy test contents") self._setup_mock_builder_data() @@ -531,7 +531,7 @@ self.command._rebaseline(options, {"userscripts/first-test.html": {"WebKit Mac10.7": ["txt", "png"]}}) new_expectations = self._read(self.lion_expectations_path) - self.assertMultiLineEqual(new_expectations, "Bug(x) [ Linux Mavericks MountainLion Retina SnowLeopard Win Yosemite ] userscripts/first-test.html [ ImageOnlyFailure ]\n") + self.assertMultiLineEqual(new_expectations, "Bug(x) [ Linux Mavericks MountainLion Retina SnowLeopard Win Yosemite ] userscripts/first-test.html [ Failure ]\n") class TestRebaseline(_BaseTestCase): @@ -930,7 +930,7 @@ def test_tests_to_rebaseline(self): def blame(path): return """ -624c3081c0 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/norebaseline.html [ ImageOnlyFailure ] +624c3081c0 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/norebaseline.html [ Failure ] 624c3081c0 path/to/TestExpectations (foobarbaz1@chromium.org 2013-04-28 04:52:41 +0000 13) Bug(foo) path/to/rebaseline-without-bug-number.html [ NeedsRebaseline ] 624c3081c0 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/rebaseline-with-modifiers.html [ NeedsRebaseline ] 624c3081c0 path/to/TestExpectations (foobarbaz1@chromium.org 2013-04-28 04:52:41 +0000 12) crbug.com/24182 crbug.com/234 path/to/rebaseline-without-modifiers.html [ NeedsRebaseline ] @@ -996,7 +996,7 @@ def test_no_needs_rebaseline_lines(self): def blame(path): return """ -6469e754a1 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/norebaseline.html [ ImageOnlyFailure ] +6469e754a1 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/norebaseline.html [ Failure ] """ self.tool.scm().blame = blame @@ -1007,7 +1007,7 @@ def blame(path): return """ 6469e754a1 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) # Test NeedsRebaseline being in a comment doesn't bork parsing. -6469e754a1 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/norebaseline.html [ ImageOnlyFailure ] +6469e754a1 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/norebaseline.html [ Failure ] 6469e754a1 path/to/TestExpectations (foobarbaz1@chromium.org 2013-04-28 04:52:41 +0000 13) Bug(foo) fast/dom/prototype-taco.html [ NeedsRebaseline ] 6469e754a1 path/to/TestExpectations (foobarbaz1@chromium.org 2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ SnowLeopard ] fast/dom/prototype-strawberry.html [ NeedsRebaseline ] 6469e754a1 path/to/TestExpectations (foobarbaz1@chromium.org 2013-04-28 04:52:41 +0000 12) crbug.com/24182 fast/dom/prototype-chocolate.html [ NeedsRebaseline ]
diff --git a/third_party/cld_2/BUILD.gn b/third_party/cld_2/BUILD.gn index 6d41977b..b64440c 100644 --- a/third_party/cld_2/BUILD.gn +++ b/third_party/cld_2/BUILD.gn
@@ -84,11 +84,11 @@ } source_set("cld2_platform_impl") { - deps = [] + public_deps = [] if (cld2_platform_support == "static") { - deps += [ ":cld2_static" ] + public_deps += [ ":cld2_static" ] } else if (cld2_platform_support == "dynamic") { - deps += [ ":cld2_dynamic" ] + public_deps += [ ":cld2_dynamic" ] } } @@ -109,7 +109,7 @@ "src/public", ] - deps = [ + public_deps = [ ":cld_2", ":cld2_data", ]
diff --git a/tools/gn/c_include_iterator.cc b/tools/gn/c_include_iterator.cc index 9e719c7..120295e 100644 --- a/tools/gn/c_include_iterator.cc +++ b/tools/gn/c_include_iterator.cc
@@ -48,6 +48,8 @@ bool ShouldCountTowardNonIncludeLines(const base::StringPiece& line) { if (StartsWith(line, "//")) return false; // Don't count comments. + if (StartsWith(line, "/*") || StartsWith(line, " *")) + return false; // C-style comment blocks with stars along the left side. if (StartsWith(line, "#")) return false; // Don't count preprocessor. if (base::ContainsOnlyChars(line, base::kWhitespaceASCII))
diff --git a/tools/gn/c_include_iterator_unittest.cc b/tools/gn/c_include_iterator_unittest.cc index 11fa991..1add29b5 100644 --- a/tools/gn/c_include_iterator_unittest.cc +++ b/tools/gn/c_include_iterator_unittest.cc
@@ -132,3 +132,26 @@ } EXPECT_FALSE(iter.GetNextIncludeString(&contents, &range)); } + +// Tests that comments of the form +// /* +// * +// */ +// are not counted toward the non-include line count. +TEST(CIncludeIterator, CStyleComments) { + std::string buffer("/*"); + for (size_t i = 0; i < 1000; i++) + buffer.append(" *\n"); + buffer.append(" */\n\n"); + buffer.append("#include \"foo/bar.h\"\n"); + + InputFile file(SourceFile("//foo.cc")); + file.SetContents(buffer); + + base::StringPiece contents; + LocationRange range; + + CIncludeIterator iter(&file); + EXPECT_TRUE(iter.GetNextIncludeString(&contents, &range)); + EXPECT_EQ("foo/bar.h", contents); +}
diff --git a/ui/app_list/search/dictionary_data_store.cc b/ui/app_list/search/dictionary_data_store.cc index 45f53ca..443d973 100644 --- a/ui/app_list/search/dictionary_data_store.cc +++ b/ui/app_list/search/dictionary_data_store.cc
@@ -67,16 +67,16 @@ int error_code = JSONFileValueDeserializer::JSON_NO_ERROR; std::string error_message; JSONFileValueDeserializer deserializer(data_file_); - base::Value* value = deserializer.Deserialize(&error_code, &error_message); - base::DictionaryValue* dict_value = NULL; - if (error_code != JSONFileValueDeserializer::JSON_NO_ERROR || !value || - !value->GetAsDictionary(&dict_value) || !dict_value) { + scoped_ptr<base::DictionaryValue> dict_value = base::DictionaryValue::From( + deserializer.Deserialize(&error_code, &error_message)); + if (error_code != JSONFileValueDeserializer::JSON_NO_ERROR || !dict_value) { return nullptr; } - base::DictionaryValue* return_dict = dict_value->DeepCopy(); - cached_dict_.reset(dict_value); - return make_scoped_ptr(return_dict); + scoped_ptr<base::DictionaryValue> return_dict = + make_scoped_ptr(dict_value.get()->DeepCopy()); + cached_dict_ = dict_value.Pass(); + return return_dict; } bool DictionaryDataStore::SerializeData(std::string* data) {
diff --git a/ui/file_manager/video_player/css/media_controls.css b/ui/file_manager/video_player/css/media_controls.css index 4383afb..24ffafd 100644 --- a/ui/file_manager/video_player/css/media_controls.css +++ b/ui/file_manager/video_player/css/media_controls.css
@@ -2,37 +2,27 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ +/* Common styles for media buttons. */ + .media-button { - height: 28px; - margin: 0 5px; + background-position: center; + background-repeat: no-repeat; + height: 32px; position: relative; - width: 26px; + width: 32px; } -.media-button > div { - background: center center; - height: 100%; - opacity: 0; - pointer-events: none; - position: absolute; - transition: opacity 100ms linear; - width: 100%; +.media-button:hover { + background-color: rgba(153, 153, 153, 0.2); } -.media-button[state='default']:not(.disabled):not(:hover):not(:active) > - .default.normal, -.media-button[state='default']:not(.disabled):hover > .default.hover, -.media-button[state='default']:not(.disabled):active > .default.active, -.media-button[state='playing']:not(.disabled):not(:hover):not(:active) > - .playing.normal, -.media-button[state='playing']:not(.disabled):hover > .playing.hover, -.media-button[state='playing']:not(.disabled):active > .playing.active, -.media-button[state='ended']:not(.disabled):not(:hover):not(:active) > - .ended.normal, -.media-button[state='ended']:not(.disabled):hover > .ended.hover, -.media-button[state='ended']:not(.disabled):active > .ended.active, -.media-button.disabled > .disabled { - opacity: 1; +.media-button:active { + background-color: rgba(153, 153, 153, 0.4); +} + +.media-button.disabled { + background-color: transparent; + opacity: 0.26; } /* Custom sliders for progress and volume. */ @@ -66,10 +56,10 @@ border-bottom-style: solid; border-top-style: solid; border-width: 1px; - bottom: 11px; + bottom: 14px; pointer-events: none; /* Mouse events pass through to the standard input. */ position: absolute; - top: 11px; + top: 14px; } .custom-slider > .bar > .filled, @@ -112,14 +102,14 @@ .custom-slider > .bar, .custom-slider > .bar > .cap.right { - background-color: rgba(0, 0, 0, 0.5); - border-color: #808080; + background-color: #dadada; + border-color: #dadada; } .custom-slider > .bar > .filled, .custom-slider > .bar > .cap.left { - background-image: linear-gradient(#c3c3c3, #d9d9d9); - border-color: #d9d9d9; + background-color: #4285f4; + border-color: #4285f4; } .custom-slider.disabled > .bar > .filled, @@ -188,66 +178,18 @@ /* Play/pause button. */ -.media-button.play > .default.normal { +.media-button.play { background-image: -webkit-image-set( url(../images/media/media_play.png) 1x, url(../images/media/2x/media_play.png) 2x); } -.media-button.play > .default.hover { - background-image: -webkit-image-set( - url(../images/media/media_play_hover.png) 1x, - url(../images/media/2x/media_play_hover.png) 2x); -} - -.media-button.play > .default.active { - background-image: -webkit-image-set( - url(../images/media/media_play_down.png) 1x, - url(../images/media/2x/media_play_down.png) 2x); -} - -.media-button.play > .playing.normal { +.media-button.play[state='playing'] { background-image: -webkit-image-set( url(../images/media/media_pause.png) 1x, url(../images/media/2x/media_pause.png) 2x); } -.media-button.play > .playing.hover { - background-image: -webkit-image-set( - url(../images/media/media_pause_hover.png) 1x, - url(../images/media/2x/media_pause_hover.png) 2x); -} - -.media-button.play > .playing.active { - background-image: -webkit-image-set( - url(../images/media/media_pause_down.png) 1x, - url(../images/media/2x/media_pause_down.png) 2x); -} - -.media-button.play > .ended.normal { - background-image: -webkit-image-set( - url(../images/media/media_loop.png) 1x, - url(../images/media/2x/media_loop.png) 2x); -} - -.media-button.play > .ended.hover { - background-image: -webkit-image-set( - url(../images/media/media_loop_hover.png) 1x, - url(../images/media/2x/media_loop_hover.png) 2x); -} - -.media-button.play > .ended.active { - background-image: -webkit-image-set( - url(../images/media/media_loop_down.png) 1x, - url(../images/media/2x/media_loop_down.png) 2x); -} - -.media-button.play > .disabled { - background-image: -webkit-image-set( - url(../images/media/media_play_disabled.png) 1x, - url(../images/media/2x/media_play_disabled.png) 2x); -} - /* Time controls: a slider and a text time display. */ .time-controls { @@ -257,6 +199,7 @@ -webkit-box-pack: center; display: -webkit-box; height: 100%; + margin: 0 8px; } .custom-slider.progress { @@ -318,7 +261,7 @@ -webkit-box-align: center; -webkit-box-orient: horizontal; -webkit-box-pack: end; - color: white; + color: rgb(51, 51, 51); display: -webkit-box; height: 100%; position: absolute; @@ -334,94 +277,21 @@ -webkit-box-pack: center; display: -webkit-box; height: 100%; + margin: 0 8px; } /* Sound button */ .media-button.sound { - width: 31px; + background-image: -webkit-image-set( + url(../images/media/media_volume.png) 1x, + url(../images/media/2x/media_volume.png) 2x); } -.media-button.sound[level='0'] > .normal { +.media-button.sound[level='0'] { background-image: -webkit-image-set( - url(../images/media/media_sound_disabled.png) 1x, - url(../images/media/2x/media_sound_disabled.png) 2x); -} - -.media-button.sound[level='0'] > .hover { - background-image: -webkit-image-set( - url(../images/media/media_sound_disabled_hover.png) 1x, - url(../images/media/2x/media_sound_disabled_hover.png) 2x); -} - -.media-button.sound[level='0'] > .active { - background-image: -webkit-image-set( - url(../images/media/media_sound_disabled_down.png) 1x, - url(../images/media/2x/media_sound_disabled_down.png) 2x); -} - - -.media-button.sound[level='1'] > .normal { - background-image: -webkit-image-set( - url(../images/media/media_sound_level1.png) 1x, - url(../images/media/2x/media_sound_level1.png) 2x); -} - -.media-button.sound[level='1'] > .hover { - background-image: -webkit-image-set( - url(../images/media/media_sound_level1_hover.png) 1x, - url(../images/media/2x/media_sound_level1_hover.png) 2x); -} - -.media-button.sound[level='1'] > .active { - background-image: -webkit-image-set( - url(../images/media/media_sound_level1_down.png) 1x, - url(../images/media/2x/media_sound_level1_down.png) 2x); -} - - -.media-button.sound[level='2'] > .normal { - background-image: -webkit-image-set( - url(../images/media/media_sound_level2.png) 1x, - url(../images/media/2x/media_sound_level2.png) 2x); -} - -.media-button.sound[level='2'] > .hover { - background-image: -webkit-image-set( - url(../images/media/media_sound_level2_hover.png) 1x, - url(../images/media/2x/media_sound_level2_hover.png) 2x); -} - -.media-button.sound[level='2'] > .active { - background-image: -webkit-image-set( - url(../images/media/media_sound_level2_down.png) 1x, - url(../images/media/2x/media_sound_level2_down.png) 2x); -} - - -.media-button.sound[level='3'] > .normal { - background-image: -webkit-image-set( - url(../images/media/media_sound_full.png) 1x, - url(../images/media/2x/media_sound_full.png) 2x); -} - -.media-button.sound[level='3'] > .hover { - background-image: -webkit-image-set( - url(../images/media/media_sound_full_hover.png) 1x, - url(../images/media/2x/media_sound_full_hover.png) 2x); -} - -.media-button.sound[level='3'] > .active { - background-image: -webkit-image-set( - url(../images/media/media_sound_full_down.png) 1x, - url(../images/media/2x/media_sound_full_down.png) 2x); -} - - -.media-button.sound > .disabled { - background-image: -webkit-image-set( - url(../images/media/media_sound_full_disabled.png) 1x, - url(../images/media/2x/media_sound_full_disabled.png) 2x); + url(../images/media/media_volume_mute.png) 1x, + url(../images/media/2x/media_volume_mute.png) 2x); } /* Volume slider. */ @@ -466,54 +336,20 @@ -webkit-box-align: center; -webkit-box-orient: horizontal; -webkit-box-pack: center; - background: #202020; - border-radius: 5px; + background: rgb(250, 250, 250); display: -webkit-box; - font-size: 15px; - height: 30px; - opacity: 0.8; + font-size: 13px; + height: 32px; + padding: 8px; pointer-events: auto; } /* Cast button. */ -.media-button.cast > .default.normal { +.media-button.cast { background-image: -webkit-image-set( url(../images/media/media_chromecast.png) 1x, url(../images/media/2x/media_chromecast.png) 2x); -} - -.media-button.cast > .default.hover { - background-image: -webkit-image-set( - url(../images/media/media_chromecast_hover.png) 1x, - url(../images/media/2x/media_chromecast_hover.png) 2x); -} - -.media-button.cast > .default.active { - background-image: -webkit-image-set( - url(../images/media/media_chromecast_down.png) 1x, - url(../images/media/2x/media_chromecast_down.png) 2x); -} - -#video-player[casting] .media-button.cast > .default.normal { - background-image: -webkit-image-set( - url(../images/media/media_chromecast_casting.png) 1x, - url(../images/media/2x/media_chromecast_casting.png) 2x); -} - -#video-player[casting] .media-button.cast > .default.hover { - background-image: -webkit-image-set( - url(../images/media/media_chromecast_casting_hover.png) 1x, - url(../images/media/2x/media_chromecast_casting_hover.png) 2x); -} - -#video-player[casting] .media-button.cast > .default.active { - background-image: -webkit-image-set( - url(../images/media/media_chromecast_casting_down.png) 1x, - url(../images/media/2x/media_chromecast_casting_down.png) 2x); -} - -.media-button.cast { display: none; } @@ -521,34 +357,21 @@ display: block; } +#video-player[casting] .media-button.cast { + background-image: -webkit-image-set( + url(../images/media/media_chromecast_casting.png) 1x, + url(../images/media/2x/media_chromecast_casting.png) 2x); +} /* Fullscreen button. */ /* There is no final decision whether we need a separate icon when toggled. */ -.media-button.fullscreen > .normal { +.media-button.fullscreen { background-image: -webkit-image-set( url(../images/media/media_fullscreen.png) 1x, url(../images/media/2x/media_fullscreen.png) 2x); } -.media-button.fullscreen > .hover { - background-image: -webkit-image-set( - url(../images/media/media_fullscreen_hover.png) 1x, - url(../images/media/2x/media_fullscreen_hover.png) 2x); -} - -.media-button.fullscreen > .active { - background-image: -webkit-image-set( - url(../images/media/media_fullscreen_down.png) 1x, - url(../images/media/2x/media_fullscreen_down.png) 2x); -} - -.media-button.fullscreen > .disabled { - background-image: -webkit-image-set( - url(../images/media/media_fullscreen_disabled.png) 1x, - url(../images/media/2x/media_fullscreen_disabled.png) 2x); -} - .playback-state-icon { -webkit-animation: none; background-color: #202020; @@ -628,13 +451,13 @@ .playback-state-icon[state='play'] { -webkit-animation: blowup 500ms; background-image: -webkit-image-set( - url(../images/media/media_play.png) 1x, - url(../images/media/2x/media_play.png) 2x); + url(../images/media/media_play_light.png) 1x, + url(../images/media/2x/media_play_light.png) 2x); } .playback-state-icon[state='pause'] { -webkit-animation: blowup 500ms; background-image: -webkit-image-set( - url(../images/media/media_pause.png) 1x, - url(../images/media/2x/media_pause.png) 2x); + url(../images/media/media_pause_light.png) 1x, + url(../images/media/2x/media_pause_light.png) 2x); }
diff --git a/ui/file_manager/video_player/images/media/2x/media_chromecast.png b/ui/file_manager/video_player/images/media/2x/media_chromecast.png index 6cc70e8f..0cfc6b27 100644 --- a/ui/file_manager/video_player/images/media/2x/media_chromecast.png +++ b/ui/file_manager/video_player/images/media/2x/media_chromecast.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_chromecast_casting.png b/ui/file_manager/video_player/images/media/2x/media_chromecast_casting.png index 2367290..bdb44db 100644 --- a/ui/file_manager/video_player/images/media/2x/media_chromecast_casting.png +++ b/ui/file_manager/video_player/images/media/2x/media_chromecast_casting.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_chromecast_casting_down.png b/ui/file_manager/video_player/images/media/2x/media_chromecast_casting_down.png deleted file mode 100644 index e48f436..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_chromecast_casting_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_chromecast_casting_hover.png b/ui/file_manager/video_player/images/media/2x/media_chromecast_casting_hover.png deleted file mode 100644 index 77258f2..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_chromecast_casting_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_chromecast_down.png b/ui/file_manager/video_player/images/media/2x/media_chromecast_down.png deleted file mode 100644 index c10763c..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_chromecast_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_chromecast_hover.png b/ui/file_manager/video_player/images/media/2x/media_chromecast_hover.png deleted file mode 100644 index f9bc4a2..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_chromecast_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_fullscreen.png b/ui/file_manager/video_player/images/media/2x/media_fullscreen.png index 6a71907..59f1d77 100644 --- a/ui/file_manager/video_player/images/media/2x/media_fullscreen.png +++ b/ui/file_manager/video_player/images/media/2x/media_fullscreen.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_fullscreen_disabled.png b/ui/file_manager/video_player/images/media/2x/media_fullscreen_disabled.png deleted file mode 100644 index 96b3f63..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_fullscreen_disabled.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_fullscreen_down.png b/ui/file_manager/video_player/images/media/2x/media_fullscreen_down.png deleted file mode 100644 index 7a6de1e..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_fullscreen_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_fullscreen_hover.png b/ui/file_manager/video_player/images/media/2x/media_fullscreen_hover.png deleted file mode 100644 index 472e4451..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_fullscreen_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_loop.png b/ui/file_manager/video_player/images/media/2x/media_loop.png deleted file mode 100644 index 6bea029..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_loop.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_loop_down.png b/ui/file_manager/video_player/images/media/2x/media_loop_down.png deleted file mode 100644 index 0e4b6e2..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_loop_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_loop_hover.png b/ui/file_manager/video_player/images/media/2x/media_loop_hover.png deleted file mode 100644 index b3a6c14..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_loop_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_pause.png b/ui/file_manager/video_player/images/media/2x/media_pause.png index acebff9d..883ca6e 100644 --- a/ui/file_manager/video_player/images/media/2x/media_pause.png +++ b/ui/file_manager/video_player/images/media/2x/media_pause.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_pause_down.png b/ui/file_manager/video_player/images/media/2x/media_pause_down.png deleted file mode 100644 index 9caaf7a..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_pause_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_pause_hover.png b/ui/file_manager/video_player/images/media/2x/media_pause_hover.png deleted file mode 100644 index beb86f2..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_pause_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_pause_light.png b/ui/file_manager/video_player/images/media/2x/media_pause_light.png new file mode 100644 index 0000000..acebff9d --- /dev/null +++ b/ui/file_manager/video_player/images/media/2x/media_pause_light.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_play.png b/ui/file_manager/video_player/images/media/2x/media_play.png index 28e8a25c..d2413af 100644 --- a/ui/file_manager/video_player/images/media/2x/media_play.png +++ b/ui/file_manager/video_player/images/media/2x/media_play.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_play_disabled.png b/ui/file_manager/video_player/images/media/2x/media_play_disabled.png deleted file mode 100644 index 77ea7c0..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_play_disabled.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_play_down.png b/ui/file_manager/video_player/images/media/2x/media_play_down.png deleted file mode 100644 index 7c687871..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_play_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_play_hover.png b/ui/file_manager/video_player/images/media/2x/media_play_hover.png deleted file mode 100644 index 28ca18b..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_play_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_play_light.png b/ui/file_manager/video_player/images/media/2x/media_play_light.png new file mode 100644 index 0000000..28e8a25c --- /dev/null +++ b/ui/file_manager/video_player/images/media/2x/media_play_light.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_disabled.png b/ui/file_manager/video_player/images/media/2x/media_sound_disabled.png deleted file mode 100644 index acbaa71..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_disabled.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_disabled_down.png b/ui/file_manager/video_player/images/media/2x/media_sound_disabled_down.png deleted file mode 100644 index f594f47e..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_disabled_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_disabled_hover.png b/ui/file_manager/video_player/images/media/2x/media_sound_disabled_hover.png deleted file mode 100644 index f4cc7b35..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_disabled_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_full.png b/ui/file_manager/video_player/images/media/2x/media_sound_full.png deleted file mode 100644 index a093e9f6..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_full.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_full_disabled.png b/ui/file_manager/video_player/images/media/2x/media_sound_full_disabled.png deleted file mode 100644 index 56635f1d..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_full_disabled.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_full_down.png b/ui/file_manager/video_player/images/media/2x/media_sound_full_down.png deleted file mode 100644 index 7d2a239..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_full_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_full_hover.png b/ui/file_manager/video_player/images/media/2x/media_sound_full_hover.png deleted file mode 100644 index f183edd7..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_full_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_level1.png b/ui/file_manager/video_player/images/media/2x/media_sound_level1.png deleted file mode 100644 index 25904c0..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_level1.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_level1_down.png b/ui/file_manager/video_player/images/media/2x/media_sound_level1_down.png deleted file mode 100644 index 0ba2886..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_level1_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_level1_hover.png b/ui/file_manager/video_player/images/media/2x/media_sound_level1_hover.png deleted file mode 100644 index be56fc1..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_level1_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_level2.png b/ui/file_manager/video_player/images/media/2x/media_sound_level2.png deleted file mode 100644 index 24f7ea8..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_level2.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_level2_down.png b/ui/file_manager/video_player/images/media/2x/media_sound_level2_down.png deleted file mode 100644 index 34fce54..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_level2_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_sound_level2_hover.png b/ui/file_manager/video_player/images/media/2x/media_sound_level2_hover.png deleted file mode 100644 index 2e3f2e80cd..0000000 --- a/ui/file_manager/video_player/images/media/2x/media_sound_level2_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_volume.png b/ui/file_manager/video_player/images/media/2x/media_volume.png new file mode 100644 index 0000000..27edb81 --- /dev/null +++ b/ui/file_manager/video_player/images/media/2x/media_volume.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/2x/media_volume_mute.png b/ui/file_manager/video_player/images/media/2x/media_volume_mute.png new file mode 100644 index 0000000..211d1c9 --- /dev/null +++ b/ui/file_manager/video_player/images/media/2x/media_volume_mute.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_chromecast.png b/ui/file_manager/video_player/images/media/media_chromecast.png index 4fa924ef..c6b57dc 100644 --- a/ui/file_manager/video_player/images/media/media_chromecast.png +++ b/ui/file_manager/video_player/images/media/media_chromecast.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_chromecast_casting.png b/ui/file_manager/video_player/images/media/media_chromecast_casting.png index d59cb8c..c3555a1 100644 --- a/ui/file_manager/video_player/images/media/media_chromecast_casting.png +++ b/ui/file_manager/video_player/images/media/media_chromecast_casting.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_chromecast_casting_down.png b/ui/file_manager/video_player/images/media/media_chromecast_casting_down.png deleted file mode 100644 index 4190546..0000000 --- a/ui/file_manager/video_player/images/media/media_chromecast_casting_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_chromecast_casting_hover.png b/ui/file_manager/video_player/images/media/media_chromecast_casting_hover.png deleted file mode 100644 index fc624ae..0000000 --- a/ui/file_manager/video_player/images/media/media_chromecast_casting_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_chromecast_down.png b/ui/file_manager/video_player/images/media/media_chromecast_down.png deleted file mode 100644 index 0378331..0000000 --- a/ui/file_manager/video_player/images/media/media_chromecast_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_chromecast_hover.png b/ui/file_manager/video_player/images/media/media_chromecast_hover.png deleted file mode 100644 index ffea05b..0000000 --- a/ui/file_manager/video_player/images/media/media_chromecast_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_fullscreen.png b/ui/file_manager/video_player/images/media/media_fullscreen.png index 83f2be4f..ec987d4 100644 --- a/ui/file_manager/video_player/images/media/media_fullscreen.png +++ b/ui/file_manager/video_player/images/media/media_fullscreen.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_fullscreen_disabled.png b/ui/file_manager/video_player/images/media/media_fullscreen_disabled.png deleted file mode 100644 index bf743908..0000000 --- a/ui/file_manager/video_player/images/media/media_fullscreen_disabled.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_fullscreen_down.png b/ui/file_manager/video_player/images/media/media_fullscreen_down.png deleted file mode 100644 index a6d225dc..0000000 --- a/ui/file_manager/video_player/images/media/media_fullscreen_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_fullscreen_hover.png b/ui/file_manager/video_player/images/media/media_fullscreen_hover.png deleted file mode 100644 index ca1488b..0000000 --- a/ui/file_manager/video_player/images/media/media_fullscreen_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_loop.png b/ui/file_manager/video_player/images/media/media_loop.png deleted file mode 100644 index f3e35dd9..0000000 --- a/ui/file_manager/video_player/images/media/media_loop.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_loop_down.png b/ui/file_manager/video_player/images/media/media_loop_down.png deleted file mode 100644 index dda8af5..0000000 --- a/ui/file_manager/video_player/images/media/media_loop_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_loop_hover.png b/ui/file_manager/video_player/images/media/media_loop_hover.png deleted file mode 100644 index a0ed21f..0000000 --- a/ui/file_manager/video_player/images/media/media_loop_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_pause.png b/ui/file_manager/video_player/images/media/media_pause.png index 0a304e4..5225482 100644 --- a/ui/file_manager/video_player/images/media/media_pause.png +++ b/ui/file_manager/video_player/images/media/media_pause.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_pause_down.png b/ui/file_manager/video_player/images/media/media_pause_down.png deleted file mode 100644 index 6e65195..0000000 --- a/ui/file_manager/video_player/images/media/media_pause_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_pause_hover.png b/ui/file_manager/video_player/images/media/media_pause_hover.png deleted file mode 100644 index 993ee50..0000000 --- a/ui/file_manager/video_player/images/media/media_pause_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_pause_light.png b/ui/file_manager/video_player/images/media/media_pause_light.png new file mode 100644 index 0000000..0a304e4 --- /dev/null +++ b/ui/file_manager/video_player/images/media/media_pause_light.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_play.png b/ui/file_manager/video_player/images/media/media_play.png index 47bcdc29..1174fd6 100644 --- a/ui/file_manager/video_player/images/media/media_play.png +++ b/ui/file_manager/video_player/images/media/media_play.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_play_disabled.png b/ui/file_manager/video_player/images/media/media_play_disabled.png deleted file mode 100644 index 6e96d4c..0000000 --- a/ui/file_manager/video_player/images/media/media_play_disabled.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_play_down.png b/ui/file_manager/video_player/images/media/media_play_down.png deleted file mode 100644 index 1759ec39..0000000 --- a/ui/file_manager/video_player/images/media/media_play_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_play_hover.png b/ui/file_manager/video_player/images/media/media_play_hover.png deleted file mode 100644 index 3942d46..0000000 --- a/ui/file_manager/video_player/images/media/media_play_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_play_light.png b/ui/file_manager/video_player/images/media/media_play_light.png new file mode 100644 index 0000000..47bcdc29 --- /dev/null +++ b/ui/file_manager/video_player/images/media/media_play_light.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_disabled.png b/ui/file_manager/video_player/images/media/media_sound_disabled.png deleted file mode 100644 index 42126de9..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_disabled.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_disabled_down.png b/ui/file_manager/video_player/images/media/media_sound_disabled_down.png deleted file mode 100644 index 2b494b9..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_disabled_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_disabled_hover.png b/ui/file_manager/video_player/images/media/media_sound_disabled_hover.png deleted file mode 100644 index 5040f80..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_disabled_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_full.png b/ui/file_manager/video_player/images/media/media_sound_full.png deleted file mode 100644 index 4a03402..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_full.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_full_disabled.png b/ui/file_manager/video_player/images/media/media_sound_full_disabled.png deleted file mode 100644 index cef4bc4..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_full_disabled.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_full_down.png b/ui/file_manager/video_player/images/media/media_sound_full_down.png deleted file mode 100644 index 55d77e4..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_full_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_full_hover.png b/ui/file_manager/video_player/images/media/media_sound_full_hover.png deleted file mode 100644 index 881e8430..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_full_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_level1.png b/ui/file_manager/video_player/images/media/media_sound_level1.png deleted file mode 100644 index 2f7ceea3..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_level1.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_level1_down.png b/ui/file_manager/video_player/images/media/media_sound_level1_down.png deleted file mode 100644 index 9777c9b5..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_level1_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_level1_hover.png b/ui/file_manager/video_player/images/media/media_sound_level1_hover.png deleted file mode 100644 index fdf3bc13..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_level1_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_level2.png b/ui/file_manager/video_player/images/media/media_sound_level2.png deleted file mode 100644 index 9379a03..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_level2.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_level2_down.png b/ui/file_manager/video_player/images/media/media_sound_level2_down.png deleted file mode 100644 index 422b435..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_level2_down.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_sound_level2_hover.png b/ui/file_manager/video_player/images/media/media_sound_level2_hover.png deleted file mode 100644 index 8bf6157..0000000 --- a/ui/file_manager/video_player/images/media/media_sound_level2_hover.png +++ /dev/null Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_volume.png b/ui/file_manager/video_player/images/media/media_volume.png new file mode 100644 index 0000000..aa716ff --- /dev/null +++ b/ui/file_manager/video_player/images/media/media_volume.png Binary files differ
diff --git a/ui/file_manager/video_player/images/media/media_volume_mute.png b/ui/file_manager/video_player/images/media/media_volume_mute.png new file mode 100644 index 0000000..72db204a3 --- /dev/null +++ b/ui/file_manager/video_player/images/media/media_volume_mute.png Binary files differ
diff --git a/ui/file_manager/video_player/js/media_controls.js b/ui/file_manager/video_player/js/media_controls.js index 672e662..a3b6e91 100644 --- a/ui/file_manager/video_player/js/media_controls.js +++ b/ui/file_manager/video_player/js/media_controls.js
@@ -142,15 +142,6 @@ var button = this.createControl(className, opt_parent); button.classList.add('media-button'); - var stateTypes = Object.keys(MediaControls.ButtonStateType); - for (var state = 0; state != opt_numStates; state++) { - var stateClass = MediaControls.ButtonStateType[stateTypes[state]]; - this.createControl('normal ' + stateClass, button); - this.createControl('hover ' + stateClass, button); - this.createControl('active ' + stateClass, button); - } - this.createControl('disabled', button); - button.setAttribute('state', MediaControls.ButtonStateType.DEFAULT); if (opt_handler) @@ -1279,11 +1270,6 @@ // This is easier than adding margins to this.container_.clientWidth. var width = this.container_.parentNode.clientWidth; - // Set the margin to 5px for width >= 400, 0px for width < 160, - // interpolate linearly in between. - this.container_.style.margin = - Math.ceil((Math.max(160, Math.min(width, 400)) - 160) / 48) + 'px'; - var hideBelow = function(selector, limit) { this.container_.querySelector(selector).style.display = width < limit ? 'none' : '-webkit-box';
diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc index 33ec9a0..2f85fb6 100644 --- a/ui/views/controls/button/label_button.cc +++ b/ui/views/controls/button/label_button.cc
@@ -367,24 +367,6 @@ SchedulePaint(); } -void LabelButton::OnNativeThemeChanged(const ui::NativeTheme* theme) { - ResetColorsFromNativeTheme(); - UpdateThemedBorder(); - // Invalidate the layout to pickup the new insets from the border. - InvalidateLayout(); -} - -void LabelButton::StateChanged() { - const gfx::Size previous_image_size(image_->GetPreferredSize()); - UpdateImage(); - const SkColor color = button_state_colors_[state()]; - if (state() != STATE_DISABLED && label_->enabled_color() != color) - label_->SetEnabledColor(color); - label_->SetEnabled(state() != STATE_DISABLED); - if (image_->GetPreferredSize() != previous_image_size) - Layout(); -} - void LabelButton::GetExtraParams(ui::NativeTheme::ExtraParams* params) const { params->button.checked = false; params->button.indeterminate = false; @@ -458,11 +440,29 @@ border_is_themed_border_ = true; } +void LabelButton::StateChanged() { + const gfx::Size previous_image_size(image_->GetPreferredSize()); + UpdateImage(); + const SkColor color = button_state_colors_[state()]; + if (state() != STATE_DISABLED && label_->enabled_color() != color) + label_->SetEnabledColor(color); + label_->SetEnabled(state() != STATE_DISABLED); + if (image_->GetPreferredSize() != previous_image_size) + Layout(); +} + void LabelButton::ChildPreferredSizeChanged(View* child) { ResetCachedPreferredSize(); PreferredSizeChanged(); } +void LabelButton::OnNativeThemeChanged(const ui::NativeTheme* theme) { + ResetColorsFromNativeTheme(); + UpdateThemedBorder(); + // Invalidate the layout to pickup the new insets from the border. + InvalidateLayout(); +} + ui::NativeTheme::Part LabelButton::GetThemePart() const { return ui::NativeTheme::kPushButton; }
diff --git a/ui/views/controls/button/label_button.h b/ui/views/controls/button/label_button.h index 77764243..1059eff 100644 --- a/ui/views/controls/button/label_button.h +++ b/ui/views/controls/button/label_button.h
@@ -111,9 +111,6 @@ void OnBlur() override; void OnNativeThemeChanged(const ui::NativeTheme* theme) override; - // CustomButton: - void StateChanged() override; - // Fill |params| with information about the button. virtual void GetExtraParams(ui::NativeTheme::ExtraParams* params) const; @@ -137,6 +134,9 @@ FRIEND_TEST_ALL_PREFIXES(LabelButtonTest, LabelAndImage); FRIEND_TEST_ALL_PREFIXES(LabelButtonTest, FontList); + // CustomButton: + void StateChanged() override; + // View: void ChildPreferredSizeChanged(View* child) override;
diff --git a/ui/views/controls/button/menu_button.cc b/ui/views/controls/button/menu_button.cc index d3bdea1..d9271f8 100644 --- a/ui/views/controls/button/menu_button.cc +++ b/ui/views/controls/button/menu_button.cc
@@ -321,8 +321,6 @@ should_disable_after_press_ = false; else if (state() == STATE_DISABLED) should_disable_after_press_ = true; - } else { - LabelButton::StateChanged(); } }
diff --git a/ui/webui/resources/html/i18n_behavior.html b/ui/webui/resources/html/i18n_behavior.html new file mode 100644 index 0000000..6959c8d --- /dev/null +++ b/ui/webui/resources/html/i18n_behavior.html
@@ -0,0 +1 @@ +<script src="chrome://resources/js/i18n_behavior.js"></script>
diff --git a/chrome/browser/resources/settings/i18n_behavior/i18n_behavior.js b/ui/webui/resources/js/i18n_behavior.js similarity index 94% rename from chrome/browser/resources/settings/i18n_behavior/i18n_behavior.js rename to ui/webui/resources/js/i18n_behavior.js index f499e83..d43912b 100644 --- a/chrome/browser/resources/settings/i18n_behavior/i18n_behavior.js +++ b/ui/webui/resources/js/i18n_behavior.js
@@ -12,7 +12,7 @@ * I18nBehavior, * ], * - * @group Chrome Settings Elements + * @group Chrome UI Behavior */ var I18nBehavior = {
diff --git a/ui/webui/resources/webui_resources.grd b/ui/webui/resources/webui_resources.grd index fa62cbd..8abacac 100644 --- a/ui/webui/resources/webui_resources.grd +++ b/ui/webui/resources/webui_resources.grd
@@ -300,6 +300,8 @@ file="html/load_time_data.html" type="chrome_html" /> <structure name="IDR_WEBUI_HTML_POLYMER_CONFIG" file="html/polymer_config.html" type="chrome_html" /> + <structure name="IDR_WEBUI_HTML_I18N_BEHAVIOR" + file="html/i18n_behavior.html" type="chrome_html" /> <structure name="IDR_WEBUI_HTML_UTIL" file="html/util.html" type="chrome_html" /> @@ -425,6 +427,8 @@ file="js/parse_html_subset.js" type="chrome_html" /> <structure name="IDR_WEBUI_JS_POLYMER_CONFIG" file="js/polymer_config.js" type="chrome_html" /> + <structure name="IDR_WEBUI_JS_I18N_BEHAVIOR" + file="js/i18n_behavior.js" type="chrome_html" /> <structure name="IDR_WEBUI_JS_UTIL" file="js/util.js" type="chrome_html" flattenhtml="true" /> <structure name="IDR_WEBUI_JS_WEBUI_RESOURCE_TEST"