diff --git a/DEPS b/DEPS index 2d27484..a4114b8 100644 --- a/DEPS +++ b/DEPS
@@ -44,7 +44,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '48edec2e2d92c8ede8403f37bed6e3fbc85eb183', + 'v8_revision': 'd224e4e7dc10e27c13d6623c3855964098acae1f', # 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. @@ -56,7 +56,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling build tools # and whatever else without interference from each other. - 'buildtools_revision': 'c302711306f19ec9d29ac3461b09ecd4c781fac0', + 'buildtools_revision': 'a7cc7a3e21a061975b33dcdcd81a9716ba614c3c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -96,7 +96,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '986b4e8b58804b7aa7bec4479b10087607ba9548', + 'catapult_revision': '6bc0354c35405b02db027aa20976c14983d21955', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other.
diff --git a/chrome/browser/media/webrtc/webrtc_browsertest.cc b/chrome/browser/media/webrtc/webrtc_browsertest.cc index 0b379e3..86565b8 100644 --- a/chrome/browser/media/webrtc/webrtc_browsertest.cc +++ b/chrome/browser/media/webrtc/webrtc_browsertest.cc
@@ -48,12 +48,6 @@ // Flag used by TestWebAudioMediaStream to force garbage collection. command_line->AppendSwitchASCII(switches::kJavaScriptFlags, "--expose-gc"); - - // Flag used by |RunsAudioVideoWebRTCCallInTwoTabsGetStatsPromise|. - // TODO(hbos): Remove this when bug crbug.com/627816 is resolved (when this - // flag is removed). - command_line->AppendSwitchASCII(switches::kEnableBlinkFeatures, - "RTCPeerConnectionNewGetStats"); } void RunsAudioVideoWebRTCCallInTwoTabs(
diff --git a/chrome/browser/media/webrtc/webrtc_stats_perf_browsertest.cc b/chrome/browser/media/webrtc/webrtc_stats_perf_browsertest.cc index 02c5c2d..d3074e8f 100644 --- a/chrome/browser/media/webrtc/webrtc_stats_perf_browsertest.cc +++ b/chrome/browser/media/webrtc/webrtc_stats_perf_browsertest.cc
@@ -84,9 +84,6 @@ command_line->AppendSwitchPath(switches::kUseFileForFakeVideoCapture, input_video); command_line->AppendSwitch(switches::kUseFakeDeviceForMediaStream); - - command_line->AppendSwitchASCII(switches::kEnableBlinkFeatures, - "RTCPeerConnectionNewGetStats"); } void StartCall(const std::string& audio_codec,
diff --git a/chrome/browser/ui/test/test_browser_dialog.cc b/chrome/browser/ui/test/test_browser_dialog.cc index 5faa2fa..75aff27 100644 --- a/chrome/browser/ui/test/test_browser_dialog.cc +++ b/chrome/browser/ui/test/test_browser_dialog.cc
@@ -13,9 +13,14 @@ #include "ui/base/test/material_design_controller_test_api.h" #include "ui/base/test/user_interactive_test_case.h" #include "ui/base/ui_base_switches.h" +#include "ui/views/test/widget_test.h" #include "ui/views/widget/widget.h" #include "ui/views/widget/widget_observer.h" +#if defined(OS_CHROMEOS) +#include "ash/shell.h" // nogncheck +#endif + namespace { // An automatic action for WidgetCloser to post to the RunLoop. @@ -86,13 +91,22 @@ md_test_api.SetSecondaryUiMaterial(true); #endif - gfx::NativeView parent = platform_util::GetViewForWindow(DialogParent()); - views::Widget::Widgets widgets_before; - views::Widget::GetAllChildWidgets(parent, &widgets_before); + views::Widget::Widgets widgets_before = + views::test::WidgetTest::GetAllWidgets(); +#if defined(OS_CHROMEOS) + // GetAllWidgets() uses AuraTestHelper to find the aura root window, but + // that's not used on browser_tests, so ask ash. + views::Widget::GetAllChildWidgets(ash::Shell::GetPrimaryRootWindow(), + &widgets_before); +#endif // OS_CHROMEOS ShowDialog(NameFromTestCase()); - views::Widget::Widgets widgets_after; - views::Widget::GetAllChildWidgets(parent, &widgets_after); + views::Widget::Widgets widgets_after = + views::test::WidgetTest::GetAllWidgets(); +#if defined(OS_CHROMEOS) + views::Widget::GetAllChildWidgets(ash::Shell::GetPrimaryRootWindow(), + &widgets_after); +#endif // OS_CHROMEOS auto added = base::STLSetDifference<std::vector<views::Widget*>>( widgets_after, widgets_before);
diff --git a/chrome/browser/ui/test/test_browser_dialog.h b/chrome/browser/ui/test/test_browser_dialog.h index 9eeac31..d071a80 100644 --- a/chrome/browser/ui/test/test_browser_dialog.h +++ b/chrome/browser/ui/test/test_browser_dialog.h
@@ -9,7 +9,6 @@ #include <vector> #include "base/macros.h" -#include "chrome/browser/ui/browser_window.h" #include "chrome/test/base/in_process_browser_test.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gfx/native_widget_types.h" @@ -65,9 +64,6 @@ // Show the dialog corresponding to |name| and leave it open. virtual void ShowDialog(const std::string& name) = 0; - // The window that owns the dialogs. Used to find where the dialog appears. - virtual gfx::NativeWindow DialogParent() = 0; - private: DISALLOW_COPY_AND_ASSIGN(TestBrowserDialog); }; @@ -79,11 +75,6 @@ protected: SupportsTestDialog() {} - // TestBrowserDialog: - gfx::NativeWindow DialogParent() override { - return this->browser()->window()->GetNativeWindow(); - } - private: DISALLOW_COPY_AND_ASSIGN(SupportsTestDialog); };
diff --git a/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc b/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc index eba851a..719a46b 100644 --- a/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc +++ b/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc
@@ -1021,11 +1021,6 @@ EnterState(State::DISABLED); UpdateAllCategoryStatus(CategoryStatus::CATEGORY_EXPLICITLY_DISABLED); break; - - case RemoteSuggestionsStatus::SIGNED_OUT_AND_DISABLED: - EnterState(State::DISABLED); - UpdateAllCategoryStatus(CategoryStatus::SIGNED_OUT); - break; } }
diff --git a/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc index e1a76e6..32c7a68 100644 --- a/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc +++ b/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc
@@ -1528,37 +1528,6 @@ IsEmpty()); } -TEST_F(RemoteSuggestionsProviderImplTest, StatusChanges) { - auto service = MakeSuggestionsProvider(); - - // Simulate user signed out - SetUpFetchResponse(GetTestJson({GetSuggestion()})); - service->OnStatusChanged(RemoteSuggestionsStatus::ENABLED_AND_SIGNED_IN, - RemoteSuggestionsStatus::SIGNED_OUT_AND_DISABLED); - - base::RunLoop().RunUntilIdle(); - EXPECT_THAT(observer().StatusForCategory(articles_category()), - Eq(CategoryStatus::SIGNED_OUT)); - EXPECT_THAT(RemoteSuggestionsProviderImpl::State::DISABLED, - Eq(service->state_)); - EXPECT_THAT(service->GetSuggestionsForTesting(articles_category()), - IsEmpty()); // No fetch should be made. - - // Simulate user sign in. The service should be ready again and load - // suggestions. - SetUpFetchResponse(GetTestJson({GetSuggestion()})); - service->OnStatusChanged(RemoteSuggestionsStatus::SIGNED_OUT_AND_DISABLED, - RemoteSuggestionsStatus::ENABLED_AND_SIGNED_IN); - EXPECT_THAT(observer().StatusForCategory(articles_category()), - Eq(CategoryStatus::AVAILABLE_LOADING)); - - base::RunLoop().RunUntilIdle(); - EXPECT_THAT(observer().StatusForCategory(articles_category()), - Eq(CategoryStatus::AVAILABLE)); - EXPECT_THAT(RemoteSuggestionsProviderImpl::State::READY, Eq(service->state_)); - EXPECT_FALSE(service->GetSuggestionsForTesting(articles_category()).empty()); -} - TEST_F(RemoteSuggestionsProviderImplTest, ImageReturnedWithTheSameId) { auto service = MakeSuggestionsProvider();
diff --git a/components/ntp_snippets/remote/remote_suggestions_status_service.cc b/components/ntp_snippets/remote/remote_suggestions_status_service.cc index 315cf13b..525dbbd 100644 --- a/components/ntp_snippets/remote/remote_suggestions_status_service.cc +++ b/components/ntp_snippets/remote/remote_suggestions_status_service.cc
@@ -15,31 +15,12 @@ namespace ntp_snippets { -namespace { - -const char kFetchingRequiresSignin[] = "fetching_requires_signin"; -const char kFetchingRequiresSigninEnabled[] = "true"; -const char kFetchingRequiresSigninDisabled[] = "false"; - -} // namespace - RemoteSuggestionsStatusService::RemoteSuggestionsStatusService( SigninManagerBase* signin_manager, PrefService* pref_service) : status_(RemoteSuggestionsStatus::EXPLICITLY_DISABLED), - require_signin_(false), signin_manager_(signin_manager), - pref_service_(pref_service) { - std::string param_value_str = variations::GetVariationParamValueByFeature( - kArticleSuggestionsFeature, kFetchingRequiresSignin); - if (param_value_str == kFetchingRequiresSigninEnabled) { - require_signin_ = true; - } else if (!param_value_str.empty() && - param_value_str != kFetchingRequiresSigninDisabled) { - DLOG(WARNING) << "Unknow value for the variations parameter " - << kFetchingRequiresSignin << ": " << param_value_str; - } -} + pref_service_(pref_service) {} RemoteSuggestionsStatusService::~RemoteSuggestionsStatusService() = default; @@ -99,11 +80,6 @@ return RemoteSuggestionsStatus::EXPLICITLY_DISABLED; } - if (require_signin_ && !IsSignedIn()) { - DVLOG(1) << "[GetStatusFromDeps] Signed out and disabled due to this."; - return RemoteSuggestionsStatus::SIGNED_OUT_AND_DISABLED; - } - DVLOG(1) << "[GetStatusFromDeps] Enabled, signed " << (IsSignedIn() ? "in" : "out"); return IsSignedIn() ? RemoteSuggestionsStatus::ENABLED_AND_SIGNED_IN
diff --git a/components/ntp_snippets/remote/remote_suggestions_status_service.h b/components/ntp_snippets/remote/remote_suggestions_status_service.h index e0542bb..4d1a1cbfb 100644 --- a/components/ntp_snippets/remote/remote_suggestions_status_service.h +++ b/components/ntp_snippets/remote/remote_suggestions_status_service.h
@@ -23,8 +23,6 @@ ENABLED_AND_SIGNED_OUT, // Suggestions have been disabled as part of the service configuration. EXPLICITLY_DISABLED, - // The user is not signed in, but sign-in is required. - SIGNED_OUT_AND_DISABLED, }; // Aggregates data from preferences and signin to notify the provider of @@ -71,7 +69,6 @@ RemoteSuggestionsStatus status_; StatusChangeCallback status_change_callback_; - bool require_signin_; SigninManagerBase* signin_manager_; PrefService* pref_service_;
diff --git a/components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc index c24650a..6b6fd7a5 100644 --- a/components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc +++ b/components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc
@@ -40,24 +40,6 @@ variations::testing::VariationParamsManager params_manager_; }; -TEST_F(RemoteSuggestionsStatusServiceTest, SigninNeededIfSpecifiedByParam) { - // Specify by the parameter that signin is required. - params_manager_.SetVariationParamsWithFeatureAssociations( - ntp_snippets::kStudyName, {{"fetching_requires_signin", "true"}}, - {ntp_snippets::kArticleSuggestionsFeature.name}); - - auto service = MakeService(); - - // The default test setup is signed out. - EXPECT_EQ(RemoteSuggestionsStatus::SIGNED_OUT_AND_DISABLED, - service->GetStatusFromDeps()); - - // Once signed in, we should be in a compatible state. - utils_.fake_signin_manager()->SignIn("foo@bar.com"); - EXPECT_EQ(RemoteSuggestionsStatus::ENABLED_AND_SIGNED_IN, - service->GetStatusFromDeps()); -} - TEST_F(RemoteSuggestionsStatusServiceTest, NoSigninNeeded) { auto service = MakeService();
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 4fecd6a..c9bb484b 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -2326,8 +2326,6 @@ crbug.com/678499 http/tests/security/contentSecurityPolicy/require-sri-for/require-sri-for-script-preload-allowed.php [ Failure Pass ] crbug.com/678499 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/require-sri-for/require-sri-for-script-preload-allowed.php [ Failure Pass ] -crbug.com/680043 sensor/ambient-light-sensor.html [ Pass Failure ] - crbug.com/680050 inspector/sources/debugger-ui/watch-expressions-panel-switch.html [ Pass Timeout ] # When WebAssembly is exposed in V8 (soon), this test has the wrong number of expected Object.getOwnPropertyNames() for global object.
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt index 672701d..41f77be 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -4090,6 +4090,16 @@ method toJSON setter sdp setter type +interface RTCStatsReport + attribute @@toStringTag + method @@iterator + method constructor + method entries + method forEach + method get + method has + method keys + method values interface RadioNodeList : NodeList attribute @@toStringTag getter value
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt index 7cb6e5c..3f37f45f 100644 --- a/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -4018,6 +4018,16 @@ method toJSON setter sdp setter type +interface RTCStatsReport + attribute @@toStringTag + method @@iterator + method constructor + method entries + method forEach + method get + method has + method keys + method values interface RadioNodeList : NodeList attribute @@toStringTag getter value
diff --git a/third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js b/third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js index fc1fc8e..82c6ce6 100644 --- a/third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js +++ b/third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js
@@ -310,7 +310,7 @@ // (not to a timer) so fluctuations are possible, so we // reference to the actual elapsed updates count. let elapsedUpdates = mockSensor.reading_updates_count() - readingUpdatesCounter; - assert_equals(fastSensorNotifiedCounter, elapsedUpdates); + assert_approx_equals(fastSensorNotifiedCounter, elapsedUpdates, 1); fastSensor.stop(); slowSensor.stop(); resolve(mockSensor);
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptWrappable.h b/third_party/WebKit/Source/bindings/core/v8/ScriptWrappable.h index 4be6a527..227026c 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptWrappable.h +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptWrappable.h
@@ -172,7 +172,6 @@ friend class HeapSnaphotWrapperVisitor; friend class V8HiddenValue; friend class V8PrivateProperty; - friend class WebGLRenderingContextBase; v8::Local<v8::Object> mainWorldWrapper(v8::Isolate* isolate) const { return v8::Local<v8::Object>::New(isolate, m_mainWorldWrapper);
diff --git a/third_party/WebKit/Source/devtools/BUILD.gn b/third_party/WebKit/Source/devtools/BUILD.gn index 762402fa..3787268 100644 --- a/third_party/WebKit/Source/devtools/BUILD.gn +++ b/third_party/WebKit/Source/devtools/BUILD.gn
@@ -781,6 +781,8 @@ "front_end/Images/smallIcons.png", "front_end/Images/smallIcons_2x.png", "front_end/Images/speech.png", + "front_end/Images/treeoutlineTriangles.png", + "front_end/Images/treeoutlineTriangles_2x.png", "front_end/Images/toolbarButtonGlyphs.png", "front_end/Images/toolbarButtonGlyphs_2x.png", "front_end/Images/toolbarResizerHorizontal.png",
diff --git a/third_party/WebKit/Source/devtools/front_end/Images/src/optimize_png.hashes b/third_party/WebKit/Source/devtools/front_end/Images/src/optimize_png.hashes index 9921efa..295dce8b 100644 --- a/third_party/WebKit/Source/devtools/front_end/Images/src/optimize_png.hashes +++ b/third_party/WebKit/Source/devtools/front_end/Images/src/optimize_png.hashes
@@ -8,6 +8,7 @@ "settingsListRemove.svg": "ce9e7c5c5cdaef28e6ee51d9478d5485", "toolbarButtonGlyphs.svg": "db0b7d1af08a57a11e5609e0b2cbbc01", "breakpoint.svg": "69cd92d807259c022791112809b97799", + "treeoutlineTriangles.svg": "017d2f89437df0afc6b9cd5ff43735d9", "search.svg": "fc990dd3836aec510d7ca1f36c2a3142", "audits_logo.svg": "647095d7981857c22a816eef12f75b91" } \ No newline at end of file
diff --git a/third_party/WebKit/Source/devtools/front_end/Images/src/svg2png.hashes b/third_party/WebKit/Source/devtools/front_end/Images/src/svg2png.hashes index 9921efa..295dce8b 100644 --- a/third_party/WebKit/Source/devtools/front_end/Images/src/svg2png.hashes +++ b/third_party/WebKit/Source/devtools/front_end/Images/src/svg2png.hashes
@@ -8,6 +8,7 @@ "settingsListRemove.svg": "ce9e7c5c5cdaef28e6ee51d9478d5485", "toolbarButtonGlyphs.svg": "db0b7d1af08a57a11e5609e0b2cbbc01", "breakpoint.svg": "69cd92d807259c022791112809b97799", + "treeoutlineTriangles.svg": "017d2f89437df0afc6b9cd5ff43735d9", "search.svg": "fc990dd3836aec510d7ca1f36c2a3142", "audits_logo.svg": "647095d7981857c22a816eef12f75b91" } \ No newline at end of file
diff --git a/third_party/WebKit/Source/devtools/front_end/Images/src/treeoutlineTriangles.svg b/third_party/WebKit/Source/devtools/front_end/Images/src/treeoutlineTriangles.svg new file mode 100644 index 0000000..6dcbcc5 --- /dev/null +++ b/third_party/WebKit/Source/devtools/front_end/Images/src/treeoutlineTriangles.svg
@@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32" + height="24" + id="svg3620" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="treeoutlineTriangles.svg"> + <defs + id="defs3622" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="11.313708" + inkscape:cx="11.811861" + inkscape:cy="13.085725" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + showguides="true" + inkscape:guide-bbox="true" + inkscape:window-width="858" + inkscape:window-height="521" + inkscape:window-x="164" + inkscape:window-y="121" + inkscape:window-maximized="0" /> + <metadata + id="metadata3625"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1028.3622)"> + <path + d="m 8,1034.3622 -7,-4 0,8" + id="path3619" + inkscape:connector-curvature="0" /> + <path + d="m 20,1038.3622 4,-7 -8,0" + id="path3621" + inkscape:connector-curvature="0" /> + </g> +</svg>
diff --git a/third_party/WebKit/Source/devtools/front_end/Images/treeoutlineTriangles.png b/third_party/WebKit/Source/devtools/front_end/Images/treeoutlineTriangles.png new file mode 100644 index 0000000..71a09d3 --- /dev/null +++ b/third_party/WebKit/Source/devtools/front_end/Images/treeoutlineTriangles.png Binary files differ
diff --git a/third_party/WebKit/Source/devtools/front_end/Images/treeoutlineTriangles_2x.png b/third_party/WebKit/Source/devtools/front_end/Images/treeoutlineTriangles_2x.png new file mode 100644 index 0000000..1d8aa0ee --- /dev/null +++ b/third_party/WebKit/Source/devtools/front_end/Images/treeoutlineTriangles_2x.png Binary files differ
diff --git a/third_party/WebKit/Source/devtools/front_end/data_grid/dataGrid.css b/third_party/WebKit/Source/devtools/front_end/data_grid/dataGrid.css index 396fc410..ba16860 100644 --- a/third_party/WebKit/Source/devtools/front_end/data_grid/dataGrid.css +++ b/third_party/WebKit/Source/devtools/front_end/data_grid/dataGrid.css
@@ -175,9 +175,9 @@ .data-grid td.disclosure::before { -webkit-user-select: none; - -webkit-mask-image: url(Images/toolbarButtonGlyphs.png); - -webkit-mask-position: -4px -96px; - -webkit-mask-size: 352px 168px; + -webkit-mask-image: url(Images/treeoutlineTriangles.png); + -webkit-mask-position: 0 0; + -webkit-mask-size: 32px 24px; float: left; width: 8px; height: 12px; @@ -194,12 +194,12 @@ @media (-webkit-min-device-pixel-ratio: 1.1) { .data-grid tr.parent td.disclosure::before { - -webkit-mask-image: url(Images/toolbarButtonGlyphs_2x.png); + -webkit-mask-image: url(Images/treeoutlineTriangles_2x.png); } } /* media */ .data-grid tr.expanded td.disclosure::before { - -webkit-mask-position: -20px -96px; + -webkit-mask-position: -16px 0; } .data-grid tr.selected { @@ -218,12 +218,12 @@ .data-grid:focus tr.parent.selected td.disclosure::before { background-color: white; - -webkit-mask-position: -4px -96px; + -webkit-mask-position: 0 0; } .data-grid:focus tr.expanded.selected td.disclosure::before { background-color: white; - -webkit-mask-position: -20px -96px; + -webkit-mask-position: -16px 0; } .data-grid tr.inactive {
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/elementsTreeOutline.css b/third_party/WebKit/Source/devtools/front_end/elements/elementsTreeOutline.css index 16fad38..72a14ef8 100644 --- a/third_party/WebKit/Source/devtools/front_end/elements/elementsTreeOutline.css +++ b/third_party/WebKit/Source/devtools/front_end/elements/elementsTreeOutline.css
@@ -47,8 +47,8 @@ .elements-disclosure li.parent::before { -webkit-user-select: none; - -webkit-mask-image: url(Images/toolbarButtonGlyphs.png); - -webkit-mask-size: 352px 168px; + -webkit-mask-image: url(Images/treeoutlineTriangles.png); + -webkit-mask-size: 32px 24px; content: "aa"; color: transparent; text-shadow: none; @@ -61,12 +61,12 @@ @media (-webkit-min-device-pixel-ratio: 1.1) { .elements-disclosure li.parent::before { - -webkit-mask-image: url(Images/toolbarButtonGlyphs_2x.png); + -webkit-mask-image: url(Images/treeoutlineTriangles_2x.png); } } /* media */ .elements-disclosure li.parent::before { - -webkit-mask-position: -4px -96px; + -webkit-mask-position: 0 0; background-color: rgb(110, 110, 110); } @@ -84,7 +84,7 @@ } .elements-disclosure li.parent.expanded::before { - -webkit-mask-position: -20px -96px; + -webkit-mask-position: -16px 0; } .elements-disclosure li.selected .selection {
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/treeoutline.css b/third_party/WebKit/Source/devtools/front_end/ui/treeoutline.css index 5b1dab39..942ca4aa 100644 --- a/third_party/WebKit/Source/devtools/front_end/ui/treeoutline.css +++ b/third_party/WebKit/Source/devtools/front_end/ui/treeoutline.css
@@ -104,8 +104,8 @@ .tree-outline li::before { -webkit-user-select: none; - -webkit-mask-image: url(Images/toolbarButtonGlyphs.png); - -webkit-mask-size: 352px 168px; + -webkit-mask-image: url(Images/treeoutlineTriangles.png); + -webkit-mask-size: 32px 24px; content: "aa"; color: transparent; text-shadow: none; @@ -119,17 +119,17 @@ @media (-webkit-min-device-pixel-ratio: 1.1) { .tree-outline li::before { - -webkit-mask-image: url(Images/toolbarButtonGlyphs_2x.png); + -webkit-mask-image: url(Images/treeoutlineTriangles_2x.png); } } /* media */ .tree-outline li::before { - -webkit-mask-position: -4px -96px; + -webkit-mask-position: 0 0; background-color: rgb(110, 110, 110); } .tree-outline li.parent.expanded::before { - -webkit-mask-position: -20px -96px; + -webkit-mask-position: -16px 0; } .tree-outline ol.children {
diff --git a/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.idl b/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.idl index af35b94..d946694 100644 --- a/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.idl +++ b/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.idl
@@ -110,7 +110,7 @@ // TODO(hbos): The spec has an optional |selector| argument that is not // supported yet. There is a discussion about what to do with it (clarify // spec, remove it or change it?): https://github.com/w3c/webrtc-stats/issues/116 - [CallWith=ScriptState, RuntimeEnabled=RTCPeerConnectionNewGetStats] Promise<RTCStatsReport> getStats(); + [CallWith=ScriptState] Promise<RTCStatsReport> getStats(); // https://w3c.github.io/webrtc-pc/#peer-to-peer-data-api // TODO(guidou): The label argument should have [TreatNullAs=EmptyString]
diff --git a/third_party/WebKit/Source/modules/peerconnection/RTCStatsReport.idl b/third_party/WebKit/Source/modules/peerconnection/RTCStatsReport.idl index 9a6d169..3b9f98a 100644 --- a/third_party/WebKit/Source/modules/peerconnection/RTCStatsReport.idl +++ b/third_party/WebKit/Source/modules/peerconnection/RTCStatsReport.idl
@@ -3,8 +3,6 @@ // found in the LICENSE file. // https://w3c.github.io/webrtc-pc/#rtcstatsreport-object -[ - RuntimeEnabled=RTCPeerConnectionNewGetStats, -] interface RTCStatsReport { +interface RTCStatsReport { readonly maplike<DOMString, object>; };
diff --git a/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in b/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in index f0f5226d..486853d 100644 --- a/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in +++ b/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
@@ -211,7 +211,6 @@ // Handles frame scrolling via the root PaintLayer instead of the FrameView. // crbug.com/417782 tracks enabling this by default. RootLayerScrolling -RTCPeerConnectionNewGetStats status=experimental ScriptedSpeech status=stable // Scrolls to compensate for layout movements (bit.ly/scroll-anchoring). ScrollAnchoring status=experimental, settable_from_internals=True
diff --git a/ui/aura/test/aura_test_helper.cc b/ui/aura/test/aura_test_helper.cc index a232d81..7c9e5cb 100644 --- a/ui/aura/test/aura_test_helper.cc +++ b/ui/aura/test/aura_test_helper.cc
@@ -38,6 +38,11 @@ namespace aura { namespace test { +namespace { + +AuraTestHelper* g_instance = nullptr; + +} // namespace AuraTestHelper::AuraTestHelper(base::MessageLoopForUI* message_loop) : setup_called_(false), teardown_called_(false) { @@ -58,6 +63,11 @@ << "AuraTestHelper::TearDown() never called."; } +// static +AuraTestHelper* AuraTestHelper::GetInstance() { + return g_instance; +} + void AuraTestHelper::EnableMusWithTestWindowTree( WindowTreeClientDelegate* window_tree_delegate, WindowManagerDelegate* window_manager_delegate) { @@ -128,9 +138,12 @@ if (mode_ == Mode::MUS_CREATE_WINDOW_TREE_CLIENT) window_tree()->AckAllChanges(); + + g_instance = this; } void AuraTestHelper::TearDown() { + g_instance = nullptr; teardown_called_ = true; parenting_client_.reset(); client::SetFocusClient(root_window(), nullptr);
diff --git a/ui/aura/test/aura_test_helper.h b/ui/aura/test/aura_test_helper.h index 8fd4140..06e29119 100644 --- a/ui/aura/test/aura_test_helper.h +++ b/ui/aura/test/aura_test_helper.h
@@ -51,6 +51,9 @@ explicit AuraTestHelper(base::MessageLoopForUI* message_loop); ~AuraTestHelper(); + // Returns the current AuraTestHelper, or nullptr if it's not alive. + static AuraTestHelper* GetInstance(); + // Makes aura target mus with a mock WindowTree (TestWindowTree). Must be // called before SetUp(). void EnableMusWithTestWindowTree(
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn index 214a0be..4bd4d17 100644 --- a/ui/views/BUILD.gn +++ b/ui/views/BUILD.gn
@@ -811,6 +811,7 @@ deps += [ "//ui/aura", "//ui/aura:test_support", + "//ui/views/mus", "//ui/wm", ] if (use_x11 && !is_chromeos) { @@ -910,6 +911,7 @@ "layout/fill_layout_unittest.cc", "layout/grid_layout_unittest.cc", "rect_based_targeting_utils_unittest.cc", + "test/widget_test_unittest.cc", "view_model_unittest.cc", "view_model_utils_unittest.cc", "view_targeter_unittest.cc",
diff --git a/ui/views/test/widget_test.h b/ui/views/test/widget_test.h index 3eda511..5ce2b65 100644 --- a/ui/views/test/widget_test.h +++ b/ui/views/test/widget_test.h
@@ -90,6 +90,9 @@ // Return true if |window| is transparent according to the native platform. static bool IsNativeWindowTransparent(gfx::NativeWindow window); + // Returns the set of all Widgets that currently have a NativeWindow. + static Widget::Widgets GetAllWidgets(); + private: DISALLOW_COPY_AND_ASSIGN(WidgetTest); };
diff --git a/ui/views/test/widget_test_aura.cc b/ui/views/test/widget_test_aura.cc index 5c72553..8cabaf5 100644 --- a/ui/views/test/widget_test_aura.cc +++ b/ui/views/test/widget_test_aura.cc
@@ -6,9 +6,12 @@ #include "build/build_config.h" #include "ui/aura/client/focus_client.h" +#include "ui/aura/mus/window_tree_client.h" +#include "ui/aura/test/aura_test_helper.h" #include "ui/aura/window.h" #include "ui/aura/window_delegate.h" #include "ui/aura/window_tree_host.h" +#include "ui/views/mus/mus_client.h" #include "ui/views/widget/widget.h" #if defined(USE_X11) @@ -16,6 +19,10 @@ #include "ui/gfx/x/x11_types.h" // nogncheck #endif +#if defined(USE_X11) && !defined(OS_CHROMEOS) +#include "ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h" +#endif + namespace views { namespace test { @@ -48,6 +55,46 @@ return false; } +#if defined(OS_WIN) + +struct FindAllWindowsData { + std::vector<aura::Window*>* windows; +}; + +BOOL CALLBACK FindAllWindowsCallback(HWND hwnd, LPARAM param) { + FindAllWindowsData* data = reinterpret_cast<FindAllWindowsData*>(param); + if (aura::WindowTreeHost* host = + aura::WindowTreeHost::GetForAcceleratedWidget(hwnd)) + data->windows->push_back(host->window()); + return TRUE; +} + +#endif // OS_WIN + +std::vector<aura::Window*> GetAllTopLeveLWindows() { + std::vector<aura::Window*> roots; +#if defined(USE_X11) && !defined(OS_CHROMEOS) + roots = DesktopWindowTreeHostX11::GetAllOpenWindows(); +#endif +#if defined(OS_WIN) + { + FindAllWindowsData data = {&roots}; + EnumThreadWindows(GetCurrentThreadId(), FindAllWindowsCallback, + reinterpret_cast<LPARAM>(&data)); + } +#endif // OS_WIN + aura::test::AuraTestHelper* aura_test_helper = + aura::test::AuraTestHelper::GetInstance(); + if (aura_test_helper) + roots.push_back(aura_test_helper->root_window()); + + if (MusClient::Get()) { + auto mus_roots = MusClient::Get()->window_tree_client()->GetRoots(); + roots.insert(roots.end(), mus_roots.begin(), mus_roots.end()); + } + return roots; +} + } // namespace // static @@ -114,5 +161,14 @@ return window->transparent(); } +// static +Widget::Widgets WidgetTest::GetAllWidgets() { + std::vector<aura::Window*> toplevel = GetAllTopLeveLWindows(); + Widget::Widgets all_widgets; + for (aura::Window* root : toplevel) + Widget::GetAllChildWidgets(root, &all_widgets); + return all_widgets; +} + } // namespace test } // namespace views
diff --git a/ui/views/test/widget_test_mac.mm b/ui/views/test/widget_test_mac.mm index 5b3f9e5b..2f14759d 100644 --- a/ui/views/test/widget_test_mac.mm +++ b/ui/views/test/widget_test_mac.mm
@@ -85,5 +85,15 @@ return ![window isOpaque]; } +// static +Widget::Widgets WidgetTest::GetAllWidgets() { + Widget::Widgets all_widgets; + for (NSWindow* window : [NSApp windows]) { + if (Widget* widget = Widget::GetWidgetForNativeWindow(window)) + all_widgets.insert(widget); + } + return all_widgets; +} + } // namespace test } // namespace views
diff --git a/ui/views/test/widget_test_unittest.cc b/ui/views/test/widget_test_unittest.cc new file mode 100644 index 0000000..b4d8ea5 --- /dev/null +++ b/ui/views/test/widget_test_unittest.cc
@@ -0,0 +1,79 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/views/test/widget_test.h" + +#include <algorithm> +#include <vector> + +#include "testing/gtest/include/gtest/gtest.h" + +namespace views { +namespace test { +namespace { + +// Insert |widget| into |expected| and ensure it's reported by GetAllWidgets(). +void ExpectAdd(Widget::Widgets* expected, Widget* widget, const char* message) { + SCOPED_TRACE(message); + EXPECT_TRUE(expected->insert(widget).second); + Widget::Widgets actual = WidgetTest::GetAllWidgets(); + EXPECT_EQ(expected->size(), actual.size()); + EXPECT_TRUE(std::equal(expected->begin(), expected->end(), actual.begin())); +} + +// Close |widgets[0]|, and expect all |widgets| to be removed. +void ExpectClose(Widget::Widgets* expected, + std::vector<Widget*> widgets, + const char* message) { + SCOPED_TRACE(message); + for (Widget* widget : widgets) + EXPECT_EQ(1u, expected->erase(widget)); + widgets[0]->CloseNow(); + Widget::Widgets actual = WidgetTest::GetAllWidgets(); + EXPECT_EQ(expected->size(), actual.size()); + EXPECT_TRUE(std::equal(expected->begin(), expected->end(), actual.begin())); +} + +} // namespace + +using WidgetTestTest = WidgetTest; + +// Ensure that Widgets with various root windows are correctly reported by +// WidgetTest::GetAllWidgets(). +TEST_F(WidgetTestTest, GetAllWidgets) { + // Note Widget::Widgets is a std::set ordered by pointer value, so the order + // that |expected| is updated below is not important. + Widget::Widgets expected; + + EXPECT_EQ(expected, GetAllWidgets()); + + Widget* platform = CreateTopLevelPlatformWidget(); + ExpectAdd(&expected, platform, "platform"); + + Widget* platform_child = CreateChildPlatformWidget(platform->GetNativeView()); + ExpectAdd(&expected, platform_child, "platform_child"); + + Widget* frameless = CreateTopLevelFramelessPlatformWidget(); + ExpectAdd(&expected, frameless, "frameless"); + + Widget* native = CreateTopLevelNativeWidget(); + ExpectAdd(&expected, native, "native"); + + Widget* native_child = CreateChildNativeWidgetWithParent(native); + ExpectAdd(&expected, native_child, "native_child"); + + Widget* desktop = CreateNativeDesktopWidget(); + ExpectAdd(&expected, desktop, "desktop"); + + Widget* desktop_child = CreateChildNativeWidgetWithParent(desktop); + ExpectAdd(&expected, desktop_child, "desktop_child"); + + ExpectClose(&expected, {desktop, desktop_child}, "desktop"); + ExpectClose(&expected, {native, native_child}, "native"); + ExpectClose(&expected, {platform, platform_child}, "platform"); + ExpectClose(&expected, {frameless}, "frameless"); +} + +} // namespace views +} // namespace test