diff --git a/BUILD.gn b/BUILD.gn index 47536566..533f7c1 100644 --- a/BUILD.gn +++ b/BUILD.gn
@@ -696,7 +696,10 @@ } if (is_android) { - deps += [ "//build/android/gyp/test:hello_world" ] + deps += [ + "//build/android/gyp/test:hello_world", + "//chrome/test/vr/perf/latency:motopho_latency_test", + ] } if (is_linux && use_ozone) {
diff --git a/DEPS b/DEPS index 3b01e1f..7f1b974 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': 'e9a711fa15ac8a3654d8f7c794965cc1965699a0', + 'v8_revision': 'a478c171e6fe877506ccde3258ab93e47eea8d7f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -64,7 +64,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': '5eb58cd552c184998ed24634db4b2e6e770f39bd', + 'pdfium_revision': 'd20e3880234a35a558237316cac5d70fff4224bc', # 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. @@ -409,7 +409,7 @@ # For Linux and Chromium OS. 'src/third_party/cros_system_api': - Var('chromium_git') + '/chromiumos/platform/system_api.git' + '@' + 'b78cb4884c80ae158efa81b1c65c489cfbc97959', + Var('chromium_git') + '/chromiumos/platform/system_api.git' + '@' + '19115ef1bc72e0068951d236cdc0c549346adfda', 'src/third_party/freetype/src': Var('chromium_git') + '/chromium/src/third_party/freetype2.git' + '@' + Var('freetype_revision'),
diff --git a/ash/display/resolution_notification_controller.cc b/ash/display/resolution_notification_controller.cc index 23ce7b56..b6db541 100644 --- a/ash/display/resolution_notification_controller.cc +++ b/ash/display/resolution_notification_controller.cc
@@ -80,7 +80,7 @@ if (has_timeout_ && button_index == 0) controller_->AcceptResolutionChange(true); else - controller_->RevertResolutionChange(); + controller_->RevertResolutionChange(false /* display_was_removed */); } } // namespace @@ -180,6 +180,14 @@ original_resolution = change_info_->old_resolution; } + if (change_info_ && change_info_->display_id != display_id) { + // Preparing the notification for a new resolution change of another display + // before the previous one was accepted. We decided that it's safer to + // revert the previous resolution change since the user didn't explicitly + // accept it, and we have no way of knowing for sure that it worked. + RevertResolutionChange(false /* display_was_removed */); + } + change_info_.reset(new ResolutionChangeInfo(display_id, old_resolution, new_resolution, accept_callback)); if (original_resolution && !original_resolution->size().IsEmpty()) @@ -253,7 +261,7 @@ --change_info_->timeout_count; if (change_info_->timeout_count == 0) - RevertResolutionChange(); + RevertResolutionChange(false /* display_was_removed */); else CreateOrUpdateNotification(false); } @@ -271,7 +279,8 @@ callback.Run(); } -void ResolutionNotificationController::RevertResolutionChange() { +void ResolutionNotificationController::RevertResolutionChange( + bool display_was_removed) { message_center::MessageCenter::Get()->RemoveNotification(kNotificationId, false /* by_user */); if (!change_info_) @@ -280,7 +289,16 @@ scoped_refptr<display::ManagedDisplayMode> old_resolution = change_info_->old_resolution; change_info_.reset(); - Shell::Get()->display_manager()->SetDisplayMode(display_id, old_resolution); + if (display_was_removed) { + // If display was removed then we are inside the stack of + // DisplayManager::UpdateDisplaysWith(), and we need to update the selected + // mode of this removed display without reentering again into + // UpdateDisplaysWith() because this can cause a crash. crbug.com/709722. + Shell::Get()->display_manager()->SetSelectedModeForDisplayId( + display_id, old_resolution); + } else { + Shell::Get()->display_manager()->SetDisplayMode(display_id, old_resolution); + } } void ResolutionNotificationController::OnDisplayAdded( @@ -289,7 +307,7 @@ void ResolutionNotificationController::OnDisplayRemoved( const display::Display& old_display) { if (change_info_ && change_info_->display_id == old_display.id()) - RevertResolutionChange(); + RevertResolutionChange(true /* display_was_removed */); } void ResolutionNotificationController::OnDisplayMetricsChanged(
diff --git a/ash/display/resolution_notification_controller.h b/ash/display/resolution_notification_controller.h index 8ac70473..e12e1ba 100644 --- a/ash/display/resolution_notification_controller.h +++ b/ash/display/resolution_notification_controller.h
@@ -60,7 +60,7 @@ // Called by the notification delegate when the user wants to revert the // display resolution change. - void RevertResolutionChange(); + void RevertResolutionChange(bool display_was_removed); private: friend class ResolutionNotificationControllerTest;
diff --git a/ash/display/resolution_notification_controller_unittest.cc b/ash/display/resolution_notification_controller_unittest.cc index 0c43487b..977eacc 100644 --- a/ash/display/resolution_notification_controller_unittest.cc +++ b/ash/display/resolution_notification_controller_unittest.cc
@@ -307,7 +307,6 @@ scoped_refptr<display::ManagedDisplayMode> mode = display_manager()->GetSelectedModeForDisplayId(id2); EXPECT_TRUE(!!mode); - gfx::Size resolution; EXPECT_EQ("200x200", mode->size().ToString()); EXPECT_EQ(59.0f, mode->refresh_rate()); }
diff --git a/ash/display/screen_orientation_controller_chromeos.cc b/ash/display/screen_orientation_controller_chromeos.cc index 4eb1740..0040a53 100644 --- a/ash/display/screen_orientation_controller_chromeos.cc +++ b/ash/display/screen_orientation_controller_chromeos.cc
@@ -326,7 +326,7 @@ observer.OnUserRotationLockChanged(); } -void ScreenOrientationController::OnMaximizeModeEnded() { +void ScreenOrientationController::OnMaximizeModeEnding() { chromeos::AccelerometerReader::GetInstance()->RemoveObserver(this); ShellPort::Get()->RemoveDisplayObserver(this); if (!display::Display::HasInternalDisplay())
diff --git a/ash/display/screen_orientation_controller_chromeos.h b/ash/display/screen_orientation_controller_chromeos.h index 7748e77..bfd802f 100644 --- a/ash/display/screen_orientation_controller_chromeos.h +++ b/ash/display/screen_orientation_controller_chromeos.h
@@ -113,7 +113,7 @@ // ShellObserver: void OnMaximizeModeStarted() override; - void OnMaximizeModeEnded() override; + void OnMaximizeModeEnding() override; private: friend class test::ScreenOrientationControllerTestApi;
diff --git a/ash/wm/default_state.cc b/ash/wm/default_state.cc index f7899c2..7d3c552 100644 --- a/ash/wm/default_state.cc +++ b/ash/wm/default_state.cc
@@ -346,6 +346,7 @@ // If a window is opened as maximized or fullscreen, its bounds may be // empty, so update the bounds now before checking empty. if (window_state->is_dragged() || + window_state->allow_set_bounds_direct() || SetMaximizedOrFullscreenBounds(window_state)) { return true; } @@ -380,6 +381,7 @@ } case WM_EVENT_DISPLAY_BOUNDS_CHANGED: { if (window_state->is_dragged() || + window_state->allow_set_bounds_direct() || SetMaximizedOrFullscreenBounds(window_state)) { return true; } @@ -405,6 +407,7 @@ return true; if (window_state->is_dragged() || + window_state->allow_set_bounds_direct() || SetMaximizedOrFullscreenBounds(window_state)) { return true; } @@ -446,6 +449,7 @@ // static bool DefaultState::SetMaximizedOrFullscreenBounds(WindowState* window_state) { DCHECK(!window_state->is_dragged()); + DCHECK(!window_state->allow_set_bounds_direct()); if (window_state->IsMaximized()) { window_state->SetBoundsDirect( GetMaximizedWindowBoundsInParent(window_state->window())); @@ -462,7 +466,7 @@ // static void DefaultState::SetBounds(WindowState* window_state, const SetBoundsEvent* event) { - if (window_state->is_dragged()) { + if (window_state->is_dragged() || window_state->allow_set_bounds_direct()) { // TODO(oshima|varkha): Is this still needed? crbug.com/485612. window_state->SetBoundsDirect(event->requested_bounds()); } else if (window_state->IsSnapped()) { @@ -472,8 +476,7 @@ wm::AdjustBoundsSmallerThan(work_area_in_parent.size(), &child_bounds); window_state->AdjustSnappedBounds(&child_bounds); window_state->SetBoundsDirect(child_bounds); - } else if (!SetMaximizedOrFullscreenBounds(window_state) || - window_state->allow_set_bounds_in_maximized()) { + } else if (!SetMaximizedOrFullscreenBounds(window_state)) { window_state->SetBoundsConstrained(event->requested_bounds()); } }
diff --git a/ash/wm/maximize_mode/maximize_mode_controller.cc b/ash/wm/maximize_mode/maximize_mode_controller.cc index 2c8e1f8..0c606b3 100644 --- a/ash/wm/maximize_mode/maximize_mode_controller.cc +++ b/ash/wm/maximize_mode/maximize_mode_controller.cc
@@ -168,6 +168,7 @@ }); } else { + maximize_mode_window_manager_->SetIgnoreWmEventsForExit(); Shell::Get()->NotifyMaximizeModeEnding(); maximize_mode_window_manager_.reset(); ShellPort::Get()->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_DISABLED);
diff --git a/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc b/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc index c39caa2..cf6bb66 100644 --- a/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc +++ b/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc
@@ -9,6 +9,7 @@ #include <vector> #include "ash/ash_switches.h" +#include "ash/display/screen_orientation_controller_chromeos.h" #include "ash/shell.h" #include "ash/system/tray/system_tray_delegate.h" #include "ash/test/ash_test_base.h" @@ -23,6 +24,7 @@ #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/fake_power_manager_client.h" #include "ui/display/manager/display_manager.h" +#include "ui/display/screen.h" #include "ui/display/test/display_manager_test_api.h" #include "ui/events/event_handler.h" #include "ui/events/test/event_generator.h" @@ -645,4 +647,25 @@ EXPECT_TRUE(AreEventsBlocked()); } +TEST_F(MaximizeModeControllerTest, RestoreAfterExit) { + UpdateDisplay("1000x600"); + std::unique_ptr<aura::Window> w1( + CreateTestWindowInShellWithBounds(gfx::Rect(10, 10, 900, 300))); + maximize_mode_controller()->EnableMaximizeModeWindowManager(true); + Shell::Get()->screen_orientation_controller()->SetLockToRotation( + display::Display::ROTATE_90); + display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); + EXPECT_EQ(display::Display::ROTATE_90, display.rotation()); + EXPECT_LT(display.size().width(), display.size().height()); + maximize_mode_controller()->EnableMaximizeModeWindowManager(false); + display = display::Screen::GetScreen()->GetPrimaryDisplay(); + // Sanity checks. + EXPECT_EQ(display::Display::ROTATE_0, display.rotation()); + EXPECT_GT(display.size().width(), display.size().height()); + + // The bounds should be restored to the original bounds, and + // should not be clamped by the portrait display in touch view. + EXPECT_EQ(gfx::Rect(10, 10, 900, 300), w1->bounds()); +} + } // namespace ash
diff --git a/ash/wm/maximize_mode/maximize_mode_window_manager.cc b/ash/wm/maximize_mode/maximize_mode_window_manager.cc index 89f50ec..4a053c8 100644 --- a/ash/wm/maximize_mode/maximize_mode_window_manager.cc +++ b/ash/wm/maximize_mode/maximize_mode_window_manager.cc
@@ -196,6 +196,12 @@ // Nothing to do here. } +void MaximizeModeWindowManager::SetIgnoreWmEventsForExit() { + for (auto& pair : window_state_map_) { + pair.second->set_ignore_wm_events(true); + } +} + MaximizeModeWindowManager::MaximizeModeWindowManager() : backdrops_hidden_(false) { // The overview mode needs to be ended before the maximize mode is started. To @@ -266,7 +272,7 @@ // If the changing bounds in the maximized/fullscreen is allowed, then // let the client manage it even in maximized mode. - if (window->GetWindowState()->allow_set_bounds_in_maximized()) + if (window->GetWindowState()->allow_set_bounds_direct()) return false; return window->GetType() == ui::wm::WINDOW_TYPE_NORMAL;
diff --git a/ash/wm/maximize_mode/maximize_mode_window_manager.h b/ash/wm/maximize_mode/maximize_mode_window_manager.h index 081384cb..4caa571 100644 --- a/ash/wm/maximize_mode/maximize_mode_window_manager.h +++ b/ash/wm/maximize_mode/maximize_mode_window_manager.h
@@ -71,6 +71,9 @@ void OnDisplayMetricsChanged(const display::Display& display, uint32_t metrics) override; + // Tell all managing windows not to handle WM events. + void SetIgnoreWmEventsForExit(); + protected: friend class MaximizeModeController;
diff --git a/ash/wm/maximize_mode/maximize_mode_window_manager_unittest.cc b/ash/wm/maximize_mode/maximize_mode_window_manager_unittest.cc index b4a1b87..d0b512d 100644 --- a/ash/wm/maximize_mode/maximize_mode_window_manager_unittest.cc +++ b/ash/wm/maximize_mode/maximize_mode_window_manager_unittest.cc
@@ -1595,7 +1595,7 @@ std::unique_ptr<aura::Window> window( CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); - wm::GetWindowState(window.get())->set_allow_set_bounds_in_maximized(true); + wm::GetWindowState(window.get())->set_allow_set_bounds_direct(true); MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); EXPECT_FALSE(wm::GetWindowState(window.get())->IsMaximized());
diff --git a/ash/wm/maximize_mode/maximize_mode_window_state.cc b/ash/wm/maximize_mode/maximize_mode_window_state.cc index 9ff0a98..7dd4c267 100644 --- a/ash/wm/maximize_mode/maximize_mode_window_state.cc +++ b/ash/wm/maximize_mode/maximize_mode_window_state.cc
@@ -121,6 +121,11 @@ void MaximizeModeWindowState::OnWMEvent(wm::WindowState* window_state, const wm::WMEvent* event) { + // Ignore events that are sent during the exit transition. + if (ignore_wm_events_) { + return; + } + switch (event->type()) { case wm::WM_EVENT_TOGGLE_FULLSCREEN: ToggleFullScreen(window_state, window_state->delegate()); @@ -156,10 +161,7 @@ case wm::WM_EVENT_SHOW_INACTIVE: return; case wm::WM_EVENT_SET_BOUNDS: - if (window_state->allow_set_bounds_in_maximized()) { - window_state->SetBoundsConstrained( - static_cast<const wm::SetBoundsEvent*>(event)->requested_bounds()); - } else if (current_state_type_ == wm::WINDOW_STATE_TYPE_MAXIMIZED) { + if (current_state_type_ == wm::WINDOW_STATE_TYPE_MAXIMIZED) { // Having a maximized window, it could have been created with an empty // size and the caller should get his size upon leaving the maximized // mode. As such we set the restore bounds to the requested bounds.
diff --git a/ash/wm/maximize_mode/maximize_mode_window_state.h b/ash/wm/maximize_mode/maximize_mode_window_state.h index fe0878f..7cadc5f6 100644 --- a/ash/wm/maximize_mode/maximize_mode_window_state.h +++ b/ash/wm/maximize_mode/maximize_mode_window_state.h
@@ -30,6 +30,8 @@ MaximizeModeWindowState(WmWindow* window, MaximizeModeWindowManager* creator); ~MaximizeModeWindowState() override; + void set_ignore_wm_events(bool ignore) { ignore_wm_events_ = ignore; } + // Leaves the maximize mode by reverting to previous state object. void LeaveMaximizeMode(wm::WindowState* window_state); @@ -80,6 +82,9 @@ // If true, do not update bounds. bool defer_bounds_updates_; + // If true, the state will not process events. + bool ignore_wm_events_ = false; + DISALLOW_COPY_AND_ASSIGN(MaximizeModeWindowState); };
diff --git a/ash/wm/window_state.h b/ash/wm/window_state.h index c837d1d1..9438cd7 100644 --- a/ash/wm/window_state.h +++ b/ash/wm/window_state.h
@@ -294,14 +294,11 @@ ignore_keyboard_bounds_change_ = ignore_keyboard_bounds_change; } - // True if the window's bounds can be updated using SET_BOUNDS event in - // maiximzed/fullscreen mode. - void set_allow_set_bounds_in_maximized(bool value) { - allow_set_bounds_in_maximized_ = value; + // True if the window bounds can be updated directly using SET_BOUNDS event. + void set_allow_set_bounds_direct(bool value) { + allow_set_bounds_direct_ = value; } - bool allow_set_bounds_in_maximized() const { - return allow_set_bounds_in_maximized_; - } + bool allow_set_bounds_direct() const { return allow_set_bounds_direct_; } // Creates and takes ownership of a pointer to DragDetails when resizing is // active. This should be done before a resizer gets created. @@ -396,7 +393,7 @@ bool minimum_visibility_; bool can_be_dragged_; bool cached_always_on_top_; - bool allow_set_bounds_in_maximized_ = false; + bool allow_set_bounds_direct_ = false; // A property to remember the window position which was set before the // auto window position manager changed the window bounds, so that it can get
diff --git a/ash/wm/window_state_unittest.cc b/ash/wm/window_state_unittest.cc index 01aed837..ecb86cef 100644 --- a/ash/wm/window_state_unittest.cc +++ b/ash/wm/window_state_unittest.cc
@@ -374,7 +374,7 @@ EXPECT_FALSE(window_state->IsTrustedPinned()); } -TEST_F(WindowStateTest, AllowSetBoundsInMaximized) { +TEST_F(WindowStateTest, AllowSetBoundsDirect) { std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(0)); WindowState* window_state = GetWindowState(window.get()); EXPECT_FALSE(window_state->IsMaximized()); @@ -384,7 +384,7 @@ window->SetBounds(original_bounds); ASSERT_EQ(original_bounds, window->bounds()); - window_state->set_allow_set_bounds_in_maximized(true); + window_state->set_allow_set_bounds_direct(true); window_state->Maximize(); EXPECT_TRUE(window_state->IsMaximized()); @@ -398,7 +398,7 @@ EXPECT_FALSE(window_state->IsMaximized()); EXPECT_EQ(original_bounds, window->bounds()); - window_state->set_allow_set_bounds_in_maximized(false); + window_state->set_allow_set_bounds_direct(false); window_state->Maximize(); EXPECT_TRUE(window_state->IsMaximized());
diff --git a/build/android/play_services/config.json b/build/android/play_services/config.json index d9a1e81..8a755f64 100644 --- a/build/android/play_services/config.json +++ b/build/android/play_services/config.json
@@ -1,14 +1,15 @@ { "clients": [ - "play-services-basement", - "play-services-tasks", - "play-services-base", "play-services-auth-base", "play-services-auth", + "play-services-base", + "play-services-basement", "play-services-cast", - "play-services-iid", "play-services-gcm", + "play-services-iid", + "play-services-location", "play-services-nearby", + "play-services-tasks", "play-services-vision" ], "version_number": "10.2.0",
diff --git a/build/android/play_services/google_play_services_library.zip.sha1 b/build/android/play_services/google_play_services_library.zip.sha1 index 70df3c6..442310e 100644 --- a/build/android/play_services/google_play_services_library.zip.sha1 +++ b/build/android/play_services/google_play_services_library.zip.sha1
@@ -1 +1 @@ -7bef387dc3f3fa6fb62d29f26fd18814b3d51ecf \ No newline at end of file +c0867d3d4daf1fad7d460bcfd27effdf15bbd450 \ No newline at end of file
diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn index f11a2450..853b040 100644 --- a/build/secondary/third_party/android_tools/BUILD.gn +++ b/build/secondary/third_party/android_tools/BUILD.gn
@@ -209,6 +209,7 @@ ":google_play_services_cast_java", ":google_play_services_gcm_java", ":google_play_services_iid_java", + ":google_play_services_location_java", ":google_play_services_nearby_java", ":google_play_services_vision_java", ] @@ -300,6 +301,16 @@ ignore_manifest = true } +android_aar_prebuilt("google_play_services_location_java") { + deps = [ + ":google_play_services_base_java", + ":google_play_services_basement_java", + ] + _lib_name = "play-services-location" + aar_path = "$gms_path/$_lib_name/$gms_version/$_lib_name-$gms_version.aar" + ignore_manifest = true +} + android_aar_prebuilt("google_play_services_nearby_java") { deps = [ ":google_play_services_base_java",
diff --git a/chrome/VERSION b/chrome/VERSION index b1c05cb2..d91d6a8 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=59 MINOR=0 -BUILD=3070 +BUILD=3071 PATCH=0
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java index a3ac422..36e7daaf 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -7,6 +7,7 @@ import org.chromium.base.VisibleForTesting; import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.MainDex; +import org.chromium.base.library_loader.LibraryLoader; import java.util.Map; @@ -35,6 +36,22 @@ } /** + * @return Whether the native FeatureList has been initialized. If this method returns false, + * none of the methods in this class that require native access should be called (except in + * tests if test features have been set). + */ + public static boolean isInitialized() { + if (!LibraryLoader.isInitialized()) return false; + + // Even if the native library is loaded, the C++ FeatureList might not be initialized yet. + // In that case, accessing it will not immediately fail, but instead cause a crash later + // when it is initialized. Return whether the native FeatureList has been initialized, + // so the return value can be tested, or asserted for a more actionable stack trace + // on failure. + return nativeIsInitialized(); + } + + /** * Returns whether the specified feature is enabled or not. * * Note: Features queried through this API must be added to the array @@ -44,9 +61,14 @@ * @return Whether the feature is enabled or not. */ public static boolean isEnabled(String featureName) { - if (sTestFeatures == null) return nativeIsEnabled(featureName); - if (sTestFeatures.containsKey(featureName)) return sTestFeatures.get(featureName); - throw new IllegalArgumentException(featureName); + if (sTestFeatures != null) { + Boolean enabled = sTestFeatures.get(featureName); + if (enabled == null) throw new IllegalArgumentException(featureName); + return enabled.booleanValue(); + } + + assert isInitialized(); + return nativeIsEnabled(featureName); } /** @@ -61,6 +83,7 @@ * the specified parameter does not exist. */ public static String getFieldTrialParamByFeature(String featureName, String paramName) { + assert isInitialized(); return nativeGetFieldTrialParamByFeature(featureName, paramName); } @@ -78,6 +101,7 @@ */ public static int getFieldTrialParamByFeatureAsInt( String featureName, String paramName, int defaultValue) { + assert isInitialized(); return nativeGetFieldTrialParamByFeatureAsInt(featureName, paramName, defaultValue); } @@ -95,6 +119,7 @@ */ public static double getFieldTrialParamByFeatureAsDouble( String featureName, String paramName, double defaultValue) { + assert isInitialized(); return nativeGetFieldTrialParamByFeatureAsDouble(featureName, paramName, defaultValue); } @@ -112,6 +137,7 @@ */ public static boolean getFieldTrialParamByFeatureAsBoolean( String featureName, String paramName, boolean defaultValue) { + assert isInitialized(); return nativeGetFieldTrialParamByFeatureAsBoolean(featureName, paramName, defaultValue); } @@ -163,6 +189,7 @@ public static final String WEB_PAYMENTS_SINGLE_APP_UI_SKIP = "WebPaymentsSingleAppUiSkip"; public static final String WEBVR_CARDBOARD_SUPPORT = "WebVRCardboardSupport"; + private static native boolean nativeIsInitialized(); private static native boolean nativeIsEnabled(String featureName); private static native String nativeGetFieldTrialParamByFeature( String featureName, String paramName);
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd index deb2dbe..399dcc45 100644 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -483,7 +483,7 @@ Search and site suggestions </message> <message name="IDS_SEARCH_SITE_SUGGESTIONS_SUMMARY" desc="Summary for search and site suggestions."> - Use prediction services to suggest searches and websites + Use prediction services to suggest search terms and websites </message> <message name="IDS_SAFE_BROWSING_EXTENDED_REPORTING_TITLE" desc="Title for checkbox that controls whether details of possible security incidents will be sent to Google."> Security incidents @@ -1026,7 +1026,7 @@ <message name="IDS_DATA_REDUCTION_CAVEATS_DESCRIPTION" desc="Description text for usage caveats"> This feature may interfere with access to premium data services provided by your carrier. </message> - + <!-- Old Data Saver stats page strings--> <message name="IDS_DATA_REDUCTION_STATS_TITLE" desc="Data reduction statistics title."> Data savings
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java index 950fddb..48bf368 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
@@ -127,7 +127,7 @@ RecordHistogram.setDisabledForTests(true); mDelegate.mQueryIntentOverride = null; ChromeWebApkHost.initForTesting(false); // disabled by default - mActivityTestRule.loadNativeLibraryNoBrowserProcess(); + mActivityTestRule.loadNativeLibraryAndInitBrowserProcess(); } @After
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp index 79df369..c7c7b49 100644 --- a/chrome/app/chromeos_strings.grdp +++ b/chrome/app/chromeos_strings.grdp
@@ -4725,6 +4725,9 @@ <message name="IDS_KEYBOARD_OVERLAY_ROTATE_SCREEN" desc="The text in the keyboard overlay to explain the shortcut (rotate the screen)."> Rotate screen </message> + <message name="IDS_KEYBOARD_OVERLAY_ROTATE_WINDOW" desc="The text in the keyboard overlay to explain the shortcut (rotate the window)."> + Rotate window + </message> <message name="IDS_KEYBOARD_OVERLAY_SAVE" desc="The text in the keyboard overlay to explain the shortcut (save page as a file)."> Save </message> @@ -4755,6 +4758,9 @@ <message name="IDS_KEYBOARD_OVERLAY_SHOW_STATUS_MENU" desc="The text in the keyboard overlay to explain the shortcut (show the status menu)."> Status menu </message> + <message name="IDS_KEYBOARD_OVERLAY_SHOW_STYLUS_TOOLS" desc="The text in the keyboard overlay to explain the shortcut (show the stylus tools)."> + Stylus tools + </message> <message name="IDS_KEYBOARD_OVERLAY_SIGN_OUT" desc="The text in the keyboard overlay to explain the shortcut."> Sign out </message> @@ -4791,9 +4797,15 @@ <message name="IDS_KEYBOARD_OVERLAY_TOGGLE_SPEECH_INPUT" desc="The text in the keyboard overlay to explain the shortcut (start or stop speech input)."> Speech input </message> + <message name="IDS_KEYBOARD_OVERLAY_TOUCH_HUD_MODE_CHANGE" desc="The text in the keyboard overlay to explain the shortcut (touch hub mode change)."> + Touch HUD mode change + </message> <message name="IDS_KEYBOARD_OVERLAY_UNDO" desc="The text in the keyboard overlay to explain the shortcut."> Undo </message> + <message name="IDS_KEYBOARD_OVERLAY_UNPIN" desc="The text in the keyboard overlay to explain the shortcut."> + Unpin + </message> <message name="IDS_KEYBOARD_OVERLAY_VIEW_KEYBOARD_OVERLAY" desc="The text in the keyboard overlay to explain the shortcut."> Keyboard overlay </message> @@ -6568,6 +6580,9 @@ <message name="IDS_ARC_MIGRATE_ENCRYPTION_NOTIFICATION_RESTART_BUTTON" desc="Label for the button in the notification that navigates the user to sign-out for completing the encryption update step."> Sign out & sign back in </message> + <message name="IDS_ARC_MIGRATE_ENCRYPTION_SUCCESS_MESSAGE" desc="Message of the toast shown on the first sign-in after the successfully completed migration needed for using Android apps."> + Update successful. You can now use Android apps. + </message> <!-- Print Job Notification --> <message name="IDS_PRINT_JOB_WAITING_NOTIFICATION_MESSAGE" desc="Message of the waiting-for-printing notification.">
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc index b1e79b3a..23e63e7 100644 --- a/chrome/browser/android/chrome_feature_list.cc +++ b/chrome/browser/android/chrome_feature_list.cc
@@ -210,6 +210,10 @@ const base::Feature kWebVRCardboardSupport{ "WebVRCardboardSupport", base::FEATURE_ENABLED_BY_DEFAULT}; +static jboolean IsInitialized(JNIEnv* env, const JavaParamRef<jclass>& clazz) { + return !!base::FeatureList::GetInstance(); +} + static jboolean IsEnabled(JNIEnv* env, const JavaParamRef<jclass>& clazz, const JavaParamRef<jstring>& jfeature_name) {
diff --git a/chrome/browser/android/vr_shell/vr_shell_gl.cc b/chrome/browser/android/vr_shell/vr_shell_gl.cc index dbb009f..5736237 100644 --- a/chrome/browser/android/vr_shell/vr_shell_gl.cc +++ b/chrome/browser/android/vr_shell/vr_shell_gl.cc
@@ -108,6 +108,40 @@ return quat; } +gvr::Mat4f PerspectiveMatrixFromView(const gvr::Rectf& fov, + float z_near, + float z_far) { + gvr::Mat4f result; + const float x_left = -std::tan(fov.left * M_PI / 180.0f) * z_near; + const float x_right = std::tan(fov.right * M_PI / 180.0f) * z_near; + const float y_bottom = -std::tan(fov.bottom * M_PI / 180.0f) * z_near; + const float y_top = std::tan(fov.top * M_PI / 180.0f) * z_near; + + DCHECK(x_left < x_right && y_bottom < y_top && z_near < z_far && + z_near > 0.0f && z_far > 0.0f); + const float X = (2 * z_near) / (x_right - x_left); + const float Y = (2 * z_near) / (y_top - y_bottom); + const float A = (x_right + x_left) / (x_right - x_left); + const float B = (y_top + y_bottom) / (y_top - y_bottom); + const float C = (z_near + z_far) / (z_near - z_far); + const float D = (2 * z_near * z_far) / (z_near - z_far); + + for (int i = 0; i < 4; ++i) { + for (int j = 0; j < 4; ++j) { + result.m[i][j] = 0.0f; + } + } + result.m[0][0] = X; + result.m[0][2] = A; + result.m[1][1] = Y; + result.m[1][2] = B; + result.m[2][2] = C; + result.m[2][3] = D; + result.m[3][2] = -1; + + return result; +} + std::unique_ptr<blink::WebMouseEvent> MakeMouseEvent(WebInputEvent::Type type, double timestamp, float x, @@ -150,13 +184,13 @@ *out = *reinterpret_cast<vr::Mat4f*>(const_cast<gvr::Mat4f*>(&in)); } -gvr::Rectf GvrRectFromGfxRect(gfx::RectF rect) { - // gvr::Rectf bottom/top are reverse of gfx::RectF bottom/top. - return {rect.x(), rect.x() + rect.width(), rect.y(), rect.bottom()}; +gvr::Rectf UVFromGfxRect(gfx::RectF rect) { + return {rect.x(), rect.x() + rect.width(), 1.0f - rect.bottom(), + 1.0f - rect.y()}; } -gfx::RectF GfxRectFromGvrRect(gvr::Rectf rect) { - return gfx::RectF(rect.left, rect.bottom, rect.right - rect.left, +gfx::RectF GfxRectFromUV(gvr::Rectf rect) { + return gfx::RectF(rect.left, 1.0 - rect.top, rect.right - rect.left, rect.top - rect.bottom); } @@ -785,9 +819,8 @@ break; const WebVrBounds& bounds = pending_bounds_.front().second; - webvr_left_viewport_->SetSourceUv(GvrRectFromGfxRect(bounds.left_bounds)); - webvr_right_viewport_->SetSourceUv( - GvrRectFromGfxRect(bounds.right_bounds)); + webvr_left_viewport_->SetSourceUv(UVFromGfxRect(bounds.left_bounds)); + webvr_right_viewport_->SetSourceUv(UVFromGfxRect(bounds.right_bounds)); DVLOG(1) << __FUNCTION__ << ": resize from pending_bounds to " << bounds.source_size.width() << "x" << bounds.source_size.height(); @@ -889,7 +922,7 @@ // After saving the timestamp, fps will be available via GetFPS(). // TODO(vollick): enable rendering of this framerate in a HUD. fps_meter_->AddFrame(current_time); - LOG(ERROR) << "fps: " << fps_meter_->GetFPS(); + DVLOG(1) << "fps: " << fps_meter_->GetFPS(); #endif } @@ -958,17 +991,17 @@ GvrMatToMatf(gvr_api_->GetEyeFromHeadMatrix(eye), &eye_matrix); vr::MatrixMul(eye_matrix, head_pose, &eye_view_matrix); - const gfx::RectF& rect = - GfxRectFromGvrRect(buffer_viewport_->GetSourceUv()); + const gfx::RectF& rect = GfxRectFromUV(buffer_viewport_->GetSourceUv()); const gfx::Rect& pixel_rect = CalculatePixelSpaceRect(render_size, rect); glViewport(pixel_rect.x(), pixel_rect.y(), pixel_rect.width(), pixel_rect.height()); vr::Mat4f render_matrix; vr::Mat4f perspective_matrix; - vr::PerspectiveMatrixFromView( - GfxRectFromGvrRect(buffer_viewport_->GetSourceFov()), kZNear, kZFar, - &perspective_matrix); + GvrMatToMatf(PerspectiveMatrixFromView(buffer_viewport_->GetSourceFov(), + kZNear, kZFar), + &perspective_matrix); + vr::MatrixMul(perspective_matrix, eye_view_matrix, &render_matrix); DrawElements(render_matrix, elementsInDrawOrder); @@ -1207,8 +1240,8 @@ const gfx::RectF& right_bounds, const gfx::Size& source_size) { if (frame_index < 0) { - webvr_left_viewport_->SetSourceUv(GvrRectFromGfxRect(left_bounds)); - webvr_right_viewport_->SetSourceUv(GvrRectFromGfxRect(right_bounds)); + webvr_left_viewport_->SetSourceUv(UVFromGfxRect(left_bounds)); + webvr_right_viewport_->SetSourceUv(UVFromGfxRect(right_bounds)); CreateOrResizeWebVRSurface(source_size); } else { pending_bounds_.emplace(
diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc index 3939cc6e..3fa7850 100644 --- a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc +++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
@@ -4,6 +4,8 @@ #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" +#include <utility> + #include "base/memory/ptr_util.h" #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" @@ -17,7 +19,10 @@ #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/browser_navigator.h" #include "chrome/browser/ui/browser_navigator_params.h" +#include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/exclusive_access/exclusive_access_context.h" #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/grit/browser_resources.h" #include "components/guest_view/browser/guest_view_base.h" #include "content/public/browser/devtools_agent_host.h" @@ -40,6 +45,43 @@ char kHostParam[] = "host"; char kPortParam[] = "port"; +BrowserWindow* GetBrowserWindow(int window_id) { + for (auto* b : *BrowserList::GetInstance()) { + if (b->session_id().id() == window_id) + return b->window(); + } + return nullptr; +} + +// Get the bounds and state of the browser window. The bounds is for the +// restored window when the window is minimized. Otherwise, it is for the actual +// window. +std::unique_ptr<base::DictionaryValue> GetBounds(BrowserWindow* window) { + gfx::Rect bounds; + if (window->IsMinimized()) + bounds = window->GetRestoredBounds(); + else + bounds = window->GetBounds(); + + auto bounds_object = base::MakeUnique<base::DictionaryValue>(); + + bounds_object->SetInteger("left", bounds.x()); + bounds_object->SetInteger("top", bounds.y()); + bounds_object->SetInteger("width", bounds.width()); + bounds_object->SetInteger("height", bounds.height()); + + std::string window_state = "normal"; + if (window->IsMinimized()) + window_state = "minimized"; + if (window->IsMaximized()) + window_state = "maximized"; + if (window->IsFullscreen()) + window_state = "fullscreen"; + bounds_object->SetString("windowState", window_state); + + return bounds_object; +} + bool GetExtensionInfo(content::RenderFrameHost* host, std::string* name, std::string* type) { @@ -73,6 +115,184 @@ } // namespace +// static +std::unique_ptr<base::DictionaryValue> +ChromeDevToolsManagerDelegate::GetWindowForTarget( + int id, + base::DictionaryValue* params) { + std::string target_id; + if (!params->GetString("targetId", &target_id)) + return DevToolsProtocol::CreateInvalidParamsResponse(id, "targetId"); + + Browser* browser = nullptr; + scoped_refptr<DevToolsAgentHost> host = + DevToolsAgentHost::GetForId(target_id); + if (!host) + return DevToolsProtocol::CreateErrorResponse(id, "No target with given id"); + content::WebContents* web_contents = host->GetWebContents(); + if (!web_contents) { + return DevToolsProtocol::CreateErrorResponse( + id, "No web contents in the target"); + } + for (auto* b : *BrowserList::GetInstance()) { + int tab_index = b->tab_strip_model()->GetIndexOfWebContents(web_contents); + if (tab_index != TabStripModel::kNoTab) + browser = b; + } + if (!browser) { + return DevToolsProtocol::CreateErrorResponse(id, + "Browser window not found"); + } + + auto result = base::MakeUnique<base::DictionaryValue>(); + result->SetInteger("windowId", browser->session_id().id()); + result->Set("bounds", GetBounds(browser->window())); + return DevToolsProtocol::CreateSuccessResponse(id, std::move(result)); +} + +// static +std::unique_ptr<base::DictionaryValue> +ChromeDevToolsManagerDelegate::GetWindowBounds(int id, + base::DictionaryValue* params) { + int window_id; + if (!params->GetInteger("windowId", &window_id)) + return DevToolsProtocol::CreateInvalidParamsResponse(id, "windowId"); + BrowserWindow* window = GetBrowserWindow(window_id); + if (!window) { + return DevToolsProtocol::CreateErrorResponse(id, + "Browser window not found"); + } + + auto result = base::MakeUnique<base::DictionaryValue>(); + result->Set("bounds", GetBounds(window)); + return DevToolsProtocol::CreateSuccessResponse(id, std::move(result)); +} + +// static +std::unique_ptr<base::DictionaryValue> +ChromeDevToolsManagerDelegate::SetWindowBounds(int id, + base::DictionaryValue* params) { + int window_id; + if (!params->GetInteger("windowId", &window_id)) + return DevToolsProtocol::CreateInvalidParamsResponse(id, "windowId"); + BrowserWindow* window = GetBrowserWindow(window_id); + if (!window) { + return DevToolsProtocol::CreateErrorResponse(id, + "Browser window not found"); + } + + const base::Value* value = nullptr; + const base::DictionaryValue* bounds_dict = nullptr; + if (!params->Get("bounds", &value) || !value->GetAsDictionary(&bounds_dict)) + return DevToolsProtocol::CreateInvalidParamsResponse(id, "bounds"); + + std::string window_state; + if (!bounds_dict->GetString("windowState", &window_state)) + window_state = "normal"; + else if (window_state != "normal" && window_state != "minimized" && + window_state != "maximized" && window_state != "fullscreen") + return DevToolsProtocol::CreateInvalidParamsResponse(id, "windowState"); + + // Compute updated bounds when window state is normal. + bool set_bounds = false; + gfx::Rect bounds = window->GetBounds(); + int left, top, width, height; + if (bounds_dict->GetInteger("left", &left)) { + bounds.set_x(left); + set_bounds = true; + } + if (bounds_dict->GetInteger("top", &top)) { + bounds.set_y(top); + set_bounds = true; + } + if (bounds_dict->GetInteger("width", &width)) { + if (width < 0) + return DevToolsProtocol::CreateInvalidParamsResponse(id, "width"); + bounds.set_width(width); + set_bounds = true; + } + if (bounds_dict->GetInteger("height", &height)) { + if (height < 0) + return DevToolsProtocol::CreateInvalidParamsResponse(id, "height"); + bounds.set_height(height); + set_bounds = true; + } + + if (set_bounds && window_state != "normal") { + return DevToolsProtocol::CreateErrorResponse( + id, + "The 'minimized', 'maximized' and 'fullscreen' states cannot be " + "combined with 'left', 'top', 'width' or 'height'"); + } + + if (set_bounds && (window->IsMinimized() || window->IsMaximized() || + window->IsFullscreen())) { + return DevToolsProtocol::CreateErrorResponse( + id, + "To resize minimized/maximized/fullscreen window, restore it to normal " + "state first."); + } + + if (window_state == "fullscreen") { + if (window->IsMinimized()) { + return DevToolsProtocol::CreateErrorResponse(id, + "To make minimized window " + "fullscreen, restore it to " + "normal state first."); + } + window->GetExclusiveAccessContext()->EnterFullscreen( + GURL(), EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE); + } + + if (window_state == "maximized") { + if (window->IsMinimized() || window->IsFullscreen()) { + return DevToolsProtocol::CreateErrorResponse( + id, + "To maximize a minimized or fullscreen window, restore it to normal " + "state first."); + } + window->Maximize(); + } + + if (window_state == "minimized") { + if (window->IsFullscreen()) { + return DevToolsProtocol::CreateErrorResponse( + id, + "To minimize a fullscreen window, restore it to normal " + "state first."); + } + window->Minimize(); + } + + if (window_state == "normal") { + if (window->IsFullscreen()) { + window->GetExclusiveAccessContext()->ExitFullscreen(); + } else if (window->IsMinimized()) { + window->Show(); + } else if (window->IsMaximized()) { + window->Restore(); + } else if (set_bounds) { + window->SetBounds(bounds); + } + } + + return DevToolsProtocol::CreateSuccessResponse(id, nullptr); +} + +std::unique_ptr<base::DictionaryValue> +ChromeDevToolsManagerDelegate::HandleBrowserCommand( + int id, + std::string method, + base::DictionaryValue* params) { + if (method == chrome::devtools::Browser::getWindowForTarget::kName) + return GetWindowForTarget(id, params); + if (method == chrome::devtools::Browser::getWindowBounds::kName) + return GetWindowBounds(id, params); + if (method == chrome::devtools::Browser::setWindowBounds::kName) + return SetWindowBounds(id, params); + return nullptr; +} + class ChromeDevToolsManagerDelegate::HostData { public: HostData() {} @@ -112,6 +332,10 @@ if (!DevToolsProtocol::ParseCommand(command_dict, &id, &method, ¶ms)) return nullptr; + if (agent_host->GetType() == DevToolsAgentHost::kTypeBrowser && + method.find("Browser.") == 0) + return HandleBrowserCommand(id, method, params).release(); + if (method == chrome::devtools::Target::setRemoteLocations::kName) return SetRemoteLocations(agent_host, id, params).release(); @@ -284,7 +508,5 @@ host_data_[agent_host]->set_remote_locations(tcp_locations); UpdateDeviceDiscovery(); - std::unique_ptr<base::DictionaryValue> result( - base::MakeUnique<base::DictionaryValue>()); - return DevToolsProtocol::CreateSuccessResponse(command_id, std::move(result)); + return DevToolsProtocol::CreateSuccessResponse(command_id, nullptr); }
diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.h b/chrome/browser/devtools/chrome_devtools_manager_delegate.h index 6dcaef26..e79984f 100644 --- a/chrome/browser/devtools/chrome_devtools_manager_delegate.h +++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.h
@@ -8,6 +8,7 @@ #include <map> #include <memory> #include <set> +#include <string> #include "base/compiler_specific.h" #include "base/macros.h" @@ -31,6 +32,7 @@ private: class HostData; + friend class DevToolsManagerDelegateTest; using RemoteLocations = std::set<net::HostPortPair>; // content::DevToolsManagerDelegate implementation. @@ -60,6 +62,20 @@ int command_id, base::DictionaryValue* params); + std::unique_ptr<base::DictionaryValue> HandleBrowserCommand( + int id, + std::string method, + base::DictionaryValue* params); + static std::unique_ptr<base::DictionaryValue> GetWindowForTarget( + int id, + base::DictionaryValue* params); + static std::unique_ptr<base::DictionaryValue> GetWindowBounds( + int id, + base::DictionaryValue* params); + static std::unique_ptr<base::DictionaryValue> SetWindowBounds( + int id, + base::DictionaryValue* params); + std::unique_ptr<DevToolsNetworkProtocolHandler> network_protocol_handler_; std::map<content::DevToolsAgentHost*, std::unique_ptr<HostData>> host_data_;
diff --git a/chrome/browser/devtools/devtools_protocol.cc b/chrome/browser/devtools/devtools_protocol.cc index 5ba6a22..c6c8dad7 100644 --- a/chrome/browser/devtools/devtools_protocol.cc +++ b/chrome/browser/devtools/devtools_protocol.cc
@@ -22,7 +22,7 @@ const char kResultParam[] = "result"; // JSON RPC 2.0 spec: http://www.jsonrpc.org/specification#error_object -enum Error { kErrorInvalidParams = -32602 }; +enum Error { kErrorInvalidParams = -32602, kErrorServerError = -32000 }; } // namespace @@ -58,6 +58,20 @@ } // static +std::unique_ptr<base::DictionaryValue> DevToolsProtocol::CreateErrorResponse( + int command_id, + const std::string& error_message) { + std::unique_ptr<base::DictionaryValue> response(new base::DictionaryValue()); + response->SetInteger(kIdParam, command_id); + auto error_object = base::MakeUnique<base::DictionaryValue>(); + error_object->SetInteger(kErrorCodeParam, kErrorServerError); + error_object->SetString(kErrorMessageParam, error_message); + response->Set(kErrorParam, std::move(error_object)); + + return response; +} + +// static std::unique_ptr<base::DictionaryValue> DevToolsProtocol::CreateSuccessResponse( int command_id, std::unique_ptr<base::DictionaryValue> result) {
diff --git a/chrome/browser/devtools/devtools_protocol.h b/chrome/browser/devtools/devtools_protocol.h index be1c5e3..7ba104df 100644 --- a/chrome/browser/devtools/devtools_protocol.h +++ b/chrome/browser/devtools/devtools_protocol.h
@@ -41,6 +41,10 @@ int command_id, const std::string& param); + static std::unique_ptr<base::DictionaryValue> CreateErrorResponse( + int command_id, + const std::string& error_message); + private: DevToolsProtocol() {} ~DevToolsProtocol() {}
diff --git a/chrome/browser/devtools/devtools_sanity_interactive_browsertest.cc b/chrome/browser/devtools/devtools_sanity_interactive_browsertest.cc new file mode 100644 index 0000000..1f65c52 --- /dev/null +++ b/chrome/browser/devtools/devtools_sanity_interactive_browsertest.cc
@@ -0,0 +1,210 @@ +// 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 "base/macros.h" +#include "base/memory/ptr_util.h" +#include "base/run_loop.h" +#include "build/build_config.h" +#include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" +#include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/exclusive_access/exclusive_access_context.h" +#include "chrome/test/base/in_process_browser_test.h" + +#if defined(OS_MACOSX) +#include "ui/base/test/scoped_fake_nswindow_fullscreen.h" +#endif + +// Encapsulates waiting for the browser window to change state. This is +// needed for example on Chrome desktop linux, where window state change is done +// asynchronously as an event received from a different process. +class CheckWaiter { + public: + explicit CheckWaiter(base::Callback<bool()> callback, bool expected) + : callback_(callback), + expected_(expected), + timeout_(base::Time::NowFromSystemTime() + + base::TimeDelta::FromSeconds(1)) {} + ~CheckWaiter() = default; + + // Blocks until the browser window becomes maximized. + void Wait() { + if (Check()) + return; + + base::RunLoop run_loop; + quit_ = run_loop.QuitClosure(); + run_loop.Run(); + } + + private: + bool Check() { + if (callback_.Run() != expected_ && + base::Time::NowFromSystemTime() < timeout_) { + base::MessageLoop::current()->task_runner()->PostTask( + FROM_HERE, base::Bind(base::IgnoreResult(&CheckWaiter::Check), + base::Unretained(this))); + return false; + } + + // Quit the run_loop to end the wait. + if (!quit_.is_null()) + base::ResetAndReturn(&quit_).Run(); + return true; + } + + base::Callback<bool()> callback_; + bool expected_; + base::Time timeout_; + // The waiter's RunLoop quit closure. + base::Closure quit_; + + DISALLOW_COPY_AND_ASSIGN(CheckWaiter); +}; + +class DevToolsManagerDelegateTest : public InProcessBrowserTest { + public: + std::unique_ptr<base::DictionaryValue> SendCommand(std::string state) { + auto params = base::MakeUnique<base::DictionaryValue>(); + auto bounds_object = base::MakeUnique<base::DictionaryValue>(); + bounds_object->SetString("windowState", state); + params->Set("bounds", std::move(bounds_object)); + params->SetInteger("windowId", browser()->session_id().id()); + return ChromeDevToolsManagerDelegate::SetWindowBounds(0, params.get()); + } + + std::unique_ptr<base::DictionaryValue> UpdateBounds() { + auto params = base::MakeUnique<base::DictionaryValue>(); + auto bounds_object = base::MakeUnique<base::DictionaryValue>(); + bounds_object->SetString("windowState", "normal"); + bounds_object->SetInteger("left", 200); + bounds_object->SetInteger("height", 400); + params->Set("bounds", std::move(bounds_object)); + params->SetInteger("windowId", browser()->session_id().id()); + return ChromeDevToolsManagerDelegate::SetWindowBounds(0, params.get()); + } + + void CheckIsMaximized(bool maximized) { + CheckWaiter(base::Bind(&BrowserWindow::IsMaximized, + base::Unretained(browser()->window())), + maximized) + .Wait(); + EXPECT_EQ(maximized, browser()->window()->IsMaximized()); + } + + void CheckIsMinimized(bool minimized) { + CheckWaiter(base::Bind(&BrowserWindow::IsMinimized, + base::Unretained(browser()->window())), + minimized) + .Wait(); + EXPECT_EQ(minimized, browser()->window()->IsMinimized()); + } + + void CheckIsFullscreen(bool fullscreen) { + CheckWaiter(base::Bind(&BrowserWindow::IsFullscreen, + base::Unretained(browser()->window())), + fullscreen) + .Wait(); + EXPECT_EQ(fullscreen, browser()->window()->IsFullscreen()); + } + + bool IsWindowBoundsEqual(gfx::Rect expected) { + return browser()->window()->GetBounds() == expected; + } + + void CheckWindowBounds(gfx::Rect expected) { + CheckWaiter(base::Bind(&DevToolsManagerDelegateTest::IsWindowBoundsEqual, + base::Unretained(this), expected), + true) + .Wait(); + EXPECT_EQ(expected, browser()->window()->GetBounds()); + } +}; + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, NormalWindowChangeBounds) { + browser()->window()->SetBounds(gfx::Rect(100, 100, 500, 600)); + CheckWindowBounds(gfx::Rect(100, 100, 500, 600)); + UpdateBounds(); + CheckWindowBounds(gfx::Rect(200, 100, 500, 400)); +} + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, NormalToMaximizedWindow) { + CheckIsMaximized(false); + SendCommand("maximized"); + CheckIsMaximized(true); +} + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, NormalToMinimizedWindow) { + CheckIsMinimized(false); + SendCommand("minimized"); + CheckIsMinimized(true); +} + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, NormalToFullscreenWindow) { +#if defined(OS_MACOSX) + ui::test::ScopedFakeNSWindowFullscreen faker; +#endif + CheckIsFullscreen(false); + SendCommand("fullscreen"); +#if defined(OS_MACOSX) + faker.FinishTransition(); +#endif + CheckIsFullscreen(true); +} + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, + MaximizedToMinimizedWindow) { + browser()->window()->Maximize(); + CheckIsMaximized(true); + + CheckIsMinimized(false); + SendCommand("minimized"); + CheckIsMinimized(true); +} + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, + MaximizedToFullscreenWindow) { + browser()->window()->Maximize(); + CheckIsMaximized(true); + +#if defined(OS_MACOSX) + ui::test::ScopedFakeNSWindowFullscreen faker; +#endif + CheckIsFullscreen(false); + SendCommand("fullscreen"); +#if defined(OS_MACOSX) + faker.FinishTransition(); +#endif + CheckIsFullscreen(true); +} + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, ShowMinimizedWindow) { + browser()->window()->Minimize(); + CheckIsMinimized(true); + SendCommand("normal"); + CheckIsMinimized(false); +} + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, RestoreMaximizedWindow) { + browser()->window()->Maximize(); + CheckIsMaximized(true); + SendCommand("normal"); + CheckIsMaximized(false); +} + +IN_PROC_BROWSER_TEST_F(DevToolsManagerDelegateTest, ExitFullscreenWindow) { +#if defined(OS_MACOSX) + ui::test::ScopedFakeNSWindowFullscreen faker; +#endif + browser()->window()->GetExclusiveAccessContext()->EnterFullscreen( + GURL(), EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE); +#if defined(OS_MACOSX) + faker.FinishTransition(); +#endif + CheckIsFullscreen(true); + SendCommand("normal"); +#if defined(OS_MACOSX) + faker.FinishTransition(); +#endif + CheckIsFullscreen(false); +}
diff --git a/chrome/browser/google/google_brand.cc b/chrome/browser/google/google_brand.cc index 7e07284e..33cf760f 100644 --- a/chrome/browser/google/google_brand.cc +++ b/chrome/browser/google/google_brand.cc
@@ -90,21 +90,22 @@ } #endif - const char* const kBrands[] = { - "CHCA", "CHCB", "CHCG", "CHCH", "CHCI", "CHCJ", "CHCK", "CHCL", - "CHFO", "CHFT", "CHHS", "CHHM", "CHMA", "CHMB", "CHME", "CHMF", - "CHMG", "CHMH", "CHMI", "CHMQ", "CHMV", "CHNB", "CHNC", "CHNG", - "CHNH", "CHNI", "CHOA", "CHOB", "CHOC", "CHON", "CHOO", "CHOP", - "CHOQ", "CHOR", "CHOS", "CHOT", "CHOU", "CHOX", "CHOY", "CHOZ", - "CHPD", "CHPE", "CHPF", "CHPG", "ECBA", "ECBB", "ECDA", "ECDB", - "ECSA", "ECSB", "ECVA", "ECVB", "ECWA", "ECWB", "ECWC", "ECWD", - "ECWE", "ECWF", "EUBB", "EUBC", "GGLA", "GGLS" - }; - const char* const* end = &kBrands[arraysize(kBrands)]; - const char* const* found = std::find(&kBrands[0], end, brand); - if (found != end) + const char* const kOrganicBrands[] = { + "CHCA", "CHCB", "CHCG", "CHCH", "CHCI", "CHCJ", "CHCK", "CHCL", "CHFO", + "CHFT", "CHHS", "CHHM", "CHMA", "CHMB", "CHME", "CHMF", "CHMG", "CHMH", + "CHMI", "CHMQ", "CHMV", "CHNB", "CHNC", "CHNG", "CHNH", "CHNI", "CHOA", + "CHOB", "CHOC", "CHON", "CHOO", "CHOP", "CHOQ", "CHOR", "CHOS", "CHOT", + "CHOU", "CHOX", "CHOY", "CHOZ", "CHPD", "CHPE", "CHPF", "CHPG", "ECBA", + "ECBB", "ECDA", "ECDB", "ECSA", "ECSB", "ECVA", "ECVB", "ECWA", "ECWB", + "ECWC", "ECWD", "ECWE", "ECWF", "EUBB", "EUBC", "GGLA", "GGLS"}; + const char* const* end = &kOrganicBrands[arraysize(kOrganicBrands)]; + if (std::binary_search(&kOrganicBrands[0], end, brand)) return true; + // The Chrome enterprise brand code is the only GGR* brand to be non-organic. + if (brand == "GGRV") + return false; + return base::StartsWith(brand, "EUB", base::CompareCase::SENSITIVE) || base::StartsWith(brand, "EUC", base::CompareCase::SENSITIVE) || base::StartsWith(brand, "GGR", base::CompareCase::SENSITIVE);
diff --git a/chrome/browser/google/google_update_settings_unittest.cc b/chrome/browser/google/google_update_settings_unittest.cc index 8b3572a..c78235d1 100644 --- a/chrome/browser/google/google_update_settings_unittest.cc +++ b/chrome/browser/google/google_update_settings_unittest.cc
@@ -50,6 +50,20 @@ #endif // defined(OS_WIN) +TEST_F(GoogleUpdateTest, IsOrganic) { + // Test some brand codes to ensure that future changes to this method won't + // go unnoticed. + + // GGRV is non-organic. + EXPECT_FALSE(google_brand::IsOrganic("GGRV")); + + // Other GGR* are organic. + EXPECT_TRUE(google_brand::IsOrganic("GGRA")); + + // GGLS must always be organic. + EXPECT_TRUE(google_brand::IsOrganic("GGLS")); +} + TEST_F(GoogleUpdateTest, IsOrganicFirstRunBrandCodes) { // Test some brand codes to ensure that future changes to this method won't // go unnoticed.
diff --git a/chrome/browser/resources/chromeos/keyboard_overlay.js b/chrome/browser/resources/chromeos/keyboard_overlay.js index 5758dc7..86a3ab0 100644 --- a/chrome/browser/resources/chromeos/keyboard_overlay.js +++ b/chrome/browser/resources/chromeos/keyboard_overlay.js
@@ -45,9 +45,11 @@ 'disabled': 'DISABLED' }; +// For KeyboardOverlayUIBrowserTest. var KEYCODE_TO_LABEL = { 8: 'backspace', 9: 'tab', + 10: 'shift', 13: 'enter', 27: 'esc', 32: 'space', @@ -87,6 +89,15 @@ 119: 'mute', 120: 'vol. down', 121: 'vol. up', + 152: 'power', + 166: 'back', + 167: 'forward', + 168: 'reload', + 173: 'mute', + 174: 'vol. down', + 175: 'vol. up', + 183: 'full screen', + 182: 'switch window', 186: ';', 187: '+', 188: ',', @@ -94,10 +105,14 @@ 190: '.', 191: '/', 192: '`', + 216: 'bright down', + 217: 'bright up', + 218: 'bright down', 219: '[', 220: '\\', 221: ']', 222: '\'', + 232: 'bright up', }; /**
diff --git a/chrome/browser/resources/chromeos/keyboard_overlay_data.js b/chrome/browser/resources/chromeos/keyboard_overlay_data.js index a678be1..352b929 100644 --- a/chrome/browser/resources/chromeos/keyboard_overlay_data.js +++ b/chrome/browser/resources/chromeos/keyboard_overlay_data.js
@@ -15837,6 +15837,7 @@ 'enter<>CTRL': 'keyboardOverlayAddWwwAndComAndOpenAddress', 'enter<>SHIFT': 'keyboardOverlayFindPreviousText', 'esc<>SEARCH': 'keyboardOverlayTaskManager', + 'esc<>SEARCH<>SHIFT': 'keyboardOverlayUnPin', 'f<>ALT': 'keyboardOverlayShowWrenchMenu', 'f<>CTRL': 'keyboardOverlayFindText', 'f1<>CTRL<>SEARCH': 'keyboardOverlayFocusPreviousPane', @@ -15867,10 +15868,12 @@ 'full screen<>ALT': 'keyboardOverlaySwapPrimaryMonitor', 'full screen<>CTRL': 'keyboardOverlayMirrorMonitors', 'full screen<>SEARCH': 'keyboardOverlayF4', + 'full screen<>SHIFT': 'keyboardOverlayFullScreenKeyLabel', 'g<>CTRL': 'keyboardOverlayFindTextAgain', 'g<>CTRL<>SHIFT': 'keyboardOverlayFindPreviousText', 'h<>CTRL': 'keyboardOverlayHistory', 'h<>SEARCH<>SHIFT': 'keyboardOverlayToggleHighContrastMode', + 'i<>ALT<>CTRL': 'keyboardOverlayTouchHudModeChange', 'i<>ALT<>SHIFT': 'keyboardOverlayReportIssue', 'i<>CTRL<>SHIFT': 'keyboardOverlayDeveloperTools', 'j<>CTRL': 'keyboardOverlayDownloads', @@ -15894,10 +15897,12 @@ 'o<>CTRL<>SHIFT': 'keyboardOverlayBookmarkManager', 'p<>ALT<>CTRL': 'keyboardOverlayToggleProjectionTouchHud', 'p<>CTRL': 'keyboardOverlayPrint', + 'p<>ALT<>SHIFT': 'keyboardOverlayShowStylusTools', 'power': 'keyboardOverlayLockScreenOrPowerOff', 'q<>CTRL<>SHIFT': 'keyboardOverlaySignOut', 'r<>CTRL': 'keyboardOverlayReloadCurrentPage', 'r<>CTRL<>SHIFT': 'keyboardOverlayReloadBypassingCache', + 'reload<>ALT<>CTRL<>SHIFT': 'keyboardOverlayRotateWindow', 'reload<>CTRL<>SHIFT': 'keyboardOverlayRotateScreen', 'reload<>SEARCH': 'keyboardOverlayF3', 'right<>ALT': 'keyboardOverlayGoForward',
diff --git a/chrome/browser/resources/chromeos/login/encryption_migration.html b/chrome/browser/resources/chromeos/login/encryption_migration.html index b1d5d84..24b4951 100644 --- a/chrome/browser/resources/chromeos/login/encryption_migration.html +++ b/chrome/browser/resources/chromeos/login/encryption_migration.html
@@ -25,12 +25,21 @@ String TBD. </div> </div> - <div class="bottom-buttons flex layout horizontal"> - <div class="flex"></div> - <oobe-text-button on-tap="onSkip_">Skip</oobe-text-button> - <oobe-text-button inverse on-tap="onUpgrade_">Upgrade - </oobe-text-button> - </div> + <template is="dom-if" if="[[!isEnoughBattery]]"> + <div class="footer flex layout vertical"> + <div>Battery too low for update. <span>[[batteryPercent]]</span>% + </div> + <div>Please plug your Chromebook into a power source.</div> + </div> + </template> + <template is="dom-if" if="[[!isResuming]]"> + <div class="bottom-buttons flex layout horizontal"> + <div class="flex"></div> + <oobe-text-button on-tap="onSkip_">Skip</oobe-text-button> + <oobe-text-button inverse on-tap="onUpgrade_" + disabled="[[isMigrationAccepted]]">Upgrade</oobe-text-button> + </div> + </template> </oobe-dialog> </template> <template is="dom-if" if="[[isMigrating_(uiState)]]">
diff --git a/chrome/browser/resources/chromeos/login/encryption_migration.js b/chrome/browser/resources/chromeos/login/encryption_migration.js index f78d68b8..494176a 100644 --- a/chrome/browser/resources/chromeos/login/encryption_migration.js +++ b/chrome/browser/resources/chromeos/login/encryption_migration.js
@@ -50,6 +50,30 @@ type: Boolean, value: false }, + + /** + * Battery level. + */ + batteryPercent: { + type: Number, + value: 0 + }, + + /** + * True if the battery level is enough to start migration. + */ + isEnoughBattery: { + type: Boolean, + value: true + }, + + /** + * True if the user already accepted the migration. + */ + isMigrationAccepted: { + type: Boolean, + value: false + }, }, /** @@ -120,6 +144,7 @@ * @private */ onUpgrade_: function() { + this.isMigrationAccepted = true; this.fire('upgrade'); },
diff --git a/chrome/browser/resources/chromeos/login/screen_encryption_migration.js b/chrome/browser/resources/chromeos/login/screen_encryption_migration.js index ca8cc6d0..200ede4 100644 --- a/chrome/browser/resources/chromeos/login/screen_encryption_migration.js +++ b/chrome/browser/resources/chromeos/login/screen_encryption_migration.js
@@ -9,6 +9,7 @@ 'setUIState', 'setMigrationProgress', 'setIsResuming', + 'setBatteryPercent', ], /** @@ -67,5 +68,16 @@ setIsResuming: function(isResuming) { $('encryption-migration-element').isResuming = isResuming; }, + + /** + * Updates battery level of the device. + * @param {number} batteryPercent Battery level in percent. + * @param {boolean} isEnoughBattery True if the battery is enough. + */ + setBatteryPercent: function(batteryPercent, isEnoughBattery) { + $('encryption-migration-element').batteryPercent = + Math.floor(batteryPercent); + $('encryption-migration-element').isEnoughBattery = isEnoughBattery; + }, }; });
diff --git a/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html b/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html index 2174134..8f36235 100644 --- a/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html +++ b/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html
@@ -20,11 +20,11 @@ <neon-animatable route-path="default"> <div id="bluetoothDevices" class="settings-box two-line" actionable on-tap="onTap_"> - <iron-icon icon="[[getIcon_(bluetoothEnabled_)]]"></iron-icon> + <iron-icon icon="[[getIcon_(bluetoothToggleState_)]]"></iron-icon> <div class="middle"> $i18n{bluetoothPageTitle} <div class="secondary" id="bluetoothSecondary"> - [[getOnOffString_(bluetoothEnabled_, + [[getOnOffString_(bluetoothToggleState_, '$i18nPolymer{deviceOn}', '$i18nPolymer{deviceOff}')]] </div> </div> @@ -41,8 +41,8 @@ </template> <div class="secondary-action"> <paper-toggle-button id="enableBluetooth" - checked="{{bluetoothEnabled_}}" - disabled="[[!adapterState_.available]]" on-tap="stopTap_" + checked="{{bluetoothToggleState_}}" + disabled$="[[bluetoothToggleDisabled_]]" on-tap="stopTap_" aria-label="$i18n{bluetoothToggleA11yLabel}"> </paper-toggle-button> </div> @@ -54,7 +54,8 @@ page-title="$i18n{bluetoothPageTitle}"> <settings-bluetooth-subpage adapter-state="[[adapterState_]]" - bluetooth-enabled="{{bluetoothEnabled_}}" + bluetooth-toggle-state="{{bluetoothToggleState_}}" + bluetooth-toggle-disabled="[[bluetoothToggleDisabled_]]" bluetooth="[[bluetooth]]" bluetooth-private="[[bluetoothPrivate]]"> </settings-bluetooth-subpage>
diff --git a/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.js b/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.js index e23ed90..6510e547 100644 --- a/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.js +++ b/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.js
@@ -32,11 +32,27 @@ notify: true, }, - /** @private */ - bluetoothEnabled_: { + /** + * Reflects the current state of the toggle buttons (in this page and the + * subpage). This will be set when the adapter state change or when the user + * changes the toggle. + * @private + */ + bluetoothToggleState_: { type: Boolean, - observer: 'bluetoothEnabledChanged_', - notify: true, + observer: 'bluetoothToggleStateChanged_', + }, + + /** + * Set to true before the adapter state is received, when the adapter is + * unavailable, and while an adapter state change is requested. This + * prevents user changes while a change is in progress or when the adapter + * is not available. + * @private + */ + bluetoothToggleDisabled_: { + type: Boolean, + value: true, }, /** @@ -111,7 +127,7 @@ * @private */ getIcon_: function() { - if (!this.bluetoothEnabled_) + if (!this.bluetoothToggleState_) return 'settings:bluetooth-disabled'; return 'settings:bluetooth'; }, @@ -134,15 +150,16 @@ */ onBluetoothAdapterStateChanged_: function(state) { this.adapterState_ = state; - this.bluetoothEnabled_ = state.powered; + this.bluetoothToggleState_ = state.powered; + this.bluetoothToggleDisabled_ = !state.available; }, /** @private */ onTap_: function() { if (this.adapterState_.available === false) return; - if (!this.bluetoothEnabled_) - this.bluetoothEnabled_ = true; + if (!this.bluetoothToggleState_) + this.bluetoothToggleState_ = true; else this.openSubpage_(); }, @@ -165,9 +182,14 @@ }, /** @private */ - bluetoothEnabledChanged_: function() { + bluetoothToggleStateChanged_: function() { + if (!this.adapterState_ || this.bluetoothToggleDisabled_ || + this.bluetoothToggleState_ == this.adapterState_.powered) { + return; + } + this.bluetoothToggleDisabled_ = true; this.bluetoothPrivate.setAdapterState( - {powered: this.bluetoothEnabled_}, function() { + {powered: this.bluetoothToggleState_}, function() { if (chrome.runtime.lastError) { console.error( 'Error enabling bluetooth: ' +
diff --git a/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html b/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html index b3c703c..531b3cc2 100644 --- a/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html +++ b/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html
@@ -34,26 +34,28 @@ </style> <div class="settings-box first"> - <div id="onoff" class="start" on$="[[bluetoothEnabled]]"> - [[getOnOffString_(bluetoothEnabled, + <div id="onoff" class="start" on$="[[bluetoothToggleState]]"> + [[getOnOffString_(bluetoothToggleState, '$i18nPolymer{deviceOn}', '$i18nPolymer{deviceOff}')]] </div> - <paper-toggle-button id="enableBluetooth" checked="{{bluetoothEnabled}}" + <paper-toggle-button id="enableBluetooth" + checked="{{bluetoothToggleState}}" + disabled$="[[bluetoothToggleDisabled]]" aria-label="$i18n{bluetoothToggleA11yLabel}"> </paper-toggle-button> </div> <!-- Paired device list --> - <div class="settings-box first header" hidden$="[[!bluetoothEnabled]]"> + <div class="settings-box first header" hidden="[[!bluetoothToggleState]]"> <div class="start">$i18n{bluetoothDeviceListPaired}</div> </div> <div id="noPairedDevices" class="list-frame" - hidden$="[[!showNoDevices_(bluetoothEnabled, pairedDeviceList_)]]"> + hidden="[[!showNoDevices_(bluetoothToggleState, pairedDeviceList_)]]"> $i18n{bluetoothNoDevices} </div> <div id="pairedContainer" class="container layout vertical" scrollable on-device-event="onDeviceEvent_" - hidden="[[!showDevices_(bluetoothEnabled, pairedDeviceList_)]]"> + hidden="[[!showDevices_(bluetoothToggleState, pairedDeviceList_)]]"> <iron-list id="pairedDevices" class="vertical-list" items="[[pairedDeviceList_]]" selection-enabled selected-item="{{selectedPairedItem_}}" @@ -67,18 +69,18 @@ </div> <!-- Unpaired device list --> - <div class="settings-box first header" hidden$="[[!bluetoothEnabled]]"> + <div class="settings-box first header" hidden="[[!bluetoothToggleState]]"> <div class="start">$i18n{bluetoothDeviceListUnpaired}</div> <paper-spinner active="[[showSpinner_]]"> </paper-spinner> </div> <div id="noUnpairedDevices" class="list-frame" - hidden$="[[!showNoDevices_(bluetoothEnabled, unpairedDeviceList_)]]"> + hidden="[[!showNoDevices_(bluetoothToggleState, unpairedDeviceList_)]]"> $i18n{bluetoothNoDevicesFound} </div> <div id="unpairedContainer" class="container layout vertical" scrollable on-device-event="onDeviceEvent_" - hidden="[[!showDevices_(bluetoothEnabled, unpairedDeviceList_)]]"> + hidden="[[!showDevices_(bluetoothToggleState, unpairedDeviceList_)]]"> <iron-list id="unpairedDevices" class="vertical-list" items="[[unpairedDeviceList_]]" selection-enabled selected-item="{{selectedUnpairedItem_}}"
diff --git a/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.js b/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.js index bbff7a4..686d001 100644 --- a/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.js +++ b/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.js
@@ -22,11 +22,14 @@ properties: { /** Reflects the bluetooth-page property. */ - bluetoothEnabled: { + bluetoothToggleState: { type: Boolean, notify: true, }, + /** Reflects the bluetooth-page property. */ + bluetoothToggleDisabled: Boolean, + /** * The bluetooth adapter state, cached by bluetooth-page. * @type {!chrome.bluetooth.AdapterState|undefined} @@ -249,7 +252,7 @@ * @private */ updateDeviceList_: function() { - if (!this.bluetoothEnabled) { + if (!this.bluetoothToggleState) { this.deviceList_ = []; return; } @@ -352,23 +355,23 @@ }, /** - * @param {boolean} bluetoothEnabled + * @param {boolean} bluetoothToggleState * @param {!Array<!chrome.bluetooth.Device>} deviceList * @return {boolean} * @private */ - showDevices_: function(bluetoothEnabled, deviceList) { - return bluetoothEnabled && deviceList.length > 0; + showDevices_: function(bluetoothToggleState, deviceList) { + return bluetoothToggleState && deviceList.length > 0; }, /** - * @param {boolean} bluetoothEnabled + * @param {boolean} bluetoothToggleState * @param {!Array<!chrome.bluetooth.Device>} deviceList * @return {boolean} * @private */ - showNoDevices_: function(bluetoothEnabled, deviceList) { - return bluetoothEnabled && deviceList.length == 0; + showNoDevices_: function(bluetoothToggleState, deviceList) { + return bluetoothToggleState && deviceList.length == 0; }, /**
diff --git a/chrome/browser/resources/settings/internet_page/internet_detail_page.html b/chrome/browser/resources/settings/internet_page/internet_detail_page.html index 59baa4bb..77534d9 100644 --- a/chrome/browser/resources/settings/internet_page/internet_detail_page.html +++ b/chrome/browser/resources/settings/internet_page/internet_detail_page.html
@@ -267,8 +267,7 @@ </template> <!-- IP Config, Nameservers --> - <template is="dom-if" - if="[[isRememberedOrConnected_(networkProperties)]]"> + <template is="dom-if" if="[[showIpConfig_(networkProperties)]]"> <network-ip-config editable on-ip-change="onIPConfigChange_" network-properties="[[networkProperties]]"> </network-ip-config>
diff --git a/chrome/browser/resources/settings/internet_page/internet_detail_page.js b/chrome/browser/resources/settings/internet_page/internet_detail_page.js index 9b87611..a455416 100644 --- a/chrome/browser/resources/settings/internet_page/internet_detail_page.js +++ b/chrome/browser/resources/settings/internet_page/internet_detail_page.js
@@ -686,12 +686,13 @@ }, /** + * @param {!CrOnc.NetworkProperties} networkProperties * @return {boolean} True if the shared message should be shown. * @private */ - showShared_: function() { - return this.networkProperties.Source == 'Device' || - this.networkProperties.Source == 'DevicePolicy'; + showShared_: function(networkProperties) { + return networkProperties.Source == 'Device' || + networkProperties.Source == 'DevicePolicy'; }, /** @@ -700,7 +701,7 @@ * @private */ showAutoConnect_: function(networkProperties) { - return this.networkProperties.Type != CrOnc.Type.ETHERNET && + return networkProperties.Type != CrOnc.Type.ETHERNET && this.isRemembered_(networkProperties); }, @@ -881,23 +882,36 @@ /** * @param {string} type The network type. + * @param {!CrOnc.NetworkProperties} networkProperties * @return {boolean} True if the network type matches 'type'. * @private */ - isType_: function(type) { - return this.networkProperties.Type == type; + isType_: function(type, networkProperties) { + return networkProperties.Type == type; }, /** - * @return {boolean} True if the Cellular SIM section should be shown. + * @param {!CrOnc.NetworkProperties} networkProperties + * @return {boolean} * @private */ - showCellularSim_: function() { - if (this.networkProperties.Type != 'Cellular' || - !this.networkProperties.Cellular) { + showCellularSim_: function(networkProperties) { + if (networkProperties.Type != 'Cellular' || + !networkProperties.Cellular) { return false; } - return this.networkProperties.Cellular.Family == 'GSM'; + return networkProperties.Cellular.Family == 'GSM'; + }, + + /** + * @param {!CrOnc.NetworkProperties} networkProperties + * @return {boolean} + * @private + */ + showIpConfig_: function(networkProperties) { + if (!this.isRememberedOrConnected_(networkProperties)) + return false; + return !!networkProperties.IPAddressConfigType; }, /**
diff --git a/chrome/browser/resources/settings/internet_page/network_ip_config.js b/chrome/browser/resources/settings/internet_page/network_ip_config.js index 43f34e18..2d056e6 100644 --- a/chrome/browser/resources/settings/internet_page/network_ip_config.js +++ b/chrome/browser/resources/settings/internet_page/network_ip_config.js
@@ -35,7 +35,7 @@ */ automatic_: { type: Boolean, - value: false, + value: true, observer: 'automaticChanged_', }, @@ -84,49 +84,39 @@ this.savedStaticIp_ = undefined; // Update the 'automatic' property. - var ipConfigType = - CrOnc.getActiveValue(this.networkProperties.IPAddressConfigType); - this.automatic_ = (ipConfigType != CrOnc.IPConfigType.STATIC); + if (this.networkProperties.IPAddressConfigType ) { + var ipConfigType = + CrOnc.getActiveValue(this.networkProperties.IPAddressConfigType); + this.automatic_ = (ipConfigType != CrOnc.IPConfigType.STATIC); + } - // Update the 'ipConfig' property. - var ipv4 = - CrOnc.getIPConfigForType(this.networkProperties, CrOnc.IPType.IPV4); - var ipv6 = - CrOnc.getIPConfigForType(this.networkProperties, CrOnc.IPType.IPV6); - this.ipConfig_ = { - ipv4: this.getIPConfigUIProperties_(ipv4), - ipv6: this.getIPConfigUIProperties_(ipv6) - }; + if (this.networkProperties.IPConfigs) { + // Update the 'ipConfig' property. + var ipv4 = + CrOnc.getIPConfigForType(this.networkProperties, CrOnc.IPType.IPV4); + var ipv6 = + CrOnc.getIPConfigForType(this.networkProperties, CrOnc.IPType.IPV6); + this.ipConfig_ = { + ipv4: this.getIPConfigUIProperties_(ipv4), + ipv6: this.getIPConfigUIProperties_(ipv6) + }; + } }, - /** - * Polymer automatic changed method. - */ + /** @private */ automaticChanged_: function() { - if (!this.automatic_ || !this.ipConfig_) + if (!this.automatic_ || !this.ipConfig_) { + // When switching from automatic, don't send any changes, ip-change will + // be fired in onIPChange when a field is changed. return; - if (this.automatic_ || !this.savedStaticIp_) { - // Save the static IP configuration when switching to automatic. - this.savedStaticIp_ = this.ipConfig_.ipv4; - var configType = - this.automatic_ ? CrOnc.IPConfigType.DHCP : CrOnc.IPConfigType.STATIC; - this.fire('ip-change', { - field: 'IPAddressConfigType', - value: configType, - }); - } else { - // Restore the saved static IP configuration. - var ipconfig = { - Gateway: this.savedStaticIp_.Gateway, - IPAddress: this.savedStaticIp_.IPAddress, - RoutingPrefix: this.savedStaticIp_.RoutingPrefix, - Type: this.savedStaticIp_.Type, - }; - this.fire('ip-change', { - field: 'StaticIPConfig', - value: this.getIPConfigProperties_(ipconfig), - }); } + // Save the static IP configuration when switching to automatic. + this.savedStaticIp_ = this.ipConfig_.ipv4; + // Send the change. + this.fire('ip-change', { + field: 'IPAddressConfigType', + value: CrOnc.IPConfigType.DHCP, + }); }, /** @@ -203,6 +193,7 @@ var value = event.detail.value; // Note: |field| includes the 'ipv4.' prefix. this.set('ipConfig_.' + field, value); + // This will also set IPAddressConfigType to STATIC. this.fire('ip-change', { field: 'StaticIPConfig', value: this.getIPConfigProperties_(this.ipConfig_.ipv4)
diff --git a/chrome/browser/safe_browsing/srt_chrome_prompt_impl.cc b/chrome/browser/safe_browsing/srt_chrome_prompt_impl.cc index 4e60db0..38bb601 100644 --- a/chrome/browser/safe_browsing/srt_chrome_prompt_impl.cc +++ b/chrome/browser/safe_browsing/srt_chrome_prompt_impl.cc
@@ -10,6 +10,7 @@ using chrome_cleaner::mojom::ChromePrompt; using chrome_cleaner::mojom::ChromePromptRequest; +using chrome_cleaner::mojom::ElevationStatus; using chrome_cleaner::mojom::PromptAcceptance; using chrome_cleaner::mojom::UwSPtr; @@ -20,7 +21,7 @@ void ChromePromptImpl::PromptUser( std::vector<UwSPtr> removable_uws_found, - bool elevation_required, + ElevationStatus elevation_status, const ChromePrompt::PromptUserCallback& callback) { // Placeholder. The actual implementation will show the prompt dialog to the // user and invoke this callback depending on the user's response.
diff --git a/chrome/browser/safe_browsing/srt_chrome_prompt_impl.h b/chrome/browser/safe_browsing/srt_chrome_prompt_impl.h index fbba20c..bf14b30 100644 --- a/chrome/browser/safe_browsing/srt_chrome_prompt_impl.h +++ b/chrome/browser/safe_browsing/srt_chrome_prompt_impl.h
@@ -18,7 +18,7 @@ void PromptUser( std::vector<chrome_cleaner::mojom::UwSPtr> removable_uws_found, - bool elevation_required, + chrome_cleaner::mojom::ElevationStatus elevation_status, const chrome_cleaner::mojom::ChromePrompt::PromptUserCallback& callback) override;
diff --git a/chrome/browser/safe_browsing/srt_fetcher_browsertest_win.cc b/chrome/browser/safe_browsing/srt_fetcher_browsertest_win.cc index 60053da..3d7336b 100644 --- a/chrome/browser/safe_browsing/srt_fetcher_browsertest_win.cc +++ b/chrome/browser/safe_browsing/srt_fetcher_browsertest_win.cc
@@ -49,6 +49,7 @@ namespace { +using chrome_cleaner::mojom::ElevationStatus; using chrome_cleaner::mojom::PromptAcceptance; // Special switches passed by the parent process (test case) to the reporter @@ -136,14 +137,16 @@ uws->observed_behaviours = chrome_cleaner::mojom::ObservedBehaviours::New(); removable_uws_found.push_back(std::move(uws)); } - const bool elevation_required = - command_line.HasSwitch(kReportElevationRequiredSwitch); + const ElevationStatus elevation_status = + command_line.HasSwitch(kReportElevationRequiredSwitch) + ? ElevationStatus::REQUIRED + : ElevationStatus::NOT_REQUIRED; const PromptAcceptance expected_prompt_acceptance = PromptAcceptanceFromCommandLine(command_line); (*g_chrome_prompt_ptr) ->PromptUser( - std::move(removable_uws_found), elevation_required, + std::move(removable_uws_found), elevation_status, base::Bind(&PromptUserCallback, done, expected_prompt_acceptance, expected_value_received)); } @@ -208,20 +211,22 @@ // - bool in_browser_cleaner_ui: indicates if InBrowserCleanerUI experiment // is enabled; if so, the parent and the child processes will communicate // via a Mojo IPC; -// - bool elevation_required: indicates if the scan results sent by the child -// process should consider that elevation will be required for cleanup. +// - ElevationStatus elevation_status: indicates if the scan results sent by +// the child process should consider that elevation will be required for +// cleanup. class SRTFetcherTest : public InProcessBrowserTest, public SwReporterTestingDelegate, - public ::testing::WithParamInterface<std::tuple<bool, bool>> { + public ::testing::WithParamInterface<std::tuple<bool, ElevationStatus>> { public: void SetUpInProcessBrowserTestFixture() override { SetSwReporterTestingDelegate(this); - std::tie(in_browser_cleaner_ui_, elevation_required_) = GetParam(); - // The config should only accept elevation_required_ if InBrowserCleanerUI + std::tie(in_browser_cleaner_ui_, elevation_status_) = GetParam(); + // The config should only accept elevation_status_ if InBrowserCleanerUI // feature is enabled. - ASSERT_TRUE(!elevation_required_ || in_browser_cleaner_ui_); + ASSERT_TRUE(elevation_status_ == ElevationStatus::NOT_REQUIRED || + in_browser_cleaner_ui_); if (in_browser_cleaner_ui_) scoped_feature_list_.InitAndEnableFeature(kInBrowserCleanerUIFeature); @@ -284,7 +289,7 @@ AddPromptAcceptanceToCommandLine(PromptAcceptance::DENIED, &command_line); if (exit_code_to_report_ == kSwReporterCleanupNeeded) { command_line.AppendSwitch(kReportUwSFoundSwitch); - if (elevation_required_) + if (elevation_status_ == ElevationStatus::REQUIRED) command_line.AppendSwitch(kReportElevationRequiredSwitch); } } @@ -459,7 +464,7 @@ scoped_refptr<base::SingleThreadTaskRunner> saved_task_runner_; bool in_browser_cleaner_ui_; - bool elevation_required_; + ElevationStatus elevation_status_; bool prompt_trigger_called_ = false; int reporter_launch_count_ = 0; @@ -794,15 +799,18 @@ ExpectToRunAgain(kDaysBetweenSuccessfulSwReporterRuns); } -INSTANTIATE_TEST_CASE_P(NoInBrowserCleanerUI, - SRTFetcherTest, - testing::Combine(testing::Values(false), - testing::Values(false))); +INSTANTIATE_TEST_CASE_P( + NoInBrowserCleanerUI, + SRTFetcherTest, + testing::Combine(testing::Values(false), + testing::Values(ElevationStatus::NOT_REQUIRED))); -INSTANTIATE_TEST_CASE_P(InBrowserCleanerUI, - SRTFetcherTest, - testing::Combine(testing::Values(true), - testing::Bool())); +INSTANTIATE_TEST_CASE_P( + InBrowserCleanerUI, + SRTFetcherTest, + testing::Combine(testing::Values(true), + testing::Values(ElevationStatus::NOT_REQUIRED, + ElevationStatus::REQUIRED))); // This provide tests which allows explicit invocation of the SRT Prompt // useful for checking dialog layout or any other interactive functionality
diff --git a/chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.cc b/chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.cc index c578db1..ae29d008 100644 --- a/chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.cc +++ b/chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.cc
@@ -67,214 +67,216 @@ const char* i18n_content; int message; } kI18nContentToMessage[] = { - { "keyboardOverlayLearnMore", IDS_KEYBOARD_OVERLAY_LEARN_MORE }, - { "keyboardOverlayTitle", IDS_KEYBOARD_OVERLAY_TITLE }, - { "keyboardOverlayEscKeyLabel", IDS_KEYBOARD_OVERLAY_ESC_KEY_LABEL }, - { "keyboardOverlayBackKeyLabel", IDS_KEYBOARD_OVERLAY_BACK_KEY_LABEL }, - { "keyboardOverlayForwardKeyLabel", IDS_KEYBOARD_OVERLAY_FORWARD_KEY_LABEL }, - { "keyboardOverlayReloadKeyLabel", IDS_KEYBOARD_OVERLAY_RELOAD_KEY_LABEL }, - { "keyboardOverlayFullScreenKeyLabel", - IDS_KEYBOARD_OVERLAY_FULL_SCREEN_KEY_LABEL }, - { "keyboardOverlaySwitchWinKeyLabel", - IDS_KEYBOARD_OVERLAY_SWITCH_WIN_KEY_LABEL }, - { "keyboardOverlayBrightDownKeyLabel", - IDS_KEYBOARD_OVERLAY_BRIGHT_DOWN_KEY_LABEL }, - { "keyboardOverlayBrightUpKeyLabel", - IDS_KEYBOARD_OVERLAY_BRIGHT_UP_KEY_LABEL }, - { "keyboardOverlayMuteKeyLabel", IDS_KEYBOARD_OVERLAY_MUTE_KEY_LABEL }, - { "keyboardOverlayVolDownKeyLabel", IDS_KEYBOARD_OVERLAY_VOL_DOWN_KEY_LABEL }, - { "keyboardOverlayVolUpKeyLabel", IDS_KEYBOARD_OVERLAY_VOL_UP_KEY_LABEL }, - { "keyboardOverlayPowerKeyLabel", IDS_KEYBOARD_OVERLAY_POWER_KEY_LABEL }, - { "keyboardOverlayBackspaceKeyLabel", - IDS_KEYBOARD_OVERLAY_BACKSPACE_KEY_LABEL }, - { "keyboardOverlayTabKeyLabel", IDS_KEYBOARD_OVERLAY_TAB_KEY_LABEL }, - { "keyboardOverlaySearchKeyLabel", IDS_KEYBOARD_OVERLAY_SEARCH_KEY_LABEL }, - { "keyboardOverlayEnterKeyLabel", IDS_KEYBOARD_OVERLAY_ENTER_KEY_LABEL }, - { "keyboardOverlayShiftKeyLabel", IDS_KEYBOARD_OVERLAY_SHIFT_KEY_LABEL }, - { "keyboardOverlayCtrlKeyLabel", IDS_KEYBOARD_OVERLAY_CTRL_KEY_LABEL }, - { "keyboardOverlayAltKeyLabel", IDS_KEYBOARD_OVERLAY_ALT_KEY_LABEL }, - { "keyboardOverlayLeftKeyLabel", IDS_KEYBOARD_OVERLAY_LEFT_KEY_LABEL }, - { "keyboardOverlayRightKeyLabel", IDS_KEYBOARD_OVERLAY_RIGHT_KEY_LABEL }, - { "keyboardOverlayUpKeyLabel", IDS_KEYBOARD_OVERLAY_UP_KEY_LABEL }, - { "keyboardOverlayDownKeyLabel", IDS_KEYBOARD_OVERLAY_DOWN_KEY_LABEL }, - { "keyboardOverlayInstructions", IDS_KEYBOARD_OVERLAY_INSTRUCTIONS }, - { "keyboardOverlayInstructionsHide", IDS_KEYBOARD_OVERLAY_INSTRUCTIONS_HIDE }, - { "keyboardOverlayActivateLastShelfItem", - IDS_KEYBOARD_OVERLAY_ACTIVATE_LAST_SHELF_ITEM }, - { "keyboardOverlayActivateLastTab", IDS_KEYBOARD_OVERLAY_ACTIVATE_LAST_TAB }, - { "keyboardOverlayActivateShelfItem1", - IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_1 }, - { "keyboardOverlayActivateShelfItem2", - IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_2 }, - { "keyboardOverlayActivateShelfItem3", - IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_3 }, - { "keyboardOverlayActivateShelfItem4", - IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_4 }, - { "keyboardOverlayActivateShelfItem5", - IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_5 }, - { "keyboardOverlayActivateShelfItem6", - IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_6 }, - { "keyboardOverlayActivateShelfItem7", - IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_7 }, - { "keyboardOverlayActivateShelfItem8", - IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_8 }, - { "keyboardOverlayActivateNextTab", IDS_KEYBOARD_OVERLAY_ACTIVATE_NEXT_TAB }, - { "keyboardOverlayActivatePreviousTab", - IDS_KEYBOARD_OVERLAY_ACTIVATE_PREVIOUS_TAB }, - { "keyboardOverlayActivateTab1", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_1 }, - { "keyboardOverlayActivateTab2", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_2 }, - { "keyboardOverlayActivateTab3", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_3 }, - { "keyboardOverlayActivateTab4", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_4 }, - { "keyboardOverlayActivateTab5", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_5 }, - { "keyboardOverlayActivateTab6", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_6 }, - { "keyboardOverlayActivateTab7", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_7 }, - { "keyboardOverlayActivateTab8", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_8 }, - { "keyboardOverlayAddWwwAndComAndOpenAddress", - IDS_KEYBOARD_OVERLAY_ADD_WWW_AND_COM_AND_OPEN_ADDRESS }, - { "keyboardOverlayBookmarkAllTabs", IDS_KEYBOARD_OVERLAY_BOOKMARK_ALL_TABS }, - { "keyboardOverlayBookmarkCurrentPage", - IDS_KEYBOARD_OVERLAY_BOOKMARK_CURRENT_PAGE }, - { "keyboardOverlayBookmarkManager", IDS_KEYBOARD_OVERLAY_BOOKMARK_MANAGER }, - { "keyboardOverlayCenterWindow", IDS_KEYBOARD_OVERLAY_CENTER_WINDOW }, - { "keyboardOverlayClearBrowsingDataDialog", - IDS_KEYBOARD_OVERLAY_CLEAR_BROWSING_DATA_DIALOG }, - { "keyboardOverlayCloseTab", IDS_KEYBOARD_OVERLAY_CLOSE_TAB }, - { "keyboardOverlayCloseWindow", IDS_KEYBOARD_OVERLAY_CLOSE_WINDOW }, - { "keyboardOverlayContextMenu", IDS_KEYBOARD_OVERLAY_CONTEXT_MENU }, - { "keyboardOverlayCopy", IDS_KEYBOARD_OVERLAY_COPY }, - { "keyboardOverlayCut", IDS_KEYBOARD_OVERLAY_CUT }, - { "keyboardOverlayCycleThroughInputMethods", - IDS_KEYBOARD_OVERLAY_CYCLE_THROUGH_INPUT_METHODS }, - { "keyboardOverlayDecreaseKeyBrightness", - IDS_KEYBOARD_OVERLAY_DECREASE_KEY_BRIGHTNESS }, - { "keyboardOverlayDelete", IDS_KEYBOARD_OVERLAY_DELETE }, - { "keyboardOverlayDeleteWord", IDS_KEYBOARD_OVERLAY_DELETE_WORD }, - { "keyboardOverlayDeveloperTools", IDS_KEYBOARD_OVERLAY_DEVELOPER_TOOLS }, - { "keyboardOverlayDockWindowLeft", IDS_KEYBOARD_OVERLAY_DOCK_WINDOW_LEFT }, - { "keyboardOverlayDockWindowRight", IDS_KEYBOARD_OVERLAY_DOCK_WINDOW_RIGHT }, - { "keyboardOverlayDomInspector", IDS_KEYBOARD_OVERLAY_DOM_INSPECTOR }, - { "keyboardOverlayDownloads", IDS_KEYBOARD_OVERLAY_DOWNLOADS }, - { "keyboardOverlayEnd", IDS_KEYBOARD_OVERLAY_END }, - { "keyboardOverlayF1", IDS_KEYBOARD_OVERLAY_F1 }, - { "keyboardOverlayF10", IDS_KEYBOARD_OVERLAY_F10 }, - { "keyboardOverlayF11", IDS_KEYBOARD_OVERLAY_F11 }, - { "keyboardOverlayF12", IDS_KEYBOARD_OVERLAY_F12 }, - { "keyboardOverlayF2", IDS_KEYBOARD_OVERLAY_F2 }, - { "keyboardOverlayF3", IDS_KEYBOARD_OVERLAY_F3 }, - { "keyboardOverlayF4", IDS_KEYBOARD_OVERLAY_F4 }, - { "keyboardOverlayF5", IDS_KEYBOARD_OVERLAY_F5 }, - { "keyboardOverlayF6", IDS_KEYBOARD_OVERLAY_F6 }, - { "keyboardOverlayF7", IDS_KEYBOARD_OVERLAY_F7 }, - { "keyboardOverlayF8", IDS_KEYBOARD_OVERLAY_F8 }, - { "keyboardOverlayF9", IDS_KEYBOARD_OVERLAY_F9 }, - { "keyboardOverlayFindPreviousText", - IDS_KEYBOARD_OVERLAY_FIND_PREVIOUS_TEXT }, - { "keyboardOverlayFindText", IDS_KEYBOARD_OVERLAY_FIND_TEXT }, - { "keyboardOverlayFindTextAgain", IDS_KEYBOARD_OVERLAY_FIND_TEXT_AGAIN }, - { "keyboardOverlayFocusAddressBar", IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR }, - { "keyboardOverlayFocusAddressBarInSearchMode", - IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR_IN_SEARCH_MODE }, - { "keyboardOverlayFocusBookmarks", IDS_KEYBOARD_OVERLAY_FOCUS_BOOKMARKS }, - { "keyboardOverlayFocusShelf", IDS_KEYBOARD_OVERLAY_FOCUS_SHELF }, - { "keyboardOverlayFocusNextPane", IDS_KEYBOARD_OVERLAY_FOCUS_NEXT_PANE }, - { "keyboardOverlayFocusPreviousPane", - IDS_KEYBOARD_OVERLAY_FOCUS_PREVIOUS_PANE }, - { "keyboardOverlayFocusToolbar", IDS_KEYBOARD_OVERLAY_FOCUS_TOOLBAR }, - { "keyboardOverlayGoBack", IDS_KEYBOARD_OVERLAY_GO_BACK }, - { "keyboardOverlayGoForward", IDS_KEYBOARD_OVERLAY_GO_FORWARD }, - { "keyboardOverlayHelp", IDS_KEYBOARD_OVERLAY_HELP }, - { "keyboardOverlayHistory", IDS_KEYBOARD_OVERLAY_HISTORY }, - { "keyboardOverlayHome", IDS_KEYBOARD_OVERLAY_HOME }, - { "keyboardOverlayIncreaseKeyBrightness", - IDS_KEYBOARD_OVERLAY_INCREASE_KEY_BRIGHTNESS }, - { "keyboardOverlayInputUnicodeCharacters", - IDS_KEYBOARD_OVERLAY_INPUT_UNICODE_CHARACTERS }, - { "keyboardOverlayInsert", IDS_KEYBOARD_OVERLAY_INSERT }, - { "keyboardOverlayJavascriptConsole", - IDS_KEYBOARD_OVERLAY_JAVASCRIPT_CONSOLE }, - { "keyboardOverlayLockScreen", IDS_KEYBOARD_OVERLAY_LOCK_SCREEN }, - { "keyboardOverlayLockScreenOrPowerOff", - IDS_KEYBOARD_OVERLAY_LOCK_SCREEN_OR_POWER_OFF }, - { "keyboardOverlayMagnifierDecreaseZoom", - IDS_KEYBOARD_OVERLAY_MAGNIFIER_DECREASE_ZOOM }, - { "keyboardOverlayMagnifierIncreaseZoom", - IDS_KEYBOARD_OVERLAY_MAGNIFIER_INCREASE_ZOOM }, - { "keyboardOverlayMaximizeWindow", IDS_KEYBOARD_OVERLAY_MAXIMIZE_WINDOW }, - { "keyboardOverlayMinimizeWindow", IDS_KEYBOARD_OVERLAY_MINIMIZE_WINDOW }, - { "keyboardOverlayMirrorMonitors", IDS_KEYBOARD_OVERLAY_MIRROR_MONITORS }, - { "keyboardOverlayNewIncognitoWindow", - IDS_KEYBOARD_OVERLAY_NEW_INCOGNITO_WINDOW }, - { "keyboardOverlayNewTab", IDS_KEYBOARD_OVERLAY_NEW_TAB }, - { "keyboardOverlayNewTerminal", IDS_KEYBOARD_OVERLAY_NEW_TERMINAL }, - { "keyboardOverlayNewWindow", IDS_KEYBOARD_OVERLAY_NEW_WINDOW }, - { "keyboardOverlayNextUser", IDS_KEYBOARD_OVERLAY_NEXT_USER }, - { "keyboardOverlayNextWindow", IDS_KEYBOARD_OVERLAY_NEXT_WINDOW }, - { "keyboardOverlayNextWord", IDS_KEYBOARD_OVERLAY_NEXT_WORD }, - { "keyboardOverlayOpen", IDS_KEYBOARD_OVERLAY_OPEN }, - { "keyboardOverlayOpenAddressInNewTab", - IDS_KEYBOARD_OVERLAY_OPEN_ADDRESS_IN_NEW_TAB }, - { "keyboardOverlayOpenFileManager", IDS_KEYBOARD_OVERLAY_OPEN_FILE_MANAGER }, - { "keyboardOverlayPageDown", IDS_KEYBOARD_OVERLAY_PAGE_DOWN }, - { "keyboardOverlayPageUp", IDS_KEYBOARD_OVERLAY_PAGE_UP }, - { "keyboardOverlayPaste", IDS_KEYBOARD_OVERLAY_PASTE }, - { "keyboardOverlayPasteAsPlainText", - IDS_KEYBOARD_OVERLAY_PASTE_AS_PLAIN_TEXT }, - { "keyboardOverlayPreviousUser", IDS_KEYBOARD_OVERLAY_PREVIOUS_USER }, - { "keyboardOverlayPreviousWindow", IDS_KEYBOARD_OVERLAY_PREVIOUS_WINDOW }, - { "keyboardOverlayPreviousWord", IDS_KEYBOARD_OVERLAY_PREVIOUS_WORD }, - { "keyboardOverlayPrint", IDS_KEYBOARD_OVERLAY_PRINT }, - { "keyboardOverlayReloadCurrentPage", - IDS_KEYBOARD_OVERLAY_RELOAD_CURRENT_PAGE }, - { "keyboardOverlayReloadBypassingCache", - IDS_KEYBOARD_OVERLAY_RELOAD_BYPASSING_CACHE }, - { "keyboardOverlayReopenLastClosedTab", - IDS_KEYBOARD_OVERLAY_REOPEN_LAST_CLOSED_TAB }, - { "keyboardOverlayReportIssue", IDS_KEYBOARD_OVERLAY_REPORT_ISSUE }, - { "keyboardOverlayResetScreenZoom", IDS_KEYBOARD_OVERLAY_RESET_SCREEN_ZOOM }, - { "keyboardOverlayResetZoom", IDS_KEYBOARD_OVERLAY_RESET_ZOOM }, - { "keyboardOverlayRotateScreen", IDS_KEYBOARD_OVERLAY_ROTATE_SCREEN }, - { "keyboardOverlaySave", IDS_KEYBOARD_OVERLAY_SAVE }, - { "keyboardOverlayScreenshotRegion", - IDS_KEYBOARD_OVERLAY_SCREENSHOT_REGION }, - { "keyboardOverlayScreenshotWindow", - IDS_KEYBOARD_OVERLAY_SCREENSHOT_WINDOW }, - { "keyboardOverlayScrollUpOnePage", - IDS_KEYBOARD_OVERLAY_SCROLL_UP_ONE_PAGE }, - { "keyboardOverlaySelectAll", IDS_KEYBOARD_OVERLAY_SELECT_ALL }, - { "keyboardOverlaySelectPreviousInputMethod", - IDS_KEYBOARD_OVERLAY_SELECT_PREVIOUS_INPUT_METHOD }, - { "keyboardOverlaySelectWordAtATime", - IDS_KEYBOARD_OVERLAY_SELECT_WORD_AT_A_TIME }, - { "keyboardOverlayShowImeBubble", IDS_KEYBOARD_OVERLAY_SHOW_IME_BUBBLE }, - { "keyboardOverlayShowMessageCenter", - IDS_KEYBOARD_OVERLAY_SHOW_MESSAGE_CENTER }, - { "keyboardOverlayShowStatusMenu", IDS_KEYBOARD_OVERLAY_SHOW_STATUS_MENU }, - { "keyboardOverlayShowWrenchMenu", IDS_KEYBOARD_OVERLAY_SHOW_WRENCH_MENU }, - { "keyboardOverlaySignOut", IDS_KEYBOARD_OVERLAY_SIGN_OUT }, - { "keyboardOverlaySuspend", IDS_KEYBOARD_OVERLAY_SUSPEND }, - { "keyboardOverlaySwapPrimaryMonitor", - IDS_KEYBOARD_OVERLAY_SWAP_PRIMARY_MONITOR }, - { "keyboardOverlayTakeScreenshot", IDS_KEYBOARD_OVERLAY_TAKE_SCREENSHOT }, - { "keyboardOverlayTaskManager", IDS_KEYBOARD_OVERLAY_TASK_MANAGER }, - { "keyboardOverlayToggleBookmarkBar", - IDS_KEYBOARD_OVERLAY_TOGGLE_BOOKMARK_BAR }, - { "keyboardOverlayToggleCapsLock", IDS_KEYBOARD_OVERLAY_TOGGLE_CAPS_LOCK }, - { "keyboardOverlayDisableCapsLock", IDS_KEYBOARD_OVERLAY_DISABLE_CAPS_LOCK }, - { "keyboardOverlayToggleChromevoxSpokenFeedback", - IDS_KEYBOARD_OVERLAY_TOGGLE_CHROMEVOX_SPOKEN_FEEDBACK }, - { "keyboardOverlayToggleHighContrastMode", - IDS_KEYBOARD_OVERLAY_TOGGLE_HIGH_CONTRAST_MODE }, - { "keyboardOverlayToggleProjectionTouchHud", - IDS_KEYBOARD_OVERLAY_TOGGLE_PROJECTION_TOUCH_HUD }, - { "keyboardOverlayUndo", IDS_KEYBOARD_OVERLAY_UNDO }, - { "keyboardOverlayViewKeyboardOverlay", - IDS_KEYBOARD_OVERLAY_VIEW_KEYBOARD_OVERLAY }, - { "keyboardOverlayViewSource", IDS_KEYBOARD_OVERLAY_VIEW_SOURCE }, - { "keyboardOverlayWordMove", IDS_KEYBOARD_OVERLAY_WORD_MOVE }, - { "keyboardOverlayZoomIn", IDS_KEYBOARD_OVERLAY_ZOOM_IN }, - { "keyboardOverlayZoomOut", IDS_KEYBOARD_OVERLAY_ZOOM_OUT }, - { "keyboardOverlayZoomScreenIn", IDS_KEYBOARD_OVERLAY_ZOOM_SCREEN_IN }, - { "keyboardOverlayZoomScreenOut", IDS_KEYBOARD_OVERLAY_ZOOM_SCREEN_OUT }, + {"keyboardOverlayLearnMore", IDS_KEYBOARD_OVERLAY_LEARN_MORE}, + {"keyboardOverlayTitle", IDS_KEYBOARD_OVERLAY_TITLE}, + {"keyboardOverlayEscKeyLabel", IDS_KEYBOARD_OVERLAY_ESC_KEY_LABEL}, + {"keyboardOverlayBackKeyLabel", IDS_KEYBOARD_OVERLAY_BACK_KEY_LABEL}, + {"keyboardOverlayForwardKeyLabel", IDS_KEYBOARD_OVERLAY_FORWARD_KEY_LABEL}, + {"keyboardOverlayReloadKeyLabel", IDS_KEYBOARD_OVERLAY_RELOAD_KEY_LABEL}, + {"keyboardOverlayFullScreenKeyLabel", + IDS_KEYBOARD_OVERLAY_FULL_SCREEN_KEY_LABEL}, + {"keyboardOverlaySwitchWinKeyLabel", + IDS_KEYBOARD_OVERLAY_SWITCH_WIN_KEY_LABEL}, + {"keyboardOverlayBrightDownKeyLabel", + IDS_KEYBOARD_OVERLAY_BRIGHT_DOWN_KEY_LABEL}, + {"keyboardOverlayBrightUpKeyLabel", + IDS_KEYBOARD_OVERLAY_BRIGHT_UP_KEY_LABEL}, + {"keyboardOverlayMuteKeyLabel", IDS_KEYBOARD_OVERLAY_MUTE_KEY_LABEL}, + {"keyboardOverlayVolDownKeyLabel", IDS_KEYBOARD_OVERLAY_VOL_DOWN_KEY_LABEL}, + {"keyboardOverlayVolUpKeyLabel", IDS_KEYBOARD_OVERLAY_VOL_UP_KEY_LABEL}, + {"keyboardOverlayPowerKeyLabel", IDS_KEYBOARD_OVERLAY_POWER_KEY_LABEL}, + {"keyboardOverlayBackspaceKeyLabel", + IDS_KEYBOARD_OVERLAY_BACKSPACE_KEY_LABEL}, + {"keyboardOverlayTabKeyLabel", IDS_KEYBOARD_OVERLAY_TAB_KEY_LABEL}, + {"keyboardOverlaySearchKeyLabel", IDS_KEYBOARD_OVERLAY_SEARCH_KEY_LABEL}, + {"keyboardOverlayEnterKeyLabel", IDS_KEYBOARD_OVERLAY_ENTER_KEY_LABEL}, + {"keyboardOverlayShiftKeyLabel", IDS_KEYBOARD_OVERLAY_SHIFT_KEY_LABEL}, + {"keyboardOverlayCtrlKeyLabel", IDS_KEYBOARD_OVERLAY_CTRL_KEY_LABEL}, + {"keyboardOverlayAltKeyLabel", IDS_KEYBOARD_OVERLAY_ALT_KEY_LABEL}, + {"keyboardOverlayLeftKeyLabel", IDS_KEYBOARD_OVERLAY_LEFT_KEY_LABEL}, + {"keyboardOverlayRightKeyLabel", IDS_KEYBOARD_OVERLAY_RIGHT_KEY_LABEL}, + {"keyboardOverlayUpKeyLabel", IDS_KEYBOARD_OVERLAY_UP_KEY_LABEL}, + {"keyboardOverlayDownKeyLabel", IDS_KEYBOARD_OVERLAY_DOWN_KEY_LABEL}, + {"keyboardOverlayInstructions", IDS_KEYBOARD_OVERLAY_INSTRUCTIONS}, + {"keyboardOverlayInstructionsHide", IDS_KEYBOARD_OVERLAY_INSTRUCTIONS_HIDE}, + {"keyboardOverlayActivateLastShelfItem", + IDS_KEYBOARD_OVERLAY_ACTIVATE_LAST_SHELF_ITEM}, + {"keyboardOverlayActivateLastTab", IDS_KEYBOARD_OVERLAY_ACTIVATE_LAST_TAB}, + {"keyboardOverlayActivateShelfItem1", + IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_1}, + {"keyboardOverlayActivateShelfItem2", + IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_2}, + {"keyboardOverlayActivateShelfItem3", + IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_3}, + {"keyboardOverlayActivateShelfItem4", + IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_4}, + {"keyboardOverlayActivateShelfItem5", + IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_5}, + {"keyboardOverlayActivateShelfItem6", + IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_6}, + {"keyboardOverlayActivateShelfItem7", + IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_7}, + {"keyboardOverlayActivateShelfItem8", + IDS_KEYBOARD_OVERLAY_ACTIVATE_SHELF_ITEM_8}, + {"keyboardOverlayActivateNextTab", IDS_KEYBOARD_OVERLAY_ACTIVATE_NEXT_TAB}, + {"keyboardOverlayActivatePreviousTab", + IDS_KEYBOARD_OVERLAY_ACTIVATE_PREVIOUS_TAB}, + {"keyboardOverlayActivateTab1", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_1}, + {"keyboardOverlayActivateTab2", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_2}, + {"keyboardOverlayActivateTab3", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_3}, + {"keyboardOverlayActivateTab4", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_4}, + {"keyboardOverlayActivateTab5", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_5}, + {"keyboardOverlayActivateTab6", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_6}, + {"keyboardOverlayActivateTab7", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_7}, + {"keyboardOverlayActivateTab8", IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_8}, + {"keyboardOverlayAddWwwAndComAndOpenAddress", + IDS_KEYBOARD_OVERLAY_ADD_WWW_AND_COM_AND_OPEN_ADDRESS}, + {"keyboardOverlayBookmarkAllTabs", IDS_KEYBOARD_OVERLAY_BOOKMARK_ALL_TABS}, + {"keyboardOverlayBookmarkCurrentPage", + IDS_KEYBOARD_OVERLAY_BOOKMARK_CURRENT_PAGE}, + {"keyboardOverlayBookmarkManager", IDS_KEYBOARD_OVERLAY_BOOKMARK_MANAGER}, + {"keyboardOverlayCenterWindow", IDS_KEYBOARD_OVERLAY_CENTER_WINDOW}, + {"keyboardOverlayClearBrowsingDataDialog", + IDS_KEYBOARD_OVERLAY_CLEAR_BROWSING_DATA_DIALOG}, + {"keyboardOverlayCloseTab", IDS_KEYBOARD_OVERLAY_CLOSE_TAB}, + {"keyboardOverlayCloseWindow", IDS_KEYBOARD_OVERLAY_CLOSE_WINDOW}, + {"keyboardOverlayContextMenu", IDS_KEYBOARD_OVERLAY_CONTEXT_MENU}, + {"keyboardOverlayCopy", IDS_KEYBOARD_OVERLAY_COPY}, + {"keyboardOverlayCut", IDS_KEYBOARD_OVERLAY_CUT}, + {"keyboardOverlayCycleThroughInputMethods", + IDS_KEYBOARD_OVERLAY_CYCLE_THROUGH_INPUT_METHODS}, + {"keyboardOverlayDecreaseKeyBrightness", + IDS_KEYBOARD_OVERLAY_DECREASE_KEY_BRIGHTNESS}, + {"keyboardOverlayDelete", IDS_KEYBOARD_OVERLAY_DELETE}, + {"keyboardOverlayDeleteWord", IDS_KEYBOARD_OVERLAY_DELETE_WORD}, + {"keyboardOverlayDeveloperTools", IDS_KEYBOARD_OVERLAY_DEVELOPER_TOOLS}, + {"keyboardOverlayDockWindowLeft", IDS_KEYBOARD_OVERLAY_DOCK_WINDOW_LEFT}, + {"keyboardOverlayDockWindowRight", IDS_KEYBOARD_OVERLAY_DOCK_WINDOW_RIGHT}, + {"keyboardOverlayDomInspector", IDS_KEYBOARD_OVERLAY_DOM_INSPECTOR}, + {"keyboardOverlayDownloads", IDS_KEYBOARD_OVERLAY_DOWNLOADS}, + {"keyboardOverlayEnd", IDS_KEYBOARD_OVERLAY_END}, + {"keyboardOverlayF1", IDS_KEYBOARD_OVERLAY_F1}, + {"keyboardOverlayF10", IDS_KEYBOARD_OVERLAY_F10}, + {"keyboardOverlayF11", IDS_KEYBOARD_OVERLAY_F11}, + {"keyboardOverlayF12", IDS_KEYBOARD_OVERLAY_F12}, + {"keyboardOverlayF2", IDS_KEYBOARD_OVERLAY_F2}, + {"keyboardOverlayF3", IDS_KEYBOARD_OVERLAY_F3}, + {"keyboardOverlayF4", IDS_KEYBOARD_OVERLAY_F4}, + {"keyboardOverlayF5", IDS_KEYBOARD_OVERLAY_F5}, + {"keyboardOverlayF6", IDS_KEYBOARD_OVERLAY_F6}, + {"keyboardOverlayF7", IDS_KEYBOARD_OVERLAY_F7}, + {"keyboardOverlayF8", IDS_KEYBOARD_OVERLAY_F8}, + {"keyboardOverlayF9", IDS_KEYBOARD_OVERLAY_F9}, + {"keyboardOverlayFindPreviousText", + IDS_KEYBOARD_OVERLAY_FIND_PREVIOUS_TEXT}, + {"keyboardOverlayFindText", IDS_KEYBOARD_OVERLAY_FIND_TEXT}, + {"keyboardOverlayFindTextAgain", IDS_KEYBOARD_OVERLAY_FIND_TEXT_AGAIN}, + {"keyboardOverlayFocusAddressBar", IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR}, + {"keyboardOverlayFocusAddressBarInSearchMode", + IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR_IN_SEARCH_MODE}, + {"keyboardOverlayFocusBookmarks", IDS_KEYBOARD_OVERLAY_FOCUS_BOOKMARKS}, + {"keyboardOverlayFocusShelf", IDS_KEYBOARD_OVERLAY_FOCUS_SHELF}, + {"keyboardOverlayFocusNextPane", IDS_KEYBOARD_OVERLAY_FOCUS_NEXT_PANE}, + {"keyboardOverlayFocusPreviousPane", + IDS_KEYBOARD_OVERLAY_FOCUS_PREVIOUS_PANE}, + {"keyboardOverlayFocusToolbar", IDS_KEYBOARD_OVERLAY_FOCUS_TOOLBAR}, + {"keyboardOverlayGoBack", IDS_KEYBOARD_OVERLAY_GO_BACK}, + {"keyboardOverlayGoForward", IDS_KEYBOARD_OVERLAY_GO_FORWARD}, + {"keyboardOverlayHelp", IDS_KEYBOARD_OVERLAY_HELP}, + {"keyboardOverlayHistory", IDS_KEYBOARD_OVERLAY_HISTORY}, + {"keyboardOverlayHome", IDS_KEYBOARD_OVERLAY_HOME}, + {"keyboardOverlayIncreaseKeyBrightness", + IDS_KEYBOARD_OVERLAY_INCREASE_KEY_BRIGHTNESS}, + {"keyboardOverlayInputUnicodeCharacters", + IDS_KEYBOARD_OVERLAY_INPUT_UNICODE_CHARACTERS}, + {"keyboardOverlayInsert", IDS_KEYBOARD_OVERLAY_INSERT}, + {"keyboardOverlayJavascriptConsole", + IDS_KEYBOARD_OVERLAY_JAVASCRIPT_CONSOLE}, + {"keyboardOverlayLockScreen", IDS_KEYBOARD_OVERLAY_LOCK_SCREEN}, + {"keyboardOverlayLockScreenOrPowerOff", + IDS_KEYBOARD_OVERLAY_LOCK_SCREEN_OR_POWER_OFF}, + {"keyboardOverlayMagnifierDecreaseZoom", + IDS_KEYBOARD_OVERLAY_MAGNIFIER_DECREASE_ZOOM}, + {"keyboardOverlayMagnifierIncreaseZoom", + IDS_KEYBOARD_OVERLAY_MAGNIFIER_INCREASE_ZOOM}, + {"keyboardOverlayMaximizeWindow", IDS_KEYBOARD_OVERLAY_MAXIMIZE_WINDOW}, + {"keyboardOverlayMinimizeWindow", IDS_KEYBOARD_OVERLAY_MINIMIZE_WINDOW}, + {"keyboardOverlayMirrorMonitors", IDS_KEYBOARD_OVERLAY_MIRROR_MONITORS}, + {"keyboardOverlayNewIncognitoWindow", + IDS_KEYBOARD_OVERLAY_NEW_INCOGNITO_WINDOW}, + {"keyboardOverlayNewTab", IDS_KEYBOARD_OVERLAY_NEW_TAB}, + {"keyboardOverlayNewTerminal", IDS_KEYBOARD_OVERLAY_NEW_TERMINAL}, + {"keyboardOverlayNewWindow", IDS_KEYBOARD_OVERLAY_NEW_WINDOW}, + {"keyboardOverlayNextUser", IDS_KEYBOARD_OVERLAY_NEXT_USER}, + {"keyboardOverlayNextWindow", IDS_KEYBOARD_OVERLAY_NEXT_WINDOW}, + {"keyboardOverlayNextWord", IDS_KEYBOARD_OVERLAY_NEXT_WORD}, + {"keyboardOverlayOpen", IDS_KEYBOARD_OVERLAY_OPEN}, + {"keyboardOverlayOpenAddressInNewTab", + IDS_KEYBOARD_OVERLAY_OPEN_ADDRESS_IN_NEW_TAB}, + {"keyboardOverlayOpenFileManager", IDS_KEYBOARD_OVERLAY_OPEN_FILE_MANAGER}, + {"keyboardOverlayPageDown", IDS_KEYBOARD_OVERLAY_PAGE_DOWN}, + {"keyboardOverlayPageUp", IDS_KEYBOARD_OVERLAY_PAGE_UP}, + {"keyboardOverlayPaste", IDS_KEYBOARD_OVERLAY_PASTE}, + {"keyboardOverlayPasteAsPlainText", + IDS_KEYBOARD_OVERLAY_PASTE_AS_PLAIN_TEXT}, + {"keyboardOverlayPreviousUser", IDS_KEYBOARD_OVERLAY_PREVIOUS_USER}, + {"keyboardOverlayPreviousWindow", IDS_KEYBOARD_OVERLAY_PREVIOUS_WINDOW}, + {"keyboardOverlayPreviousWord", IDS_KEYBOARD_OVERLAY_PREVIOUS_WORD}, + {"keyboardOverlayPrint", IDS_KEYBOARD_OVERLAY_PRINT}, + {"keyboardOverlayReloadCurrentPage", + IDS_KEYBOARD_OVERLAY_RELOAD_CURRENT_PAGE}, + {"keyboardOverlayReloadBypassingCache", + IDS_KEYBOARD_OVERLAY_RELOAD_BYPASSING_CACHE}, + {"keyboardOverlayReopenLastClosedTab", + IDS_KEYBOARD_OVERLAY_REOPEN_LAST_CLOSED_TAB}, + {"keyboardOverlayReportIssue", IDS_KEYBOARD_OVERLAY_REPORT_ISSUE}, + {"keyboardOverlayResetScreenZoom", IDS_KEYBOARD_OVERLAY_RESET_SCREEN_ZOOM}, + {"keyboardOverlayResetZoom", IDS_KEYBOARD_OVERLAY_RESET_ZOOM}, + {"keyboardOverlayRotateScreen", IDS_KEYBOARD_OVERLAY_ROTATE_SCREEN}, + {"keyboardOverlayRotateWindow", IDS_KEYBOARD_OVERLAY_ROTATE_WINDOW}, + {"keyboardOverlaySave", IDS_KEYBOARD_OVERLAY_SAVE}, + {"keyboardOverlayScreenshotRegion", IDS_KEYBOARD_OVERLAY_SCREENSHOT_REGION}, + {"keyboardOverlayScreenshotWindow", IDS_KEYBOARD_OVERLAY_SCREENSHOT_WINDOW}, + {"keyboardOverlayScrollUpOnePage", IDS_KEYBOARD_OVERLAY_SCROLL_UP_ONE_PAGE}, + {"keyboardOverlaySelectAll", IDS_KEYBOARD_OVERLAY_SELECT_ALL}, + {"keyboardOverlaySelectPreviousInputMethod", + IDS_KEYBOARD_OVERLAY_SELECT_PREVIOUS_INPUT_METHOD}, + {"keyboardOverlaySelectWordAtATime", + IDS_KEYBOARD_OVERLAY_SELECT_WORD_AT_A_TIME}, + {"keyboardOverlayShowImeBubble", IDS_KEYBOARD_OVERLAY_SHOW_IME_BUBBLE}, + {"keyboardOverlayShowMessageCenter", + IDS_KEYBOARD_OVERLAY_SHOW_MESSAGE_CENTER}, + {"keyboardOverlayShowStatusMenu", IDS_KEYBOARD_OVERLAY_SHOW_STATUS_MENU}, + {"keyboardOverlayShowStylusTools", IDS_KEYBOARD_OVERLAY_SHOW_STYLUS_TOOLS}, + {"keyboardOverlayShowWrenchMenu", IDS_KEYBOARD_OVERLAY_SHOW_WRENCH_MENU}, + {"keyboardOverlaySignOut", IDS_KEYBOARD_OVERLAY_SIGN_OUT}, + {"keyboardOverlaySuspend", IDS_KEYBOARD_OVERLAY_SUSPEND}, + {"keyboardOverlaySwapPrimaryMonitor", + IDS_KEYBOARD_OVERLAY_SWAP_PRIMARY_MONITOR}, + {"keyboardOverlayTakeScreenshot", IDS_KEYBOARD_OVERLAY_TAKE_SCREENSHOT}, + {"keyboardOverlayTaskManager", IDS_KEYBOARD_OVERLAY_TASK_MANAGER}, + {"keyboardOverlayToggleBookmarkBar", + IDS_KEYBOARD_OVERLAY_TOGGLE_BOOKMARK_BAR}, + {"keyboardOverlayToggleCapsLock", IDS_KEYBOARD_OVERLAY_TOGGLE_CAPS_LOCK}, + {"keyboardOverlayDisableCapsLock", IDS_KEYBOARD_OVERLAY_DISABLE_CAPS_LOCK}, + {"keyboardOverlayToggleChromevoxSpokenFeedback", + IDS_KEYBOARD_OVERLAY_TOGGLE_CHROMEVOX_SPOKEN_FEEDBACK}, + {"keyboardOverlayToggleHighContrastMode", + IDS_KEYBOARD_OVERLAY_TOGGLE_HIGH_CONTRAST_MODE}, + {"keyboardOverlayToggleProjectionTouchHud", + IDS_KEYBOARD_OVERLAY_TOGGLE_PROJECTION_TOUCH_HUD}, + {"keyboardOverlayTouchHudModeChange", + IDS_KEYBOARD_OVERLAY_TOUCH_HUD_MODE_CHANGE}, + {"keyboardOverlayUndo", IDS_KEYBOARD_OVERLAY_UNDO}, + {"keyboardOverlayUnpin", IDS_KEYBOARD_OVERLAY_UNPIN}, + {"keyboardOverlayViewKeyboardOverlay", + IDS_KEYBOARD_OVERLAY_VIEW_KEYBOARD_OVERLAY}, + {"keyboardOverlayViewSource", IDS_KEYBOARD_OVERLAY_VIEW_SOURCE}, + {"keyboardOverlayWordMove", IDS_KEYBOARD_OVERLAY_WORD_MOVE}, + {"keyboardOverlayZoomIn", IDS_KEYBOARD_OVERLAY_ZOOM_IN}, + {"keyboardOverlayZoomOut", IDS_KEYBOARD_OVERLAY_ZOOM_OUT}, + {"keyboardOverlayZoomScreenIn", IDS_KEYBOARD_OVERLAY_ZOOM_SCREEN_IN}, + {"keyboardOverlayZoomScreenOut", IDS_KEYBOARD_OVERLAY_ZOOM_SCREEN_OUT}, }; bool TopRowKeysAreFunctionKeys(Profile* profile) {
diff --git a/chrome/browser/ui/webui/chromeos/keyboard_overlay_ui_browsertest.cc b/chrome/browser/ui/webui/chromeos/keyboard_overlay_ui_browsertest.cc new file mode 100644 index 0000000..99eedb3c --- /dev/null +++ b/chrome/browser/ui/webui/chromeos/keyboard_overlay_ui_browsertest.cc
@@ -0,0 +1,124 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/accelerators/accelerator_table.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/common/url_constants.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "content/public/browser/web_contents.h" +#include "content/public/browser/web_ui_message_handler.h" +#include "content/public/test/browser_test_utils.h" +#include "ui/events/keycodes/keyboard_code_conversion.h" + +namespace { + +class TestWebUIMessageHandler : public content::WebUIMessageHandler { + public: + TestWebUIMessageHandler() = default; + ~TestWebUIMessageHandler() override = default; + + // content::WebUIMessageHandler: + void RegisterMessages() override { + web_ui()->RegisterMessageCallback( + "didPaint", base::Bind(&TestWebUIMessageHandler::HandleDidPaint, + base::Unretained(this))); + } + + private: + void HandleDidPaint(const base::ListValue*) {} + + DISALLOW_COPY_AND_ASSIGN(TestWebUIMessageHandler); +}; + +} // namespace + +using KeyboardOverlayUIBrowserTest = InProcessBrowserTest; + +IN_PROC_BROWSER_TEST_F(KeyboardOverlayUIBrowserTest, + ShouldHaveKeyboardOverlay) { + ui_test_utils::NavigateToURL(browser(), + GURL(chrome::kChromeUIKeyboardOverlayURL)); + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + web_contents->GetWebUI()->AddMessageHandler( + base::MakeUnique<TestWebUIMessageHandler>()); + + bool is_display_ui_scaling_enabled; + ASSERT_TRUE(content::ExecuteScriptAndExtractBool( + web_contents, + "domAutomationController.send(isDisplayUIScalingEnabled());", + &is_display_ui_scaling_enabled)); + + for (size_t i = 0; i < ash::kAcceleratorDataLength; ++i) { + const ash::AcceleratorData& entry = ash::kAcceleratorData[i]; + // Skip some accelerators in this test: + // 1. If the accelerator has no modifier, i.e. ui::EF_NONE, or for "Caps + // Lock", such as ui::VKEY_MENU and ui::VKEY_LWIN, the logic to show it on + // the keyboard overlay is not by the mapping of + // keyboardOverlayData['shortcut'], so it can not be tested by this test. + // 2. If it has debug modifiers: ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | + // ui::EF_SHIFT_DOWN + if (entry.keycode == ui::VKEY_MENU || + entry.keycode == ui::VKEY_LWIN || + entry.modifiers == ui::EF_NONE || + entry.modifiers == + (ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN)) { + continue; + } + + std::string shortcut; + ASSERT_TRUE(content::ExecuteScriptAndExtractString( + web_contents, + "domAutomationController.send(" + " (function(number) {" + " if (!!KEYCODE_TO_LABEL[number]) {" + " return KEYCODE_TO_LABEL[number];" + " } else {" + " return 'NONE';" + " }" + " })(" + std::to_string(static_cast<unsigned int>(entry.keycode)) + ")" + ");", + &shortcut)); + if (shortcut == "NONE") { + shortcut = base::ToLowerASCII( + static_cast<char>(LocatedToNonLocatedKeyboardCode(entry.keycode))); + } + + // The order of the "if" conditions should not be changed because the + // modifiers are expected to be alphabetical sorted in the generated + // shortcut. + if (entry.modifiers & ui::EF_ALT_DOWN) + shortcut.append("<>ALT"); + if (entry.modifiers & ui::EF_CONTROL_DOWN) + shortcut.append("<>CTRL"); + if (entry.modifiers & ui::EF_COMMAND_DOWN) + shortcut.append("<>SEARCH"); + if (entry.modifiers & ui::EF_SHIFT_DOWN) + shortcut.append("<>SHIFT"); + + if (!is_display_ui_scaling_enabled) { + if (shortcut == "-<>CTRL<>SHIFT" || shortcut == "+<>CTRL<>SHIFT" || + shortcut == "0<>CTRL<>SHIFT") + continue; + } + + bool contains; + ASSERT_TRUE(content::ExecuteScriptAndExtractBool( + web_contents, + "domAutomationController.send(" + " !!keyboardOverlayData['shortcut']['" + shortcut + "']" + ");", + &contains)); + ASSERT_TRUE(contains) << "Please add the new accelerators to keyboard " + "overlay. Add one entry '" + + shortcut + + "' in the 'shortcut' section" + " at the bottom of the file of " + "'/chrome/browser/resources/chromeos/" + "keyboard_overlay_data.js'. Please keep it in " + "alphabetical order."; + } +}
diff --git a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc index e864c38..6b118ce 100644 --- a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc
@@ -7,13 +7,17 @@ #include <string> #include <utility> +#include "base/command_line.h" #include "base/files/file_path.h" #include "base/sys_info.h" #include "base/task_scheduler/post_task.h" #include "chrome/browser/lifetime/application_lifetime.h" +#include "chromeos/chromeos_switches.h" #include "chromeos/cryptohome/homedir_methods.h" #include "chromeos/dbus/cryptohome_client.h" #include "chromeos/dbus/dbus_thread_manager.h" +#include "chromeos/dbus/power_manager/power_supply_properties.pb.h" +#include "chromeos/dbus/power_manager_client.h" namespace { @@ -25,11 +29,19 @@ // The minimum size of available space to start the migration. constexpr int64_t kMinimumAvailableStorage = 10LL * 1024 * 1024; // 10MB +// The minimum battery level to start the migration. +constexpr double kMinimumBatteryPercent = 30; + // JS API callbacks names. constexpr char kJsApiStartMigration[] = "startMigration"; constexpr char kJsApiSkipMigration[] = "skipMigration"; constexpr char kJsApiRequestRestart[] = "requestRestart"; +bool IsTestingUI() { + return base::CommandLine::ForCurrentProcess()->HasSwitch( + chromeos::switches::kTestEncryptionMigrationUI); +} + } // namespace namespace chromeos { @@ -37,9 +49,11 @@ EncryptionMigrationScreenHandler::EncryptionMigrationScreenHandler() : BaseScreenHandler(kScreenId), weak_ptr_factory_(this) { set_call_js_prefix(kJsScreenPath); + DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); } EncryptionMigrationScreenHandler::~EncryptionMigrationScreenHandler() { + DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); if (delegate_) delegate_->OnViewDestroyed(this); } @@ -69,6 +83,7 @@ void EncryptionMigrationScreenHandler::SetShouldResume(bool should_resume) { should_resume_ = should_resume; + CallJS("setIsResuming", should_resume_); } void EncryptionMigrationScreenHandler::SetContinueLoginCallback( @@ -102,8 +117,23 @@ &EncryptionMigrationScreenHandler::HandleRequestRestart); } +void EncryptionMigrationScreenHandler::PowerChanged( + const power_manager::PowerSupplyProperties& proto) { + current_battery_percent_ = proto.battery_percent(); + CallJS("setBatteryPercent", current_battery_percent_, + current_battery_percent_ >= kMinimumBatteryPercent); + + // If the migration was already requested and the bettery level is enough now, + // The migration should start immediately. + if (current_battery_percent_ >= kMinimumBatteryPercent && + should_migrate_on_enough_battery_) { + should_migrate_on_enough_battery_ = false; + StartMigration(); + } +} + void EncryptionMigrationScreenHandler::HandleStartMigration() { - StartMigration(); + WaitBatteryAndMigrate(); } void EncryptionMigrationScreenHandler::HandleSkipMigration() { @@ -131,6 +161,11 @@ current_ui_state_ = state; CallJS("setUIState", static_cast<int>(state)); + + // When this handler is about to show the READY screen, we should get the + // latest battery status and show it on the screen. + if (state == UIState::READY) + DBusThreadManager::Get()->GetPowerManagerClient()->RequestStatusUpdate(); } void EncryptionMigrationScreenHandler::CheckAvailableStorage() { @@ -145,20 +180,31 @@ } void EncryptionMigrationScreenHandler::OnGetAvailableStorage(int64_t size) { - if (size < kMinimumAvailableStorage) { - UpdateUIState(NOT_ENOUGH_STORAGE); - CallJS("setIsResuming", should_resume_); - } else { + if (size >= kMinimumAvailableStorage || IsTestingUI()) { if (should_resume_) { - // TODO(fukino): Check the battery level. - StartMigration(); + WaitBatteryAndMigrate(); } else { - UpdateUIState(READY); + UpdateUIState(UIState::READY); } + } else { + UpdateUIState(UIState::NOT_ENOUGH_STORAGE); } } +void EncryptionMigrationScreenHandler::WaitBatteryAndMigrate() { + if (current_battery_percent_ >= kMinimumBatteryPercent) { + StartMigration(); + return; + } + UpdateUIState(UIState::READY); + + should_migrate_on_enough_battery_ = true; + DBusThreadManager::Get()->GetPowerManagerClient()->RequestStatusUpdate(); +} + void EncryptionMigrationScreenHandler::StartMigration() { + UpdateUIState(UIState::MIGRATING); + DBusThreadManager::Get() ->GetCryptohomeClient() ->SetDircryptoMigrationProgressHandler( @@ -182,7 +228,6 @@ cryptohome::Authorization(auth_key), base::Bind(&EncryptionMigrationScreenHandler::OnMigrationRequested, weak_ptr_factory_.GetWeakPtr())); - UpdateUIState(UIState::MIGRATING); } void EncryptionMigrationScreenHandler::OnMigrationProgress(
diff --git a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h index c2604b4..b4e9cd6 100644 --- a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h +++ b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h
@@ -8,6 +8,7 @@ #include "base/macros.h" #include "chrome/browser/chromeos/login/screens/encryption_migration_screen_view.h" #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" +#include "chromeos/dbus/power_manager_client.h" #include "chromeos/login/auth/user_context.h" #include "third_party/cros_system_api/dbus/cryptohome/dbus-constants.h" @@ -15,7 +16,8 @@ // WebUI implementation of EncryptionMigrationScreenView class EncryptionMigrationScreenHandler : public EncryptionMigrationScreenView, - public BaseScreenHandler { + public BaseScreenHandler, + public PowerManagerClient::Observer { public: EncryptionMigrationScreenHandler(); ~EncryptionMigrationScreenHandler() override; @@ -49,6 +51,9 @@ // WebUIMessageHandler implementation: void RegisterMessages() override; + // PowerManagerClient::Observer implementation: + void PowerChanged(const power_manager::PowerSupplyProperties& proto) override; + // Handlers for JS API callbacks. void HandleStartMigration(); void HandleSkipMigration(); @@ -60,6 +65,7 @@ // Requests cryptohome to start encryption migration. void CheckAvailableStorage(); void OnGetAvailableStorage(int64_t size); + void WaitBatteryAndMigrate(); void StartMigration(); // Handlers for cryptohome API callbacks. @@ -84,6 +90,13 @@ // True if the system should resume the previous incomplete migration. bool should_resume_ = false; + // The current battery level. + double current_battery_percent_ = 0.0; + + // True if the migration should start immediately once the battery level gets + // sufficient. + bool should_migrate_on_enough_battery_ = false; + base::WeakPtrFactory<EncryptionMigrationScreenHandler> weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(EncryptionMigrationScreenHandler);
diff --git a/chrome/common/pepper_flash.cc b/chrome/common/pepper_flash.cc index 0eb72dd..86d9c6f5 100644 --- a/chrome/common/pepper_flash.cc +++ b/chrome/common/pepper_flash.cc
@@ -102,10 +102,7 @@ base::Version* version_out) { std::string name; manifest.GetStringASCII("name", &name); - // TODO(viettrungluu): Support WinFlapper for now, while we change the format - // of the manifest. (Should be safe to remove checks for "WinFlapper" in, say, - // Nov. 2011.) crbug.com/98458 - if (name != kPepperFlashManifestName && name != "WinFlapper") + if (name != kPepperFlashManifestName) return false; std::string proposed_version; @@ -117,12 +114,6 @@ if (!CheckPepperFlashInterfaces(manifest)) return false; - // TODO(viettrungluu): See above TODO. - if (name == "WinFlapper") { - *version_out = version; - return true; - } - std::string os; manifest.GetStringASCII("x-ppapi-os", &os); if (os != kPepperFlashOperatingSystem)
diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/chrome_render_frame_observer.cc index b566854..366b3941 100644 --- a/chrome/renderer/chrome_render_frame_observer.cc +++ b/chrome/renderer/chrome_render_frame_observer.cc
@@ -82,7 +82,7 @@ if (image.IsNull()) return SkBitmap(); - gfx::Size image_size = image.size(); + gfx::Size image_size = image.Size(); if (image_size.GetArea() < thumbnail_min_area_pixels) return image.GetSkBitmap(); @@ -196,7 +196,7 @@ gfx::Size original_size; if (!context_node.IsNull() && context_node.IsElementNode()) { blink::WebImage image = context_node.To<WebElement>().ImageContents(); - original_size = image.size(); + original_size = image.Size(); thumbnail = Downscale(image, thumbnail_min_area_pixels, thumbnail_max_size_pixels);
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 4b8fc59..42b6979 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -355,6 +355,7 @@ "../browser/autofill/autofill_uitest_util.cc", "../browser/autofill/autofill_uitest_util.h", "../browser/browser_keyevents_browsertest.cc", + "../browser/devtools/devtools_sanity_interactive_browsertest.cc", "../browser/extensions/api/extension_action/browser_action_interactive_test.cc", "../browser/extensions/api/notifications/notifications_apitest.cc", "../browser/extensions/api/omnibox/omnibox_api_interactive_test.cc", @@ -2372,6 +2373,7 @@ "../browser/ui/ash/launcher/arc_app_launcher_browsertest.cc", "../browser/ui/views/arc_app_dialog_view_browsertest.cc", "../browser/ui/views/frame/browser_frame_ash_browsertest.cc", + "../browser/ui/webui/chromeos/keyboard_overlay_ui_browsertest.cc", "../browser/ui/webui/options/chromeos/accounts_options_browsertest.cc", "../browser/ui/webui/options/chromeos/guest_mode_options_browsertest.cc", "../browser/ui/webui/options/chromeos/guest_mode_options_browsertest.h",
diff --git a/chrome/test/data/webui/settings/bluetooth_page_tests.js b/chrome/test/data/webui/settings/bluetooth_page_tests.js index 820f84c..5644558 100644 --- a/chrome/test/data/webui/settings/bluetooth_page_tests.js +++ b/chrome/test/data/webui/settings/bluetooth_page_tests.js
@@ -72,38 +72,41 @@ }); test('MainPage', function() { - assertFalse(bluetoothApi_.adapterState.powered); - assertFalse(bluetoothPage.bluetoothEnabled_); + assertFalse(bluetoothApi_.getAdapterStateForTest().powered); + assertFalse(bluetoothPage.bluetoothToggleState_); // Test that tapping the single settings-box div enables bluetooth. var div = bluetoothPage.$$('div.settings-box'); assertTrue(!!div); MockInteractions.tap(div); - assertTrue(bluetoothPage.bluetoothEnabled_); - assertTrue(bluetoothApi_.adapterState.powered); + assertTrue(bluetoothPage.bluetoothToggleState_); + assertTrue(bluetoothApi_.getAdapterStateForTest().powered); }); suite('SubPage', function() { var subpage; setup(function() { - bluetoothPage.bluetoothEnabled_ = true; + bluetoothApi_.setEnabled(true); + Polymer.dom.flush(); var div = bluetoothPage.$$('div.settings-box'); MockInteractions.tap(div); subpage = bluetoothPage.$$('settings-bluetooth-subpage'); assertTrue(!!subpage); + assertTrue(subpage.bluetoothToggleState); + assertFalse(subpage.bluetoothToggleDisabled); }); test('toggle', function() { - assertTrue(subpage.bluetoothEnabled); + assertTrue(subpage.bluetoothToggleState); var enableButton = subpage.$.enableBluetooth; assertTrue(!!enableButton); assertTrue(enableButton.checked); - subpage.bluetoothEnabled = false; + subpage.bluetoothToggleState = false; assertFalse(enableButton.checked); - assertFalse(bluetoothApi_.adapterState.powered);; - assertFalse(bluetoothPage.bluetoothEnabled_); + assertFalse(bluetoothApi_.getAdapterStateForTest().powered); + assertFalse(bluetoothPage.bluetoothToggleState_); }); test('paired device list', function() {
diff --git a/chrome/test/data/webui/settings/fake_bluetooth.js b/chrome/test/data/webui/settings/fake_bluetooth.js index 8af4983c..e6a5601 100644 --- a/chrome/test/data/webui/settings/fake_bluetooth.js +++ b/chrome/test/data/webui/settings/fake_bluetooth.js
@@ -12,7 +12,7 @@ * @implements {Bluetooth} */ function FakeBluetooth() { - /** @type {!chrome.bluetooth.AdapterState} */ this.adapterState = { + /** @type {!chrome.bluetooth.AdapterState} */ this.adapterState_ = { address: '00:11:22:33:44:55:66', name: 'Fake Adapter', powered: false, @@ -27,8 +27,19 @@ // Public testing methods. /** @param {boolean} enabled */ setEnabled: function(enabled) { - this.adapterState.powered = enabled; - this.onAdapterStateChanged.callListeners(this.adapterState); + this.setAdapterState({powered: enabled}); + }, + + /** @param {!chrome.bluetooth.AdapterState} state*/ + setAdapterState: function(state) { + Object.assign(this.adapterState_, state); + this.onAdapterStateChanged.callListeners( + Object.assign({}, this.adapterState_)); + }, + + /** @return {!chrome.bluetooth.AdapterState} */ + getAdapterStateForTest: function() { + return Object.assign({}, this.adapterState_); }, /** @param {!Array<!chrome.bluetooth.Device>} devices */ @@ -67,7 +78,7 @@ // Bluetooth overrides. /** @override */ getAdapterState: function(callback) { - callback(this.adapterState); + callback(Object.assign({}, this.adapterState_)); }, /** @override */
diff --git a/chrome/test/data/webui/settings/fake_bluetooth_private.js b/chrome/test/data/webui/settings/fake_bluetooth_private.js index efbe7073..d3a3cec5 100644 --- a/chrome/test/data/webui/settings/fake_bluetooth_private.js +++ b/chrome/test/data/webui/settings/fake_bluetooth_private.js
@@ -24,7 +24,7 @@ FakeBluetoothPrivate.prototype = { /** @override */ setAdapterState: function(state, opt_callback) { - this.bluetoothApi_.adapterState = state; + this.bluetoothApi_.setAdapterState(state); if (opt_callback) opt_callback(); },
diff --git a/chrome/test/vr/perf/latency/BUILD.gn b/chrome/test/vr/perf/latency/BUILD.gn new file mode 100644 index 0000000..6e158dd --- /dev/null +++ b/chrome/test/vr/perf/latency/BUILD.gn
@@ -0,0 +1,13 @@ +# 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. + +group("motopho_latency_test") { + testonly = true + data = [ + "./run_latency_test.py", + ] + data_deps = [ + "//chrome/android:chrome_public_apk", + ] +}
diff --git a/chrome/test/vr/perf/latency/run_latency_test.py b/chrome/test/vr/perf/latency/run_latency_test.py new file mode 100644 index 0000000..852b420 --- /dev/null +++ b/chrome/test/vr/perf/latency/run_latency_test.py
@@ -0,0 +1,283 @@ +# 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. + +"""Script for automatically measuring motion-to-photon latency for VR. + +Doing so requires two specialized pieces of hardware. The first is a Motopho, +which when used with a VR flicker app, finds the delay between movement and +the test device's screen updating in response to the movement. The second is +a set of servos, which physically moves the test device and Motopho during the +latency test. +""" + +import argparse +import glob +import httplib +import logging +import os +import re +import serial +import subprocess +import sys +import threading +import time + +# RobotArm connection constants +BAUD_RATE = 115200 +CONNECTION_TIMEOUT = 3.0 +NUM_TRIES = 5 +# Motopho constants +DEFAULT_ADB_PATH = os.path.join(os.path.expanduser('~'), + 'tools/android/android-sdk-linux', + 'platform-tools/adb') +# TODO(bsheedy): See about adding tool via DEPS instead of relying on it +# existing on the bot already +DEFAULT_MOTOPHO_PATH = os.path.join(os.path.expanduser('~'), 'motopho/Motopho') +MOTOPHO_THREAD_TIMEOUT = 30 + +class MotophoThread(threading.Thread): + """Handles the running of the Motopho script and extracting results.""" + def __init__(self): + threading.Thread.__init__(self) + self._latency = None + self._max_correlation = None + + def run(self): + motopho_output = "" + try: + motopho_output = subprocess.check_output(["./motophopro_nograph"], + stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + logging.error('Failed to run Motopho script: %s', e.output) + raise e + + if "FAIL" in motopho_output: + logging.error('Failed to get latency, logging raw output: %s', + motopho_output) + raise RuntimeError('Failed to get latency - correlation likely too low') + + self._latency = None + self._max_correlation = None + for line in motopho_output.split("\n"): + if 'Motion-to-photon latency:' in line: + self._latency = float(line.split(" ")[-2]) + if 'Max correlation is' in line: + self._max_correlation = float(line.split(' ')[-1]) + if self._latency and self._max_correlation: + break; + + @property + def latency(self): + return self._latency + + @property + def max_correlation(self): + return self._max_correlation + + +class RobotArm(): + """Handles the serial communication with the servos/arm used for movement.""" + def __init__(self, device_name, num_tries, baud, timeout): + self._connection = None + connected = False + for _ in xrange(num_tries): + try: + self._connection = serial.Serial('/dev/' + device_name, + baud, + timeout=timeout) + except serial.SerialException as e: + pass + if self._connection and 'Enter parameters' in self._connection.read(1024): + connected = True + break + if not connected: + raise serial.SerialException('Failed to connect to the robot arm.') + + def StartMotophoMovement(self): + if not self._connection: + return + self._connection.write('9\n') + + def StopAllMovement(self): + if not self._connection: + return + self._connection.write('0\n') + + +def GetParsedArgs(): + """Parses the command line arguments passed to the script. + + Fails if any unknown arguments are present. + """ + parser = argparse.ArgumentParser() + parser.add_argument('--adb-path', + type=os.path.realpath, + help='The absolute path to adb', + default=DEFAULT_ADB_PATH) + parser.add_argument('--motopho-path', + type=os.path.realpath, + help='The absolute path to the directory with Motopho ' + 'scripts', + default=DEFAULT_MOTOPHO_PATH) + parser.add_argument('--output-dir', + type=os.path.realpath, + help='The directory where the script\'s output files ' + 'will be saved') + parser.add_argument('-v', '--verbose', + dest='verbose_count', default=0, action='count', + help='Verbose level (multiple times for more)') + (args, unknown_args) = parser.parse_known_args() + SetLogLevel(args.verbose_count) + if unknown_args: + parser.error('Received unknown arguments: %s' % ' '.join(unknown_args)) + return args + + +def SetLogLevel(verbose_count): + """Sets the log level based on the command line arguments.""" + log_level = logging.WARNING + if verbose_count == 1: + log_level = logging.INFO + elif verbose_count >= 2: + log_level = logging.DEBUG + logger = logging.getLogger() + logger.setLevel(log_level) + + +def GetTtyDevices(tty_pattern, vendor_ids): + """Find all devices connected to tty that match a pattern and device id. + + If a serial device is connected to the computer via USB, this function + will check all tty devices that match tty_pattern, and return the ones + that have vendor identification number in the list vendor_ids. + + Args: + tty_pattern: The search pattern, such as r'ttyACM\d+'. + vendor_ids: The list of 16-bit USB vendor ids, such as [0x2a03]. + + Returns: + A list of strings of tty devices, for example ['ttyACM0']. + """ + product_string = 'PRODUCT=' + sys_class_dir = '/sys/class/tty/' + + tty_devices = glob.glob(sys_class_dir + '*') + + matcher = re.compile('.*' + tty_pattern) + tty_matches = [x for x in tty_devices if matcher.search(x)] + tty_matches = [x[len(sys_class_dir):] for x in tty_matches] + + found_devices = [] + for match in tty_matches: + class_filename = sys_class_dir + match + '/device/uevent' + with open(class_filename, 'r') as uevent_file: + # Look for the desired product id in the uevent text. + for line in uevent_file: + if product_string in line: + ids = line[len(product_string):].split('/') + ids = [int(x, 16) for x in ids] + + for desired_id in vendor_ids: + if desired_id in ids: + found_devices.append(match) + + return found_devices + + +def RunCommand(cmd): + """Runs the given cmd list. + + Prints the command's output and exits if any error occurs. + """ + try: + subprocess.check_output(cmd, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + logging.error('Failed command output: %s', e.output) + raise e + + +def SetChromeCommandLineFlags(adb_path, flags): + """Sets the given Chrome command line flags.""" + RunCommand([adb_path, + 'shell', "echo 'chrome " + ' '.join(flags) + "' > " + + '/data/local/tmp/chrome-command-line']) + + +def main(): + args = GetParsedArgs() + + RunCommand([args.adb_path, 'root']) + RunCommand([args.adb_path, 'install', '-r', 'apks/ChromePublic.apk']) + # Force WebVR support and don't have first run experience + SetChromeCommandLineFlags(args.adb_path, ['--enable-webvr', '--disable-fre']) + + # Motopho scripts use relative paths, so switch to the Motopho directory + os.chdir(args.motopho_path) + + # Connect to the Arduino that drives the servos + devices = GetTtyDevices(r'ttyACM\d+', [0x2a03, 0x2341]) + if len(devices) != 1: + logging.error('Found %d devices, expected 1', len(devices)) + return 1 + robot_arm = RobotArm(devices[0], NUM_TRIES, BAUD_RATE, CONNECTION_TIMEOUT) + + # Wake the device + RunCommand([args.adb_path, 'shell', 'input', 'keyevent', 'KEYCODE_WAKEUP']) + # Sleep a bit, otherwise WebGL can crash when Canary starts + time.sleep(1) + + # Start Chrome and go to the flicker app + # TODO(bsheedy): See about having versioned copies of the flicker app instead + # of using personal github. + RunCommand([args.adb_path, 'shell', 'am', 'start', + '-a', 'android.intent.action.MAIN', + '-n', 'org.chromium.chrome/com.google.android.apps.chrome.Main', + 'https://weableandbob.github.io/Motopho/flicker_apps/webvr/webvr-flicker-app-klaus.html?polyfill=0\&canvasClickPresents=1']) + time.sleep(10) + + # Tap the screen to start presenting + RunCommand( + [args.adb_path, 'shell', 'input', 'touchscreen', 'tap', '800', '800']) + # Wait for VR to fully start up + time.sleep(5) + + # Start the Motopho script + motopho_thread = MotophoThread() + motopho_thread.start() + # Let the Motopho be stationary so the script can calculate its bias + time.sleep(3) + + # Move so we can measure latency + robot_arm.StartMotophoMovement() + motopho_thread.join(MOTOPHO_THREAD_TIMEOUT) + if motopho_thread.isAlive(): + # TODO(bsheedy): Look into ways to prevent Motopho from not sending any + # data until unplugged and replugged into the machine after a reboot. + logging.error('Motopho thread timeout, Motopho may need to be replugged.') + robot_arm.StopAllMovement() + + logging.info('Latency: %s', motopho_thread.latency) + logging.info('Max correlation: %s', motopho_thread.max_correlation) + + # TODO(bsheedy): Change this to output JSON compatible with the performance + # dashboard. + if args.output_dir and os.path.isdir(args.output_dir): + with file(os.path.join(args.output_dir, 'output.txt'), 'w') as outfile: + outfile.write('Latency: %s\nMax correlation: %s\n' % + (motopho_thread.latency, motopho_thread.max_correlation)) + + # Exit VR and Close Chrome + # TODO(bsheedy): See about closing current tab before exiting so they don't + # pile up over time. + RunCommand([args.adb_path, 'shell', 'input', 'keyevent', 'KEYCODE_BACK']) + RunCommand([args.adb_path, 'shell', 'am', 'force-stop', + 'org.chromium.chrome']) + + # Turn off the screen + RunCommand([args.adb_path, 'shell', 'input', 'keyevent', 'KEYCODE_POWER']) + + return 0 + +if __name__ == '__main__': + sys.exit(main())
diff --git a/components/chrome_cleaner/public/interfaces/chrome_prompt.mojom b/components/chrome_cleaner/public/interfaces/chrome_prompt.mojom index 04d986e..7458a8e 100644 --- a/components/chrome_cleaner/public/interfaces/chrome_prompt.mojom +++ b/components/chrome_cleaner/public/interfaces/chrome_prompt.mojom
@@ -30,6 +30,13 @@ array<string> files_to_delete; }; +// Indicates if elevation will be required for cleanup. +[Extensible] +enum ElevationStatus { + NOT_REQUIRED = 0, + REQUIRED = 1, +}; + [Extensible] enum PromptAcceptance { UNSPECIFIED = 0, @@ -55,11 +62,11 @@ interface ChromePrompt { // Params: // - removable_uws_found: the list of UwS detected by the reporter; - // - elevation_required: if the cleaner will need to run in elevated mode. + // - elevation_status: if the cleaner will need to run in elevated mode. // Returns: // - prompt_acceptance: indicates if the user accepted the prompt; if the // prompt is accepted, it also indicates if logs // uploading is allowed. - PromptUser(array<UwS> removable_uws_found, bool elevation_required) + PromptUser(array<UwS> removable_uws_found, ElevationStatus elevation_status) => (PromptAcceptance prompt_acceptance); };
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc index bbfef49..04280b0 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc
@@ -705,6 +705,44 @@ void DataReductionProxyCompressionStats::ClearDataSavingStatistics() { DeleteHistoricalDataUsage(); + pref_service_->ClearPref(prefs::kDailyHttpContentLengthLastUpdateDate); + pref_service_->ClearPref(prefs::kHttpReceivedContentLength); + pref_service_->ClearPref(prefs::kHttpOriginalContentLength); + + pref_service_->ClearPref(prefs::kDailyHttpOriginalContentLengthApplication); + pref_service_->ClearPref(prefs::kDailyHttpOriginalContentLengthVideo); + pref_service_->ClearPref(prefs::kDailyHttpOriginalContentLengthUnknown); + pref_service_->ClearPref(prefs::kDailyHttpReceivedContentLengthApplication); + pref_service_->ClearPref(prefs::kDailyHttpReceivedContentLengthVideo); + pref_service_->ClearPref(prefs::kDailyHttpReceivedContentLengthUnknown); + + pref_service_->ClearPref( + prefs::kDailyOriginalContentLengthViaDataReductionProxyApplication); + pref_service_->ClearPref( + prefs::kDailyOriginalContentLengthViaDataReductionProxyVideo); + pref_service_->ClearPref( + prefs::kDailyOriginalContentLengthViaDataReductionProxyUnknown); + pref_service_->ClearPref( + prefs::kDailyContentLengthViaDataReductionProxyApplication); + pref_service_->ClearPref( + prefs::kDailyContentLengthViaDataReductionProxyVideo); + pref_service_->ClearPref( + prefs::kDailyContentLengthViaDataReductionProxyUnknown); + + pref_service_->ClearPref( + prefs:: + kDailyOriginalContentLengthWithDataReductionProxyEnabledApplication); + pref_service_->ClearPref( + prefs::kDailyOriginalContentLengthWithDataReductionProxyEnabledVideo); + pref_service_->ClearPref( + prefs::kDailyOriginalContentLengthWithDataReductionProxyEnabledUnknown); + pref_service_->ClearPref( + prefs::kDailyContentLengthWithDataReductionProxyEnabledApplication); + pref_service_->ClearPref( + prefs::kDailyContentLengthWithDataReductionProxyEnabledVideo); + pref_service_->ClearPref( + prefs::kDailyContentLengthWithDataReductionProxyEnabledUnknown); + pref_service_->ClearPref( prefs::kDailyContentLengthHttpsWithDataReductionProxyEnabled); pref_service_->ClearPref(
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc index 3629386e..e9a5338 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc
@@ -226,17 +226,20 @@ // Verify the pref list values are equal to the given values. // If the count of values is less than kNumDaysInHistory, zeros are assumed // at the beginning. - void VerifyPrefList(const char* pref, const int64_t* values, size_t count) { - ASSERT_GE(kNumDaysInHistory, count); + void VerifyPrefList(const char* pref, + const int64_t* values, + size_t count, + size_t num_days_in_history) { + ASSERT_GE(num_days_in_history, count); base::ListValue* update = compression_stats_->GetList(pref); - ASSERT_EQ(kNumDaysInHistory, update->GetSize()) << "Pref: " << pref; + ASSERT_EQ(num_days_in_history, update->GetSize()) << "Pref: " << pref; for (size_t i = 0; i < count; ++i) { EXPECT_EQ(values[i], - GetListPrefInt64Value(*update, kNumDaysInHistory - count + i)) - << pref << "; index=" << (kNumDaysInHistory - count + i); + GetListPrefInt64Value(*update, num_days_in_history - count + i)) + << pref << "; index=" << (num_days_in_history - count + i); } - for (size_t i = 0; i < kNumDaysInHistory - count; ++i) { + for (size_t i = 0; i < num_days_in_history - count; ++i) { EXPECT_EQ(0, GetListPrefInt64Value(*update, i)) << "index=" << i; } } @@ -259,31 +262,31 @@ const int64_t* original_via_data_reduction_proxy_values, size_t original_via_data_reduction_proxy_count, const int64_t* received_via_data_reduction_proxy_values, - size_t received_via_data_reduction_proxy_count) { + size_t received_via_data_reduction_proxy_count, + size_t num_days_in_history) { VerifyPrefList(data_reduction_proxy::prefs::kDailyHttpOriginalContentLength, - original_values, original_count); + original_values, original_count, num_days_in_history); VerifyPrefList(data_reduction_proxy::prefs::kDailyHttpReceivedContentLength, - received_values, received_count); + received_values, received_count, num_days_in_history); + VerifyPrefList(data_reduction_proxy::prefs:: + kDailyOriginalContentLengthWithDataReductionProxyEnabled, + original_with_data_reduction_proxy_enabled_values, + original_with_data_reduction_proxy_enabled_count, + num_days_in_history); + VerifyPrefList(data_reduction_proxy::prefs:: + kDailyContentLengthWithDataReductionProxyEnabled, + received_with_data_reduction_proxy_enabled_values, + received_with_data_reduction_proxy_count, + num_days_in_history); + VerifyPrefList(data_reduction_proxy::prefs:: + kDailyOriginalContentLengthViaDataReductionProxy, + original_via_data_reduction_proxy_values, + original_via_data_reduction_proxy_count, + num_days_in_history); VerifyPrefList( - data_reduction_proxy::prefs:: - kDailyOriginalContentLengthWithDataReductionProxyEnabled, - original_with_data_reduction_proxy_enabled_values, - original_with_data_reduction_proxy_enabled_count); - VerifyPrefList( - data_reduction_proxy::prefs:: - kDailyContentLengthWithDataReductionProxyEnabled, - received_with_data_reduction_proxy_enabled_values, - received_with_data_reduction_proxy_count); - VerifyPrefList( - data_reduction_proxy::prefs:: - kDailyOriginalContentLengthViaDataReductionProxy, - original_via_data_reduction_proxy_values, - original_via_data_reduction_proxy_count); - VerifyPrefList( - data_reduction_proxy::prefs:: - kDailyContentLengthViaDataReductionProxy, + data_reduction_proxy::prefs::kDailyContentLengthViaDataReductionProxy, received_via_data_reduction_proxy_values, - received_via_data_reduction_proxy_count); + received_via_data_reduction_proxy_count, num_days_in_history); VerifyPrefInt64( data_reduction_proxy::prefs::kDailyHttpOriginalContentLengthApplication, @@ -341,39 +344,39 @@ const int64_t* unknown_with_data_reduction_proxy_enabled_values, size_t unknown_with_data_reduction_proxy_enabled_count) { VerifyPrefList(data_reduction_proxy::prefs::kDailyHttpOriginalContentLength, - original_values, original_count); + original_values, original_count, kNumDaysInHistory); VerifyPrefList(data_reduction_proxy::prefs::kDailyHttpReceivedContentLength, - received_values, received_count); - VerifyPrefList( - data_reduction_proxy::prefs:: - kDailyOriginalContentLengthWithDataReductionProxyEnabled, - original_with_data_reduction_proxy_enabled_values, - original_with_data_reduction_proxy_enabled_count); - VerifyPrefList( - data_reduction_proxy::prefs:: - kDailyContentLengthWithDataReductionProxyEnabled, - received_with_data_reduction_proxy_enabled_values, - received_with_data_reduction_proxy_count); - VerifyPrefList( - data_reduction_proxy::prefs:: - kDailyContentLengthHttpsWithDataReductionProxyEnabled, - https_with_data_reduction_proxy_enabled_values, - https_with_data_reduction_proxy_enabled_count); + received_values, received_count, kNumDaysInHistory); + VerifyPrefList(data_reduction_proxy::prefs:: + kDailyOriginalContentLengthWithDataReductionProxyEnabled, + original_with_data_reduction_proxy_enabled_values, + original_with_data_reduction_proxy_enabled_count, + kNumDaysInHistory); + VerifyPrefList(data_reduction_proxy::prefs:: + kDailyContentLengthWithDataReductionProxyEnabled, + received_with_data_reduction_proxy_enabled_values, + received_with_data_reduction_proxy_count, kNumDaysInHistory); + VerifyPrefList(data_reduction_proxy::prefs:: + kDailyContentLengthHttpsWithDataReductionProxyEnabled, + https_with_data_reduction_proxy_enabled_values, + https_with_data_reduction_proxy_enabled_count, + kNumDaysInHistory); VerifyPrefList( data_reduction_proxy::prefs:: kDailyContentLengthShortBypassWithDataReductionProxyEnabled, short_bypass_with_data_reduction_proxy_enabled_values, - short_bypass_with_data_reduction_proxy_enabled_count); + short_bypass_with_data_reduction_proxy_enabled_count, + kNumDaysInHistory); VerifyPrefList( data_reduction_proxy::prefs:: kDailyContentLengthLongBypassWithDataReductionProxyEnabled, long_bypass_with_data_reduction_proxy_enabled_values, - long_bypass_with_data_reduction_proxy_enabled_count); - VerifyPrefList( - data_reduction_proxy::prefs:: - kDailyContentLengthUnknownWithDataReductionProxyEnabled, - unknown_with_data_reduction_proxy_enabled_values, - unknown_with_data_reduction_proxy_enabled_count); + long_bypass_with_data_reduction_proxy_enabled_count, kNumDaysInHistory); + VerifyPrefList(data_reduction_proxy::prefs:: + kDailyContentLengthUnknownWithDataReductionProxyEnabled, + unknown_with_data_reduction_proxy_enabled_values, + unknown_with_data_reduction_proxy_enabled_count, + kNumDaysInHistory); } int64_t GetInt64(const char* pref_path) { @@ -432,6 +435,10 @@ compression_stats_->DeleteHistoricalDataUsage(); } + void ClearDataSavingStatistics() { + compression_stats_->ClearDataSavingStatistics(); + } + void DeleteBrowsingHistory(const base::Time& start, const base::Time& end) { compression_stats_->DeleteBrowsingHistory(start, end); } @@ -594,9 +601,8 @@ FakeNow()); VerifyDailyDataSavingContentLengthPrefLists( - original, 1, received, 1, - original, 1, received, 1, - original, 1, received, 1); + original, 1, received, 1, original, 1, received, 1, original, 1, received, + 1, kNumDaysInHistory); } TEST_F(DataReductionProxyCompressionStatsTest, MultipleResponses) { @@ -606,9 +612,9 @@ int64_t received[] = {kReceivedLength}; RecordContentLengthPrefs( kReceivedLength, kOriginalLength, false, UNKNOWN_TYPE, FakeNow()); - VerifyDailyDataSavingContentLengthPrefLists( - original, 1, received, 1, - NULL, 0, NULL, 0, NULL, 0, NULL, 0); + VerifyDailyDataSavingContentLengthPrefLists(original, 1, received, 1, NULL, 0, + NULL, 0, NULL, 0, NULL, 0, + kNumDaysInHistory); RecordContentLengthPrefs( kReceivedLength, kOriginalLength, true, UNKNOWN_TYPE, FakeNow()); @@ -617,9 +623,8 @@ int64_t original_proxy_enabled[] = {kOriginalLength}; int64_t received_proxy_enabled[] = {kReceivedLength}; VerifyDailyDataSavingContentLengthPrefLists( - original, 1, received, 1, - original_proxy_enabled, 1, received_proxy_enabled, 1, - NULL, 0, NULL, 0); + original, 1, received, 1, original_proxy_enabled, 1, + received_proxy_enabled, 1, NULL, 0, NULL, 0, kNumDaysInHistory); RecordContentLengthPrefs( kReceivedLength, kOriginalLength, true, VIA_DATA_REDUCTION_PROXY, @@ -631,9 +636,9 @@ int64_t original_via_proxy[] = {kOriginalLength}; int64_t received_via_proxy[] = {kReceivedLength}; VerifyDailyDataSavingContentLengthPrefLists( - original, 1, received, 1, - original_proxy_enabled, 1, received_proxy_enabled, 1, - original_via_proxy, 1, received_via_proxy, 1); + original, 1, received, 1, original_proxy_enabled, 1, + received_proxy_enabled, 1, original_via_proxy, 1, received_via_proxy, 1, + kNumDaysInHistory); RecordContentLengthPrefs( kReceivedLength, kOriginalLength, true, UNKNOWN_TYPE, FakeNow()); @@ -642,18 +647,18 @@ original_proxy_enabled[0] += kOriginalLength; received_proxy_enabled[0] += kReceivedLength; VerifyDailyDataSavingContentLengthPrefLists( - original, 1, received, 1, - original_proxy_enabled, 1, received_proxy_enabled, 1, - original_via_proxy, 1, received_via_proxy, 1); + original, 1, received, 1, original_proxy_enabled, 1, + received_proxy_enabled, 1, original_via_proxy, 1, received_via_proxy, 1, + kNumDaysInHistory); RecordContentLengthPrefs( kReceivedLength, kOriginalLength, false, UNKNOWN_TYPE, FakeNow()); original[0] += kOriginalLength; received[0] += kReceivedLength; VerifyDailyDataSavingContentLengthPrefLists( - original, 1, received, 1, - original_proxy_enabled, 1, received_proxy_enabled, 1, - original_via_proxy, 1, received_via_proxy, 1); + original, 1, received, 1, original_proxy_enabled, 1, + received_proxy_enabled, 1, original_via_proxy, 1, received_via_proxy, 1, + kNumDaysInHistory); } TEST_F(DataReductionProxyCompressionStatsTest, RequestType) { @@ -761,12 +766,10 @@ int64_t original_via_data_reduction_proxy[] = {kOriginalLength, 0}; int64_t received_via_data_reduction_proxy[] = {kReceivedLength, 0}; VerifyDailyDataSavingContentLengthPrefLists( - original, 2, - received, 2, - original_with_data_reduction_proxy_enabled, 2, + original, 2, received, 2, original_with_data_reduction_proxy_enabled, 2, received_with_data_reduction_proxy_enabled, 2, - original_via_data_reduction_proxy, 2, - received_via_data_reduction_proxy, 2); + original_via_data_reduction_proxy, 2, received_via_data_reduction_proxy, + 2, kNumDaysInHistory); // Proxy enabled. Not via proxy. RecordContentLengthPrefs( @@ -776,12 +779,10 @@ original_with_data_reduction_proxy_enabled[1] += kOriginalLength; received_with_data_reduction_proxy_enabled[1] += kReceivedLength; VerifyDailyDataSavingContentLengthPrefLists( - original, 2, - received, 2, - original_with_data_reduction_proxy_enabled, 2, + original, 2, received, 2, original_with_data_reduction_proxy_enabled, 2, received_with_data_reduction_proxy_enabled, 2, - original_via_data_reduction_proxy, 2, - received_via_data_reduction_proxy, 2); + original_via_data_reduction_proxy, 2, received_via_data_reduction_proxy, + 2, kNumDaysInHistory); // Proxy enabled and via proxy. RecordContentLengthPrefs( @@ -794,12 +795,10 @@ original_via_data_reduction_proxy[1] += kOriginalLength; received_via_data_reduction_proxy[1] += kReceivedLength; VerifyDailyDataSavingContentLengthPrefLists( - original, 2, - received, 2, - original_with_data_reduction_proxy_enabled, 2, + original, 2, received, 2, original_with_data_reduction_proxy_enabled, 2, received_with_data_reduction_proxy_enabled, 2, - original_via_data_reduction_proxy, 2, - received_via_data_reduction_proxy, 2); + original_via_data_reduction_proxy, 2, received_via_data_reduction_proxy, + 2, kNumDaysInHistory); // Proxy enabled and via proxy, with content length greater than max int32_t. const int64_t kBigOriginalLength = 0x300000000LL; // 12G. @@ -816,7 +815,7 @@ original, 2, received, 2, original_with_data_reduction_proxy_enabled, 2, received_with_data_reduction_proxy_enabled, 2, original_via_data_reduction_proxy, 2, received_via_data_reduction_proxy, - 2); + 2, kNumDaysInHistory); } TEST_F(DataReductionProxyCompressionStatsTest, PartialDayTimeChange) { @@ -829,9 +828,8 @@ kReceivedLength, kOriginalLength, true, VIA_DATA_REDUCTION_PROXY, FakeNow()); VerifyDailyDataSavingContentLengthPrefLists( - original, 2, received, 2, - original, 2, received, 2, - original, 2, received, 2); + original, 2, received, 2, original, 2, received, 2, original, 2, received, + 2, kNumDaysInHistory); // Forward 10 hours, stay in the same day. // See kLastUpdateTime: "Now" in test is 03:45am. @@ -842,9 +840,8 @@ original[1] += kOriginalLength; received[1] += kReceivedLength; VerifyDailyDataSavingContentLengthPrefLists( - original, 2, received, 2, - original, 2, received, 2, - original, 2, received, 2); + original, 2, received, 2, original, 2, received, 2, original, 2, received, + 2, kNumDaysInHistory); // Forward 11 more hours, comes to tomorrow. AddFakeTimeDeltaInHours(11); @@ -854,9 +851,8 @@ int64_t original2[] = {kOriginalLength * 2, kOriginalLength}; int64_t received2[] = {kReceivedLength * 2, kReceivedLength}; VerifyDailyDataSavingContentLengthPrefLists( - original2, 2, received2, 2, - original2, 2, received2, 2, - original2, 2, received2, 2); + original2, 2, received2, 2, original2, 2, received2, 2, original2, 2, + received2, 2, kNumDaysInHistory); } TEST_F(DataReductionProxyCompressionStatsTest, ForwardMultipleDays) { @@ -881,9 +877,8 @@ int64_t original[] = {kOriginalLength, 0, 0, kOriginalLength}; int64_t received[] = {kReceivedLength, 0, 0, kReceivedLength}; VerifyDailyDataSavingContentLengthPrefLists( - original, 4, received, 4, - original, 4, received, 4, - original, 4, received, 4); + original, 4, received, 4, original, 4, received, 4, original, 4, received, + 4, kNumDaysInHistory); // Forward four more days. AddFakeTimeDeltaInHours(4 * 24); @@ -897,9 +892,8 @@ kReceivedLength, 0, 0, kReceivedLength, 0, 0, 0, kReceivedLength, }; VerifyDailyDataSavingContentLengthPrefLists( - original2, 8, received2, 8, - original2, 8, received2, 8, - original2, 8, received2, 8); + original2, 8, received2, 8, original2, 8, received2, 8, original2, 8, + received2, 8, kNumDaysInHistory); histogram_tester.ExpectUniqueSample( "DataReductionProxy.SavingsCleared.NegativeSystemClock", false, 3); @@ -911,9 +905,8 @@ int64_t original3[] = {kOriginalLength}; int64_t received3[] = {kReceivedLength}; VerifyDailyDataSavingContentLengthPrefLists( - original3, 1, received3, 1, - original3, 1, received3, 1, - original3, 1, received3, 1); + original3, 1, received3, 1, original3, 1, received3, 1, original3, 1, + received3, 1, kNumDaysInHistory); histogram_tester.ExpectUniqueSample( "DataReductionProxy.SavingsCleared.NegativeSystemClock", false, 4); @@ -923,9 +916,8 @@ kReceivedLength, kOriginalLength, true, VIA_DATA_REDUCTION_PROXY, FakeNow()); VerifyDailyDataSavingContentLengthPrefLists( - original3, 1, received3, 1, - original3, 1, received3, 1, - original3, 1, received3, 1); + original3, 1, received3, 1, original3, 1, received3, 1, original3, 1, + received3, 1, kNumDaysInHistory); histogram_tester.ExpectUniqueSample( "DataReductionProxy.SavingsCleared.NegativeSystemClock", false, 5); } @@ -951,9 +943,8 @@ original[0] += kOriginalLength; received[0] += kReceivedLength; VerifyDailyDataSavingContentLengthPrefLists( - original, 1, received, 1, - original, 1, received, 1, - original, 1, received, 1); + original, 1, received, 1, original, 1, received, 1, original, 1, received, + 1, kNumDaysInHistory); histogram_tester.ExpectUniqueSample( "DataReductionProxy.SavingsCleared.NegativeSystemClock", false, 2); @@ -965,9 +956,8 @@ int64_t original2[] = {kOriginalLength * 2, kOriginalLength}; int64_t received2[] = {kReceivedLength * 2, kReceivedLength}; VerifyDailyDataSavingContentLengthPrefLists( - original2, 2, received2, 2, - original2, 2, received2, 2, - original2, 2, received2, 2); + original2, 2, received2, 2, original2, 2, received2, 2, original2, 2, + received2, 2, kNumDaysInHistory); histogram_tester.ExpectUniqueSample( "DataReductionProxy.SavingsCleared.NegativeSystemClock", false, 3); } @@ -991,9 +981,8 @@ kReceivedLength, kOriginalLength, true, VIA_DATA_REDUCTION_PROXY, FakeNow()); VerifyDailyDataSavingContentLengthPrefLists( - original, 1, received, 1, - original, 1, received, 1, - original, 1, received, 1); + original, 1, received, 1, original, 1, received, 1, original, 1, received, + 1, kNumDaysInHistory); histogram_tester.ExpectTotalCount( "DataReductionProxy.SavingsCleared.NegativeSystemClock", 2); histogram_tester.ExpectBucketCount( @@ -1339,4 +1328,45 @@ base::RunLoop().RunUntilIdle(); } +TEST_F(DataReductionProxyCompressionStatsTest, ClearDataSavingStatistics) { + EnableDataUsageReporting(); + base::RunLoop().RunUntilIdle(); + + base::Time now = base::Time::Now(); + base::Time fifteen_mins_ago = now - TimeDelta::FromMinutes(15); + // Fake record to be from 15 minutes ago so that it is flushed to storage. + RecordDataUsage("https://www.bar.com", 900, 1100, fifteen_mins_ago); + + RecordDataUsage("https://www.foo.com", 1000, 1250, now); + + const int64_t kOriginalLength = 200; + const int64_t kReceivedLength = 100; + int64_t original[] = {kOriginalLength}; + int64_t received[] = {kReceivedLength}; + + RecordContentLengthPrefs(kReceivedLength, kOriginalLength, true, + VIA_DATA_REDUCTION_PROXY, FakeNow()); + + VerifyDailyDataSavingContentLengthPrefLists( + original, 1, received, 1, original, 1, received, 1, original, 1, received, + 1, kNumDaysInHistory); + + ClearDataSavingStatistics(); + base::RunLoop().RunUntilIdle(); + + auto expected_data_usage = + base::MakeUnique<std::vector<data_reduction_proxy::DataUsageBucket>>( + kNumExpectedBuckets); + DataUsageLoadVerifier verifier(std::move(expected_data_usage)); + + GetHistoricalDataUsage(base::Bind(&DataUsageLoadVerifier::OnLoadDataUsage, + base::Unretained(&verifier)), + now); + base::RunLoop().RunUntilIdle(); + + VerifyDailyDataSavingContentLengthPrefLists(nullptr, 0, nullptr, 0, nullptr, + 0, nullptr, 0, nullptr, 0, + nullptr, 0, 0); +} + } // namespace data_reduction_proxy
diff --git a/components/exo/shell_surface.cc b/components/exo/shell_surface.cc index 7fe5345..85a41b8 100644 --- a/components/exo/shell_surface.cc +++ b/components/exo/shell_surface.cc
@@ -1195,8 +1195,7 @@ // Allow the client to request bounds that do not fill the entire work area // when maximized, or the entire display when fullscreen. - window_state->set_allow_set_bounds_in_maximized( - bounds_mode_ == BoundsMode::CLIENT); + window_state->set_allow_set_bounds_direct(bounds_mode_ == BoundsMode::CLIENT); // Notify client of initial state if different than normal. if (window_state->GetStateType() != ash::wm::WINDOW_STATE_TYPE_NORMAL && @@ -1473,7 +1472,7 @@ ash::wm::WindowState* window_state = ash::wm::GetWindowState(widget_->GetNativeWindow()); if (window_state->IsMaximizedOrFullscreenOrPinned() && - !window_state->allow_set_bounds_in_maximized()) { + !window_state->allow_set_bounds_direct()) { return; } @@ -1642,7 +1641,7 @@ // not cover the entire background, e.g. overview mode). if ((widget_->IsFullscreen() || widget_->IsMaximized() || underlay_capture_events) && - ash::wm::GetWindowState(window)->allow_set_bounds_in_maximized() && + ash::wm::GetWindowState(window)->allow_set_bounds_direct() && window->layer()->GetTargetTransform().IsIdentity()) { if (shadow_underlay_in_surface_) { shadow_underlay_bounds = gfx::Rect(surface_->window()->bounds().size());
diff --git a/components/printing/renderer/print_web_view_helper.cc b/components/printing/renderer/print_web_view_helper.cc index 70147aba..7f22427 100644 --- a/components/printing/renderer/print_web_view_helper.cc +++ b/components/printing/renderer/print_web_view_helper.cc
@@ -762,7 +762,7 @@ if (web_frame->IsWebLocalFrame()) prev_scroll_offset_ = web_frame->GetScrollOffset(); } - prev_view_size_ = web_view->size(); + prev_view_size_ = web_view->Size(); web_view->Resize(print_layout_size); }
diff --git a/components/safe_browsing/csd.proto b/components/safe_browsing/csd.proto index 04316444..023abe4 100644 --- a/components/safe_browsing/csd.proto +++ b/components/safe_browsing/csd.proto
@@ -248,19 +248,8 @@ // a substring of page_url. optional string cache_expression = 3; - // If set true, we match target URL with cache expression up to both of their - // last /'s. - // - // Examples: - // If set true, a cache_expression "foo.com/bar" will match - // "foo.com/bar", - // "foo.com/bar/bar.cgi", - // "foo.com/bar/login.html?param=val", - // but will NOT match - // "foo.com", - // "foo.com/abc/", - // "foo.com/bar/abc/edf.cgi" - optional bool cache_expression_exact_match = 4; + // Deprecated. + optional bool DEPRECATED_cache_expression_exact_match = 4 [deprecated = true]; } message ClientMalwareResponse {
diff --git a/components/safe_browsing/password_protection/password_protection_service.cc b/components/safe_browsing/password_protection/password_protection_service.cc index 1190cde..3aee7ac 100644 --- a/components/safe_browsing/password_protection/password_protection_service.cc +++ b/components/safe_browsing/password_protection/password_protection_service.cc
@@ -131,7 +131,7 @@ std::vector<std::string> paths; GeneratePathVariantsWithoutQuery(url, &paths); - size_t max_path_depth = 0U; + int max_path_depth = -1; LoginReputationClientResponse::VerdictType most_matching_verdict = LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED; // For all the verdicts of the same origin, we key them by |cache_expression|. @@ -150,28 +150,18 @@ std::string cache_expression_path = GetCacheExpressionPath(verdict.cache_expression()); - if (verdict.cache_expression_exact_match()) { - if (PathMatchCacheExpressionExactly(paths, cache_expression_path)) { - if (!IsCacheExpired(verdict_received_time, - verdict.cache_duration_sec())) { - out_response->CopyFrom(verdict); - return verdict.verdict_type(); - } else { // verdict expired - return LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED; - } - } - } else { - // If it doesn't require exact match, we need to find the most specific - // match. - size_t path_depth = GetPathDepth(cache_expression_path); - if (path_depth > max_path_depth && - PathVariantsMatchCacheExpression(paths, cache_expression_path) && - !IsCacheExpired(verdict_received_time, - verdict.cache_duration_sec())) { - max_path_depth = path_depth; - most_matching_verdict = verdict.verdict_type(); - out_response->CopyFrom(verdict); - } + // Finds the most specific match. + int path_depth = static_cast<int>(GetPathDepth(cache_expression_path)); + if (path_depth > max_path_depth && + PathVariantsMatchCacheExpression(paths, cache_expression_path)) { + max_path_depth = path_depth; + // If the most matching verdict is expired, set the result to + // VERDICT_TYPE_UNSPECIFIED. + most_matching_verdict = + IsCacheExpired(verdict_received_time, verdict.cache_duration_sec()) + ? LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED + : verdict.verdict_type(); + out_response->CopyFrom(verdict); } } return most_matching_verdict; @@ -374,26 +364,12 @@ return out_verdict->ParseFromString(serialized_verdict_proto); } -bool PasswordProtectionService::PathMatchCacheExpressionExactly( - const std::vector<std::string>& generated_paths, - const std::string& cache_expression_path) { - size_t cache_expression_path_depth = GetPathDepth(cache_expression_path); - if (generated_paths.size() <= cache_expression_path_depth) { - return false; - } - std::string canonical_path = generated_paths.back(); - size_t last_slash_pos = canonical_path.find_last_of("/"); - DCHECK_NE(std::string::npos, last_slash_pos); - return canonical_path.substr(0, last_slash_pos + 1) == cache_expression_path; -} - bool PasswordProtectionService::PathVariantsMatchCacheExpression( const std::vector<std::string>& generated_paths, const std::string& cache_expression_path) { for (const auto& path : generated_paths) { - if (cache_expression_path == path) { + if (cache_expression_path == path) return true; - } } return false; }
diff --git a/components/safe_browsing/password_protection/password_protection_service.h b/components/safe_browsing/password_protection/password_protection_service.h index 327bace..d025871 100644 --- a/components/safe_browsing/password_protection/password_protection_service.h +++ b/components/safe_browsing/password_protection/password_protection_service.h
@@ -129,8 +129,6 @@ FRIEND_TEST_ALL_PREFIXES(PasswordProtectionServiceTest, TestPathVariantsMatchCacheExpression); FRIEND_TEST_ALL_PREFIXES(PasswordProtectionServiceTest, - TestPathMatchCacheExpressionExactly); - FRIEND_TEST_ALL_PREFIXES(PasswordProtectionServiceTest, TestCleanUpCachedVerdicts); // Overridden from history::HistoryServiceObserver. @@ -152,10 +150,6 @@ int* out_verdict_received_time, LoginReputationClientResponse* out_verdict); - static bool PathMatchCacheExpressionExactly( - const std::vector<std::string>& generated_paths, - const std::string& cache_expression_path); - static bool PathVariantsMatchCacheExpression( const std::vector<std::string>& generated_paths, const std::string& cache_expression_path);
diff --git a/components/safe_browsing/password_protection/password_protection_service_unittest.cc b/components/safe_browsing/password_protection/password_protection_service_unittest.cc index 022fa2c..e792f617c 100644 --- a/components/safe_browsing/password_protection/password_protection_service_unittest.cc +++ b/components/safe_browsing/password_protection/password_protection_service_unittest.cc
@@ -115,13 +115,11 @@ LoginReputationClientResponse CreateVerdictProto( LoginReputationClientResponse::VerdictType verdict, int cache_duration_sec, - const std::string& cache_expression, - bool exact_match) { + const std::string& cache_expression) { LoginReputationClientResponse verdict_proto; verdict_proto.set_verdict_type(verdict); verdict_proto.set_cache_duration_sec(cache_duration_sec); verdict_proto.set_cache_expression(cache_expression); - verdict_proto.set_cache_expression_exact_match(exact_match); return verdict_proto; } @@ -162,23 +160,13 @@ PasswordProtectionService::GetCacheExpressionPath(cache_expression)); } - bool PathMatchCacheExpressionExactly(const GURL& url, - const std::string& cache_expression) { - std::vector<std::string> paths; - PasswordProtectionService::GeneratePathVariantsWithoutQuery(url, &paths); - return PasswordProtectionService::PathMatchCacheExpressionExactly( - paths, - PasswordProtectionService::GetCacheExpressionPath(cache_expression)); - } - void CacheVerdict(const GURL& url, LoginReputationClientResponse::VerdictType verdict, int cache_duration_sec, const std::string& cache_expression, - bool exact_match, const base::Time& verdict_received_time) { - LoginReputationClientResponse response(CreateVerdictProto( - verdict, cache_duration_sec, cache_expression, exact_match)); + LoginReputationClientResponse response( + CreateVerdictProto(verdict, cache_duration_sec, cache_expression)); password_protection_service_->CacheVerdict(url, &response, verdict_received_time); } @@ -250,7 +238,7 @@ TEST_F(PasswordProtectionServiceTest, TestParseValidVerdictEntry) { base::Time expected_creation_time = base::Time::Now(); LoginReputationClientResponse expected_verdict(CreateVerdictProto( - LoginReputationClientResponse::SAFE, 10 * 60, "test.com/foo", true)); + LoginReputationClientResponse::SAFE, 10 * 60, "test.com/foo")); std::unique_ptr<base::DictionaryValue> valid_verdict_entry = PasswordProtectionService::CreateDictionaryFromVerdict( &expected_verdict, expected_creation_time); @@ -267,8 +255,6 @@ EXPECT_EQ(expected_verdict.verdict_type(), actual_verdict.verdict_type()); EXPECT_EQ(expected_verdict.cache_expression(), actual_verdict.cache_expression()); - EXPECT_EQ(expected_verdict.cache_expression_exact_match(), - actual_verdict.cache_expression_exact_match()); } TEST_F(PasswordProtectionServiceTest, TestPathVariantsMatchCacheExpression) { @@ -309,43 +295,13 @@ GURL("http://evil.com/worse/index.html"), cache_expression_with_slash)); } -TEST_F(PasswordProtectionServiceTest, TestPathMatchCacheExpressionExactly) { - // Cache expression without path. - std::string cache_expression("www.google.com"); - EXPECT_TRUE(PathMatchCacheExpressionExactly(GURL("https://www.google.com"), - cache_expression)); - EXPECT_TRUE(PathMatchCacheExpressionExactly(GURL("https://www.google.com/"), - cache_expression)); - EXPECT_TRUE(PathMatchCacheExpressionExactly( - GURL("https://www.google.com/index.html"), cache_expression)); - EXPECT_FALSE(PathMatchCacheExpressionExactly( - GURL("https://www.google.com/abc/"), cache_expression)); - EXPECT_FALSE(PathMatchCacheExpressionExactly( - GURL("https://www.google.com/def/login"), cache_expression)); - - // Cache expression with path. - cache_expression = "evil.com/bad"; - EXPECT_FALSE(PathMatchCacheExpressionExactly(GURL("http://evil.com"), - cache_expression)); - EXPECT_FALSE(PathMatchCacheExpressionExactly(GURL("http://evil.com/"), - cache_expression)); - EXPECT_TRUE(PathMatchCacheExpressionExactly(GURL("http://evil.com/bad/"), - cache_expression)); - EXPECT_TRUE(PathMatchCacheExpressionExactly( - GURL("http://evil.com/bad/index.html"), cache_expression)); - EXPECT_FALSE(PathMatchCacheExpressionExactly(GURL("http://evil.com/bad/abc/"), - cache_expression)); - EXPECT_FALSE(PathMatchCacheExpressionExactly( - GURL("http://evil.com/bad/abc/login.jsp"), cache_expression)); -} - TEST_F(PasswordProtectionServiceTest, TestCachedVerdicts) { ASSERT_EQ(0U, GetStoredVerdictCount()); // Assume each verdict has a TTL of 10 minutes. // Cache a verdict for http://www.test.com/foo/index.html CacheVerdict(GURL("http://www.test.com/foo/index.html"), LoginReputationClientResponse::SAFE, 10 * 60, "test.com/foo", - false, base::Time::Now()); + base::Time::Now()); EXPECT_EQ(1U, GetStoredVerdictCount()); @@ -353,7 +309,7 @@ // override the cache. CacheVerdict(GURL("http://www.test.com/foo/index2.html"), LoginReputationClientResponse::PHISHING, 10 * 60, "test.com/foo", - false, base::Time::Now()); + base::Time::Now()); EXPECT_EQ(1U, GetStoredVerdictCount()); LoginReputationClientResponse out_verdict; EXPECT_EQ(LoginReputationClientResponse::PHISHING, @@ -365,29 +321,23 @@ // in the given origin. CacheVerdict(GURL("http://www.test.com/bar/index2.html"), LoginReputationClientResponse::SAFE, 10 * 60, "test.com/bar", - false, base::Time::Now()); + base::Time::Now()); EXPECT_EQ(2U, GetStoredVerdictCount()); } TEST_F(PasswordProtectionServiceTest, TestGetCachedVerdicts) { ASSERT_EQ(0U, GetStoredVerdictCount()); - // Prepare 3 verdicts of the same origin with different cache expressions: - // (1) require exact match, not expired. - // (2) not require exact match, not expired. - // (3) require exact match, expired. + // Prepare 2 verdicts of the same origin with different cache expressions, + // one is expired, the other is not. base::Time now = base::Time::Now(); CacheVerdict(GURL("http://test.com/login.html"), - LoginReputationClientResponse::SAFE, 10 * 60, "test.com", true, - now); - CacheVerdict(GURL("http://test.com/abc/index.jsp"), - LoginReputationClientResponse::LOW_REPUTATION, 10 * 60, - "test.com/abc", false, now); + LoginReputationClientResponse::SAFE, 10 * 60, "test.com", now); CacheVerdict( GURL("http://test.com/def/index.jsp"), - LoginReputationClientResponse::PHISHING, 10 * 60, "test.com/def", false, + LoginReputationClientResponse::PHISHING, 10 * 60, "test.com/def", base::Time::FromDoubleT(now.ToDoubleT() - 24.0 * 60.0 * 60.0)); // Yesterday, expired. - ASSERT_EQ(3U, GetStoredVerdictCount()); + ASSERT_EQ(2U, GetStoredVerdictCount()); // Return VERDICT_TYPE_UNSPECIFIED if look up for a URL with unknown origin. LoginReputationClientResponse actual_verdict; @@ -395,39 +345,16 @@ password_protection_service_->GetCachedVerdict( GURL("http://www.unknown.com/"), &actual_verdict)); - // Return VERDICT_TYPE_UNSPECIFIED if look up for a URL with http://test.com - // origin, but doesn't match any known cache_expression. - EXPECT_EQ(LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED, + // Return SAFE if look up for a URL that matches "test.com" cache expression. + EXPECT_EQ(LoginReputationClientResponse::SAFE, password_protection_service_->GetCachedVerdict( GURL("http://test.com/xyz/foo.jsp"), &actual_verdict)); // Return VERDICT_TYPE_UNSPECIFIED if look up for a URL whose variants match - // test.com/def, since corresponding entry is expired. + // test.com/def, but the corresponding verdict is expired. EXPECT_EQ(LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED, password_protection_service_->GetCachedVerdict( GURL("http://test.com/def/ghi/index.html"), &actual_verdict)); - - // Return VERDICT_TYPE_UNSPECIFIED if look up for a URL whose variants match - // test.com, but not match it exactly. Return SAFE if it is a exact match of - // test.com. - EXPECT_EQ(LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED, - password_protection_service_->GetCachedVerdict( - GURL("http://test.com/ghi/index.html"), &actual_verdict)); - EXPECT_EQ(LoginReputationClientResponse::SAFE, - password_protection_service_->GetCachedVerdict( - GURL("http://test.com/term_of_service.html"), &actual_verdict)); - - // Return LOW_REPUTATION if look up for a URL whose variants match - // test.com/abc. - EXPECT_EQ(LoginReputationClientResponse::LOW_REPUTATION, - password_protection_service_->GetCachedVerdict( - GURL("http://test.com/abc/"), &actual_verdict)); - EXPECT_EQ(LoginReputationClientResponse::LOW_REPUTATION, - password_protection_service_->GetCachedVerdict( - GURL("http://test.com/abc/bar.jsp"), &actual_verdict)); - EXPECT_EQ(LoginReputationClientResponse::LOW_REPUTATION, - password_protection_service_->GetCachedVerdict( - GURL("http://test.com/abc/foo/bar.html"), &actual_verdict)); } TEST_F(PasswordProtectionServiceTest, TestCleanUpCachedVerdicts) { @@ -437,10 +364,10 @@ base::Time now = base::Time::Now(); CacheVerdict(GURL("http://foo.com/abc/index.jsp"), LoginReputationClientResponse::LOW_REPUTATION, 10 * 60, - "foo.com/abc", false, now); + "foo.com/abc", now); CacheVerdict(GURL("http://bar.com/index.jsp"), LoginReputationClientResponse::PHISHING, 10 * 60, "bar.com", - false, now); + now); ASSERT_EQ(2U, GetStoredVerdictCount()); // Delete a bar.com URL. Corresponding content setting keyed on @@ -505,7 +432,7 @@ TEST_F(PasswordProtectionServiceTest, TestNoRequestSentIfVerdictAlreadyCached) { histograms_.ExpectTotalCount(kRequestOutcomeHistogramName, 0); CacheVerdict(GURL(kTargetUrl), LoginReputationClientResponse::LOW_REPUTATION, - 600, GURL(kTargetUrl).host(), true, base::Time::Now()); + 600, GURL(kTargetUrl).host(), base::Time::Now()); InitializeAndStartRequest(false /* match whitelist */, 10000 /* timeout in ms*/); base::RunLoop().RunUntilIdle(); @@ -568,9 +495,8 @@ fetcher.set_status( net::URLRequestStatus(net::URLRequestStatus::SUCCESS, net::OK)); fetcher.set_response_code(200); - LoginReputationClientResponse expected_response = - CreateVerdictProto(LoginReputationClientResponse::PHISHING, 600, - GURL(kTargetUrl).host(), true); + LoginReputationClientResponse expected_response = CreateVerdictProto( + LoginReputationClientResponse::PHISHING, 600, GURL(kTargetUrl).host()); fetcher.SetResponseString(expected_response.SerializeAsString()); InitializeAndStartRequest(false /* match whitelist */, @@ -584,8 +510,6 @@ EXPECT_EQ(expected_response.verdict_type(), actual_response->verdict_type()); EXPECT_EQ(expected_response.cache_expression(), actual_response->cache_expression()); - EXPECT_EQ(expected_response.cache_expression_exact_match(), - actual_response->cache_expression_exact_match()); EXPECT_EQ(expected_response.cache_duration_sec(), actual_response->cache_duration_sec()); }
diff --git a/content/browser/download/download_item_impl.cc b/content/browser/download/download_item_impl.cc index 966bbae..2d0a2c4 100644 --- a/content/browser/download/download_item_impl.cc +++ b/content/browser/download/download_item_impl.cc
@@ -1224,6 +1224,9 @@ download_file_ = std::move(file); job_ = DownloadJobFactory::CreateJob(this, std::move(req_handle), new_create_info); + if (job_->UsesParallelRequests()) + RecordParallelDownloadCount(START_COUNT); + deferred_interrupt_reason_ = DOWNLOAD_INTERRUPT_REASON_NONE; if (state_ == CANCELLED_INTERNAL) { @@ -1273,6 +1276,8 @@ if (state_ == INITIAL_INTERNAL) { RecordDownloadCount(NEW_DOWNLOAD_COUNT); + if (job_->UsesParallelRequests()) + RecordParallelDownloadCount(NEW_DOWNLOAD_COUNT); RecordDownloadMimeType(mime_type_); if (!GetBrowserContext()->IsOffTheRecord()) { RecordDownloadCount(NEW_DOWNLOAD_COUNT_NORMAL_PROFILE); @@ -1287,9 +1292,6 @@ if (state_ == RESUMING_INTERNAL) UpdateValidatorsOnResumption(new_create_info); - if (state_ == INITIAL_INTERNAL && job_->UsesParallelRequests()) - RecordParallelDownloadCount(START_COUNT); - TransitionTo(TARGET_PENDING_INTERNAL); job_->Start();
diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc index 004b0cc5..730eb24 100644 --- a/content/browser/service_worker/service_worker_dispatcher_host.cc +++ b/content/browser/service_worker/service_worker_dispatcher_host.cc
@@ -80,27 +80,6 @@ return WebContents::FromRenderFrameHost(rfh); } -std::string GetNavigationPreloadDisabledErrorMessage( - ServiceWorkerVersion::NavigationPreloadSupportStatus support_status) { - switch (support_status) { - case ServiceWorkerVersion::NavigationPreloadSupportStatus::SUPPORTED: - NOTREACHED(); - break; - case ServiceWorkerVersion::NavigationPreloadSupportStatus:: - NOT_SUPPORTED_FIELD_TRIAL_STOPPED: - return "The Navigation Preload Origin Trial has ended."; - case ServiceWorkerVersion::NavigationPreloadSupportStatus:: - NOT_SUPPORTED_DISABLED_BY_COMMAND_LINE: - return "Navigation Preload is disabled by command line flag."; - case ServiceWorkerVersion::NavigationPreloadSupportStatus:: - NOT_SUPPORTED_NO_VALID_ORIGIN_TRIAL_TOKEN: - return "The service worker script does not have a valid Navigation " - "Preload Origin Trial token."; - } - NOTREACHED(); - return ""; -} - } // namespace ServiceWorkerDispatcherHost::ServiceWorkerDispatcherHost( @@ -723,17 +702,6 @@ return; } - ServiceWorkerVersion::NavigationPreloadSupportStatus support_status = - registration->active_version()->GetNavigationPreloadSupportStatus(); - if (support_status != - ServiceWorkerVersion::NavigationPreloadSupportStatus::SUPPORTED) { - Send(new ServiceWorkerMsg_EnableNavigationPreloadError( - thread_id, request_id, WebServiceWorkerError::kErrorTypeAbort, - std::string(kEnableNavigationPreloadErrorPrefix) + - GetNavigationPreloadDisabledErrorMessage(support_status))); - return; - } - std::vector<GURL> urls = {provider_host->document_url(), registration->pattern()}; if (!ServiceWorkerUtils::AllOriginsMatchAndCanAccessServiceWorkers(urls)) { @@ -876,16 +844,6 @@ return; } - ServiceWorkerVersion::NavigationPreloadSupportStatus support_status = - registration->active_version()->GetNavigationPreloadSupportStatus(); - if (support_status != - ServiceWorkerVersion::NavigationPreloadSupportStatus::SUPPORTED) { - Send(new ServiceWorkerMsg_SetNavigationPreloadHeaderError( - thread_id, request_id, WebServiceWorkerError::kErrorTypeAbort, - std::string(kSetNavigationPreloadHeaderErrorPrefix) + - GetNavigationPreloadDisabledErrorMessage(support_status))); - return; - } std::vector<GURL> urls = {provider_host->document_url(), registration->pattern()}; if (!ServiceWorkerUtils::AllOriginsMatchAndCanAccessServiceWorkers(urls)) {
diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher.cc b/content/browser/service_worker/service_worker_fetch_dispatcher.cc index 26fadca..806edde 100644 --- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc +++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
@@ -8,6 +8,7 @@ #include <utility> #include "base/bind.h" +#include "base/feature_list.h" #include "base/memory/ptr_util.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h" @@ -27,6 +28,7 @@ #include "content/common/service_worker/service_worker_utils.h" #include "content/public/browser/browser_thread.h" #include "content/public/common/browser_side_navigation_policy.h" +#include "content/public/common/content_features.h" #include "mojo/public/cpp/bindings/binding.h" #include "net/base/request_priority.h" #include "net/http/http_util.h" @@ -527,12 +529,8 @@ if (!request_->blob_uuid.empty()) return false; - ServiceWorkerVersion::NavigationPreloadSupportStatus support_status = - version_->GetNavigationPreloadSupportStatus(); - if (support_status != - ServiceWorkerVersion::NavigationPreloadSupportStatus::SUPPORTED) { + if (!base::FeatureList::IsEnabled(features::kServiceWorkerNavigationPreload)) return false; - } ResourceRequestInfoImpl* original_info = ResourceRequestInfoImpl::ForRequest(original_request);
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc index f99625c3..d3385d0 100644 --- a/content/browser/service_worker/service_worker_version.cc +++ b/content/browser/service_worker/service_worker_version.cc
@@ -12,7 +12,6 @@ #include "base/command_line.h" #include "base/debug/alias.h" -#include "base/feature_list.h" #include "base/guid.h" #include "base/location.h" #include "base/macros.h" @@ -44,7 +43,6 @@ #include "content/public/browser/content_browser_client.h" #include "content/public/browser/render_process_host.h" #include "content/public/common/content_client.h" -#include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" #include "content/public/common/result_codes.h" #include "net/http/http_response_headers.h" @@ -1061,42 +1059,6 @@ callback.Run(status); } -ServiceWorkerVersion::NavigationPreloadSupportStatus -ServiceWorkerVersion::GetNavigationPreloadSupportStatus() const { - // The origin trial of Navigation Preload started from M57. And the worker - // entry in the database written by Chrome (>= M56) must have the - // origin_trial_tokens field. - const bool has_valid_token = - origin_trial_tokens_ && - base::ContainsKey(*origin_trial_tokens_, - "ServiceWorkerNavigationPreload"); - if (!has_valid_token) { - if (base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine( - features::kServiceWorkerNavigationPreload.name, - base::FeatureList::OVERRIDE_ENABLE_FEATURE)) { - return NavigationPreloadSupportStatus::SUPPORTED; - } else { - return NavigationPreloadSupportStatus:: - NOT_SUPPORTED_NO_VALID_ORIGIN_TRIAL_TOKEN; - } - } - if (base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine( - features::kServiceWorkerNavigationPreload.name, - base::FeatureList::OVERRIDE_ENABLE_FEATURE)) { - return NavigationPreloadSupportStatus::SUPPORTED; - } - if (base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine( - features::kServiceWorkerNavigationPreload.name, - base::FeatureList::OVERRIDE_DISABLE_FEATURE)) { - return NavigationPreloadSupportStatus:: - NOT_SUPPORTED_DISABLED_BY_COMMAND_LINE; - } - if (base::FeatureList::IsEnabled(features::kServiceWorkerNavigationPreload)) { - return NavigationPreloadSupportStatus::SUPPORTED; - } - return NavigationPreloadSupportStatus::NOT_SUPPORTED_FIELD_TRIAL_STOPPED; -} - void ServiceWorkerVersion::CountFeature(uint32_t feature) { if (!used_features_.insert(feature).second) return;
diff --git a/content/browser/service_worker/service_worker_version.h b/content/browser/service_worker/service_worker_version.h index 6325a5f..7419d117 100644 --- a/content/browser/service_worker/service_worker_version.h +++ b/content/browser/service_worker/service_worker_version.h
@@ -102,14 +102,6 @@ DOES_NOT_EXIST, }; - // Navigation Preload support status of the service worker. - enum class NavigationPreloadSupportStatus { - SUPPORTED, - NOT_SUPPORTED_FIELD_TRIAL_STOPPED, - NOT_SUPPORTED_DISABLED_BY_COMMAND_LINE, - NOT_SUPPORTED_NO_VALID_ORIGIN_TRIAL_TOKEN, - }; - class Listener { public: virtual void OnRunningStateChanged(ServiceWorkerVersion* version) {} @@ -409,41 +401,6 @@ return max_request_expiration_time_ - tick_clock_->NowTicks(); } - // Returns the Navigation Preload support status of the service worker. - // - Origin Trial: Have an effective token. - // Command line - // Default Enable Disabled - // Default A A B2 - // Field trial Enabled A A B2 - // Disabled B1 A B2 - // - // - Origin Trial: No token. - // Command line - // Default Enable Disabled - // Default C A C - // Field trial Enabled C A C - // Disabled C A C - // - // * A = SUPPORTED - // B1 = NOT_SUPPORTED_FIELD_TRIAL_STOPPED - // B2 = NOT_SUPPORTED_DISABLED_BY_COMMAND_LINE - // C = NOT_SUPPORTED_NO_VALID_ORIGIN_TRIAL_TOKEN - // - // There are three types of behaviors: - // - A: Navigation Preload related methods and attributes are available in JS - // and work correctly. - // - B: Navigation Preload related methods and attributes are available in - // JS. But NavigationPreloadManager's enable, disable and setHeaderValue - // methods always return a rejected promise. And FetchEvent's - // preloadResponse attribute returns a promise which always resolve with - // undefined. - // - C: Navigation Preload related methods and attributes are not available - // in JS. - // This method returns SUPPORTED only for A case. - // blink::OriginTrials::serviceWorkerNavigationPreloadEnabled() returns true - // for both A and B case. So the methods and attributes are available in JS. - NavigationPreloadSupportStatus GetNavigationPreloadSupportStatus() const; - void CountFeature(uint32_t feature); void set_used_features(const std::set<uint32_t>& used_features) { used_features_ = used_features;
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc index b334d5b..15426d87 100644 --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -333,20 +333,8 @@ base::FeatureList::IsEnabled(features::kWebPayments)); #endif - // Sets the RuntimeEnabledFeatures for Navigation Preload feature only when - // '--enable-features' command line flag is given. While experimenting this - // feature using Origin-Trial, this base::Feature is enabled by default in - // content_features.cc. So FeatureList::IsEnabled() always returns true. But, - // unless the command line explicitly enabled the feature, this feature should - // be available only when a valid origin trial token is set. This check is - // done by the generated code of - // blink::OriginTrials::serviceWorkerNavigationPreloadEnabled(). See the - // comments in service_worker_version.h for the details. - if (base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine( - features::kServiceWorkerNavigationPreload.name, - base::FeatureList::OVERRIDE_ENABLE_FEATURE)) { - WebRuntimeFeatures::EnableServiceWorkerNavigationPreload(true); - } + WebRuntimeFeatures::EnableServiceWorkerNavigationPreload( + base::FeatureList::IsEnabled(features::kServiceWorkerNavigationPreload)); if (base::FeatureList::IsEnabled(features::kGamepadExtensions)) WebRuntimeFeatures::EnableGamepadExtensions(true);
diff --git a/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java b/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java index d07abed0..6258aa3b 100644 --- a/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderImpl.java
@@ -9,6 +9,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; +import android.os.AsyncTask; import org.json.JSONArray; import org.json.JSONException; @@ -68,13 +69,46 @@ @Override public void filterInstalledApps( - RelatedApplication[] relatedApps, FilterInstalledAppsResponse callback) { + final RelatedApplication[] relatedApps, final FilterInstalledAppsResponse callback) { if (mFrameUrlDelegate.isIncognito()) { callback.call(new RelatedApplication[0]); return; } - URI frameUrl = mFrameUrlDelegate.getUrl(); + final URI frameUrl = mFrameUrlDelegate.getUrl(); + + // Use an AsyncTask to execute the installed/related checks on a background thread (so as + // not to block the UI thread). + new AsyncTask<Void, Void, RelatedApplication[]>() { + @Override + protected RelatedApplication[] doInBackground(Void... unused) { + return filterInstalledAppsOnBackgroundThread(relatedApps, frameUrl); + } + + @Override + protected void onPostExecute(RelatedApplication[] installedApps) { + callback.call(installedApps); + } + }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + + @Override + public void close() {} + + @Override + public void onConnectionError(MojoException e) {} + + /** + * Filters a list of apps, returning those that are both installed and match the origin. + * + * This method is expected to be called on a background thread (not the main UI thread). + * + * @param relatedApps A list of applications to be filtered. + * @param frameUrl The URL of the frame this operation was called from. + * @return A subsequence of applications that meet the criteria. + */ + private RelatedApplication[] filterInstalledAppsOnBackgroundThread( + RelatedApplication[] relatedApps, URI frameUrl) { ArrayList<RelatedApplication> installedApps = new ArrayList<RelatedApplication>(); PackageManager pm = mContext.getPackageManager(); for (RelatedApplication app : relatedApps) { @@ -92,15 +126,9 @@ RelatedApplication[] installedAppsArray = new RelatedApplication[installedApps.size()]; installedApps.toArray(installedAppsArray); - callback.call(installedAppsArray); + return installedAppsArray; } - @Override - public void close() {} - - @Override - public void onConnectionError(MojoException e) {} - /** * Determines whether a particular app is installed and matches the origin. *
diff --git a/content/public/android/junit/src/org/chromium/content/browser/installedapp/InstalledAppProviderTest.java b/content/public/android/junit/src/org/chromium/content/browser/installedapp/InstalledAppProviderTest.java index 5c81447..26ca0e7 100644 --- a/content/public/android/junit/src/org/chromium/content/browser/installedapp/InstalledAppProviderTest.java +++ b/content/public/android/junit/src/org/chromium/content/browser/installedapp/InstalledAppProviderTest.java
@@ -23,6 +23,7 @@ import org.chromium.base.test.util.Feature; import org.chromium.installedapp.mojom.InstalledAppProvider; import org.chromium.installedapp.mojom.RelatedApplication; +import org.chromium.testing.local.CustomShadowAsyncTask; import org.chromium.testing.local.LocalRobolectricTestRunner; import java.net.URI; @@ -33,7 +34,7 @@ * Ensure that the InstalledAppProvider returns the correct apps. */ @RunWith(LocalRobolectricTestRunner.class) -@Config(manifest = Config.NONE) +@Config(manifest = Config.NONE, shadows = {CustomShadowAsyncTask.class}) public class InstalledAppProviderTest { private static final String ASSET_STATEMENTS_KEY = InstalledAppProviderImpl.ASSET_STATEMENTS_KEY;
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc index 68111f4..1436426c 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc
@@ -202,10 +202,6 @@ base::FEATURE_ENABLED_BY_DEFAULT}; // Navigation preload feature of service workers. -// Enables this base::Feature by default for Origin-Trial, but enables the -// corresponding blink::WebRuntimeFeatures only when '--enable-features' command -// line flag is given. See the comments in runtime_features.cc and -// service_worker_version.h for the details. const base::Feature kServiceWorkerNavigationPreload{ "ServiceWorkerNavigationPreload", base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc index 98f53696..e2adb547 100644 --- a/content/renderer/media/webmediaplayer_ms.cc +++ b/content/renderer/media/webmediaplayer_ms.cc
@@ -578,6 +578,9 @@ bool WebMediaPlayerMS::CopyVideoTextureToPlatformTexture( gpu::gles2::GLES2Interface* gl, unsigned int texture, + unsigned internal_format, + unsigned format, + unsigned type, bool premultiply_alpha, bool flip_y) { TRACE_EVENT0("media", "WebMediaPlayerMS:copyVideoTextureToPlatformTexture"); @@ -598,7 +601,8 @@ context_3d = media::Context3D(provider->ContextGL(), provider->GrContext()); DCHECK(context_3d.gl); return video_renderer_.CopyVideoFrameTexturesToGLTexture( - context_3d, gl, video_frame.get(), texture, premultiply_alpha, flip_y); + context_3d, gl, video_frame.get(), texture, internal_format, format, type, + premultiply_alpha, flip_y); } bool WebMediaPlayerMS::TexImageImpl(TexImageFunctionID functionID,
diff --git a/content/renderer/media/webmediaplayer_ms.h b/content/renderer/media/webmediaplayer_ms.h index a3600eb..d44d94e 100644 --- a/content/renderer/media/webmediaplayer_ms.h +++ b/content/renderer/media/webmediaplayer_ms.h
@@ -155,6 +155,9 @@ bool CopyVideoTextureToPlatformTexture(gpu::gles2::GLES2Interface* gl, unsigned int texture, + unsigned internal_format, + unsigned format, + unsigned type, bool premultiply_alpha, bool flip_y) override;
diff --git a/content/renderer/render_frame_impl_browsertest.cc b/content/renderer/render_frame_impl_browsertest.cc index 3306070..8c607f67 100644 --- a/content/renderer/render_frame_impl_browsertest.cc +++ b/content/renderer/render_frame_impl_browsertest.cc
@@ -149,7 +149,7 @@ ViewMsg_Resize resize_message(0, resize_params); frame_widget()->OnMessageReceived(resize_message); - EXPECT_EQ(frame_widget()->GetWebWidget()->size(), blink::WebSize(size)); + EXPECT_EQ(frame_widget()->GetWebWidget()->Size(), blink::WebSize(size)); } // Verify a subframe RenderWidget properly processes a WasShown message.
diff --git a/content/renderer/render_widget_browsertest.cc b/content/renderer/render_widget_browsertest.cc index 74b4398..3f8fcf9 100644 --- a/content/renderer/render_widget_browsertest.cc +++ b/content/renderer/render_widget_browsertest.cc
@@ -120,7 +120,7 @@ TEST_F(RenderWidgetInitialSizeTest, InitialSize) { EXPECT_EQ(initial_size_, widget()->size()); - EXPECT_EQ(initial_size_, gfx::Size(widget()->GetWebWidget()->size())); + EXPECT_EQ(initial_size_, gfx::Size(widget()->GetWebWidget()->Size())); EXPECT_TRUE(next_paint_is_resize_ack()); }
diff --git a/content/renderer/render_widget_fullscreen_pepper.cc b/content/renderer/render_widget_fullscreen_pepper.cc index d107f23..c439456f 100644 --- a/content/renderer/render_widget_fullscreen_pepper.cc +++ b/content/renderer/render_widget_fullscreen_pepper.cc
@@ -138,7 +138,7 @@ // WebWidget API void Close() override { delete this; } - WebSize size() override { return size_; } + WebSize Size() override { return size_; } void Resize(const WebSize& size) override { if (!widget_->plugin() || size_ == size)
diff --git a/content/shell/test_runner/pixel_dump.cc b/content/shell/test_runner/pixel_dump.cc index eebc4ef..6252a44 100644 --- a/content/shell/test_runner/pixel_dump.cc +++ b/content/shell/test_runner/pixel_dump.cc
@@ -91,7 +91,7 @@ void CapturePixelsForPrinting(std::unique_ptr<PixelsDumpRequest> dump_request) { dump_request->web_view->UpdateAllLifecyclePhases(); - blink::WebSize page_size_in_pixels = dump_request->web_view->size(); + blink::WebSize page_size_in_pixels = dump_request->web_view->Size(); blink::WebFrame* web_frame = dump_request->web_view->MainFrame(); int page_count = web_frame->PrintBegin(page_size_in_pixels);
diff --git a/content/shell/test_runner/web_view_test_client.cc b/content/shell/test_runner/web_view_test_client.cc index 0969649..0baeb96 100644 --- a/content/shell/test_runner/web_view_test_client.cc +++ b/content/shell/test_runner/web_view_test_client.cc
@@ -82,7 +82,7 @@ // Simulate a print by going into print mode and then exit straight away. void WebViewTestClient::PrintPage(blink::WebLocalFrame* frame) { - blink::WebSize page_size_in_pixels = frame->View()->size(); + blink::WebSize page_size_in_pixels = frame->View()->Size(); if (page_size_in_pixels.IsEmpty()) return; blink::WebPrintParams printParams(page_size_in_pixels);
diff --git a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py index 507f23b..c32c1cb1 100644 --- a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py +++ b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
@@ -44,10 +44,6 @@ self.Flaky('conformance2/query/occlusion-query.html', bug=603168) self.Fail('conformance2/glsl3/tricky-loop-conditions.html', bug=483282) - # Temporary suppression; will be removed after bug fix. - self.Fail('conformance/textures/misc/texture-corner-case-videos.html', - bug=701060) - # canvas.commit() promise synchronization isn't fully reliable yet. self.Fail('conformance/offscreencanvas/offscreencanvas-resize.html', bug=709484)
diff --git a/content/test/gpu/gpu_tests/webgl_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl_conformance_expectations.py index cdd41f4..a314343 100644 --- a/content/test/gpu/gpu_tests/webgl_conformance_expectations.py +++ b/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
@@ -101,10 +101,6 @@ self.Fail('conformance/textures/misc/tex-sub-image-2d-bad-args.html', bug=625738) - # Temporary suppression; will be removed after bug fix. - self.Fail('conformance/textures/misc/texture-corner-case-videos.html', - bug=701060) - # canvas.commit() promise synchronization isn't fully reliable yet. self.Fail('conformance/offscreencanvas/offscreencanvas-resize.html', bug=709484)
diff --git a/device/vr/vr_math.cc b/device/vr/vr_math.cc index 77613963..cd95d5eb 100644 --- a/device/vr/vr_math.cc +++ b/device/vr/vr_math.cc
@@ -99,36 +99,6 @@ } } -void PerspectiveMatrixFromView(const gfx::RectF& fov, - float z_near, - float z_far, - Mat4f* out) { - const float x_left = -std::tan(fov.x() * M_PI / 180.0f) * z_near; - const float x_right = std::tan(fov.right() * M_PI / 180.0f) * z_near; - const float y_bottom = -std::tan(fov.bottom() * M_PI / 180.0f) * z_near; - const float y_top = std::tan(fov.y() * M_PI / 180.0f) * z_near; - - DCHECK(x_left < x_right && y_bottom < y_top && z_near < z_far && - z_near > 0.0f && z_far > 0.0f); - const float X = (2 * z_near) / (x_right - x_left); - const float Y = (2 * z_near) / (y_top - y_bottom); - const float A = (x_right + x_left) / (x_right - x_left); - const float B = (y_top + y_bottom) / (y_top - y_bottom); - const float C = (z_near + z_far) / (z_near - z_far); - const float D = (2 * z_near * z_far) / (z_near - z_far); - - for (int i = 0; i < 4; ++i) { - (*out)[i].fill(0.0f); - } - (*out)[0][0] = X; - (*out)[0][2] = A; - (*out)[1][1] = Y; - (*out)[1][2] = B; - (*out)[2][2] = C; - (*out)[2][3] = D; - (*out)[3][2] = -1; -} - gfx::Vector3dF GetForwardVector(const Mat4f& matrix) { // Same as multiplying the inverse of the rotation component of the matrix by // (0, 0, -1, 0).
diff --git a/device/vr/vr_math.h b/device/vr/vr_math.h index 72e21808..2426b3dc 100644 --- a/device/vr/vr_math.h +++ b/device/vr/vr_math.h
@@ -25,10 +25,6 @@ void DEVICE_VR_EXPORT MatrixMul(const Mat4f& matrix1, const Mat4f& matrix2, Mat4f* out); -void DEVICE_VR_EXPORT PerspectiveMatrixFromView(const gfx::RectF& fov, - float z_near, - float z_far, - Mat4f* out); // Provides the direction the head is looking towards as a 3x1 unit vector. gfx::Vector3dF DEVICE_VR_EXPORT GetForwardVector(const Mat4f& matrix);
diff --git a/extensions/browser/api/DEPS b/extensions/browser/api/DEPS index f3a07563..93ccbfe4 100644 --- a/extensions/browser/api/DEPS +++ b/extensions/browser/api/DEPS
@@ -1,4 +1,5 @@ include_rules = [ + "+components/device_event_log", "+device/base", "+device/hid", "+storage/browser/fileapi",
diff --git a/extensions/browser/api/bluetooth/bluetooth_api.cc b/extensions/browser/api/bluetooth/bluetooth_api.cc index 453ff77..2e9e40a 100644 --- a/extensions/browser/api/bluetooth/bluetooth_api.cc +++ b/extensions/browser/api/bluetooth/bluetooth_api.cc
@@ -11,6 +11,7 @@ #include "base/bind_helpers.h" #include "base/lazy_instance.h" #include "base/memory/ref_counted.h" +#include "components/device_event_log/device_event_log.h" #include "content/public/browser/browser_thread.h" #include "device/bluetooth/bluetooth_adapter.h" #include "device/bluetooth/bluetooth_device.h" @@ -64,6 +65,7 @@ BluetoothAPI::BluetoothAPI(content::BrowserContext* context) : browser_context_(context) { DCHECK_CURRENTLY_ON(BrowserThread::UI); + BLUETOOTH_LOG(EVENT) << "BluetoothAPI: " << browser_context_; EventRouter* event_router = EventRouter::Get(browser_context_); event_router->RegisterObserver(this, bluetooth::OnAdapterStateChanged::kEventName); @@ -72,11 +74,14 @@ event_router->RegisterObserver(this, bluetooth::OnDeviceRemoved::kEventName); } -BluetoothAPI::~BluetoothAPI() {} +BluetoothAPI::~BluetoothAPI() { + BLUETOOTH_LOG(EVENT) << "~BluetoothAPI: " << browser_context_; +} BluetoothEventRouter* BluetoothAPI::event_router() { DCHECK_CURRENTLY_ON(BrowserThread::UI); if (!event_router_) { + BLUETOOTH_LOG(EVENT) << "BluetoothAPI: Creating BluetoothEventRouter"; event_router_.reset(new BluetoothEventRouter(browser_context_)); } return event_router_.get(); @@ -84,19 +89,20 @@ void BluetoothAPI::Shutdown() { DCHECK_CURRENTLY_ON(BrowserThread::UI); + BLUETOOTH_LOG(EVENT) << "BluetoothAPI: Shutdown"; EventRouter::Get(browser_context_)->UnregisterObserver(this); } void BluetoothAPI::OnListenerAdded(const EventListenerInfo& details) { DCHECK_CURRENTLY_ON(BrowserThread::UI); if (event_router()->IsBluetoothSupported()) - event_router()->OnListenerAdded(); + event_router()->OnListenerAdded(details); } void BluetoothAPI::OnListenerRemoved(const EventListenerInfo& details) { DCHECK_CURRENTLY_ON(BrowserThread::UI); if (event_router()->IsBluetoothSupported()) - event_router()->OnListenerRemoved(); + event_router()->OnListenerRemoved(details); } namespace api {
diff --git a/extensions/browser/api/bluetooth/bluetooth_event_router.cc b/extensions/browser/api/bluetooth/bluetooth_event_router.cc index 841935dc..dbb2385 100644 --- a/extensions/browser/api/bluetooth/bluetooth_event_router.cc +++ b/extensions/browser/api/bluetooth/bluetooth_event_router.cc
@@ -16,6 +16,7 @@ #include "base/stl_util.h" #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" +#include "components/device_event_log/device_event_log.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_source.h" #include "device/bluetooth/bluetooth_adapter.h" @@ -44,6 +45,11 @@ callback.Run(); } +std::string GetListenerId(const extensions::EventListenerInfo& details) { + return !details.extension_id.empty() ? details.extension_id + : details.listener_url.host(); +} + } // namespace namespace bluetooth = api::bluetooth; @@ -52,19 +58,19 @@ BluetoothEventRouter::BluetoothEventRouter(content::BrowserContext* context) : browser_context_(context), adapter_(nullptr), - num_event_listeners_(0), extension_registry_observer_(this), weak_ptr_factory_(this) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + BLUETOOTH_LOG(USER) << "BluetoothEventRouter()"; DCHECK(browser_context_); - registrar_.Add(this, - extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, + registrar_.Add(this, extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, content::Source<content::BrowserContext>(browser_context_)); extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_)); } BluetoothEventRouter::~BluetoothEventRouter() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + BLUETOOTH_LOG(USER) << "~BluetoothEventRouter()"; if (adapter_.get()) { adapter_->RemoveObserver(this); adapter_ = nullptr; @@ -113,23 +119,26 @@ const base::Closure& callback, const base::Closure& error_callback) { if (!adapter_.get()) { - LOG(ERROR) << "Unable to get Bluetooth adapter."; + BLUETOOTH_LOG(ERROR) << "Unable to get Bluetooth adapter."; error_callback.Run(); return; } if (adapter != adapter_.get()) { - LOG(ERROR) << "Bluetooth adapter mismatch."; + BLUETOOTH_LOG(ERROR) << "Bluetooth adapter mismatch."; error_callback.Run(); return; } DiscoverySessionMap::iterator iter = discovery_session_map_.find(extension_id); if (iter != discovery_session_map_.end() && iter->second->IsActive()) { - DVLOG(1) << "An active discovery session exists for extension."; + BLUETOOTH_LOG(DEBUG) << "An active discovery session exists for extension: " + << extension_id; error_callback.Run(); return; } + BLUETOOTH_LOG(USER) << "StartDiscoverySession: " << extension_id; + // Check whether user pre set discovery filter by calling SetDiscoveryFilter // before. If the user has set a discovery filter then start a filtered // discovery session, otherwise start a regular session @@ -162,10 +171,11 @@ DiscoverySessionMap::iterator iter = discovery_session_map_.find(extension_id); if (iter == discovery_session_map_.end() || !iter->second->IsActive()) { - DVLOG(1) << "No active discovery session exists for extension."; + BLUETOOTH_LOG(DEBUG) << "No active discovery session exists for extension."; error_callback.Run(); return; } + BLUETOOTH_LOG(USER) << "StopDiscoverySession: " << extension_id; device::BluetoothDiscoverySession* session = iter->second; session->Stop(callback, error_callback); } @@ -176,7 +186,7 @@ const std::string& extension_id, const base::Closure& callback, const base::Closure& error_callback) { - DVLOG(1) << "SetDiscoveryFilter"; + BLUETOOTH_LOG(USER) << "SetDiscoveryFilter"; if (adapter != adapter_.get()) { error_callback.Run(); return; @@ -185,8 +195,8 @@ DiscoverySessionMap::iterator iter = discovery_session_map_.find(extension_id); if (iter == discovery_session_map_.end() || !iter->second->IsActive()) { - DVLOG(1) << "No active discovery session exists for extension, so caching " - "filter for later use."; + BLUETOOTH_LOG(DEBUG) << "No active discovery session exists for extension, " + << "so caching filter for later use."; pre_set_filter_map_[extension_id] = discovery_filter.release(); callback.Run(); return; @@ -216,9 +226,9 @@ } void BluetoothEventRouter::MaybeReleaseAdapter() { - if (adapter_.get() && num_event_listeners_ == 0 && + if (adapter_.get() && event_listener_count_.empty() && pairing_delegate_map_.empty()) { - VLOG(1) << "Releasing Adapter."; + BLUETOOTH_LOG(EVENT) << "Releasing Adapter."; adapter_->RemoveObserver(this); adapter_ = nullptr; } @@ -244,8 +254,8 @@ if (base::ContainsKey(pairing_delegate_map_, extension_id)) { // For WebUI there may be more than one page open to the same url // (e.g. chrome://settings). These will share the same pairing delegate. - VLOG(1) << "Pairing delegate already exists for extension_id: " - << extension_id; + BLUETOOTH_LOG(EVENT) << "Pairing delegate already exists for extension_id: " + << extension_id; return; } BluetoothApiPairingDelegate* delegate = @@ -273,7 +283,8 @@ bool present) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (adapter != adapter_.get()) { - DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); + BLUETOOTH_LOG(DEBUG) << "Ignoring event for adapter " + << adapter->GetAddress(); return; } DispatchAdapterStateEvent(); @@ -284,7 +295,8 @@ bool has_power) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (adapter != adapter_.get()) { - DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); + BLUETOOTH_LOG(DEBUG) << "Ignoring event for adapter " + << adapter->GetAddress(); return; } DispatchAdapterStateEvent(); @@ -295,7 +307,8 @@ bool discovering) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (adapter != adapter_.get()) { - DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); + BLUETOOTH_LOG(DEBUG) << "Ignoring event for adapter " + << adapter->GetAddress(); return; } @@ -303,8 +316,7 @@ // If any discovery sessions are inactive, clean them up. DiscoverySessionMap active_session_map; for (DiscoverySessionMap::iterator iter = discovery_session_map_.begin(); - iter != discovery_session_map_.end(); - ++iter) { + iter != discovery_session_map_.end(); ++iter) { device::BluetoothDiscoverySession* session = iter->second; if (session->IsActive()) { active_session_map[iter->first] = session; @@ -326,7 +338,8 @@ device::BluetoothDevice* device) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (adapter != adapter_.get()) { - DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); + BLUETOOTH_LOG(DEBUG) << "Ignoring event for adapter " + << adapter->GetAddress(); return; } @@ -338,7 +351,8 @@ device::BluetoothDevice* device) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (adapter != adapter_.get()) { - DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); + BLUETOOTH_LOG(DEBUG) << "Ignoring event for adapter " + << adapter->GetAddress(); return; } @@ -350,7 +364,8 @@ device::BluetoothDevice* device) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (adapter != adapter_.get()) { - DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); + BLUETOOTH_LOG(DEBUG) << "Ignoring event for adapter " + << adapter->GetAddress(); return; } @@ -358,16 +373,29 @@ bluetooth::OnDeviceRemoved::kEventName, device); } -void BluetoothEventRouter::OnListenerAdded() { - num_event_listeners_++; +void BluetoothEventRouter::OnListenerAdded(const EventListenerInfo& details) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + std::string id = GetListenerId(details); + int count = ++event_listener_count_[id]; + BLUETOOTH_LOG(EVENT) << "Event Listener Added: " << id << " Count: " << count; if (!adapter_.get()) GetAdapter(base::Bind(&IgnoreAdapterResult)); } -void BluetoothEventRouter::OnListenerRemoved() { - if (num_event_listeners_ > 0) - num_event_listeners_--; +void BluetoothEventRouter::OnListenerRemoved(const EventListenerInfo& details) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + std::string id = GetListenerId(details); + auto iter = event_listener_count_.find(id); + CHECK(iter != event_listener_count_.end()); + int count = --(iter->second); + BLUETOOTH_LOG(EVENT) << "Event Listener Removed: " << id + << " Count: " << count; + if (count == 0) { + event_listener_count_.erase(iter); + // When all listeners for a listener id have been removed, remove any + // pairing delegate or discovery session and filters. + CleanUpForExtension(id); + } MaybeReleaseAdapter(); } @@ -402,6 +430,7 @@ void BluetoothEventRouter::CleanUpForExtension( const std::string& extension_id) { + BLUETOOTH_LOG(DEBUG) << "CleanUpForExtension: " << extension_id; DCHECK_CURRENTLY_ON(content::BrowserThread::UI); RemovePairingDelegate(extension_id); @@ -422,14 +451,16 @@ } void BluetoothEventRouter::CleanUpAllExtensions() { + BLUETOOTH_LOG(DEBUG) << "CleanUpAllExtensions"; + for (auto& it : pre_set_filter_map_) delete it.second; - pre_set_filter_map_.clear(); - for (auto& it : discovery_session_map_) + for (auto& it : discovery_session_map_) { + BLUETOOTH_LOG(DEBUG) << "Clean up Discovery Session: " << it.first; delete it.second; - + } discovery_session_map_.clear(); PairingDelegateMap::iterator pairing_iter = pairing_delegate_map_.begin(); @@ -441,6 +472,7 @@ const std::string& extension_id, const base::Closure& callback, std::unique_ptr<device::BluetoothDiscoverySession> discovery_session) { + BLUETOOTH_LOG(EVENT) << "OnStartDiscoverySession: " << extension_id; // Clean up any existing session instance for the extension. DiscoverySessionMap::iterator iter = discovery_session_map_.find(extension_id); @@ -452,7 +484,7 @@ void BluetoothEventRouter::OnSetDiscoveryFilter(const std::string& extension_id, const base::Closure& callback) { - DVLOG(1) << "Successfully set DiscoveryFilter."; + BLUETOOTH_LOG(DEBUG) << "Successfully set DiscoveryFilter."; callback.Run(); } @@ -463,6 +495,7 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_EQ(extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, type); ExtensionHost* host = content::Details<ExtensionHost>(details).ptr(); + BLUETOOTH_LOG(DEBUG) << "Host Destroyed: " << host->extension_id(); CleanUpForExtension(host->extension_id()); }
diff --git a/extensions/browser/api/bluetooth/bluetooth_event_router.h b/extensions/browser/api/bluetooth/bluetooth_event_router.h index 4d2fb55..ed90b1a8 100644 --- a/extensions/browser/api/bluetooth/bluetooth_event_router.h +++ b/extensions/browser/api/bluetooth/bluetooth_event_router.h
@@ -35,6 +35,7 @@ namespace extensions { class BluetoothApiPairingDelegate; class ExtensionRegistry; +struct EventListenerInfo; class BluetoothEventRouter : public device::BluetoothAdapter::Observer, public content::NotificationObserver, @@ -81,10 +82,10 @@ const base::Closure& error_callback); // Called when a bluetooth event listener is added. - void OnListenerAdded(); + void OnListenerAdded(const EventListenerInfo& details); // Called when a bluetooth event listener is removed. - void OnListenerRemoved(); + void OnListenerRemoved(const EventListenerInfo& details); // Adds a pairing delegate for an extension. void AddPairingDelegate(const std::string& extension_id); @@ -159,7 +160,8 @@ content::BrowserContext* browser_context_; scoped_refptr<device::BluetoothAdapter> adapter_; - int num_event_listeners_; + // Map of listener id -> listener count. + std::map<std::string, int> event_listener_count_; // A map that maps extension ids to BluetoothDiscoverySession pointers. typedef std::map<std::string, device::BluetoothDiscoverySession*>
diff --git a/extensions/browser/api/bluetooth/bluetooth_event_router_unittest.cc b/extensions/browser/api/bluetooth/bluetooth_event_router_unittest.cc index 474a85e..533fec0 100644 --- a/extensions/browser/api/bluetooth/bluetooth_event_router_unittest.cc +++ b/extensions/browser/api/bluetooth/bluetooth_event_router_unittest.cc
@@ -16,6 +16,7 @@ #include "device/bluetooth/bluetooth_common.h" #include "device/bluetooth/bluetooth_uuid.h" #include "device/bluetooth/test/mock_bluetooth_adapter.h" +#include "extensions/browser/event_router.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/extensions_test.h" #include "extensions/common/api/bluetooth.h" @@ -64,19 +65,22 @@ }; TEST_F(BluetoothEventRouterTest, BluetoothEventListener) { - router_->OnListenerAdded(); + EventListenerInfo info("", "", GURL(), nullptr); + router_->OnListenerAdded(info); EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1); - router_->OnListenerRemoved(); + router_->OnListenerRemoved(info); } TEST_F(BluetoothEventRouterTest, MultipleBluetoothEventListeners) { - router_->OnListenerAdded(); - router_->OnListenerAdded(); - router_->OnListenerAdded(); - router_->OnListenerRemoved(); - router_->OnListenerRemoved(); + // TODO(rkc/stevenjb): Test multiple extensions and WebUI. + EventListenerInfo info("", "", GURL(), nullptr); + router_->OnListenerAdded(info); + router_->OnListenerAdded(info); + router_->OnListenerAdded(info); + router_->OnListenerRemoved(info); + router_->OnListenerRemoved(info); EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1); - router_->OnListenerRemoved(); + router_->OnListenerRemoved(info); } TEST_F(BluetoothEventRouterTest, UnloadExtension) {
diff --git a/extensions/browser/api/bluetooth/bluetooth_private_api.cc b/extensions/browser/api/bluetooth/bluetooth_private_api.cc index 41b3f3b0..fc32507 100644 --- a/extensions/browser/api/bluetooth/bluetooth_private_api.cc +++ b/extensions/browser/api/bluetooth/bluetooth_private_api.cc
@@ -12,6 +12,7 @@ #include "base/lazy_instance.h" #include "base/strings/string_piece.h" #include "base/strings/string_util.h" +#include "components/device_event_log/device_event_log.h" #include "device/bluetooth/bluetooth_adapter.h" #include "device/bluetooth/bluetooth_adapter_factory.h" #include "device/bluetooth/bluetooth_common.h" @@ -162,18 +163,21 @@ bool* discoverable = new_state.discoverable.get(); if (name && adapter->GetName() != *name) { + BLUETOOTH_LOG(USER) << "SetAdapterState: name=" << *name; pending_properties_.insert(kNameProperty); adapter->SetName(*name, CreatePropertySetCallback(kNameProperty), CreatePropertyErrorCallback(kNameProperty)); } if (powered && adapter->IsPowered() != *powered) { + BLUETOOTH_LOG(USER) << "SetAdapterState: powerd=" << *powered; pending_properties_.insert(kPoweredProperty); adapter->SetPowered(*powered, CreatePropertySetCallback(kPoweredProperty), CreatePropertyErrorCallback(kPoweredProperty)); } if (discoverable && adapter->IsDiscoverable() != *discoverable) { + BLUETOOTH_LOG(USER) << "SetAdapterState: discoverable=" << *discoverable; pending_properties_.insert(kDiscoverableProperty); adapter->SetDiscoverable( *discoverable, CreatePropertySetCallback(kDiscoverableProperty), @@ -190,6 +194,7 @@ base::Closure BluetoothPrivateSetAdapterStateFunction::CreatePropertySetCallback( const std::string& property_name) { + BLUETOOTH_LOG(DEBUG) << "Set property succeeded: " << property_name; return base::Bind( &BluetoothPrivateSetAdapterStateFunction::OnAdapterPropertySet, this, property_name); @@ -198,6 +203,7 @@ base::Closure BluetoothPrivateSetAdapterStateFunction::CreatePropertyErrorCallback( const std::string& property_name) { + BLUETOOTH_LOG(DEBUG) << "Set property failed: " << property_name; return base::Bind( &BluetoothPrivateSetAdapterStateFunction::OnAdapterPropertyError, this, property_name);
diff --git a/extensions/browser/api/networking_private/BUILD.gn b/extensions/browser/api/networking_private/BUILD.gn index c74f2a6..721df15 100644 --- a/extensions/browser/api/networking_private/BUILD.gn +++ b/extensions/browser/api/networking_private/BUILD.gn
@@ -22,6 +22,7 @@ deps = [ "//extensions/common/api", + "//net", ] if (!is_chromeos && is_linux) {
diff --git a/gpu/config/BUILD.gn b/gpu/config/BUILD.gn index fb5cfb4..f8d7af0 100644 --- a/gpu/config/BUILD.gn +++ b/gpu/config/BUILD.gn
@@ -28,6 +28,36 @@ ] } +process_json_outputs = [ + "$target_gen_dir/gpu_driver_bug_list_arrays_and_structs_autogen.h", + "$target_gen_dir/gpu_driver_bug_list_autogen.cc", + "$target_gen_dir/gpu_driver_bug_list_autogen.h", + "$target_gen_dir/gpu_driver_bug_list_exceptions_autogen.h", + "$target_gen_dir/software_rendering_list_arrays_and_structs_autogen.h", + "$target_gen_dir/software_rendering_list_autogen.cc", + "$target_gen_dir/software_rendering_list_autogen.h", + "$target_gen_dir/software_rendering_list_exceptions_autogen.h", +] + +action("process_json") { + script = "process_json.py" + + inputs = [ + "gpu_driver_bug_list.json", + "gpu_driver_bug_workaround_type.h", + "gpu_feature_type.h", + "software_rendering_list.json", + ] + + outputs = process_json_outputs + + args = [ + "--output-dir", + rebase_path("$target_gen_dir", root_build_dir), + "--skip-testing-data", + ] +} + source_set("config_sources") { # External code should depend on this via //gpu/config above rather than # depending on this directly or the component build will break. @@ -42,10 +72,6 @@ "gpu_control_list.h", "gpu_driver_bug_list.cc", "gpu_driver_bug_list.h", - "gpu_driver_bug_list_arrays_and_structs_autogen.h", - "gpu_driver_bug_list_autogen.cc", - "gpu_driver_bug_list_autogen.h", - "gpu_driver_bug_list_exceptions_autogen.h", "gpu_driver_bug_workaround_type.h", "gpu_driver_bug_workarounds.cc", "gpu_driver_bug_workarounds.h", @@ -71,12 +97,10 @@ "gpu_test_expectations_parser.h", "gpu_util.cc", "gpu_util.h", - "software_rendering_list_arrays_and_structs_autogen.h", - "software_rendering_list_autogen.cc", - "software_rendering_list_autogen.h", - "software_rendering_list_exceptions_autogen.h", ] + sources += process_json_outputs + configs += [ # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. "//build/config/compiler:no_size_t_to_int_warning", @@ -85,6 +109,7 @@ deps = [ ":crash_keys", + ":process_json", "//base", "//third_party/re2", "//ui/gl",
diff --git a/gpu/config/gpu_driver_bug_list_arrays_and_structs_autogen.h b/gpu/config/gpu_driver_bug_list_arrays_and_structs_autogen.h deleted file mode 100644 index 355a9ed9..0000000 --- a/gpu/config/gpu_driver_bug_list_arrays_and_structs_autogen.h +++ /dev/null
@@ -1,2126 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is auto-generated from -// gpu/config/process_json.py -// It's formatted by clang-format using chromium coding style: -// clang-format -i -style=chromium filename -// DO NOT EDIT! - -#ifndef GPU_CONFIG_GPU_DRIVER_BUG_LIST_ARRAYS_AND_STRUCTS_AUTOGEN_H_ -#define GPU_CONFIG_GPU_DRIVER_BUG_LIST_ARRAYS_AND_STRUCTS_AUTOGEN_H_ - -#include "gpu/config/gpu_driver_bug_workaround_type.h" - -namespace gpu { -const int kFeatureListForEntry1[1] = { - USE_CLIENT_SIDE_ARRAYS_FOR_STREAM_BUFFERS, -}; - -const GpuControlList::GLStrings kGLStringsForEntry1 = { - "Imagination.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry2[1] = { - USE_CLIENT_SIDE_ARRAYS_FOR_STREAM_BUFFERS, -}; - -const GpuControlList::GLStrings kGLStringsForEntry2 = { - "ARM.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry6[1] = { - RESTORE_SCISSOR_ON_FBO_CHANGE, -}; - -const uint32_t kCrBugsForEntry6[2] = { - 165493, 222018, -}; - -const GpuControlList::GLStrings kGLStringsForEntry6 = { - "Qualcomm.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry7[1] = { - NEEDS_OFFSCREEN_BUFFER_WORKAROUND, -}; - -const uint32_t kCrBugsForEntry7[1] = { - 89557, -}; - -const int kFeatureListForEntry17[1] = { - EXIT_ON_CONTEXT_LOST, -}; - -const int kFeatureListForEntry19[1] = { - DISABLE_DEPTH_TEXTURE, -}; - -const char* kDisabledExtensionsForEntry19[1] = { - "GL_OES_depth_texture", -}; - -const uint32_t kCrBugsForEntry19[1] = { - 682075, -}; - -const GpuControlList::GLStrings kGLStringsForEntry19 = { - nullptr, "Adreno \\(TM\\) [23].*", nullptr, nullptr, -}; - -const int kFeatureListForEntry20[1] = { - DISABLE_EXT_DRAW_BUFFERS, -}; - -const uint32_t kDeviceIDsForEntry20[1] = { - 0x0fd5, -}; - -const int kFeatureListForEntry21[1] = { - UNBIND_FBO_ON_CONTEXT_SWITCH, -}; - -const uint32_t kCrBugsForEntry21[2] = { - 179250, 235935, -}; - -const GpuControlList::GLStrings kGLStringsForEntry21 = { - nullptr, nullptr, ".*GL_VIV_shader_binary.*", nullptr, -}; - -const int kFeatureListForEntry22[1] = { - UNBIND_FBO_ON_CONTEXT_SWITCH, -}; - -const uint32_t kCrBugsForEntry22[1] = { - 230896, -}; - -const GpuControlList::GLStrings kGLStringsForEntry22 = { - "Imagination.*", nullptr, nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry23[1] = { - "GL_OES_standard_derivatives", -}; - -const uint32_t kCrBugsForEntry23[1] = { - 243038, -}; - -const uint32_t kDeviceIDsForEntry23[2] = { - 0xa011, 0xa012, -}; - -const int kFeatureListForEntry24[1] = { - USE_NON_ZERO_SIZE_FOR_CLIENT_SIDE_STREAM_BUFFERS, -}; - -const uint32_t kCrBugsForEntry24[1] = { - 231082, -}; - -const GpuControlList::GLStrings kGLStringsForEntry24 = { - "ARM.*", ".*Mali-4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry26[1] = { - DISABLE_D3D11, -}; - -const int kFeatureListForEntry27[1] = { - SWIZZLE_RGBA_FOR_ASYNC_READPIXELS, -}; - -const uint32_t kCrBugsForEntry27[1] = { - 265115, -}; - -const uint32_t kDeviceIDsForEntry27[11] = { - 0x0402, 0x0406, 0x040a, 0x0412, 0x0416, 0x041a, - 0x0a04, 0x0a16, 0x0a22, 0x0a26, 0x0a2a, -}; - -const int kFeatureListForEntry30[1] = { - DISABLE_MULTIMONITOR_MULTISAMPLING, -}; - -const uint32_t kCrBugsForEntry30[1] = { - 237931, -}; - -const int kFeatureListForEntry31[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry31[5] = { - 154715, 10068, 269829, 294779, 285292, -}; - -const GpuControlList::GLStrings kGLStringsForEntry31 = { - "ARM.*", "Mali-T.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry32[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry32[1] = { - 179815, -}; - -const GpuControlList::GLStrings kGLStringsForEntry32 = { - "Broadcom.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry33[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const GpuControlList::GLStrings kGLStringsForEntry33 = { - "Imagination.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry34[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry34[3] = { - 179250, 229643, 230896, -}; - -const GpuControlList::GLStrings kGLStringsForEntry34 = { - nullptr, nullptr, ".*GL_VIV_shader_binary.*", nullptr, -}; - -const int kFeatureListForEntry35[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry35[1] = { - 163464, -}; - -const GpuControlList::GLStrings kGLStringsForEntry35 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry36[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry36[2] = { - 163464, 233612, -}; - -const GpuControlList::GLStrings kGLStringsForEntry36 = { - "Qualcomm.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry37[1] = { - INIT_GL_POSITION_IN_VERTEX_SHADER, -}; - -const uint32_t kCrBugsForEntry37[1] = { - 286468, -}; - -const GpuControlList::GLStrings kGLStringsForEntry37 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry38[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry38[1] = { - 289461, -}; - -const GpuControlList::GLStrings kGLStringsForEntry38 = { - "Qualcomm.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry39[1] = { - VALIDATE_MULTISAMPLE_BUFFER_ALLOCATION, -}; - -const uint32_t kCrBugsForEntry39[1] = { - 290391, -}; - -const int kFeatureListForEntry40[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry40[1] = { - 290876, -}; - -const GpuControlList::GLStrings kGLStringsForEntry40 = { - "ARM.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry42[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry42[2] = { - 290876, 488463, -}; - -const GpuControlList::GLStrings kGLStringsForEntry42 = { - "Imagination.*", "PowerVR SGX 5.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry43[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry43[1] = { - 299494, -}; - -const GpuControlList::GLStrings kGLStringsForEntry43 = { - nullptr, nullptr, ".*GL_VIV_shader_binary.*", nullptr, -}; - -const int kFeatureListForEntry44[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry44[1] = { - 301988, -}; - -const int kFeatureListForEntry45[1] = { - UNFOLD_SHORT_CIRCUIT_AS_TERNARY_OPERATION, -}; - -const uint32_t kCrBugsForEntry45[1] = { - 307751, -}; - -const int kFeatureListForEntry48[1] = { - FORCE_DISCRETE_GPU, -}; - -const uint32_t kCrBugsForEntry48[1] = { - 113703, -}; - -const char* kMachineModelNameForEntry48[1] = { - "MacBookPro", -}; - -const GpuControlList::MachineModelInfo kMachineModelInfoForEntry48 = { - arraysize(kMachineModelNameForEntry48), // machine model name size - kMachineModelNameForEntry48, // machine model names - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "8", - nullptr}, // machine model version -}; - -const GpuControlList::More kMoreForEntry48 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, "2", - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry49[1] = { - WAKE_UP_GPU_BEFORE_DRAWING, -}; - -const uint32_t kCrBugsForEntry49[1] = { - 309734, -}; - -const GpuControlList::GLStrings kGLStringsForEntry49 = { - "Qualcomm.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry51[1] = { - TEXSUBIMAGE_FASTER_THAN_TEXIMAGE, -}; - -const GpuControlList::GLStrings kGLStringsForEntry51 = { - nullptr, "ANGLE.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry54[1] = { - CLEAR_UNIFORMS_BEFORE_FIRST_PROGRAM_USE, -}; - -const uint32_t kCrBugsForEntry54[2] = { - 124764, 349137, -}; - -const int kFeatureListForEntry55[1] = { - COUNT_ALL_IN_VARYINGS_PACKING, -}; - -const uint32_t kCrBugsForEntry55[1] = { - 333885, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry55 = { - "Mesa", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry56[1] = { - COUNT_ALL_IN_VARYINGS_PACKING, -}; - -const uint32_t kCrBugsForEntry56[1] = { - 333885, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry56 = { - "Mesa", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry59[1] = { - DISABLE_CHROMIUM_FRAMEBUFFER_MULTISAMPLE, -}; - -const uint32_t kCrBugsForEntry59[1] = { - 116370, -}; - -const uint32_t kDeviceIDsForEntry59[5] = { - 0x0152, 0x0156, 0x015a, 0x0162, 0x0166, -}; - -const int kFeatureListForEntry64[1] = { - INIT_TEXTURE_MAX_ANISOTROPY, -}; - -const uint32_t kCrBugsForEntry64[1] = { - 348237, -}; - -const int kFeatureListForEntry65[1] = { - INIT_VERTEX_ATTRIBUTES, -}; - -const uint32_t kCrBugsForEntry65[1] = { - 351528, -}; - -const GpuControlList::GLStrings kGLStringsForEntry65 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry68[1] = { - DISABLE_POST_SUB_BUFFERS_FOR_ONSCREEN_SURFACES, -}; - -const uint32_t kCrBugsForEntry68[1] = { - 339493, -}; - -const GpuControlList::GLStrings kGLStringsForEntry68 = { - nullptr, ".*Mesa.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry69[3] = { - MAX_VARYING_VECTORS_16, MAX_VERTEX_UNIFORM_VECTORS_256, - MAX_FRAGMENT_UNIFORM_VECTORS_32, -}; - -const uint32_t kCrBugsForEntry69[1] = { - 174845, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry69 = { - "osmesa", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry70[1] = { - DISABLE_D3D11, -}; - -const uint32_t kCrBugsForEntry70[1] = { - 349929, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry70 = { - nullptr, // driver_vendor - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "8.17.12.6973", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const char* kDisabledExtensionsForEntry71[1] = { - "GL_OES_standard_derivatives", -}; - -const uint32_t kCrBugsForEntry71[1] = { - 368005, -}; - -const GpuControlList::GLStrings kGLStringsForEntry71 = { - nullptr, nullptr, ".*GL_VIV_shader_binary.*", nullptr, -}; - -const int kFeatureListForEntry72[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry72[1] = { - 369316, -}; - -const GpuControlList::GLStrings kGLStringsForEntry72 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry72 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, "3.1", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const char* kDisabledExtensionsForEntry74[1] = { - "EGL_KHR_fence_sync", -}; - -const uint32_t kCrBugsForEntry74[2] = { - 278606, 382686, -}; - -const GpuControlList::GLStrings kGLStringsForEntry74 = { - "Qualcomm.*", nullptr, nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry75[1] = { - "GL_EXT_multisampled_render_to_texture", -}; - -const uint32_t kCrBugsForEntry75[1] = { - 362435, -}; - -const GpuControlList::GLStrings kGLStringsForEntry75 = { - "ARM.*", ".*Mali-4.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry76[1] = { - "EGL_KHR_fence_sync", -}; - -const uint32_t kCrBugsForEntry76[1] = { - 371530, -}; - -const GpuControlList::GLStrings kGLStringsForEntry76 = { - "Imagination Technologies.*", nullptr, nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry77[1] = { - "EGL_KHR_fence_sync", -}; - -const uint32_t kCrBugsForEntry77[4] = { - 378691, 373360, 371530, 398964, -}; - -const GpuControlList::GLStrings kGLStringsForEntry77 = { - "ARM.*", "Mali.*", nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry77 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const char* kDisabledExtensionsForEntry78[1] = { - "EGL_KHR_fence_sync", -}; - -const uint32_t kCrBugsForEntry78[3] = { - 378691, 373360, 371530, -}; - -const GpuControlList::GLStrings kGLStringsForEntry78 = { - "Broadcom.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry82[1] = { - DISABLE_ASYNC_READPIXELS, -}; - -const uint32_t kCrBugsForEntry82[1] = { - 394510, -}; - -const GpuControlList::GLStrings kGLStringsForEntry82 = { - "Qualcomm.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry86[1] = { - DISABLE_D3D11, -}; - -const uint32_t kCrBugsForEntry86[1] = { - 395861, -}; - -const int kFeatureListForEntry87[1] = { - DISABLE_D3D11, -}; - -const uint32_t kCrBugsForEntry87[1] = { - 402134, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry87 = { - nullptr, // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "2011.1", - nullptr}, // driver_date -}; - -const int kFeatureListForEntry88[1] = { - SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS, -}; - -const uint32_t kCrBugsForEntry88[1] = { - 398694, -}; - -const int kFeatureListForEntry89[1] = { - REGENERATE_STRUCT_NAMES, -}; - -const uint32_t kCrBugsForEntry89[1] = { - 403957, -}; - -const int kFeatureListForEntry90[1] = { - REGENERATE_STRUCT_NAMES, -}; - -const uint32_t kCrBugsForEntry90[1] = { - 403957, -}; - -const int kFeatureListForEntry91[1] = { - ETC1_POWER_OF_TWO_ONLY, -}; - -const uint32_t kCrBugsForEntry91[2] = { - 150500, 414816, -}; - -const GpuControlList::GLStrings kGLStringsForEntry91 = { - "Imagination.*", "PowerVR SGX 5.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry92[1] = { - DISABLE_D3D11, -}; - -const uint32_t kCrBugsForEntry92[1] = { - 363721, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry92 = { - nullptr, // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "8.16", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry93[1] = { - DISABLE_ASYNC_READPIXELS, -}; - -const uint32_t kCrBugsForEntry93[1] = { - 340882, -}; - -const GpuControlList::GLStrings kGLStringsForEntry93 = { - "VMware.*", "Gallium.*", nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry93 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const char* kDisabledExtensionsForEntry94[1] = { - "EGL_KHR_wait_sync", -}; - -const uint32_t kCrBugsForEntry94[1] = { - 433057, -}; - -const GpuControlList::GLStrings kGLStringsForEntry94 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry94 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, "3.1", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry95[1] = { - GL_CLEAR_BROKEN, -}; - -const uint32_t kCrBugsForEntry95[1] = { - 421271, -}; - -const GpuControlList::GLStrings kGLStringsForEntry95 = { - "Imagination.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry95 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry97[1] = { - DISABLE_CHROMIUM_FRAMEBUFFER_MULTISAMPLE, -}; - -const uint32_t kCrBugsForEntry97[1] = { - 443517, -}; - -const GpuControlList::GLStrings kGLStringsForEntry97 = { - "Intel", "Intel.*BayTrail", nullptr, nullptr, -}; - -const int kFeatureListForEntry98[1] = { - USE_NON_ZERO_SIZE_FOR_CLIENT_SIDE_STREAM_BUFFERS, -}; - -const uint32_t kCrBugsForEntry98[1] = { - 451501, -}; - -const GpuControlList::GLStrings kGLStringsForEntry98 = { - "Imagination.*", "PowerVR SGX 540", nullptr, nullptr, -}; - -const int kFeatureListForEntry99[1] = { - IGNORE_EGL_SYNC_FAILURES, -}; - -const uint32_t kCrBugsForEntry99[1] = { - 453857, -}; - -const GpuControlList::GLStrings kGLStringsForEntry99 = { - "Qualcomm.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry100[1] = { - DISABLE_D3D11, -}; - -const uint32_t kCrBugsForEntry100[1] = { - 451420, -}; - -const int kFeatureListForEntry101[1] = { - DISABLE_POST_SUB_BUFFERS_FOR_ONSCREEN_SURFACES, -}; - -const uint32_t kCrBugsForEntry101[1] = { - 457511, -}; - -const GpuControlList::GLStrings kGLStringsForEntry101 = { - "ARM.*", "Mali-T.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry102[1] = { - UNBIND_ATTACHMENTS_ON_BOUND_RENDER_FBO_DELETE, -}; - -const uint32_t kCrBugsForEntry102[1] = { - 457027, -}; - -const GpuControlList::GLStrings kGLStringsForEntry102 = { - nullptr, "Adreno \\(TM\\) 4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry103[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry103[1] = { - 443060, -}; - -const GpuControlList::GLStrings kGLStringsForEntry103 = { - nullptr, "Adreno \\(TM\\) 4.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry104[1] = { - "GL_EXT_occlusion_query_boolean", -}; - -const GpuControlList::GLStrings kGLStringsForEntry104 = { - "Imagination.*", "PowerVR Rogue Han", nullptr, nullptr, -}; - -const int kFeatureListForEntry105[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry105[2] = { - 449488, 451230, -}; - -const GpuControlList::GLStrings kGLStringsForEntry105 = { - nullptr, "Mali-4.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry106[1] = { - "GL_EXT_occlusion_query_boolean", -}; - -const GpuControlList::GLStrings kGLStringsForEntry106 = { - "Imagination.*", "PowerVR SGX 544", nullptr, nullptr, -}; - -const int kFeatureListForEntry107[1] = { - AVOID_EGL_IMAGE_TARGET_TEXTURE_REUSE, -}; - -const char* kDisabledExtensionsForEntry107[1] = { - "EGL_KHR_wait_sync", -}; - -const uint32_t kCrBugsForEntry107[1] = { - 480992, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry107 = { - nullptr, // driver_vendor - {GpuControlList::kBetween, GpuControlList::kVersionStyleNumerical, "1.3", - "1.4"}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry107 = { - "Imagination.*", "PowerVR Rogue.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry108[1] = { - DISABLE_GL_RGB_FORMAT, -}; - -const uint32_t kCrBugsForEntry108[1] = { - 449150, -}; - -const GpuControlList::GLStrings kGLStringsForEntry108 = { - "ARM.*", ".*Mali-4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry109[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry109[2] = { - 449150, 514510, -}; - -const GpuControlList::GLStrings kGLStringsForEntry109 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry110[1] = { - "EGL_KHR_wait_sync", -}; - -const uint32_t kCrBugsForEntry110[1] = { - 482298, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry110 = { - nullptr, // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "95", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry110 = { - "Qualcomm.*", "Adreno \\(TM\\) [23].*", nullptr, nullptr, -}; - -const int kFeatureListForEntry111[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry111[1] = { - 485814, -}; - -const GpuControlList::GLStrings kGLStringsForEntry111 = { - "ARM.*", ".*Mali-4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry112[1] = { - DISABLE_TIMESTAMP_QUERIES, -}; - -const uint32_t kCrBugsForEntry112[1] = { - 477514, -}; - -const GpuControlList::GLStrings kGLStringsForEntry112 = { - "Qualcomm.*", "Adreno \\(TM\\) 3.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry113[1] = { - "GL_EXT_disjoint_timer_query", -}; - -const uint32_t kCrBugsForEntry113[1] = { - 477514, -}; - -const GpuControlList::GLStrings kGLStringsForEntry113 = { - nullptr, "Adreno \\(TM\\) 4.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry115[1] = { - "GL_EXT_disjoint_timer_query", -}; - -const uint32_t kCrBugsForEntry115[1] = { - 462553, -}; - -const GpuControlList::GLStrings kGLStringsForEntry115 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry115 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const char* kDisabledExtensionsForEntry116[1] = { - "GL_EXT_multisampled_render_to_texture", -}; - -const uint32_t kCrBugsForEntry116[1] = { - 490379, -}; - -const GpuControlList::GLStrings kGLStringsForEntry116 = { - nullptr, "Adreno \\(TM\\) 4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry117[1] = { - DISABLE_BLEND_EQUATION_ADVANCED, -}; - -const uint32_t kCrBugsForEntry117[1] = { - 488485, -}; - -const GpuControlList::GLStrings kGLStringsForEntry117 = { - "Qualcomm.*", ".*4\\d\\d", nullptr, nullptr, -}; - -const int kFeatureListForEntry118[1] = { - REMOVE_POW_WITH_CONSTANT_EXPONENT, -}; - -const uint32_t kCrBugsForEntry118[1] = { - 477306, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry118 = { - nullptr, // driver_vendor - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, "331", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry118 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry119[1] = { - EXIT_ON_CONTEXT_LOST, -}; - -const uint32_t kCrBugsForEntry119[1] = { - 496438, -}; - -const GpuControlList::GLStrings kGLStringsForEntry119 = { - "ARM.*", ".*Mali-4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry120[1] = { - MAX_COPY_TEXTURE_CHROMIUM_SIZE_262144, -}; - -const uint32_t kCrBugsForEntry120[1] = { - 498443, -}; - -const GpuControlList::GLStrings kGLStringsForEntry120 = { - "ARM.*", "Mali.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry123[1] = { - "GL_NV_path_rendering", -}; - -const uint32_t kCrBugsForEntry123[1] = { - 344330, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry123 = { - nullptr, // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "346", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry125[1] = { - UNBIND_EGL_CONTEXT_TO_FLUSH_DRIVER_CACHES, -}; - -const uint32_t kCrBugsForEntry125[1] = { - 509727, -}; - -const GpuControlList::GLStrings kGLStringsForEntry125 = { - nullptr, "Adreno.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry126[1] = { - DISABLE_PROGRAM_CACHE, -}; - -const uint32_t kCrBugsForEntry126[1] = { - 510637, -}; - -const GpuControlList::GLStrings kGLStringsForEntry126 = { - nullptr, "Adreno \\(TM\\) 3.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry127[1] = { - FORCE_CUBE_MAP_POSITIVE_X_ALLOCATION, -}; - -const uint32_t kCrBugsForEntry127[1] = { - 518889, -}; - -const GpuControlList::GLStrings kGLStringsForEntry127 = { - nullptr, "Adreno.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry128[1] = { - FORCE_CUBE_MAP_POSITIVE_X_ALLOCATION, -}; - -const uint32_t kCrBugsForEntry128[1] = { - 518889, -}; - -const int kFeatureListForEntry129[1] = { - FORCE_CUBE_COMPLETE, -}; - -const uint32_t kCrBugsForEntry129[1] = { - 518889, -}; - -const GpuControlList::GLStrings kGLStringsForEntry129 = { - nullptr, "ANGLE.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry130[1] = { - FORCE_CUBE_COMPLETE, -}; - -const uint32_t kCrBugsForEntry130[1] = { - 518889, -}; - -const GpuControlList::GLStrings kGLStringsForEntry130 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry131[1] = { - DISABLE_TEXTURE_STORAGE, -}; - -const uint32_t kCrBugsForEntry131[1] = { - 521904, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry131 = { - "Mesa", // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "10.6", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry132[1] = { - MSAA_IS_SLOW, -}; - -const uint32_t kCrBugsForEntry132[1] = { - 527565, -}; - -const int kFeatureListForEntry133[1] = { - MAX_COPY_TEXTURE_CHROMIUM_SIZE_1048576, -}; - -const uint32_t kCrBugsForEntry133[1] = { - 542478, -}; - -const GpuControlList::GLStrings kGLStringsForEntry133 = { - nullptr, "Adreno.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry134[1] = { - "GL_EXT_sRGB", -}; - -const uint32_t kCrBugsForEntry134[1] = { - 550292, -}; - -const GpuControlList::GLStrings kGLStringsForEntry134 = { - "Qualcomm.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry135[2] = { - DISABLE_OVERLAY_CA_LAYERS, DISABLE_POST_SUB_BUFFERS_FOR_ONSCREEN_SURFACES, -}; - -const uint32_t kCrBugsForEntry135[1] = { - 543324, -}; - -const uint32_t kDeviceIDsForEntry135[4] = { - 0x9440, 0x944a, 0x9488, 0x9490, -}; - -const int kFeatureListForEntry136[1] = { - SET_ZERO_LEVEL_BEFORE_GENERATING_MIPMAP, -}; - -const uint32_t kCrBugsForEntry136[1] = { - 560499, -}; - -const int kFeatureListForEntry137[1] = { - FORCE_CUBE_COMPLETE, -}; - -const uint32_t kCrBugsForEntry137[1] = { - 518889, -}; - -const GpuControlList::GLStrings kGLStringsForEntry137 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry138[1] = { - "GL_NV_path_rendering", -}; - -const uint32_t kCrBugsForEntry138[1] = { - 344330, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry138 = { - nullptr, // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "346", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry138 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry139[1] = { - "GL_EXT_texture_rg", -}; - -const uint32_t kCrBugsForEntry139[1] = { - 545904, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry139 = { - "Mesa", // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "11.1", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::More kMoreForEntry139 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const char* kDisabledExtensionsForEntry140[1] = { - "GL_EXT_sRGB", -}; - -const uint32_t kCrBugsForEntry140[2] = { - 550292, 565179, -}; - -const GpuControlList::GLStrings kGLStringsForEntry140 = { - "Qualcomm", "Adreno \\(TM\\) 4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry141[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry141[1] = { - 570897, -}; - -const int kFeatureListForEntry142[1] = { - PACK_PARAMETERS_WORKAROUND_WITH_PACK_BUFFER, -}; - -const uint32_t kCrBugsForEntry142[1] = { - 563714, -}; - -const GpuControlList::GLStrings kGLStringsForEntry142 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry143[2] = { - "GL_ARB_timer_query", "GL_EXT_timer_query", -}; - -const uint32_t kCrBugsForEntry143[2] = { - 540543, 576991, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry143 = { - "Mesa", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry144[1] = { - PACK_PARAMETERS_WORKAROUND_WITH_PACK_BUFFER, -}; - -const uint32_t kCrBugsForEntry144[1] = { - 563714, -}; - -const int kFeatureListForEntry145[1] = { - BROKEN_EGL_IMAGE_REF_COUNTING, -}; - -const uint32_t kCrBugsForEntry145[1] = { - 585250, -}; - -const GpuControlList::GLStrings kGLStringsForEntry145 = { - "Qualcomm.*", "Adreno \\(TM\\) [45].*", nullptr, nullptr, -}; - -const int kFeatureListForEntry147[1] = { - MAX_TEXTURE_SIZE_LIMIT_4096, -}; - -const int kFeatureListForEntry148[1] = { - SURFACE_TEXTURE_CANT_DETACH, -}; - -const GpuControlList::GLStrings kGLStringsForEntry148 = { - nullptr, ".*Mali-4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry149[1] = { - DISABLE_DIRECT_COMPOSITION, -}; - -const uint32_t kCrBugsForEntry149[1] = { - 588588, -}; - -const int kFeatureListForEntry150[1] = { - UNPACK_ALIGNMENT_WORKAROUND_WITH_UNPACK_BUFFER, -}; - -const uint32_t kCrBugsForEntry150[1] = { - 563714, -}; - -const GpuControlList::GLStrings kGLStringsForEntry150 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry151[1] = { - UNPACK_ALIGNMENT_WORKAROUND_WITH_UNPACK_BUFFER, -}; - -const uint32_t kCrBugsForEntry151[1] = { - 563714, -}; - -const int kFeatureListForEntry152[1] = { - USE_INTERMEDIARY_FOR_COPY_TEXTURE_IMAGE, -}; - -const uint32_t kCrBugsForEntry152[1] = { - 581777, -}; - -const char* kDisabledExtensionsForEntry153[1] = { - "GL_EXT_multisampled_render_to_texture", -}; - -const uint32_t kCrBugsForEntry153[1] = { - 594016, -}; - -const GpuControlList::GLStrings kGLStringsForEntry153 = { - "Vivante Corporation", "Vivante GC1000", nullptr, nullptr, -}; - -const int kFeatureListForEntry156[1] = { - AVDA_DONT_COPY_PICTURES, -}; - -const uint32_t kCrBugsForEntry156[1] = { - 598474, -}; - -const GpuControlList::GLStrings kGLStringsForEntry156 = { - "Imagination.*", "PowerVR SGX 544MP", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry157[1] = { - "EGL_KHR_fence_sync", -}; - -const uint32_t kCrBugsForEntry157[1] = { - 589814, -}; - -const GpuControlList::GLStrings kGLStringsForEntry157 = { - "ARM.*", "Mali.*", nullptr, nullptr, -}; - -const char* kMachineModelNameForEntry157[2] = { - "SM-G361H", "SM-G531H", -}; - -const GpuControlList::MachineModelInfo kMachineModelInfoForEntry157 = { - arraysize(kMachineModelNameForEntry157), // machine model name size - kMachineModelNameForEntry157, // machine model names - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // machine model version -}; - -const GpuControlList::More kMoreForEntry157 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry158[1] = { - DISABLE_OVERLAY_CA_LAYERS, -}; - -const uint32_t kCrBugsForEntry158[1] = { - 580616, -}; - -const uint32_t kDeviceIDsForEntry158[1] = { - 0x0fd5, -}; - -const int kFeatureListForEntry159[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry159[1] = { - 570897, -}; - -const GpuControlList::GLStrings kGLStringsForEntry159 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry160[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry160[1] = { - 601753, -}; - -const GpuControlList::GLStrings kGLStringsForEntry160 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry160 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry161[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry161[1] = { - 601753, -}; - -const GpuControlList::GLStrings kGLStringsForEntry161 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry161 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry162[1] = { - DISABLE_DISCARD_FRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry162[1] = { - 601753, -}; - -const GpuControlList::GLStrings kGLStringsForEntry162 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry162 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry163[1] = { - DISABLE_WEBGL_RGB_MULTISAMPLING_USAGE, -}; - -const uint32_t kCrBugsForEntry163[1] = { - 607130, -}; - -const int kFeatureListForEntry164[1] = { - DISABLE_MULTISAMPLING_COLOR_MASK_USAGE, -}; - -const uint32_t kCrBugsForEntry164[1] = { - 595948, -}; - -const uint32_t kDeviceIDsForEntry164[4] = { - 0x6720, 0x6740, 0x6741, 0x68b8, -}; - -const int kFeatureListForEntry165[1] = { - UNPACK_OVERLAPPING_ROWS_SEPARATELY_UNPACK_BUFFER, -}; - -const uint32_t kCrBugsForEntry165[1] = { - 596774, -}; - -const GpuControlList::GLStrings kGLStringsForEntry165 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry167[1] = { - AVDA_DONT_COPY_PICTURES, -}; - -const uint32_t kCrBugsForEntry167[1] = { - 610516, -}; - -const GpuControlList::GLStrings kGLStringsForEntry167 = { - "ARM.*", ".*Mali-4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry168[1] = { - DISABLE_POST_SUB_BUFFERS_FOR_ONSCREEN_SURFACES, -}; - -const uint32_t kCrBugsForEntry168[1] = { - 613722, -}; - -const int kFeatureListForEntry169[1] = { - USE_SHADOWED_TEX_LEVEL_PARAMS, -}; - -const uint32_t kCrBugsForEntry169[1] = { - 610153, -}; - -const int kFeatureListForEntry170[1] = { - DISABLE_DXGI_ZERO_COPY_VIDEO, -}; - -const uint32_t kCrBugsForEntry170[1] = { - 621190, -}; - -const int kFeatureListForEntry172[1] = { - DISABLE_FRAMEBUFFER_CMAA, -}; - -const uint32_t kCrBugsForEntry172[1] = { - 535198, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry172Exception0 = { - "Mesa", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry172Exception0 = { - "Intel.*", ".*Intel.*(Braswell|Broadwell|Skylake).*", nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry172Exception0 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "3.1", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const char* kDisabledExtensionsForEntry174[1] = { - "GL_EXT_multisampled_render_to_texture", -}; - -const uint32_t kCrBugsForEntry174[1] = { - 612474, -}; - -const GpuControlList::GLStrings kGLStringsForEntry174 = { - nullptr, "Adreno \\(TM\\) 4.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry175[1] = { - "GL_EXT_multisampled_render_to_texture", -}; - -const uint32_t kCrBugsForEntry175[1] = { - 612474, -}; - -const GpuControlList::GLStrings kGLStringsForEntry175 = { - nullptr, "Adreno \\(TM\\) 5.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry176[1] = { - GL_CLEAR_BROKEN, -}; - -const uint32_t kCrBugsForEntry176[1] = { - 633634, -}; - -const GpuControlList::GLStrings kGLStringsForEntry176 = { - "Intel", ".*Atom.*x5/x7.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry177[1] = { - GET_FRAG_DATA_INFO_BUG, -}; - -const uint32_t kCrBugsForEntry177[1] = { - 638340, -}; - -const int kFeatureListForEntry178[1] = { - DISABLE_BLEND_EQUATION_ADVANCED, -}; - -const uint32_t kCrBugsForEntry178[1] = { - 639470, -}; - -const GpuControlList::GLStrings kGLStringsForEntry178 = { - "Intel.*", "Intel(R) HD Graphics for BayTrail", nullptr, nullptr, -}; - -const int kFeatureListForEntry179[1] = { - REBIND_TRANSFORM_FEEDBACK_BEFORE_RESUME, -}; - -const uint32_t kCrBugsForEntry179[1] = { - 638514, -}; - -const int kFeatureListForEntry180[1] = { - AVOID_ONE_COMPONENT_EGL_IMAGES, -}; - -const uint32_t kCrBugsForEntry180[2] = { - 579060, 632461, -}; - -const GpuControlList::GLStrings kGLStringsForEntry180 = { - "Imagination.*", "PowerVR .*", nullptr, nullptr, -}; - -const int kFeatureListForEntry181[1] = { - RESET_BASE_MIPMAP_LEVEL_BEFORE_TEXSTORAGE, -}; - -const uint32_t kCrBugsForEntry181[1] = { - 640506, -}; - -const int kFeatureListForEntry182[1] = { - GL_CLEAR_BROKEN, -}; - -const uint32_t kCrBugsForEntry182[1] = { - 638691, -}; - -const GpuControlList::GLStrings kGLStringsForEntry182 = { - nullptr, ".*Mali-T7.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry183[1] = { - EMULATE_ABS_INT_FUNCTION, -}; - -const uint32_t kCrBugsForEntry183[1] = { - 642227, -}; - -const int kFeatureListForEntry184[1] = { - REWRITE_TEXELFETCHOFFSET_TO_TEXELFETCH, -}; - -const uint32_t kCrBugsForEntry184[1] = { - 642605, -}; - -const int kFeatureListForEntry185[1] = { - DISABLE_DXGI_ZERO_COPY_VIDEO, -}; - -const uint32_t kCrBugsForEntry185[1] = { - 635319, -}; - -const int kFeatureListForEntry186[1] = { - ADD_AND_TRUE_TO_LOOP_CONDITION, -}; - -const uint32_t kCrBugsForEntry186[1] = { - 644669, -}; - -const int kFeatureListForEntry187[1] = { - REWRITE_DO_WHILE_LOOPS, -}; - -const uint32_t kCrBugsForEntry187[1] = { - 644669, -}; - -const int kFeatureListForEntry188[1] = { - DISABLE_AV_SAMPLE_BUFFER_DISPLAY_LAYER, -}; - -const uint32_t kCrBugsForEntry188[1] = { - 632178, -}; - -const int kFeatureListForEntry189[1] = { - INIT_ONE_CUBE_MAP_LEVEL_BEFORE_COPYTEXIMAGE, -}; - -const uint32_t kCrBugsForEntry189[1] = { - 648197, -}; - -const int kFeatureListForEntry190[1] = { - DISABLE_POST_SUB_BUFFERS_FOR_ONSCREEN_SURFACES, -}; - -const uint32_t kCrBugsForEntry190[1] = { - 339493, -}; - -const GpuControlList::GLStrings kGLStringsForEntry190 = { - nullptr, nullptr, nullptr, ".*Mesa.*", -}; - -const int kFeatureListForEntry191[1] = { - EMULATE_ISNAN_ON_FLOAT, -}; - -const uint32_t kCrBugsForEntry191[1] = { - 650547, -}; - -const uint32_t kDeviceIDsForEntry191[25] = { - 0x1902, 0x1906, 0x190A, 0x190B, 0x190E, 0x1912, 0x1913, 0x1915, 0x1916, - 0x1917, 0x191A, 0x191B, 0x191D, 0x191E, 0x1921, 0x1923, 0x1926, 0x1927, - 0x192A, 0x192B, 0x192D, 0x1932, 0x193A, 0x193B, 0x193D, -}; - -const int kFeatureListForEntry192[1] = { - DECODE_ENCODE_SRGB_FOR_GENERATEMIPMAP, -}; - -const uint32_t kCrBugsForEntry192[1] = { - 634519, -}; - -const GpuControlList::More kMoreForEntry192 = { - GpuControlList::kGLTypeGL, // gl_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.4", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry193[1] = { - DECODE_ENCODE_SRGB_FOR_GENERATEMIPMAP, -}; - -const uint32_t kCrBugsForEntry193[1] = { - 634519, -}; - -const int kFeatureListForEntry194[1] = { - INIT_TWO_CUBE_MAP_LEVELS_BEFORE_COPYTEXIMAGE, -}; - -const uint32_t kCrBugsForEntry194[1] = { - 648197, -}; - -const int kFeatureListForEntry195[1] = { - USE_UNUSED_STANDARD_SHARED_BLOCKS, -}; - -const uint32_t kCrBugsForEntry195[1] = { - 618464, -}; - -const int kFeatureListForEntry196[1] = { - UNPACK_IMAGE_HEIGHT_WORKAROUND_WITH_UNPACK_BUFFER, -}; - -const uint32_t kCrBugsForEntry196[1] = { - 654258, -}; - -const int kFeatureListForEntry197[1] = { - ADJUST_SRC_DST_REGION_FOR_BLITFRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry197[1] = { - 644740, -}; - -const int kFeatureListForEntry198[1] = { - ADJUST_SRC_DST_REGION_FOR_BLITFRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry198[1] = { - 664740, -}; - -const int kFeatureListForEntry199[1] = { - ADJUST_SRC_DST_REGION_FOR_BLITFRAMEBUFFER, -}; - -const uint32_t kCrBugsForEntry199[1] = { - 664740, -}; - -const int kFeatureListForEntry200[1] = { - DISABLE_ES3_GL_CONTEXT, -}; - -const uint32_t kCrBugsForEntry200[1] = { - 657925, -}; - -const int kFeatureListForEntry201[2] = { - REMOVE_INVARIANT_AND_CENTROID_FOR_ESSL3, - DONT_REMOVE_INVARIANT_FOR_FRAGMENT_INPUT, -}; - -const uint32_t kCrBugsForEntry201[2] = { - 659326, 639760, -}; - -const int kFeatureListForEntry202[1] = { - REMOVE_INVARIANT_AND_CENTROID_FOR_ESSL3, -}; - -const uint32_t kCrBugsForEntry202[2] = { - 639760, 641129, -}; - -const int kFeatureListForEntry203[1] = { - REMOVE_INVARIANT_AND_CENTROID_FOR_ESSL3, -}; - -const uint32_t kCrBugsForEntry203[2] = { - 639760, 641129, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry203 = { - "Mesa", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::More kMoreForEntry203 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, "3.3", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const char* kDisabledExtensionsForEntry205[1] = { - "GL_EXT_multisampled_render_to_texture", -}; - -const uint32_t kCrBugsForEntry205[1] = { - 663811, -}; - -const GpuControlList::GLStrings kGLStringsForEntry205 = { - nullptr, "Adreno \\(TM\\) 5.*", nullptr, nullptr, -}; - -const char* kDisabledExtensionsForEntry206[2] = { - "GL_KHR_blend_equation_advanced", "GL_KHR_blend_equation_advanced_coherent", -}; - -const uint32_t kCrBugsForEntry206[1] = { - 661715, -}; - -const int kFeatureListForEntry207[1] = { - DECODE_ENCODE_SRGB_FOR_GENERATEMIPMAP, -}; - -const uint32_t kCrBugsForEntry207[1] = { - 634519, -}; - -const int kFeatureListForEntry208[1] = { - DECODE_ENCODE_SRGB_FOR_GENERATEMIPMAP, -}; - -const uint32_t kCrBugsForEntry208[1] = { - 634519, -}; - -const GpuControlList::GLStrings kGLStringsForEntry208 = { - nullptr, "ANGLE.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry209[1] = { - DECODE_ENCODE_SRGB_FOR_GENERATEMIPMAP, -}; - -const uint32_t kCrBugsForEntry209[1] = { - 634519, -}; - -const int kFeatureListForEntry210[1] = { - DECODE_ENCODE_SRGB_FOR_GENERATEMIPMAP, -}; - -const uint32_t kCrBugsForEntry210[1] = { - 634519, -}; - -const int kFeatureListForEntry211[1] = { - REWRITE_FLOAT_UNARY_MINUS_OPERATOR, -}; - -const uint32_t kCrBugsForEntry211[1] = { - 672380, -}; - -const int kFeatureListForEntry212[1] = { - DISABLE_PROGRAM_CACHING_FOR_TRANSFORM_FEEDBACK, -}; - -const uint32_t kCrBugsForEntry212[1] = { - 658074, -}; - -const GpuControlList::GLStrings kGLStringsForEntry212 = { - nullptr, "Adreno.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry213[1] = { - USE_VIRTUALIZED_GL_CONTEXTS, -}; - -const uint32_t kCrBugsForEntry213[1] = { - 678508, -}; - -const GpuControlList::GLStrings kGLStringsForEntry213 = { - "ARM.*", "Mali-G.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry214[2] = { - DISABLE_CHROMIUM_FRAMEBUFFER_MULTISAMPLE, - FORCE_UPDATE_SCISSOR_STATE_WHEN_BINDING_FBO0, -}; - -const uint32_t kCrBugsForEntry214[5] = { - 670607, 682075, 696627, 698197, 707839, -}; - -const GpuControlList::GLStrings kGLStringsForEntry214 = { - nullptr, "Adreno \\(TM\\) 3.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry215[1] = { - USE_GPU_DRIVER_WORKAROUND_FOR_TESTING, -}; - -const uint32_t kCrBugsForEntry215[1] = { - 682912, -}; - -const uint32_t kDeviceIDsForEntry215[1] = { - 0xbad9, -}; - -const int kFeatureListForEntry216[1] = { - PACK_PARAMETERS_WORKAROUND_WITH_PACK_BUFFER, -}; - -const uint32_t kCrBugsForEntry216[1] = { - 698926, -}; - -const GpuControlList::GLStrings kGLStringsForEntry216 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry217[1] = { - UNPACK_ALIGNMENT_WORKAROUND_WITH_UNPACK_BUFFER, -}; - -const uint32_t kCrBugsForEntry217[1] = { - 698926, -}; - -const GpuControlList::GLStrings kGLStringsForEntry217 = { - "NVIDIA.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry219[1] = { - DISABLE_DXGI_ZERO_COPY_VIDEO, -}; - -const uint32_t kCrBugsForEntry219[1] = { - 623029, -}; - -const int kFeatureListForEntry220[1] = { - DISABLE_NV12_DXGI_VIDEO, -}; - -const uint32_t kCrBugsForEntry220[1] = { - 644293, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry220 = { - nullptr, // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "21.19.519.2", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry221[1] = { - DISALLOW_LARGE_INSTANCED_DRAW, -}; - -const uint32_t kCrBugsForEntry221[1] = { - 701682, -}; - -const GpuControlList::GLStrings kGLStringsForEntry221 = { - nullptr, "Adreno \\(TM\\) 3.*", nullptr, nullptr, -}; - -} // namespace gpu - -#endif // GPU_CONFIG_GPU_DRIVER_BUG_LIST_ARRAYS_AND_STRUCTS_AUTOGEN_H_
diff --git a/gpu/config/gpu_driver_bug_list_autogen.cc b/gpu/config/gpu_driver_bug_list_autogen.cc deleted file mode 100644 index afdc5f9..0000000 --- a/gpu/config/gpu_driver_bug_list_autogen.cc +++ /dev/null
@@ -1,4528 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is auto-generated from -// gpu/config/process_json.py -// It's formatted by clang-format using chromium coding style: -// clang-format -i -style=chromium filename -// DO NOT EDIT! - -#include "gpu/config/gpu_driver_bug_list_autogen.h" - -#include "gpu/config/gpu_driver_bug_list_arrays_and_structs_autogen.h" -#include "gpu/config/gpu_driver_bug_list_exceptions_autogen.h" - -namespace gpu { - -const char kGpuDriverBugListVersion[] = "10.2"; - -const size_t kGpuDriverBugListEntryCount = 171; -const GpuControlList::Entry kGpuDriverBugListEntries[171] = { - { - 1, // id - "Imagination driver doesn't like uploading lots of buffer data " - "constantly", - arraysize(kFeatureListForEntry1), // features size - kFeatureListForEntry1, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry1, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 2, // id - "ARM driver doesn't like uploading lots of buffer data constantly", - arraysize(kFeatureListForEntry2), // features size - kFeatureListForEntry2, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry2, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 6, // id - "Restore scissor on FBO change with Qualcomm GPUs on older versions of " - "Android", - arraysize(kFeatureListForEntry6), // features size - kFeatureListForEntry6, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry6), // CrBugs size - kCrBugsForEntry6, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.3", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry6, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 7, // id - "Work around a bug in offscreen buffers on NVIDIA GPUs on Macs", - arraysize(kFeatureListForEntry7), // features size - kFeatureListForEntry7, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry7), // CrBugs size - kCrBugsForEntry7, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 17, // id - "Some drivers are unable to reset the D3D device in the GPU process " - "sandbox", - arraysize(kFeatureListForEntry17), // features size - kFeatureListForEntry17, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 19, // id - "Disable depth textures on older Qualcomm GPUs (legacy blacklist " - "entry, original problem unclear)", - arraysize(kFeatureListForEntry19), // features size - kFeatureListForEntry19, // features - arraysize(kDisabledExtensionsForEntry19), // DisabledExtensions size - kDisabledExtensionsForEntry19, // DisabledExtensions - arraysize(kCrBugsForEntry19), // CrBugs size - kCrBugsForEntry19, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry19, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 20, // id - "Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X due to driver " - "bugs", - arraysize(kFeatureListForEntry20), // features size - kFeatureListForEntry20, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry20), // DeviceIDs size - kDeviceIDsForEntry20, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 21, // id - "Vivante GPUs are buggy with context switching", - arraysize(kFeatureListForEntry21), // features size - kFeatureListForEntry21, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry21), // CrBugs size - kCrBugsForEntry21, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry21, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 22, // id - "Imagination drivers are buggy with context switching", - arraysize(kFeatureListForEntry22), // features size - kFeatureListForEntry22, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry22), // CrBugs size - kCrBugsForEntry22, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry22, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 23, // id - "Disable OES_standard_derivative on Intel Pineview M Gallium drivers", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry23), // DisabledExtensions size - kDisabledExtensionsForEntry23, // DisabledExtensions - arraysize(kCrBugsForEntry23), // CrBugs size - kCrBugsForEntry23, // CrBugs - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry23), // DeviceIDs size - kDeviceIDsForEntry23, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 24, // id - "Mali-4xx drivers throw an error when a buffer object's size is set to " - "0", - arraysize(kFeatureListForEntry24), // features size - kFeatureListForEntry24, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry24), // CrBugs size - kCrBugsForEntry24, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry24, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 26, // id - "Disable use of Direct3D 11 on Windows Vista and lower", - arraysize(kFeatureListForEntry26), // features size - kFeatureListForEntry26, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, "6.0", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 27, // id - "Async Readpixels with GL_BGRA format is broken on Haswell chipset on " - "Macs", - arraysize(kFeatureListForEntry27), // features size - kFeatureListForEntry27, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry27), // CrBugs size - kCrBugsForEntry27, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry27), // DeviceIDs size - kDeviceIDsForEntry27, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 30, // id - "Multisampling is buggy on OSX when multiple monitors are connected", - arraysize(kFeatureListForEntry30), // features size - kFeatureListForEntry30, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry30), // CrBugs size - kCrBugsForEntry30, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 31, // id - "The Mali-Txxx driver does not guarantee flush ordering", - arraysize(kFeatureListForEntry31), // features size - kFeatureListForEntry31, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry31), // CrBugs size - kCrBugsForEntry31, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry31, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 32, // id - "Share groups are not working on (older?) Broadcom drivers", - arraysize(kFeatureListForEntry32), // features size - kFeatureListForEntry32, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry32), // CrBugs size - kCrBugsForEntry32, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry32, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 33, // id - "Share group-related crashes and poor context switching perf on " - "Imagination drivers", - arraysize(kFeatureListForEntry33), // features size - kFeatureListForEntry33, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry33, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 34, // id - "Share groups are not working on (older?) Vivante drivers", - arraysize(kFeatureListForEntry34), // features size - kFeatureListForEntry34, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry34), // CrBugs size - kCrBugsForEntry34, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry34, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 35, // id - "Share-group related crashes on older NVIDIA drivers", - arraysize(kFeatureListForEntry35), // features size - kFeatureListForEntry35, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry35), // CrBugs size - kCrBugsForEntry35, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.3", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry35, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 36, // id - "Share-group related crashes on Qualcomm drivers", - arraysize(kFeatureListForEntry36), // features size - kFeatureListForEntry36, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry36), // CrBugs size - kCrBugsForEntry36, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.3", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry36, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 37, // id - "Program link fails in NVIDIA Linux if gl_Position is not set", - arraysize(kFeatureListForEntry37), // features size - kFeatureListForEntry37, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry37), // CrBugs size - kCrBugsForEntry37, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry37, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 38, // id - "Non-virtual contexts on Qualcomm sometimes cause out-of-order frames", - arraysize(kFeatureListForEntry38), // features size - kFeatureListForEntry38, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry38), // CrBugs size - kCrBugsForEntry38, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry38, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 39, // id - "Multisampled renderbuffer allocation must be validated on some Macs", - arraysize(kFeatureListForEntry39), // features size - kFeatureListForEntry39, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry39), // CrBugs size - kCrBugsForEntry39, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "10.10", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 40, // id - "Framebuffer discarding causes flickering on old ARM drivers", - arraysize(kFeatureListForEntry40), // features size - kFeatureListForEntry40, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry40), // CrBugs size - kCrBugsForEntry40, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.4", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry40, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 42, // id - "Framebuffer discarding causes flickering on older IMG drivers", - arraysize(kFeatureListForEntry42), // features size - kFeatureListForEntry42, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry42), // CrBugs size - kCrBugsForEntry42, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry42, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 43, // id - "Framebuffer discarding doesn't accept trivial attachments on Vivante", - arraysize(kFeatureListForEntry43), // features size - kFeatureListForEntry43, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry43), // CrBugs size - kCrBugsForEntry43, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry43, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 44, // id - "Framebuffer discarding causes jumpy scrolling on Mali drivers", - arraysize(kFeatureListForEntry44), // features size - kFeatureListForEntry44, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry44), // CrBugs size - kCrBugsForEntry44, // CrBugs - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 45, // id - "Unfold short circuit on Mac OS X", - arraysize(kFeatureListForEntry45), // features size - kFeatureListForEntry45, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry45), // CrBugs size - kCrBugsForEntry45, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 48, // id - "Force to use discrete GPU on older MacBookPro models", - arraysize(kFeatureListForEntry48), // features size - kFeatureListForEntry48, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry48), // CrBugs size - kCrBugsForEntry48, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - &kMachineModelInfoForEntry48, // machine model info - &kMoreForEntry48, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 49, // id - "The first draw operation from an idle state is slow", - arraysize(kFeatureListForEntry49), // features size - kFeatureListForEntry49, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry49), // CrBugs size - kCrBugsForEntry49, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry49, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 51, // id - "TexSubImage is faster for full uploads on ANGLE", - arraysize(kFeatureListForEntry51), // features size - kFeatureListForEntry51, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry51, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 54, // id - "Clear uniforms before first program use on all platforms", - arraysize(kFeatureListForEntry54), // features size - kFeatureListForEntry54, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry54), // CrBugs size - kCrBugsForEntry54, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry54), // exceptions count - kExceptionsForEntry54, // exceptions - }, - { - 55, // id - "Mesa drivers in Linux handle varyings without static use incorrectly", - arraysize(kFeatureListForEntry55), // features size - kFeatureListForEntry55, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry55), // CrBugs size - kCrBugsForEntry55, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry55, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 56, // id - "Mesa drivers in ChromeOS handle varyings without static use " - "incorrectly", - arraysize(kFeatureListForEntry56), // features size - kFeatureListForEntry56, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry56), // CrBugs size - kCrBugsForEntry56, // CrBugs - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry56, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 59, // id - "Multisampling is buggy in Intel IvyBridge", - arraysize(kFeatureListForEntry59), // features size - kFeatureListForEntry59, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry59), // CrBugs size - kCrBugsForEntry59, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry59), // DeviceIDs size - kDeviceIDsForEntry59, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 64, // id - "Linux AMD drivers incorrectly return initial value of 1 for " - "TEXTURE_MAX_ANISOTROPY", - arraysize(kFeatureListForEntry64), // features size - kFeatureListForEntry64, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry64), // CrBugs size - kCrBugsForEntry64, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 65, // id - "Linux NVIDIA drivers don't have the correct defaults for vertex " - "attributes", - arraysize(kFeatureListForEntry65), // features size - kFeatureListForEntry65, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry65), // CrBugs size - kCrBugsForEntry65, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry65, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 68, // id - "Disable partial swaps on Mesa drivers (detected with GL_RENDERER)", - arraysize(kFeatureListForEntry68), // features size - kFeatureListForEntry68, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry68), // CrBugs size - kCrBugsForEntry68, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry68, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 69, // id - "Some shaders in Skia need more than the min available vertex and " - "fragment shader uniform vectors in case of OSMesa", - arraysize(kFeatureListForEntry69), // features size - kFeatureListForEntry69, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry69), // CrBugs size - kCrBugsForEntry69, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry69, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 70, // id - "Disable D3D11 on older nVidia drivers", - arraysize(kFeatureListForEntry70), // features size - kFeatureListForEntry70, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry70), // CrBugs size - kCrBugsForEntry70, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry70, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 71, // id - "Vivante's support of OES_standard_derivatives is buggy", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry71), // DisabledExtensions size - kDisabledExtensionsForEntry71, // DisabledExtensions - arraysize(kCrBugsForEntry71), // CrBugs size - kCrBugsForEntry71, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry71, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 72, // id - "Use virtual contexts on NVIDIA with GLES 3.1", - arraysize(kFeatureListForEntry72), // features size - kFeatureListForEntry72, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry72), // CrBugs size - kCrBugsForEntry72, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry72, // GL strings - nullptr, // machine model info - &kMoreForEntry72, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 74, // id - "Testing EGL sync fences was broken on most Qualcomm drivers", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry74), // DisabledExtensions size - kDisabledExtensionsForEntry74, // DisabledExtensions - arraysize(kCrBugsForEntry74), // CrBugs size - kCrBugsForEntry74, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "4.4.4", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry74, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 75, // id - "Mali-4xx support of EXT_multisampled_render_to_texture is buggy on " - "Android < 4.3", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry75), // DisabledExtensions size - kDisabledExtensionsForEntry75, // DisabledExtensions - arraysize(kCrBugsForEntry75), // CrBugs size - kCrBugsForEntry75, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.3", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry75, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 76, // id - "Testing EGL sync fences was broken on IMG", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry76), // DisabledExtensions size - kDisabledExtensionsForEntry76, // DisabledExtensions - arraysize(kCrBugsForEntry76), // CrBugs size - kCrBugsForEntry76, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "4.4.4", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry76, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 77, // id - "Testing fences was broken on Mali ES2 drivers", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry77), // DisabledExtensions size - kDisabledExtensionsForEntry77, // DisabledExtensions - arraysize(kCrBugsForEntry77), // CrBugs size - kCrBugsForEntry77, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "4.4.4", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry77, // GL strings - nullptr, // machine model info - &kMoreForEntry77, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 78, // id - "Testing fences was broken on Broadcom drivers", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry78), // DisabledExtensions size - kDisabledExtensionsForEntry78, // DisabledExtensions - arraysize(kCrBugsForEntry78), // CrBugs size - kCrBugsForEntry78, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "4.4.4", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry78, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 82, // id - "PBO mappings segfault on certain older Qualcomm drivers", - arraysize(kFeatureListForEntry82), // features size - kFeatureListForEntry82, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry82), // CrBugs size - kCrBugsForEntry82, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.3", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry82, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 86, // id - "Disable use of Direct3D 11 on Matrox video cards", - arraysize(kFeatureListForEntry86), // features size - kFeatureListForEntry86, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry86), // CrBugs size - kCrBugsForEntry86, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x102b, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 87, // id - "Disable use of Direct3D 11 on older AMD drivers", - arraysize(kFeatureListForEntry87), // features size - kFeatureListForEntry87, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry87), // CrBugs size - kCrBugsForEntry87, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry87, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 88, // id - "Always rewrite vec/mat constructors to be consistent", - arraysize(kFeatureListForEntry88), // features size - kFeatureListForEntry88, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry88), // CrBugs size - kCrBugsForEntry88, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 89, // id - "Mac drivers handle struct scopes incorrectly", - arraysize(kFeatureListForEntry89), // features size - kFeatureListForEntry89, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry89), // CrBugs size - kCrBugsForEntry89, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 90, // id - "Linux AMD drivers handle struct scopes incorrectly", - arraysize(kFeatureListForEntry90), // features size - kFeatureListForEntry90, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry90), // CrBugs size - kCrBugsForEntry90, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 91, // id - "ETC1 non-power-of-two sized textures crash older IMG drivers", - arraysize(kFeatureListForEntry91), // features size - kFeatureListForEntry91, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry91), // CrBugs size - kCrBugsForEntry91, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry91, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 92, // id - "Old Intel drivers cannot reliably support D3D11", - arraysize(kFeatureListForEntry92), // features size - kFeatureListForEntry92, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry92), // CrBugs size - kCrBugsForEntry92, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry92, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 93, // id - "The GL implementation on the Android emulator has problems with PBOs.", - arraysize(kFeatureListForEntry93), // features size - kFeatureListForEntry93, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry93), // CrBugs size - kCrBugsForEntry93, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry93, // GL strings - nullptr, // machine model info - &kMoreForEntry93, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 94, // id - "Disable EGL_KHR_wait_sync on NVIDIA with GLES 3.1", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry94), // DisabledExtensions size - kDisabledExtensionsForEntry94, // DisabledExtensions - arraysize(kCrBugsForEntry94), // CrBugs size - kCrBugsForEntry94, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "5.0.2", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry94, // GL strings - nullptr, // machine model info - &kMoreForEntry94, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 95, // id - "glClear does not always work on these drivers", - arraysize(kFeatureListForEntry95), // features size - kFeatureListForEntry95, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry95), // CrBugs size - kCrBugsForEntry95, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry95, // GL strings - nullptr, // machine model info - &kMoreForEntry95, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 97, // id - "Multisampling has poor performance in Intel BayTrail", - arraysize(kFeatureListForEntry97), // features size - kFeatureListForEntry97, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry97), // CrBugs size - kCrBugsForEntry97, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry97, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 98, // id - "PowerVR SGX 540 drivers throw GL_OUT_OF_MEMORY error when a buffer " - "object's size is set to 0", - arraysize(kFeatureListForEntry98), // features size - kFeatureListForEntry98, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry98), // CrBugs size - kCrBugsForEntry98, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry98, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 99, // id - "Qualcomm driver before Lollipop deletes egl sync objects after " - "context destruction", - arraysize(kFeatureListForEntry99), // features size - kFeatureListForEntry99, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry99), // CrBugs size - kCrBugsForEntry99, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "5.0.0", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry99, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 100, // id - "Disable Direct3D11 on systems with AMD switchable graphics", - arraysize(kFeatureListForEntry100), // features size - kFeatureListForEntry100, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry100), // CrBugs size - kCrBugsForEntry100, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleAMDSwitchable, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 101, // id - "The Mali-Txxx driver hangs when reading from currently displayed " - "buffer", - arraysize(kFeatureListForEntry101), // features size - kFeatureListForEntry101, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry101), // CrBugs size - kCrBugsForEntry101, // CrBugs - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry101, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 102, // id - "Adreno 420 driver loses FBO attachment contents on bound FBO deletion", - arraysize(kFeatureListForEntry102), // features size - kFeatureListForEntry102, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry102), // CrBugs size - kCrBugsForEntry102, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kGT, GpuControlList::kVersionStyleNumerical, - "5.0.2", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry102, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 103, // id - "Adreno 420 driver drops draw calls after FBO invalidation", - arraysize(kFeatureListForEntry103), // features size - kFeatureListForEntry103, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry103), // CrBugs size - kCrBugsForEntry103, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry103, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 104, // id - "EXT_occlusion_query_boolean hangs on MediaTek MT8135 pre-Lollipop", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry104), // DisabledExtensions size - kDisabledExtensionsForEntry104, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "5.0.0", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry104, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 105, // id - "Framebuffer discarding causes corruption on Mali-4xx", - arraysize(kFeatureListForEntry105), // features size - kFeatureListForEntry105, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry105), // CrBugs size - kCrBugsForEntry105, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry105, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 106, // id - "EXT_occlusion_query_boolean hangs on PowerVR SGX 544 (IMG) drivers", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry106), // DisabledExtensions size - kDisabledExtensionsForEntry106, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry106, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 107, // id - "Workaround IMG PowerVR G6xxx drivers bugs", - arraysize(kFeatureListForEntry107), // features size - kFeatureListForEntry107, // features - arraysize(kDisabledExtensionsForEntry107), // DisabledExtensions size - kDisabledExtensionsForEntry107, // DisabledExtensions - arraysize(kCrBugsForEntry107), // CrBugs size - kCrBugsForEntry107, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kBetween, GpuControlList::kVersionStyleNumerical, - "5.0.0", "5.1.99"}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry107, // driver info - &kGLStringsForEntry107, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 108, // id - "Mali-4xx does not support GL_RGB format", - arraysize(kFeatureListForEntry108), // features size - kFeatureListForEntry108, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry108), // CrBugs size - kCrBugsForEntry108, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry108, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 109, // id - "MakeCurrent is slow on Linux with NVIDIA drivers", - arraysize(kFeatureListForEntry109), // features size - kFeatureListForEntry109, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry109), // CrBugs size - kCrBugsForEntry109, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry109, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 110, // id - "EGL Sync server causes crashes on Adreno 2xx and 3xx drivers", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry110), // DisabledExtensions size - kDisabledExtensionsForEntry110, // DisabledExtensions - arraysize(kCrBugsForEntry110), // CrBugs size - kCrBugsForEntry110, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry110, // driver info - &kGLStringsForEntry110, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 111, // id - "Discard Framebuffer breaks WebGL on Mali-4xx Linux", - arraysize(kFeatureListForEntry111), // features size - kFeatureListForEntry111, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry111), // CrBugs size - kCrBugsForEntry111, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry111, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 112, // id - "EXT_disjoint_timer_query fails after 2 queries on adreno 3xx in " - "lollypop", - arraysize(kFeatureListForEntry112), // features size - kFeatureListForEntry112, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry112), // CrBugs size - kCrBugsForEntry112, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, - "5.0.0", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry112, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 113, // id - "EXT_disjoint_timer_query fails after 256 queries on adreno 4xx", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry113), // DisabledExtensions size - kDisabledExtensionsForEntry113, // DisabledExtensions - arraysize(kCrBugsForEntry113), // CrBugs size - kCrBugsForEntry113, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry113, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 115, // id - "glGetIntegerv with GL_GPU_DISJOINT_EXT causes GL_INVALID_ENUM error", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry115), // DisabledExtensions size - kDisabledExtensionsForEntry115, // DisabledExtensions - arraysize(kCrBugsForEntry115), // CrBugs size - kCrBugsForEntry115, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry115, // GL strings - nullptr, // machine model info - &kMoreForEntry115, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 116, // id - "Adreno 420 support for EXT_multisampled_render_to_texture is buggy on " - "Android < 5.1", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry116), // DisabledExtensions size - kDisabledExtensionsForEntry116, // DisabledExtensions - arraysize(kCrBugsForEntry116), // CrBugs size - kCrBugsForEntry116, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "5.1", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry116, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 117, // id - "GL_KHR_blend_equation_advanced breaks blending on Adreno 4xx", - arraysize(kFeatureListForEntry117), // features size - kFeatureListForEntry117, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry117), // CrBugs size - kCrBugsForEntry117, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry117, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 118, // id - "NVIDIA 331 series drivers shader compiler may crash when attempting " - "to optimize pow()", - arraysize(kFeatureListForEntry118), // features size - kFeatureListForEntry118, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry118), // CrBugs size - kCrBugsForEntry118, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry118, // driver info - &kGLStringsForEntry118, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 119, // id - "Context lost recovery often fails on Mali-400/450 on Android.", - arraysize(kFeatureListForEntry119), // features size - kFeatureListForEntry119, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry119), // CrBugs size - kCrBugsForEntry119, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry119, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 120, // id - "CHROMIUM_copy_texture is slow on Mali pre-Lollipop", - arraysize(kFeatureListForEntry120), // features size - kFeatureListForEntry120, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry120), // CrBugs size - kCrBugsForEntry120, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "5.0.0", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry120, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 123, // id - "NVIDIA drivers before 346 lack features in NV_path_rendering and " - "related extensions to implement driver level path rendering.", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry123), // DisabledExtensions size - kDisabledExtensionsForEntry123, // DisabledExtensions - arraysize(kCrBugsForEntry123), // CrBugs size - kCrBugsForEntry123, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry123, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 125, // id - "glFinish doesn't clear caches on Android", - arraysize(kFeatureListForEntry125), // features size - kFeatureListForEntry125, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry125), // CrBugs size - kCrBugsForEntry125, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry125, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 126, // id - "Program binaries contain incorrect bound attribute locations on " - "Adreno 3xx GPUs", - arraysize(kFeatureListForEntry126), // features size - kFeatureListForEntry126, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry126), // CrBugs size - kCrBugsForEntry126, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry126, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 127, // id - "Android Adreno crashes on binding incomplete cube map texture to FBO", - arraysize(kFeatureListForEntry127), // features size - kFeatureListForEntry127, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry127), // CrBugs size - kCrBugsForEntry127, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry127, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 128, // id - "Linux ATI drivers crash on binding incomplete cube map texture to FBO", - arraysize(kFeatureListForEntry128), // features size - kFeatureListForEntry128, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry128), // CrBugs size - kCrBugsForEntry128, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 129, // id - "ANGLE crash on glReadPixels from incomplete cube map texture", - arraysize(kFeatureListForEntry129), // features size - kFeatureListForEntry129, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry129), // CrBugs size - kCrBugsForEntry129, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry129, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 130, // id - "NVIDIA fails glReadPixels from incomplete cube map texture", - arraysize(kFeatureListForEntry130), // features size - kFeatureListForEntry130, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry130), // CrBugs size - kCrBugsForEntry130, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry130, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 131, // id - "Linux Mesa drivers crash on glTexSubImage2D() to texture storage " - "bound to FBO", - arraysize(kFeatureListForEntry131), // features size - kFeatureListForEntry131, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry131), // CrBugs size - kCrBugsForEntry131, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry131, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 132, // id - "On Intel GPUs MSAA performance is not acceptable for GPU " - "rasterization", - arraysize(kFeatureListForEntry132), // features size - kFeatureListForEntry132, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry132), // CrBugs size - kCrBugsForEntry132, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryActive, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 133, // id - "CHROMIUM_copy_texture with 1MB copy per flush to avoid unwanted cache " - "growth on Adreno", - arraysize(kFeatureListForEntry133), // features size - kFeatureListForEntry133, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry133), // CrBugs size - kCrBugsForEntry133, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry133, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 134, // id - "glReadPixels fails on FBOs with SRGB_ALPHA textures", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry134), // DisabledExtensions size - kDisabledExtensionsForEntry134, // DisabledExtensions - arraysize(kCrBugsForEntry134), // CrBugs size - kCrBugsForEntry134, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "5.0", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry134, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 135, // id - "Screen flickers on 2009 iMacs", - arraysize(kFeatureListForEntry135), // features size - kFeatureListForEntry135, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry135), // CrBugs size - kCrBugsForEntry135, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - arraysize(kDeviceIDsForEntry135), // DeviceIDs size - kDeviceIDsForEntry135, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 136, // id - "glGenerateMipmap fails if the zero texture level is not set on some " - "Mac drivers", - arraysize(kFeatureListForEntry136), // features size - kFeatureListForEntry136, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry136), // CrBugs size - kCrBugsForEntry136, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 137, // id - "NVIDIA fails glReadPixels from incomplete cube map texture", - arraysize(kFeatureListForEntry137), // features size - kFeatureListForEntry137, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry137), // CrBugs size - kCrBugsForEntry137, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry137, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 138, // id - "NVIDIA drivers before 346 lack features in NV_path_rendering and " - "related extensions to implement driver level path rendering.", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry138), // DisabledExtensions size - kDisabledExtensionsForEntry138, // DisabledExtensions - arraysize(kCrBugsForEntry138), // CrBugs size - kCrBugsForEntry138, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry138, // driver info - &kGLStringsForEntry138, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 139, // id - "Mesa drivers wrongly report supporting GL_EXT_texture_rg with GLES " - "2.0 prior version 11.1", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry139), // DisabledExtensions size - kDisabledExtensionsForEntry139, // DisabledExtensions - arraysize(kCrBugsForEntry139), // CrBugs size - kCrBugsForEntry139, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry139, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry139, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 140, // id - "glReadPixels fails on FBOs with SRGB_ALPHA textures, Nexus 5X", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry140), // DisabledExtensions size - kDisabledExtensionsForEntry140, // DisabledExtensions - arraysize(kCrBugsForEntry140), // CrBugs size - kCrBugsForEntry140, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry140, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 141, // id - "Framebuffer discarding can hurt performance on non-tilers", - arraysize(kFeatureListForEntry141), // features size - kFeatureListForEntry141, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry141), // CrBugs size - kCrBugsForEntry141, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 142, // id - "Pack parameters work incorrectly with pack buffer bound", - arraysize(kFeatureListForEntry142), // features size - kFeatureListForEntry142, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry142), // CrBugs size - kCrBugsForEntry142, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry142, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 143, // id - "Timer queries crash on Intel GPUs on Linux", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry143), // DisabledExtensions size - kDisabledExtensionsForEntry143, // DisabledExtensions - arraysize(kCrBugsForEntry143), // CrBugs size - kCrBugsForEntry143, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry143, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 144, // id - "Pack parameters work incorrectly with pack buffer bound", - arraysize(kFeatureListForEntry144), // features size - kFeatureListForEntry144, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry144), // CrBugs size - kCrBugsForEntry144, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 145, // id - "EGLImage ref counting across EGLContext/threads is broken", - arraysize(kFeatureListForEntry145), // features size - kFeatureListForEntry145, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry145), // CrBugs size - kCrBugsForEntry145, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry145, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 147, // id - "Limit max texure size to 4096 on all of Android", - arraysize(kFeatureListForEntry147), // features size - kFeatureListForEntry147, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 148, // id - "Mali-4xx GPU on JB doesn't support DetachGLContext", - arraysize(kFeatureListForEntry148), // features size - kFeatureListForEntry148, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "4.4.4", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry148, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 149, // id - "Direct composition flashes black initially on Win <10", - arraysize(kFeatureListForEntry149), // features size - kFeatureListForEntry149, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry149), // CrBugs size - kCrBugsForEntry149, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "10.0", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 150, // id - "Alignment works incorrectly with unpack buffer bound", - arraysize(kFeatureListForEntry150), // features size - kFeatureListForEntry150, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry150), // CrBugs size - kCrBugsForEntry150, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry150, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 151, // id - "Alignment works incorrectly with unpack buffer bound", - arraysize(kFeatureListForEntry151), // features size - kFeatureListForEntry151, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry151), // CrBugs size - kCrBugsForEntry151, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 152, // id - "copyTexImage2D fails when reading from IOSurface on multiple GPU " - "types.", - arraysize(kFeatureListForEntry152), // features size - kFeatureListForEntry152, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry152), // CrBugs size - kCrBugsForEntry152, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 153, // id - "Vivante GC1000 with EXT_multisampled_render_to_texture fails " - "glReadPixels", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry153), // DisabledExtensions size - kDisabledExtensionsForEntry153, // DisabledExtensions - arraysize(kCrBugsForEntry153), // CrBugs size - kCrBugsForEntry153, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry153, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 156, // id - "glEGLImageTargetTexture2DOES crashes", - arraysize(kFeatureListForEntry156), // features size - kFeatureListForEntry156, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry156), // CrBugs size - kCrBugsForEntry156, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kBetween, GpuControlList::kVersionStyleNumerical, - "4.4", "4.4.4"}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry156, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 157, // id - "Testing fences was broken on Mali ES2 drivers for specific phone " - "models", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry157), // DisabledExtensions size - kDisabledExtensionsForEntry157, // DisabledExtensions - arraysize(kCrBugsForEntry157), // CrBugs size - kCrBugsForEntry157, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry157, // GL strings - &kMachineModelInfoForEntry157, // machine model info - &kMoreForEntry157, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 158, // id - "IOSurface use becomes pathologically slow over time on 10.10.", - arraysize(kFeatureListForEntry158), // features size - kFeatureListForEntry158, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry158), // CrBugs size - kCrBugsForEntry158, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "10.10", nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry158), // DeviceIDs size - kDeviceIDsForEntry158, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 159, // id - "Framebuffer discarding can hurt performance on non-tilers", - arraysize(kFeatureListForEntry159), // features size - kFeatureListForEntry159, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry159), // CrBugs size - kCrBugsForEntry159, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry159, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 160, // id - "Framebuffer discarding not useful on NVIDIA Kepler architecture and " - "later", - arraysize(kFeatureListForEntry160), // features size - kFeatureListForEntry160, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry160), // CrBugs size - kCrBugsForEntry160, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry160, // GL strings - nullptr, // machine model info - &kMoreForEntry160, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 161, // id - "Framebuffer discarding not useful on NVIDIA Kepler architecture and " - "later", - arraysize(kFeatureListForEntry161), // features size - kFeatureListForEntry161, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry161), // CrBugs size - kCrBugsForEntry161, // CrBugs - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry161, // GL strings - nullptr, // machine model info - &kMoreForEntry161, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 162, // id - "Framebuffer discarding not useful on NVIDIA Kepler architecture and " - "later", - arraysize(kFeatureListForEntry162), // features size - kFeatureListForEntry162, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry162), // CrBugs size - kCrBugsForEntry162, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry162, // GL strings - nullptr, // machine model info - &kMoreForEntry162, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 163, // id - "Multisample renderbuffers with format GL_RGB8 have performance issues " - "on Intel GPUs.", - arraysize(kFeatureListForEntry163), // features size - kFeatureListForEntry163, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry163), // CrBugs size - kCrBugsForEntry163, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 164, // id - "glColorMask does not work for multisample renderbuffers on old AMD " - "GPUs.", - arraysize(kFeatureListForEntry164), // features size - kFeatureListForEntry164, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry164), // CrBugs size - kCrBugsForEntry164, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - arraysize(kDeviceIDsForEntry164), // DeviceIDs size - kDeviceIDsForEntry164, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 165, // id - "Unpacking overlapping rows from unpack buffers is unstable on NVIDIA " - "GL driver", - arraysize(kFeatureListForEntry165), // features size - kFeatureListForEntry165, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry165), // CrBugs size - kCrBugsForEntry165, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry165, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 167, // id - "glEGLImageTargetTexture2DOES crashes on Mali-400", - arraysize(kFeatureListForEntry167), // features size - kFeatureListForEntry167, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry167), // CrBugs size - kCrBugsForEntry167, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry167, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 168, // id - "VirtualBox driver doesn't correctly support partial swaps.", - arraysize(kFeatureListForEntry168), // features size - kFeatureListForEntry168, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry168), // CrBugs size - kCrBugsForEntry168, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x80ee, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 169, // id - "Mac Drivers store texture level parameters on int16_t that overflow", - arraysize(kFeatureListForEntry169), // features size - kFeatureListForEntry169, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry169), // CrBugs size - kCrBugsForEntry169, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "10.12.2", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 170, // id - "Zero copy DXGI video hangs on shutdown on Win < 8.1", - arraysize(kFeatureListForEntry170), // features size - kFeatureListForEntry170, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry170), // CrBugs size - kCrBugsForEntry170, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "8.1", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 172, // id - "Limited enabling of Chromium GL_INTEL_framebuffer_CMAA", - arraysize(kFeatureListForEntry172), // features size - kFeatureListForEntry172, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry172), // CrBugs size - kCrBugsForEntry172, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry172), // exceptions count - kExceptionsForEntry172, // exceptions - }, - { - 174, // id - "Adreno 4xx support for EXT_multisampled_render_to_texture is buggy on " - "Android 7.0", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry174), // DisabledExtensions size - kDisabledExtensionsForEntry174, // DisabledExtensions - arraysize(kCrBugsForEntry174), // CrBugs size - kCrBugsForEntry174, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kBetween, GpuControlList::kVersionStyleNumerical, - "7.0.0", "7.0.99"}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry174, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 175, // id - "Adreno 5xx support for EXT_multisampled_render_to_texture is buggy on " - "Android < 7.0", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry175), // DisabledExtensions size - kDisabledExtensionsForEntry175, // DisabledExtensions - arraysize(kCrBugsForEntry175), // CrBugs size - kCrBugsForEntry175, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "7.0", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry175, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 176, // id - "glClear does not work on Acer Predator GT-810", - arraysize(kFeatureListForEntry176), // features size - kFeatureListForEntry176, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry176), // CrBugs size - kCrBugsForEntry176, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry176, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 177, // id - "glGetFragData{Location|Index} works incorrectly on Max", - arraysize(kFeatureListForEntry177), // features size - kFeatureListForEntry177, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry177), // CrBugs size - kCrBugsForEntry177, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 178, // id - "GL_KHR_blend_equation_advanced is incorrectly implemented on Intel " - "BayTrail on KitKat", - arraysize(kFeatureListForEntry178), // features size - kFeatureListForEntry178, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry178), // CrBugs size - kCrBugsForEntry178, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "5.0", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry178, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 179, // id - "glResumeTransformFeedback works incorrectly on Intel GPUs", - arraysize(kFeatureListForEntry179), // features size - kFeatureListForEntry179, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry179), // CrBugs size - kCrBugsForEntry179, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 180, // id - "eglCreateImageKHR fails for one component textures on PowerVR", - arraysize(kFeatureListForEntry180), // features size - kFeatureListForEntry180, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry180), // CrBugs size - kCrBugsForEntry180, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry180, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 181, // id - "glTexStorage* are buggy when base mipmap level is not 0", - arraysize(kFeatureListForEntry181), // features size - kFeatureListForEntry181, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry181), // CrBugs size - kCrBugsForEntry181, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "10.12.4", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 182, // id - "Frequent hang in glClear on old android versions on Mali-T7xx", - arraysize(kFeatureListForEntry182), // features size - kFeatureListForEntry182, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry182), // CrBugs size - kCrBugsForEntry182, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "6.0", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry182, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 183, // id - "Result of abs(i) where i is an integer in vertex shader is wrong", - arraysize(kFeatureListForEntry183), // features size - kFeatureListForEntry183, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry183), // CrBugs size - kCrBugsForEntry183, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 184, // id - "Rewrite texelFetchOffset to texelFetch for Intel Mac", - arraysize(kFeatureListForEntry184), // features size - kFeatureListForEntry184, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry184), // CrBugs size - kCrBugsForEntry184, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 185, // id - "Zero-copy NV12 video displays incorrect colors on NVIDIA drivers.", - arraysize(kFeatureListForEntry185), // features size - kFeatureListForEntry185, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry185), // CrBugs size - kCrBugsForEntry185, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 186, // id - "Rewrite condition in for and while loops for Intel Mac", - arraysize(kFeatureListForEntry186), // features size - kFeatureListForEntry186, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry186), // CrBugs size - kCrBugsForEntry186, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 187, // id - "Rewrite do-while loops to simpler constructs on Mac", - arraysize(kFeatureListForEntry187), // features size - kFeatureListForEntry187, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry187), // CrBugs size - kCrBugsForEntry187, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "10.11", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 188, // id - "AVSampleBufferDisplayLayer leaks IOSurfaces on 10.9.", - arraysize(kFeatureListForEntry188), // features size - kFeatureListForEntry188, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry188), // CrBugs size - kCrBugsForEntry188, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "10.10", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 189, // id - "Do TexImage2D first before CopyTexImage2D for cube map texture on " - "Intel Mac 10.11", - arraysize(kFeatureListForEntry189), // features size - kFeatureListForEntry189, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry189), // CrBugs size - kCrBugsForEntry189, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "10.11", nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 190, // id - "Disable partial swaps on Mesa drivers (detected with GL_VERSION)", - arraysize(kFeatureListForEntry190), // features size - kFeatureListForEntry190, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry190), // CrBugs size - kCrBugsForEntry190, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry190, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 191, // id - "Emulate GLSL function isnan() on Intel Mac", - arraysize(kFeatureListForEntry191), // features size - kFeatureListForEntry191, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry191), // CrBugs size - kCrBugsForEntry191, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry191), // DeviceIDs size - kDeviceIDsForEntry191, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 192, // id - "Decode and encode before generateMipmap for srgb format textures on " - "os except macosx", - arraysize(kFeatureListForEntry192), // features size - kFeatureListForEntry192, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry192), // CrBugs size - kCrBugsForEntry192, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry192, // more data - }, - arraysize(kExceptionsForEntry192), // exceptions count - kExceptionsForEntry192, // exceptions - }, - { - 193, // id - "Decode and encode before generateMipmap for srgb format textures on " - "macosx", - arraysize(kFeatureListForEntry193), // features size - kFeatureListForEntry193, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry193), // CrBugs size - kCrBugsForEntry193, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 194, // id - "Init first two levels before CopyTexImage2D for cube map texture on " - "Intel Mac 10.12", - arraysize(kFeatureListForEntry194), // features size - kFeatureListForEntry194, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry194), // CrBugs size - kCrBugsForEntry194, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, - "10.12", nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 195, // id - "Insert statements to reference all members in unused std140/shared " - "blocks on Mac", - arraysize(kFeatureListForEntry195), // features size - kFeatureListForEntry195, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry195), // CrBugs size - kCrBugsForEntry195, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 196, // id - "Tex(Sub)Image3D performs incorrectly when uploading from unpack " - "buffer with GL_UNPACK_IMAGE_HEIGHT greater than zero on Intel Macs", - arraysize(kFeatureListForEntry196), // features size - kFeatureListForEntry196, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry196), // CrBugs size - kCrBugsForEntry196, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 197, // id - "adjust src/dst region if blitting pixels outside read framebuffer on " - "Mac", - arraysize(kFeatureListForEntry197), // features size - kFeatureListForEntry197, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry197), // CrBugs size - kCrBugsForEntry197, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 198, // id - "adjust src/dst region if blitting pixels outside read framebuffer on " - "Linux Intel", - arraysize(kFeatureListForEntry198), // features size - kFeatureListForEntry198, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry198), // CrBugs size - kCrBugsForEntry198, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 199, // id - "adjust src/dst region if blitting pixels outside read framebuffer on " - "Linux AMD", - arraysize(kFeatureListForEntry199), // features size - kFeatureListForEntry199, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry199), // CrBugs size - kCrBugsForEntry199, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 200, // id - "ES3 support is unreliable on some older drivers", - arraysize(kFeatureListForEntry200), // features size - kFeatureListForEntry200, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry200), // CrBugs size - kCrBugsForEntry200, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.4", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 201, // id - "AMD drivers in Linux require invariant qualifier to match between " - "vertex and fragment shaders", - arraysize(kFeatureListForEntry201), // features size - kFeatureListForEntry201, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry201), // CrBugs size - kCrBugsForEntry201, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 202, // id - "Mac driver GL 4.1 requires invariant and centroid to match between " - "shaders", - arraysize(kFeatureListForEntry202), // features size - kFeatureListForEntry202, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry202), // CrBugs size - kCrBugsForEntry202, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 203, // id - "Mesa driver GL 3.3 requires invariant and centroid to match between " - "shaders", - arraysize(kFeatureListForEntry203), // features size - kFeatureListForEntry203, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry203), // CrBugs size - kCrBugsForEntry203, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry203, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry203, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 205, // id - "Adreno 5xx support for EXT_multisampled_render_to_texture is buggy on " - "Android 7.1", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry205), // DisabledExtensions size - kDisabledExtensionsForEntry205, // DisabledExtensions - arraysize(kCrBugsForEntry205), // CrBugs size - kCrBugsForEntry205, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "7.1.0", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry205, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 206, // id - "Disable KHR_blend_equation_advanced until cc shaders are updated", - 0, // feature size - nullptr, // features - arraysize(kDisabledExtensionsForEntry206), // DisabledExtensions size - kDisabledExtensionsForEntry206, // DisabledExtensions - arraysize(kCrBugsForEntry206), // CrBugs size - kCrBugsForEntry206, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 207, // id - "Decode and Encode before generateMipmap for srgb format textures on " - "Windows", - arraysize(kFeatureListForEntry207), // features size - kFeatureListForEntry207, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry207), // CrBugs size - kCrBugsForEntry207, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 208, // id - "Decode and Encode before generateMipmap for srgb format textures on " - "Linux Mesa ANGLE path", - arraysize(kFeatureListForEntry208), // features size - kFeatureListForEntry208, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry208), // CrBugs size - kCrBugsForEntry208, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry208, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 209, // id - "Decode and Encode before generateMipmap for srgb format textures on " - "Chromeos Intel", - arraysize(kFeatureListForEntry209), // features size - kFeatureListForEntry209, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry209), // CrBugs size - kCrBugsForEntry209, // CrBugs - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 210, // id - "Decode and Encode before generateMipmap for srgb format textures on " - "Linux AMD", - arraysize(kFeatureListForEntry210), // features size - kFeatureListForEntry210, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry210), // CrBugs size - kCrBugsForEntry210, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 211, // id - "Rewrite -float to 0.0 - float for Intel Mac", - arraysize(kFeatureListForEntry211), // features size - kFeatureListForEntry211, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry211), // CrBugs size - kCrBugsForEntry211, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "10.11", nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 212, // id - "Program binaries don't contain transform feedback varyings on " - "Qualcomm GPUs", - arraysize(kFeatureListForEntry212), // features size - kFeatureListForEntry212, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry212), // CrBugs size - kCrBugsForEntry212, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry212, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 213, // id - "The Mali-Gxx driver does not guarantee flush ordering", - arraysize(kFeatureListForEntry213), // features size - kFeatureListForEntry213, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry213), // CrBugs size - kCrBugsForEntry213, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry213, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 214, // id - "Some Adreno 3xx don't setup scissor state correctly when FBO0 is " - "bound, nor support MSAA properly.", - arraysize(kFeatureListForEntry214), // features size - kFeatureListForEntry214, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry214), // CrBugs size - kCrBugsForEntry214, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry214, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 215, // id - "Fake no-op GPU driver bug workaround for testing", - arraysize(kFeatureListForEntry215), // features size - kFeatureListForEntry215, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry215), // CrBugs size - kCrBugsForEntry215, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0xbad9, // vendor_id - arraysize(kDeviceIDsForEntry215), // DeviceIDs size - kDeviceIDsForEntry215, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 216, // id - "Pack parameters work incorrectly with pack buffer bound", - arraysize(kFeatureListForEntry216), // features size - kFeatureListForEntry216, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry216), // CrBugs size - kCrBugsForEntry216, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry216, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 217, // id - "Alignment works incorrectly with unpack buffer bound", - arraysize(kFeatureListForEntry217), // features size - kFeatureListForEntry217, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry217), // CrBugs size - kCrBugsForEntry217, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry217, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 219, // id - "Zero-copy DXGI video hangs or displays incorrect colors on AMD " - "drivers", - arraysize(kFeatureListForEntry219), // features size - kFeatureListForEntry219, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry219), // CrBugs size - kCrBugsForEntry219, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 220, // id - "NV12 DXGI video displays incorrect colors on older AMD drivers", - arraysize(kFeatureListForEntry220), // features size - kFeatureListForEntry220, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry220), // CrBugs size - kCrBugsForEntry220, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry220, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 221, // id - "Very large instanced draw calls crash on some Adreno 3xx drivers", - arraysize(kFeatureListForEntry221), // features size - kFeatureListForEntry221, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry221), // CrBugs size - kCrBugsForEntry221, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry221, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, -}; -} // namespace gpu
diff --git a/gpu/config/gpu_driver_bug_list_autogen.h b/gpu/config/gpu_driver_bug_list_autogen.h deleted file mode 100644 index bfa6610..0000000 --- a/gpu/config/gpu_driver_bug_list_autogen.h +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is auto-generated from -// gpu/config/process_json.py -// It's formatted by clang-format using chromium coding style: -// clang-format -i -style=chromium filename -// DO NOT EDIT! - -#ifndef GPU_CONFIG_GPU_DRIVER_BUG_LIST_AUTOGEN_H_ -#define GPU_CONFIG_GPU_DRIVER_BUG_LIST_AUTOGEN_H_ - -#include "gpu/config/gpu_control_list.h" - -namespace gpu { -GPU_EXPORT extern const char kGpuDriverBugListVersion[]; -GPU_EXPORT extern const size_t kGpuDriverBugListEntryCount; -GPU_EXPORT extern const GpuControlList::Entry kGpuDriverBugListEntries[]; -} // namespace gpu - -#endif // GPU_CONFIG_GPU_DRIVER_BUG_LIST_AUTOGEN_H_
diff --git a/gpu/config/gpu_driver_bug_list_exceptions_autogen.h b/gpu/config/gpu_driver_bug_list_exceptions_autogen.h deleted file mode 100644 index 2e8fca1..0000000 --- a/gpu/config/gpu_driver_bug_list_exceptions_autogen.h +++ /dev/null
@@ -1,68 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is auto-generated from -// gpu/config/process_json.py -// It's formatted by clang-format using chromium coding style: -// clang-format -i -style=chromium filename -// DO NOT EDIT! - -#ifndef GPU_CONFIG_GPU_DRIVER_BUG_LIST_EXCEPTIONS_AUTOGEN_H_ -#define GPU_CONFIG_GPU_DRIVER_BUG_LIST_EXCEPTIONS_AUTOGEN_H_ - -namespace gpu { -const GpuControlList::Conditions kExceptionsForEntry54[1] = { - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry172[1] = { - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry172Exception0, // driver info - &kGLStringsForEntry172Exception0, // GL strings - nullptr, // machine model info - &kMoreForEntry172Exception0, // more data - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry192[1] = { - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -} // namespace gpu - -#endif // GPU_CONFIG_GPU_DRIVER_BUG_LIST_EXCEPTIONS_AUTOGEN_H_
diff --git a/gpu/config/process_json.py b/gpu/config/process_json.py index d34c504..05ec4a2 100755 --- a/gpu/config/process_json.py +++ b/gpu/config/process_json.py
@@ -7,6 +7,7 @@ import os import platform import sys +from optparse import OptionParser from subprocess import call """Generate data struct from GPU blacklist and driver bug workarounds json.""" @@ -577,31 +578,31 @@ file.write('\n#endif // %s\n' % token) -def process_json_file(json_filename, list_tag, +def process_json_file(json_filepath, list_tag, feature_header_filename, total_features, feature_tag, - output_header_filename, output_data_filename, - output_helper_filename, output_exception_filename, path, - export_tag): - current_dir = os.getcwd() - os.chdir('../../' + path) # assume python script is under gpu/config - - json_file = open(json_filename, 'rb') + output_header_filepath, output_data_filepath, + output_helper_filepath, output_exception_filepath, path, + export_tag, git_format): + output_header_filename = os.path.basename(output_header_filepath) + output_helper_filename = os.path.basename(output_helper_filepath) + output_exception_filename = os.path.basename(output_exception_filepath) + json_file = open(json_filepath, 'rb') json_data = json.load(json_file) json_file.close() - data_file = open(output_data_filename, 'wb') + data_file = open(output_data_filepath, 'wb') data_file.write(_LICENSE) data_file.write(_DO_NOT_EDIT_WARNING) data_file.write('#include "%s/%s"\n\n' % (path, output_header_filename)) data_file.write('#include "%s/%s"\n' % (path, output_helper_filename)) data_file.write('#include "%s/%s"\n\n' % (path, output_exception_filename)) - data_helper_file = open(output_helper_filename, 'wb') + data_helper_file = open(output_helper_filepath, 'wb') data_helper_file.write(_LICENSE) data_helper_file.write(_DO_NOT_EDIT_WARNING) write_header_file_guard(data_helper_file, output_helper_filename, path, True) data_helper_file.write('#include "gpu/config/%s"\n\n' % feature_header_filename) data_helper_file.write('namespace gpu {\n') - data_exception_file = open(output_exception_filename, 'wb') + data_exception_file = open(output_exception_filepath, 'wb') data_exception_file.write(_LICENSE) data_exception_file.write(_DO_NOT_EDIT_WARNING) write_header_file_guard(data_exception_file, output_exception_filename, path, @@ -633,7 +634,7 @@ write_header_file_guard(data_exception_file, output_exception_filename, path, False) data_exception_file.close() - data_header_file = open(output_header_filename, 'wb') + data_header_file = open(output_header_filepath, 'wb') data_header_file.write(_LICENSE) data_header_file.write(_DO_NOT_EDIT_WARNING) write_header_file_guard(data_header_file, output_header_filename, path, True) @@ -652,67 +653,94 @@ data_header_file.write('} // namespace gpu\n') write_header_file_guard(data_header_file, output_header_filename, path, False) data_header_file.close() - format_files([output_header_filename, output_data_filename, - output_helper_filename, output_exception_filename]) - - os.chdir(current_dir) + if git_format: + format_files([output_header_filepath, output_data_filepath, + output_helper_filepath, output_exception_filepath]) -def process_software_rendering_list(): - total_features = load_software_rendering_list_features('gpu_feature_type.h') - process_json_file('software_rendering_list.json', 'SoftwareRenderingList', - 'gpu_feature_type.h', total_features, 'GPU_FEATURE_TYPE_', - 'software_rendering_list_autogen.h', - 'software_rendering_list_autogen.cc', - 'software_rendering_list_arrays_and_structs_autogen.h', - 'software_rendering_list_exceptions_autogen.h', - 'gpu/config', 'GPU_EXPORT ') +def process_software_rendering_list(script_dir, output_dir): + total_features = load_software_rendering_list_features( + os.path.join(script_dir, 'gpu_feature_type.h')) + process_json_file( + os.path.join(script_dir, 'software_rendering_list.json'), + 'SoftwareRenderingList', + 'gpu_feature_type.h', + total_features, + 'GPU_FEATURE_TYPE_', + os.path.join(output_dir, 'software_rendering_list_autogen.h'), + os.path.join(output_dir, 'software_rendering_list_autogen.cc'), + os.path.join(output_dir, + 'software_rendering_list_arrays_and_structs_autogen.h'), + os.path.join(output_dir, 'software_rendering_list_exceptions_autogen.h'), + 'gpu/config', + 'GPU_EXPORT ', + False) -def process_gpu_driver_bug_list(): +def process_gpu_driver_bug_list(script_dir, output_dir): total_features = load_gpu_driver_bug_workarounds( - 'gpu_driver_bug_workaround_type.h') - process_json_file('gpu_driver_bug_list.json', 'GpuDriverBugList', - 'gpu_driver_bug_workaround_type.h', total_features, '', - 'gpu_driver_bug_list_autogen.h', - 'gpu_driver_bug_list_autogen.cc', - 'gpu_driver_bug_list_arrays_and_structs_autogen.h', - 'gpu_driver_bug_list_exceptions_autogen.h', - 'gpu/config', 'GPU_EXPORT ') + os.path.join(script_dir, 'gpu_driver_bug_workaround_type.h')) + process_json_file( + os.path.join(script_dir, 'gpu_driver_bug_list.json'), + 'GpuDriverBugList', + 'gpu_driver_bug_workaround_type.h', + total_features, + '', + os.path.join(output_dir, 'gpu_driver_bug_list_autogen.h'), + os.path.join(output_dir, 'gpu_driver_bug_list_autogen.cc'), + os.path.join(output_dir, + 'gpu_driver_bug_list_arrays_and_structs_autogen.h'), + os.path.join(output_dir, 'gpu_driver_bug_list_exceptions_autogen.h'), + 'gpu/config', + 'GPU_EXPORT ', + False) -def process_gpu_control_list_testing(): +def process_gpu_control_list_testing(script_dir, output_dir): total_features = ['test_feature_0', 'test_feature_1', 'test_feature_2'] - process_json_file('gpu_control_list_testing.json', 'GpuControlListTesting', - 'gpu_control_list_testing_data.h', total_features, '', - 'gpu_control_list_testing_autogen.h', - 'gpu_control_list_testing_autogen.cc', - 'gpu_control_list_testing_arrays_and_structs_autogen.h', - 'gpu_control_list_testing_exceptions_autogen.h', - 'gpu/config', '') + process_json_file( + os.path.join(script_dir, 'gpu_control_list_testing.json'), + 'GpuControlListTesting', + 'gpu_control_list_testing_data.h', + total_features, + '', + os.path.join(output_dir, 'gpu_control_list_testing_autogen.h'), + os.path.join(output_dir, 'gpu_control_list_testing_autogen.cc'), + os.path.join(output_dir, + 'gpu_control_list_testing_arrays_and_structs_autogen.h'), + os.path.join(output_dir, 'gpu_control_list_testing_exceptions_autogen.h'), + 'gpu/config', + '', + True) -def process_gpu_data_manager_testing(): - total_features = load_software_rendering_list_features('gpu_feature_type.h') - process_json_file('gpu_data_manager_testing.json', 'GpuDataManagerTesting', - 'gpu_feature_type.h', total_features, 'GPU_FEATURE_TYPE_', - 'gpu_data_manager_testing_autogen.h', - 'gpu_data_manager_testing_autogen.cc', - 'gpu_data_manager_testing_arrays_and_structs_autogen.h', - 'gpu_data_manager_testing_exceptions_autogen.h', - 'content/browser/gpu', '') +def process_gpu_data_manager_testing(script_dir, output_dir): + total_features = load_software_rendering_list_features( + os.path.join(script_dir, 'gpu_feature_type.h')) + process_json_file( + os.path.join(output_dir, 'gpu_data_manager_testing.json'), + 'GpuDataManagerTesting', + 'gpu_feature_type.h', + total_features, + 'GPU_FEATURE_TYPE_', + os.path.join(output_dir, 'gpu_data_manager_testing_autogen.h'), + os.path.join(output_dir, 'gpu_data_manager_testing_autogen.cc'), + os.path.join(output_dir, + 'gpu_data_manager_testing_arrays_and_structs_autogen.h'), + os.path.join(output_dir, 'gpu_data_manager_testing_exceptions_autogen.h'), + 'content/browser/gpu', + '', + True) -def write_test_entry_enums(input_json_filename, output_entry_enums_filename, +def write_test_entry_enums(input_json_filepath, output_entry_enums_filepath, path, list_tag): - current_dir = os.getcwd() - os.chdir('../../' + path) # assume python script is under gou/config - - json_file = open(input_json_filename, 'rb') + json_file = open(input_json_filepath, 'rb') json_data = json.load(json_file) json_file.close() - enum_file = open(output_entry_enums_filename, 'wb') + output_entry_enums_filename = os.path.basename(output_entry_enums_filepath) + enum_file = open(output_entry_enums_filepath, 'wb') enum_file.write(_LICENSE) enum_file.write(_DO_NOT_EDIT_WARNING) write_header_file_guard(enum_file, output_entry_enums_filename, path, True) @@ -731,27 +759,45 @@ enum_file.write('} // namespace gpu\n') write_header_file_guard(enum_file, output_entry_enums_filename, path, False) enum_file.close() - format_files([output_entry_enums_filename]) - - os.chdir(current_dir) + format_files([output_entry_enums_filepath]) -def main(): - dir_path = os.path.dirname(os.path.realpath(__file__)) - os.chdir(dir_path) - process_software_rendering_list() - process_gpu_driver_bug_list() - process_gpu_control_list_testing() - write_test_entry_enums('gpu_control_list_testing.json', - 'gpu_control_list_testing_entry_enums_autogen.h', - 'gpu/config', - 'GpuControlListTesting') - process_gpu_data_manager_testing() - write_test_entry_enums('gpu_data_manager_testing.json', - 'gpu_data_manager_testing_entry_enums_autogen.h', - 'content/browser/gpu', - 'GpuDataManagerTesting') +def main(argv): + parser = OptionParser() + parser.add_option("--output-dir", + help="output directory for SoftwareRenderingList and " + "GpuDriverBugList data files. " + "If unspecified, these files are not generated.") + parser.add_option("--skip-testing-data", action="store_false", + dest="generate_testing_data", default=True, + help="skip testing data generation.") + (options, args) = parser.parse_args(args=argv) + + script_dir = os.path.dirname(os.path.realpath(__file__)) + + if options.output_dir != None: + process_software_rendering_list(script_dir, options.output_dir) + process_gpu_driver_bug_list(script_dir, options.output_dir) + + if options.generate_testing_data: + # Testing data files are generated by calling the script manually. + process_gpu_control_list_testing(script_dir, script_dir) + write_test_entry_enums( + os.path.join(script_dir, 'gpu_control_list_testing.json'), + os.path.join(script_dir, + 'gpu_control_list_testing_entry_enums_autogen.h'), + 'gpu/config', + 'GpuControlListTesting') + chrome_root_dir = os.path.abspath(os.path.join(script_dir, '../../')) + gpu_data_manager_dir = os.path.join(chrome_root_dir, 'content/browser/gpu') + process_gpu_data_manager_testing(script_dir, gpu_data_manager_dir) + write_test_entry_enums( + os.path.join(gpu_data_manager_dir, 'gpu_data_manager_testing.json'), + os.path.join(gpu_data_manager_dir, + 'gpu_data_manager_testing_entry_enums_autogen.h'), + 'content/browser/gpu', + 'GpuDataManagerTesting') if __name__ == '__main__': - sys.exit(main()) + sys.exit(main(sys.argv[1:]))
diff --git a/gpu/config/software_rendering_list_arrays_and_structs_autogen.h b/gpu/config/software_rendering_list_arrays_and_structs_autogen.h deleted file mode 100644 index fb42565..0000000 --- a/gpu/config/software_rendering_list_arrays_and_structs_autogen.h +++ /dev/null
@@ -1,1748 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is auto-generated from -// gpu/config/process_json.py -// It's formatted by clang-format using chromium coding style: -// clang-format -i -style=chromium filename -// DO NOT EDIT! - -#ifndef GPU_CONFIG_SOFTWARE_RENDERING_LIST_ARRAYS_AND_STRUCTS_AUTOGEN_H_ -#define GPU_CONFIG_SOFTWARE_RENDERING_LIST_ARRAYS_AND_STRUCTS_AUTOGEN_H_ - -#include "gpu/config/gpu_feature_type.h" - -namespace gpu { -const int kFeatureListForEntry1[4] = { - GPU_FEATURE_TYPE_FLASH3D, GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kDeviceIDsForEntry1[1] = { - 0x7249, -}; - -const int kFeatureListForEntry3[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry3[2] = { - 59302, 315217, -}; - -const GpuControlList::GLStrings kGLStringsForEntry3 = { - nullptr, "(?i).*software.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry4[4] = { - GPU_FEATURE_TYPE_FLASH3D, GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, -}; - -const uint32_t kCrBugsForEntry4[1] = { - 232035, -}; - -const uint32_t kDeviceIDsForEntry4[2] = { - 0x27AE, 0x27A2, -}; - -const int kFeatureListForEntry5[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry5[6] = { - 71381, 76428, 73910, 101225, 136240, 357314, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry5Exception0 = { - ".*AMD.*", // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleLexical, "8.98", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry5Exception1 = { - "Mesa", // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "10.0.4", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry5Exception2 = { - ".*ANGLE.*", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry8[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry8[1] = { - 72938, -}; - -const uint32_t kDeviceIDsForEntry8[1] = { - 0x0324, -}; - -const int kFeatureListForEntry10[4] = { - GPU_FEATURE_TYPE_FLASH3D, GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry10[1] = { - 73794, -}; - -const uint32_t kDeviceIDsForEntry10[1] = { - 0x0393, -}; - -const int kFeatureListForEntry12[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry12[3] = { - 72979, 89802, 315205, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry12 = { - nullptr, // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "2009.1", - nullptr}, // driver_date -}; - -const uint32_t kDeviceIDsForEntry12Exception0[1] = { - 0x29a2, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry12Exception0 = { - nullptr, // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, - "7.15.10.1624", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry12Exception1 = { - "osmesa", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const uint32_t kDeviceIDsForEntry12Exception2[1] = { - 0x02c1, -}; - -const int kFeatureListForEntry17[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry17[4] = { - 76703, 164555, 225200, 340886, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry17 = { - "Mesa", // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "10.1", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const uint32_t kDeviceIDsForEntry17Exception0[12] = { - 0x0102, 0x0106, 0x0112, 0x0116, 0x0122, 0x0126, - 0x010a, 0x0152, 0x0156, 0x015a, 0x0162, 0x0166, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry17Exception0 = { - nullptr, // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "8.0", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const uint32_t kDeviceIDsForEntry17Exception1[16] = { - 0xa001, 0xa002, 0xa011, 0xa012, 0x29a2, 0x2992, 0x2982, 0x2972, - 0x2a12, 0x2a42, 0x2e02, 0x2e12, 0x2e22, 0x2e32, 0x2e42, 0x2e92, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry17Exception1 = { - nullptr, // driver_vendor - {GpuControlList::kGT, GpuControlList::kVersionStyleNumerical, "8.0.2", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const uint32_t kDeviceIDsForEntry17Exception2[2] = { - 0x0042, 0x0046, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry17Exception2 = { - nullptr, // driver_vendor - {GpuControlList::kGT, GpuControlList::kVersionStyleNumerical, "8.0.4", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const uint32_t kDeviceIDsForEntry17Exception3[1] = { - 0x2a02, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry17Exception3 = { - nullptr, // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "9.1", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const uint32_t kDeviceIDsForEntry17Exception4[2] = { - 0x0a16, 0x0a26, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry17Exception4 = { - nullptr, // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "10.0.1", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry18[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry18[1] = { - 84701, -}; - -const uint32_t kDeviceIDsForEntry18[1] = { - 0x029e, -}; - -const int kFeatureListForEntry27[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry27[4] = { - 95934, 94973, 136240, 357314, -}; - -const GpuControlList::GLStrings kGLStringsForEntry27 = { - "ATI.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry27Exception0 = { - ".*AMD.*", // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleLexical, "8.98", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry27Exception1 = { - "Mesa", // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "10.0.4", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry28[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry28[3] = { - 95934, 94973, 357314, -}; - -const GpuControlList::GLStrings kGLStringsForEntry28 = { - "X\\.Org.*", ".*AMD.*", nullptr, nullptr, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry28Exception0 = { - "Mesa", // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "10.0.4", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry29[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry29[3] = { - 95934, 94973, 357314, -}; - -const GpuControlList::GLStrings kGLStringsForEntry29 = { - "X\\.Org.*", ".*ATI.*", nullptr, nullptr, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry29Exception0 = { - "Mesa", // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "10.0.4", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry30[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry30[1] = { - 94103, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry30 = { - "Mesa", // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "10.1", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry30 = { - "(?i)nouveau.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry34[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry34[1] = { - 119948, -}; - -const uint32_t kDeviceIDsForEntry34[1] = { - 0x8811, -}; - -const int kFeatureListForEntry37[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry37[2] = { - 131308, 363418, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry37 = { - "Mesa", // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "10.1", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry37 = { - "Intel.*", nullptr, nullptr, nullptr, -}; - -const int kFeatureListForEntry45[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry45[1] = { - 138105, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry45 = { - nullptr, // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "7", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry46[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry46[1] = { - 124152, -}; - -const uint32_t kDeviceIDsForEntry46[1] = { - 0x3151, -}; - -const int kFeatureListForEntry47[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry47[1] = { - 78497, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry47 = { - "NVIDIA", // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "295", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry48[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry48[1] = { - 137247, -}; - -const int kFeatureListForEntry50[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry50[4] = { - 145531, 332596, 571899, 629434, -}; - -const GpuControlList::GLStrings kGLStringsForEntry50 = { - "VMware.*", nullptr, nullptr, nullptr, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry50Exception0 = { - "Mesa", // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "9.2.1", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry50Exception0 = { - nullptr, ".*SVGA3D.*", nullptr, nullptr, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry50Exception1 = { - "Mesa", // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "10.1.3", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry50Exception1 = { - nullptr, ".*Gallium.*llvmpipe.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry53[1] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, -}; - -const uint32_t kCrBugsForEntry53[1] = { - 152096, -}; - -const uint32_t kDeviceIDsForEntry53[2] = { - 0x8108, 0x8109, -}; - -const int kFeatureListForEntry56[3] = { - GPU_FEATURE_TYPE_FLASH3D, GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry56[1] = { - 145600, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry56 = { - "NVIDIA", // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "331.38", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry57[1] = { - GPU_FEATURE_TYPE_PANEL_FITTING, -}; - -const uint32_t kDeviceIDsForEntry57Exception0[3] = { - 0x0106, 0x0116, 0x0166, -}; - -const int kFeatureListForEntry59[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry59[1] = { - 155749, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry59 = { - nullptr, // driver_vendor - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "8.15.11.8593", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry64[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry64[1] = { - 159458, -}; - -const int kFeatureListForEntry68[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry68[1] = { - 169470, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry68 = { - nullptr, // driver_vendor - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, "7.14.1.1134", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry69[1] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, -}; - -const uint32_t kCrBugsForEntry69[1] = { - 172771, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry69 = { - nullptr, // driver_vendor - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "8.17.11.9621", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry70[1] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, -}; - -const uint32_t kCrBugsForEntry70[1] = { - 172771, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry70 = { - nullptr, // driver_vendor - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "8.17.11.8267", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry71[1] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, -}; - -const uint32_t kCrBugsForEntry71[1] = { - 172771, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry71 = { - nullptr, // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "8.15.10.2021", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry72[1] = { - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, -}; - -const uint32_t kCrBugsForEntry72[1] = { - 232529, -}; - -const uint32_t kDeviceIDsForEntry72[1] = { - 0x0163, -}; - -const int kFeatureListForEntry74[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry74[1] = { - 248178, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry74 = { - "Microsoft", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const uint32_t kDeviceIDsForEntry74Exception0[1] = { - 0x02c1, -}; - -const int kFeatureListForEntry76[1] = { - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, -}; - -const GpuControlList::More kMoreForEntry76 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - true, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const GpuControlList::More kMoreForEntry76Exception0 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 33362, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const GpuControlList::GLStrings kGLStringsForEntry76Exception1 = { - nullptr, "Mali-4.*", ".*EXT_robustness.*", nullptr, -}; - -const int kFeatureListForEntry78[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry78[3] = { - 180695, 298968, 436968, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry78 = { - nullptr, // driver_vendor - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "8.15.10.2702", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry79[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry79[1] = { - 315199, -}; - -const int kFeatureListForEntry82[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry82[1] = { - 615108, -}; - -const int kFeatureListForEntry86[1] = { - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, -}; - -const uint32_t kCrBugsForEntry86[1] = { - 305431, -}; - -const uint32_t kDeviceIDsForEntry86[1] = { - 0xa011, -}; - -const int kFeatureListForEntry87[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry87[1] = { - 298968, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry87 = { - nullptr, // driver_vendor - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "10.18.10.3308", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry88[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry88[1] = { - 298968, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry88 = { - nullptr, // driver_vendor - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "13.152.1.8000", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry89[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry89[1] = { - 298968, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry89 = { - nullptr, // driver_vendor - {GpuControlList::kBetween, GpuControlList::kVersionStyleNumerical, - "8.810.4.5000", "8.970.100.1100"}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry90[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry90[1] = { - 298968, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry90 = { - nullptr, // driver_vendor - {GpuControlList::kBetween, GpuControlList::kVersionStyleNumerical, - "8.17.12.5729", "8.17.12.8026"}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry91[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry91[1] = { - 298968, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry91 = { - nullptr, // driver_vendor - {GpuControlList::kBetween, GpuControlList::kVersionStyleNumerical, - "9.18.13.783", "9.18.13.1090"}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry92[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry92[1] = { - 298968, -}; - -const int kFeatureListForEntry93[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry93[1] = { - 72373, -}; - -const GpuControlList::More kMoreForEntry93 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - false, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry94[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry94[1] = { - 350566, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry94 = { - nullptr, // driver_vendor - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "8.15.10.1749", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry95[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry95[1] = { - 363378, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry95 = { - ".*AMD.*", // driver_vendor - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, "13.101", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry96[2] = { - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry96[2] = { - 362779, 424970, -}; - -const GpuControlList::GLStrings kGLStringsForEntry96Exception0 = { - nullptr, "Adreno \\(TM\\) 3.*", nullptr, nullptr, -}; - -const GpuControlList::GLStrings kGLStringsForEntry96Exception1 = { - nullptr, "Mali-4.*", nullptr, nullptr, -}; - -const GpuControlList::GLStrings kGLStringsForEntry96Exception2 = { - nullptr, "NVIDIA.*", nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry96Exception3 = { - GpuControlList::kGLTypeGLES, // gl_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const GpuControlList::GLStrings kGLStringsForEntry96Exception4 = { - nullptr, ".*Google.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry100[2] = { - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry100[1] = { - 407144, -}; - -const GpuControlList::GLStrings kGLStringsForEntry100 = { - nullptr, ".*Mali-T604.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry102[2] = { - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry102[1] = { - 416910, -}; - -const GpuControlList::GLStrings kGLStringsForEntry102 = { - nullptr, "PowerVR SGX 540", nullptr, nullptr, -}; - -const int kFeatureListForEntry104[2] = { - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry104[2] = { - 436331, 483574, -}; - -const GpuControlList::GLStrings kGLStringsForEntry104 = { - nullptr, "PowerVR Rogue.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry105[2] = { - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry105[1] = { - 461456, -}; - -const GpuControlList::GLStrings kGLStringsForEntry105 = { - nullptr, "PowerVR SGX.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry106[2] = { - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry106[1] = { - 480149, -}; - -const GpuControlList::GLStrings kGLStringsForEntry106 = { - nullptr, "Adreno \\(TM\\) 3.*", nullptr, nullptr, -}; - -const GpuControlList::More kMoreForEntry106 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, "2.0", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry107[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry107[1] = { - 463243, -}; - -const uint32_t kDeviceIDsForEntry107[15] = { - 0x0402, 0x0406, 0x040a, 0x040b, 0x040e, 0x0a02, 0x0a06, 0x0a0a, - 0x0a0b, 0x0a0e, 0x0d02, 0x0d06, 0x0d0a, 0x0d0b, 0x0d0e, -}; - -const int kFeatureListForEntry108[2] = { - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry108[1] = { - 560587, -}; - -const GpuControlList::GLStrings kGLStringsForEntry108 = { - nullptr, ".*Vivante.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry109[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry109[1] = { - 585963, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry109 = { - nullptr, // driver_vendor - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, "45.0", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry109 = { - nullptr, "Adreno \\(TM\\) 330", nullptr, nullptr, -}; - -const int kFeatureListForEntry110[11] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry110[1] = { - 571899, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry110 = { - "Mesa", // driver_vendor - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry110 = { - "VMware.*", ".*Gallium.*llvmpipe.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry111[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry111[1] = { - 607829, -}; - -const int kFeatureListForEntry112[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry112[1] = { - 592130, -}; - -const uint32_t kDeviceIDsForEntry112[2] = { - 0x0116, 0x0126, -}; - -const int kFeatureListForEntry113[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry113[2] = { - 613272, 614468, -}; - -const uint32_t kDeviceIDsForEntry113[8] = { - 0x0126, 0x0116, 0x191e, 0x0046, 0x1912, 0x2a02, 0x27a2, 0x2a42, -}; - -const int kFeatureListForEntry114[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry114[2] = { - 613272, 614468, -}; - -const uint32_t kDeviceIDsForEntry114[142] = { - 0x0863, 0x08a0, 0x0a29, 0x0869, 0x0867, 0x08a3, 0x11a3, 0x08a2, 0x0407, - 0x0861, 0x08a4, 0x0647, 0x0640, 0x0866, 0x0655, 0x062e, 0x0609, 0x1187, - 0x13c2, 0x0602, 0x1180, 0x1401, 0x0fc8, 0x0611, 0x1189, 0x11c0, 0x0870, - 0x0a65, 0x06dd, 0x0fc1, 0x1380, 0x11c6, 0x104a, 0x1184, 0x0fc6, 0x13c0, - 0x1381, 0x05e3, 0x1183, 0x05fe, 0x1004, 0x17c8, 0x11ba, 0x0a20, 0x0f00, - 0x0ca3, 0x06fd, 0x0f02, 0x0614, 0x0402, 0x13bb, 0x0401, 0x0f01, 0x1287, - 0x0615, 0x1402, 0x019d, 0x0400, 0x0622, 0x06e4, 0x06cd, 0x1201, 0x100a, - 0x10c3, 0x1086, 0x17c2, 0x1005, 0x0a23, 0x0de0, 0x1040, 0x0421, 0x1282, - 0x0e22, 0x0e23, 0x0610, 0x11c8, 0x11c2, 0x1188, 0x0de9, 0x1200, 0x1244, - 0x0dc4, 0x0df8, 0x0641, 0x0613, 0x11fa, 0x100c, 0x0de1, 0x0ca5, 0x0cb1, - 0x0a6c, 0x05ff, 0x05e2, 0x0a2d, 0x06c0, 0x1288, 0x1048, 0x1081, 0x0dd8, - 0x05e6, 0x11c4, 0x0605, 0x1080, 0x042f, 0x0ca2, 0x1245, 0x124d, 0x1284, - 0x0191, 0x1050, 0x0ffd, 0x0193, 0x061a, 0x0422, 0x1185, 0x103a, 0x0fc2, - 0x0194, 0x0df5, 0x040e, 0x065b, 0x0de2, 0x0a75, 0x0601, 0x1087, 0x019e, - 0x104b, 0x107d, 0x1382, 0x042b, 0x1049, 0x0df0, 0x11a1, 0x040f, 0x0de3, - 0x0fc0, 0x13d8, 0x0de4, 0x11e2, 0x0644, 0x0fd1, 0x0dfa, -}; - -const int kFeatureListForEntry115[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry115[2] = { - 613272, 614468, -}; - -const uint32_t kDeviceIDsForEntry115[41] = { - 0x6741, 0x6740, 0x9488, 0x9583, 0x6720, 0x6760, 0x68c0, 0x68a1, 0x944a, - 0x94c8, 0x6819, 0x68b8, 0x6920, 0x6938, 0x6640, 0x9588, 0x6898, 0x9440, - 0x6738, 0x6739, 0x6818, 0x6758, 0x6779, 0x9490, 0x68d9, 0x683f, 0x683d, - 0x6899, 0x6759, 0x68e0, 0x68d8, 0x68ba, 0x68f9, 0x9501, 0x68a0, 0x6841, - 0x6840, 0x9442, 0x6658, 0x68c8, 0x68c1, -}; - -const int kFeatureListForEntry116[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry116[2] = { - 613272, 614468, -}; - -const int kFeatureListForEntry117[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry117[1] = { - 626814, -}; - -const GpuControlList::GLStrings kGLStringsForEntry117 = { - nullptr, ".*Vivante.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry118[2] = { - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, -}; - -const uint32_t kCrBugsForEntry118[1] = { - 628059, -}; - -const GpuControlList::GLStrings kGLStringsForEntry118 = { - "Vivante.*", ".*PXA.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry119[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry119[1] = { - 611310, -}; - -const int kFeatureListForEntry120[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, -}; - -const uint32_t kCrBugsForEntry120[1] = { - 616318, -}; - -const int kFeatureListForEntry121[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, -}; - -const uint32_t kCrBugsForEntry121[1] = { - 616318, -}; - -const uint32_t kDeviceIDsForEntry121[47] = { - 0x1602, 0x1606, 0x160a, 0x160b, 0x160d, 0x160e, 0x1612, 0x1616, - 0x161a, 0x161b, 0x161d, 0x161e, 0x1622, 0x1626, 0x162a, 0x162b, - 0x162d, 0x162e, 0x22b0, 0x22b1, 0x22b2, 0x22b3, 0x1902, 0x1906, - 0x190a, 0x190b, 0x190e, 0x1912, 0x1913, 0x1915, 0x1916, 0x1917, - 0x191a, 0x191b, 0x191d, 0x191e, 0x1921, 0x1923, 0x1926, 0x1927, - 0x192a, 0x192b, 0x192d, 0x1932, 0x193a, 0x193b, 0x193d, -}; - -const int kFeatureListForEntry122[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry122[1] = { - 643850, -}; - -const GpuControlList::More kMoreForEntry122Exception0 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gl_version - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "5.0", - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const GpuControlList::More kMoreForEntry122Exception1 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gl_version - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "5.0", - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry122Exception2 = { - nullptr, // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "15.201", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::More kMoreForEntry122Exception2 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gl_version - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "5.0", - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry123[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, -}; - -const uint32_t kCrBugsForEntry123[1] = { - 654111, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry123 = { - nullptr, // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "21.20.16.4542", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry124[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry124[1] = { - 653538, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry124 = { - nullptr, // driver_vendor - {GpuControlList::kGT, GpuControlList::kVersionStyleNumerical, - "16.200.1035.1001", nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry124Exception0 = { - nullptr, // driver_vendor - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "21.19.384.0", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry125[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry125[2] = { - 656572, 658668, -}; - -const uint32_t kDeviceIDsForEntry125[1] = { - 0xbeef, -}; - -const int kFeatureListForEntry126[1] = { - GPU_FEATURE_TYPE_WEBGL2, -}; - -const uint32_t kCrBugsForEntry126[1] = { - 295792, -}; - -const GpuControlList::More kMoreForEntry126 = { - GpuControlList::kGLTypeNone, // gl_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.1", - nullptr}, // gl_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // pixel_shader_version - false, // in_process_gpu - 0, // gl_reset_notification_strategy - true, // direct_rendering - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // gpu_count -}; - -const int kFeatureListForEntry129[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry129[1] = { - 662909, -}; - -const int kFeatureListForEntry130[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry130[2] = { - 676829, 676975, -}; - -const uint32_t kDeviceIDsForEntry130[3] = { - 0x0407, 0x0647, 0x0863, -}; - -const int kFeatureListForEntry131[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry131[1] = { - 462426, -}; - -const uint32_t kDeviceIDsForEntry131[1] = { - 0x2a02, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry131 = { - "Mesa", // driver_vendor - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "10.4.3", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry132[1] = { - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, -}; - -const uint32_t kCrBugsForEntry132[1] = { - 691601, -}; - -const GpuControlList::GLStrings kGLStringsForEntry132 = { - nullptr, "Mali-4.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry133[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, -}; - -const uint32_t kCrBugsForEntry133[1] = { - 654905, -}; - -const GpuControlList::GLStrings kGLStringsForEntry133 = { - nullptr, ".*VideoCore IV.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry134[12] = { - GPU_FEATURE_TYPE_FLASH_STAGE3D, - GPU_FEATURE_TYPE_GPU_COMPOSITING, - GPU_FEATURE_TYPE_PANEL_FITTING, - GPU_FEATURE_TYPE_FLASH3D, - GPU_FEATURE_TYPE_GPU_RASTERIZATION, - GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, - GPU_FEATURE_TYPE_WEBGL2, - GPU_FEATURE_TYPE_ACCELERATED_VPX_DECODE, - GPU_FEATURE_TYPE_ACCELERATED_WEBGL, - GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE, - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const uint32_t kCrBugsForEntry134[1] = { - 629434, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry134 = { - "Mesa", // driver_vendor - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, "10.1.3", - nullptr}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const GpuControlList::GLStrings kGLStringsForEntry134Exception0 = { - nullptr, ".*SVGA3D.*", nullptr, nullptr, -}; - -const GpuControlList::GLStrings kGLStringsForEntry134Exception1 = { - nullptr, ".*Gallium.*llvmpipe.*", nullptr, nullptr, -}; - -const int kFeatureListForEntry136[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry136[1] = { - 643850, -}; - -const uint32_t kDeviceIDsForEntry136[113] = { - 0x06c0, 0x06c4, 0x06ca, 0x06cb, 0x06cd, 0x06d1, 0x06d2, 0x06d8, 0x06d9, - 0x06da, 0x06dc, 0x06dd, 0x06de, 0x06df, 0x0e22, 0x0e23, 0x0e24, 0x0e30, - 0x0e31, 0x0e3a, 0x0e3b, 0x1200, 0x1201, 0x1202, 0x1203, 0x1205, 0x1206, - 0x1207, 0x1208, 0x1210, 0x1211, 0x1212, 0x1213, 0x0dc0, 0x0dc4, 0x0dc5, - 0x0dc6, 0x0dcd, 0x0dce, 0x0dd1, 0x0dd2, 0x0dd3, 0x0dd6, 0x0dd8, 0x0dda, - 0x1241, 0x1243, 0x1244, 0x1245, 0x1246, 0x1247, 0x1248, 0x1249, 0x124b, - 0x124d, 0x1251, 0x0de0, 0x0de1, 0x0de2, 0x0de3, 0x0de4, 0x0de5, 0x0de8, - 0x0de9, 0x0dea, 0x0deb, 0x0dec, 0x0ded, 0x0dee, 0x0def, 0x0df0, 0x0df1, - 0x0df2, 0x0df3, 0x0df4, 0x0df5, 0x0df6, 0x0df7, 0x0df8, 0x0df9, 0x0dfa, - 0x0dfc, 0x0f00, 0x0f01, 0x1080, 0x1081, 0x1082, 0x1084, 0x1086, 0x1087, - 0x1088, 0x1089, 0x108b, 0x1091, 0x109a, 0x109b, 0x1040, 0x1042, 0x1048, - 0x1049, 0x104a, 0x1050, 0x1051, 0x1052, 0x1054, 0x1055, 0x1056, 0x1057, - 0x1058, 0x1059, 0x105a, 0x107d, 0x1140, -}; - -const int kFeatureListForEntry137[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry137[1] = { - 684094, -}; - -const int kFeatureListForEntry138[1] = { - GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, -}; - -const int kFeatureListForEntry139[1] = { - GPU_FEATURE_TYPE_GPU_RASTERIZATION, -}; - -const uint32_t kCrBugsForEntry139[1] = { - 643850, -}; - -const GpuControlList::DriverInfo kDriverInfoForEntry139 = { - nullptr, // driver_vendor - {GpuControlList::kBetween, GpuControlList::kVersionStyleNumerical, "15.301", - "15.302"}, // driver_version - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, nullptr, - nullptr}, // driver_date -}; - -const int kFeatureListForEntry140[1] = { - GPU_FEATURE_TYPE_WEBGL2, -}; - -const uint32_t kCrBugsForEntry140[2] = { - 449116, 698197, -}; - -const GpuControlList::GLStrings kGLStringsForEntry140 = { - nullptr, "Adreno \\(TM\\) 3.*", nullptr, nullptr, -}; - -} // namespace gpu - -#endif // GPU_CONFIG_SOFTWARE_RENDERING_LIST_ARRAYS_AND_STRUCTS_AUTOGEN_H_
diff --git a/gpu/config/software_rendering_list_autogen.cc b/gpu/config/software_rendering_list_autogen.cc deleted file mode 100644 index 6022daa..0000000 --- a/gpu/config/software_rendering_list_autogen.cc +++ /dev/null
@@ -1,2182 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is auto-generated from -// gpu/config/process_json.py -// It's formatted by clang-format using chromium coding style: -// clang-format -i -style=chromium filename -// DO NOT EDIT! - -#include "gpu/config/software_rendering_list_autogen.h" - -#include "gpu/config/software_rendering_list_arrays_and_structs_autogen.h" -#include "gpu/config/software_rendering_list_exceptions_autogen.h" - -namespace gpu { - -const char kSoftwareRenderingListVersion[] = "13.2"; - -const size_t kSoftwareRenderingListEntryCount = 82; -const GpuControlList::Entry kSoftwareRenderingListEntries[82] = { - { - 1, // id - "ATI Radeon X1900 is not compatible with WebGL on the Mac", - arraysize(kFeatureListForEntry1), // features size - kFeatureListForEntry1, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - arraysize(kDeviceIDsForEntry1), // DeviceIDs size - kDeviceIDsForEntry1, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 3, // id - "GL driver is software rendered. GPU acceleration is disabled", - arraysize(kFeatureListForEntry3), // features size - kFeatureListForEntry3, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry3), // CrBugs size - kCrBugsForEntry3, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry3, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 4, // id - "The Intel Mobile 945 Express family of chipsets is not compatible " - "with WebGL", - arraysize(kFeatureListForEntry4), // features size - kFeatureListForEntry4, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry4), // CrBugs size - kCrBugsForEntry4, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry4), // DeviceIDs size - kDeviceIDsForEntry4, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 5, // id - "ATI/AMD cards with older drivers in Linux are crash-prone", - arraysize(kFeatureListForEntry5), // features size - kFeatureListForEntry5, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry5), // CrBugs size - kCrBugsForEntry5, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry5), // exceptions count - kExceptionsForEntry5, // exceptions - }, - { - 8, // id - "NVIDIA GeForce FX Go5200 is assumed to be buggy", - arraysize(kFeatureListForEntry8), // features size - kFeatureListForEntry8, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry8), // CrBugs size - kCrBugsForEntry8, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry8), // DeviceIDs size - kDeviceIDsForEntry8, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 10, // id - "NVIDIA GeForce 7300 GT on Mac does not support WebGL", - arraysize(kFeatureListForEntry10), // features size - kFeatureListForEntry10, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry10), // CrBugs size - kCrBugsForEntry10, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry10), // DeviceIDs size - kDeviceIDsForEntry10, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 12, // id - "Drivers older than 2009-01 on Windows are possibly unreliable", - arraysize(kFeatureListForEntry12), // features size - kFeatureListForEntry12, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry12), // CrBugs size - kCrBugsForEntry12, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry12, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry12), // exceptions count - kExceptionsForEntry12, // exceptions - }, - { - 17, // id - "Older Intel mesa drivers are crash-prone", - arraysize(kFeatureListForEntry17), // features size - kFeatureListForEntry17, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry17), // CrBugs size - kCrBugsForEntry17, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry17, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry17), // exceptions count - kExceptionsForEntry17, // exceptions - }, - { - 18, // id - "NVIDIA Quadro FX 1500 is buggy", - arraysize(kFeatureListForEntry18), // features size - kFeatureListForEntry18, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry18), // CrBugs size - kCrBugsForEntry18, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry18), // DeviceIDs size - kDeviceIDsForEntry18, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 27, // id - "ATI/AMD cards with older drivers in Linux are crash-prone", - arraysize(kFeatureListForEntry27), // features size - kFeatureListForEntry27, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry27), // CrBugs size - kCrBugsForEntry27, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry27, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry27), // exceptions count - kExceptionsForEntry27, // exceptions - }, - { - 28, // id - "ATI/AMD cards with third-party drivers in Linux are crash-prone", - arraysize(kFeatureListForEntry28), // features size - kFeatureListForEntry28, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry28), // CrBugs size - kCrBugsForEntry28, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry28, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry28), // exceptions count - kExceptionsForEntry28, // exceptions - }, - { - 29, // id - "ATI/AMD cards with third-party drivers in Linux are crash-prone", - arraysize(kFeatureListForEntry29), // features size - kFeatureListForEntry29, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry29), // CrBugs size - kCrBugsForEntry29, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry29, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry29), // exceptions count - kExceptionsForEntry29, // exceptions - }, - { - 30, // id - "NVIDIA cards with nouveau drivers in Linux are crash-prone", - arraysize(kFeatureListForEntry30), // features size - kFeatureListForEntry30, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry30), // CrBugs size - kCrBugsForEntry30, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry30, // driver info - &kGLStringsForEntry30, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 34, // id - "S3 Trio (used in Virtual PC) is not compatible", - arraysize(kFeatureListForEntry34), // features size - kFeatureListForEntry34, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry34), // CrBugs size - kCrBugsForEntry34, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x5333, // vendor_id - arraysize(kDeviceIDsForEntry34), // DeviceIDs size - kDeviceIDsForEntry34, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 37, // id - "Older drivers are unreliable for Optimus on Linux", - arraysize(kFeatureListForEntry37), // features size - kFeatureListForEntry37, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry37), // CrBugs size - kCrBugsForEntry37, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleOptimus, // multi_gpu_style - &kDriverInfoForEntry37, // driver info - &kGLStringsForEntry37, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 45, // id - "Parallels drivers older than 7 are buggy", - arraysize(kFeatureListForEntry45), // features size - kFeatureListForEntry45, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry45), // CrBugs size - kCrBugsForEntry45, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1ab8, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry45, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 46, // id - "ATI FireMV 2400 cards on Windows are buggy", - arraysize(kFeatureListForEntry46), // features size - kFeatureListForEntry46, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry46), // CrBugs size - kCrBugsForEntry46, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - arraysize(kDeviceIDsForEntry46), // DeviceIDs size - kDeviceIDsForEntry46, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 47, // id - "NVIDIA linux drivers older than 295.* are assumed to be buggy", - arraysize(kFeatureListForEntry47), // features size - kFeatureListForEntry47, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry47), // CrBugs size - kCrBugsForEntry47, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry47, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 48, // id - "Accelerated video decode is unavailable on Linux", - arraysize(kFeatureListForEntry48), // features size - kFeatureListForEntry48, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry48), // CrBugs size - kCrBugsForEntry48, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 50, // id - "Disable VMware software renderer on older Mesa", - arraysize(kFeatureListForEntry50), // features size - kFeatureListForEntry50, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry50), // CrBugs size - kCrBugsForEntry50, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry50, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry50), // exceptions count - kExceptionsForEntry50, // exceptions - }, - { - 53, // id - "The Intel GMA500 is too slow for Stage3D", - arraysize(kFeatureListForEntry53), // features size - kFeatureListForEntry53, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry53), // CrBugs size - kCrBugsForEntry53, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry53), // DeviceIDs size - kDeviceIDsForEntry53, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 56, // id - "NVIDIA linux drivers are unstable when using multiple Open GL " - "contexts and with low memory", - arraysize(kFeatureListForEntry56), // features size - kFeatureListForEntry56, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry56), // CrBugs size - kCrBugsForEntry56, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry56, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 57, // id - "Chrome OS panel fitting is only supported for Intel IVB and SNB " - "Graphics Controllers", - arraysize(kFeatureListForEntry57), // features size - kFeatureListForEntry57, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry57), // exceptions count - kExceptionsForEntry57, // exceptions - }, - { - 59, // id - "NVidia driver 8.15.11.8593 is crashy on Windows", - arraysize(kFeatureListForEntry59), // features size - kFeatureListForEntry59, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry59), // CrBugs size - kCrBugsForEntry59, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry59, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 64, // id - "Hardware video decode is only supported in win7+", - arraysize(kFeatureListForEntry64), // features size - kFeatureListForEntry64, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry64), // CrBugs size - kCrBugsForEntry64, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "6.1", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 68, // id - "VMware Fusion 4 has corrupt rendering with Win Vista+", - arraysize(kFeatureListForEntry68), // features size - kFeatureListForEntry68, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry68), // CrBugs size - kCrBugsForEntry68, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "6.0", - nullptr}, // os_version - 0x15ad, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry68, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 69, // id - "NVIDIA driver 8.17.11.9621 is buggy with Stage3D baseline mode", - arraysize(kFeatureListForEntry69), // features size - kFeatureListForEntry69, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry69), // CrBugs size - kCrBugsForEntry69, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry69, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 70, // id - "NVIDIA driver 8.17.11.8267 is buggy with Stage3D baseline mode", - arraysize(kFeatureListForEntry70), // features size - kFeatureListForEntry70, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry70), // CrBugs size - kCrBugsForEntry70, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry70, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 71, // id - "All Intel drivers before 8.15.10.2021 are buggy with Stage3D baseline " - "mode", - arraysize(kFeatureListForEntry71), // features size - kFeatureListForEntry71, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry71), // CrBugs size - kCrBugsForEntry71, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry71, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 72, // id - "NVIDIA GeForce 6200 LE is buggy with WebGL", - arraysize(kFeatureListForEntry72), // features size - kFeatureListForEntry72, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry72), // CrBugs size - kCrBugsForEntry72, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry72), // DeviceIDs size - kDeviceIDsForEntry72, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 74, // id - "GPU access is blocked if users don't have proper graphics driver " - "installed after Windows installation", - arraysize(kFeatureListForEntry74), // features size - kFeatureListForEntry74, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry74), // CrBugs size - kCrBugsForEntry74, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry74, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry74), // exceptions count - kExceptionsForEntry74, // exceptions - }, - { - 76, // id - "WebGL is disabled on Android unless the GPU runs in a separate " - "process or reset notification is supported", - arraysize(kFeatureListForEntry76), // features size - kFeatureListForEntry76, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry76, // more data - }, - arraysize(kExceptionsForEntry76), // exceptions count - kExceptionsForEntry76, // exceptions - }, - { - 78, // id - "Accelerated video decode interferes with GPU sandbox on older Intel " - "drivers", - arraysize(kFeatureListForEntry78), // features size - kFeatureListForEntry78, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry78), // CrBugs size - kCrBugsForEntry78, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry78, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 79, // id - "Disable GPU on all Windows versions prior to and including Vista", - arraysize(kFeatureListForEntry79), // features size - kFeatureListForEntry79, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry79), // CrBugs size - kCrBugsForEntry79, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, "6.0", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 82, // id - "MediaCodec is still too buggy to use for encoding (b/11536167)", - arraysize(kFeatureListForEntry82), // features size - kFeatureListForEntry82, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry82), // CrBugs size - kCrBugsForEntry82, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 86, // id - "Intel Graphics Media Accelerator 3150 causes the GPU process to hang " - "running WebGL", - arraysize(kFeatureListForEntry86), // features size - kFeatureListForEntry86, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry86), // CrBugs size - kCrBugsForEntry86, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry86), // DeviceIDs size - kDeviceIDsForEntry86, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 87, // id - "Accelerated video decode on Intel driver 10.18.10.3308 is " - "incompatible with the GPU sandbox", - arraysize(kFeatureListForEntry87), // features size - kFeatureListForEntry87, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry87), // CrBugs size - kCrBugsForEntry87, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry87, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 88, // id - "Accelerated video decode on AMD driver 13.152.1.8000 is incompatible " - "with the GPU sandbox", - arraysize(kFeatureListForEntry88), // features size - kFeatureListForEntry88, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry88), // CrBugs size - kCrBugsForEntry88, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry88, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 89, // id - "Accelerated video decode interferes with GPU sandbox on certain AMD " - "drivers", - arraysize(kFeatureListForEntry89), // features size - kFeatureListForEntry89, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry89), // CrBugs size - kCrBugsForEntry89, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry89, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 90, // id - "Accelerated video decode interferes with GPU sandbox on certain " - "NVIDIA drivers", - arraysize(kFeatureListForEntry90), // features size - kFeatureListForEntry90, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry90), // CrBugs size - kCrBugsForEntry90, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry90, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 91, // id - "Accelerated video decode interferes with GPU sandbox on certain " - "NVIDIA drivers", - arraysize(kFeatureListForEntry91), // features size - kFeatureListForEntry91, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry91), // CrBugs size - kCrBugsForEntry91, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry91, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 92, // id - "Accelerated video decode does not work with the discrete GPU on AMD " - "switchables", - arraysize(kFeatureListForEntry92), // features size - kFeatureListForEntry92, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry92), // CrBugs size - kCrBugsForEntry92, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList:: - kMultiGpuStyleAMDSwitchableDiscrete, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 93, // id - "GLX indirect rendering (X remoting) is not supported", - arraysize(kFeatureListForEntry93), // features size - kFeatureListForEntry93, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry93), // CrBugs size - kCrBugsForEntry93, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry93, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 94, // id - "Intel driver version 8.15.10.1749 causes GPU process hangs.", - arraysize(kFeatureListForEntry94), // features size - kFeatureListForEntry94, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry94), // CrBugs size - kCrBugsForEntry94, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry94, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 95, // id - "AMD driver version 13.101 is unstable on linux.", - arraysize(kFeatureListForEntry95), // features size - kFeatureListForEntry95, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry95), // CrBugs size - kCrBugsForEntry95, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry95, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 96, // id - "Blacklist GPU raster/canvas on all except known good GPUs and newer " - "Android releases", - arraysize(kFeatureListForEntry96), // features size - kFeatureListForEntry96, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry96), // CrBugs size - kCrBugsForEntry96, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry96), // exceptions count - kExceptionsForEntry96, // exceptions - }, - { - 100, // id - "GPU rasterization and canvas is blacklisted on Nexus 10", - arraysize(kFeatureListForEntry100), // features size - kFeatureListForEntry100, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry100), // CrBugs size - kCrBugsForEntry100, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry100, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 102, // id - "Accelerated 2D canvas and Ganesh broken on Galaxy Tab 2", - arraysize(kFeatureListForEntry102), // features size - kFeatureListForEntry102, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry102), // CrBugs size - kCrBugsForEntry102, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry102, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 104, // id - "GPU raster broken on PowerVR Rogue", - arraysize(kFeatureListForEntry104), // features size - kFeatureListForEntry104, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry104), // CrBugs size - kCrBugsForEntry104, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry104, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 105, // id - "GPU raster broken on PowerVR SGX even on Lollipop", - arraysize(kFeatureListForEntry105), // features size - kFeatureListForEntry105, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry105), // CrBugs size - kCrBugsForEntry105, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry105, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 106, // id - "GPU raster broken on ES2-only Adreno 3xx drivers", - arraysize(kFeatureListForEntry106), // features size - kFeatureListForEntry106, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry106), // CrBugs size - kCrBugsForEntry106, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry106, // GL strings - nullptr, // machine model info - &kMoreForEntry106, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 107, // id - "Haswell GT1 Intel drivers are buggy on kernels < 3.19.1", - arraysize(kFeatureListForEntry107), // features size - kFeatureListForEntry107, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry107), // CrBugs size - kCrBugsForEntry107, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "3.19.1", nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry107), // DeviceIDs size - kDeviceIDsForEntry107, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 108, // id - "GPU rasterization image color broken on Vivante", - arraysize(kFeatureListForEntry108), // features size - kFeatureListForEntry108, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry108), // CrBugs size - kCrBugsForEntry108, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry108, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 109, // id - "MediaCodec on Adreno 330 / 4.2.2 doesn't always send FORMAT_CHANGED", - arraysize(kFeatureListForEntry109), // features size - kFeatureListForEntry109, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry109), // CrBugs size - kCrBugsForEntry109, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical, - "4.2.2", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry109, // driver info - &kGLStringsForEntry109, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 110, // id - "Only enable WebGL for the Mesa Gallium llvmpipe driver", - arraysize(kFeatureListForEntry110), // features size - kFeatureListForEntry110, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry110), // CrBugs size - kCrBugsForEntry110, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry110, // driver info - &kGLStringsForEntry110, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 111, // id - "Apple Software Renderer used under VMWare experiences synchronization " - "issues with GPU Raster", - arraysize(kFeatureListForEntry111), // features size - kFeatureListForEntry111, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry111), // CrBugs size - kCrBugsForEntry111, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x15ad, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 112, // id - "Intel HD 3000 driver crashes frequently on Mac", - arraysize(kFeatureListForEntry112), // features size - kFeatureListForEntry112, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry112), // CrBugs size - kCrBugsForEntry112, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry112), // DeviceIDs size - kDeviceIDsForEntry112, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 113, // id - "Some GPUs on Mac can perform poorly with GPU rasterization. Disable " - "all known Intel GPUs other than Intel 6th and 7th Generation cards, " - "which have been tested.", - arraysize(kFeatureListForEntry113), // features size - kFeatureListForEntry113, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry113), // CrBugs size - kCrBugsForEntry113, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry113), // DeviceIDs size - kDeviceIDsForEntry113, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 114, // id - "Some GPUs on Mac can perform poorly with GPU rasterization. Disable " - "all known NVidia GPUs other than the Geforce 6xx and 7xx series, " - "which have been tested.", - arraysize(kFeatureListForEntry114), // features size - kFeatureListForEntry114, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry114), // CrBugs size - kCrBugsForEntry114, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry114), // DeviceIDs size - kDeviceIDsForEntry114, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 115, // id - "Some GPUs on Mac can perform poorly with GPU rasterization. Disable " - "all known AMD GPUs other than the R200, R300, and D series, which " - "have been tested.", - arraysize(kFeatureListForEntry115), // features size - kFeatureListForEntry115, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry115), // CrBugs size - kCrBugsForEntry115, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - arraysize(kDeviceIDsForEntry115), // DeviceIDs size - kDeviceIDsForEntry115, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 116, // id - "Some GPUs on Mac can perform poorly with GPU rasterization. Disable " - "untested Virtualbox GPU.", - arraysize(kFeatureListForEntry116), // features size - kFeatureListForEntry116, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry116), // CrBugs size - kCrBugsForEntry116, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x80ee, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 117, // id - "MediaCodec on Vivante hangs in MediaCodec often", - arraysize(kFeatureListForEntry117), // features size - kFeatureListForEntry117, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry117), // CrBugs size - kCrBugsForEntry117, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "4.4.4", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry117, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 118, // id - "webgl/canvas crashy on imporperly parsed vivante driver", - arraysize(kFeatureListForEntry118), // features size - kFeatureListForEntry118, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry118), // CrBugs size - kCrBugsForEntry118, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "4.4.4", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry118, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 119, // id - "There are display issues with GPU Raster on OSX 10.9", - arraysize(kFeatureListForEntry119), // features size - kFeatureListForEntry119, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry119), // CrBugs size - kCrBugsForEntry119, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kLE, GpuControlList::kVersionStyleNumerical, - "10.9", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 120, // id - "VPx decoding isn't supported before Windows 10 anniversary update.", - arraysize(kFeatureListForEntry120), // features size - kFeatureListForEntry120, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry120), // CrBugs size - kCrBugsForEntry120, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, - "10.0.14393", nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 121, // id - "VPx decoding is too slow on Intel Broadwell, Skylake, and CherryView", - arraysize(kFeatureListForEntry121), // features size - kFeatureListForEntry121, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry121), // CrBugs size - kCrBugsForEntry121, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry121), // DeviceIDs size - kDeviceIDsForEntry121, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 122, // id - "GPU rasterization should only be enabled on NVIDIA and Intel DX11+, " - "and AMD RX-R2 GPUs for now.", - arraysize(kFeatureListForEntry122), // features size - kFeatureListForEntry122, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry122), // CrBugs size - kCrBugsForEntry122, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry122), // exceptions count - kExceptionsForEntry122, // exceptions - }, - { - 123, // id - "Accelerated VPx decoding is hanging on some videos.", - arraysize(kFeatureListForEntry123), // features size - kFeatureListForEntry123, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry123), // CrBugs size - kCrBugsForEntry123, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry123, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 124, // id - "Some AMD drivers have rendering glitches with GPU Rasterization", - arraysize(kFeatureListForEntry124), // features size - kFeatureListForEntry124, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry124), // CrBugs size - kCrBugsForEntry124, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry124, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry124), // exceptions count - kExceptionsForEntry124, // exceptions - }, - { - 125, // id - "VirtualBox driver is unstable on linux.", - arraysize(kFeatureListForEntry125), // features size - kFeatureListForEntry125, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry125), // CrBugs size - kCrBugsForEntry125, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x80ee, // vendor_id - arraysize(kDeviceIDsForEntry125), // DeviceIDs size - kDeviceIDsForEntry125, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 126, // id - "Don't allow ES3 on Mac core profile < 4.1", - arraysize(kFeatureListForEntry126), // features size - kFeatureListForEntry126, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry126), // CrBugs size - kCrBugsForEntry126, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry126, // more data - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 129, // id - "Intel drivers are buggy on Linux 2.x", - arraysize(kFeatureListForEntry129), // features size - kFeatureListForEntry129, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry129), // CrBugs size - kCrBugsForEntry129, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "3.0", - nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 130, // id - "Older NVIDIA GPUs on macOS render incorrectly", - arraysize(kFeatureListForEntry130), // features size - kFeatureListForEntry130, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry130), // CrBugs size - kCrBugsForEntry130, // CrBugs - { - GpuControlList::kOsMacosx, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry130), // DeviceIDs size - kDeviceIDsForEntry130, // DeviceIDs - GpuControlList::kMultiGpuCategoryAny, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 131, // id - "Mesa drivers older than 10.4.3 is crash prone on Linux Intel i965gm", - arraysize(kFeatureListForEntry131), // features size - kFeatureListForEntry131, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry131), // CrBugs size - kCrBugsForEntry131, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1f96, // vendor_id - arraysize(kDeviceIDsForEntry131), // DeviceIDs size - kDeviceIDsForEntry131, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry131, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 132, // id - "Mali accelerated 2d canvas is slow on Linux", - arraysize(kFeatureListForEntry132), // features size - kFeatureListForEntry132, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry132), // CrBugs size - kCrBugsForEntry132, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry132, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 133, // id - "MediaCodec on VideoCore IV HW crashes on JB", - arraysize(kFeatureListForEntry133), // features size - kFeatureListForEntry133, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry133), // CrBugs size - kCrBugsForEntry133, // CrBugs - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kLT, GpuControlList::kVersionStyleNumerical, "4.4", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry133, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 134, // id - "Mesa driver 10.1.3 renders incorrectly and crashes on multiple " - "vendors", - arraysize(kFeatureListForEntry134), // features size - kFeatureListForEntry134, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry134), // CrBugs size - kCrBugsForEntry134, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry134, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry134), // exceptions count - kExceptionsForEntry134, // exceptions - }, - { - 136, // id - "GPU rasterization is blacklisted on NVidia Fermi architecture for " - "now.", - arraysize(kFeatureListForEntry136), // features size - kFeatureListForEntry136, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry136), // CrBugs size - kCrBugsForEntry136, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - arraysize(kDeviceIDsForEntry136), // DeviceIDs size - kDeviceIDsForEntry136, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 137, // id - "GPU rasterization on CrOS is blacklisted on non-Intel GPUs for now.", - arraysize(kFeatureListForEntry137), // features size - kFeatureListForEntry137, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry137), // CrBugs size - kCrBugsForEntry137, // CrBugs - { - GpuControlList::kOsChromeOS, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - arraysize(kExceptionsForEntry137), // exceptions count - kExceptionsForEntry137, // exceptions - }, - { - 138, // id - "Accelerated video encode is unavailable on Linux", - arraysize(kFeatureListForEntry138), // features size - kFeatureListForEntry138, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - 0, // CrBugs size - nullptr, // CrBugs - { - GpuControlList::kOsLinux, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 139, // id - "GPU Rasterization is disabled on pre-GCN AMD cards", - arraysize(kFeatureListForEntry139), // features size - kFeatureListForEntry139, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry139), // CrBugs size - kCrBugsForEntry139, // CrBugs - { - GpuControlList::kOsWin, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry139, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, - { - 140, // id - "MSAA and depth texture buggy on Adreno 3xx, also disable WebGL2", - arraysize(kFeatureListForEntry140), // features size - kFeatureListForEntry140, // features - 0, // DisabledExtensions size - nullptr, // DisabledExtensions - arraysize(kCrBugsForEntry140), // CrBugs size - kCrBugsForEntry140, // CrBugs - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry140, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - 0, // exceptions count - nullptr, // exceptions - }, -}; -} // namespace gpu
diff --git a/gpu/config/software_rendering_list_autogen.h b/gpu/config/software_rendering_list_autogen.h deleted file mode 100644 index ceb1a9de..0000000 --- a/gpu/config/software_rendering_list_autogen.h +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is auto-generated from -// gpu/config/process_json.py -// It's formatted by clang-format using chromium coding style: -// clang-format -i -style=chromium filename -// DO NOT EDIT! - -#ifndef GPU_CONFIG_SOFTWARE_RENDERING_LIST_AUTOGEN_H_ -#define GPU_CONFIG_SOFTWARE_RENDERING_LIST_AUTOGEN_H_ - -#include "gpu/config/gpu_control_list.h" - -namespace gpu { -GPU_EXPORT extern const char kSoftwareRenderingListVersion[]; -GPU_EXPORT extern const size_t kSoftwareRenderingListEntryCount; -GPU_EXPORT extern const GpuControlList::Entry kSoftwareRenderingListEntries[]; -} // namespace gpu - -#endif // GPU_CONFIG_SOFTWARE_RENDERING_LIST_AUTOGEN_H_
diff --git a/gpu/config/software_rendering_list_exceptions_autogen.h b/gpu/config/software_rendering_list_exceptions_autogen.h deleted file mode 100644 index 8387c83..0000000 --- a/gpu/config/software_rendering_list_exceptions_autogen.h +++ /dev/null
@@ -1,524 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is auto-generated from -// gpu/config/process_json.py -// It's formatted by clang-format using chromium coding style: -// clang-format -i -style=chromium filename -// DO NOT EDIT! - -#ifndef GPU_CONFIG_SOFTWARE_RENDERING_LIST_EXCEPTIONS_AUTOGEN_H_ -#define GPU_CONFIG_SOFTWARE_RENDERING_LIST_EXCEPTIONS_AUTOGEN_H_ - -namespace gpu { -const GpuControlList::Conditions kExceptionsForEntry5[3] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry5Exception0, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry5Exception1, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry5Exception2, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry12[3] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry12Exception0), // DeviceIDs size - kDeviceIDsForEntry12Exception0, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry12Exception0, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry12Exception1, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1414, // vendor_id - arraysize(kDeviceIDsForEntry12Exception2), // DeviceIDs size - kDeviceIDsForEntry12Exception2, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry17[5] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry17Exception0), // DeviceIDs size - kDeviceIDsForEntry17Exception0, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry17Exception0, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry17Exception1), // DeviceIDs size - kDeviceIDsForEntry17Exception1, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry17Exception1, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry17Exception2), // DeviceIDs size - kDeviceIDsForEntry17Exception2, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry17Exception2, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry17Exception3), // DeviceIDs size - kDeviceIDsForEntry17Exception3, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry17Exception3, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry17Exception4), // DeviceIDs size - kDeviceIDsForEntry17Exception4, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry17Exception4, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry27[2] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry27Exception0, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry27Exception1, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry28[1] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry28Exception0, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry29[1] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry29Exception0, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry50[2] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry50Exception0, // driver info - &kGLStringsForEntry50Exception0, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry50Exception1, // driver info - &kGLStringsForEntry50Exception1, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry57[1] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - arraysize(kDeviceIDsForEntry57Exception0), // DeviceIDs size - kDeviceIDsForEntry57Exception0, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry74[1] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1414, // vendor_id - arraysize(kDeviceIDsForEntry74Exception0), // DeviceIDs size - kDeviceIDsForEntry74Exception0, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry76[2] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry76Exception0, // more data - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry76Exception1, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry96[5] = { - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry96Exception0, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "4.4", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry96Exception1, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry96Exception2, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kGE, GpuControlList::kVersionStyleNumerical, "4.4", - nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry96Exception3, // more data - }, - { - GpuControlList::kOsAndroid, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry96Exception4, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry122[3] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x10de, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry122Exception0, // more data - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry122Exception1, // more data - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x1002, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry122Exception2, // driver info - nullptr, // GL strings - nullptr, // machine model info - &kMoreForEntry122Exception2, // more data - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry124[1] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - &kDriverInfoForEntry124Exception0, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry134[2] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry134Exception0, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x00, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - &kGLStringsForEntry134Exception1, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -const GpuControlList::Conditions kExceptionsForEntry137[1] = { - { - GpuControlList::kOsAny, // os_type - {GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical, - nullptr, nullptr}, // os_version - 0x8086, // vendor_id - 0, // DeviceIDs size - nullptr, // DeviceIDs - GpuControlList::kMultiGpuCategoryNone, // multi_gpu_category - GpuControlList::kMultiGpuStyleNone, // multi_gpu_style - nullptr, // driver info - nullptr, // GL strings - nullptr, // machine model info - nullptr, // more conditions - }, -}; - -} // namespace gpu - -#endif // GPU_CONFIG_SOFTWARE_RENDERING_LIST_EXCEPTIONS_AUTOGEN_H_
diff --git a/gpu/ipc/service/direct_composition_surface_win.cc b/gpu/ipc/service/direct_composition_surface_win.cc index c6b5737..f67183c 100644 --- a/gpu/ipc/service/direct_composition_surface_win.cc +++ b/gpu/ipc/service/direct_composition_surface_win.cc
@@ -7,6 +7,8 @@ #include <d3d11_1.h> #include <dcomptypes.h> +#include <deque> + #include "base/feature_list.h" #include "base/memory/ptr_util.h" #include "base/metrics/histogram_macros.h" @@ -71,6 +73,37 @@ return gfx::Rect(a).Contains(gfx::Rect(b)); } +// This keeps track of whether the previous 30 frames used Overlays or GPU +// composition to present. +class PresentationHistory { + public: + static const int kPresentsToStore = 30; + + PresentationHistory() {} + + void AddSample(DXGI_FRAME_PRESENTATION_MODE mode) { + if (mode == DXGI_FRAME_PRESENTATION_MODE_COMPOSED) + composed_count_++; + + presents_.push_back(mode); + if (presents_.size() > kPresentsToStore) { + DXGI_FRAME_PRESENTATION_MODE first_mode = presents_.front(); + if (first_mode == DXGI_FRAME_PRESENTATION_MODE_COMPOSED) + composed_count_--; + presents_.pop_front(); + } + } + + bool valid() const { return presents_.size() >= kPresentsToStore; } + int composed_count() const { return composed_count_; } + + private: + std::deque<DXGI_FRAME_PRESENTATION_MODE> presents_; + int composed_count_ = 0; + + DISALLOW_COPY_AND_ASSIGN(PresentationHistory); +}; + // Only one DirectComposition surface can be rendered into at a time. Track // here which IDCompositionSurface is being rendered into. If another context // is made current, then this surface will be suspended. @@ -178,7 +211,8 @@ // Returns true if the video processor changed. bool InitializeVideoProcessor(const gfx::Size& in_size, const gfx::Size& out_size); - void ReallocateSwapChain(); + void ReallocateSwapChain(bool yuy2); + bool ShouldBeYUY2(); DCLayerTree* surface_; PFN_DCOMPOSITION_CREATE_SURFACE_HANDLE create_surface_handle_function_; @@ -193,6 +227,10 @@ float swap_chain_scale_x_ = 0.0f; float swap_chain_scale_y_ = 0.0f; + PresentationHistory presentation_history_; + bool failed_to_create_yuy2_swapchain_ = false; + int frames_since_color_space_change_ = 0; + // This is the GLImage that was presented in the last frame. scoped_refptr<gl::GLImageDXGI> last_gl_image_; @@ -287,6 +325,25 @@ DCLayerTree::SwapChainPresenter::~SwapChainPresenter() {} +bool DCLayerTree::SwapChainPresenter::ShouldBeYUY2() { + // Start out as YUY2. + if (!presentation_history_.valid()) + return true; + int composition_count = presentation_history_.composed_count(); + + // It's more efficient to use a BGRA backbuffer instead of YUY2 if overlays + // aren't being used, as otherwise DWM will use the video processor a second + // time to convert it to BGRA before displaying it on screen. + + if (is_yuy2_swapchain_) { + // Switch to BGRA once 3/4 of presents are composed. + return composition_count < (PresentationHistory::kPresentsToStore * 3 / 4); + } else { + // Switch to YUY2 once 3/4 are using overlays (or unknown). + return composition_count < (PresentationHistory::kPresentsToStore / 4); + } +} + void DCLayerTree::SwapChainPresenter::PresentToSwapChain( const ui::DCRendererLayerParams& params) { gl::GLImageDXGI* image_dxgi = @@ -309,12 +366,15 @@ InitializeVideoProcessor(ceiled_input_size, swap_chain_size); + bool yuy2_swapchain = ShouldBeYUY2(); bool first_present = false; - if (!swap_chain_ || swap_chain_size_ != swap_chain_size) { + if (!swap_chain_ || swap_chain_size_ != swap_chain_size || + ((yuy2_swapchain != is_yuy2_swapchain_) && + !failed_to_create_yuy2_swapchain_)) { first_present = true; swap_chain_size_ = swap_chain_size; swap_chain_.Reset(); - ReallocateSwapChain(); + ReallocateSwapChain(yuy2_swapchain); } else if (last_gl_image_ == image_dxgi) { // The swap chain is presenting the same image as last swap, which means // that the image was never returned to the video decoder and should have @@ -415,12 +475,15 @@ swap_chain_->Present(first_present ? 0 : 1, 0); + frames_since_color_space_change_++; + base::win::ScopedComPtr<IDXGISwapChainMedia> swap_chain_media; if (SUCCEEDED(swap_chain_.QueryInterface(swap_chain_media.Receive()))) { DXGI_FRAME_STATISTICS_MEDIA stats = {}; if (SUCCEEDED(swap_chain_media->GetFrameStatisticsMedia(&stats))) { UMA_HISTOGRAM_SPARSE_SLOWLY("GPU.DirectComposition.CompositionMode", stats.CompositionMode); + presentation_history_.AddSample(stats.CompositionMode); } } } @@ -443,7 +506,7 @@ return true; } -void DCLayerTree::SwapChainPresenter::ReallocateSwapChain() { +void DCLayerTree::SwapChainPresenter::ReallocateSwapChain(bool yuy2) { TRACE_EVENT0("gpu", "DCLayerTree::SwapChainPresenter::ReallocateSwapChain"); DCHECK(!swap_chain_); @@ -475,19 +538,31 @@ &handle); swap_chain_handle_.Set(handle); - is_yuy2_swapchain_ = true; + if (is_yuy2_swapchain_ != yuy2) { + UMA_HISTOGRAM_COUNTS_1000( + "GPU.DirectComposition.FramesSinceColorSpaceChange", + frames_since_color_space_change_); + } + + frames_since_color_space_change_ = 0; + + is_yuy2_swapchain_ = false; // The composition surface handle isn't actually used, but // CreateSwapChainForComposition can't create YUY2 swapchains. - HRESULT hr = media_factory->CreateSwapChainForCompositionSurfaceHandle( - d3d11_device_.get(), swap_chain_handle_.Get(), &desc, nullptr, - swap_chain_.Receive()); + HRESULT hr = E_FAIL; + if (yuy2) { + hr = media_factory->CreateSwapChainForCompositionSurfaceHandle( + d3d11_device_.get(), swap_chain_handle_.Get(), &desc, nullptr, + swap_chain_.Receive()); + is_yuy2_swapchain_ = SUCCEEDED(hr); + failed_to_create_yuy2_swapchain_ = !is_yuy2_swapchain_; + } - if (FAILED(hr)) { - // This should not be hit in production but is a simple fallback for - // testing on systems without YUY2 swapchain support. - DLOG(ERROR) << "YUY2 creation failed with " << std::hex << hr - << ". Falling back to BGRA"; - is_yuy2_swapchain_ = false; + if (!is_yuy2_swapchain_) { + if (yuy2) { + DLOG(ERROR) << "YUY2 creation failed with " << std::hex << hr + << ". Falling back to BGRA"; + } desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; desc.Flags = 0; hr = media_factory->CreateSwapChainForCompositionSurfaceHandle(
diff --git a/ios/chrome/browser/native_app_launcher/ios_appstore_ids.h b/ios/chrome/browser/native_app_launcher/ios_appstore_ids.h index ac3ad10..bcd33f9 100644 --- a/ios/chrome/browser/native_app_launcher/ios_appstore_ids.h +++ b/ios/chrome/browser/native_app_launcher/ios_appstore_ids.h
@@ -16,6 +16,5 @@ extern const char kIOSAppStoreGoogleSheets[]; extern const char kIOSAppStoreGoogleSlides[]; extern const char kIOSAppStoreTestFlight[]; -extern const char kIOSAppStoreYouTube[]; #endif // IOS_CHROME_BROWSER_NATIVE_APP_LAUNCHER_IOS_APPSTORE_IDS_H_
diff --git a/ios/chrome/browser/native_app_launcher/ios_appstore_ids.mm b/ios/chrome/browser/native_app_launcher/ios_appstore_ids.mm index 48b96527..672eaa3 100644 --- a/ios/chrome/browser/native_app_launcher/ios_appstore_ids.mm +++ b/ios/chrome/browser/native_app_launcher/ios_appstore_ids.mm
@@ -14,4 +14,3 @@ const char kIOSAppStoreGoogleSheets[] = "842849113"; const char kIOSAppStoreGoogleSlides[] = "879478102"; const char kIOSAppStoreTestFlight[] = "899247664"; -const char kIOSAppStoreYouTube[] = "544007664";
diff --git a/ios/chrome/browser/tabs/BUILD.gn b/ios/chrome/browser/tabs/BUILD.gn index 59d8e13..0d9a8fc 100644 --- a/ios/chrome/browser/tabs/BUILD.gn +++ b/ios/chrome/browser/tabs/BUILD.gn
@@ -22,6 +22,7 @@ "//components/sessions", "//components/signin/ios/browser", "//components/sync_sessions", + "//ios/chrome/browser/web:sad_tab_tab_helper_delegate", "//ios/net", "//ios/web", "//ios/web:user_agent", @@ -100,6 +101,7 @@ "//ios/chrome/browser/ui/toolbar", "//ios/chrome/browser/ui/util", "//ios/chrome/browser/web", + "//ios/chrome/browser/web:sad_tab_tab_helper_delegate", "//ios/chrome/browser/web:web_internal", "//ios/chrome/browser/web_state_list", "//ios/net",
diff --git a/ios/chrome/browser/tabs/tab.h b/ios/chrome/browser/tabs/tab.h index a21bab0..8c87b026 100644 --- a/ios/chrome/browser/tabs/tab.h +++ b/ios/chrome/browser/tabs/tab.h
@@ -11,6 +11,7 @@ #include <vector> #import "components/signin/ios/browser/manage_accounts_delegate.h" +#import "ios/chrome/browser/web/sad_tab_tab_helper_delegate.h" #include "ios/net/request_tracker.h" #include "ios/web/public/user_agent.h" #import "ios/web/public/web_state/ui/crw_web_delegate.h" @@ -94,7 +95,8 @@ // desktop Chrome's TabContents in that it encapsulates rendering. Acts as the // delegate for the CRWWebController in order to process info about pages having // loaded. -@interface Tab : NSObject<CRWWebDelegate, ManageAccountsDelegate> +@interface Tab + : NSObject<CRWWebDelegate, ManageAccountsDelegate, SadTabTabHelperDelegate> // Browser state associated with this Tab. @property(nonatomic, readonly) ios::ChromeBrowserState* browserState;
diff --git a/ios/chrome/browser/tabs/tab.mm b/ios/chrome/browser/tabs/tab.mm index 29e6c97c..7fa0dbb 100644 --- a/ios/chrome/browser/tabs/tab.mm +++ b/ios/chrome/browser/tabs/tab.mm
@@ -101,7 +101,6 @@ #import "ios/chrome/browser/ui/prerender_delegate.h" #import "ios/chrome/browser/ui/reader_mode/reader_mode_checker.h" #import "ios/chrome/browser/ui/reader_mode/reader_mode_controller.h" -#import "ios/chrome/browser/ui/sad_tab/sad_tab_view.h" #include "ios/chrome/browser/ui/ui_util.h" #import "ios/chrome/browser/web/auto_reload_bridge.h" #import "ios/chrome/browser/web/external_app_launcher.h" @@ -1830,19 +1829,6 @@ if (visible_) { if (!applicationIsNotActive) { - base::WeakNSObject<Tab> weakSelf(self); - base::scoped_nsobject<SadTabView> sadTabView( - [[SadTabView alloc] initWithReloadHandler:^{ - base::scoped_nsobject<Tab> strongSelf([weakSelf retain]); - - // |check_for_repost| is true because this is called from SadTab and - // explicitly initiated by the user. - [strongSelf navigationManager]->Reload(web::ReloadType::NORMAL, - true /* check_for_repost */); - }]); - base::scoped_nsobject<CRWContentView> contentView( - [[CRWGenericContentView alloc] initWithView:sadTabView]); - self.webState->ShowTransientContentView(contentView); [fullScreenController_ disableFullScreen]; } } else { @@ -1973,6 +1959,13 @@ [inputAccessoryViewController_ wasHidden]; } +#pragma mark - SadTabTabHelperDelegate + +- (BOOL)isTabVisibleForTabHelper:(SadTabTabHelper*)tabHelper { + UIApplicationState state = UIApplication.sharedApplication.applicationState; + return visible_ && !IsApplicationStateNotActive(state); +} + @end #pragma mark - TestingSupport
diff --git a/ios/chrome/browser/tabs/tab_helper_util.mm b/ios/chrome/browser/tabs/tab_helper_util.mm index 84714be..e266138 100644 --- a/ios/chrome/browser/tabs/tab_helper_util.mm +++ b/ios/chrome/browser/tabs/tab_helper_util.mm
@@ -34,6 +34,7 @@ #import "ios/chrome/browser/web/blocked_popup_tab_helper.h" #import "ios/chrome/browser/web/network_activity_indicator_tab_helper.h" #import "ios/chrome/browser/web/repost_form_tab_helper.h" +#import "ios/chrome/browser/web/sad_tab_tab_helper.h" #import "ios/public/provider/chrome/browser/chrome_browser_provider.h" #import "ios/web/public/web_state/web_state.h" @@ -57,6 +58,7 @@ BlockedPopupTabHelper::CreateForWebState(web_state); FindTabHelper::CreateForWebState(web_state, tab.findInPageControllerDelegate); StoreKitTabHelper::CreateForWebState(web_state); + SadTabTabHelper::CreateForWebState(web_state, tab); ReadingListModel* model = ReadingListModelFactory::GetForBrowserState(browser_state);
diff --git a/ios/chrome/browser/ui/overscroll_actions/BUILD.gn b/ios/chrome/browser/ui/overscroll_actions/BUILD.gn index 98b99f79..082cc1e5 100644 --- a/ios/chrome/browser/ui/overscroll_actions/BUILD.gn +++ b/ios/chrome/browser/ui/overscroll_actions/BUILD.gn
@@ -32,6 +32,8 @@ sources = [ "overscroll_actions_controller.h", "overscroll_actions_controller.mm", + "overscroll_actions_gesture_recognizer.h", + "overscroll_actions_gesture_recognizer.mm", "overscroll_actions_view.h", "overscroll_actions_view.mm", ]
diff --git a/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm b/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm index 7a58ef15..b1049d4 100644 --- a/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm +++ b/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm
@@ -12,6 +12,7 @@ #include "base/mac/scoped_nsobject.h" #include "base/metrics/histogram_macros.h" #import "ios/chrome/browser/ui/browser_view_controller.h" +#import "ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.h" #import "ios/chrome/browser/ui/overscroll_actions/overscroll_actions_view.h" #include "ios/chrome/browser/ui/rtl_geometry.h" #import "ios/chrome/browser/ui/toolbar/toolbar_controller.h" @@ -574,9 +575,18 @@ } - (void)setup { - base::scoped_nsobject<UIPanGestureRecognizer> panGesture( - [[UIPanGestureRecognizer alloc] initWithTarget:self - action:@selector(panGesture:)]); + base::scoped_nsobject<UIPanGestureRecognizer> panGesture; + // Workaround a bug occuring when Speak Selection is enabled. + // See crbug.com/699655. + if (UIAccessibilityIsSpeakSelectionEnabled()) { + panGesture.reset([[OverscrollActionsGestureRecognizer alloc] + initWithTarget:self + action:@selector(panGesture:)]); + } else { + panGesture.reset([[UIPanGestureRecognizer alloc] + initWithTarget:self + action:@selector(panGesture:)]); + } [panGesture setMaximumNumberOfTouches:1]; [panGesture setDelegate:self]; [[self scrollView] addGestureRecognizer:panGesture];
diff --git a/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.h b/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.h new file mode 100644 index 0000000..67928d73 --- /dev/null +++ b/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.h
@@ -0,0 +1,18 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_UI_OVERSCROLL_ACTIONS_OVERSCROLL_ACTIONS_GESTURE_RECOGNIZER_H_ +#define IOS_CHROME_BROWSER_UI_OVERSCROLL_ACTIONS_OVERSCROLL_ACTIONS_GESTURE_RECOGNIZER_H_ + +#import <UIKit/UIPanGestureRecognizer.h> + +// Subclass of UIPanGestureRecognizer that works around a bug where the targets' +// action is not called when the gesture ends while "Speak selection" is +// enabled (crbug.com/699655). +// This subclass works around the bug by calling the action of the target passed +// in the constructor when |reset| is called. +@interface OverscrollActionsGestureRecognizer : UIPanGestureRecognizer +@end + +#endif // IOS_CHROME_BROWSER_UI_OVERSCROLL_ACTIONS_OVERSCROLL_ACTIONS_GESTURE_RECOGNIZER_H_
diff --git a/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.mm b/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.mm new file mode 100644 index 0000000..c016de15 --- /dev/null +++ b/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.mm
@@ -0,0 +1,38 @@ +// 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. + +#import "ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.h" + +#import <UIKit/UIGestureRecognizerSubclass.h> + +#import "base/ios/weak_nsobject.h" + +@interface OverscrollActionsGestureRecognizer () { + base::WeakNSProtocol<id> target_; + SEL action_; +} +@end + +@implementation OverscrollActionsGestureRecognizer + +- (instancetype)initWithTarget:(id)target action:(SEL)action { + self = [super initWithTarget:target action:action]; + if (self) { + target_.reset([target retain]); + action_ = action; + } + return self; +} + +- (void)reset { + [super reset]; + [target_ performSelector:action_ withObject:self]; +} + +- (void)removeTarget:(id)target action:(SEL)action { + DCHECK(target != target_); + [super removeTarget:target action:action]; +} + +@end
diff --git a/ios/chrome/browser/ui/sad_tab/BUILD.gn b/ios/chrome/browser/ui/sad_tab/BUILD.gn index 7b92411f..c5bd5f0 100644 --- a/ios/chrome/browser/ui/sad_tab/BUILD.gn +++ b/ios/chrome/browser/ui/sad_tab/BUILD.gn
@@ -3,6 +3,7 @@ # found in the LICENSE file. source_set("sad_tab") { + configs += [ "//build/config/compiler:enable_arc" ] sources = [ "sad_tab_view.h", "sad_tab_view.mm",
diff --git a/ios/chrome/browser/ui/sad_tab/sad_tab_view.mm b/ios/chrome/browser/ui/sad_tab/sad_tab_view.mm index f9cd409..2551697 100644 --- a/ios/chrome/browser/ui/sad_tab/sad_tab_view.mm +++ b/ios/chrome/browser/ui/sad_tab/sad_tab_view.mm
@@ -28,6 +28,10 @@ #import "net/base/mac/url_conversions.h" #include "ui/base/l10n/l10n_util.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + namespace { // Color constants. const CGFloat kBackgroundColorBrightness = 247.0f / 255.0f; @@ -48,31 +52,23 @@ const CGFloat kHelpLabelFontSize = 14.0f; } // namespace -@interface SadTabView () { - // The block called when |_reloadButton| is tapped. - base::mac::ScopedBlock<ProceduralBlock> _reloadHandler; - // Backing objects for properties of the same name. - base::scoped_nsobject<UIView> _containerView; - base::scoped_nsobject<UIImageView> _imageView; - base::scoped_nsobject<UILabel> _titleLabel; - base::scoped_nsobject<UILabel> _messageLabel; - base::scoped_nsobject<UILabel> _helpLabel; - base::scoped_nsobject<LabelLinkController> _helpLabelLinkController; - base::scoped_nsobject<MDCButton> _reloadButton; -} +@interface SadTabView () +@property(nonatomic, readonly) ProceduralBlock reloadHandler; // Container view that displays all other subviews. -@property(nonatomic, readonly) UIView* containerView; +@property(nonatomic, readonly, strong) UIView* containerView; // Displays the Sad Tab face. -@property(nonatomic, readonly) UIImageView* imageView; +@property(nonatomic, readonly, strong) UIImageView* imageView; // Displays the Sad Tab title. -@property(nonatomic, readonly) UILabel* titleLabel; +@property(nonatomic, readonly, strong) UILabel* titleLabel; // Displays the Sad Tab message. -@property(nonatomic, readonly) UILabel* messageLabel; +@property(nonatomic, readonly, strong) UILabel* messageLabel; // Displays the Sad Tab help message. -@property(nonatomic, readonly) UILabel* helpLabel; +@property(nonatomic, readonly, strong) UILabel* helpLabel; +@property(nonatomic, readonly, strong) + LabelLinkController* helpLabelLinkController; // Button used to trigger a reload. -@property(nonatomic, readonly) UIButton* reloadButton; +@property(nonatomic, readonly, strong) MDCFlatButton* reloadButton; // The bounds of |containerView|, with a height updated to CGFLOAT_MAX to allow // text to be laid out using as many lines as necessary. @@ -99,11 +95,20 @@ @implementation SadTabView +@synthesize imageView = _imageView; +@synthesize containerView = _containerView; +@synthesize titleLabel = _titleLabel; +@synthesize messageLabel = _messageLabel; +@synthesize helpLabel = _helpLabel; +@synthesize helpLabelLinkController = _helpLabelLinkController; +@synthesize reloadButton = _reloadButton; +@synthesize reloadHandler = _reloadHandler; + - (instancetype)initWithReloadHandler:(ProceduralBlock)reloadHandler { self = [super initWithFrame:CGRectZero]; if (self) { DCHECK(reloadHandler); - _reloadHandler.reset([reloadHandler copy]); + _reloadHandler = [reloadHandler copy]; self.backgroundColor = [[self class] sadTabBackgroundColor]; } return self; @@ -128,7 +133,7 @@ - (UIView*)containerView { if (!_containerView) { - _containerView.reset([[UIView alloc] initWithFrame:CGRectZero]); + _containerView = [[UIView alloc] initWithFrame:CGRectZero]; [_containerView setBackgroundColor:self.backgroundColor]; } return _containerView; @@ -136,16 +141,16 @@ - (UIImageView*)imageView { if (!_imageView) { - _imageView.reset( - [[UIImageView alloc] initWithImage:NativeImage(IDR_CRASH_SAD_TAB)]); + _imageView = + [[UIImageView alloc] initWithImage:NativeImage(IDR_CRASH_SAD_TAB)]; [_imageView setBackgroundColor:self.backgroundColor]; } - return _imageView.get(); + return _imageView; } - (UILabel*)titleLabel { if (!_titleLabel) { - _titleLabel.reset([[UILabel alloc] initWithFrame:CGRectZero]); + _titleLabel = [[UILabel alloc] initWithFrame:CGRectZero]; [_titleLabel setBackgroundColor:self.backgroundColor]; [_titleLabel setText:base::SysUTF8ToNSString( l10n_util::GetStringUTF8(IDS_SAD_TAB_TITLE))]; @@ -157,12 +162,12 @@ [_titleLabel setFont:[[MDFRobotoFontLoader sharedInstance] regularFontOfSize:kTitleLabelFontSize]]; } - return _titleLabel.get(); + return _titleLabel; } - (UILabel*)messageLabel { if (!_messageLabel) { - _messageLabel.reset([[UILabel alloc] initWithFrame:CGRectZero]); + _messageLabel = [[UILabel alloc] initWithFrame:CGRectZero]; [_messageLabel setBackgroundColor:self.backgroundColor]; std::string messageText = l10n_util::GetStringUTF8(IDS_SAD_TAB_MESSAGE); [_messageLabel setText:base::SysUTF8ToNSString(messageText)]; @@ -174,12 +179,12 @@ [_messageLabel setFont:[[MDFRobotoFontLoader sharedInstance] regularFontOfSize:kMessageLabelFontSize]]; } - return _messageLabel.get(); + return _messageLabel; } - (UILabel*)helpLabel { if (!_helpLabel) { - _helpLabel.reset([[UILabel alloc] initWithFrame:CGRectZero]); + _helpLabel = [[UILabel alloc] initWithFrame:CGRectZero]; [_helpLabel setBackgroundColor:self.backgroundColor]; [_helpLabel setNumberOfLines:0]; [_helpLabel setFont:[[MDFRobotoFontLoader sharedInstance] @@ -195,13 +200,13 @@ [_helpLabel setText:helpText]; // Create link controller. base::WeakNSObject<SadTabView> weakSelf(self); - _helpLabelLinkController.reset([[LabelLinkController alloc] + _helpLabelLinkController = [[LabelLinkController alloc] initWithLabel:_helpLabel action:^(const GURL& url) { base::scoped_nsobject<OpenUrlCommand> openCommand( [[OpenUrlCommand alloc] initWithURLFromChrome:url]); [weakSelf chromeExecuteCommand:openCommand]; - }]); + }]; [_helpLabelLinkController setLinkFont:[[MDFRobotoFontLoader sharedInstance] boldFontOfSize:kHelpLabelFontSize]]; @@ -213,12 +218,12 @@ [_helpLabelLinkController addLinkWithRange:linkRange url:GURL(kCrashReasonURL)]; } - return _helpLabel.get(); + return _helpLabel; } - (UIButton*)reloadButton { if (!_reloadButton) { - _reloadButton.reset([[MDCFlatButton alloc] init]); + _reloadButton = [[MDCFlatButton alloc] init]; [_reloadButton setBackgroundColor:[[MDCPalette cr_bluePalette] tint500] forState:UIControlStateNormal]; [_reloadButton setBackgroundColor:[[MDCPalette greyPalette] tint500] @@ -235,7 +240,7 @@ action:@selector(handleReloadButtonTapped) forControlEvents:UIControlEventTouchUpInside]; } - return _reloadButton.get(); + return _reloadButton; } - (CGRect)containerBounds { @@ -387,7 +392,7 @@ } - (void)handleReloadButtonTapped { - _reloadHandler.get()(); + self.reloadHandler(); } + (UIColor*)sadTabBackgroundColor {
diff --git a/ios/chrome/browser/web/BUILD.gn b/ios/chrome/browser/web/BUILD.gn index 3f683a6..2037334 100644 --- a/ios/chrome/browser/web/BUILD.gn +++ b/ios/chrome/browser/web/BUILD.gn
@@ -15,12 +15,16 @@ "network_activity_indicator_tab_helper.mm", "repost_form_tab_helper.h", "repost_form_tab_helper.mm", + "sad_tab_tab_helper.h", + "sad_tab_tab_helper.mm", ] deps = [ + ":sad_tab_tab_helper_delegate", "//base", "//components/strings", "//ios/chrome/browser/ui", "//ios/chrome/browser/ui/alert_coordinator:alert_coordinator", + "//ios/chrome/browser/ui/sad_tab:sad_tab", "//ios/chrome/browser/ui/util:util", "//ios/web", "//ios/web:web_arc", @@ -28,6 +32,13 @@ ] } +source_set("sad_tab_tab_helper_delegate") { + configs += [ "//build/config/compiler:enable_arc" ] + sources = [ + "sad_tab_tab_helper_delegate.h", + ] +} + source_set("unit_tests") { configs += [ "//build/config/compiler:enable_arc" ] testonly = true @@ -35,8 +46,10 @@ "navigation_manager_util_unittest.mm", "network_activity_indicator_tab_helper_unittest.mm", "repost_form_tab_helper_unittest.mm", + "sad_tab_tab_helper_unittest.mm", ] deps = [ + ":sad_tab_tab_helper_delegate", ":web", "//base:base", "//base/test:test_support",
diff --git a/ios/chrome/browser/web/browsing_egtest.mm b/ios/chrome/browser/web/browsing_egtest.mm index 6ab21c7..7e4817a 100644 --- a/ios/chrome/browser/web/browsing_egtest.mm +++ b/ios/chrome/browser/web/browsing_egtest.mm
@@ -604,8 +604,8 @@ // Tests that submitting a POST-based form by tapping the 'Go' button on the // keyboard navigates to the correct URL and the back button works as expected // afterwards. -// TODO(crbug.com/704618): Re-enable this test when the flake is fixed. -- (void)FLAKY_testBrowsingPostEntryWithKeyboard { +// TODO(crbug.com/711108): Move test to forms_egtest.mm. +- (void)testBrowsingPostEntryWithKeyboard { // Create map of canned responses and set up the test HTML server. std::map<GURL, std::string> responses; const GURL URL =
diff --git a/ios/chrome/browser/web/navigation_manager_util.h b/ios/chrome/browser/web/navigation_manager_util.h index f1aee089..435ffa1 100644 --- a/ios/chrome/browser/web/navigation_manager_util.h +++ b/ios/chrome/browser/web/navigation_manager_util.h
@@ -11,9 +11,9 @@ // Utility functions built on web::NavigationManager public API. // Returns the most recent Committed Item that is not the result of a client or -// server-side redirect redirect from the given Navigation Manager. Returns -// nullptr if there's an error condition on the input |nav_manager|, such as -// nullptr or no non-redirect items. +// server-side redirect from the given Navigation Manager. Returns nullptr if +// there's an error condition on the input |nav_manager|, such as nullptr or no +// non-redirect items. web::NavigationItem* GetLastCommittedNonRedirectedItem( web::NavigationManager* nav_manager);
diff --git a/ios/chrome/browser/web/navigation_manager_util_unittest.mm b/ios/chrome/browser/web/navigation_manager_util_unittest.mm index 74ff9f3..8d7d0b7 100644 --- a/ios/chrome/browser/web/navigation_manager_util_unittest.mm +++ b/ios/chrome/browser/web/navigation_manager_util_unittest.mm
@@ -54,7 +54,7 @@ item->GetTransitionType(), ui::PAGE_TRANSITION_LINK)); } -// Tests that when all items are redirects, the first one is returned. +// Tests that when all items are redirects, nullptr is returned. TEST_F(NavigationManagerUtilTest, TestLastNonRedirectedItemAllRedirects) { nav_manager_.AddItem(GURL("http://bar.com/redir0"), ui::PAGE_TRANSITION_CLIENT_REDIRECT);
diff --git a/ios/chrome/browser/web/sad_tab_tab_helper.h b/ios/chrome/browser/web/sad_tab_tab_helper.h new file mode 100644 index 0000000..838f5c6 --- /dev/null +++ b/ios/chrome/browser/web/sad_tab_tab_helper.h
@@ -0,0 +1,40 @@ +// 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. + +#import "ios/web/public/web_state/web_state_observer.h" +#import "ios/web/public/web_state/web_state_user_data.h" + +@protocol SadTabTabHelperDelegate; + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +// SadTabTabHelper listens to RenderProcessGone events and presents a +// SadTabView view appropriately. +class SadTabTabHelper : public web::WebStateUserData<SadTabTabHelper>, + public web::WebStateObserver { + public: + // Creates a SadTabTabHelper and attaches it to a specific web_state object, + // a delegate object controls presentation. + static void CreateForWebState(web::WebState* web_state, + id<SadTabTabHelperDelegate> delegate); + + private: + // Constructor for SadTabTabHelper, assigning the helper to a web_state and + // providing a delegate. + SadTabTabHelper(web::WebState* web_state, + id<SadTabTabHelperDelegate> delegate); + + ~SadTabTabHelper() override; + + // Presents a new SadTabView via the web_state object. + void PresentSadTab(); + + // WebStateObserver: + void RenderProcessGone() override; + + // A TabHelperDelegate that can control aspects of this tab helper's behavior. + __weak id<SadTabTabHelperDelegate> delegate_; +};
diff --git a/ios/chrome/browser/web/sad_tab_tab_helper.mm b/ios/chrome/browser/web/sad_tab_tab_helper.mm new file mode 100644 index 0000000..3edf6317 --- /dev/null +++ b/ios/chrome/browser/web/sad_tab_tab_helper.mm
@@ -0,0 +1,53 @@ +// 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. + +#import "ios/chrome/browser/web/sad_tab_tab_helper.h" + +#import <Foundation/Foundation.h> + +#include "base/strings/sys_string_conversions.h" +#import "ios/chrome/browser/ui/sad_tab/sad_tab_view.h" +#import "ios/chrome/browser/web/sad_tab_tab_helper_delegate.h" +#import "ios/web/public/navigation_manager.h" +#import "ios/web/public/web_state/ui/crw_generic_content_view.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +DEFINE_WEB_STATE_USER_DATA_KEY(SadTabTabHelper); + +SadTabTabHelper::SadTabTabHelper(web::WebState* web_state, + id<SadTabTabHelperDelegate> delegate) + : web::WebStateObserver(web_state), delegate_(delegate) { + DCHECK(delegate_); +} + +SadTabTabHelper::~SadTabTabHelper() = default; + +void SadTabTabHelper::CreateForWebState(web::WebState* web_state, + id<SadTabTabHelperDelegate> delegate) { + DCHECK(web_state); + if (!FromWebState(web_state)) { + web_state->SetUserData(UserDataKey(), + new SadTabTabHelper(web_state, delegate)); + } +} + +void SadTabTabHelper::RenderProcessGone() { + if (!delegate_ || [delegate_ isTabVisibleForTabHelper:this]) { + PresentSadTab(); + } +} + +void SadTabTabHelper::PresentSadTab() { + SadTabView* sad_tab_view = [[SadTabView alloc] initWithReloadHandler:^{ + web_state()->GetNavigationManager()->Reload(web::ReloadType::NORMAL, true); + }]; + + CRWContentView* content_view = + [[CRWGenericContentView alloc] initWithView:sad_tab_view]; + + web_state()->ShowTransientContentView(content_view); +}
diff --git a/ios/chrome/browser/web/sad_tab_tab_helper_delegate.h b/ios/chrome/browser/web/sad_tab_tab_helper_delegate.h new file mode 100644 index 0000000..80b68ba --- /dev/null +++ b/ios/chrome/browser/web/sad_tab_tab_helper_delegate.h
@@ -0,0 +1,27 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_WEB_SAD_TAB_TAB_HELPER_DELEGATE_H_ +#define IOS_CHROME_BROWSER_WEB_SAD_TAB_TAB_HELPER_DELEGATE_H_ + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +class SadTabTabHelper; + +// SadTabTabHelperDelegate defines an interface that allows SadTabTabHelper +// instances to learn about the visibility of the Tab they are helping. +@protocol SadTabTabHelperDelegate<NSObject> + +// Returns whether the tab for the tab helper is visible - i.e. the tab is +// frontmost and the application is in an active state - allowing differences +// in the behavior of the helper for visible vs. non-visible tabs. +- (BOOL)isTabVisibleForTabHelper:(SadTabTabHelper*)tabHelper; + +@end + +NS_ASSUME_NONNULL_END + +#endif // IOS_CHROME_BROWSER_WEB_SAD_TAB_TAB_HELPER_DELEGATE_H_
diff --git a/ios/chrome/browser/web/sad_tab_tab_helper_unittest.mm b/ios/chrome/browser/web/sad_tab_tab_helper_unittest.mm new file mode 100644 index 0000000..37404347 --- /dev/null +++ b/ios/chrome/browser/web/sad_tab_tab_helper_unittest.mm
@@ -0,0 +1,59 @@ +// 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. + +#import "ios/chrome/browser/web/sad_tab_tab_helper.h" + +#import "ios/chrome/browser/web/sad_tab_tab_helper_delegate.h" +#import "ios/web/public/test/fakes/test_web_state.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "testing/platform_test.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +// A configurable TabHelper delegate for testing. +@interface TabHelperTestDelegate : NSObject<SadTabTabHelperDelegate> +@property(readwrite, assign) BOOL active; +@end + +@implementation TabHelperTestDelegate +@synthesize active = _active; +- (BOOL)isTabVisibleForTabHelper:(SadTabTabHelper*)tabHelper { + return self.active; +} +@end + +class SadTabTabHelperTest : public PlatformTest { + protected: + SadTabTabHelperTest() : delegate_([[TabHelperTestDelegate alloc] init]) { + SadTabTabHelper::CreateForWebState(&web_state_, delegate_); + } + TabHelperTestDelegate* delegate_; + web::TestWebState web_state_; +}; + +// Tests that the presentation-block can be suppressed by the delegate. +TEST_F(SadTabTabHelperTest, PresentationCanBeSuppressedByDelegate) { + // WebState should not have presented a transient content view. + EXPECT_FALSE(web_state_.IsShowingTransientContentView()); + + // Helper should get notified of render process failure, + // but the delegate should suppress the presentation of a content view. + web_state_.OnRenderProcessGone(); + EXPECT_FALSE(web_state_.IsShowingTransientContentView()); +} + +// Tests that the presentation-block can be allowed by the delegate. +TEST_F(SadTabTabHelperTest, PresentationCanBeAllowedByDelegate) { + delegate_.active = YES; + + // WebState should not have presented a transient content view. + EXPECT_FALSE(web_state_.IsShowingTransientContentView()); + + // Helper should get notified of render process failure. + // The delegate should allow the presentation of a content view. + web_state_.OnRenderProcessGone(); + EXPECT_TRUE(web_state_.IsShowingTransientContentView()); +}
diff --git a/ios/clean/chrome/browser/ui/tools/BUILD.gn b/ios/clean/chrome/browser/ui/tools/BUILD.gn index e348eb9..beee4a94 100644 --- a/ios/clean/chrome/browser/ui/tools/BUILD.gn +++ b/ios/clean/chrome/browser/ui/tools/BUILD.gn
@@ -46,3 +46,23 @@ "//ios/third_party/material_components_ios", ] } + +source_set("unit_tests") { + testonly = true + + sources = [ + "tools_coordinator_unittest.mm", + "tools_mediator_unittest.mm", + ] + + configs += [ "//build/config/compiler:enable_arc" ] + + deps = [ + ":tools", + ":tools_ui", + "//base/test:test_support", + "//ios/chrome/test/base", + "//testing/gtest", + "//third_party/ocmock", + ] +}
diff --git a/ios/clean/chrome/browser/ui/tools/tools_coordinator_unittest.mm b/ios/clean/chrome/browser/ui/tools/tools_coordinator_unittest.mm new file mode 100644 index 0000000..6c0d1a29 --- /dev/null +++ b/ios/clean/chrome/browser/ui/tools/tools_coordinator_unittest.mm
@@ -0,0 +1,9 @@ +// 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. + +#import "ios/clean/chrome/browser/ui/tools/tools_coordinator.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif
diff --git a/ios/clean/chrome/browser/ui/tools/tools_mediator_unittest.mm b/ios/clean/chrome/browser/ui/tools/tools_mediator_unittest.mm new file mode 100644 index 0000000..5329a2f --- /dev/null +++ b/ios/clean/chrome/browser/ui/tools/tools_mediator_unittest.mm
@@ -0,0 +1,30 @@ +// 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. + +#import "ios/clean/chrome/browser/ui/tools/tools_mediator.h" + +#import "ios/clean/chrome/browser/ui/tools/tools_consumer.h" +#include "testing/platform_test.h" +#import "third_party/ocmock/OCMock/OCMock.h" +#include "third_party/ocmock/gtest_support.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace { + +class ToolsMediatorTest : public PlatformTest { + protected: + ToolsMediator* mediator_; +}; + +TEST_F(ToolsMediatorTest, TestSetConsumer) { + id consumer = OCMProtocolMock(@protocol(ToolsConsumer)); + mediator_ = [[ToolsMediator alloc] initWithConsumer:consumer]; + + [[consumer verify] setToolsMenuItems:[OCMArg any]]; +} + +} // namespace
diff --git a/ios/clean/chrome/test/BUILD.gn b/ios/clean/chrome/test/BUILD.gn index 37105ee..904904a 100644 --- a/ios/clean/chrome/test/BUILD.gn +++ b/ios/clean/chrome/test/BUILD.gn
@@ -27,6 +27,7 @@ "//ios/clean/chrome/browser/ui/tab_collection:unit_tests", "//ios/clean/chrome/browser/ui/tab_grid:unit_tests", "//ios/clean/chrome/browser/ui/toolbar:unit_tests", + "//ios/clean/chrome/browser/ui/tools:unit_tests", "//ios/clean/chrome/browser/ui/web_contents:unit_tests", ] }
diff --git a/ios/web/public/test/fakes/test_web_state.h b/ios/web/public/test/fakes/test_web_state.h index f857c2c..98af071c 100644 --- a/ios/web/public/test/fakes/test_web_state.h +++ b/ios/web/public/test/fakes/test_web_state.h
@@ -56,7 +56,8 @@ const GURL& GetVisibleURL() const override; const GURL& GetLastCommittedURL() const override; GURL GetCurrentURL(URLVerificationTrustLevel* trust_level) const override; - void ShowTransientContentView(CRWContentView* content_view) override {} + void ShowTransientContentView(CRWContentView* content_view) override; + void ClearTransientContentView(); void AddScriptCommandCallback(const ScriptCommandCallback& callback, const std::string& command_prefix) override {} void RemoveScriptCommandCallback(const std::string& command_prefix) override { @@ -87,14 +88,19 @@ std::unique_ptr<NavigationManager> navigation_manager); void SetView(UIView* view); + // Getters for test data. + bool IsShowingTransientContentView(); + // Notifier for tests. void OnPageLoaded(PageLoadCompletionStatus load_completion_status); void OnProvisionalNavigationStarted(const GURL& url); + void OnRenderProcessGone(); private: BrowserState* browser_state_; bool web_usage_enabled_; bool is_loading_; + bool is_showing_transient_content_view_; GURL url_; base::string16 title_; URLVerificationTrustLevel trust_level_;
diff --git a/ios/web/public/test/fakes/test_web_state.mm b/ios/web/public/test/fakes/test_web_state.mm index 841f06eb..7e348a3e 100644 --- a/ios/web/public/test/fakes/test_web_state.mm +++ b/ios/web/public/test/fakes/test_web_state.mm
@@ -23,6 +23,7 @@ : browser_state_(nullptr), web_usage_enabled_(false), is_loading_(false), + is_showing_transient_content_view_(false), trust_level_(kAbsolute), content_is_html_(true) {} @@ -186,6 +187,21 @@ observer.ProvisionalNavigationStarted(url); } +void TestWebState::OnRenderProcessGone() { + for (auto& observer : observers_) + observer.RenderProcessGone(); +} + +void TestWebState::ShowTransientContentView(CRWContentView* content_view) { + if (content_view) { + is_showing_transient_content_view_ = true; + } +} + +void TestWebState::ClearTransientContentView() { + is_showing_transient_content_view_ = false; +} + void TestWebState::SetCurrentURL(const GURL& url) { url_ = url; } @@ -211,4 +227,8 @@ return base::WeakPtr<WebState>(); } +bool TestWebState::IsShowingTransientContentView() { + return is_showing_transient_content_view_; +} + } // namespace web
diff --git a/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java b/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java index 0c0d469..1ea6aa2b 100644 --- a/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java +++ b/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java
@@ -68,8 +68,13 @@ private static class MediaCodecListHelper implements Iterable<MediaCodecInfo> { @TargetApi(Build.VERSION_CODES.LOLLIPOP) public MediaCodecListHelper() { - if (hasNewMediaCodecList()) { - mCodecList = new MediaCodecList(MediaCodecList.ALL_CODECS).getCodecInfos(); + if (supportsNewMediaCodecList()) { + try { + mCodecList = new MediaCodecList(MediaCodecList.ALL_CODECS).getCodecInfos(); + } catch (RuntimeException e) { + // Swallow the exception due to bad Android implementation and pretend + // MediaCodecList is not supported. + } } } @@ -90,10 +95,14 @@ return MediaCodecList.getCodecInfoAt(index); } - private boolean hasNewMediaCodecList() { + private static boolean supportsNewMediaCodecList() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP; } + private boolean hasNewMediaCodecList() { + return supportsNewMediaCodecList() && mCodecList != null; + } + private MediaCodecInfo[] mCodecList; private class CodecInfoIterator implements Iterator<MediaCodecInfo> {
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc index 366ada9..7c10f9f 100644 --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc
@@ -943,6 +943,9 @@ bool WebMediaPlayerImpl::CopyVideoTextureToPlatformTexture( gpu::gles2::GLES2Interface* gl, unsigned int texture, + unsigned internal_format, + unsigned format, + unsigned type, bool premultiply_alpha, bool flip_y) { DCHECK(main_task_runner_->BelongsToCurrentThread()); @@ -963,7 +966,8 @@ if (!context_3d_cb_.is_null()) context_3d = context_3d_cb_.Run(); return skcanvas_video_renderer_.CopyVideoFrameTexturesToGLTexture( - context_3d, gl, video_frame.get(), texture, premultiply_alpha, flip_y); + context_3d, gl, video_frame.get(), texture, internal_format, format, type, + premultiply_alpha, flip_y); } void WebMediaPlayerImpl::SetContentDecryptionModule(
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h index 29863b0..8e1a16b5 100644 --- a/media/blink/webmediaplayer_impl.h +++ b/media/blink/webmediaplayer_impl.h
@@ -173,6 +173,9 @@ bool CopyVideoTextureToPlatformTexture(gpu::gles2::GLES2Interface* gl, unsigned int texture, + unsigned internal_format, + unsigned format, + unsigned type, bool premultiply_alpha, bool flip_y) override;
diff --git a/media/renderers/skcanvas_video_renderer.cc b/media/renderers/skcanvas_video_renderer.cc index 1e2e9b2..d60e854 100644 --- a/media/renderers/skcanvas_video_renderer.cc +++ b/media/renderers/skcanvas_video_renderer.cc
@@ -160,6 +160,20 @@ return img; } +bool VideoTextureNeedsClipping(const VideoFrame* video_frame) { + // There are multiple reasons that the size of the video frame's + // visible rectangle may differ from the coded size, including the + // encoder rounding up to the size of a macroblock, or use of + // non-square pixels. + // + // Some callers of these APIs (HTMLVideoElement and the 2D canvas + // context) already clip to the video frame's visible rectangle. + // WebGL on the other hand assumes that only the valid pixels are + // contained in the destination texture. This helper function + // determines whether this slower path is needed. + return video_frame->visible_rect().size() != video_frame->coded_size(); +} + // Creates a SkImage from a |video_frame| backed by native resources. // The SkImage will take ownership of the underlying resource. sk_sp<SkImage> NewSkImageFromVideoFrameNative(VideoFrame* video_frame, @@ -184,12 +198,10 @@ gl->GenTextures(1, &source_texture); DCHECK(source_texture); gl->BindTexture(GL_TEXTURE_2D, source_texture); - const gfx::Size& natural_size = video_frame->natural_size(); - gl->TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, natural_size.width(), - natural_size.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, - nullptr); SkCanvasVideoRenderer::CopyVideoFrameSingleTextureToGLTexture( - gl, video_frame, source_texture, true, false); + gl, video_frame, + SkCanvasVideoRenderer::SingleFrameForVideoElementOrCanvas, + source_texture, GL_RGBA, GL_RGBA, GL_UNSIGNED_BYTE, true, false); } else { gl->WaitSyncTokenCHROMIUM(mailbox_holder.sync_token.GetConstData()); source_texture = gl->CreateAndConsumeTextureCHROMIUM( @@ -753,7 +765,11 @@ void SkCanvasVideoRenderer::CopyVideoFrameSingleTextureToGLTexture( gpu::gles2::GLES2Interface* gl, VideoFrame* video_frame, + SingleFrameCopyMode copy_mode, unsigned int texture, + unsigned int internal_format, + unsigned int format, + unsigned int type, bool premultiply_alpha, bool flip_y) { DCHECK(video_frame); @@ -776,14 +792,35 @@ // "flip_y == true" means to reverse the video orientation while // "flip_y == false" means to keep the intrinsic orientation. - // The video's texture might be larger than the natural size because - // the encoder might have had to round up to the size of a macroblock. - // Make sure to only copy the natural size to avoid putting garbage - // into the bottom of the destination texture. - const gfx::Size& natural_size = video_frame->natural_size(); - gl->CopySubTextureCHROMIUM(source_texture, 0, GL_TEXTURE_2D, texture, 0, 0, 0, - 0, 0, natural_size.width(), natural_size.height(), - flip_y, premultiply_alpha, false); + if (copy_mode == SingleFrameForVideoElementOrCanvas || + !VideoTextureNeedsClipping(video_frame)) { + // No need to clip the source video texture. + gl->CopyTextureCHROMIUM(source_texture, 0, GL_TEXTURE_2D, texture, 0, + internal_format, type, flip_y, premultiply_alpha, + false); + } else { + // Must reallocate the destination texture and copy only a sub-portion. + gfx::Rect dest_rect = video_frame->visible_rect(); +#if DCHECK_IS_ON() + // The caller should have bound _texture_ to the GL_TEXTURE_2D + // binding point already. + GLuint current_texture = 0; + gl->GetIntegerv(GL_TEXTURE_BINDING_2D, + reinterpret_cast<GLint*>(¤t_texture)); + DCHECK_EQ(current_texture, texture); + // There should always be enough data in the source texture to + // cover this copy. + DCHECK_LE(dest_rect.width(), video_frame->coded_size().width()); + DCHECK_LE(dest_rect.height(), video_frame->coded_size().height()); +#endif + gl->TexImage2D(GL_TEXTURE_2D, 0, internal_format, dest_rect.width(), + dest_rect.height(), 0, format, type, nullptr); + gl->CopySubTextureCHROMIUM(source_texture, 0, GL_TEXTURE_2D, texture, 0, 0, + 0, dest_rect.x(), dest_rect.y(), + dest_rect.width(), dest_rect.height(), flip_y, + premultiply_alpha, false); + } + gl->DeleteTextures(1, &source_texture); gl->Flush(); @@ -796,6 +833,9 @@ gpu::gles2::GLES2Interface* destination_gl, const scoped_refptr<VideoFrame>& video_frame, unsigned int texture, + unsigned int internal_format, + unsigned int format, + unsigned int type, bool premultiply_alpha, bool flip_y) { DCHECK(thread_checker_.CalledOnValidThread()); @@ -832,15 +872,35 @@ destination_gl->CreateAndConsumeTextureCHROMIUM( mailbox_holder.texture_target, mailbox_holder.mailbox.name); - // The video's texture might be larger than the natural size because - // the encoder might have had to round up to the size of a macroblock. - // Make sure to only copy the natural size to avoid putting garbage - // into the bottom of the destination texture. - const gfx::Size& natural_size = video_frame->natural_size(); - destination_gl->CopySubTextureCHROMIUM( - intermediate_texture, 0, GL_TEXTURE_2D, texture, 0, 0, 0, 0, 0, - natural_size.width(), natural_size.height(), flip_y, premultiply_alpha, - false); + // See whether the source video texture must be clipped. + if (VideoTextureNeedsClipping(video_frame.get())) { + // Reallocate destination texture and copy only valid region. + gfx::Rect dest_rect = video_frame->visible_rect(); +#if DCHECK_IS_ON() + // The caller should have bound _texture_ to the GL_TEXTURE_2D + // binding point already. + GLuint current_texture = 0; + destination_gl->GetIntegerv(GL_TEXTURE_BINDING_2D, + reinterpret_cast<GLint*>(¤t_texture)); + DCHECK_EQ(current_texture, texture); + // There should always be enough data in the source texture to + // cover this copy. + DCHECK_LE(dest_rect.width(), video_frame->coded_size().width()); + DCHECK_LE(dest_rect.height(), video_frame->coded_size().height()); +#endif + destination_gl->TexImage2D(GL_TEXTURE_2D, 0, internal_format, + dest_rect.width(), dest_rect.height(), 0, + format, type, nullptr); + destination_gl->CopySubTextureCHROMIUM( + intermediate_texture, 0, GL_TEXTURE_2D, texture, 0, 0, 0, + dest_rect.x(), dest_rect.y(), dest_rect.width(), dest_rect.height(), + flip_y, premultiply_alpha, false); + } else { + destination_gl->CopyTextureCHROMIUM( + intermediate_texture, 0, GL_TEXTURE_2D, texture, 0, internal_format, + type, flip_y, premultiply_alpha, false); + } + destination_gl->DeleteTextures(1, &intermediate_texture); // Wait for destination context to consume mailbox before deleting it in @@ -855,8 +915,9 @@ SyncTokenClientImpl client(canvas_gl); video_frame->UpdateReleaseSyncToken(&client); } else { - CopyVideoFrameSingleTextureToGLTexture(destination_gl, video_frame.get(), - texture, premultiply_alpha, flip_y); + CopyVideoFrameSingleTextureToGLTexture( + destination_gl, video_frame.get(), SingleFrameForWebGL, texture, + internal_format, format, type, premultiply_alpha, flip_y); } return true;
diff --git a/media/renderers/skcanvas_video_renderer.h b/media/renderers/skcanvas_video_renderer.h index 3831139..1f3d2f7f 100644 --- a/media/renderers/skcanvas_video_renderer.h +++ b/media/renderers/skcanvas_video_renderer.h
@@ -64,16 +64,25 @@ void* rgb_pixels, size_t row_bytes); + enum SingleFrameCopyMode { + SingleFrameForVideoElementOrCanvas, + SingleFrameForWebGL + }; + // Copy the contents of texture of |video_frame| to texture |texture|. // |level|, |internal_format|, |type| specify target texture |texture|. // The format of |video_frame| must be VideoFrame::NATIVE_TEXTURE. - // Assumes |texture| has already been allocated with the appropriate - // size and a compatible format, internal format and type; this is - // effectively a "TexSubImage" operation. + // |copy_mode| alters how the copy is done, and takes into consideration + // whether the caller will clip the texture to the frame's |visible_rect|, + // or expects this to be done internally. static void CopyVideoFrameSingleTextureToGLTexture( gpu::gles2::GLES2Interface* gl, VideoFrame* video_frame, + SingleFrameCopyMode copy_mode, unsigned int texture, + unsigned int internal_format, + unsigned int format, + unsigned int type, bool premultiply_alpha, bool flip_y); @@ -82,15 +91,15 @@ // |level|, |internal_format|, |type| specify target texture |texture|. // The format of |video_frame| must be VideoFrame::NATIVE_TEXTURE. // |context_3d| has a GrContext that may be used during the copy. - // Assumes |texture| has already been allocated with the appropriate - // size and a compatible format, internal format and type; this is - // effectively a "TexSubImage" operation. // Returns true on success. bool CopyVideoFrameTexturesToGLTexture( const Context3D& context_3d, gpu::gles2::GLES2Interface* destination_gl, const scoped_refptr<VideoFrame>& video_frame, unsigned int texture, + unsigned int internal_format, + unsigned int format, + unsigned int type, bool premultiply_alpha, bool flip_y);
diff --git a/net/BUILD.gn b/net/BUILD.gn index 36c0fa4..b84fc22c 100644 --- a/net/BUILD.gn +++ b/net/BUILD.gn
@@ -41,7 +41,7 @@ # in addition to use_openssl_certs or use_nss_certs, in that case byte certs # are used internally but OpenSSL or NSS are used for certificate verification. # TODO(mattm): crbug.com/671420: Implement and enable this for all platforms. -use_byte_certs = is_mac +use_byte_certs = is_mac || is_android buildflag_header("features") { header = "net_features.h"
diff --git a/net/cert/ct_objects_extractor.cc b/net/cert/ct_objects_extractor.cc index 1a6e6e4..852bf827 100644 --- a/net/cert/ct_objects_extractor.cc +++ b/net/cert/ct_objects_extractor.cc
@@ -41,7 +41,9 @@ bssl::UniquePtr<X509> OSCertHandleToOpenSSL( X509Certificate::OSCertHandle os_handle) { -#if defined(USE_OPENSSL_CERTS) +#if BUILDFLAG(USE_BYTE_CERTS) + return bssl::UniquePtr<X509>(X509_parse_from_buffer(os_handle)); +#elif defined(USE_OPENSSL_CERTS) return bssl::UniquePtr<X509>(X509Certificate::DupOSCertHandle(os_handle)); #else std::string der_encoded;
diff --git a/net/socket/ssl_server_socket_impl.cc b/net/socket/ssl_server_socket_impl.cc index 9b3cfd3..5d4bce7 100644 --- a/net/socket/ssl_server_socket_impl.cc +++ b/net/socket/ssl_server_socket_impl.cc
@@ -14,6 +14,7 @@ #include "net/base/net_errors.h" #include "net/cert/cert_verify_result.h" #include "net/cert/client_cert_verifier.h" +#include "net/cert/x509_util.h" #include "net/cert/x509_util_openssl.h" #include "net/log/net_log_event_type.h" #include "net/log/net_log_with_source.h" @@ -624,6 +625,8 @@ uint8_t session_ctx_id = 0; SSL_CTX_set_session_id_context(ssl_ctx_.get(), &session_ctx_id, sizeof(session_ctx_id)); + // Deduplicate all certificates minted from the SSL_CTX in memory. + SSL_CTX_set0_buffer_pool(ssl_ctx_.get(), x509_util::GetBufferPool()); int verify_mode = 0; switch (ssl_server_config_.client_cert_type) { @@ -643,26 +646,26 @@ // Set certificate and private key. DCHECK(cert_->os_cert_handle()); -#if defined(USE_OPENSSL_CERTS) + DCHECK(key_->key()); +#if BUILDFLAG(USE_BYTE_CERTS) + // On success, SSL_CTX_set_chain_and_key acquires a reference to + // |cert_->os_cert_handle()| and |key_->key()|. + CRYPTO_BUFFER* cert_buffers[] = {cert_->os_cert_handle()}; + CHECK(SSL_CTX_set_chain_and_key(ssl_ctx_.get(), cert_buffers, + arraysize(cert_buffers), key_->key(), + nullptr /* privkey_method */)); +#elif defined(USE_OPENSSL_CERTS) CHECK(SSL_CTX_use_certificate(ssl_ctx_.get(), cert_->os_cert_handle())); + CHECK(SSL_CTX_use_PrivateKey(ssl_ctx_.get(), key_->key())); #else - // Convert OSCertHandle to X509 structure. std::string der_string; CHECK(X509Certificate::GetDEREncoded(cert_->os_cert_handle(), &der_string)); - - const unsigned char* der_string_array = - reinterpret_cast<const unsigned char*>(der_string.data()); - - bssl::UniquePtr<X509> x509( - d2i_X509(NULL, &der_string_array, der_string.length())); - CHECK(x509); - - // On success, SSL_CTX_use_certificate acquires a reference to |x509|. - CHECK(SSL_CTX_use_certificate(ssl_ctx_.get(), x509.get())); -#endif // USE_OPENSSL_CERTS - - DCHECK(key_->key()); + CHECK(SSL_CTX_use_certificate_ASN1( + ssl_ctx_.get(), der_string.length(), + reinterpret_cast<const unsigned char*>(der_string.data()))); + // On success, SSL_CTX_use_PrivateKey acquires a reference to |key_->key()|. CHECK(SSL_CTX_use_PrivateKey(ssl_ctx_.get(), key_->key())); +#endif // USE_OPENSSL_CERTS && !USE_BYTE_CERTS DCHECK_LT(SSL3_VERSION, ssl_server_config_.version_min); DCHECK_LT(SSL3_VERSION, ssl_server_config_.version_max);
diff --git a/net/ssl/openssl_client_key_store.cc b/net/ssl/openssl_client_key_store.cc index 295810f..48895e9 100644 --- a/net/ssl/openssl_client_key_store.cc +++ b/net/ssl/openssl_client_key_store.cc
@@ -7,6 +7,7 @@ #include <utility> #include "base/memory/singleton.h" +#include "net/cert/asn1_util.h" #include "net/cert/x509_certificate.h" #include "net/ssl/ssl_private_key.h" #include "third_party/boringssl/src/include/openssl/evp.h" @@ -19,6 +20,16 @@ // Serializes the SubjectPublicKeyInfo for |cert|. bool GetCertificateSPKI(const X509Certificate* cert, std::string* spki) { +#if BUILDFLAG(USE_BYTE_CERTS) + base::StringPiece cert_der( + reinterpret_cast<const char*>(CRYPTO_BUFFER_data(cert->os_cert_handle())), + CRYPTO_BUFFER_len(cert->os_cert_handle())); + base::StringPiece spki_tmp; + if (!asn1::ExtractSPKIFromDERCert(cert_der, &spki_tmp)) + return false; + spki_tmp.CopyToString(spki); + return true; +#else bssl::UniquePtr<EVP_PKEY> pkey(X509_get_pubkey(cert->os_cert_handle())); if (!pkey) { LOG(ERROR) << "Can't extract private key from certificate!"; @@ -38,6 +49,7 @@ reinterpret_cast<char*>(der) + der_len); OPENSSL_free(der); return true; +#endif } } // namespace
diff --git a/net/ssl/openssl_ssl_util.cc b/net/ssl/openssl_ssl_util.cc index c3988b464..8071da6 100644 --- a/net/ssl/openssl_ssl_util.cc +++ b/net/ssl/openssl_ssl_util.cc
@@ -227,15 +227,17 @@ bssl::UniquePtr<X509> OSCertHandleToOpenSSL( X509Certificate::OSCertHandle os_handle) { -#if defined(USE_OPENSSL_CERTS) +#if BUILDFLAG(USE_BYTE_CERTS) + return bssl::UniquePtr<X509>(X509_parse_from_buffer(os_handle)); +#elif defined(USE_OPENSSL_CERTS) return bssl::UniquePtr<X509>(X509Certificate::DupOSCertHandle(os_handle)); -#else // !defined(USE_OPENSSL_CERTS) +#else // !defined(USE_OPENSSL_CERTS) && !BUILDFLAG(USE_BYTE_CERTS) std::string der_encoded; if (!X509Certificate::GetDEREncoded(os_handle, &der_encoded)) return bssl::UniquePtr<X509>(); const uint8_t* bytes = reinterpret_cast<const uint8_t*>(der_encoded.data()); return bssl::UniquePtr<X509>(d2i_X509(NULL, &bytes, der_encoded.size())); -#endif // defined(USE_OPENSSL_CERTS) +#endif // defined(USE_OPENSSL_CERTS) && BUILDFLAG(USE_BYTE_CERTS) } bssl::UniquePtr<STACK_OF(X509)> OSCertHandlesToOpenSSL(
diff --git a/services/preferences/tracked/BUILD.gn b/services/preferences/tracked/BUILD.gn index d372473..16be8a2d 100644 --- a/services/preferences/tracked/BUILD.gn +++ b/services/preferences/tracked/BUILD.gn
@@ -66,6 +66,7 @@ testonly = true sources = [ "device_id_unittest.cc", + "interceptable_pref_filter_unittest.cc", "pref_hash_calculator_unittest.cc", "pref_hash_filter_unittest.cc", "pref_hash_store_impl_unittest.cc",
diff --git a/services/preferences/tracked/interceptable_pref_filter.cc b/services/preferences/tracked/interceptable_pref_filter.cc index af987a30..81f2783 100644 --- a/services/preferences/tracked/interceptable_pref_filter.cc +++ b/services/preferences/tracked/interceptable_pref_filter.cc
@@ -7,6 +7,7 @@ #include <utility> #include "base/bind.h" +#include "base/callback_helpers.h" InterceptablePrefFilter::InterceptablePrefFilter() {} InterceptablePrefFilter::~InterceptablePrefFilter() {} @@ -26,9 +27,8 @@ const FinalizeFilterOnLoadCallback finalize_filter_on_load( base::Bind(&InterceptablePrefFilter::FinalizeFilterOnLoad, AsWeakPtr(), post_filter_on_load_callback)); - filter_on_load_interceptor_.Run(finalize_filter_on_load, - std::move(pref_store_contents)); - filter_on_load_interceptor_.Reset(); + base::ResetAndReturn(&filter_on_load_interceptor_) + .Run(finalize_filter_on_load, std::move(pref_store_contents)); } }
diff --git a/services/preferences/tracked/interceptable_pref_filter_unittest.cc b/services/preferences/tracked/interceptable_pref_filter_unittest.cc new file mode 100644 index 0000000..cdaaadb3 --- /dev/null +++ b/services/preferences/tracked/interceptable_pref_filter_unittest.cc
@@ -0,0 +1,55 @@ +// 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 "services/preferences/tracked/interceptable_pref_filter.h" + +#include <string> +#include <utility> + +#include "base/bind.h" +#include "base/memory/ptr_util.h" +#include "base/values.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +class TestInterceptablePrefFilter : public InterceptablePrefFilter { + public: + void FinalizeFilterOnLoad( + const PostFilterOnLoadCallback& post_filter_on_load_callback, + std::unique_ptr<base::DictionaryValue> pref_store_contents, + bool prefs_altered) override { + post_filter_on_load_callback.Run(std::move(pref_store_contents), + prefs_altered); + } + + void FilterUpdate(const std::string& path) override {} + + OnWriteCallbackPair FilterSerializeData( + base::DictionaryValue* pref_store_contents) override { + return {}; + } +}; + +void NoOpIntercept(const InterceptablePrefFilter::FinalizeFilterOnLoadCallback& + finalize_filter_on_load, + std::unique_ptr<base::DictionaryValue> prefs) { + finalize_filter_on_load.Run(std::move(prefs), false); +} + +void DeleteFilter(std::unique_ptr<TestInterceptablePrefFilter>* filter, + std::unique_ptr<base::DictionaryValue> prefs, + bool schedule_write) { + filter->reset(); +} + +TEST(InterceptablePrefFilterTest, CallbackDeletes) { + auto filter = base::MakeUnique<TestInterceptablePrefFilter>(); + filter->InterceptNextFilterOnLoad(base::Bind(&NoOpIntercept)); + filter->FilterOnLoad(base::Bind(&DeleteFilter, &filter), + base::MakeUnique<base::DictionaryValue>()); + EXPECT_FALSE(filter); +} + +} // namespace
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl index 4ad06da..4a3bb665 100644 --- a/testing/buildbot/gn_isolate_map.pyl +++ b/testing/buildbot/gn_isolate_map.pyl
@@ -161,6 +161,15 @@ "label": "//ui/aura:aura_unittests", "type": "windowed_test_launcher", }, + "motopho_latency_test": { + "label": "//chrome/test/vr/perf/latency/:motopho_latency_test", + "type": "script", + "script": "//chrome/test/vr/perf/latency/run_latency_test.py", + "args": [ + "--output-dir=${ISOLATED_OUTDIR}", + "-v", + ], + }, "base_junit_tests": { "label": "//base:base_junit_tests", "type": "junit_test",
diff --git a/testing/buildbot/manage.py b/testing/buildbot/manage.py index 48a5928..4fd99b1 100755 --- a/testing/buildbot/manage.py +++ b/testing/buildbot/manage.py
@@ -179,6 +179,7 @@ 'junit_unit_tests', 'media_router_perf_tests', 'media_router_tests', + 'motopho_latency_test', 'net_junit_tests', 'net_junit_tests', 'ui_junit_tests',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index b31a18c8..d750e45 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -2614,6 +2614,31 @@ ] } ], + "ServiceWorkerNavigationPreload": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "win" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ServiceWorkerNavigationPreload" + ] + }, + { + "name": "Disabled", + "disable_features": [ + "ServiceWorkerNavigationPreload" + ] + } + ] + } + ], "SettingsEnforcement": [ { "platforms": [ @@ -2847,29 +2872,6 @@ ] } ], - "TranslateRanker": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "win" - ], - "experiments": [ - { - "name": "EnforcementEnabled", - "params": { - "translate-ranker-model-url": "https://www.gstatic.com/chrome/intelligence/assist/ranker/models/translate/2017/02/translate_ranker_model_20170217.pb.bin" - }, - "enable_features": [ - "TranslateRankerEnforcement" - ] - } - ] - } - ], "TranslateRankerLogging": [ { "platforms": [ @@ -2890,6 +2892,29 @@ ] } ], + "TranslateRankerModel": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "win" + ], + "experiments": [ + { + "name": "Enforcement", + "params": { + "translate-ranker-model-url": "https://www.gstatic.com/chrome/intelligence/assist/ranker/models/translate/2017/03/translate_ranker_model_20170329.pb.bin" + }, + "enable_features": [ + "TranslateRankerEnforcement" + ] + } + ] + } + ], "TranslateServerStudy": [ { "platforms": [
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index c84463e..62c79d8 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -699,12 +699,6 @@ # ====== LayoutNG-only failures until here ====== -# Requires ServiceWorkerNavigationPreload feature enabled. Run under -# virtual/service-worker-navigation-preload only. -crbug.com/649558 http/tests/serviceworker/navigation-preload/ [ Skip ] -crbug.com/649558 external/wpt/service-workers/service-worker/navigation-preload/ [ Skip ] -crbug.com/649558 virtual/mojo-loading/http/tests/serviceworker/navigation-preload/ [ Skip ] - # Run these tests with under virtual/scalefactor... only. crbug.com/567837 fast/hidpi/static [ Skip ]
diff --git a/third_party/WebKit/LayoutTests/VirtualTestSuites b/third_party/WebKit/LayoutTests/VirtualTestSuites index 2375ea98..fa731844 100644 --- a/third_party/WebKit/LayoutTests/VirtualTestSuites +++ b/third_party/WebKit/LayoutTests/VirtualTestSuites
@@ -121,7 +121,7 @@ { "prefix": "origin-trials-runtimeflags-disabled", "base": "http/tests/origin_trials/webexposed", - "args": ["--disable-blink-features=ForeignFetch,InstalledApp,LinkServiceWorker,LongTaskObserver,ServiceWorkerNavigationPreload,SetRootScroller,WebUSB,WebVR,WebShare"] + "args": ["--disable-blink-features=ForeignFetch,InstalledApp,LinkServiceWorker,LongTaskObserver,SetRootScroller,WebUSB,WebVR,WebShare"] }, { "prefix": "android", @@ -423,18 +423,13 @@ "args": ["--enable-features=AsmJsToWebAssembly"] }, { - "prefix": "service-worker-navigation-preload", - "base": "http/tests/serviceworker", - "args": ["--enable-features=ServiceWorkerNavigationPreload"] - }, - { - "prefix": "service-worker-navigation-preload-wpt", - "base": "external/wpt/service-workers/service-worker/navigation-preload", - "args": ["--enable-features=ServiceWorkerNavigationPreload"] + "prefix": "service-worker-navigation-preload-disabled", + "base": "webexposed", + "args": ["--disable-features=ServiceWorkerNavigationPreload"] }, { "prefix": "service-worker-navigation-preload-disabled", - "base": "http/tests/serviceworker/chromium", + "base": "http/tests/serviceworker/webexposed", "args": ["--disable-features=ServiceWorkerNavigationPreload"] }, {
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/resources/navigation-preload-worker.js b/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/resources/navigation-preload-worker.js new file mode 100644 index 0000000..5c59f0ca --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/resources/navigation-preload-worker.js
@@ -0,0 +1,17 @@ +self.addEventListener('activate', event => { + event.waitUntil( + registration.navigationPreload.enable() + .then(_ => registration.navigationPreload.setHeaderValue('hello'))); + }); + +self.addEventListener('fetch', event => { + if (event.request.url.indexOf('BrokenChunked') != -1) { + event.respondWith( + event.preloadResponse + .catch(_ => { return new Response('dummy'); })); + return; + } + if (event.preloadResponse) { + event.respondWith(event.preloadResponse); + } + });
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/resources/navigation-preload-worker.php b/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/resources/navigation-preload-worker.php deleted file mode 100644 index ccf6c070..0000000 --- a/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/resources/navigation-preload-worker.php +++ /dev/null
@@ -1,23 +0,0 @@ -<?php -// generate_token.py http://127.0.0.1:8000 ServiceWorkerNavigationPreload -expire-timestamp=2000000000 -header("Origin-Trial: AsAA4dg2Rm+GSgnpyxxnpVk1Bk8CcE+qVBTDpPbIFNscyNRJOdqw1l0vkC4dtsGm1tmP4ZDAKwycQDzsc9xr7gMAAABmeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkIiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9"); -header('Content-Type: application/javascript'); -?> - -self.addEventListener('activate', event => { - event.waitUntil( - registration.navigationPreload.enable() - .then(_ => registration.navigationPreload.setHeaderValue('hello'))); - }); - -self.addEventListener('fetch', event => { - if (event.request.url.indexOf('BrokenChunked') != -1) { - event.respondWith( - event.preloadResponse - .catch(_ => { return new Response('dummy'); })); - return; - } - if (event.preloadResponse) { - event.respondWith(event.preloadResponse); - } - });
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/service-workers-navigation-preload.html b/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/service-workers-navigation-preload.html index 9df07e7c..8c2ad97f 100644 --- a/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/service-workers-navigation-preload.html +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/service-workers/service-workers-navigation-preload.html
@@ -35,7 +35,7 @@ function test() { - var scriptURL = "http://127.0.0.1:8000/inspector/service-workers/resources/navigation-preload-worker.php"; + var scriptURL = "http://127.0.0.1:8000/inspector/service-workers/resources/navigation-preload-worker.js"; var scope = "http://127.0.0.1:8000/inspector/service-workers/resources/navigation-preload-scope.php"; var preloadRequestIDs = {};
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigation/navigation-with-detached-origin-document-expected.txt b/third_party/WebKit/LayoutTests/http/tests/navigation/navigation-with-detached-origin-document-expected.txt new file mode 100644 index 0000000..7ef22e9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/navigation/navigation-with-detached-origin-document-expected.txt
@@ -0,0 +1 @@ +PASS
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigation/navigation-with-detached-origin-document.html b/third_party/WebKit/LayoutTests/http/tests/navigation/navigation-with-detached-origin-document.html new file mode 100644 index 0000000..657789d --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/navigation/navigation-with-detached-origin-document.html
@@ -0,0 +1,14 @@ +<body> +<script> +if (window.testRunner) { + testRunner.waitUntilDone(); + testRunner.dumpAsText(); +} + +function detachIframe() { + document.getElementById("i").remove(); +} +</script> +<iframe id="i" src="resources/iframe-that-navigates-parent-then-detaches.html"> +</iframe> +</body>
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigation/resources/iframe-that-navigates-parent-then-detaches.html b/third_party/WebKit/LayoutTests/http/tests/navigation/resources/iframe-that-navigates-parent-then-detaches.html new file mode 100644 index 0000000..6eaed1b --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/navigation/resources/iframe-that-navigates-parent-then-detaches.html
@@ -0,0 +1,10 @@ +<body> +<script> +window.onload = function() { + setTimeout(function() { + parent.location = "pass-and-notify-done.html"; + parent.detachIframe(); + }, 0); +} +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces-expected.txt b/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces-expected.txt deleted file mode 100644 index 0de3b49..0000000 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces-expected.txt +++ /dev/null
@@ -1,85 +0,0 @@ -CONSOLE WARNING: line 13: This test relies on console message comparison so there can be different -expected.txt files for virtual test suites. -CONSOLE MESSAGE: line 21: Interfaces in document -interface NavigationPreloadManager - method constructor - method disable - method enable - method getState - method setHeaderValue -interface ServiceWorkerRegistration - getter active - getter backgroundFetch - getter installing - getter navigationPreload - getter onupdatefound - getter paymentManager - getter pushManager - getter scope - getter sync - getter waiting - method constructor - method getNotifications - method showNotification - method unregister - method update - setter onupdatefound -CONSOLE MESSAGE: line 58: Interfaces in normal Service Worker -interface FetchEvent - getter clientId - getter isReload - getter request - method constructor - method respondWith -interface ServiceWorkerRegistration - getter active - getter backgroundFetch - getter installing - getter onupdatefound - getter paymentManager - getter pushManager - getter scope - getter sync - getter waiting - method constructor - method getNotifications - method showNotification - method unregister - method update - setter onupdatefound -CONSOLE MESSAGE: line 70: Interfaces in Origin-Trial enabled Service Worker -interface FetchEvent - getter clientId - getter isReload - getter preloadResponse - getter request - method constructor - method respondWith -interface NavigationPreloadManager - method constructor - method disable - method enable - method getState - method setHeaderValue -interface ServiceWorkerRegistration - getter active - getter backgroundFetch - getter installing - getter navigationPreload - getter onupdatefound - getter paymentManager - getter pushManager - getter scope - getter sync - getter waiting - method constructor - method getNotifications - method showNotification - method unregister - method update - setter onupdatefound -This is a testharness.js-based test. -PASS Navigation preload related interfaces in Origin-Trial enabled document. -PASS Navigation preload related interfaces in normal SW. -PASS Navigation preload related interfaces in Origin-Trial enabled SW. -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces.html b/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces.html deleted file mode 100644 index 53aa9d83..0000000 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces.html +++ /dev/null
@@ -1,74 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<!-- Generate these token with the commands: -generate_token.py http://127.0.0.1:8000 ServiceWorkerNavigationPreload -expire-timestamp=2000000000 ---> -<meta http-equiv="origin-trial" content="AsAA4dg2Rm+GSgnpyxxnpVk1Bk8CcE+qVBTDpPbIFNscyNRJOdqw1l0vkC4dtsGm1tmP4ZDAKwycQDzsc9xr7gMAAABmeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkIiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9" /> -<title>Navigation Preload origin trial</title> -<script src="../../resources/testharness.js"></script> -<script src="../../resources/testharnessreport.js"></script> -<script src="../resources/test-helpers.js"></script> -<script src="./resources/get-interface-names.js"></script> -<script> -console.warn('This test relies on console message comparison so there can ' + - 'be different -expected.txt files for virtual test suites.'); - -test(t => { - var interfaces = - get_interface_names(this, ['NavigationPreloadManager', - 'FetchEvent', - 'ServiceWorkerRegistration']); - console.log('Interfaces in document\n' + interfaces); -}, "Navigation preload related interfaces in Origin-Trial enabled document."); - -function check_interfaces_in_sw(t, script, scope) { - var worker; - var message; - var registration; - return service_worker_unregister_and_register(t, script, scope) - .then(reg => { - registration = reg; - worker = registration.installing; - return wait_for_state(t, worker, 'activated'); - }) - .then(_ => { - var saw_message = new Promise(resolve => { - navigator.serviceWorker.onmessage = - e => { resolve(e.data); }; - }); - worker.postMessage(""); - return saw_message; - }) - .then(msg => { - message = msg; - return registration.unregister(); - }) - .then(_ => { - return message; - }); -} - -promise_test(t => { - var script = - './resources/navigation-preload-origin-trial-interfaces-worker.php'; - var scope = - './resources/navigation-preload-origin-trial-interfaces-scope-normal'; - return check_interfaces_in_sw(t, script, scope) - .then(message => { - console.log('Interfaces in normal Service Worker\n' + message); - }); - }, "Navigation preload related interfaces in normal SW."); - -promise_test(t => { - var script = - './resources/navigation-preload-origin-trial-interfaces-worker.php?' + - 'origintrial=true'; - var scope = - './resources/navigation-preload-origin-trial-interfaces-scope-enabled'; - return check_interfaces_in_sw(t, script, scope) - .then(message => { - console.log('Interfaces in Origin-Trial enabled Service Worker\n' + - message); - }); - }, "Navigation preload related interfaces in Origin-Trial enabled SW."); -</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods-expected.txt b/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods-expected.txt deleted file mode 100644 index a3bdeb7..0000000 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods-expected.txt +++ /dev/null
@@ -1,32 +0,0 @@ -CONSOLE WARNING: line 13: This test relies on console message comparison so there can be different -expected.txt files for virtual test suites. -CONSOLE MESSAGE: line 68: --normal SW-- -disable() rejected with: AbortError: Failed to enable or disable navigation preload: The service worker script does not have a valid Navigation Preload Origin Trial token. -enable() rejected with: AbortError: Failed to enable or disable navigation preload: The service worker script does not have a valid Navigation Preload Origin Trial token. -getState() resolved with: {"enabled":false,"headerValue":"true"} -setHeaderValue() rejected with: AbortError: Failed to set navigation preload header: The service worker script does not have a valid Navigation Preload Origin Trial token. -log from SW -Activate event handler -registration.navigationPreload not found -Fetch event handler -event.preloadResponse not found - -CONSOLE MESSAGE: line 79: --Origin-Trial enabled SW-- -disable() resolved with: undefined -enable() resolved with: undefined -getState() resolved with: {"enabled":true,"headerValue":"world"} -setHeaderValue() resolved with: undefined -log from SW -Activate event handler -disable() resolved with: undefined -enable() resolved with: undefined -getState() resolved with: {"enabled":true,"headerValue":"true"} -setHeaderValue() resolved with: undefined -Fetch event handler -event.preloadResponse resolved with: [object Response] -Text of preloadResponse: [Service-Worker-Navigation-Preload header set: hello] - -This is a testharness.js-based test. -PASS Calling Navigation preload related methods for normal SW. -PASS Calling Navigation preload related methods for Origin-Trial enabled SW. -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods.html b/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods.html deleted file mode 100644 index 2fc1faa..0000000 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods.html +++ /dev/null
@@ -1,82 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<!-- Generate these token with the commands: -generate_token.py http://127.0.0.1:8000 ServiceWorkerNavigationPreload -expire-timestamp=2000000000 ---> -<meta http-equiv="origin-trial" content="AsAA4dg2Rm+GSgnpyxxnpVk1Bk8CcE+qVBTDpPbIFNscyNRJOdqw1l0vkC4dtsGm1tmP4ZDAKwycQDzsc9xr7gMAAABmeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkIiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9" /> -<title>Navigation Preload origin trial</title> -<script src="../../resources/testharness.js"></script> -<script src="../../resources/testharnessreport.js"></script> -<script src="../resources/test-helpers.js"></script> -<script src="./resources/get_interface_names.js"></script> -<script> -console.warn('This test relies on console message comparison so there can ' + - 'be different -expected.txt files for virtual test suites.'); - -function check_methods(t, script, scope) { - var registration; - var worker; - var message; - var log = ''; - return service_worker_unregister_and_register(t, script, scope) - .then(reg => { - registration = reg; - worker = registration.installing; - return wait_for_state(t, worker, 'activated'); - }) - .then(_ => registration.navigationPreload.disable()) - .then( - result => { log += 'disable() resolved with: ' + result + '\n';}, - error => { log += 'disable() rejected with: ' + error + '\n';}) - .then(_ => registration.navigationPreload.enable()) - .then( - result => { log += 'enable() resolved with: ' + result + '\n';}, - error => { log += 'enable() rejected with: ' + error + '\n';}) - .then(_ => registration.navigationPreload.getState()) - .then( - result => { - log += 'getState() resolved with: ' + JSON.stringify(result) + '\n'; - }, - error => { log += 'getState() rejected with: ' + error + '\n';}) - .then(_ => registration.navigationPreload.setHeaderValue('hello')) - .then( - result => { log += 'setHeaderValue() resolved with: ' + result + '\n';}, - error => { log += 'setHeaderValue() rejected with: ' + error + '\n';}) - .then(_ => with_iframe(scope)) - .then(_ => { - var saw_message = new Promise(resolve => { - navigator.serviceWorker.onmessage = - e => { resolve(e.data); }; - }); - worker.postMessage(""); - return saw_message; - }) - .then(message => { - log += 'log from SW\n' + message; - return registration.unregister(); - }) - .then(_ => { - return log; - }); -} - -promise_test(t => { - var script = 'resources/navigation-preload-origin-trial-methods-worker.php'; - var scope = - 'resources/navigation-preload-origin-trial-methods-scope.php?default'; - return check_methods(t, script, scope).then(log => { - console.log('--normal SW--\n' + log); - }); - }, 'Calling Navigation preload related methods for normal SW.'); - -promise_test(t => { - var script = - 'resources/navigation-preload-origin-trial-methods-worker.php?' + - 'origintrial=true'; - var scope = - 'resources/navigation-preload-origin-trial-methods-scope.php?enabled'; - return check_methods(t, script, scope).then(log => { - console.log('--Origin-Trial enabled SW--\n' + log); - }); - }, 'Calling Navigation preload related methods for Origin-Trial enabled SW.'); -</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-interfaces-worker.php b/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-interfaces-worker.php deleted file mode 100644 index 6b8032d..0000000 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-interfaces-worker.php +++ /dev/null
@@ -1,17 +0,0 @@ -<?php -if (isset($_GET["origintrial"])) { - // generate_token.py http://127.0.0.1:8000 ServiceWorkerNavigationPreload -expire-timestamp=2000000000 - header("Origin-Trial: AsAA4dg2Rm+GSgnpyxxnpVk1Bk8CcE+qVBTDpPbIFNscyNRJOdqw1l0vkC4dtsGm1tmP4ZDAKwycQDzsc9xr7gMAAABmeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkIiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9"); -} -header('Content-Type: application/javascript'); -?> -importScripts('./get-interface-names.js'); - -self.addEventListener('message', event => { - event.source.postMessage( - get_interface_names( - this, - ['NavigationPreloadManager', - 'FetchEvent', - 'ServiceWorkerRegistration'])); - });
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-methods-scope.php b/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-methods-scope.php deleted file mode 100644 index 18cc3ad..0000000 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-methods-scope.php +++ /dev/null
@@ -1,8 +0,0 @@ -<?php - if (isset($_SERVER["HTTP_SERVICE_WORKER_NAVIGATION_PRELOAD"])) { - echo ("Service-Worker-Navigation-Preload header set: " . - $_SERVER["HTTP_SERVICE_WORKER_NAVIGATION_PRELOAD"]); - } else { - echo ("no Service-Worker-Navigation-Preload header"); - } -?>
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-methods-worker.php b/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-methods-worker.php deleted file mode 100644 index 5224c93..0000000 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/chromium/resources/navigation-preload-origin-trial-methods-worker.php +++ /dev/null
@@ -1,64 +0,0 @@ -<?php -if (isset($_GET["origintrial"])) { - // generate_token.py http://127.0.0.1:8000 ServiceWorkerNavigationPreload -expire-timestamp=2000000000 - header("Origin-Trial: AsAA4dg2Rm+GSgnpyxxnpVk1Bk8CcE+qVBTDpPbIFNscyNRJOdqw1l0vkC4dtsGm1tmP4ZDAKwycQDzsc9xr7gMAAABmeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkIiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9"); -} -header('Content-Type: application/javascript'); -?> -var log = ''; - -self.addEventListener('activate', event => { - log += 'Activate event handler\n'; - if (!self.registration.navigationPreload) { - log += 'registration.navigationPreload not found\n'; - return; - } - event.waitUntil( - registration.navigationPreload.disable() - .then( - result => { log += 'disable() resolved with: ' + result + '\n';}, - error => { log += 'disable() rejected with: ' + error + '\n';}) - .then(_ => registration.navigationPreload.enable()) - .then( - result => { log += 'enable() resolved with: ' + result + '\n';}, - error => { log += 'enable() rejected with: ' + error + '\n';}) - .then(_ => registration.navigationPreload.getState()) - .then( - result => { - log += 'getState() resolved with: ' + JSON.stringify(result) + '\n'; - }, - error => { log += 'getState() rejected with: ' + error + '\n';}) - .then(_ => registration.navigationPreload.setHeaderValue('world')) - .then( - result => { log += 'setHeaderValue() resolved with: ' + result + '\n';}, - error => { log += 'setHeaderValue() rejected with: ' + error + '\n';})); -}); - -self.addEventListener('message', event => { - event.source.postMessage(log); -}); - -self.addEventListener('fetch', event => { - log += 'Fetch event handler\n'; - if (!event.preloadResponse) { - log += 'event.preloadResponse not found\n'; - } else { - event.respondWith( - event.preloadResponse - .then( - res => { - log += 'event.preloadResponse resolved with: ' + res + '\n'; - if (!res) { - return new Response(''); - } - return res.text().then(text => { - log += 'Text of preloadResponse: [' + text + ']\n'; - return new Response(''); - }) - }, - err => { - log += 'event.preloadResponse rejected with: ' + err + '\n'; - return new Response(''); - })); - } -});
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt index ec4f603..4f0b0e4 100644 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -387,6 +387,7 @@ interface FetchEvent : ExtendableEvent getter clientId getter isReload + getter preloadResponse getter request method constructor method respondWith @@ -621,6 +622,12 @@ method postMessage method start setter onmessage +interface NavigationPreloadManager + method constructor + method disable + method enable + method getState + method setHeaderValue interface NetworkInformation : EventTarget getter downlinkMax getter onchange @@ -860,6 +867,7 @@ getter active getter backgroundFetch getter installing + getter navigationPreload getter onupdatefound getter paymentManager getter pushManager
diff --git a/third_party/WebKit/LayoutTests/inspector/schema-get-domains-matches-agents-expected.txt b/third_party/WebKit/LayoutTests/inspector/schema-get-domains-matches-agents-expected.txt index 92714a9..124c9b2 100644 --- a/third_party/WebKit/LayoutTests/inspector/schema-get-domains-matches-agents-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/schema-get-domains-matches-agents-expected.txt
@@ -1,5 +1,6 @@ Tests that generated agent prototypes match with domains returned by schema.getDomains. +domain Browser is missing from schema.getDomains domain SystemInfo is missing from schema.getDomains domain Tethering is missing from schema.getDomains
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 b0313705..d124355 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
@@ -3573,6 +3573,13 @@ method removeNamedItemNS method setNamedItem method setNamedItemNS +interface NavigationPreloadManager + attribute @@toStringTag + method constructor + method disable + method enable + method getState + method setHeaderValue interface Navigator attribute @@toStringTag getter appCodeName @@ -4002,6 +4009,7 @@ interface Presentation attribute @@toStringTag getter defaultRequest + getter receiver method constructor setter defaultRequest interface PresentationAvailability : EventTarget @@ -4038,6 +4046,16 @@ getter message getter reason method constructor +interface PresentationConnectionList : EventTarget + attribute @@toStringTag + getter connections + getter onconnectionavailable + method constructor + setter onconnectionavailable +interface PresentationReceiver + attribute @@toStringTag + getter connectionList + method constructor interface PresentationRequest : EventTarget attribute @@toStringTag getter onconnectionavailable @@ -5478,6 +5496,7 @@ attribute @@toStringTag getter active getter installing + getter navigationPreload getter onupdatefound getter pushManager getter scope
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 5160b0d..adf97c7 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
@@ -3502,6 +3502,13 @@ method removeNamedItemNS method setNamedItem method setNamedItemNS +interface NavigationPreloadManager + attribute @@toStringTag + method constructor + method disable + method enable + method getState + method setHeaderValue interface Navigator attribute @@toStringTag getter appCodeName @@ -3930,6 +3937,7 @@ interface Presentation attribute @@toStringTag getter defaultRequest + getter receiver method constructor setter defaultRequest interface PresentationAvailability : EventTarget @@ -3966,6 +3974,16 @@ getter message getter reason method constructor +interface PresentationConnectionList : EventTarget + attribute @@toStringTag + getter connections + getter onconnectionavailable + method constructor + setter onconnectionavailable +interface PresentationReceiver + attribute @@toStringTag + getter connectionList + method constructor interface PresentationRequest : EventTarget attribute @@toStringTag getter onconnectionavailable @@ -5406,6 +5424,7 @@ attribute @@toStringTag getter active getter installing + getter navigationPreload getter onupdatefound getter pushManager getter scope
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces-expected.txt deleted file mode 100644 index 0de3b49..0000000 --- a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/navigation-preload-origin-trial-interfaces-expected.txt +++ /dev/null
@@ -1,85 +0,0 @@ -CONSOLE WARNING: line 13: This test relies on console message comparison so there can be different -expected.txt files for virtual test suites. -CONSOLE MESSAGE: line 21: Interfaces in document -interface NavigationPreloadManager - method constructor - method disable - method enable - method getState - method setHeaderValue -interface ServiceWorkerRegistration - getter active - getter backgroundFetch - getter installing - getter navigationPreload - getter onupdatefound - getter paymentManager - getter pushManager - getter scope - getter sync - getter waiting - method constructor - method getNotifications - method showNotification - method unregister - method update - setter onupdatefound -CONSOLE MESSAGE: line 58: Interfaces in normal Service Worker -interface FetchEvent - getter clientId - getter isReload - getter request - method constructor - method respondWith -interface ServiceWorkerRegistration - getter active - getter backgroundFetch - getter installing - getter onupdatefound - getter paymentManager - getter pushManager - getter scope - getter sync - getter waiting - method constructor - method getNotifications - method showNotification - method unregister - method update - setter onupdatefound -CONSOLE MESSAGE: line 70: Interfaces in Origin-Trial enabled Service Worker -interface FetchEvent - getter clientId - getter isReload - getter preloadResponse - getter request - method constructor - method respondWith -interface NavigationPreloadManager - method constructor - method disable - method enable - method getState - method setHeaderValue -interface ServiceWorkerRegistration - getter active - getter backgroundFetch - getter installing - getter navigationPreload - getter onupdatefound - getter paymentManager - getter pushManager - getter scope - getter sync - getter waiting - method constructor - method getNotifications - method showNotification - method unregister - method update - setter onupdatefound -This is a testharness.js-based test. -PASS Navigation preload related interfaces in Origin-Trial enabled document. -PASS Navigation preload related interfaces in normal SW. -PASS Navigation preload related interfaces in Origin-Trial enabled SW. -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods-expected.txt deleted file mode 100644 index 1c914984..0000000 --- a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/navigation-preload-origin-trial-methods-expected.txt +++ /dev/null
@@ -1,31 +0,0 @@ -CONSOLE WARNING: line 13: This test relies on console message comparison so there can be different -expected.txt files for virtual test suites. -CONSOLE MESSAGE: line 68: --normal SW-- -disable() rejected with: AbortError: Failed to enable or disable navigation preload: The service worker script does not have a valid Navigation Preload Origin Trial token. -enable() rejected with: AbortError: Failed to enable or disable navigation preload: The service worker script does not have a valid Navigation Preload Origin Trial token. -getState() resolved with: {"enabled":false,"headerValue":"true"} -setHeaderValue() rejected with: AbortError: Failed to set navigation preload header: The service worker script does not have a valid Navigation Preload Origin Trial token. -log from SW -Activate event handler -registration.navigationPreload not found -Fetch event handler -event.preloadResponse not found - -CONSOLE MESSAGE: line 79: --Origin-Trial enabled SW-- -disable() rejected with: AbortError: Failed to enable or disable navigation preload: Navigation Preload is disabled by command line flag. -enable() rejected with: AbortError: Failed to enable or disable navigation preload: Navigation Preload is disabled by command line flag. -getState() resolved with: {"enabled":false,"headerValue":"true"} -setHeaderValue() rejected with: AbortError: Failed to set navigation preload header: Navigation Preload is disabled by command line flag. -log from SW -Activate event handler -disable() rejected with: AbortError: Failed to enable or disable navigation preload: Navigation Preload is disabled by command line flag. -enable() rejected with: AbortError: Failed to enable or disable navigation preload: Navigation Preload is disabled by command line flag. -getState() resolved with: {"enabled":false,"headerValue":"true"} -setHeaderValue() rejected with: AbortError: Failed to set navigation preload header: Navigation Preload is disabled by command line flag. -Fetch event handler -event.preloadResponse resolved with: undefined - -This is a testharness.js-based test. -PASS Calling Navigation preload related methods for normal SW. -PASS Calling Navigation preload related methods for Origin-Trial enabled SW. -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/README.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/README.txt similarity index 100% rename from third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/README.txt rename to third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/README.txt
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt new file mode 100644 index 0000000..ec4f603 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -0,0 +1,2309 @@ +interface BackgroundFetchClickEvent : BackgroundFetchEvent + getter state + method constructor +interface BackgroundFetchEvent : ExtendableEvent + getter tag + method constructor +interface BackgroundFetchFailEvent : BackgroundFetchEvent + getter fetches + method constructor +interface BackgroundFetchFetch + getter request + method constructor +interface BackgroundFetchManager + method constructor + method fetch + method get + method getTags +interface BackgroundFetchRegistration + getter icons + getter tag + getter title + getter totalDownloadSize + method abort + method constructor +interface BackgroundFetchSettledFetch : BackgroundFetchFetch + getter response + method constructor +interface BackgroundFetchedEvent : BackgroundFetchEvent + getter fetches + method constructor + method updateUI +interface BarcodeDetector + method constructor + method detect +interface Blob + getter isClosed + getter size + getter type + method close + method constructor + method slice +interface BroadcastChannel : EventTarget + getter name + getter onmessage + method close + method constructor + method postMessage + setter onmessage +interface BudgetService + method constructor + method getBudget + method getCost + method reserve +interface BudgetState + getter budgetAt + getter time + method constructor +interface ByteLengthQueuingStrategy + method constructor + method size +interface Cache + method add + method addAll + method constructor + method delete + method keys + method match + method matchAll + method put +interface CacheStorage + method constructor + method delete + method has + method keys + method match + method open +interface CanvasGradient + method addColorStop + method constructor +interface CanvasPattern + method constructor +interface Client + getter frameType + getter id + getter url + method constructor + method postMessage +interface Clients + method claim + method constructor + method get + method matchAll + method openWindow +interface CloseEvent : Event + getter code + getter reason + getter wasClean + method constructor +interface CountQueuingStrategy + method constructor + method size +interface Crypto + getter subtle + method constructor + method getRandomValues +interface CryptoKey + getter algorithm + getter extractable + getter type + getter usages + method constructor +interface CustomEvent : Event + getter detail + method constructor + method initCustomEvent +interface DOMException + attribute ABORT_ERR + attribute DATA_CLONE_ERR + attribute DOMSTRING_SIZE_ERR + attribute HIERARCHY_REQUEST_ERR + attribute INDEX_SIZE_ERR + attribute INUSE_ATTRIBUTE_ERR + attribute INVALID_ACCESS_ERR + attribute INVALID_CHARACTER_ERR + attribute INVALID_MODIFICATION_ERR + attribute INVALID_NODE_TYPE_ERR + attribute INVALID_STATE_ERR + attribute NAMESPACE_ERR + attribute NETWORK_ERR + attribute NOT_FOUND_ERR + attribute NOT_SUPPORTED_ERR + attribute NO_DATA_ALLOWED_ERR + attribute NO_MODIFICATION_ALLOWED_ERR + attribute QUOTA_EXCEEDED_ERR + attribute SECURITY_ERR + attribute SYNTAX_ERR + attribute TIMEOUT_ERR + attribute TYPE_MISMATCH_ERR + attribute URL_MISMATCH_ERR + attribute VALIDATION_ERR + attribute WRONG_DOCUMENT_ERR + getter code + getter message + getter name + method constructor + method toString +interface DOMMatrix : DOMMatrixReadOnly + getter a + getter b + getter c + getter d + getter e + getter f + getter m11 + getter m12 + getter m13 + getter m14 + getter m21 + getter m22 + getter m23 + getter m24 + getter m31 + getter m32 + getter m33 + getter m34 + getter m41 + getter m42 + getter m43 + getter m44 + method constructor + method invertSelf + method multiplySelf + method preMultiplySelf + method rotateAxisAngleSelf + method rotateFromVectorSelf + method rotateSelf + method scale3dSelf + method scaleSelf + method setMatrixValue + method skewXSelf + method skewYSelf + method translateSelf + setter a + setter b + setter c + setter d + setter e + setter f + setter m11 + setter m12 + setter m13 + setter m14 + setter m21 + setter m22 + setter m23 + setter m24 + setter m31 + setter m32 + setter m33 + setter m34 + setter m41 + setter m42 + setter m43 + setter m44 +interface DOMMatrixReadOnly + static method fromFloat32Array + static method fromFloat64Array + static method fromMatrix + getter a + getter b + getter c + getter d + getter e + getter f + getter is2D + getter isIdentity + getter m11 + getter m12 + getter m13 + getter m14 + getter m21 + getter m22 + getter m23 + getter m24 + getter m31 + getter m32 + getter m33 + getter m34 + getter m41 + getter m42 + getter m43 + getter m44 + method constructor + method flipX + method flipY + method inverse + method multiply + method rotate + method rotateAxisAngle + method rotateFromVector + method scale + method scale3d + method skewX + method skewY + method toFloat32Array + method toFloat64Array + method toJSON + method toString + method transformPoint + method translate +interface DOMPoint : DOMPointReadOnly + getter w + getter x + getter y + getter z + method constructor + setter w + setter x + setter y + setter z +interface DOMPointReadOnly + static method fromPoint + getter w + getter x + getter y + getter z + method constructor + method matrixTransform + method toJSON +interface DOMQuad + static method fromQuad + static method fromRect + getter p1 + getter p2 + getter p3 + getter p4 + method constructor + method getBounds + method toJSON +interface DOMRect : DOMRectReadOnly + getter height + getter width + getter x + getter y + method constructor + setter height + setter width + setter x + setter y +interface DOMRectReadOnly + static method fromRect + getter bottom + getter height + getter left + getter right + getter top + getter width + getter x + getter y + method constructor + method toJSON +interface DOMStringList + getter length + method constructor + method contains + method item +interface DataView + getter buffer + getter byteLength + getter byteOffset + method constructor + method getFloat32 + method getFloat64 + method getInt16 + method getInt32 + method getInt8 + method getUint16 + method getUint32 + method getUint8 + method setFloat32 + method setFloat64 + method setInt16 + method setInt32 + method setInt8 + method setUint16 + method setUint32 + method setUint8 +interface Event + attribute AT_TARGET + attribute BUBBLING_PHASE + attribute CAPTURING_PHASE + attribute NONE + getter bubbles + getter cancelBubble + getter cancelable + getter composed + getter currentTarget + getter defaultPrevented + getter eventPhase + getter path + getter returnValue + getter srcElement + getter target + getter timeStamp + getter type + method composedPath + method constructor + method initEvent + method preventDefault + method stopImmediatePropagation + method stopPropagation + setter cancelBubble + setter returnValue +interface EventSource : EventTarget + attribute CLOSED + attribute CONNECTING + attribute OPEN + getter onerror + getter onmessage + getter onopen + getter readyState + getter url + getter withCredentials + method close + method constructor + setter onerror + setter onmessage + setter onopen +interface EventTarget + method addEventListener + method constructor + method dispatchEvent + method removeEventListener +interface ExtendableEvent : Event + method constructor + method waitUntil +interface ExtendableMessageEvent : ExtendableEvent + getter data + getter lastEventId + getter origin + getter ports + getter source + method constructor +interface FaceDetector + method constructor + method detect +interface FetchEvent : ExtendableEvent + getter clientId + getter isReload + getter request + method constructor + method respondWith +interface File : Blob + getter lastModified + getter lastModifiedDate + getter name + getter webkitRelativePath + method constructor +interface FileList + getter length + method constructor + method item +interface FileReader : EventTarget + attribute DONE + attribute EMPTY + attribute LOADING + getter error + getter onabort + getter onerror + getter onload + getter onloadend + getter onloadstart + getter onprogress + getter readyState + getter result + method abort + method constructor + method readAsArrayBuffer + method readAsBinaryString + method readAsDataURL + method readAsText + setter onabort + setter onerror + setter onload + setter onloadend + setter onloadstart + setter onprogress +interface ForeignFetchEvent : ExtendableEvent + getter origin + getter request + method constructor + method respondWith +interface FormData + method append + method constructor + method delete + method entries + method forEach + method get + method getAll + method has + method keys + method set + method values +interface Headers + method append + method constructor + method delete + method entries + method forEach + method get + method getAll + method has + method keys + method set + method values +interface IDBCursor + getter direction + getter key + getter primaryKey + getter source + method advance + method constructor + method continue + method continuePrimaryKey + method delete + method update +interface IDBCursorWithValue : IDBCursor + getter value + method constructor +interface IDBDatabase : EventTarget + getter name + getter objectStoreNames + getter onabort + getter onclose + getter onerror + getter onversionchange + getter version + method close + method constructor + method createObjectStore + method deleteObjectStore + method transaction + setter onabort + setter onclose + setter onerror + setter onversionchange +interface IDBFactory + method cmp + method constructor + method deleteDatabase + method open + method webkitGetDatabaseNames +interface IDBIndex + getter keyPath + getter multiEntry + getter name + getter objectStore + getter unique + method constructor + method count + method get + method getAll + method getAllKeys + method getKey + method openCursor + method openKeyCursor + setter name +interface IDBKeyRange + static method bound + static method lowerBound + static method only + static method upperBound + getter lower + getter lowerOpen + getter upper + getter upperOpen + method constructor + method includes +interface IDBObjectStore + getter autoIncrement + getter indexNames + getter keyPath + getter name + getter transaction + method add + method clear + method constructor + method count + method createIndex + method delete + method deleteIndex + method get + method getAll + method getAllKeys + method getKey + method index + method openCursor + method openKeyCursor + method put + setter name +interface IDBObservation + getter key + getter type + getter value + method constructor +interface IDBObserver + method constructor + method observe + method unobserve +interface IDBOpenDBRequest : IDBRequest + getter onblocked + getter onupgradeneeded + method constructor + setter onblocked + setter onupgradeneeded +interface IDBRequest : EventTarget + getter error + getter onerror + getter onsuccess + getter readyState + getter result + getter source + getter transaction + method constructor + setter onerror + setter onsuccess +interface IDBTransaction : EventTarget + getter db + getter error + getter mode + getter objectStoreNames + getter onabort + getter oncomplete + getter onerror + method abort + method constructor + method objectStore + setter onabort + setter oncomplete + setter onerror +interface IDBVersionChangeEvent : Event + getter dataLoss + getter dataLossMessage + getter newVersion + getter oldVersion + method constructor +interface ImageBitmap + getter height + getter width + method close + method constructor +interface ImageData + getter data + getter dataUnion + getter height + getter width + method constructor + method createImageData + method getColorSettings +interface InstallEvent : ExtendableEvent + method constructor + method registerForeignFetch +interface MessageChannel + getter port1 + getter port2 + method constructor +interface MessageEvent : Event + getter data + getter lastEventId + getter origin + getter ports + getter source + getter suborigin + method constructor + method initMessageEvent +interface MessagePort : EventTarget + getter onmessage + method close + method constructor + method postMessage + method start + setter onmessage +interface NetworkInformation : EventTarget + getter downlinkMax + getter onchange + getter ontypechange + getter type + method constructor + setter onchange + setter ontypechange +interface Notification : EventTarget + static getter maxActions + static getter permission + getter actions + getter badge + getter body + getter data + getter dir + getter icon + getter image + getter lang + getter onclick + getter onclose + getter onerror + getter onshow + getter renotify + getter requireInteraction + getter silent + getter tag + getter timestamp + getter title + getter vibrate + method close + method constructor + setter onclick + setter onclose + setter onerror + setter onshow +interface NotificationEvent : ExtendableEvent + getter action + getter notification + getter reply + method constructor +interface OffscreenCanvas : EventTarget + getter height + getter width + method constructor + method convertToBlob + method getContext + method transferToImageBitmap + setter height + setter width +interface OffscreenCanvasRenderingContext2D + getter canvas + getter fillStyle + getter filter + getter globalAlpha + getter globalCompositeOperation + getter imageSmoothingEnabled + getter imageSmoothingQuality + getter lineCap + getter lineDashOffset + getter lineJoin + getter lineWidth + getter miterLimit + getter shadowBlur + getter shadowColor + getter shadowOffsetX + getter shadowOffsetY + getter strokeStyle + method arc + method arcTo + method beginPath + method bezierCurveTo + method clearRect + method clip + method closePath + method commit + method constructor + method createImageData + method createLinearGradient + method createPattern + method createRadialGradient + method drawImage + method ellipse + method fill + method fillRect + method getImageData + method getLineDash + method isPointInPath + method isPointInStroke + method lineTo + method moveTo + method putImageData + method quadraticCurveTo + method rect + method resetTransform + method restore + method rotate + method save + method scale + method setLineDash + method setTransform + method stroke + method strokeRect + method transform + method translate + setter fillStyle + setter filter + setter globalAlpha + setter globalCompositeOperation + setter imageSmoothingEnabled + setter imageSmoothingQuality + setter lineCap + setter lineDashOffset + setter lineJoin + setter lineWidth + setter miterLimit + setter shadowBlur + setter shadowColor + setter shadowOffsetX + setter shadowOffsetY + setter strokeStyle +interface Path2D + method addPath + method arc + method arcTo + method bezierCurveTo + method closePath + method constructor + method ellipse + method lineTo + method moveTo + method quadraticCurveTo + method rect +interface PaymentInstruments + method constructor + method delete + method get + method has + method keys + method set +interface PaymentRequestEvent : ExtendableEvent + getter appRequest + method constructor + method respondWith +interface PerformanceObserverEntryList + method constructor + method getEntries + method getEntriesByName + method getEntriesByType +interface PermissionStatus : EventTarget + getter onchange + getter state + method constructor + setter onchange +interface Permissions + method constructor + method query + method request + method requestAll + method revoke +interface PromiseRejectionEvent : Event + getter promise + getter reason + method constructor +interface PushEvent : ExtendableEvent + getter data + method constructor +interface PushManager + method constructor + method getSubscription + method permissionState + method subscribe +interface PushMessageData + method arrayBuffer + method blob + method constructor + method json + method text +interface PushSubscription + getter endpoint + getter options + method constructor + method getKey + method toJSON + method unsubscribe +interface PushSubscriptionOptions + getter applicationServerKey + getter userVisibleOnly + method constructor +interface ReadableStream + getter locked + method cancel + method constructor + method getReader + method pipeThrough + method pipeTo + method tee +interface Request + getter bodyUsed + getter cache + getter credentials + getter headers + getter integrity + getter method + getter mode + getter redirect + getter referrer + getter referrerPolicy + getter url + method arrayBuffer + method blob + method clone + method constructor + method json + method text +interface Response + static method error + static method redirect + getter body + getter bodyUsed + getter headers + getter ok + getter redirected + getter status + getter statusText + getter type + getter url + method arrayBuffer + method blob + method clone + method constructor + method json + method text +interface ServiceWorkerGlobalScope : WorkerGlobalScope + method constructor +interface ServiceWorkerRegistration : EventTarget + getter active + getter backgroundFetch + getter installing + getter onupdatefound + getter paymentManager + getter pushManager + getter scope + getter sync + getter waiting + method constructor + method getNotifications + method showNotification + method unregister + method update + setter onupdatefound +interface StorageManager + method constructor + method estimate + method persisted +interface SubtleCrypto + method constructor + method decrypt + method deriveBits + method deriveKey + method digest + method encrypt + method exportKey + method generateKey + method importKey + method sign + method unwrapKey + method verify + method wrapKey +interface SyncEvent : ExtendableEvent + getter lastChance + getter tag + method constructor +interface SyncManager + method constructor + method getTags + method register +interface TextDecoder + getter encoding + getter fatal + getter ignoreBOM + method constructor + method decode +interface TextDetector + method constructor + method detect +interface TextEncoder + getter encoding + method constructor + method encode +interface URL + getter hash + getter host + getter hostname + getter href + getter origin + getter password + getter pathname + getter port + getter protocol + getter search + getter searchParams + getter username + method constructor + method toString + setter hash + setter host + setter hostname + setter href + setter password + setter pathname + setter port + setter protocol + setter search + setter username +interface URLSearchParams + method append + method constructor + method delete + method entries + method forEach + method get + method getAll + method has + method keys + method set + method toString + method values +interface WebGL2RenderingContext + attribute ACTIVE_ATTRIBUTES + attribute ACTIVE_TEXTURE + attribute ACTIVE_UNIFORMS + attribute ACTIVE_UNIFORM_BLOCKS + attribute ALIASED_LINE_WIDTH_RANGE + attribute ALIASED_POINT_SIZE_RANGE + attribute ALPHA + attribute ALPHA_BITS + attribute ALREADY_SIGNALED + attribute ALWAYS + attribute ANY_SAMPLES_PASSED + attribute ANY_SAMPLES_PASSED_CONSERVATIVE + attribute ARRAY_BUFFER + attribute ARRAY_BUFFER_BINDING + attribute ATTACHED_SHADERS + attribute BACK + attribute BLEND + attribute BLEND_COLOR + attribute BLEND_DST_ALPHA + attribute BLEND_DST_RGB + attribute BLEND_EQUATION + attribute BLEND_EQUATION_ALPHA + attribute BLEND_EQUATION_RGB + attribute BLEND_SRC_ALPHA + attribute BLEND_SRC_RGB + attribute BLUE_BITS + attribute BOOL + attribute BOOL_VEC2 + attribute BOOL_VEC3 + attribute BOOL_VEC4 + attribute BROWSER_DEFAULT_WEBGL + attribute BUFFER_SIZE + attribute BUFFER_USAGE + attribute BYTE + attribute CCW + attribute CLAMP_TO_EDGE + attribute COLOR + attribute COLOR_ATTACHMENT0 + attribute COLOR_ATTACHMENT1 + attribute COLOR_ATTACHMENT10 + attribute COLOR_ATTACHMENT11 + attribute COLOR_ATTACHMENT12 + attribute COLOR_ATTACHMENT13 + attribute COLOR_ATTACHMENT14 + attribute COLOR_ATTACHMENT15 + attribute COLOR_ATTACHMENT2 + attribute COLOR_ATTACHMENT3 + attribute COLOR_ATTACHMENT4 + attribute COLOR_ATTACHMENT5 + attribute COLOR_ATTACHMENT6 + attribute COLOR_ATTACHMENT7 + attribute COLOR_ATTACHMENT8 + attribute COLOR_ATTACHMENT9 + attribute COLOR_BUFFER_BIT + attribute COLOR_CLEAR_VALUE + attribute COLOR_WRITEMASK + attribute COMPARE_REF_TO_TEXTURE + attribute COMPILE_STATUS + attribute COMPRESSED_TEXTURE_FORMATS + attribute CONDITION_SATISFIED + attribute CONSTANT_ALPHA + attribute CONSTANT_COLOR + attribute CONTEXT_LOST_WEBGL + attribute COPY_READ_BUFFER + attribute COPY_READ_BUFFER_BINDING + attribute COPY_WRITE_BUFFER + attribute COPY_WRITE_BUFFER_BINDING + attribute CULL_FACE + attribute CULL_FACE_MODE + attribute CURRENT_PROGRAM + attribute CURRENT_QUERY + attribute CURRENT_VERTEX_ATTRIB + attribute CW + attribute DECR + attribute DECR_WRAP + attribute DELETE_STATUS + attribute DEPTH + attribute DEPTH24_STENCIL8 + attribute DEPTH32F_STENCIL8 + attribute DEPTH_ATTACHMENT + attribute DEPTH_BITS + attribute DEPTH_BUFFER_BIT + attribute DEPTH_CLEAR_VALUE + attribute DEPTH_COMPONENT + attribute DEPTH_COMPONENT16 + attribute DEPTH_COMPONENT24 + attribute DEPTH_COMPONENT32F + attribute DEPTH_FUNC + attribute DEPTH_RANGE + attribute DEPTH_STENCIL + attribute DEPTH_STENCIL_ATTACHMENT + attribute DEPTH_TEST + attribute DEPTH_WRITEMASK + attribute DITHER + attribute DONT_CARE + attribute DRAW_BUFFER0 + attribute DRAW_BUFFER1 + attribute DRAW_BUFFER10 + attribute DRAW_BUFFER11 + attribute DRAW_BUFFER12 + attribute DRAW_BUFFER13 + attribute DRAW_BUFFER14 + attribute DRAW_BUFFER15 + attribute DRAW_BUFFER2 + attribute DRAW_BUFFER3 + attribute DRAW_BUFFER4 + attribute DRAW_BUFFER5 + attribute DRAW_BUFFER6 + attribute DRAW_BUFFER7 + attribute DRAW_BUFFER8 + attribute DRAW_BUFFER9 + attribute DRAW_FRAMEBUFFER + attribute DRAW_FRAMEBUFFER_BINDING + attribute DST_ALPHA + attribute DST_COLOR + attribute DYNAMIC_COPY + attribute DYNAMIC_DRAW + attribute DYNAMIC_READ + attribute ELEMENT_ARRAY_BUFFER + attribute ELEMENT_ARRAY_BUFFER_BINDING + attribute EQUAL + attribute FASTEST + attribute FLOAT + attribute FLOAT_32_UNSIGNED_INT_24_8_REV + attribute FLOAT_MAT2 + attribute FLOAT_MAT2x3 + attribute FLOAT_MAT2x4 + attribute FLOAT_MAT3 + attribute FLOAT_MAT3x2 + attribute FLOAT_MAT3x4 + attribute FLOAT_MAT4 + attribute FLOAT_MAT4x2 + attribute FLOAT_MAT4x3 + attribute FLOAT_VEC2 + attribute FLOAT_VEC3 + attribute FLOAT_VEC4 + attribute FRAGMENT_SHADER + attribute FRAGMENT_SHADER_DERIVATIVE_HINT + attribute FRAMEBUFFER + attribute FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE + attribute FRAMEBUFFER_ATTACHMENT_BLUE_SIZE + attribute FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING + attribute FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE + attribute FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE + attribute FRAMEBUFFER_ATTACHMENT_GREEN_SIZE + attribute FRAMEBUFFER_ATTACHMENT_OBJECT_NAME + attribute FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE + attribute FRAMEBUFFER_ATTACHMENT_RED_SIZE + attribute FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL + attribute FRAMEBUFFER_BINDING + attribute FRAMEBUFFER_COMPLETE + attribute FRAMEBUFFER_DEFAULT + attribute FRAMEBUFFER_INCOMPLETE_ATTACHMENT + attribute FRAMEBUFFER_INCOMPLETE_DIMENSIONS + attribute FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT + attribute FRAMEBUFFER_INCOMPLETE_MULTISAMPLE + attribute FRAMEBUFFER_UNSUPPORTED + attribute FRONT + attribute FRONT_AND_BACK + attribute FRONT_FACE + attribute FUNC_ADD + attribute FUNC_REVERSE_SUBTRACT + attribute FUNC_SUBTRACT + attribute GENERATE_MIPMAP_HINT + attribute GEQUAL + attribute GREATER + attribute GREEN_BITS + attribute HALF_FLOAT + attribute HIGH_FLOAT + attribute HIGH_INT + attribute IMPLEMENTATION_COLOR_READ_FORMAT + attribute IMPLEMENTATION_COLOR_READ_TYPE + attribute INCR + attribute INCR_WRAP + attribute INT + attribute INTERLEAVED_ATTRIBS + attribute INT_2_10_10_10_REV + attribute INT_SAMPLER_2D + attribute INT_SAMPLER_2D_ARRAY + attribute INT_SAMPLER_3D + attribute INT_SAMPLER_CUBE + attribute INT_VEC2 + attribute INT_VEC3 + attribute INT_VEC4 + attribute INVALID_ENUM + attribute INVALID_FRAMEBUFFER_OPERATION + attribute INVALID_INDEX + attribute INVALID_OPERATION + attribute INVALID_VALUE + attribute INVERT + attribute KEEP + attribute LEQUAL + attribute LESS + attribute LINEAR + attribute LINEAR_MIPMAP_LINEAR + attribute LINEAR_MIPMAP_NEAREST + attribute LINES + attribute LINE_LOOP + attribute LINE_STRIP + attribute LINE_WIDTH + attribute LINK_STATUS + attribute LOW_FLOAT + attribute LOW_INT + attribute LUMINANCE + attribute LUMINANCE_ALPHA + attribute MAX + attribute MAX_3D_TEXTURE_SIZE + attribute MAX_ARRAY_TEXTURE_LAYERS + attribute MAX_CLIENT_WAIT_TIMEOUT_WEBGL + attribute MAX_COLOR_ATTACHMENTS + attribute MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS + attribute MAX_COMBINED_TEXTURE_IMAGE_UNITS + attribute MAX_COMBINED_UNIFORM_BLOCKS + attribute MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS + attribute MAX_CUBE_MAP_TEXTURE_SIZE + attribute MAX_DRAW_BUFFERS + attribute MAX_ELEMENTS_INDICES + attribute MAX_ELEMENTS_VERTICES + attribute MAX_ELEMENT_INDEX + attribute MAX_FRAGMENT_INPUT_COMPONENTS + attribute MAX_FRAGMENT_UNIFORM_BLOCKS + attribute MAX_FRAGMENT_UNIFORM_COMPONENTS + attribute MAX_FRAGMENT_UNIFORM_VECTORS + attribute MAX_PROGRAM_TEXEL_OFFSET + attribute MAX_RENDERBUFFER_SIZE + attribute MAX_SAMPLES + attribute MAX_SERVER_WAIT_TIMEOUT + attribute MAX_TEXTURE_IMAGE_UNITS + attribute MAX_TEXTURE_LOD_BIAS + attribute MAX_TEXTURE_SIZE + attribute MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS + attribute MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS + attribute MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS + attribute MAX_UNIFORM_BLOCK_SIZE + attribute MAX_UNIFORM_BUFFER_BINDINGS + attribute MAX_VARYING_COMPONENTS + attribute MAX_VARYING_VECTORS + attribute MAX_VERTEX_ATTRIBS + attribute MAX_VERTEX_OUTPUT_COMPONENTS + attribute MAX_VERTEX_TEXTURE_IMAGE_UNITS + attribute MAX_VERTEX_UNIFORM_BLOCKS + attribute MAX_VERTEX_UNIFORM_COMPONENTS + attribute MAX_VERTEX_UNIFORM_VECTORS + attribute MAX_VIEWPORT_DIMS + attribute MEDIUM_FLOAT + attribute MEDIUM_INT + attribute MIN + attribute MIN_PROGRAM_TEXEL_OFFSET + attribute MIRRORED_REPEAT + attribute NEAREST + attribute NEAREST_MIPMAP_LINEAR + attribute NEAREST_MIPMAP_NEAREST + attribute NEVER + attribute NICEST + attribute NONE + attribute NOTEQUAL + attribute NO_ERROR + attribute OBJECT_TYPE + attribute ONE + attribute ONE_MINUS_CONSTANT_ALPHA + attribute ONE_MINUS_CONSTANT_COLOR + attribute ONE_MINUS_DST_ALPHA + attribute ONE_MINUS_DST_COLOR + attribute ONE_MINUS_SRC_ALPHA + attribute ONE_MINUS_SRC_COLOR + attribute OUT_OF_MEMORY + attribute PACK_ALIGNMENT + attribute PACK_ROW_LENGTH + attribute PACK_SKIP_PIXELS + attribute PACK_SKIP_ROWS + attribute PIXEL_PACK_BUFFER + attribute PIXEL_PACK_BUFFER_BINDING + attribute PIXEL_UNPACK_BUFFER + attribute PIXEL_UNPACK_BUFFER_BINDING + attribute POINTS + attribute POLYGON_OFFSET_FACTOR + attribute POLYGON_OFFSET_FILL + attribute POLYGON_OFFSET_UNITS + attribute QUERY_RESULT + attribute QUERY_RESULT_AVAILABLE + attribute R11F_G11F_B10F + attribute R16F + attribute R16I + attribute R16UI + attribute R32F + attribute R32I + attribute R32UI + attribute R8 + attribute R8I + attribute R8UI + attribute R8_SNORM + attribute RASTERIZER_DISCARD + attribute READ_BUFFER + attribute READ_FRAMEBUFFER + attribute READ_FRAMEBUFFER_BINDING + attribute RED + attribute RED_BITS + attribute RED_INTEGER + attribute RENDERBUFFER + attribute RENDERBUFFER_ALPHA_SIZE + attribute RENDERBUFFER_BINDING + attribute RENDERBUFFER_BLUE_SIZE + attribute RENDERBUFFER_DEPTH_SIZE + attribute RENDERBUFFER_GREEN_SIZE + attribute RENDERBUFFER_HEIGHT + attribute RENDERBUFFER_INTERNAL_FORMAT + attribute RENDERBUFFER_RED_SIZE + attribute RENDERBUFFER_SAMPLES + attribute RENDERBUFFER_STENCIL_SIZE + attribute RENDERBUFFER_WIDTH + attribute RENDERER + attribute REPEAT + attribute REPLACE + attribute RG + attribute RG16F + attribute RG16I + attribute RG16UI + attribute RG32F + attribute RG32I + attribute RG32UI + attribute RG8 + attribute RG8I + attribute RG8UI + attribute RG8_SNORM + attribute RGB + attribute RGB10_A2 + attribute RGB10_A2UI + attribute RGB16F + attribute RGB16I + attribute RGB16UI + attribute RGB32F + attribute RGB32I + attribute RGB32UI + attribute RGB565 + attribute RGB5_A1 + attribute RGB8 + attribute RGB8I + attribute RGB8UI + attribute RGB8_SNORM + attribute RGB9_E5 + attribute RGBA + attribute RGBA16F + attribute RGBA16I + attribute RGBA16UI + attribute RGBA32F + attribute RGBA32I + attribute RGBA32UI + attribute RGBA4 + attribute RGBA8 + attribute RGBA8I + attribute RGBA8UI + attribute RGBA8_SNORM + attribute RGBA_INTEGER + attribute RGB_INTEGER + attribute RG_INTEGER + attribute SAMPLER_2D + attribute SAMPLER_2D_ARRAY + attribute SAMPLER_2D_ARRAY_SHADOW + attribute SAMPLER_2D_SHADOW + attribute SAMPLER_3D + attribute SAMPLER_BINDING + attribute SAMPLER_CUBE + attribute SAMPLER_CUBE_SHADOW + attribute SAMPLES + attribute SAMPLE_ALPHA_TO_COVERAGE + attribute SAMPLE_BUFFERS + attribute SAMPLE_COVERAGE + attribute SAMPLE_COVERAGE_INVERT + attribute SAMPLE_COVERAGE_VALUE + attribute SCISSOR_BOX + attribute SCISSOR_TEST + attribute SEPARATE_ATTRIBS + attribute SHADER_TYPE + attribute SHADING_LANGUAGE_VERSION + attribute SHORT + attribute SIGNALED + attribute SIGNED_NORMALIZED + attribute SRC_ALPHA + attribute SRC_ALPHA_SATURATE + attribute SRC_COLOR + attribute SRGB + attribute SRGB8 + attribute SRGB8_ALPHA8 + attribute STATIC_COPY + attribute STATIC_DRAW + attribute STATIC_READ + attribute STENCIL + attribute STENCIL_ATTACHMENT + attribute STENCIL_BACK_FAIL + attribute STENCIL_BACK_FUNC + attribute STENCIL_BACK_PASS_DEPTH_FAIL + attribute STENCIL_BACK_PASS_DEPTH_PASS + attribute STENCIL_BACK_REF + attribute STENCIL_BACK_VALUE_MASK + attribute STENCIL_BACK_WRITEMASK + attribute STENCIL_BITS + attribute STENCIL_BUFFER_BIT + attribute STENCIL_CLEAR_VALUE + attribute STENCIL_FAIL + attribute STENCIL_FUNC + attribute STENCIL_INDEX + attribute STENCIL_INDEX8 + attribute STENCIL_PASS_DEPTH_FAIL + attribute STENCIL_PASS_DEPTH_PASS + attribute STENCIL_REF + attribute STENCIL_TEST + attribute STENCIL_VALUE_MASK + attribute STENCIL_WRITEMASK + attribute STREAM_COPY + attribute STREAM_DRAW + attribute STREAM_READ + attribute SUBPIXEL_BITS + attribute SYNC_CONDITION + attribute SYNC_FENCE + attribute SYNC_FLAGS + attribute SYNC_FLUSH_COMMANDS_BIT + attribute SYNC_GPU_COMMANDS_COMPLETE + attribute SYNC_STATUS + attribute TEXTURE + attribute TEXTURE0 + attribute TEXTURE1 + attribute TEXTURE10 + attribute TEXTURE11 + attribute TEXTURE12 + attribute TEXTURE13 + attribute TEXTURE14 + attribute TEXTURE15 + attribute TEXTURE16 + attribute TEXTURE17 + attribute TEXTURE18 + attribute TEXTURE19 + attribute TEXTURE2 + attribute TEXTURE20 + attribute TEXTURE21 + attribute TEXTURE22 + attribute TEXTURE23 + attribute TEXTURE24 + attribute TEXTURE25 + attribute TEXTURE26 + attribute TEXTURE27 + attribute TEXTURE28 + attribute TEXTURE29 + attribute TEXTURE3 + attribute TEXTURE30 + attribute TEXTURE31 + attribute TEXTURE4 + attribute TEXTURE5 + attribute TEXTURE6 + attribute TEXTURE7 + attribute TEXTURE8 + attribute TEXTURE9 + attribute TEXTURE_2D + attribute TEXTURE_2D_ARRAY + attribute TEXTURE_3D + attribute TEXTURE_BASE_LEVEL + attribute TEXTURE_BINDING_2D + attribute TEXTURE_BINDING_2D_ARRAY + attribute TEXTURE_BINDING_3D + attribute TEXTURE_BINDING_CUBE_MAP + attribute TEXTURE_COMPARE_FUNC + attribute TEXTURE_COMPARE_MODE + attribute TEXTURE_CUBE_MAP + attribute TEXTURE_CUBE_MAP_NEGATIVE_X + attribute TEXTURE_CUBE_MAP_NEGATIVE_Y + attribute TEXTURE_CUBE_MAP_NEGATIVE_Z + attribute TEXTURE_CUBE_MAP_POSITIVE_X + attribute TEXTURE_CUBE_MAP_POSITIVE_Y + attribute TEXTURE_CUBE_MAP_POSITIVE_Z + attribute TEXTURE_IMMUTABLE_FORMAT + attribute TEXTURE_IMMUTABLE_LEVELS + attribute TEXTURE_MAG_FILTER + attribute TEXTURE_MAX_LEVEL + attribute TEXTURE_MAX_LOD + attribute TEXTURE_MIN_FILTER + attribute TEXTURE_MIN_LOD + attribute TEXTURE_WRAP_R + attribute TEXTURE_WRAP_S + attribute TEXTURE_WRAP_T + attribute TIMEOUT_EXPIRED + attribute TIMEOUT_IGNORED + attribute TRANSFORM_FEEDBACK + attribute TRANSFORM_FEEDBACK_ACTIVE + attribute TRANSFORM_FEEDBACK_BINDING + attribute TRANSFORM_FEEDBACK_BUFFER + attribute TRANSFORM_FEEDBACK_BUFFER_BINDING + attribute TRANSFORM_FEEDBACK_BUFFER_MODE + attribute TRANSFORM_FEEDBACK_BUFFER_SIZE + attribute TRANSFORM_FEEDBACK_BUFFER_START + attribute TRANSFORM_FEEDBACK_PAUSED + attribute TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN + attribute TRANSFORM_FEEDBACK_VARYINGS + attribute TRIANGLES + attribute TRIANGLE_FAN + attribute TRIANGLE_STRIP + attribute UNIFORM_ARRAY_STRIDE + attribute UNIFORM_BLOCK_ACTIVE_UNIFORMS + attribute UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES + attribute UNIFORM_BLOCK_BINDING + attribute UNIFORM_BLOCK_DATA_SIZE + attribute UNIFORM_BLOCK_INDEX + attribute UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER + attribute UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER + attribute UNIFORM_BUFFER + attribute UNIFORM_BUFFER_BINDING + attribute UNIFORM_BUFFER_OFFSET_ALIGNMENT + attribute UNIFORM_BUFFER_SIZE + attribute UNIFORM_BUFFER_START + attribute UNIFORM_IS_ROW_MAJOR + attribute UNIFORM_MATRIX_STRIDE + attribute UNIFORM_OFFSET + attribute UNIFORM_SIZE + attribute UNIFORM_TYPE + attribute UNPACK_ALIGNMENT + attribute UNPACK_COLORSPACE_CONVERSION_WEBGL + attribute UNPACK_FLIP_Y_WEBGL + attribute UNPACK_IMAGE_HEIGHT + attribute UNPACK_PREMULTIPLY_ALPHA_WEBGL + attribute UNPACK_ROW_LENGTH + attribute UNPACK_SKIP_IMAGES + attribute UNPACK_SKIP_PIXELS + attribute UNPACK_SKIP_ROWS + attribute UNSIGNALED + attribute UNSIGNED_BYTE + attribute UNSIGNED_INT + attribute UNSIGNED_INT_10F_11F_11F_REV + attribute UNSIGNED_INT_24_8 + attribute UNSIGNED_INT_2_10_10_10_REV + attribute UNSIGNED_INT_5_9_9_9_REV + attribute UNSIGNED_INT_SAMPLER_2D + attribute UNSIGNED_INT_SAMPLER_2D_ARRAY + attribute UNSIGNED_INT_SAMPLER_3D + attribute UNSIGNED_INT_SAMPLER_CUBE + attribute UNSIGNED_INT_VEC2 + attribute UNSIGNED_INT_VEC3 + attribute UNSIGNED_INT_VEC4 + attribute UNSIGNED_NORMALIZED + attribute UNSIGNED_SHORT + attribute UNSIGNED_SHORT_4_4_4_4 + attribute UNSIGNED_SHORT_5_5_5_1 + attribute UNSIGNED_SHORT_5_6_5 + attribute VALIDATE_STATUS + attribute VENDOR + attribute VERSION + attribute VERTEX_ARRAY_BINDING + attribute VERTEX_ATTRIB_ARRAY_BUFFER_BINDING + attribute VERTEX_ATTRIB_ARRAY_DIVISOR + attribute VERTEX_ATTRIB_ARRAY_ENABLED + attribute VERTEX_ATTRIB_ARRAY_INTEGER + attribute VERTEX_ATTRIB_ARRAY_NORMALIZED + attribute VERTEX_ATTRIB_ARRAY_POINTER + attribute VERTEX_ATTRIB_ARRAY_SIZE + attribute VERTEX_ATTRIB_ARRAY_STRIDE + attribute VERTEX_ATTRIB_ARRAY_TYPE + attribute VERTEX_SHADER + attribute VIEWPORT + attribute WAIT_FAILED + attribute ZERO + getter canvas + getter drawingBufferHeight + getter drawingBufferWidth + method activeTexture + method attachShader + method beginQuery + method beginTransformFeedback + method bindAttribLocation + method bindBuffer + method bindBufferBase + method bindBufferRange + method bindFramebuffer + method bindRenderbuffer + method bindSampler + method bindTexture + method bindTransformFeedback + method bindVertexArray + method blendColor + method blendEquation + method blendEquationSeparate + method blendFunc + method blendFuncSeparate + method blitFramebuffer + method bufferData + method bufferSubData + method checkFramebufferStatus + method clear + method clearBufferfi + method clearBufferfv + method clearBufferiv + method clearBufferuiv + method clearColor + method clearDepth + method clearStencil + method clientWaitSync + method colorMask + method commit + method compileShader + method compressedTexImage2D + method compressedTexImage3D + method compressedTexSubImage2D + method compressedTexSubImage3D + method constructor + method copyBufferSubData + method copyTexImage2D + method copyTexSubImage2D + method copyTexSubImage3D + method createBuffer + method createFramebuffer + method createProgram + method createQuery + method createRenderbuffer + method createSampler + method createShader + method createTexture + method createTransformFeedback + method createVertexArray + method cullFace + method deleteBuffer + method deleteFramebuffer + method deleteProgram + method deleteQuery + method deleteRenderbuffer + method deleteSampler + method deleteShader + method deleteSync + method deleteTexture + method deleteTransformFeedback + method deleteVertexArray + method depthFunc + method depthMask + method depthRange + method detachShader + method disable + method disableVertexAttribArray + method drawArrays + method drawArraysInstanced + method drawBuffers + method drawElements + method drawElementsInstanced + method drawRangeElements + method enable + method enableVertexAttribArray + method endQuery + method endTransformFeedback + method fenceSync + method finish + method flush + method framebufferRenderbuffer + method framebufferTexture2D + method framebufferTextureLayer + method frontFace + method generateMipmap + method getActiveAttrib + method getActiveUniform + method getActiveUniformBlockName + method getActiveUniformBlockParameter + method getActiveUniforms + method getAttachedShaders + method getAttribLocation + method getBufferParameter + method getBufferSubData + method getContextAttributes + method getError + method getExtension + method getFragDataLocation + method getFramebufferAttachmentParameter + method getIndexedParameter + method getInternalformatParameter + method getParameter + method getProgramInfoLog + method getProgramParameter + method getQuery + method getQueryParameter + method getRenderbufferParameter + method getSamplerParameter + method getShaderInfoLog + method getShaderParameter + method getShaderPrecisionFormat + method getShaderSource + method getSupportedExtensions + method getSyncParameter + method getTexParameter + method getTransformFeedbackVarying + method getUniform + method getUniformBlockIndex + method getUniformIndices + method getUniformLocation + method getVertexAttrib + method getVertexAttribOffset + method hint + method invalidateFramebuffer + method invalidateSubFramebuffer + method isBuffer + method isContextLost + method isEnabled + method isFramebuffer + method isProgram + method isQuery + method isRenderbuffer + method isSampler + method isShader + method isSync + method isTexture + method isTransformFeedback + method isVertexArray + method lineWidth + method linkProgram + method pauseTransformFeedback + method pixelStorei + method polygonOffset + method readBuffer + method readPixels + method renderbufferStorage + method renderbufferStorageMultisample + method resumeTransformFeedback + method sampleCoverage + method samplerParameterf + method samplerParameteri + method scissor + method shaderSource + method stencilFunc + method stencilFuncSeparate + method stencilMask + method stencilMaskSeparate + method stencilOp + method stencilOpSeparate + method texImage2D + method texImage3D + method texParameterf + method texParameteri + method texStorage2D + method texStorage3D + method texSubImage2D + method texSubImage3D + method transformFeedbackVaryings + method uniform1f + method uniform1fv + method uniform1i + method uniform1iv + method uniform1ui + method uniform1uiv + method uniform2f + method uniform2fv + method uniform2i + method uniform2iv + method uniform2ui + method uniform2uiv + method uniform3f + method uniform3fv + method uniform3i + method uniform3iv + method uniform3ui + method uniform3uiv + method uniform4f + method uniform4fv + method uniform4i + method uniform4iv + method uniform4ui + method uniform4uiv + method uniformBlockBinding + method uniformMatrix2fv + method uniformMatrix2x3fv + method uniformMatrix2x4fv + method uniformMatrix3fv + method uniformMatrix3x2fv + method uniformMatrix3x4fv + method uniformMatrix4fv + method uniformMatrix4x2fv + method uniformMatrix4x3fv + method useProgram + method validateProgram + method vertexAttrib1f + method vertexAttrib1fv + method vertexAttrib2f + method vertexAttrib2fv + method vertexAttrib3f + method vertexAttrib3fv + method vertexAttrib4f + method vertexAttrib4fv + method vertexAttribDivisor + method vertexAttribI4i + method vertexAttribI4iv + method vertexAttribI4ui + method vertexAttribI4uiv + method vertexAttribIPointer + method vertexAttribPointer + method viewport + method waitSync +interface WebGLRenderingContext + attribute ACTIVE_ATTRIBUTES + attribute ACTIVE_TEXTURE + attribute ACTIVE_UNIFORMS + attribute ALIASED_LINE_WIDTH_RANGE + attribute ALIASED_POINT_SIZE_RANGE + attribute ALPHA + attribute ALPHA_BITS + attribute ALWAYS + attribute ARRAY_BUFFER + attribute ARRAY_BUFFER_BINDING + attribute ATTACHED_SHADERS + attribute BACK + attribute BLEND + attribute BLEND_COLOR + attribute BLEND_DST_ALPHA + attribute BLEND_DST_RGB + attribute BLEND_EQUATION + attribute BLEND_EQUATION_ALPHA + attribute BLEND_EQUATION_RGB + attribute BLEND_SRC_ALPHA + attribute BLEND_SRC_RGB + attribute BLUE_BITS + attribute BOOL + attribute BOOL_VEC2 + attribute BOOL_VEC3 + attribute BOOL_VEC4 + attribute BROWSER_DEFAULT_WEBGL + attribute BUFFER_SIZE + attribute BUFFER_USAGE + attribute BYTE + attribute CCW + attribute CLAMP_TO_EDGE + attribute COLOR_ATTACHMENT0 + attribute COLOR_BUFFER_BIT + attribute COLOR_CLEAR_VALUE + attribute COLOR_WRITEMASK + attribute COMPILE_STATUS + attribute COMPRESSED_TEXTURE_FORMATS + attribute CONSTANT_ALPHA + attribute CONSTANT_COLOR + attribute CONTEXT_LOST_WEBGL + attribute CULL_FACE + attribute CULL_FACE_MODE + attribute CURRENT_PROGRAM + attribute CURRENT_VERTEX_ATTRIB + attribute CW + attribute DECR + attribute DECR_WRAP + attribute DELETE_STATUS + attribute DEPTH_ATTACHMENT + attribute DEPTH_BITS + attribute DEPTH_BUFFER_BIT + attribute DEPTH_CLEAR_VALUE + attribute DEPTH_COMPONENT + attribute DEPTH_COMPONENT16 + attribute DEPTH_FUNC + attribute DEPTH_RANGE + attribute DEPTH_STENCIL + attribute DEPTH_STENCIL_ATTACHMENT + attribute DEPTH_TEST + attribute DEPTH_WRITEMASK + attribute DITHER + attribute DONT_CARE + attribute DST_ALPHA + attribute DST_COLOR + attribute DYNAMIC_DRAW + attribute ELEMENT_ARRAY_BUFFER + attribute ELEMENT_ARRAY_BUFFER_BINDING + attribute EQUAL + attribute FASTEST + attribute FLOAT + attribute FLOAT_MAT2 + attribute FLOAT_MAT3 + attribute FLOAT_MAT4 + attribute FLOAT_VEC2 + attribute FLOAT_VEC3 + attribute FLOAT_VEC4 + attribute FRAGMENT_SHADER + attribute FRAMEBUFFER + attribute FRAMEBUFFER_ATTACHMENT_OBJECT_NAME + attribute FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL + attribute FRAMEBUFFER_BINDING + attribute FRAMEBUFFER_COMPLETE + attribute FRAMEBUFFER_INCOMPLETE_ATTACHMENT + attribute FRAMEBUFFER_INCOMPLETE_DIMENSIONS + attribute FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT + attribute FRAMEBUFFER_UNSUPPORTED + attribute FRONT + attribute FRONT_AND_BACK + attribute FRONT_FACE + attribute FUNC_ADD + attribute FUNC_REVERSE_SUBTRACT + attribute FUNC_SUBTRACT + attribute GENERATE_MIPMAP_HINT + attribute GEQUAL + attribute GREATER + attribute GREEN_BITS + attribute HIGH_FLOAT + attribute HIGH_INT + attribute IMPLEMENTATION_COLOR_READ_FORMAT + attribute IMPLEMENTATION_COLOR_READ_TYPE + attribute INCR + attribute INCR_WRAP + attribute INT + attribute INT_VEC2 + attribute INT_VEC3 + attribute INT_VEC4 + attribute INVALID_ENUM + attribute INVALID_FRAMEBUFFER_OPERATION + attribute INVALID_OPERATION + attribute INVALID_VALUE + attribute INVERT + attribute KEEP + attribute LEQUAL + attribute LESS + attribute LINEAR + attribute LINEAR_MIPMAP_LINEAR + attribute LINEAR_MIPMAP_NEAREST + attribute LINES + attribute LINE_LOOP + attribute LINE_STRIP + attribute LINE_WIDTH + attribute LINK_STATUS + attribute LOW_FLOAT + attribute LOW_INT + attribute LUMINANCE + attribute LUMINANCE_ALPHA + attribute MAX_COMBINED_TEXTURE_IMAGE_UNITS + attribute MAX_CUBE_MAP_TEXTURE_SIZE + attribute MAX_FRAGMENT_UNIFORM_VECTORS + attribute MAX_RENDERBUFFER_SIZE + attribute MAX_TEXTURE_IMAGE_UNITS + attribute MAX_TEXTURE_SIZE + attribute MAX_VARYING_VECTORS + attribute MAX_VERTEX_ATTRIBS + attribute MAX_VERTEX_TEXTURE_IMAGE_UNITS + attribute MAX_VERTEX_UNIFORM_VECTORS + attribute MAX_VIEWPORT_DIMS + attribute MEDIUM_FLOAT + attribute MEDIUM_INT + attribute MIRRORED_REPEAT + attribute NEAREST + attribute NEAREST_MIPMAP_LINEAR + attribute NEAREST_MIPMAP_NEAREST + attribute NEVER + attribute NICEST + attribute NONE + attribute NOTEQUAL + attribute NO_ERROR + attribute ONE + attribute ONE_MINUS_CONSTANT_ALPHA + attribute ONE_MINUS_CONSTANT_COLOR + attribute ONE_MINUS_DST_ALPHA + attribute ONE_MINUS_DST_COLOR + attribute ONE_MINUS_SRC_ALPHA + attribute ONE_MINUS_SRC_COLOR + attribute OUT_OF_MEMORY + attribute PACK_ALIGNMENT + attribute POINTS + attribute POLYGON_OFFSET_FACTOR + attribute POLYGON_OFFSET_FILL + attribute POLYGON_OFFSET_UNITS + attribute RED_BITS + attribute RENDERBUFFER + attribute RENDERBUFFER_ALPHA_SIZE + attribute RENDERBUFFER_BINDING + attribute RENDERBUFFER_BLUE_SIZE + attribute RENDERBUFFER_DEPTH_SIZE + attribute RENDERBUFFER_GREEN_SIZE + attribute RENDERBUFFER_HEIGHT + attribute RENDERBUFFER_INTERNAL_FORMAT + attribute RENDERBUFFER_RED_SIZE + attribute RENDERBUFFER_STENCIL_SIZE + attribute RENDERBUFFER_WIDTH + attribute RENDERER + attribute REPEAT + attribute REPLACE + attribute RGB + attribute RGB565 + attribute RGB5_A1 + attribute RGBA + attribute RGBA4 + attribute SAMPLER_2D + attribute SAMPLER_CUBE + attribute SAMPLES + attribute SAMPLE_ALPHA_TO_COVERAGE + attribute SAMPLE_BUFFERS + attribute SAMPLE_COVERAGE + attribute SAMPLE_COVERAGE_INVERT + attribute SAMPLE_COVERAGE_VALUE + attribute SCISSOR_BOX + attribute SCISSOR_TEST + attribute SHADER_TYPE + attribute SHADING_LANGUAGE_VERSION + attribute SHORT + attribute SRC_ALPHA + attribute SRC_ALPHA_SATURATE + attribute SRC_COLOR + attribute STATIC_DRAW + attribute STENCIL_ATTACHMENT + attribute STENCIL_BACK_FAIL + attribute STENCIL_BACK_FUNC + attribute STENCIL_BACK_PASS_DEPTH_FAIL + attribute STENCIL_BACK_PASS_DEPTH_PASS + attribute STENCIL_BACK_REF + attribute STENCIL_BACK_VALUE_MASK + attribute STENCIL_BACK_WRITEMASK + attribute STENCIL_BITS + attribute STENCIL_BUFFER_BIT + attribute STENCIL_CLEAR_VALUE + attribute STENCIL_FAIL + attribute STENCIL_FUNC + attribute STENCIL_INDEX + attribute STENCIL_INDEX8 + attribute STENCIL_PASS_DEPTH_FAIL + attribute STENCIL_PASS_DEPTH_PASS + attribute STENCIL_REF + attribute STENCIL_TEST + attribute STENCIL_VALUE_MASK + attribute STENCIL_WRITEMASK + attribute STREAM_DRAW + attribute SUBPIXEL_BITS + attribute TEXTURE + attribute TEXTURE0 + attribute TEXTURE1 + attribute TEXTURE10 + attribute TEXTURE11 + attribute TEXTURE12 + attribute TEXTURE13 + attribute TEXTURE14 + attribute TEXTURE15 + attribute TEXTURE16 + attribute TEXTURE17 + attribute TEXTURE18 + attribute TEXTURE19 + attribute TEXTURE2 + attribute TEXTURE20 + attribute TEXTURE21 + attribute TEXTURE22 + attribute TEXTURE23 + attribute TEXTURE24 + attribute TEXTURE25 + attribute TEXTURE26 + attribute TEXTURE27 + attribute TEXTURE28 + attribute TEXTURE29 + attribute TEXTURE3 + attribute TEXTURE30 + attribute TEXTURE31 + attribute TEXTURE4 + attribute TEXTURE5 + attribute TEXTURE6 + attribute TEXTURE7 + attribute TEXTURE8 + attribute TEXTURE9 + attribute TEXTURE_2D + attribute TEXTURE_BINDING_2D + attribute TEXTURE_BINDING_CUBE_MAP + attribute TEXTURE_CUBE_MAP + attribute TEXTURE_CUBE_MAP_NEGATIVE_X + attribute TEXTURE_CUBE_MAP_NEGATIVE_Y + attribute TEXTURE_CUBE_MAP_NEGATIVE_Z + attribute TEXTURE_CUBE_MAP_POSITIVE_X + attribute TEXTURE_CUBE_MAP_POSITIVE_Y + attribute TEXTURE_CUBE_MAP_POSITIVE_Z + attribute TEXTURE_MAG_FILTER + attribute TEXTURE_MIN_FILTER + attribute TEXTURE_WRAP_S + attribute TEXTURE_WRAP_T + attribute TRIANGLES + attribute TRIANGLE_FAN + attribute TRIANGLE_STRIP + attribute UNPACK_ALIGNMENT + attribute UNPACK_COLORSPACE_CONVERSION_WEBGL + attribute UNPACK_FLIP_Y_WEBGL + attribute UNPACK_PREMULTIPLY_ALPHA_WEBGL + attribute UNSIGNED_BYTE + attribute UNSIGNED_INT + attribute UNSIGNED_SHORT + attribute UNSIGNED_SHORT_4_4_4_4 + attribute UNSIGNED_SHORT_5_5_5_1 + attribute UNSIGNED_SHORT_5_6_5 + attribute VALIDATE_STATUS + attribute VENDOR + attribute VERSION + attribute VERTEX_ATTRIB_ARRAY_BUFFER_BINDING + attribute VERTEX_ATTRIB_ARRAY_ENABLED + attribute VERTEX_ATTRIB_ARRAY_NORMALIZED + attribute VERTEX_ATTRIB_ARRAY_POINTER + attribute VERTEX_ATTRIB_ARRAY_SIZE + attribute VERTEX_ATTRIB_ARRAY_STRIDE + attribute VERTEX_ATTRIB_ARRAY_TYPE + attribute VERTEX_SHADER + attribute VIEWPORT + attribute ZERO + getter canvas + getter drawingBufferHeight + getter drawingBufferWidth + method activeTexture + method attachShader + method bindAttribLocation + method bindBuffer + method bindFramebuffer + method bindRenderbuffer + method bindTexture + method blendColor + method blendEquation + method blendEquationSeparate + method blendFunc + method blendFuncSeparate + method bufferData + method bufferSubData + method checkFramebufferStatus + method clear + method clearColor + method clearDepth + method clearStencil + method colorMask + method commit + method compileShader + method compressedTexImage2D + method compressedTexSubImage2D + method constructor + method copyTexImage2D + method copyTexSubImage2D + method createBuffer + method createFramebuffer + method createProgram + method createRenderbuffer + method createShader + method createTexture + method cullFace + method deleteBuffer + method deleteFramebuffer + method deleteProgram + method deleteRenderbuffer + method deleteShader + method deleteTexture + method depthFunc + method depthMask + method depthRange + method detachShader + method disable + method disableVertexAttribArray + method drawArrays + method drawElements + method enable + method enableVertexAttribArray + method finish + method flush + method framebufferRenderbuffer + method framebufferTexture2D + method frontFace + method generateMipmap + method getActiveAttrib + method getActiveUniform + method getAttachedShaders + method getAttribLocation + method getBufferParameter + method getContextAttributes + method getError + method getExtension + method getFramebufferAttachmentParameter + method getParameter + method getProgramInfoLog + method getProgramParameter + method getRenderbufferParameter + method getShaderInfoLog + method getShaderParameter + method getShaderPrecisionFormat + method getShaderSource + method getSupportedExtensions + method getTexParameter + method getUniform + method getUniformLocation + method getVertexAttrib + method getVertexAttribOffset + method hint + method isBuffer + method isContextLost + method isEnabled + method isFramebuffer + method isProgram + method isRenderbuffer + method isShader + method isTexture + method lineWidth + method linkProgram + method pixelStorei + method polygonOffset + method readPixels + method renderbufferStorage + method sampleCoverage + method scissor + method shaderSource + method stencilFunc + method stencilFuncSeparate + method stencilMask + method stencilMaskSeparate + method stencilOp + method stencilOpSeparate + method texImage2D + method texParameterf + method texParameteri + method texSubImage2D + method uniform1f + method uniform1fv + method uniform1i + method uniform1iv + method uniform2f + method uniform2fv + method uniform2i + method uniform2iv + method uniform3f + method uniform3fv + method uniform3i + method uniform3iv + method uniform4f + method uniform4fv + method uniform4i + method uniform4iv + method uniformMatrix2fv + method uniformMatrix3fv + method uniformMatrix4fv + method useProgram + method validateProgram + method vertexAttrib1f + method vertexAttrib1fv + method vertexAttrib2f + method vertexAttrib2fv + method vertexAttrib3f + method vertexAttrib3fv + method vertexAttrib4f + method vertexAttrib4fv + method vertexAttribPointer + method viewport +interface WebSocket : EventTarget + attribute CLOSED + attribute CLOSING + attribute CONNECTING + attribute OPEN + getter binaryType + getter bufferedAmount + getter extensions + getter onclose + getter onerror + getter onmessage + getter onopen + getter protocol + getter readyState + getter url + method close + method constructor + method send + setter binaryType + setter onclose + setter onerror + setter onmessage + setter onopen +interface WindowClient : Client + getter focused + getter visibilityState + method constructor + method focus + method navigate +interface WorkerGlobalScope : EventTarget + getter addressSpace + getter caches + getter crypto + getter indexedDB + getter isSecureContext + getter location + getter navigator + getter onerror + getter onrejectionhandled + getter onunhandledrejection + getter origin + getter performance + getter self + method atob + method btoa + method clearInterval + method clearTimeout + method constructor + method createImageBitmap + method fetch + method importScripts + method setInterval + method setTimeout + setter onerror + setter onrejectionhandled + setter onunhandledrejection + setter origin +interface WorkerLocation + getter hash + getter host + getter hostname + getter href + getter origin + getter pathname + getter port + getter protocol + getter search + method constructor + method toString +interface WorkerNavigator + getter appCodeName + getter appName + getter appVersion + getter budget + getter connection + getter hardwareConcurrency + getter onLine + getter permissions + getter platform + getter product + getter storage + getter userAgent + method constructor +interface WritableStream + getter locked + method abort + method constructor + method getWriter +global object + attribute console + attribute internals + getter clients + getter onactivate + getter onbackgroundfetchabort + getter onbackgroundfetchclick + getter onbackgroundfetched + getter onbackgroundfetchfail + getter onfetch + getter onforeignfetch + getter oninstall + getter onmessage + getter onnotificationclick + getter onnotificationclose + getter onpaymentrequest + getter onpush + getter onsync + getter registration + method fetch + method gc + method skipWaiting + setter onactivate + setter onbackgroundfetchabort + setter onbackgroundfetchclick + setter onbackgroundfetched + setter onbackgroundfetchfail + setter onfetch + setter onforeignfetch + setter oninstall + setter onmessage + setter onnotificationclick + setter onnotificationclose + setter onpaymentrequest + setter onpush + setter onsync +PASS Verify the interface of ServiceWorkerGlobalScope +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/README.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/README.txt similarity index 100% copy from third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/chromium/README.txt copy to third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/README.txt
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-dedicated-worker-expected.txt new file mode 100644 index 0000000..0b22d590 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -0,0 +1,2336 @@ +This test documents all interface attributes and methods on DedicatedWorkerGlobalScope. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +Starting worker: resources/global-interface-listing.js +[Worker] [INTERFACES] +[Worker] interface BackgroundFetchFetch +[Worker] attribute @@toStringTag +[Worker] getter request +[Worker] method constructor +[Worker] interface BackgroundFetchManager +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method fetch +[Worker] method get +[Worker] method getTags +[Worker] interface BackgroundFetchRegistration +[Worker] attribute @@toStringTag +[Worker] getter icons +[Worker] getter tag +[Worker] getter title +[Worker] getter totalDownloadSize +[Worker] method abort +[Worker] method constructor +[Worker] interface BarcodeDetector +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method detect +[Worker] interface Blob +[Worker] attribute @@toStringTag +[Worker] getter isClosed +[Worker] getter size +[Worker] getter type +[Worker] method close +[Worker] method constructor +[Worker] method slice +[Worker] interface BroadcastChannel : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter name +[Worker] getter onmessage +[Worker] method close +[Worker] method constructor +[Worker] method postMessage +[Worker] setter onmessage +[Worker] interface BudgetService +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method getBudget +[Worker] method getCost +[Worker] method reserve +[Worker] interface BudgetState +[Worker] attribute @@toStringTag +[Worker] getter budgetAt +[Worker] getter time +[Worker] method constructor +[Worker] interface ByteLengthQueuingStrategy +[Worker] method constructor +[Worker] method size +[Worker] interface Cache +[Worker] attribute @@toStringTag +[Worker] method add +[Worker] method addAll +[Worker] method constructor +[Worker] method delete +[Worker] method keys +[Worker] method match +[Worker] method matchAll +[Worker] method put +[Worker] interface CacheStorage +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method delete +[Worker] method has +[Worker] method keys +[Worker] method match +[Worker] method open +[Worker] interface CanvasGradient +[Worker] attribute @@toStringTag +[Worker] method addColorStop +[Worker] method constructor +[Worker] interface CanvasPattern +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] interface CloseEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter code +[Worker] getter reason +[Worker] getter wasClean +[Worker] method constructor +[Worker] interface CountQueuingStrategy +[Worker] method constructor +[Worker] method size +[Worker] interface Crypto +[Worker] attribute @@toStringTag +[Worker] getter subtle +[Worker] method constructor +[Worker] method getRandomValues +[Worker] interface CryptoKey +[Worker] attribute @@toStringTag +[Worker] getter algorithm +[Worker] getter extractable +[Worker] getter type +[Worker] getter usages +[Worker] method constructor +[Worker] interface CustomEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter detail +[Worker] method constructor +[Worker] method initCustomEvent +[Worker] interface DOMException +[Worker] attribute @@toStringTag +[Worker] attribute ABORT_ERR +[Worker] attribute DATA_CLONE_ERR +[Worker] attribute DOMSTRING_SIZE_ERR +[Worker] attribute HIERARCHY_REQUEST_ERR +[Worker] attribute INDEX_SIZE_ERR +[Worker] attribute INUSE_ATTRIBUTE_ERR +[Worker] attribute INVALID_ACCESS_ERR +[Worker] attribute INVALID_CHARACTER_ERR +[Worker] attribute INVALID_MODIFICATION_ERR +[Worker] attribute INVALID_NODE_TYPE_ERR +[Worker] attribute INVALID_STATE_ERR +[Worker] attribute NAMESPACE_ERR +[Worker] attribute NETWORK_ERR +[Worker] attribute NOT_FOUND_ERR +[Worker] attribute NOT_SUPPORTED_ERR +[Worker] attribute NO_DATA_ALLOWED_ERR +[Worker] attribute NO_MODIFICATION_ALLOWED_ERR +[Worker] attribute QUOTA_EXCEEDED_ERR +[Worker] attribute SECURITY_ERR +[Worker] attribute SYNTAX_ERR +[Worker] attribute TIMEOUT_ERR +[Worker] attribute TYPE_MISMATCH_ERR +[Worker] attribute URL_MISMATCH_ERR +[Worker] attribute VALIDATION_ERR +[Worker] attribute WRONG_DOCUMENT_ERR +[Worker] getter code +[Worker] getter message +[Worker] getter name +[Worker] method constructor +[Worker] method toString +[Worker] interface DOMMatrix : DOMMatrixReadOnly +[Worker] attribute @@toStringTag +[Worker] getter a +[Worker] getter b +[Worker] getter c +[Worker] getter d +[Worker] getter e +[Worker] getter f +[Worker] getter m11 +[Worker] getter m12 +[Worker] getter m13 +[Worker] getter m14 +[Worker] getter m21 +[Worker] getter m22 +[Worker] getter m23 +[Worker] getter m24 +[Worker] getter m31 +[Worker] getter m32 +[Worker] getter m33 +[Worker] getter m34 +[Worker] getter m41 +[Worker] getter m42 +[Worker] getter m43 +[Worker] getter m44 +[Worker] method constructor +[Worker] method invertSelf +[Worker] method multiplySelf +[Worker] method preMultiplySelf +[Worker] method rotateAxisAngleSelf +[Worker] method rotateFromVectorSelf +[Worker] method rotateSelf +[Worker] method scale3dSelf +[Worker] method scaleSelf +[Worker] method setMatrixValue +[Worker] method skewXSelf +[Worker] method skewYSelf +[Worker] method translateSelf +[Worker] setter a +[Worker] setter b +[Worker] setter c +[Worker] setter d +[Worker] setter e +[Worker] setter f +[Worker] setter m11 +[Worker] setter m12 +[Worker] setter m13 +[Worker] setter m14 +[Worker] setter m21 +[Worker] setter m22 +[Worker] setter m23 +[Worker] setter m24 +[Worker] setter m31 +[Worker] setter m32 +[Worker] setter m33 +[Worker] setter m34 +[Worker] setter m41 +[Worker] setter m42 +[Worker] setter m43 +[Worker] setter m44 +[Worker] interface DOMMatrixReadOnly +[Worker] static method fromFloat32Array +[Worker] static method fromFloat64Array +[Worker] static method fromMatrix +[Worker] attribute @@toStringTag +[Worker] getter a +[Worker] getter b +[Worker] getter c +[Worker] getter d +[Worker] getter e +[Worker] getter f +[Worker] getter is2D +[Worker] getter isIdentity +[Worker] getter m11 +[Worker] getter m12 +[Worker] getter m13 +[Worker] getter m14 +[Worker] getter m21 +[Worker] getter m22 +[Worker] getter m23 +[Worker] getter m24 +[Worker] getter m31 +[Worker] getter m32 +[Worker] getter m33 +[Worker] getter m34 +[Worker] getter m41 +[Worker] getter m42 +[Worker] getter m43 +[Worker] getter m44 +[Worker] method constructor +[Worker] method flipX +[Worker] method flipY +[Worker] method inverse +[Worker] method multiply +[Worker] method rotate +[Worker] method rotateAxisAngle +[Worker] method rotateFromVector +[Worker] method scale +[Worker] method scale3d +[Worker] method skewX +[Worker] method skewY +[Worker] method toFloat32Array +[Worker] method toFloat64Array +[Worker] method toJSON +[Worker] method toString +[Worker] method transformPoint +[Worker] method translate +[Worker] interface DOMPoint : DOMPointReadOnly +[Worker] attribute @@toStringTag +[Worker] getter w +[Worker] getter x +[Worker] getter y +[Worker] getter z +[Worker] method constructor +[Worker] setter w +[Worker] setter x +[Worker] setter y +[Worker] setter z +[Worker] interface DOMPointReadOnly +[Worker] static method fromPoint +[Worker] attribute @@toStringTag +[Worker] getter w +[Worker] getter x +[Worker] getter y +[Worker] getter z +[Worker] method constructor +[Worker] method matrixTransform +[Worker] method toJSON +[Worker] interface DOMQuad +[Worker] static method fromQuad +[Worker] static method fromRect +[Worker] attribute @@toStringTag +[Worker] getter p1 +[Worker] getter p2 +[Worker] getter p3 +[Worker] getter p4 +[Worker] method constructor +[Worker] method getBounds +[Worker] method toJSON +[Worker] interface DOMRect : DOMRectReadOnly +[Worker] attribute @@toStringTag +[Worker] getter height +[Worker] getter width +[Worker] getter x +[Worker] getter y +[Worker] method constructor +[Worker] setter height +[Worker] setter width +[Worker] setter x +[Worker] setter y +[Worker] interface DOMRectReadOnly +[Worker] static method fromRect +[Worker] attribute @@toStringTag +[Worker] getter bottom +[Worker] getter height +[Worker] getter left +[Worker] getter right +[Worker] getter top +[Worker] getter width +[Worker] getter x +[Worker] getter y +[Worker] method constructor +[Worker] method toJSON +[Worker] interface DOMStringList +[Worker] attribute @@toStringTag +[Worker] getter length +[Worker] method @@iterator +[Worker] method constructor +[Worker] method contains +[Worker] method item +[Worker] interface DataView +[Worker] attribute @@toStringTag +[Worker] getter buffer +[Worker] getter byteLength +[Worker] getter byteOffset +[Worker] method constructor +[Worker] method getFloat32 +[Worker] method getFloat64 +[Worker] method getInt16 +[Worker] method getInt32 +[Worker] method getInt8 +[Worker] method getUint16 +[Worker] method getUint32 +[Worker] method getUint8 +[Worker] method setFloat32 +[Worker] method setFloat64 +[Worker] method setInt16 +[Worker] method setInt32 +[Worker] method setInt8 +[Worker] method setUint16 +[Worker] method setUint32 +[Worker] method setUint8 +[Worker] interface DedicatedWorkerGlobalScope : WorkerGlobalScope +[Worker] attribute @@toStringTag +[Worker] attribute PERSISTENT +[Worker] attribute TEMPORARY +[Worker] method constructor +[Worker] interface Event +[Worker] attribute @@toStringTag +[Worker] attribute AT_TARGET +[Worker] attribute BUBBLING_PHASE +[Worker] attribute CAPTURING_PHASE +[Worker] attribute NONE +[Worker] getter bubbles +[Worker] getter cancelBubble +[Worker] getter cancelable +[Worker] getter composed +[Worker] getter currentTarget +[Worker] getter defaultPrevented +[Worker] getter eventPhase +[Worker] getter path +[Worker] getter returnValue +[Worker] getter srcElement +[Worker] getter target +[Worker] getter timeStamp +[Worker] getter type +[Worker] method composedPath +[Worker] method constructor +[Worker] method initEvent +[Worker] method preventDefault +[Worker] method stopImmediatePropagation +[Worker] method stopPropagation +[Worker] setter cancelBubble +[Worker] setter returnValue +[Worker] interface EventSource : EventTarget +[Worker] attribute @@toStringTag +[Worker] attribute CLOSED +[Worker] attribute CONNECTING +[Worker] attribute OPEN +[Worker] getter onerror +[Worker] getter onmessage +[Worker] getter onopen +[Worker] getter readyState +[Worker] getter url +[Worker] getter withCredentials +[Worker] method close +[Worker] method constructor +[Worker] setter onerror +[Worker] setter onmessage +[Worker] setter onopen +[Worker] interface EventTarget +[Worker] attribute @@toStringTag +[Worker] method addEventListener +[Worker] method constructor +[Worker] method dispatchEvent +[Worker] method removeEventListener +[Worker] interface FaceDetector +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method detect +[Worker] interface File : Blob +[Worker] attribute @@toStringTag +[Worker] getter lastModified +[Worker] getter lastModifiedDate +[Worker] getter name +[Worker] getter webkitRelativePath +[Worker] method constructor +[Worker] interface FileList +[Worker] attribute @@toStringTag +[Worker] getter length +[Worker] method @@iterator +[Worker] method constructor +[Worker] method item +[Worker] interface FileReader : EventTarget +[Worker] attribute @@toStringTag +[Worker] attribute DONE +[Worker] attribute EMPTY +[Worker] attribute LOADING +[Worker] getter error +[Worker] getter onabort +[Worker] getter onerror +[Worker] getter onload +[Worker] getter onloadend +[Worker] getter onloadstart +[Worker] getter onprogress +[Worker] getter readyState +[Worker] getter result +[Worker] method abort +[Worker] method constructor +[Worker] method readAsArrayBuffer +[Worker] method readAsBinaryString +[Worker] method readAsDataURL +[Worker] method readAsText +[Worker] setter onabort +[Worker] setter onerror +[Worker] setter onload +[Worker] setter onloadend +[Worker] setter onloadstart +[Worker] setter onprogress +[Worker] interface FileReaderSync +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method readAsArrayBuffer +[Worker] method readAsBinaryString +[Worker] method readAsDataURL +[Worker] method readAsText +[Worker] interface FormData +[Worker] attribute @@toStringTag +[Worker] method @@iterator +[Worker] method append +[Worker] method constructor +[Worker] method delete +[Worker] method entries +[Worker] method forEach +[Worker] method get +[Worker] method getAll +[Worker] method has +[Worker] method keys +[Worker] method set +[Worker] method values +[Worker] interface Headers +[Worker] attribute @@toStringTag +[Worker] method @@iterator +[Worker] method append +[Worker] method constructor +[Worker] method delete +[Worker] method entries +[Worker] method forEach +[Worker] method get +[Worker] method getAll +[Worker] method has +[Worker] method keys +[Worker] method set +[Worker] method values +[Worker] interface IDBCursor +[Worker] attribute @@toStringTag +[Worker] getter direction +[Worker] getter key +[Worker] getter primaryKey +[Worker] getter source +[Worker] method advance +[Worker] method constructor +[Worker] method continue +[Worker] method continuePrimaryKey +[Worker] method delete +[Worker] method update +[Worker] interface IDBCursorWithValue : IDBCursor +[Worker] attribute @@toStringTag +[Worker] getter value +[Worker] method constructor +[Worker] interface IDBDatabase : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter name +[Worker] getter objectStoreNames +[Worker] getter onabort +[Worker] getter onclose +[Worker] getter onerror +[Worker] getter onversionchange +[Worker] getter version +[Worker] method close +[Worker] method constructor +[Worker] method createObjectStore +[Worker] method deleteObjectStore +[Worker] method transaction +[Worker] setter onabort +[Worker] setter onclose +[Worker] setter onerror +[Worker] setter onversionchange +[Worker] interface IDBFactory +[Worker] attribute @@toStringTag +[Worker] method cmp +[Worker] method constructor +[Worker] method deleteDatabase +[Worker] method open +[Worker] method webkitGetDatabaseNames +[Worker] interface IDBIndex +[Worker] attribute @@toStringTag +[Worker] getter keyPath +[Worker] getter multiEntry +[Worker] getter name +[Worker] getter objectStore +[Worker] getter unique +[Worker] method constructor +[Worker] method count +[Worker] method get +[Worker] method getAll +[Worker] method getAllKeys +[Worker] method getKey +[Worker] method openCursor +[Worker] method openKeyCursor +[Worker] setter name +[Worker] interface IDBKeyRange +[Worker] static method bound +[Worker] static method lowerBound +[Worker] static method only +[Worker] static method upperBound +[Worker] attribute @@toStringTag +[Worker] getter lower +[Worker] getter lowerOpen +[Worker] getter upper +[Worker] getter upperOpen +[Worker] method constructor +[Worker] method includes +[Worker] interface IDBObjectStore +[Worker] attribute @@toStringTag +[Worker] getter autoIncrement +[Worker] getter indexNames +[Worker] getter keyPath +[Worker] getter name +[Worker] getter transaction +[Worker] method add +[Worker] method clear +[Worker] method constructor +[Worker] method count +[Worker] method createIndex +[Worker] method delete +[Worker] method deleteIndex +[Worker] method get +[Worker] method getAll +[Worker] method getAllKeys +[Worker] method getKey +[Worker] method index +[Worker] method openCursor +[Worker] method openKeyCursor +[Worker] method put +[Worker] setter name +[Worker] interface IDBObservation +[Worker] attribute @@toStringTag +[Worker] getter key +[Worker] getter type +[Worker] getter value +[Worker] method constructor +[Worker] interface IDBObserver +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method observe +[Worker] method unobserve +[Worker] interface IDBOpenDBRequest : IDBRequest +[Worker] attribute @@toStringTag +[Worker] getter onblocked +[Worker] getter onupgradeneeded +[Worker] method constructor +[Worker] setter onblocked +[Worker] setter onupgradeneeded +[Worker] interface IDBRequest : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter error +[Worker] getter onerror +[Worker] getter onsuccess +[Worker] getter readyState +[Worker] getter result +[Worker] getter source +[Worker] getter transaction +[Worker] method constructor +[Worker] setter onerror +[Worker] setter onsuccess +[Worker] interface IDBTransaction : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter db +[Worker] getter error +[Worker] getter mode +[Worker] getter objectStoreNames +[Worker] getter onabort +[Worker] getter oncomplete +[Worker] getter onerror +[Worker] method abort +[Worker] method constructor +[Worker] method objectStore +[Worker] setter onabort +[Worker] setter oncomplete +[Worker] setter onerror +[Worker] interface IDBVersionChangeEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter dataLoss +[Worker] getter dataLossMessage +[Worker] getter newVersion +[Worker] getter oldVersion +[Worker] method constructor +[Worker] interface ImageBitmap +[Worker] attribute @@toStringTag +[Worker] getter height +[Worker] getter width +[Worker] method close +[Worker] method constructor +[Worker] interface ImageData +[Worker] attribute @@toStringTag +[Worker] getter data +[Worker] getter dataUnion +[Worker] getter height +[Worker] getter width +[Worker] method constructor +[Worker] method createImageData +[Worker] method getColorSettings +[Worker] interface MessageChannel +[Worker] attribute @@toStringTag +[Worker] getter port1 +[Worker] getter port2 +[Worker] method constructor +[Worker] interface MessageEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter data +[Worker] getter lastEventId +[Worker] getter origin +[Worker] getter ports +[Worker] getter source +[Worker] getter suborigin +[Worker] method constructor +[Worker] method initMessageEvent +[Worker] interface MessagePort : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter onmessage +[Worker] method close +[Worker] method constructor +[Worker] method postMessage +[Worker] method start +[Worker] setter onmessage +[Worker] interface NetworkInformation : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter downlinkMax +[Worker] getter onchange +[Worker] getter ontypechange +[Worker] getter type +[Worker] method constructor +[Worker] setter onchange +[Worker] setter ontypechange +[Worker] interface Notification : EventTarget +[Worker] static getter maxActions +[Worker] static getter permission +[Worker] attribute @@toStringTag +[Worker] getter actions +[Worker] getter badge +[Worker] getter body +[Worker] getter data +[Worker] getter dir +[Worker] getter icon +[Worker] getter image +[Worker] getter lang +[Worker] getter onclick +[Worker] getter onclose +[Worker] getter onerror +[Worker] getter onshow +[Worker] getter renotify +[Worker] getter requireInteraction +[Worker] getter silent +[Worker] getter tag +[Worker] getter timestamp +[Worker] getter title +[Worker] getter vibrate +[Worker] method close +[Worker] method constructor +[Worker] setter onclick +[Worker] setter onclose +[Worker] setter onerror +[Worker] setter onshow +[Worker] interface OffscreenCanvas : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter height +[Worker] getter width +[Worker] method constructor +[Worker] method convertToBlob +[Worker] method getContext +[Worker] method transferToImageBitmap +[Worker] setter height +[Worker] setter width +[Worker] interface OffscreenCanvasRenderingContext2D +[Worker] attribute @@toStringTag +[Worker] getter canvas +[Worker] getter fillStyle +[Worker] getter filter +[Worker] getter globalAlpha +[Worker] getter globalCompositeOperation +[Worker] getter imageSmoothingEnabled +[Worker] getter imageSmoothingQuality +[Worker] getter lineCap +[Worker] getter lineDashOffset +[Worker] getter lineJoin +[Worker] getter lineWidth +[Worker] getter miterLimit +[Worker] getter shadowBlur +[Worker] getter shadowColor +[Worker] getter shadowOffsetX +[Worker] getter shadowOffsetY +[Worker] getter strokeStyle +[Worker] method arc +[Worker] method arcTo +[Worker] method beginPath +[Worker] method bezierCurveTo +[Worker] method clearRect +[Worker] method clip +[Worker] method closePath +[Worker] method commit +[Worker] method constructor +[Worker] method createImageData +[Worker] method createLinearGradient +[Worker] method createPattern +[Worker] method createRadialGradient +[Worker] method drawImage +[Worker] method ellipse +[Worker] method fill +[Worker] method fillRect +[Worker] method getImageData +[Worker] method getLineDash +[Worker] method isPointInPath +[Worker] method isPointInStroke +[Worker] method lineTo +[Worker] method moveTo +[Worker] method putImageData +[Worker] method quadraticCurveTo +[Worker] method rect +[Worker] method resetTransform +[Worker] method restore +[Worker] method rotate +[Worker] method save +[Worker] method scale +[Worker] method setLineDash +[Worker] method setTransform +[Worker] method stroke +[Worker] method strokeRect +[Worker] method transform +[Worker] method translate +[Worker] setter fillStyle +[Worker] setter filter +[Worker] setter globalAlpha +[Worker] setter globalCompositeOperation +[Worker] setter imageSmoothingEnabled +[Worker] setter imageSmoothingQuality +[Worker] setter lineCap +[Worker] setter lineDashOffset +[Worker] setter lineJoin +[Worker] setter lineWidth +[Worker] setter miterLimit +[Worker] setter shadowBlur +[Worker] setter shadowColor +[Worker] setter shadowOffsetX +[Worker] setter shadowOffsetY +[Worker] setter strokeStyle +[Worker] interface Path2D +[Worker] attribute @@toStringTag +[Worker] method addPath +[Worker] method arc +[Worker] method arcTo +[Worker] method bezierCurveTo +[Worker] method closePath +[Worker] method constructor +[Worker] method ellipse +[Worker] method lineTo +[Worker] method moveTo +[Worker] method quadraticCurveTo +[Worker] method rect +[Worker] interface PerformanceObserverEntryList +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method getEntries +[Worker] method getEntriesByName +[Worker] method getEntriesByType +[Worker] interface PermissionStatus : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter onchange +[Worker] getter state +[Worker] method constructor +[Worker] setter onchange +[Worker] interface Permissions +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method query +[Worker] method request +[Worker] method requestAll +[Worker] method revoke +[Worker] interface ProgressEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter lengthComputable +[Worker] getter loaded +[Worker] getter total +[Worker] method constructor +[Worker] interface PromiseRejectionEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter promise +[Worker] getter reason +[Worker] method constructor +[Worker] interface ReadableStream +[Worker] getter locked +[Worker] method cancel +[Worker] method constructor +[Worker] method getReader +[Worker] method pipeThrough +[Worker] method pipeTo +[Worker] method tee +[Worker] interface Request +[Worker] attribute @@toStringTag +[Worker] getter bodyUsed +[Worker] getter cache +[Worker] getter credentials +[Worker] getter headers +[Worker] getter integrity +[Worker] getter method +[Worker] getter mode +[Worker] getter redirect +[Worker] getter referrer +[Worker] getter referrerPolicy +[Worker] getter url +[Worker] method arrayBuffer +[Worker] method blob +[Worker] method clone +[Worker] method constructor +[Worker] method json +[Worker] method text +[Worker] interface Response +[Worker] static method error +[Worker] static method redirect +[Worker] attribute @@toStringTag +[Worker] getter body +[Worker] getter bodyUsed +[Worker] getter headers +[Worker] getter ok +[Worker] getter redirected +[Worker] getter status +[Worker] getter statusText +[Worker] getter type +[Worker] getter url +[Worker] method arrayBuffer +[Worker] method blob +[Worker] method clone +[Worker] method constructor +[Worker] method json +[Worker] method text +[Worker] interface ServiceWorkerRegistration : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter active +[Worker] getter backgroundFetch +[Worker] getter installing +[Worker] getter onupdatefound +[Worker] getter paymentManager +[Worker] getter pushManager +[Worker] getter scope +[Worker] getter sync +[Worker] getter waiting +[Worker] method constructor +[Worker] method getNotifications +[Worker] method showNotification +[Worker] method unregister +[Worker] method update +[Worker] setter onupdatefound +[Worker] interface StorageManager +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method estimate +[Worker] method persisted +[Worker] interface SubtleCrypto +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method decrypt +[Worker] method deriveBits +[Worker] method deriveKey +[Worker] method digest +[Worker] method encrypt +[Worker] method exportKey +[Worker] method generateKey +[Worker] method importKey +[Worker] method sign +[Worker] method unwrapKey +[Worker] method verify +[Worker] method wrapKey +[Worker] interface TextDecoder +[Worker] attribute @@toStringTag +[Worker] getter encoding +[Worker] getter fatal +[Worker] getter ignoreBOM +[Worker] method constructor +[Worker] method decode +[Worker] interface TextDetector +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method detect +[Worker] interface TextEncoder +[Worker] attribute @@toStringTag +[Worker] getter encoding +[Worker] method constructor +[Worker] method encode +[Worker] interface URL +[Worker] static method createObjectURL +[Worker] static method revokeObjectURL +[Worker] attribute @@toStringTag +[Worker] getter hash +[Worker] getter host +[Worker] getter hostname +[Worker] getter href +[Worker] getter origin +[Worker] getter password +[Worker] getter pathname +[Worker] getter port +[Worker] getter protocol +[Worker] getter search +[Worker] getter searchParams +[Worker] getter username +[Worker] method constructor +[Worker] method toString +[Worker] setter hash +[Worker] setter host +[Worker] setter hostname +[Worker] setter href +[Worker] setter password +[Worker] setter pathname +[Worker] setter port +[Worker] setter protocol +[Worker] setter search +[Worker] setter username +[Worker] interface URLSearchParams +[Worker] attribute @@toStringTag +[Worker] method @@iterator +[Worker] method append +[Worker] method constructor +[Worker] method delete +[Worker] method entries +[Worker] method forEach +[Worker] method get +[Worker] method getAll +[Worker] method has +[Worker] method keys +[Worker] method set +[Worker] method toString +[Worker] method values +[Worker] interface WebGL2RenderingContext +[Worker] attribute @@toStringTag +[Worker] attribute ACTIVE_ATTRIBUTES +[Worker] attribute ACTIVE_TEXTURE +[Worker] attribute ACTIVE_UNIFORMS +[Worker] attribute ACTIVE_UNIFORM_BLOCKS +[Worker] attribute ALIASED_LINE_WIDTH_RANGE +[Worker] attribute ALIASED_POINT_SIZE_RANGE +[Worker] attribute ALPHA +[Worker] attribute ALPHA_BITS +[Worker] attribute ALREADY_SIGNALED +[Worker] attribute ALWAYS +[Worker] attribute ANY_SAMPLES_PASSED +[Worker] attribute ANY_SAMPLES_PASSED_CONSERVATIVE +[Worker] attribute ARRAY_BUFFER +[Worker] attribute ARRAY_BUFFER_BINDING +[Worker] attribute ATTACHED_SHADERS +[Worker] attribute BACK +[Worker] attribute BLEND +[Worker] attribute BLEND_COLOR +[Worker] attribute BLEND_DST_ALPHA +[Worker] attribute BLEND_DST_RGB +[Worker] attribute BLEND_EQUATION +[Worker] attribute BLEND_EQUATION_ALPHA +[Worker] attribute BLEND_EQUATION_RGB +[Worker] attribute BLEND_SRC_ALPHA +[Worker] attribute BLEND_SRC_RGB +[Worker] attribute BLUE_BITS +[Worker] attribute BOOL +[Worker] attribute BOOL_VEC2 +[Worker] attribute BOOL_VEC3 +[Worker] attribute BOOL_VEC4 +[Worker] attribute BROWSER_DEFAULT_WEBGL +[Worker] attribute BUFFER_SIZE +[Worker] attribute BUFFER_USAGE +[Worker] attribute BYTE +[Worker] attribute CCW +[Worker] attribute CLAMP_TO_EDGE +[Worker] attribute COLOR +[Worker] attribute COLOR_ATTACHMENT0 +[Worker] attribute COLOR_ATTACHMENT1 +[Worker] attribute COLOR_ATTACHMENT10 +[Worker] attribute COLOR_ATTACHMENT11 +[Worker] attribute COLOR_ATTACHMENT12 +[Worker] attribute COLOR_ATTACHMENT13 +[Worker] attribute COLOR_ATTACHMENT14 +[Worker] attribute COLOR_ATTACHMENT15 +[Worker] attribute COLOR_ATTACHMENT2 +[Worker] attribute COLOR_ATTACHMENT3 +[Worker] attribute COLOR_ATTACHMENT4 +[Worker] attribute COLOR_ATTACHMENT5 +[Worker] attribute COLOR_ATTACHMENT6 +[Worker] attribute COLOR_ATTACHMENT7 +[Worker] attribute COLOR_ATTACHMENT8 +[Worker] attribute COLOR_ATTACHMENT9 +[Worker] attribute COLOR_BUFFER_BIT +[Worker] attribute COLOR_CLEAR_VALUE +[Worker] attribute COLOR_WRITEMASK +[Worker] attribute COMPARE_REF_TO_TEXTURE +[Worker] attribute COMPILE_STATUS +[Worker] attribute COMPRESSED_TEXTURE_FORMATS +[Worker] attribute CONDITION_SATISFIED +[Worker] attribute CONSTANT_ALPHA +[Worker] attribute CONSTANT_COLOR +[Worker] attribute CONTEXT_LOST_WEBGL +[Worker] attribute COPY_READ_BUFFER +[Worker] attribute COPY_READ_BUFFER_BINDING +[Worker] attribute COPY_WRITE_BUFFER +[Worker] attribute COPY_WRITE_BUFFER_BINDING +[Worker] attribute CULL_FACE +[Worker] attribute CULL_FACE_MODE +[Worker] attribute CURRENT_PROGRAM +[Worker] attribute CURRENT_QUERY +[Worker] attribute CURRENT_VERTEX_ATTRIB +[Worker] attribute CW +[Worker] attribute DECR +[Worker] attribute DECR_WRAP +[Worker] attribute DELETE_STATUS +[Worker] attribute DEPTH +[Worker] attribute DEPTH24_STENCIL8 +[Worker] attribute DEPTH32F_STENCIL8 +[Worker] attribute DEPTH_ATTACHMENT +[Worker] attribute DEPTH_BITS +[Worker] attribute DEPTH_BUFFER_BIT +[Worker] attribute DEPTH_CLEAR_VALUE +[Worker] attribute DEPTH_COMPONENT +[Worker] attribute DEPTH_COMPONENT16 +[Worker] attribute DEPTH_COMPONENT24 +[Worker] attribute DEPTH_COMPONENT32F +[Worker] attribute DEPTH_FUNC +[Worker] attribute DEPTH_RANGE +[Worker] attribute DEPTH_STENCIL +[Worker] attribute DEPTH_STENCIL_ATTACHMENT +[Worker] attribute DEPTH_TEST +[Worker] attribute DEPTH_WRITEMASK +[Worker] attribute DITHER +[Worker] attribute DONT_CARE +[Worker] attribute DRAW_BUFFER0 +[Worker] attribute DRAW_BUFFER1 +[Worker] attribute DRAW_BUFFER10 +[Worker] attribute DRAW_BUFFER11 +[Worker] attribute DRAW_BUFFER12 +[Worker] attribute DRAW_BUFFER13 +[Worker] attribute DRAW_BUFFER14 +[Worker] attribute DRAW_BUFFER15 +[Worker] attribute DRAW_BUFFER2 +[Worker] attribute DRAW_BUFFER3 +[Worker] attribute DRAW_BUFFER4 +[Worker] attribute DRAW_BUFFER5 +[Worker] attribute DRAW_BUFFER6 +[Worker] attribute DRAW_BUFFER7 +[Worker] attribute DRAW_BUFFER8 +[Worker] attribute DRAW_BUFFER9 +[Worker] attribute DRAW_FRAMEBUFFER +[Worker] attribute DRAW_FRAMEBUFFER_BINDING +[Worker] attribute DST_ALPHA +[Worker] attribute DST_COLOR +[Worker] attribute DYNAMIC_COPY +[Worker] attribute DYNAMIC_DRAW +[Worker] attribute DYNAMIC_READ +[Worker] attribute ELEMENT_ARRAY_BUFFER +[Worker] attribute ELEMENT_ARRAY_BUFFER_BINDING +[Worker] attribute EQUAL +[Worker] attribute FASTEST +[Worker] attribute FLOAT +[Worker] attribute FLOAT_32_UNSIGNED_INT_24_8_REV +[Worker] attribute FLOAT_MAT2 +[Worker] attribute FLOAT_MAT2x3 +[Worker] attribute FLOAT_MAT2x4 +[Worker] attribute FLOAT_MAT3 +[Worker] attribute FLOAT_MAT3x2 +[Worker] attribute FLOAT_MAT3x4 +[Worker] attribute FLOAT_MAT4 +[Worker] attribute FLOAT_MAT4x2 +[Worker] attribute FLOAT_MAT4x3 +[Worker] attribute FLOAT_VEC2 +[Worker] attribute FLOAT_VEC3 +[Worker] attribute FLOAT_VEC4 +[Worker] attribute FRAGMENT_SHADER +[Worker] attribute FRAGMENT_SHADER_DERIVATIVE_HINT +[Worker] attribute FRAMEBUFFER +[Worker] attribute FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_BLUE_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING +[Worker] attribute FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_GREEN_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_OBJECT_NAME +[Worker] attribute FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_RED_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL +[Worker] attribute FRAMEBUFFER_BINDING +[Worker] attribute FRAMEBUFFER_COMPLETE +[Worker] attribute FRAMEBUFFER_DEFAULT +[Worker] attribute FRAMEBUFFER_INCOMPLETE_ATTACHMENT +[Worker] attribute FRAMEBUFFER_INCOMPLETE_DIMENSIONS +[Worker] attribute FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT +[Worker] attribute FRAMEBUFFER_INCOMPLETE_MULTISAMPLE +[Worker] attribute FRAMEBUFFER_UNSUPPORTED +[Worker] attribute FRONT +[Worker] attribute FRONT_AND_BACK +[Worker] attribute FRONT_FACE +[Worker] attribute FUNC_ADD +[Worker] attribute FUNC_REVERSE_SUBTRACT +[Worker] attribute FUNC_SUBTRACT +[Worker] attribute GENERATE_MIPMAP_HINT +[Worker] attribute GEQUAL +[Worker] attribute GREATER +[Worker] attribute GREEN_BITS +[Worker] attribute HALF_FLOAT +[Worker] attribute HIGH_FLOAT +[Worker] attribute HIGH_INT +[Worker] attribute IMPLEMENTATION_COLOR_READ_FORMAT +[Worker] attribute IMPLEMENTATION_COLOR_READ_TYPE +[Worker] attribute INCR +[Worker] attribute INCR_WRAP +[Worker] attribute INT +[Worker] attribute INTERLEAVED_ATTRIBS +[Worker] attribute INT_2_10_10_10_REV +[Worker] attribute INT_SAMPLER_2D +[Worker] attribute INT_SAMPLER_2D_ARRAY +[Worker] attribute INT_SAMPLER_3D +[Worker] attribute INT_SAMPLER_CUBE +[Worker] attribute INT_VEC2 +[Worker] attribute INT_VEC3 +[Worker] attribute INT_VEC4 +[Worker] attribute INVALID_ENUM +[Worker] attribute INVALID_FRAMEBUFFER_OPERATION +[Worker] attribute INVALID_INDEX +[Worker] attribute INVALID_OPERATION +[Worker] attribute INVALID_VALUE +[Worker] attribute INVERT +[Worker] attribute KEEP +[Worker] attribute LEQUAL +[Worker] attribute LESS +[Worker] attribute LINEAR +[Worker] attribute LINEAR_MIPMAP_LINEAR +[Worker] attribute LINEAR_MIPMAP_NEAREST +[Worker] attribute LINES +[Worker] attribute LINE_LOOP +[Worker] attribute LINE_STRIP +[Worker] attribute LINE_WIDTH +[Worker] attribute LINK_STATUS +[Worker] attribute LOW_FLOAT +[Worker] attribute LOW_INT +[Worker] attribute LUMINANCE +[Worker] attribute LUMINANCE_ALPHA +[Worker] attribute MAX +[Worker] attribute MAX_3D_TEXTURE_SIZE +[Worker] attribute MAX_ARRAY_TEXTURE_LAYERS +[Worker] attribute MAX_CLIENT_WAIT_TIMEOUT_WEBGL +[Worker] attribute MAX_COLOR_ATTACHMENTS +[Worker] attribute MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS +[Worker] attribute MAX_COMBINED_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_COMBINED_UNIFORM_BLOCKS +[Worker] attribute MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS +[Worker] attribute MAX_CUBE_MAP_TEXTURE_SIZE +[Worker] attribute MAX_DRAW_BUFFERS +[Worker] attribute MAX_ELEMENTS_INDICES +[Worker] attribute MAX_ELEMENTS_VERTICES +[Worker] attribute MAX_ELEMENT_INDEX +[Worker] attribute MAX_FRAGMENT_INPUT_COMPONENTS +[Worker] attribute MAX_FRAGMENT_UNIFORM_BLOCKS +[Worker] attribute MAX_FRAGMENT_UNIFORM_COMPONENTS +[Worker] attribute MAX_FRAGMENT_UNIFORM_VECTORS +[Worker] attribute MAX_PROGRAM_TEXEL_OFFSET +[Worker] attribute MAX_RENDERBUFFER_SIZE +[Worker] attribute MAX_SAMPLES +[Worker] attribute MAX_SERVER_WAIT_TIMEOUT +[Worker] attribute MAX_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_TEXTURE_LOD_BIAS +[Worker] attribute MAX_TEXTURE_SIZE +[Worker] attribute MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS +[Worker] attribute MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS +[Worker] attribute MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS +[Worker] attribute MAX_UNIFORM_BLOCK_SIZE +[Worker] attribute MAX_UNIFORM_BUFFER_BINDINGS +[Worker] attribute MAX_VARYING_COMPONENTS +[Worker] attribute MAX_VARYING_VECTORS +[Worker] attribute MAX_VERTEX_ATTRIBS +[Worker] attribute MAX_VERTEX_OUTPUT_COMPONENTS +[Worker] attribute MAX_VERTEX_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_VERTEX_UNIFORM_BLOCKS +[Worker] attribute MAX_VERTEX_UNIFORM_COMPONENTS +[Worker] attribute MAX_VERTEX_UNIFORM_VECTORS +[Worker] attribute MAX_VIEWPORT_DIMS +[Worker] attribute MEDIUM_FLOAT +[Worker] attribute MEDIUM_INT +[Worker] attribute MIN +[Worker] attribute MIN_PROGRAM_TEXEL_OFFSET +[Worker] attribute MIRRORED_REPEAT +[Worker] attribute NEAREST +[Worker] attribute NEAREST_MIPMAP_LINEAR +[Worker] attribute NEAREST_MIPMAP_NEAREST +[Worker] attribute NEVER +[Worker] attribute NICEST +[Worker] attribute NONE +[Worker] attribute NOTEQUAL +[Worker] attribute NO_ERROR +[Worker] attribute OBJECT_TYPE +[Worker] attribute ONE +[Worker] attribute ONE_MINUS_CONSTANT_ALPHA +[Worker] attribute ONE_MINUS_CONSTANT_COLOR +[Worker] attribute ONE_MINUS_DST_ALPHA +[Worker] attribute ONE_MINUS_DST_COLOR +[Worker] attribute ONE_MINUS_SRC_ALPHA +[Worker] attribute ONE_MINUS_SRC_COLOR +[Worker] attribute OUT_OF_MEMORY +[Worker] attribute PACK_ALIGNMENT +[Worker] attribute PACK_ROW_LENGTH +[Worker] attribute PACK_SKIP_PIXELS +[Worker] attribute PACK_SKIP_ROWS +[Worker] attribute PIXEL_PACK_BUFFER +[Worker] attribute PIXEL_PACK_BUFFER_BINDING +[Worker] attribute PIXEL_UNPACK_BUFFER +[Worker] attribute PIXEL_UNPACK_BUFFER_BINDING +[Worker] attribute POINTS +[Worker] attribute POLYGON_OFFSET_FACTOR +[Worker] attribute POLYGON_OFFSET_FILL +[Worker] attribute POLYGON_OFFSET_UNITS +[Worker] attribute QUERY_RESULT +[Worker] attribute QUERY_RESULT_AVAILABLE +[Worker] attribute R11F_G11F_B10F +[Worker] attribute R16F +[Worker] attribute R16I +[Worker] attribute R16UI +[Worker] attribute R32F +[Worker] attribute R32I +[Worker] attribute R32UI +[Worker] attribute R8 +[Worker] attribute R8I +[Worker] attribute R8UI +[Worker] attribute R8_SNORM +[Worker] attribute RASTERIZER_DISCARD +[Worker] attribute READ_BUFFER +[Worker] attribute READ_FRAMEBUFFER +[Worker] attribute READ_FRAMEBUFFER_BINDING +[Worker] attribute RED +[Worker] attribute RED_BITS +[Worker] attribute RED_INTEGER +[Worker] attribute RENDERBUFFER +[Worker] attribute RENDERBUFFER_ALPHA_SIZE +[Worker] attribute RENDERBUFFER_BINDING +[Worker] attribute RENDERBUFFER_BLUE_SIZE +[Worker] attribute RENDERBUFFER_DEPTH_SIZE +[Worker] attribute RENDERBUFFER_GREEN_SIZE +[Worker] attribute RENDERBUFFER_HEIGHT +[Worker] attribute RENDERBUFFER_INTERNAL_FORMAT +[Worker] attribute RENDERBUFFER_RED_SIZE +[Worker] attribute RENDERBUFFER_SAMPLES +[Worker] attribute RENDERBUFFER_STENCIL_SIZE +[Worker] attribute RENDERBUFFER_WIDTH +[Worker] attribute RENDERER +[Worker] attribute REPEAT +[Worker] attribute REPLACE +[Worker] attribute RG +[Worker] attribute RG16F +[Worker] attribute RG16I +[Worker] attribute RG16UI +[Worker] attribute RG32F +[Worker] attribute RG32I +[Worker] attribute RG32UI +[Worker] attribute RG8 +[Worker] attribute RG8I +[Worker] attribute RG8UI +[Worker] attribute RG8_SNORM +[Worker] attribute RGB +[Worker] attribute RGB10_A2 +[Worker] attribute RGB10_A2UI +[Worker] attribute RGB16F +[Worker] attribute RGB16I +[Worker] attribute RGB16UI +[Worker] attribute RGB32F +[Worker] attribute RGB32I +[Worker] attribute RGB32UI +[Worker] attribute RGB565 +[Worker] attribute RGB5_A1 +[Worker] attribute RGB8 +[Worker] attribute RGB8I +[Worker] attribute RGB8UI +[Worker] attribute RGB8_SNORM +[Worker] attribute RGB9_E5 +[Worker] attribute RGBA +[Worker] attribute RGBA16F +[Worker] attribute RGBA16I +[Worker] attribute RGBA16UI +[Worker] attribute RGBA32F +[Worker] attribute RGBA32I +[Worker] attribute RGBA32UI +[Worker] attribute RGBA4 +[Worker] attribute RGBA8 +[Worker] attribute RGBA8I +[Worker] attribute RGBA8UI +[Worker] attribute RGBA8_SNORM +[Worker] attribute RGBA_INTEGER +[Worker] attribute RGB_INTEGER +[Worker] attribute RG_INTEGER +[Worker] attribute SAMPLER_2D +[Worker] attribute SAMPLER_2D_ARRAY +[Worker] attribute SAMPLER_2D_ARRAY_SHADOW +[Worker] attribute SAMPLER_2D_SHADOW +[Worker] attribute SAMPLER_3D +[Worker] attribute SAMPLER_BINDING +[Worker] attribute SAMPLER_CUBE +[Worker] attribute SAMPLER_CUBE_SHADOW +[Worker] attribute SAMPLES +[Worker] attribute SAMPLE_ALPHA_TO_COVERAGE +[Worker] attribute SAMPLE_BUFFERS +[Worker] attribute SAMPLE_COVERAGE +[Worker] attribute SAMPLE_COVERAGE_INVERT +[Worker] attribute SAMPLE_COVERAGE_VALUE +[Worker] attribute SCISSOR_BOX +[Worker] attribute SCISSOR_TEST +[Worker] attribute SEPARATE_ATTRIBS +[Worker] attribute SHADER_TYPE +[Worker] attribute SHADING_LANGUAGE_VERSION +[Worker] attribute SHORT +[Worker] attribute SIGNALED +[Worker] attribute SIGNED_NORMALIZED +[Worker] attribute SRC_ALPHA +[Worker] attribute SRC_ALPHA_SATURATE +[Worker] attribute SRC_COLOR +[Worker] attribute SRGB +[Worker] attribute SRGB8 +[Worker] attribute SRGB8_ALPHA8 +[Worker] attribute STATIC_COPY +[Worker] attribute STATIC_DRAW +[Worker] attribute STATIC_READ +[Worker] attribute STENCIL +[Worker] attribute STENCIL_ATTACHMENT +[Worker] attribute STENCIL_BACK_FAIL +[Worker] attribute STENCIL_BACK_FUNC +[Worker] attribute STENCIL_BACK_PASS_DEPTH_FAIL +[Worker] attribute STENCIL_BACK_PASS_DEPTH_PASS +[Worker] attribute STENCIL_BACK_REF +[Worker] attribute STENCIL_BACK_VALUE_MASK +[Worker] attribute STENCIL_BACK_WRITEMASK +[Worker] attribute STENCIL_BITS +[Worker] attribute STENCIL_BUFFER_BIT +[Worker] attribute STENCIL_CLEAR_VALUE +[Worker] attribute STENCIL_FAIL +[Worker] attribute STENCIL_FUNC +[Worker] attribute STENCIL_INDEX +[Worker] attribute STENCIL_INDEX8 +[Worker] attribute STENCIL_PASS_DEPTH_FAIL +[Worker] attribute STENCIL_PASS_DEPTH_PASS +[Worker] attribute STENCIL_REF +[Worker] attribute STENCIL_TEST +[Worker] attribute STENCIL_VALUE_MASK +[Worker] attribute STENCIL_WRITEMASK +[Worker] attribute STREAM_COPY +[Worker] attribute STREAM_DRAW +[Worker] attribute STREAM_READ +[Worker] attribute SUBPIXEL_BITS +[Worker] attribute SYNC_CONDITION +[Worker] attribute SYNC_FENCE +[Worker] attribute SYNC_FLAGS +[Worker] attribute SYNC_FLUSH_COMMANDS_BIT +[Worker] attribute SYNC_GPU_COMMANDS_COMPLETE +[Worker] attribute SYNC_STATUS +[Worker] attribute TEXTURE +[Worker] attribute TEXTURE0 +[Worker] attribute TEXTURE1 +[Worker] attribute TEXTURE10 +[Worker] attribute TEXTURE11 +[Worker] attribute TEXTURE12 +[Worker] attribute TEXTURE13 +[Worker] attribute TEXTURE14 +[Worker] attribute TEXTURE15 +[Worker] attribute TEXTURE16 +[Worker] attribute TEXTURE17 +[Worker] attribute TEXTURE18 +[Worker] attribute TEXTURE19 +[Worker] attribute TEXTURE2 +[Worker] attribute TEXTURE20 +[Worker] attribute TEXTURE21 +[Worker] attribute TEXTURE22 +[Worker] attribute TEXTURE23 +[Worker] attribute TEXTURE24 +[Worker] attribute TEXTURE25 +[Worker] attribute TEXTURE26 +[Worker] attribute TEXTURE27 +[Worker] attribute TEXTURE28 +[Worker] attribute TEXTURE29 +[Worker] attribute TEXTURE3 +[Worker] attribute TEXTURE30 +[Worker] attribute TEXTURE31 +[Worker] attribute TEXTURE4 +[Worker] attribute TEXTURE5 +[Worker] attribute TEXTURE6 +[Worker] attribute TEXTURE7 +[Worker] attribute TEXTURE8 +[Worker] attribute TEXTURE9 +[Worker] attribute TEXTURE_2D +[Worker] attribute TEXTURE_2D_ARRAY +[Worker] attribute TEXTURE_3D +[Worker] attribute TEXTURE_BASE_LEVEL +[Worker] attribute TEXTURE_BINDING_2D +[Worker] attribute TEXTURE_BINDING_2D_ARRAY +[Worker] attribute TEXTURE_BINDING_3D +[Worker] attribute TEXTURE_BINDING_CUBE_MAP +[Worker] attribute TEXTURE_COMPARE_FUNC +[Worker] attribute TEXTURE_COMPARE_MODE +[Worker] attribute TEXTURE_CUBE_MAP +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_X +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_Y +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_Z +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_X +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_Y +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_Z +[Worker] attribute TEXTURE_IMMUTABLE_FORMAT +[Worker] attribute TEXTURE_IMMUTABLE_LEVELS +[Worker] attribute TEXTURE_MAG_FILTER +[Worker] attribute TEXTURE_MAX_LEVEL +[Worker] attribute TEXTURE_MAX_LOD +[Worker] attribute TEXTURE_MIN_FILTER +[Worker] attribute TEXTURE_MIN_LOD +[Worker] attribute TEXTURE_WRAP_R +[Worker] attribute TEXTURE_WRAP_S +[Worker] attribute TEXTURE_WRAP_T +[Worker] attribute TIMEOUT_EXPIRED +[Worker] attribute TIMEOUT_IGNORED +[Worker] attribute TRANSFORM_FEEDBACK +[Worker] attribute TRANSFORM_FEEDBACK_ACTIVE +[Worker] attribute TRANSFORM_FEEDBACK_BINDING +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER_BINDING +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER_MODE +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER_SIZE +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER_START +[Worker] attribute TRANSFORM_FEEDBACK_PAUSED +[Worker] attribute TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN +[Worker] attribute TRANSFORM_FEEDBACK_VARYINGS +[Worker] attribute TRIANGLES +[Worker] attribute TRIANGLE_FAN +[Worker] attribute TRIANGLE_STRIP +[Worker] attribute UNIFORM_ARRAY_STRIDE +[Worker] attribute UNIFORM_BLOCK_ACTIVE_UNIFORMS +[Worker] attribute UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES +[Worker] attribute UNIFORM_BLOCK_BINDING +[Worker] attribute UNIFORM_BLOCK_DATA_SIZE +[Worker] attribute UNIFORM_BLOCK_INDEX +[Worker] attribute UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER +[Worker] attribute UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER +[Worker] attribute UNIFORM_BUFFER +[Worker] attribute UNIFORM_BUFFER_BINDING +[Worker] attribute UNIFORM_BUFFER_OFFSET_ALIGNMENT +[Worker] attribute UNIFORM_BUFFER_SIZE +[Worker] attribute UNIFORM_BUFFER_START +[Worker] attribute UNIFORM_IS_ROW_MAJOR +[Worker] attribute UNIFORM_MATRIX_STRIDE +[Worker] attribute UNIFORM_OFFSET +[Worker] attribute UNIFORM_SIZE +[Worker] attribute UNIFORM_TYPE +[Worker] attribute UNPACK_ALIGNMENT +[Worker] attribute UNPACK_COLORSPACE_CONVERSION_WEBGL +[Worker] attribute UNPACK_FLIP_Y_WEBGL +[Worker] attribute UNPACK_IMAGE_HEIGHT +[Worker] attribute UNPACK_PREMULTIPLY_ALPHA_WEBGL +[Worker] attribute UNPACK_ROW_LENGTH +[Worker] attribute UNPACK_SKIP_IMAGES +[Worker] attribute UNPACK_SKIP_PIXELS +[Worker] attribute UNPACK_SKIP_ROWS +[Worker] attribute UNSIGNALED +[Worker] attribute UNSIGNED_BYTE +[Worker] attribute UNSIGNED_INT +[Worker] attribute UNSIGNED_INT_10F_11F_11F_REV +[Worker] attribute UNSIGNED_INT_24_8 +[Worker] attribute UNSIGNED_INT_2_10_10_10_REV +[Worker] attribute UNSIGNED_INT_5_9_9_9_REV +[Worker] attribute UNSIGNED_INT_SAMPLER_2D +[Worker] attribute UNSIGNED_INT_SAMPLER_2D_ARRAY +[Worker] attribute UNSIGNED_INT_SAMPLER_3D +[Worker] attribute UNSIGNED_INT_SAMPLER_CUBE +[Worker] attribute UNSIGNED_INT_VEC2 +[Worker] attribute UNSIGNED_INT_VEC3 +[Worker] attribute UNSIGNED_INT_VEC4 +[Worker] attribute UNSIGNED_NORMALIZED +[Worker] attribute UNSIGNED_SHORT +[Worker] attribute UNSIGNED_SHORT_4_4_4_4 +[Worker] attribute UNSIGNED_SHORT_5_5_5_1 +[Worker] attribute UNSIGNED_SHORT_5_6_5 +[Worker] attribute VALIDATE_STATUS +[Worker] attribute VENDOR +[Worker] attribute VERSION +[Worker] attribute VERTEX_ARRAY_BINDING +[Worker] attribute VERTEX_ATTRIB_ARRAY_BUFFER_BINDING +[Worker] attribute VERTEX_ATTRIB_ARRAY_DIVISOR +[Worker] attribute VERTEX_ATTRIB_ARRAY_ENABLED +[Worker] attribute VERTEX_ATTRIB_ARRAY_INTEGER +[Worker] attribute VERTEX_ATTRIB_ARRAY_NORMALIZED +[Worker] attribute VERTEX_ATTRIB_ARRAY_POINTER +[Worker] attribute VERTEX_ATTRIB_ARRAY_SIZE +[Worker] attribute VERTEX_ATTRIB_ARRAY_STRIDE +[Worker] attribute VERTEX_ATTRIB_ARRAY_TYPE +[Worker] attribute VERTEX_SHADER +[Worker] attribute VIEWPORT +[Worker] attribute WAIT_FAILED +[Worker] attribute ZERO +[Worker] getter canvas +[Worker] getter drawingBufferHeight +[Worker] getter drawingBufferWidth +[Worker] method activeTexture +[Worker] method attachShader +[Worker] method beginQuery +[Worker] method beginTransformFeedback +[Worker] method bindAttribLocation +[Worker] method bindBuffer +[Worker] method bindBufferBase +[Worker] method bindBufferRange +[Worker] method bindFramebuffer +[Worker] method bindRenderbuffer +[Worker] method bindSampler +[Worker] method bindTexture +[Worker] method bindTransformFeedback +[Worker] method bindVertexArray +[Worker] method blendColor +[Worker] method blendEquation +[Worker] method blendEquationSeparate +[Worker] method blendFunc +[Worker] method blendFuncSeparate +[Worker] method blitFramebuffer +[Worker] method bufferData +[Worker] method bufferSubData +[Worker] method checkFramebufferStatus +[Worker] method clear +[Worker] method clearBufferfi +[Worker] method clearBufferfv +[Worker] method clearBufferiv +[Worker] method clearBufferuiv +[Worker] method clearColor +[Worker] method clearDepth +[Worker] method clearStencil +[Worker] method clientWaitSync +[Worker] method colorMask +[Worker] method commit +[Worker] method compileShader +[Worker] method compressedTexImage2D +[Worker] method compressedTexImage3D +[Worker] method compressedTexSubImage2D +[Worker] method compressedTexSubImage3D +[Worker] method constructor +[Worker] method copyBufferSubData +[Worker] method copyTexImage2D +[Worker] method copyTexSubImage2D +[Worker] method copyTexSubImage3D +[Worker] method createBuffer +[Worker] method createFramebuffer +[Worker] method createProgram +[Worker] method createQuery +[Worker] method createRenderbuffer +[Worker] method createSampler +[Worker] method createShader +[Worker] method createTexture +[Worker] method createTransformFeedback +[Worker] method createVertexArray +[Worker] method cullFace +[Worker] method deleteBuffer +[Worker] method deleteFramebuffer +[Worker] method deleteProgram +[Worker] method deleteQuery +[Worker] method deleteRenderbuffer +[Worker] method deleteSampler +[Worker] method deleteShader +[Worker] method deleteSync +[Worker] method deleteTexture +[Worker] method deleteTransformFeedback +[Worker] method deleteVertexArray +[Worker] method depthFunc +[Worker] method depthMask +[Worker] method depthRange +[Worker] method detachShader +[Worker] method disable +[Worker] method disableVertexAttribArray +[Worker] method drawArrays +[Worker] method drawArraysInstanced +[Worker] method drawBuffers +[Worker] method drawElements +[Worker] method drawElementsInstanced +[Worker] method drawRangeElements +[Worker] method enable +[Worker] method enableVertexAttribArray +[Worker] method endQuery +[Worker] method endTransformFeedback +[Worker] method fenceSync +[Worker] method finish +[Worker] method flush +[Worker] method framebufferRenderbuffer +[Worker] method framebufferTexture2D +[Worker] method framebufferTextureLayer +[Worker] method frontFace +[Worker] method generateMipmap +[Worker] method getActiveAttrib +[Worker] method getActiveUniform +[Worker] method getActiveUniformBlockName +[Worker] method getActiveUniformBlockParameter +[Worker] method getActiveUniforms +[Worker] method getAttachedShaders +[Worker] method getAttribLocation +[Worker] method getBufferParameter +[Worker] method getBufferSubData +[Worker] method getContextAttributes +[Worker] method getError +[Worker] method getExtension +[Worker] method getFragDataLocation +[Worker] method getFramebufferAttachmentParameter +[Worker] method getIndexedParameter +[Worker] method getInternalformatParameter +[Worker] method getParameter +[Worker] method getProgramInfoLog +[Worker] method getProgramParameter +[Worker] method getQuery +[Worker] method getQueryParameter +[Worker] method getRenderbufferParameter +[Worker] method getSamplerParameter +[Worker] method getShaderInfoLog +[Worker] method getShaderParameter +[Worker] method getShaderPrecisionFormat +[Worker] method getShaderSource +[Worker] method getSupportedExtensions +[Worker] method getSyncParameter +[Worker] method getTexParameter +[Worker] method getTransformFeedbackVarying +[Worker] method getUniform +[Worker] method getUniformBlockIndex +[Worker] method getUniformIndices +[Worker] method getUniformLocation +[Worker] method getVertexAttrib +[Worker] method getVertexAttribOffset +[Worker] method hint +[Worker] method invalidateFramebuffer +[Worker] method invalidateSubFramebuffer +[Worker] method isBuffer +[Worker] method isContextLost +[Worker] method isEnabled +[Worker] method isFramebuffer +[Worker] method isProgram +[Worker] method isQuery +[Worker] method isRenderbuffer +[Worker] method isSampler +[Worker] method isShader +[Worker] method isSync +[Worker] method isTexture +[Worker] method isTransformFeedback +[Worker] method isVertexArray +[Worker] method lineWidth +[Worker] method linkProgram +[Worker] method pauseTransformFeedback +[Worker] method pixelStorei +[Worker] method polygonOffset +[Worker] method readBuffer +[Worker] method readPixels +[Worker] method renderbufferStorage +[Worker] method renderbufferStorageMultisample +[Worker] method resumeTransformFeedback +[Worker] method sampleCoverage +[Worker] method samplerParameterf +[Worker] method samplerParameteri +[Worker] method scissor +[Worker] method shaderSource +[Worker] method stencilFunc +[Worker] method stencilFuncSeparate +[Worker] method stencilMask +[Worker] method stencilMaskSeparate +[Worker] method stencilOp +[Worker] method stencilOpSeparate +[Worker] method texImage2D +[Worker] method texImage3D +[Worker] method texParameterf +[Worker] method texParameteri +[Worker] method texStorage2D +[Worker] method texStorage3D +[Worker] method texSubImage2D +[Worker] method texSubImage3D +[Worker] method transformFeedbackVaryings +[Worker] method uniform1f +[Worker] method uniform1fv +[Worker] method uniform1i +[Worker] method uniform1iv +[Worker] method uniform1ui +[Worker] method uniform1uiv +[Worker] method uniform2f +[Worker] method uniform2fv +[Worker] method uniform2i +[Worker] method uniform2iv +[Worker] method uniform2ui +[Worker] method uniform2uiv +[Worker] method uniform3f +[Worker] method uniform3fv +[Worker] method uniform3i +[Worker] method uniform3iv +[Worker] method uniform3ui +[Worker] method uniform3uiv +[Worker] method uniform4f +[Worker] method uniform4fv +[Worker] method uniform4i +[Worker] method uniform4iv +[Worker] method uniform4ui +[Worker] method uniform4uiv +[Worker] method uniformBlockBinding +[Worker] method uniformMatrix2fv +[Worker] method uniformMatrix2x3fv +[Worker] method uniformMatrix2x4fv +[Worker] method uniformMatrix3fv +[Worker] method uniformMatrix3x2fv +[Worker] method uniformMatrix3x4fv +[Worker] method uniformMatrix4fv +[Worker] method uniformMatrix4x2fv +[Worker] method uniformMatrix4x3fv +[Worker] method useProgram +[Worker] method validateProgram +[Worker] method vertexAttrib1f +[Worker] method vertexAttrib1fv +[Worker] method vertexAttrib2f +[Worker] method vertexAttrib2fv +[Worker] method vertexAttrib3f +[Worker] method vertexAttrib3fv +[Worker] method vertexAttrib4f +[Worker] method vertexAttrib4fv +[Worker] method vertexAttribDivisor +[Worker] method vertexAttribI4i +[Worker] method vertexAttribI4iv +[Worker] method vertexAttribI4ui +[Worker] method vertexAttribI4uiv +[Worker] method vertexAttribIPointer +[Worker] method vertexAttribPointer +[Worker] method viewport +[Worker] method waitSync +[Worker] interface WebGLRenderingContext +[Worker] attribute @@toStringTag +[Worker] attribute ACTIVE_ATTRIBUTES +[Worker] attribute ACTIVE_TEXTURE +[Worker] attribute ACTIVE_UNIFORMS +[Worker] attribute ALIASED_LINE_WIDTH_RANGE +[Worker] attribute ALIASED_POINT_SIZE_RANGE +[Worker] attribute ALPHA +[Worker] attribute ALPHA_BITS +[Worker] attribute ALWAYS +[Worker] attribute ARRAY_BUFFER +[Worker] attribute ARRAY_BUFFER_BINDING +[Worker] attribute ATTACHED_SHADERS +[Worker] attribute BACK +[Worker] attribute BLEND +[Worker] attribute BLEND_COLOR +[Worker] attribute BLEND_DST_ALPHA +[Worker] attribute BLEND_DST_RGB +[Worker] attribute BLEND_EQUATION +[Worker] attribute BLEND_EQUATION_ALPHA +[Worker] attribute BLEND_EQUATION_RGB +[Worker] attribute BLEND_SRC_ALPHA +[Worker] attribute BLEND_SRC_RGB +[Worker] attribute BLUE_BITS +[Worker] attribute BOOL +[Worker] attribute BOOL_VEC2 +[Worker] attribute BOOL_VEC3 +[Worker] attribute BOOL_VEC4 +[Worker] attribute BROWSER_DEFAULT_WEBGL +[Worker] attribute BUFFER_SIZE +[Worker] attribute BUFFER_USAGE +[Worker] attribute BYTE +[Worker] attribute CCW +[Worker] attribute CLAMP_TO_EDGE +[Worker] attribute COLOR_ATTACHMENT0 +[Worker] attribute COLOR_BUFFER_BIT +[Worker] attribute COLOR_CLEAR_VALUE +[Worker] attribute COLOR_WRITEMASK +[Worker] attribute COMPILE_STATUS +[Worker] attribute COMPRESSED_TEXTURE_FORMATS +[Worker] attribute CONSTANT_ALPHA +[Worker] attribute CONSTANT_COLOR +[Worker] attribute CONTEXT_LOST_WEBGL +[Worker] attribute CULL_FACE +[Worker] attribute CULL_FACE_MODE +[Worker] attribute CURRENT_PROGRAM +[Worker] attribute CURRENT_VERTEX_ATTRIB +[Worker] attribute CW +[Worker] attribute DECR +[Worker] attribute DECR_WRAP +[Worker] attribute DELETE_STATUS +[Worker] attribute DEPTH_ATTACHMENT +[Worker] attribute DEPTH_BITS +[Worker] attribute DEPTH_BUFFER_BIT +[Worker] attribute DEPTH_CLEAR_VALUE +[Worker] attribute DEPTH_COMPONENT +[Worker] attribute DEPTH_COMPONENT16 +[Worker] attribute DEPTH_FUNC +[Worker] attribute DEPTH_RANGE +[Worker] attribute DEPTH_STENCIL +[Worker] attribute DEPTH_STENCIL_ATTACHMENT +[Worker] attribute DEPTH_TEST +[Worker] attribute DEPTH_WRITEMASK +[Worker] attribute DITHER +[Worker] attribute DONT_CARE +[Worker] attribute DST_ALPHA +[Worker] attribute DST_COLOR +[Worker] attribute DYNAMIC_DRAW +[Worker] attribute ELEMENT_ARRAY_BUFFER +[Worker] attribute ELEMENT_ARRAY_BUFFER_BINDING +[Worker] attribute EQUAL +[Worker] attribute FASTEST +[Worker] attribute FLOAT +[Worker] attribute FLOAT_MAT2 +[Worker] attribute FLOAT_MAT3 +[Worker] attribute FLOAT_MAT4 +[Worker] attribute FLOAT_VEC2 +[Worker] attribute FLOAT_VEC3 +[Worker] attribute FLOAT_VEC4 +[Worker] attribute FRAGMENT_SHADER +[Worker] attribute FRAMEBUFFER +[Worker] attribute FRAMEBUFFER_ATTACHMENT_OBJECT_NAME +[Worker] attribute FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL +[Worker] attribute FRAMEBUFFER_BINDING +[Worker] attribute FRAMEBUFFER_COMPLETE +[Worker] attribute FRAMEBUFFER_INCOMPLETE_ATTACHMENT +[Worker] attribute FRAMEBUFFER_INCOMPLETE_DIMENSIONS +[Worker] attribute FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT +[Worker] attribute FRAMEBUFFER_UNSUPPORTED +[Worker] attribute FRONT +[Worker] attribute FRONT_AND_BACK +[Worker] attribute FRONT_FACE +[Worker] attribute FUNC_ADD +[Worker] attribute FUNC_REVERSE_SUBTRACT +[Worker] attribute FUNC_SUBTRACT +[Worker] attribute GENERATE_MIPMAP_HINT +[Worker] attribute GEQUAL +[Worker] attribute GREATER +[Worker] attribute GREEN_BITS +[Worker] attribute HIGH_FLOAT +[Worker] attribute HIGH_INT +[Worker] attribute IMPLEMENTATION_COLOR_READ_FORMAT +[Worker] attribute IMPLEMENTATION_COLOR_READ_TYPE +[Worker] attribute INCR +[Worker] attribute INCR_WRAP +[Worker] attribute INT +[Worker] attribute INT_VEC2 +[Worker] attribute INT_VEC3 +[Worker] attribute INT_VEC4 +[Worker] attribute INVALID_ENUM +[Worker] attribute INVALID_FRAMEBUFFER_OPERATION +[Worker] attribute INVALID_OPERATION +[Worker] attribute INVALID_VALUE +[Worker] attribute INVERT +[Worker] attribute KEEP +[Worker] attribute LEQUAL +[Worker] attribute LESS +[Worker] attribute LINEAR +[Worker] attribute LINEAR_MIPMAP_LINEAR +[Worker] attribute LINEAR_MIPMAP_NEAREST +[Worker] attribute LINES +[Worker] attribute LINE_LOOP +[Worker] attribute LINE_STRIP +[Worker] attribute LINE_WIDTH +[Worker] attribute LINK_STATUS +[Worker] attribute LOW_FLOAT +[Worker] attribute LOW_INT +[Worker] attribute LUMINANCE +[Worker] attribute LUMINANCE_ALPHA +[Worker] attribute MAX_COMBINED_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_CUBE_MAP_TEXTURE_SIZE +[Worker] attribute MAX_FRAGMENT_UNIFORM_VECTORS +[Worker] attribute MAX_RENDERBUFFER_SIZE +[Worker] attribute MAX_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_TEXTURE_SIZE +[Worker] attribute MAX_VARYING_VECTORS +[Worker] attribute MAX_VERTEX_ATTRIBS +[Worker] attribute MAX_VERTEX_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_VERTEX_UNIFORM_VECTORS +[Worker] attribute MAX_VIEWPORT_DIMS +[Worker] attribute MEDIUM_FLOAT +[Worker] attribute MEDIUM_INT +[Worker] attribute MIRRORED_REPEAT +[Worker] attribute NEAREST +[Worker] attribute NEAREST_MIPMAP_LINEAR +[Worker] attribute NEAREST_MIPMAP_NEAREST +[Worker] attribute NEVER +[Worker] attribute NICEST +[Worker] attribute NONE +[Worker] attribute NOTEQUAL +[Worker] attribute NO_ERROR +[Worker] attribute ONE +[Worker] attribute ONE_MINUS_CONSTANT_ALPHA +[Worker] attribute ONE_MINUS_CONSTANT_COLOR +[Worker] attribute ONE_MINUS_DST_ALPHA +[Worker] attribute ONE_MINUS_DST_COLOR +[Worker] attribute ONE_MINUS_SRC_ALPHA +[Worker] attribute ONE_MINUS_SRC_COLOR +[Worker] attribute OUT_OF_MEMORY +[Worker] attribute PACK_ALIGNMENT +[Worker] attribute POINTS +[Worker] attribute POLYGON_OFFSET_FACTOR +[Worker] attribute POLYGON_OFFSET_FILL +[Worker] attribute POLYGON_OFFSET_UNITS +[Worker] attribute RED_BITS +[Worker] attribute RENDERBUFFER +[Worker] attribute RENDERBUFFER_ALPHA_SIZE +[Worker] attribute RENDERBUFFER_BINDING +[Worker] attribute RENDERBUFFER_BLUE_SIZE +[Worker] attribute RENDERBUFFER_DEPTH_SIZE +[Worker] attribute RENDERBUFFER_GREEN_SIZE +[Worker] attribute RENDERBUFFER_HEIGHT +[Worker] attribute RENDERBUFFER_INTERNAL_FORMAT +[Worker] attribute RENDERBUFFER_RED_SIZE +[Worker] attribute RENDERBUFFER_STENCIL_SIZE +[Worker] attribute RENDERBUFFER_WIDTH +[Worker] attribute RENDERER +[Worker] attribute REPEAT +[Worker] attribute REPLACE +[Worker] attribute RGB +[Worker] attribute RGB565 +[Worker] attribute RGB5_A1 +[Worker] attribute RGBA +[Worker] attribute RGBA4 +[Worker] attribute SAMPLER_2D +[Worker] attribute SAMPLER_CUBE +[Worker] attribute SAMPLES +[Worker] attribute SAMPLE_ALPHA_TO_COVERAGE +[Worker] attribute SAMPLE_BUFFERS +[Worker] attribute SAMPLE_COVERAGE +[Worker] attribute SAMPLE_COVERAGE_INVERT +[Worker] attribute SAMPLE_COVERAGE_VALUE +[Worker] attribute SCISSOR_BOX +[Worker] attribute SCISSOR_TEST +[Worker] attribute SHADER_TYPE +[Worker] attribute SHADING_LANGUAGE_VERSION +[Worker] attribute SHORT +[Worker] attribute SRC_ALPHA +[Worker] attribute SRC_ALPHA_SATURATE +[Worker] attribute SRC_COLOR +[Worker] attribute STATIC_DRAW +[Worker] attribute STENCIL_ATTACHMENT +[Worker] attribute STENCIL_BACK_FAIL +[Worker] attribute STENCIL_BACK_FUNC +[Worker] attribute STENCIL_BACK_PASS_DEPTH_FAIL +[Worker] attribute STENCIL_BACK_PASS_DEPTH_PASS +[Worker] attribute STENCIL_BACK_REF +[Worker] attribute STENCIL_BACK_VALUE_MASK +[Worker] attribute STENCIL_BACK_WRITEMASK +[Worker] attribute STENCIL_BITS +[Worker] attribute STENCIL_BUFFER_BIT +[Worker] attribute STENCIL_CLEAR_VALUE +[Worker] attribute STENCIL_FAIL +[Worker] attribute STENCIL_FUNC +[Worker] attribute STENCIL_INDEX +[Worker] attribute STENCIL_INDEX8 +[Worker] attribute STENCIL_PASS_DEPTH_FAIL +[Worker] attribute STENCIL_PASS_DEPTH_PASS +[Worker] attribute STENCIL_REF +[Worker] attribute STENCIL_TEST +[Worker] attribute STENCIL_VALUE_MASK +[Worker] attribute STENCIL_WRITEMASK +[Worker] attribute STREAM_DRAW +[Worker] attribute SUBPIXEL_BITS +[Worker] attribute TEXTURE +[Worker] attribute TEXTURE0 +[Worker] attribute TEXTURE1 +[Worker] attribute TEXTURE10 +[Worker] attribute TEXTURE11 +[Worker] attribute TEXTURE12 +[Worker] attribute TEXTURE13 +[Worker] attribute TEXTURE14 +[Worker] attribute TEXTURE15 +[Worker] attribute TEXTURE16 +[Worker] attribute TEXTURE17 +[Worker] attribute TEXTURE18 +[Worker] attribute TEXTURE19 +[Worker] attribute TEXTURE2 +[Worker] attribute TEXTURE20 +[Worker] attribute TEXTURE21 +[Worker] attribute TEXTURE22 +[Worker] attribute TEXTURE23 +[Worker] attribute TEXTURE24 +[Worker] attribute TEXTURE25 +[Worker] attribute TEXTURE26 +[Worker] attribute TEXTURE27 +[Worker] attribute TEXTURE28 +[Worker] attribute TEXTURE29 +[Worker] attribute TEXTURE3 +[Worker] attribute TEXTURE30 +[Worker] attribute TEXTURE31 +[Worker] attribute TEXTURE4 +[Worker] attribute TEXTURE5 +[Worker] attribute TEXTURE6 +[Worker] attribute TEXTURE7 +[Worker] attribute TEXTURE8 +[Worker] attribute TEXTURE9 +[Worker] attribute TEXTURE_2D +[Worker] attribute TEXTURE_BINDING_2D +[Worker] attribute TEXTURE_BINDING_CUBE_MAP +[Worker] attribute TEXTURE_CUBE_MAP +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_X +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_Y +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_Z +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_X +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_Y +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_Z +[Worker] attribute TEXTURE_MAG_FILTER +[Worker] attribute TEXTURE_MIN_FILTER +[Worker] attribute TEXTURE_WRAP_S +[Worker] attribute TEXTURE_WRAP_T +[Worker] attribute TRIANGLES +[Worker] attribute TRIANGLE_FAN +[Worker] attribute TRIANGLE_STRIP +[Worker] attribute UNPACK_ALIGNMENT +[Worker] attribute UNPACK_COLORSPACE_CONVERSION_WEBGL +[Worker] attribute UNPACK_FLIP_Y_WEBGL +[Worker] attribute UNPACK_PREMULTIPLY_ALPHA_WEBGL +[Worker] attribute UNSIGNED_BYTE +[Worker] attribute UNSIGNED_INT +[Worker] attribute UNSIGNED_SHORT +[Worker] attribute UNSIGNED_SHORT_4_4_4_4 +[Worker] attribute UNSIGNED_SHORT_5_5_5_1 +[Worker] attribute UNSIGNED_SHORT_5_6_5 +[Worker] attribute VALIDATE_STATUS +[Worker] attribute VENDOR +[Worker] attribute VERSION +[Worker] attribute VERTEX_ATTRIB_ARRAY_BUFFER_BINDING +[Worker] attribute VERTEX_ATTRIB_ARRAY_ENABLED +[Worker] attribute VERTEX_ATTRIB_ARRAY_NORMALIZED +[Worker] attribute VERTEX_ATTRIB_ARRAY_POINTER +[Worker] attribute VERTEX_ATTRIB_ARRAY_SIZE +[Worker] attribute VERTEX_ATTRIB_ARRAY_STRIDE +[Worker] attribute VERTEX_ATTRIB_ARRAY_TYPE +[Worker] attribute VERTEX_SHADER +[Worker] attribute VIEWPORT +[Worker] attribute ZERO +[Worker] getter canvas +[Worker] getter drawingBufferHeight +[Worker] getter drawingBufferWidth +[Worker] method activeTexture +[Worker] method attachShader +[Worker] method bindAttribLocation +[Worker] method bindBuffer +[Worker] method bindFramebuffer +[Worker] method bindRenderbuffer +[Worker] method bindTexture +[Worker] method blendColor +[Worker] method blendEquation +[Worker] method blendEquationSeparate +[Worker] method blendFunc +[Worker] method blendFuncSeparate +[Worker] method bufferData +[Worker] method bufferSubData +[Worker] method checkFramebufferStatus +[Worker] method clear +[Worker] method clearColor +[Worker] method clearDepth +[Worker] method clearStencil +[Worker] method colorMask +[Worker] method commit +[Worker] method compileShader +[Worker] method compressedTexImage2D +[Worker] method compressedTexSubImage2D +[Worker] method constructor +[Worker] method copyTexImage2D +[Worker] method copyTexSubImage2D +[Worker] method createBuffer +[Worker] method createFramebuffer +[Worker] method createProgram +[Worker] method createRenderbuffer +[Worker] method createShader +[Worker] method createTexture +[Worker] method cullFace +[Worker] method deleteBuffer +[Worker] method deleteFramebuffer +[Worker] method deleteProgram +[Worker] method deleteRenderbuffer +[Worker] method deleteShader +[Worker] method deleteTexture +[Worker] method depthFunc +[Worker] method depthMask +[Worker] method depthRange +[Worker] method detachShader +[Worker] method disable +[Worker] method disableVertexAttribArray +[Worker] method drawArrays +[Worker] method drawElements +[Worker] method enable +[Worker] method enableVertexAttribArray +[Worker] method finish +[Worker] method flush +[Worker] method framebufferRenderbuffer +[Worker] method framebufferTexture2D +[Worker] method frontFace +[Worker] method generateMipmap +[Worker] method getActiveAttrib +[Worker] method getActiveUniform +[Worker] method getAttachedShaders +[Worker] method getAttribLocation +[Worker] method getBufferParameter +[Worker] method getContextAttributes +[Worker] method getError +[Worker] method getExtension +[Worker] method getFramebufferAttachmentParameter +[Worker] method getParameter +[Worker] method getProgramInfoLog +[Worker] method getProgramParameter +[Worker] method getRenderbufferParameter +[Worker] method getShaderInfoLog +[Worker] method getShaderParameter +[Worker] method getShaderPrecisionFormat +[Worker] method getShaderSource +[Worker] method getSupportedExtensions +[Worker] method getTexParameter +[Worker] method getUniform +[Worker] method getUniformLocation +[Worker] method getVertexAttrib +[Worker] method getVertexAttribOffset +[Worker] method hint +[Worker] method isBuffer +[Worker] method isContextLost +[Worker] method isEnabled +[Worker] method isFramebuffer +[Worker] method isProgram +[Worker] method isRenderbuffer +[Worker] method isShader +[Worker] method isTexture +[Worker] method lineWidth +[Worker] method linkProgram +[Worker] method pixelStorei +[Worker] method polygonOffset +[Worker] method readPixels +[Worker] method renderbufferStorage +[Worker] method sampleCoverage +[Worker] method scissor +[Worker] method shaderSource +[Worker] method stencilFunc +[Worker] method stencilFuncSeparate +[Worker] method stencilMask +[Worker] method stencilMaskSeparate +[Worker] method stencilOp +[Worker] method stencilOpSeparate +[Worker] method texImage2D +[Worker] method texParameterf +[Worker] method texParameteri +[Worker] method texSubImage2D +[Worker] method uniform1f +[Worker] method uniform1fv +[Worker] method uniform1i +[Worker] method uniform1iv +[Worker] method uniform2f +[Worker] method uniform2fv +[Worker] method uniform2i +[Worker] method uniform2iv +[Worker] method uniform3f +[Worker] method uniform3fv +[Worker] method uniform3i +[Worker] method uniform3iv +[Worker] method uniform4f +[Worker] method uniform4fv +[Worker] method uniform4i +[Worker] method uniform4iv +[Worker] method uniformMatrix2fv +[Worker] method uniformMatrix3fv +[Worker] method uniformMatrix4fv +[Worker] method useProgram +[Worker] method validateProgram +[Worker] method vertexAttrib1f +[Worker] method vertexAttrib1fv +[Worker] method vertexAttrib2f +[Worker] method vertexAttrib2fv +[Worker] method vertexAttrib3f +[Worker] method vertexAttrib3fv +[Worker] method vertexAttrib4f +[Worker] method vertexAttrib4fv +[Worker] method vertexAttribPointer +[Worker] method viewport +[Worker] interface WebSocket : EventTarget +[Worker] attribute @@toStringTag +[Worker] attribute CLOSED +[Worker] attribute CLOSING +[Worker] attribute CONNECTING +[Worker] attribute OPEN +[Worker] getter binaryType +[Worker] getter bufferedAmount +[Worker] getter extensions +[Worker] getter onclose +[Worker] getter onerror +[Worker] getter onmessage +[Worker] getter onopen +[Worker] getter protocol +[Worker] getter readyState +[Worker] getter url +[Worker] method close +[Worker] method constructor +[Worker] method send +[Worker] setter binaryType +[Worker] setter onclose +[Worker] setter onerror +[Worker] setter onmessage +[Worker] setter onopen +[Worker] interface WorkerGlobalScope : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter addressSpace +[Worker] getter caches +[Worker] getter crypto +[Worker] getter indexedDB +[Worker] getter isSecureContext +[Worker] getter location +[Worker] getter navigator +[Worker] getter onerror +[Worker] getter onrejectionhandled +[Worker] getter onunhandledrejection +[Worker] getter origin +[Worker] getter performance +[Worker] getter self +[Worker] method atob +[Worker] method btoa +[Worker] method clearInterval +[Worker] method clearTimeout +[Worker] method constructor +[Worker] method createImageBitmap +[Worker] method fetch +[Worker] method importScripts +[Worker] method setInterval +[Worker] method setTimeout +[Worker] setter onerror +[Worker] setter onrejectionhandled +[Worker] setter onunhandledrejection +[Worker] setter origin +[Worker] interface WorkerLocation +[Worker] attribute @@toStringTag +[Worker] getter hash +[Worker] getter host +[Worker] getter hostname +[Worker] getter href +[Worker] getter origin +[Worker] getter pathname +[Worker] getter port +[Worker] getter protocol +[Worker] getter search +[Worker] method constructor +[Worker] method toString +[Worker] interface WorkerNavigator +[Worker] attribute @@toStringTag +[Worker] getter appCodeName +[Worker] getter appName +[Worker] getter appVersion +[Worker] getter budget +[Worker] getter connection +[Worker] getter hardwareConcurrency +[Worker] getter onLine +[Worker] getter permissions +[Worker] getter platform +[Worker] getter product +[Worker] getter storage +[Worker] getter userAgent +[Worker] method constructor +[Worker] interface WritableStream +[Worker] getter locked +[Worker] method abort +[Worker] method constructor +[Worker] method getWriter +[Worker] interface XMLHttpRequest : XMLHttpRequestEventTarget +[Worker] attribute @@toStringTag +[Worker] attribute DONE +[Worker] attribute HEADERS_RECEIVED +[Worker] attribute LOADING +[Worker] attribute OPENED +[Worker] attribute UNSENT +[Worker] getter onreadystatechange +[Worker] getter readyState +[Worker] getter response +[Worker] getter responseText +[Worker] getter responseType +[Worker] getter responseURL +[Worker] getter responseXML +[Worker] getter status +[Worker] getter statusText +[Worker] getter timeout +[Worker] getter upload +[Worker] getter withCredentials +[Worker] method abort +[Worker] method constructor +[Worker] method getAllResponseHeaders +[Worker] method getResponseHeader +[Worker] method open +[Worker] method overrideMimeType +[Worker] method send +[Worker] method setRequestHeader +[Worker] setter onreadystatechange +[Worker] setter responseType +[Worker] setter timeout +[Worker] setter withCredentials +[Worker] interface XMLHttpRequestEventTarget : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter onabort +[Worker] getter onerror +[Worker] getter onload +[Worker] getter onloadend +[Worker] getter onloadstart +[Worker] getter onprogress +[Worker] getter ontimeout +[Worker] method constructor +[Worker] setter onabort +[Worker] setter onerror +[Worker] setter onload +[Worker] setter onloadend +[Worker] setter onloadstart +[Worker] setter onprogress +[Worker] setter ontimeout +[Worker] interface XMLHttpRequestUpload : XMLHttpRequestEventTarget +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] [GLOBAL OBJECT] +[Worker] attribute console +[Worker] attribute internals +[Worker] getter onmessage +[Worker] method close +[Worker] method gc +[Worker] method postMessage +[Worker] method webkitRequestFileSystem +[Worker] method webkitRequestFileSystemSync +[Worker] method webkitResolveLocalFileSystemSyncURL +[Worker] method webkitResolveLocalFileSystemURL +[Worker] setter onmessage +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt new file mode 100644 index 0000000..155cbd5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt
@@ -0,0 +1,9164 @@ +CONSOLE WARNING: line 95: 'webkitURL' is deprecated. Please use 'URL' instead. +This test documents all interface attributes and methods on the global window object and element instances. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +[INTERFACES] +interface AbsoluteOrientationSensor : OrientationSensor + attribute @@toStringTag + method constructor +interface Accelerometer : Sensor + attribute @@toStringTag + getter x + getter y + getter z + method constructor +interface AmbientLightSensor : Sensor + attribute @@toStringTag + getter illuminance + method constructor +interface AnalyserNode : AudioNode + attribute @@toStringTag + getter fftSize + getter frequencyBinCount + getter maxDecibels + getter minDecibels + getter smoothingTimeConstant + method constructor + method getByteFrequencyData + method getByteTimeDomainData + method getFloatFrequencyData + method getFloatTimeDomainData + setter fftSize + setter maxDecibels + setter minDecibels + setter smoothingTimeConstant +interface AnimationEffectReadOnly + attribute @@toStringTag + getter timing + method constructor + method getComputedTiming +interface AnimationEffectTiming : AnimationEffectTimingReadOnly + attribute @@toStringTag + getter delay + getter direction + getter duration + getter easing + getter endDelay + getter fill + getter iterationStart + getter iterations + method constructor + setter delay + setter direction + setter duration + setter easing + setter endDelay + setter fill + setter iterationStart + setter iterations +interface AnimationEffectTimingReadOnly + attribute @@toStringTag + getter delay + getter direction + getter duration + getter easing + getter endDelay + getter fill + getter iterationStart + getter iterations + method constructor +interface AnimationEvent : Event + attribute @@toStringTag + getter animationName + getter elapsedTime + method constructor +interface AnimationPlaybackEvent : Event + attribute @@toStringTag + getter currentTime + getter timelineTime + method constructor +interface AnimationTimeline + attribute @@toStringTag + getter currentTime + method constructor + method getAnimations + setter currentTime +interface AppBannerPromptResult + attribute @@toStringTag + getter outcome + getter platform + method constructor +interface ApplicationCache : EventTarget + attribute @@toStringTag + attribute CHECKING + attribute DOWNLOADING + attribute IDLE + attribute OBSOLETE + attribute UNCACHED + attribute UPDATEREADY + getter oncached + getter onchecking + getter ondownloading + getter onerror + getter onnoupdate + getter onobsolete + getter onprogress + getter onupdateready + getter status + method abort + method constructor + method swapCache + method update + setter oncached + setter onchecking + setter ondownloading + setter onerror + setter onnoupdate + setter onobsolete + setter onprogress + setter onupdateready +interface ApplicationCacheErrorEvent : Event + attribute @@toStringTag + getter message + getter reason + getter status + getter url + method constructor +interface Attr : Node + attribute @@toStringTag + getter localName + getter name + getter namespaceURI + getter ownerElement + getter prefix + getter specified + getter value + method constructor + setter value +interface Audio + attribute @@toStringTag + method constructor +interface AudioBuffer + attribute @@toStringTag + getter duration + getter length + getter numberOfChannels + getter sampleRate + method constructor + method copyFromChannel + method copyToChannel + method getChannelData +interface AudioBufferSourceNode : AudioScheduledSourceNode + attribute @@toStringTag + getter buffer + getter detune + getter loop + getter loopEnd + getter loopStart + getter playbackRate + method constructor + method start + setter buffer + setter loop + setter loopEnd + setter loopStart +interface AudioContext : BaseAudioContext + attribute @@toStringTag + getter baseLatency + method close + method constructor + method getOutputTimestamp + method suspend +interface AudioDestinationNode : AudioNode + attribute @@toStringTag + getter maxChannelCount + method constructor +interface AudioListener + attribute @@toStringTag + getter forwardX + getter forwardY + getter forwardZ + getter positionX + getter positionY + getter positionZ + getter upX + getter upY + getter upZ + method constructor + method setOrientation + method setPosition +interface AudioNode : EventTarget + attribute @@toStringTag + getter channelCount + getter channelCountMode + getter channelInterpretation + getter context + getter numberOfInputs + getter numberOfOutputs + method connect + method constructor + method disconnect + setter channelCount + setter channelCountMode + setter channelInterpretation +interface AudioParam + attribute @@toStringTag + getter defaultValue + getter maxValue + getter minValue + getter value + method cancelAndHoldAtTime + method cancelScheduledValues + method constructor + method exponentialRampToValueAtTime + method linearRampToValueAtTime + method setTargetAtTime + method setValueAtTime + method setValueCurveAtTime + setter value +interface AudioProcessingEvent : Event + attribute @@toStringTag + getter inputBuffer + getter outputBuffer + getter playbackTime + method constructor +interface AudioScheduledSourceNode : AudioNode + attribute @@toStringTag + getter onended + method constructor + method start + method stop + setter onended +interface AudioTrack + attribute @@toStringTag + getter enabled + getter id + getter kind + getter label + getter language + getter sourceBuffer + method constructor + setter enabled +interface AudioTrackList : EventTarget + attribute @@toStringTag + getter length + getter onaddtrack + getter onchange + getter onremovetrack + method @@iterator + method constructor + method getTrackById + setter onaddtrack + setter onchange + setter onremovetrack +interface AuthenticationAssertion + attribute @@toStringTag + getter authenticatorData + getter clientData + getter credential + getter signature + method constructor +interface BackgroundFetchFetch + attribute @@toStringTag + getter request + method constructor +interface BackgroundFetchManager + attribute @@toStringTag + method constructor + method fetch + method get + method getTags +interface BackgroundFetchRegistration + attribute @@toStringTag + getter icons + getter tag + getter title + getter totalDownloadSize + method abort + method constructor +interface BarProp + attribute @@toStringTag + getter visible + method constructor +interface BarcodeDetector + attribute @@toStringTag + method constructor + method detect +interface BaseAudioContext : EventTarget + attribute @@toStringTag + getter currentTime + getter destination + getter listener + getter onstatechange + getter sampleRate + getter state + method constructor + method createAnalyser + method createBiquadFilter + method createBuffer + method createBufferSource + method createChannelMerger + method createChannelSplitter + method createConstantSource + method createConvolver + method createDelay + method createDynamicsCompressor + method createGain + method createIIRFilter + method createMediaElementSource + method createMediaStreamDestination + method createMediaStreamSource + method createOscillator + method createPanner + method createPeriodicWave + method createScriptProcessor + method createStereoPanner + method createWaveShaper + method decodeAudioData + method resume + setter onstatechange +interface BatteryManager : EventTarget + attribute @@toStringTag + getter charging + getter chargingTime + getter dischargingTime + getter level + getter onchargingchange + getter onchargingtimechange + getter ondischargingtimechange + getter onlevelchange + method constructor + setter onchargingchange + setter onchargingtimechange + setter ondischargingtimechange + setter onlevelchange +interface BeforeInstallPromptEvent : Event + attribute @@toStringTag + getter platforms + getter userChoice + method constructor + method prompt +interface BeforeUnloadEvent : Event + attribute @@toStringTag + getter returnValue + method constructor + setter returnValue +interface BiquadFilterNode : AudioNode + attribute @@toStringTag + getter Q + getter detune + getter frequency + getter gain + getter type + method constructor + method getFrequencyResponse + setter type +interface Blob + attribute @@toStringTag + getter isClosed + getter size + getter type + method close + method constructor + method slice +interface BlobEvent : Event + attribute @@toStringTag + getter data + getter timecode + method constructor +interface Bluetooth + attribute @@toStringTag + method constructor + method requestDevice +interface BluetoothCharacteristicProperties + attribute @@toStringTag + getter authenticatedSignedWrites + getter broadcast + getter indicate + getter notify + getter read + getter reliableWrite + getter writableAuxiliaries + getter write + getter writeWithoutResponse + method constructor +interface BluetoothDevice : EventTarget + attribute @@toStringTag + getter gatt + getter id + getter name + getter ongattserverdisconnected + method constructor + setter ongattserverdisconnected +interface BluetoothRemoteGATTCharacteristic : EventTarget + attribute @@toStringTag + getter oncharacteristicvaluechanged + getter properties + getter service + getter uuid + getter value + method constructor + method getDescriptor + method getDescriptors + method readValue + method startNotifications + method stopNotifications + method writeValue + setter oncharacteristicvaluechanged +interface BluetoothRemoteGATTDescriptor + attribute @@toStringTag + getter characteristic + getter uuid + getter value + method constructor + method readValue + method writeValue +interface BluetoothRemoteGATTServer + attribute @@toStringTag + getter connected + getter device + method connect + method constructor + method disconnect + method getPrimaryService + method getPrimaryServices +interface BluetoothRemoteGATTService + attribute @@toStringTag + getter device + getter isPrimary + getter uuid + method constructor + method getCharacteristic + method getCharacteristics +interface BluetoothUUID + static method canonicalUUID + static method getCharacteristic + static method getDescriptor + static method getService + attribute @@toStringTag + method constructor +interface BroadcastChannel : EventTarget + attribute @@toStringTag + getter name + getter onmessage + method close + method constructor + method postMessage + setter onmessage +interface BudgetService + attribute @@toStringTag + method constructor + method getBudget + method getCost + method reserve +interface BudgetState + attribute @@toStringTag + getter budgetAt + getter time + method constructor +interface ByteLengthQueuingStrategy + method constructor + method size +interface CDATASection : Text + attribute @@toStringTag + method constructor +interface CSS + static method escape + static method registerProperty + static method supports + attribute @@toStringTag + method constructor +interface CSSAngleValue : CSSStyleValue + attribute @@toStringTag + getter degrees + getter gradians + getter radians + getter turns + method constructor +interface CSSCalcLength : CSSLengthValue + attribute @@toStringTag + getter ch + getter cm + getter em + getter ex + getter in + getter mm + getter pc + getter percent + getter pt + getter px + getter rem + getter vh + getter vmax + getter vmin + getter vw + method constructor +interface CSSConditionRule : CSSGroupingRule + attribute @@toStringTag + getter conditionText + method constructor +interface CSSFontFaceRule : CSSRule + attribute @@toStringTag + getter style + method constructor +interface CSSGroupingRule : CSSRule + attribute @@toStringTag + getter cssRules + method constructor + method deleteRule + method insertRule +interface CSSImageValue : CSSResourceValue + attribute @@toStringTag + getter intrinsicHeight + getter intrinsicRatio + getter intrinsicWidth + method constructor +interface CSSImportRule : CSSRule + attribute @@toStringTag + getter href + getter media + getter styleSheet + method constructor +interface CSSKeyframeRule : CSSRule + attribute @@toStringTag + getter keyText + getter style + method constructor + setter keyText +interface CSSKeyframesRule : CSSRule + attribute @@toStringTag + getter cssRules + getter name + method appendRule + method constructor + method deleteRule + method findRule + setter name +interface CSSKeywordValue : CSSStyleValue + attribute @@toStringTag + getter keywordValue + method constructor +interface CSSLengthValue : CSSStyleValue + static method from + attribute @@toStringTag + method add + method constructor + method divide + method multiply + method subtract +interface CSSMatrixComponent : CSSTransformComponent + attribute @@toStringTag + getter a + getter b + getter c + getter d + getter e + getter f + getter m11 + getter m12 + getter m13 + getter m14 + getter m21 + getter m22 + getter m23 + getter m24 + getter m31 + getter m32 + getter m33 + getter m34 + getter m41 + getter m42 + getter m43 + getter m44 + method constructor +interface CSSMediaRule : CSSConditionRule + attribute @@toStringTag + getter media + method constructor +interface CSSNamespaceRule : CSSRule + attribute @@toStringTag + getter namespaceURI + getter prefix + method constructor +interface CSSNumberValue : CSSStyleValue + attribute @@toStringTag + getter value + method constructor +interface CSSNumericValue : CSSStyleValue + attribute @@toStringTag + method add + method constructor + method div + method mul + method sub + method to +interface CSSPageRule : CSSRule + attribute @@toStringTag + getter selectorText + getter style + method constructor + setter selectorText +interface CSSPerspective : CSSTransformComponent + attribute @@toStringTag + getter length + method constructor +interface CSSPositionValue : CSSStyleValue + attribute @@toStringTag + getter x + getter y + method constructor +interface CSSResourceValue : CSSStyleValue + attribute @@toStringTag + getter state + method constructor +interface CSSRotation : CSSTransformComponent + attribute @@toStringTag + getter angle + getter x + getter y + getter z + method constructor +interface CSSRule + attribute @@toStringTag + attribute CHARSET_RULE + attribute FONT_FACE_RULE + attribute IMPORT_RULE + attribute KEYFRAMES_RULE + attribute KEYFRAME_RULE + attribute MEDIA_RULE + attribute NAMESPACE_RULE + attribute PAGE_RULE + attribute STYLE_RULE + attribute SUPPORTS_RULE + attribute VIEWPORT_RULE + attribute WEBKIT_KEYFRAMES_RULE + attribute WEBKIT_KEYFRAME_RULE + getter cssText + getter parentRule + getter parentStyleSheet + getter type + method constructor + setter cssText +interface CSSRuleList + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item +interface CSSScale : CSSTransformComponent + attribute @@toStringTag + getter x + getter y + getter z + method constructor +interface CSSSimpleLength : CSSLengthValue + attribute @@toStringTag + getter type + getter value + method constructor +interface CSSSkew : CSSTransformComponent + attribute @@toStringTag + getter ax + getter ay + method constructor +interface CSSStyleDeclaration + attribute @@toStringTag + getter cssFloat + getter cssText + getter length + getter parentRule + method @@iterator + method constructor + method getPropertyPriority + method getPropertyValue + method item + method removeProperty + method setProperty + setter cssFloat + setter cssText +interface CSSStyleRule : CSSRule + attribute @@toStringTag + getter selectorText + getter style + method constructor + setter selectorText + setter style +interface CSSStyleSheet : StyleSheet + attribute @@toStringTag + getter cssRules + getter ownerRule + getter rules + method addRule + method constructor + method deleteRule + method insertRule + method removeRule +interface CSSStyleValue + static method parse + attribute @@toStringTag + getter cssText + method constructor +interface CSSSupportsRule : CSSConditionRule + attribute @@toStringTag + method constructor +interface CSSTransformComponent + attribute @@toStringTag + getter cssText + method asMatrix + method constructor + method is2D +interface CSSTransformValue : CSSStyleValue + attribute @@toStringTag + getter length + method @@iterator + method constructor + method entries + method forEach + method is2D + method keys + method values +interface CSSTranslation : CSSTransformComponent + attribute @@toStringTag + getter x + getter y + getter z + method constructor +interface CSSURLImageValue : CSSImageValue + attribute @@toStringTag + getter url + method constructor +interface CSSUnitValue : CSSNumericValue + attribute @@toStringTag + getter type + getter unit + getter value + method constructor + setter unit + setter value +interface CSSUnparsedValue : CSSStyleValue + attribute @@toStringTag + getter length + method @@iterator + method constructor + method entries + method forEach + method keys + method values +interface CSSVariableReferenceValue + attribute @@toStringTag + getter fallback + getter variable + method constructor +interface CSSViewportRule : CSSRule + attribute @@toStringTag + getter style + method constructor +interface Cache + attribute @@toStringTag + method add + method addAll + method constructor + method delete + method keys + method match + method matchAll + method put +interface CacheStorage + attribute @@toStringTag + method constructor + method delete + method has + method keys + method match + method open +interface CanvasCaptureMediaStreamTrack : MediaStreamTrack + attribute @@toStringTag + getter canvas + method constructor + method requestFrame +interface CanvasGradient + attribute @@toStringTag + method addColorStop + method constructor +interface CanvasPattern + attribute @@toStringTag + method constructor + method setTransform +interface CanvasRenderingContext2D + attribute @@toStringTag + getter canvas + getter currentTransform + getter direction + getter fillStyle + getter filter + getter font + getter globalAlpha + getter globalCompositeOperation + getter imageSmoothingEnabled + getter imageSmoothingQuality + getter lineCap + getter lineDashOffset + getter lineJoin + getter lineWidth + getter miterLimit + getter shadowBlur + getter shadowColor + getter shadowOffsetX + getter shadowOffsetY + getter strokeStyle + getter textAlign + getter textBaseline + method addHitRegion + method arc + method arcTo + method beginPath + method bezierCurveTo + method clearHitRegions + method clearRect + method clip + method closePath + method constructor + method createImageData + method createLinearGradient + method createPattern + method createRadialGradient + method drawFocusIfNeeded + method drawImage + method ellipse + method fill + method fillRect + method fillText + method getContextAttributes + method getImageData + method getLineDash + method isContextLost + method isPointInPath + method isPointInStroke + method lineTo + method measureText + method moveTo + method putImageData + method quadraticCurveTo + method rect + method removeHitRegion + method resetTransform + method restore + method rotate + method save + method scale + method scrollPathIntoView + method setLineDash + method setTransform + method stroke + method strokeRect + method strokeText + method transform + method translate + setter currentTransform + setter direction + setter fillStyle + setter filter + setter font + setter globalAlpha + setter globalCompositeOperation + setter imageSmoothingEnabled + setter imageSmoothingQuality + setter lineCap + setter lineDashOffset + setter lineJoin + setter lineWidth + setter miterLimit + setter shadowBlur + setter shadowColor + setter shadowOffsetX + setter shadowOffsetY + setter strokeStyle + setter textAlign + setter textBaseline +interface ChannelMergerNode : AudioNode + attribute @@toStringTag + method constructor +interface ChannelSplitterNode : AudioNode + attribute @@toStringTag + method constructor +interface CharacterData : Node + attribute @@toStringTag + attribute @@unscopables + getter data + getter length + getter nextElementSibling + getter previousElementSibling + method after + method appendData + method before + method constructor + method deleteData + method insertData + method remove + method replaceData + method replaceWith + method substringData + setter data +interface ClientRect + attribute @@toStringTag + getter bottom + getter height + getter left + getter right + getter top + getter width + method constructor +interface ClientRectList + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item +interface ClipboardEvent : Event + attribute @@toStringTag + getter clipboardData + method constructor +interface CloseEvent : Event + attribute @@toStringTag + getter code + getter reason + getter wasClean + method constructor +interface Comment : CharacterData + attribute @@toStringTag + method constructor +interface CompositionEvent : UIEvent + attribute @@toStringTag + getter data + method constructor + method initCompositionEvent +interface CompositorProxy + attribute @@toStringTag + getter initialized + getter opacity + getter scrollLeft + getter scrollTop + getter transform + method constructor + method disconnect + method supports + setter opacity + setter scrollLeft + setter scrollTop + setter transform +interface CompositorWorker : EventTarget + attribute @@toStringTag + getter onerror + getter onmessage + method constructor + method postMessage + method terminate + setter onerror + setter onmessage +interface ConstantSourceNode : AudioScheduledSourceNode + attribute @@toStringTag + getter offset + method constructor +interface ConvolverNode : AudioNode + attribute @@toStringTag + getter buffer + getter normalize + method constructor + setter buffer + setter normalize +interface CountQueuingStrategy + method constructor + method size +interface Credential + attribute @@toStringTag + getter id + getter type + method constructor +interface CredentialsContainer + attribute @@toStringTag + method constructor + method get + method requireUserMediation + method store +interface Crypto + attribute @@toStringTag + getter subtle + method constructor + method getRandomValues +interface CryptoKey + attribute @@toStringTag + getter algorithm + getter extractable + getter type + getter usages + method constructor +interface CustomElementRegistry + attribute @@toStringTag + method constructor + method define + method get + method whenDefined +interface CustomEvent : Event + attribute @@toStringTag + getter detail + method constructor + method initCustomEvent +interface DOMError + attribute @@toStringTag + getter message + getter name + method constructor +interface DOMException + attribute @@toStringTag + attribute ABORT_ERR + attribute DATA_CLONE_ERR + attribute DOMSTRING_SIZE_ERR + attribute HIERARCHY_REQUEST_ERR + attribute INDEX_SIZE_ERR + attribute INUSE_ATTRIBUTE_ERR + attribute INVALID_ACCESS_ERR + attribute INVALID_CHARACTER_ERR + attribute INVALID_MODIFICATION_ERR + attribute INVALID_NODE_TYPE_ERR + attribute INVALID_STATE_ERR + attribute NAMESPACE_ERR + attribute NETWORK_ERR + attribute NOT_FOUND_ERR + attribute NOT_SUPPORTED_ERR + attribute NO_DATA_ALLOWED_ERR + attribute NO_MODIFICATION_ALLOWED_ERR + attribute QUOTA_EXCEEDED_ERR + attribute SECURITY_ERR + attribute SYNTAX_ERR + attribute TIMEOUT_ERR + attribute TYPE_MISMATCH_ERR + attribute URL_MISMATCH_ERR + attribute VALIDATION_ERR + attribute WRONG_DOCUMENT_ERR + getter code + getter message + getter name + method constructor + method toString +interface DOMImplementation + attribute @@toStringTag + method constructor + method createDocument + method createDocumentType + method createHTMLDocument + method hasFeature +interface DOMMatrix : DOMMatrixReadOnly + attribute @@toStringTag + getter a + getter b + getter c + getter d + getter e + getter f + getter m11 + getter m12 + getter m13 + getter m14 + getter m21 + getter m22 + getter m23 + getter m24 + getter m31 + getter m32 + getter m33 + getter m34 + getter m41 + getter m42 + getter m43 + getter m44 + method constructor + method invertSelf + method multiplySelf + method preMultiplySelf + method rotateAxisAngleSelf + method rotateFromVectorSelf + method rotateSelf + method scale3dSelf + method scaleSelf + method setMatrixValue + method skewXSelf + method skewYSelf + method translateSelf + setter a + setter b + setter c + setter d + setter e + setter f + setter m11 + setter m12 + setter m13 + setter m14 + setter m21 + setter m22 + setter m23 + setter m24 + setter m31 + setter m32 + setter m33 + setter m34 + setter m41 + setter m42 + setter m43 + setter m44 +interface DOMMatrixReadOnly + static method fromFloat32Array + static method fromFloat64Array + static method fromMatrix + attribute @@toStringTag + getter a + getter b + getter c + getter d + getter e + getter f + getter is2D + getter isIdentity + getter m11 + getter m12 + getter m13 + getter m14 + getter m21 + getter m22 + getter m23 + getter m24 + getter m31 + getter m32 + getter m33 + getter m34 + getter m41 + getter m42 + getter m43 + getter m44 + method constructor + method flipX + method flipY + method inverse + method multiply + method rotate + method rotateAxisAngle + method rotateFromVector + method scale + method scale3d + method skewX + method skewY + method toFloat32Array + method toFloat64Array + method toJSON + method toString + method transformPoint + method translate +interface DOMParser + attribute @@toStringTag + method constructor + method parseFromString +interface DOMPoint : DOMPointReadOnly + attribute @@toStringTag + getter w + getter x + getter y + getter z + method constructor + setter w + setter x + setter y + setter z +interface DOMPointReadOnly + static method fromPoint + attribute @@toStringTag + getter w + getter x + getter y + getter z + method constructor + method matrixTransform + method toJSON +interface DOMQuad + static method fromQuad + static method fromRect + attribute @@toStringTag + getter p1 + getter p2 + getter p3 + getter p4 + method constructor + method getBounds + method toJSON +interface DOMRect : DOMRectReadOnly + attribute @@toStringTag + getter height + getter width + getter x + getter y + method constructor + setter height + setter width + setter x + setter y +interface DOMRectReadOnly + static method fromRect + attribute @@toStringTag + getter bottom + getter height + getter left + getter right + getter top + getter width + getter x + getter y + method constructor + method toJSON +interface DOMStringList + attribute @@toStringTag + getter length + method @@iterator + method constructor + method contains + method item +interface DOMStringMap + attribute @@toStringTag + method constructor +interface DOMTokenList + attribute @@toStringTag + getter length + getter value + method @@iterator + method add + method constructor + method contains + method entries + method forEach + method item + method keys + method remove + method supports + method toString + method toggle + method values + setter value +interface DataTransfer + attribute @@toStringTag + getter dropEffect + getter effectAllowed + getter files + getter items + getter types + method clearData + method constructor + method getData + method setData + method setDragImage + setter dropEffect + setter effectAllowed +interface DataTransferItem + attribute @@toStringTag + getter kind + getter type + method constructor + method getAsFile + method getAsString + method webkitGetAsEntry +interface DataTransferItemList + attribute @@toStringTag + getter length + method @@iterator + method add + method clear + method constructor + method remove +interface DataView + attribute @@toStringTag + getter buffer + getter byteLength + getter byteOffset + method constructor + method getFloat32 + method getFloat64 + method getInt16 + method getInt32 + method getInt8 + method getUint16 + method getUint32 + method getUint8 + method setFloat32 + method setFloat64 + method setInt16 + method setInt32 + method setInt8 + method setUint16 + method setUint32 + method setUint8 +interface DelayNode : AudioNode + attribute @@toStringTag + getter delayTime + method constructor +interface DetectedBarcode + attribute @@toStringTag + getter boundingBox + getter cornerPoints + getter rawValue + method constructor +interface DetectedFace + attribute @@toStringTag + getter boundingBox + method constructor +interface DetectedText + attribute @@toStringTag + getter boundingBox + getter rawValue + method constructor +interface DeviceLightEvent : Event + attribute @@toStringTag + getter value + method constructor +interface DeviceMotionEvent : Event + attribute @@toStringTag + getter acceleration + getter accelerationIncludingGravity + getter interval + getter rotationRate + method constructor +interface DeviceOrientationEvent : Event + attribute @@toStringTag + getter absolute + getter alpha + getter beta + getter gamma + method constructor +interface Document : Node + attribute @@toStringTag + attribute @@unscopables + getter URL + getter activeElement + getter addressSpace + getter anchors + getter applets + getter body + getter characterSet + getter charset + getter childElementCount + getter children + getter compatMode + getter contentType + getter cookie + getter currentScript + getter defaultView + getter designMode + getter dir + getter doctype + getter documentElement + getter documentURI + getter domain + getter embeds + getter firstElementChild + getter fonts + getter forms + getter fullscreenElement + getter fullscreenEnabled + getter head + getter hidden + getter images + getter implementation + getter inputEncoding + getter lastElementChild + getter lastModified + getter links + getter onabort + getter onauxclick + getter onbeforecopy + getter onbeforecut + getter onbeforepaste + getter onblur + getter oncancel + getter oncanplay + getter oncanplaythrough + getter onchange + getter onclick + getter onclose + getter oncontextmenu + getter oncopy + getter oncuechange + getter oncut + getter ondblclick + getter ondrag + getter ondragend + getter ondragenter + getter ondragleave + getter ondragover + getter ondragstart + getter ondrop + getter ondurationchange + getter onemptied + getter onended + getter onerror + getter onfocus + getter onfullscreenchange + getter onfullscreenerror + getter ongotpointercapture + getter oninput + getter oninvalid + getter onkeydown + getter onkeypress + getter onkeyup + getter onload + getter onloadeddata + getter onloadedmetadata + getter onloadstart + getter onlostpointercapture + getter onmousedown + getter onmouseenter + getter onmouseleave + getter onmousemove + getter onmouseout + getter onmouseover + getter onmouseup + getter onmousewheel + getter onpaste + getter onpause + getter onplay + getter onplaying + getter onpointercancel + getter onpointerdown + getter onpointerenter + getter onpointerleave + getter onpointerlockchange + getter onpointerlockerror + getter onpointermove + getter onpointerout + getter onpointerover + getter onpointerup + getter onprogress + getter onratechange + getter onreadystatechange + getter onreset + getter onresize + getter onscroll + getter onsearch + getter onsecuritypolicyviolation + getter onseeked + getter onseeking + getter onselect + getter onselectionchange + getter onselectstart + getter onshow + getter onstalled + getter onsubmit + getter onsuspend + getter ontimeupdate + getter ontoggle + getter ontouchcancel + getter ontouchend + getter ontouchmove + getter ontouchstart + getter onvolumechange + getter onwaiting + getter onwebkitfullscreenchange + getter onwebkitfullscreenerror + getter onwheel + getter origin + getter plugins + getter pointerLockElement + getter preferredStylesheetSet + getter readyState + getter referrer + getter rootElement + getter rootScroller + getter scripts + getter scrollingElement + getter selectedStylesheetSet + getter styleSheets + getter suborigin + getter timeline + getter title + getter visibilityState + getter webkitCurrentFullScreenElement + getter webkitFullscreenElement + getter webkitFullscreenEnabled + getter webkitHidden + getter webkitIsFullScreen + getter webkitVisibilityState + getter xmlEncoding + getter xmlStandalone + getter xmlVersion + method adoptNode + method append + method caretRangeFromPoint + method close + method constructor + method createAttribute + method createAttributeNS + method createCDATASection + method createComment + method createDocumentFragment + method createElement + method createElementNS + method createEvent + method createExpression + method createNSResolver + method createNodeIterator + method createProcessingInstruction + method createRange + method createTextNode + method createTouch + method createTouchList + method createTreeWalker + method elementFromPoint + method elementsFromPoint + method evaluate + method execCommand + method exitFullscreen + method exitPointerLock + method getElementById + method getElementsByClassName + method getElementsByName + method getElementsByTagName + method getElementsByTagNameNS + method getSelection + method hasFocus + method importNode + method open + method prepend + method queryCommandEnabled + method queryCommandIndeterm + method queryCommandState + method queryCommandSupported + method queryCommandValue + method querySelector + method querySelectorAll + method registerElement + method webkitCancelFullScreen + method webkitExitFullscreen + method write + method writeln + setter body + setter cookie + setter designMode + setter dir + setter domain + setter onabort + setter onauxclick + setter onbeforecopy + setter onbeforecut + setter onbeforepaste + setter onblur + setter oncancel + setter oncanplay + setter oncanplaythrough + setter onchange + setter onclick + setter onclose + setter oncontextmenu + setter oncopy + setter oncuechange + setter oncut + setter ondblclick + setter ondrag + setter ondragend + setter ondragenter + setter ondragleave + setter ondragover + setter ondragstart + setter ondrop + setter ondurationchange + setter onemptied + setter onended + setter onerror + setter onfocus + setter onfullscreenchange + setter onfullscreenerror + setter ongotpointercapture + setter oninput + setter oninvalid + setter onkeydown + setter onkeypress + setter onkeyup + setter onload + setter onloadeddata + setter onloadedmetadata + setter onloadstart + setter onlostpointercapture + setter onmousedown + setter onmouseenter + setter onmouseleave + setter onmousemove + setter onmouseout + setter onmouseover + setter onmouseup + setter onmousewheel + setter onpaste + setter onpause + setter onplay + setter onplaying + setter onpointercancel + setter onpointerdown + setter onpointerenter + setter onpointerleave + setter onpointerlockchange + setter onpointerlockerror + setter onpointermove + setter onpointerout + setter onpointerover + setter onpointerup + setter onprogress + setter onratechange + setter onreadystatechange + setter onreset + setter onresize + setter onscroll + setter onsearch + setter onsecuritypolicyviolation + setter onseeked + setter onseeking + setter onselect + setter onselectionchange + setter onselectstart + setter onshow + setter onstalled + setter onsubmit + setter onsuspend + setter ontimeupdate + setter ontoggle + setter ontouchcancel + setter ontouchend + setter ontouchmove + setter ontouchstart + setter onvolumechange + setter onwaiting + setter onwebkitfullscreenchange + setter onwebkitfullscreenerror + setter onwheel + setter rootScroller + setter selectedStylesheetSet + setter title + setter xmlStandalone + setter xmlVersion +interface DocumentFragment : Node + attribute @@toStringTag + attribute @@unscopables + getter childElementCount + getter children + getter firstElementChild + getter lastElementChild + method append + method constructor + method getElementById + method prepend + method querySelector + method querySelectorAll +interface DocumentTimeline : AnimationTimeline + attribute @@toStringTag + method constructor +interface DocumentType : Node + attribute @@toStringTag + attribute @@unscopables + getter name + getter publicId + getter systemId + method after + method before + method constructor + method remove + method replaceWith +interface DragEvent : MouseEvent + attribute @@toStringTag + getter dataTransfer + method constructor +interface DynamicsCompressorNode : AudioNode + attribute @@toStringTag + getter attack + getter knee + getter ratio + getter reduction + getter release + getter threshold + method constructor +interface Element : Node + attribute @@toStringTag + attribute @@unscopables + getter assignedSlot + getter attributes + getter childElementCount + getter children + getter classList + getter className + getter clientHeight + getter clientLeft + getter clientTop + getter clientWidth + getter computedName + getter computedRole + getter firstElementChild + getter id + getter innerHTML + getter lastElementChild + getter localName + getter namespaceURI + getter nextElementSibling + getter onbeforecopy + getter onbeforecut + getter onbeforepaste + getter oncopy + getter oncut + getter onpaste + getter onsearch + getter onselectstart + getter onwebkitfullscreenchange + getter onwebkitfullscreenerror + getter onwheel + getter outerHTML + getter prefix + getter previousElementSibling + getter scrollHeight + getter scrollLeft + getter scrollTop + getter scrollWidth + getter shadowRoot + getter slot + getter styleMap + getter tagName + method after + method animate + method append + method attachShadow + method before + method closest + method constructor + method createShadowRoot + method getAnimations + method getAttribute + method getAttributeNS + method getAttributeNode + method getAttributeNodeNS + method getBoundingClientRect + method getClientRects + method getDestinationInsertionPoints + method getElementsByClassName + method getElementsByTagName + method getElementsByTagNameNS + method hasAttribute + method hasAttributeNS + method hasAttributes + method hasPointerCapture + method insertAdjacentElement + method insertAdjacentHTML + method insertAdjacentText + method matches + method prepend + method querySelector + method querySelectorAll + method releasePointerCapture + method remove + method removeAttribute + method removeAttributeNS + method removeAttributeNode + method replaceWith + method requestFullscreen + method requestPointerLock + method scroll + method scrollBy + method scrollIntoView + method scrollIntoViewIfNeeded + method scrollTo + method setAttribute + method setAttributeNS + method setAttributeNode + method setAttributeNodeNS + method setPointerCapture + method webkitMatchesSelector + method webkitRequestFullScreen + method webkitRequestFullscreen + setter classList + setter className + setter id + setter innerHTML + setter onbeforecopy + setter onbeforecut + setter onbeforepaste + setter oncopy + setter oncut + setter onpaste + setter onsearch + setter onselectstart + setter onwebkitfullscreenchange + setter onwebkitfullscreenerror + setter onwheel + setter outerHTML + setter scrollLeft + setter scrollTop + setter slot +interface ErrorEvent : Event + attribute @@toStringTag + getter colno + getter error + getter filename + getter lineno + getter message + method constructor +interface Event + attribute @@toStringTag + attribute AT_TARGET + attribute BUBBLING_PHASE + attribute CAPTURING_PHASE + attribute NONE + getter bubbles + getter cancelBubble + getter cancelable + getter composed + getter currentTarget + getter defaultPrevented + getter eventPhase + getter path + getter returnValue + getter srcElement + getter target + getter timeStamp + getter type + method composedPath + method constructor + method initEvent + method preventDefault + method stopImmediatePropagation + method stopPropagation + setter cancelBubble + setter returnValue +interface EventSource : EventTarget + attribute @@toStringTag + attribute CLOSED + attribute CONNECTING + attribute OPEN + getter onerror + getter onmessage + getter onopen + getter readyState + getter url + getter withCredentials + method close + method constructor + setter onerror + setter onmessage + setter onopen +interface EventTarget + attribute @@toStringTag + method addEventListener + method constructor + method dispatchEvent + method removeEventListener +interface FaceDetector + attribute @@toStringTag + method constructor + method detect +interface FederatedCredential : SiteBoundCredential + attribute @@toStringTag + getter protocol + getter provider + method constructor +interface File : Blob + attribute @@toStringTag + getter lastModified + getter lastModifiedDate + getter name + getter webkitRelativePath + method constructor +interface FileList + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item +interface FileReader : EventTarget + attribute @@toStringTag + attribute DONE + attribute EMPTY + attribute LOADING + getter error + getter onabort + getter onerror + getter onload + getter onloadend + getter onloadstart + getter onprogress + getter readyState + getter result + method abort + method constructor + method readAsArrayBuffer + method readAsBinaryString + method readAsDataURL + method readAsText + setter onabort + setter onerror + setter onload + setter onloadend + setter onloadstart + setter onprogress +interface FocusEvent : UIEvent + attribute @@toStringTag + getter relatedTarget + method constructor +interface FontFace + attribute @@toStringTag + getter display + getter family + getter featureSettings + getter loaded + getter status + getter stretch + getter style + getter unicodeRange + getter variant + getter weight + method constructor + method load + setter display + setter family + setter featureSettings + setter stretch + setter style + setter unicodeRange + setter variant + setter weight +interface FontFaceSetLoadEvent : Event + attribute @@toStringTag + getter fontfaces + method constructor +interface FormData + attribute @@toStringTag + method @@iterator + method append + method constructor + method delete + method entries + method forEach + method get + method getAll + method has + method keys + method set + method values +interface GainNode : AudioNode + attribute @@toStringTag + getter gain + method constructor +interface Gamepad + attribute @@toStringTag + getter axes + getter buttons + getter connected + getter displayId + getter hand + getter id + getter index + getter mapping + getter pose + getter timestamp + method constructor +interface GamepadButton + attribute @@toStringTag + getter pressed + getter touched + getter value + method constructor +interface GamepadEvent : Event + attribute @@toStringTag + getter gamepad + method constructor +interface GamepadPose + attribute @@toStringTag + getter angularAcceleration + getter angularVelocity + getter hasOrientation + getter hasPosition + getter linearAcceleration + getter linearVelocity + getter orientation + getter position + method constructor +interface Gyroscope : Sensor + attribute @@toStringTag + getter x + getter y + getter z + method constructor +interface HTMLAllCollection + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item + method namedItem +interface HTMLAnchorElement : HTMLElement + attribute @@toStringTag + getter charset + getter coords + getter download + getter hash + getter host + getter hostname + getter href + getter hreflang + getter name + getter origin + getter password + getter pathname + getter ping + getter port + getter protocol + getter referrerPolicy + getter rel + getter rev + getter search + getter shape + getter target + getter text + getter type + getter username + method constructor + method toString + setter charset + setter coords + setter download + setter hash + setter host + setter hostname + setter href + setter hreflang + setter name + setter password + setter pathname + setter ping + setter port + setter protocol + setter referrerPolicy + setter rel + setter rev + setter search + setter shape + setter target + setter text + setter type + setter username +interface HTMLAreaElement : HTMLElement + attribute @@toStringTag + getter alt + getter coords + getter download + getter hash + getter host + getter hostname + getter href + getter noHref + getter origin + getter password + getter pathname + getter ping + getter port + getter protocol + getter referrerPolicy + getter rel + getter search + getter shape + getter target + getter username + method constructor + method toString + setter alt + setter coords + setter download + setter hash + setter host + setter hostname + setter href + setter noHref + setter password + setter pathname + setter ping + setter port + setter protocol + setter referrerPolicy + setter rel + setter search + setter shape + setter target + setter username +interface HTMLAudioElement : HTMLMediaElement + attribute @@toStringTag + method constructor +interface HTMLBRElement : HTMLElement + attribute @@toStringTag + getter clear + method constructor + setter clear +interface HTMLBaseElement : HTMLElement + attribute @@toStringTag + getter href + getter target + method constructor + setter href + setter target +interface HTMLBodyElement : HTMLElement + attribute @@toStringTag + getter aLink + getter background + getter bgColor + getter link + getter onbeforeunload + getter onblur + getter onerror + getter onfocus + getter onhashchange + getter onlanguagechange + getter onload + getter onmessage + getter onoffline + getter ononline + getter onpagehide + getter onpageshow + getter onpopstate + getter onrejectionhandled + getter onresize + getter onscroll + getter onstorage + getter onunhandledrejection + getter onunload + getter text + getter vLink + method constructor + setter aLink + setter background + setter bgColor + setter link + setter onbeforeunload + setter onblur + setter onerror + setter onfocus + setter onhashchange + setter onlanguagechange + setter onload + setter onmessage + setter onoffline + setter ononline + setter onpagehide + setter onpageshow + setter onpopstate + setter onrejectionhandled + setter onresize + setter onscroll + setter onstorage + setter onunhandledrejection + setter onunload + setter text + setter vLink +interface HTMLButtonElement : HTMLElement + attribute @@toStringTag + getter autofocus + getter disabled + getter form + getter formAction + getter formEnctype + getter formMethod + getter formNoValidate + getter formTarget + getter labels + getter name + getter type + getter validationMessage + getter validity + getter value + getter willValidate + method checkValidity + method constructor + method reportValidity + method setCustomValidity + setter autofocus + setter disabled + setter formAction + setter formEnctype + setter formMethod + setter formNoValidate + setter formTarget + setter name + setter type + setter value +interface HTMLCanvasElement : HTMLElement + attribute @@toStringTag + getter height + getter width + method captureStream + method constructor + method getContext + method toBlob + method toDataURL + method transferControlToOffscreen + setter height + setter width +interface HTMLCollection + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item + method namedItem +interface HTMLContentElement : HTMLElement + attribute @@toStringTag + getter select + method constructor + method getDistributedNodes + setter select +interface HTMLDListElement : HTMLElement + attribute @@toStringTag + getter compact + method constructor + setter compact +interface HTMLDataListElement : HTMLElement + attribute @@toStringTag + getter options + method constructor +interface HTMLDetailsElement : HTMLElement + attribute @@toStringTag + getter open + method constructor + setter open +interface HTMLDialogElement : HTMLElement + attribute @@toStringTag + getter open + getter returnValue + method close + method constructor + method show + method showModal + setter open + setter returnValue +interface HTMLDirectoryElement : HTMLElement + attribute @@toStringTag + getter compact + method constructor + setter compact +interface HTMLDivElement : HTMLElement + attribute @@toStringTag + getter align + method constructor + setter align +interface HTMLDocument : Document + attribute @@toStringTag + getter alinkColor + getter all + getter bgColor + getter fgColor + getter linkColor + getter vlinkColor + method captureEvents + method clear + method constructor + method releaseEvents + setter alinkColor + setter all + setter bgColor + setter fgColor + setter linkColor + setter vlinkColor +interface HTMLElement : Element + attribute @@toStringTag + getter accessKey + getter contentEditable + getter contextMenu + getter dataset + getter dir + getter draggable + getter hidden + getter innerText + getter inputMode + getter isContentEditable + getter lang + getter offsetHeight + getter offsetLeft + getter offsetParent + getter offsetTop + getter offsetWidth + getter onabort + getter onauxclick + getter onblur + getter oncancel + getter oncanplay + getter oncanplaythrough + getter onchange + getter onclick + getter onclose + getter oncontextmenu + getter oncuechange + getter ondblclick + getter ondrag + getter ondragend + getter ondragenter + getter ondragleave + getter ondragover + getter ondragstart + getter ondrop + getter ondurationchange + getter onemptied + getter onended + getter onerror + getter onfocus + getter ongotpointercapture + getter oninput + getter oninvalid + getter onkeydown + getter onkeypress + getter onkeyup + getter onload + getter onloadeddata + getter onloadedmetadata + getter onloadstart + getter onlostpointercapture + getter onmousedown + getter onmouseenter + getter onmouseleave + getter onmousemove + getter onmouseout + getter onmouseover + getter onmouseup + getter onmousewheel + getter onpause + getter onplay + getter onplaying + getter onpointercancel + getter onpointerdown + getter onpointerenter + getter onpointerleave + getter onpointermove + getter onpointerout + getter onpointerover + getter onpointerup + getter onprogress + getter onratechange + getter onreset + getter onresize + getter onscroll + getter onseeked + getter onseeking + getter onselect + getter onshow + getter onstalled + getter onsubmit + getter onsuspend + getter ontimeupdate + getter ontoggle + getter ontouchcancel + getter ontouchend + getter ontouchmove + getter ontouchstart + getter onvolumechange + getter onwaiting + getter outerText + getter spellcheck + getter style + getter tabIndex + getter title + getter translate + method blur + method click + method constructor + method focus + setter accessKey + setter contentEditable + setter contextMenu + setter dir + setter draggable + setter hidden + setter innerText + setter inputMode + setter lang + setter onabort + setter onauxclick + setter onblur + setter oncancel + setter oncanplay + setter oncanplaythrough + setter onchange + setter onclick + setter onclose + setter oncontextmenu + setter oncuechange + setter ondblclick + setter ondrag + setter ondragend + setter ondragenter + setter ondragleave + setter ondragover + setter ondragstart + setter ondrop + setter ondurationchange + setter onemptied + setter onended + setter onerror + setter onfocus + setter ongotpointercapture + setter oninput + setter oninvalid + setter onkeydown + setter onkeypress + setter onkeyup + setter onload + setter onloadeddata + setter onloadedmetadata + setter onloadstart + setter onlostpointercapture + setter onmousedown + setter onmouseenter + setter onmouseleave + setter onmousemove + setter onmouseout + setter onmouseover + setter onmouseup + setter onmousewheel + setter onpause + setter onplay + setter onplaying + setter onpointercancel + setter onpointerdown + setter onpointerenter + setter onpointerleave + setter onpointermove + setter onpointerout + setter onpointerover + setter onpointerup + setter onprogress + setter onratechange + setter onreset + setter onresize + setter onscroll + setter onseeked + setter onseeking + setter onselect + setter onshow + setter onstalled + setter onsubmit + setter onsuspend + setter ontimeupdate + setter ontoggle + setter ontouchcancel + setter ontouchend + setter ontouchmove + setter ontouchstart + setter onvolumechange + setter onwaiting + setter outerText + setter spellcheck + setter style + setter tabIndex + setter title + setter translate +interface HTMLEmbedElement : HTMLElement + attribute @@toStringTag + getter align + getter height + getter name + getter src + getter type + getter width + method constructor + method getSVGDocument + setter align + setter height + setter name + setter src + setter type + setter width +interface HTMLFieldSetElement : HTMLElement + attribute @@toStringTag + getter disabled + getter elements + getter form + getter name + getter type + getter validationMessage + getter validity + getter willValidate + method checkValidity + method constructor + method reportValidity + method setCustomValidity + setter disabled + setter name +interface HTMLFontElement : HTMLElement + attribute @@toStringTag + getter color + getter face + getter size + method constructor + setter color + setter face + setter size +interface HTMLFormControlsCollection : HTMLCollection + attribute @@toStringTag + method constructor + method namedItem +interface HTMLFormElement : HTMLElement + attribute @@toStringTag + getter acceptCharset + getter action + getter autocomplete + getter elements + getter encoding + getter enctype + getter length + getter method + getter name + getter noValidate + getter target + method @@iterator + method checkValidity + method constructor + method reportValidity + method reset + method submit + setter acceptCharset + setter action + setter autocomplete + setter encoding + setter enctype + setter method + setter name + setter noValidate + setter target +interface HTMLFrameElement : HTMLElement + attribute @@toStringTag + getter contentDocument + getter contentWindow + getter frameBorder + getter longDesc + getter marginHeight + getter marginWidth + getter name + getter noResize + getter scrolling + getter src + method constructor + setter frameBorder + setter longDesc + setter marginHeight + setter marginWidth + setter name + setter noResize + setter scrolling + setter src +interface HTMLFrameSetElement : HTMLElement + attribute @@toStringTag + getter cols + getter onbeforeunload + getter onblur + getter onerror + getter onfocus + getter onhashchange + getter onlanguagechange + getter onload + getter onmessage + getter onoffline + getter ononline + getter onpagehide + getter onpageshow + getter onpopstate + getter onrejectionhandled + getter onresize + getter onscroll + getter onstorage + getter onunhandledrejection + getter onunload + getter rows + method constructor + setter cols + setter onbeforeunload + setter onblur + setter onerror + setter onfocus + setter onhashchange + setter onlanguagechange + setter onload + setter onmessage + setter onoffline + setter ononline + setter onpagehide + setter onpageshow + setter onpopstate + setter onrejectionhandled + setter onresize + setter onscroll + setter onstorage + setter onunhandledrejection + setter onunload + setter rows +interface HTMLHRElement : HTMLElement + attribute @@toStringTag + getter align + getter color + getter noShade + getter size + getter width + method constructor + setter align + setter color + setter noShade + setter size + setter width +interface HTMLHeadElement : HTMLElement + attribute @@toStringTag + method constructor +interface HTMLHeadingElement : HTMLElement + attribute @@toStringTag + getter align + method constructor + setter align +interface HTMLHtmlElement : HTMLElement + attribute @@toStringTag + getter version + method constructor + setter version +interface HTMLIFrameElement : HTMLElement + attribute @@toStringTag + getter align + getter allowFullscreen + getter allowPaymentRequest + getter contentDocument + getter contentWindow + getter csp + getter frameBorder + getter height + getter longDesc + getter marginHeight + getter marginWidth + getter name + getter referrerPolicy + getter sandbox + getter scrolling + getter src + getter srcdoc + getter width + method constructor + method getSVGDocument + setter align + setter allowFullscreen + setter allowPaymentRequest + setter csp + setter frameBorder + setter height + setter longDesc + setter marginHeight + setter marginWidth + setter name + setter referrerPolicy + setter sandbox + setter scrolling + setter src + setter srcdoc + setter width +interface HTMLImageElement : HTMLElement + attribute @@toStringTag + getter align + getter alt + getter border + getter complete + getter crossOrigin + getter currentSrc + getter height + getter hspace + getter isMap + getter longDesc + getter lowsrc + getter name + getter naturalHeight + getter naturalWidth + getter referrerPolicy + getter sizes + getter src + getter srcset + getter useMap + getter vspace + getter width + getter x + getter y + method constructor + setter align + setter alt + setter border + setter crossOrigin + setter height + setter hspace + setter isMap + setter longDesc + setter lowsrc + setter name + setter referrerPolicy + setter sizes + setter src + setter srcset + setter useMap + setter vspace + setter width +interface HTMLInputElement : HTMLElement + attribute @@toStringTag + getter accept + getter align + getter alt + getter autocapitalize + getter autocomplete + getter autofocus + getter checked + getter defaultChecked + getter defaultValue + getter dirName + getter disabled + getter files + getter form + getter formAction + getter formEnctype + getter formMethod + getter formNoValidate + getter formTarget + getter height + getter incremental + getter indeterminate + getter labels + getter list + getter max + getter maxLength + getter min + getter minLength + getter multiple + getter name + getter pattern + getter placeholder + getter readOnly + getter required + getter selectionDirection + getter selectionEnd + getter selectionStart + getter size + getter src + getter step + getter type + getter useMap + getter validationMessage + getter validity + getter value + getter valueAsDate + getter valueAsNumber + getter webkitEntries + getter webkitdirectory + getter width + getter willValidate + method checkValidity + method constructor + method reportValidity + method select + method setCustomValidity + method setRangeText + method setSelectionRange + method stepDown + method stepUp + setter accept + setter align + setter alt + setter autocapitalize + setter autocomplete + setter autofocus + setter checked + setter defaultChecked + setter defaultValue + setter dirName + setter disabled + setter files + setter formAction + setter formEnctype + setter formMethod + setter formNoValidate + setter formTarget + setter height + setter incremental + setter indeterminate + setter max + setter maxLength + setter min + setter minLength + setter multiple + setter name + setter pattern + setter placeholder + setter readOnly + setter required + setter selectionDirection + setter selectionEnd + setter selectionStart + setter size + setter src + setter step + setter type + setter useMap + setter value + setter valueAsDate + setter valueAsNumber + setter webkitdirectory + setter width +interface HTMLLIElement : HTMLElement + attribute @@toStringTag + getter type + getter value + method constructor + setter type + setter value +interface HTMLLabelElement : HTMLElement + attribute @@toStringTag + getter control + getter form + getter htmlFor + method constructor + setter htmlFor +interface HTMLLegendElement : HTMLElement + attribute @@toStringTag + getter align + getter form + method constructor + setter align +interface HTMLLinkElement : HTMLElement + attribute @@toStringTag + getter as + getter charset + getter crossOrigin + getter disabled + getter href + getter hreflang + getter import + getter integrity + getter media + getter referrerPolicy + getter rel + getter relList + getter rev + getter scope + getter sheet + getter sizes + getter target + getter type + method constructor + setter as + setter charset + setter crossOrigin + setter disabled + setter href + setter hreflang + setter integrity + setter media + setter referrerPolicy + setter rel + setter relList + setter rev + setter scope + setter sizes + setter target + setter type +interface HTMLMapElement : HTMLElement + attribute @@toStringTag + getter areas + getter name + method constructor + setter name +interface HTMLMarqueeElement : HTMLElement + attribute @@toStringTag + getter behavior + getter bgColor + getter direction + getter height + getter hspace + getter loop + getter scrollAmount + getter scrollDelay + getter trueSpeed + getter vspace + getter width + method constructor + method start + method stop + setter behavior + setter bgColor + setter direction + setter height + setter hspace + setter loop + setter scrollAmount + setter scrollDelay + setter trueSpeed + setter vspace + setter width +interface HTMLMediaElement : HTMLElement + attribute @@toStringTag + attribute HAVE_CURRENT_DATA + attribute HAVE_ENOUGH_DATA + attribute HAVE_FUTURE_DATA + attribute HAVE_METADATA + attribute HAVE_NOTHING + attribute NETWORK_EMPTY + attribute NETWORK_IDLE + attribute NETWORK_LOADING + attribute NETWORK_NO_SOURCE + getter audioTracks + getter autoplay + getter buffered + getter controls + getter controlsList + getter crossOrigin + getter currentSrc + getter currentTime + getter defaultMuted + getter defaultPlaybackRate + getter disableRemotePlayback + getter duration + getter ended + getter error + getter loop + getter mediaKeys + getter muted + getter networkState + getter onencrypted + getter onwaitingforkey + getter paused + getter playbackRate + getter played + getter preload + getter readyState + getter remote + getter seekable + getter seeking + getter sinkId + getter src + getter srcObject + getter textTracks + getter videoTracks + getter volume + getter webkitAudioDecodedByteCount + getter webkitVideoDecodedByteCount + method addTextTrack + method canPlayType + method captureStream + method constructor + method load + method pause + method play + method setMediaKeys + method setSinkId + setter autoplay + setter controls + setter controlsList + setter crossOrigin + setter currentTime + setter defaultMuted + setter defaultPlaybackRate + setter disableRemotePlayback + setter loop + setter muted + setter onencrypted + setter onwaitingforkey + setter playbackRate + setter preload + setter src + setter srcObject + setter volume +interface HTMLMenuElement : HTMLElement + attribute @@toStringTag + getter compact + getter label + getter type + method constructor + setter compact + setter label + setter type +interface HTMLMenuItemElement : HTMLElement + attribute @@toStringTag + getter checked + getter default + getter disabled + getter icon + getter label + getter radiogroup + getter type + method constructor + setter checked + setter default + setter disabled + setter icon + setter label + setter radiogroup + setter type +interface HTMLMetaElement : HTMLElement + attribute @@toStringTag + getter content + getter httpEquiv + getter name + getter scheme + method constructor + setter content + setter httpEquiv + setter name + setter scheme +interface HTMLMeterElement : HTMLElement + attribute @@toStringTag + getter high + getter labels + getter low + getter max + getter min + getter optimum + getter value + method constructor + setter high + setter low + setter max + setter min + setter optimum + setter value +interface HTMLModElement : HTMLElement + attribute @@toStringTag + getter cite + getter dateTime + method constructor + setter cite + setter dateTime +interface HTMLOListElement : HTMLElement + attribute @@toStringTag + getter compact + getter reversed + getter start + getter type + method constructor + setter compact + setter reversed + setter start + setter type +interface HTMLObjectElement : HTMLElement + attribute @@toStringTag + getter align + getter archive + getter border + getter code + getter codeBase + getter codeType + getter contentDocument + getter contentWindow + getter data + getter declare + getter form + getter height + getter hspace + getter name + getter standby + getter type + getter useMap + getter validationMessage + getter validity + getter vspace + getter width + getter willValidate + method checkValidity + method constructor + method getSVGDocument + method reportValidity + method setCustomValidity + setter align + setter archive + setter border + setter code + setter codeBase + setter codeType + setter data + setter declare + setter height + setter hspace + setter name + setter standby + setter type + setter useMap + setter vspace + setter width +interface HTMLOptGroupElement : HTMLElement + attribute @@toStringTag + getter disabled + getter label + method constructor + setter disabled + setter label +interface HTMLOptionElement : HTMLElement + attribute @@toStringTag + getter defaultSelected + getter disabled + getter form + getter index + getter label + getter selected + getter text + getter value + method constructor + setter defaultSelected + setter disabled + setter label + setter selected + setter text + setter value +interface HTMLOptionsCollection : HTMLCollection + attribute @@toStringTag + getter length + getter selectedIndex + method @@iterator + method add + method constructor + method namedItem + method remove + setter length + setter selectedIndex +interface HTMLOutputElement : HTMLElement + attribute @@toStringTag + getter defaultValue + getter form + getter htmlFor + getter labels + getter name + getter type + getter validationMessage + getter validity + getter value + getter willValidate + method checkValidity + method constructor + method reportValidity + method setCustomValidity + setter defaultValue + setter htmlFor + setter name + setter value +interface HTMLParagraphElement : HTMLElement + attribute @@toStringTag + getter align + method constructor + setter align +interface HTMLParamElement : HTMLElement + attribute @@toStringTag + getter name + getter type + getter value + getter valueType + method constructor + setter name + setter type + setter value + setter valueType +interface HTMLPictureElement : HTMLElement + attribute @@toStringTag + method constructor +interface HTMLPreElement : HTMLElement + attribute @@toStringTag + getter width + method constructor + setter width +interface HTMLProgressElement : HTMLElement + attribute @@toStringTag + getter labels + getter max + getter position + getter value + method constructor + setter max + setter value +interface HTMLQuoteElement : HTMLElement + attribute @@toStringTag + getter cite + method constructor + setter cite +interface HTMLScriptElement : HTMLElement + attribute @@toStringTag + getter async + getter charset + getter crossOrigin + getter defer + getter event + getter htmlFor + getter integrity + getter nonce + getter src + getter text + getter type + method constructor + setter async + setter charset + setter crossOrigin + setter defer + setter event + setter htmlFor + setter integrity + setter nonce + setter src + setter text + setter type +interface HTMLSelectElement : HTMLElement + attribute @@toStringTag + getter autofocus + getter disabled + getter form + getter labels + getter length + getter multiple + getter name + getter options + getter required + getter selectedIndex + getter selectedOptions + getter size + getter type + getter validationMessage + getter validity + getter value + getter willValidate + method @@iterator + method add + method checkValidity + method constructor + method item + method namedItem + method remove + method reportValidity + method setCustomValidity + setter autofocus + setter disabled + setter length + setter multiple + setter name + setter required + setter selectedIndex + setter size + setter value +interface HTMLShadowElement : HTMLElement + attribute @@toStringTag + method constructor + method getDistributedNodes +interface HTMLSlotElement : HTMLElement + attribute @@toStringTag + getter name + method assignedNodes + method constructor + setter name +interface HTMLSourceElement : HTMLElement + attribute @@toStringTag + getter media + getter sizes + getter src + getter srcset + getter type + method constructor + setter media + setter sizes + setter src + setter srcset + setter type +interface HTMLSpanElement : HTMLElement + attribute @@toStringTag + method constructor +interface HTMLStyleElement : HTMLElement + attribute @@toStringTag + getter disabled + getter media + getter sheet + getter type + method constructor + setter disabled + setter media + setter type +interface HTMLTableCaptionElement : HTMLElement + attribute @@toStringTag + getter align + method constructor + setter align +interface HTMLTableCellElement : HTMLElement + attribute @@toStringTag + getter abbr + getter align + getter axis + getter bgColor + getter cellIndex + getter ch + getter chOff + getter colSpan + getter headers + getter height + getter noWrap + getter rowSpan + getter scope + getter vAlign + getter width + method constructor + setter abbr + setter align + setter axis + setter bgColor + setter ch + setter chOff + setter colSpan + setter headers + setter height + setter noWrap + setter rowSpan + setter scope + setter vAlign + setter width +interface HTMLTableColElement : HTMLElement + attribute @@toStringTag + getter align + getter ch + getter chOff + getter span + getter vAlign + getter width + method constructor + setter align + setter ch + setter chOff + setter span + setter vAlign + setter width +interface HTMLTableElement : HTMLElement + attribute @@toStringTag + getter align + getter bgColor + getter border + getter caption + getter cellPadding + getter cellSpacing + getter frame + getter rows + getter rules + getter summary + getter tBodies + getter tFoot + getter tHead + getter width + method constructor + method createCaption + method createTBody + method createTFoot + method createTHead + method deleteCaption + method deleteRow + method deleteTFoot + method deleteTHead + method insertRow + setter align + setter bgColor + setter border + setter caption + setter cellPadding + setter cellSpacing + setter frame + setter rules + setter summary + setter tFoot + setter tHead + setter width +interface HTMLTableRowElement : HTMLElement + attribute @@toStringTag + getter align + getter bgColor + getter cells + getter ch + getter chOff + getter rowIndex + getter sectionRowIndex + getter vAlign + method constructor + method deleteCell + method insertCell + setter align + setter bgColor + setter ch + setter chOff + setter vAlign +interface HTMLTableSectionElement : HTMLElement + attribute @@toStringTag + getter align + getter ch + getter chOff + getter rows + getter vAlign + method constructor + method deleteRow + method insertRow + setter align + setter ch + setter chOff + setter vAlign +interface HTMLTemplateElement : HTMLElement + attribute @@toStringTag + getter content + method constructor +interface HTMLTextAreaElement : HTMLElement + attribute @@toStringTag + getter autocapitalize + getter autofocus + getter cols + getter defaultValue + getter dirName + getter disabled + getter form + getter labels + getter maxLength + getter minLength + getter name + getter placeholder + getter readOnly + getter required + getter rows + getter selectionDirection + getter selectionEnd + getter selectionStart + getter textLength + getter type + getter validationMessage + getter validity + getter value + getter willValidate + getter wrap + method checkValidity + method constructor + method reportValidity + method select + method setCustomValidity + method setRangeText + method setSelectionRange + setter autocapitalize + setter autofocus + setter cols + setter defaultValue + setter dirName + setter disabled + setter maxLength + setter minLength + setter name + setter placeholder + setter readOnly + setter required + setter rows + setter selectionDirection + setter selectionEnd + setter selectionStart + setter value + setter wrap +interface HTMLTitleElement : HTMLElement + attribute @@toStringTag + getter text + method constructor + setter text +interface HTMLTrackElement : HTMLElement + attribute @@toStringTag + attribute ERROR + attribute LOADED + attribute LOADING + attribute NONE + getter default + getter kind + getter label + getter readyState + getter src + getter srclang + getter track + method constructor + setter default + setter kind + setter label + setter src + setter srclang +interface HTMLUListElement : HTMLElement + attribute @@toStringTag + getter compact + getter type + method constructor + setter compact + setter type +interface HTMLUnknownElement : HTMLElement + attribute @@toStringTag + method constructor +interface HTMLVideoElement : HTMLMediaElement + attribute @@toStringTag + getter height + getter poster + getter videoHeight + getter videoWidth + getter webkitDecodedFrameCount + getter webkitDisplayingFullscreen + getter webkitDroppedFrameCount + getter webkitSupportsFullscreen + getter width + method constructor + method getVideoPlaybackQuality + method webkitEnterFullScreen + method webkitEnterFullscreen + method webkitExitFullScreen + method webkitExitFullscreen + setter height + setter poster + setter width +interface HashChangeEvent : Event + attribute @@toStringTag + getter newURL + getter oldURL + method constructor +interface Headers + attribute @@toStringTag + method @@iterator + method append + method constructor + method delete + method entries + method forEach + method get + method getAll + method has + method keys + method set + method values +interface History + attribute @@toStringTag + getter length + getter scrollRestoration + getter state + method back + method constructor + method forward + method go + method pushState + method replaceState + setter scrollRestoration +interface IDBCursor + attribute @@toStringTag + getter direction + getter key + getter primaryKey + getter source + method advance + method constructor + method continue + method continuePrimaryKey + method delete + method update +interface IDBCursorWithValue : IDBCursor + attribute @@toStringTag + getter value + method constructor +interface IDBDatabase : EventTarget + attribute @@toStringTag + getter name + getter objectStoreNames + getter onabort + getter onclose + getter onerror + getter onversionchange + getter version + method close + method constructor + method createObjectStore + method deleteObjectStore + method transaction + setter onabort + setter onclose + setter onerror + setter onversionchange +interface IDBFactory + attribute @@toStringTag + method cmp + method constructor + method deleteDatabase + method open + method webkitGetDatabaseNames +interface IDBIndex + attribute @@toStringTag + getter keyPath + getter multiEntry + getter name + getter objectStore + getter unique + method constructor + method count + method get + method getAll + method getAllKeys + method getKey + method openCursor + method openKeyCursor + setter name +interface IDBKeyRange + static method bound + static method lowerBound + static method only + static method upperBound + attribute @@toStringTag + getter lower + getter lowerOpen + getter upper + getter upperOpen + method constructor + method includes +interface IDBObjectStore + attribute @@toStringTag + getter autoIncrement + getter indexNames + getter keyPath + getter name + getter transaction + method add + method clear + method constructor + method count + method createIndex + method delete + method deleteIndex + method get + method getAll + method getAllKeys + method getKey + method index + method openCursor + method openKeyCursor + method put + setter name +interface IDBObservation + attribute @@toStringTag + getter key + getter type + getter value + method constructor +interface IDBObserver + attribute @@toStringTag + method constructor + method observe + method unobserve +interface IDBObserverChanges + attribute @@toStringTag + getter database + getter records + getter transaction + method constructor +interface IDBOpenDBRequest : IDBRequest + attribute @@toStringTag + getter onblocked + getter onupgradeneeded + method constructor + setter onblocked + setter onupgradeneeded +interface IDBRequest : EventTarget + attribute @@toStringTag + getter error + getter onerror + getter onsuccess + getter readyState + getter result + getter source + getter transaction + method constructor + setter onerror + setter onsuccess +interface IDBTransaction : EventTarget + attribute @@toStringTag + getter db + getter error + getter mode + getter objectStoreNames + getter onabort + getter oncomplete + getter onerror + method abort + method constructor + method objectStore + setter onabort + setter oncomplete + setter onerror +interface IDBVersionChangeEvent : Event + attribute @@toStringTag + getter dataLoss + getter dataLossMessage + getter newVersion + getter oldVersion + method constructor +interface IIRFilterNode : AudioNode + attribute @@toStringTag + method constructor + method getFrequencyResponse +interface IdleDeadline + attribute @@toStringTag + getter didTimeout + method constructor + method timeRemaining +interface Image + attribute @@toStringTag + getter align + getter alt + getter border + getter complete + getter crossOrigin + getter currentSrc + getter height + getter hspace + getter isMap + getter longDesc + getter lowsrc + getter name + getter naturalHeight + getter naturalWidth + getter referrerPolicy + getter sizes + getter src + getter srcset + getter useMap + getter vspace + getter width + getter x + getter y + method constructor + setter align + setter alt + setter border + setter crossOrigin + setter height + setter hspace + setter isMap + setter longDesc + setter lowsrc + setter name + setter referrerPolicy + setter sizes + setter src + setter srcset + setter useMap + setter vspace + setter width +interface ImageBitmap + attribute @@toStringTag + getter height + getter width + method close + method constructor +interface ImageBitmapRenderingContext + attribute @@toStringTag + getter canvas + method constructor + method transferFromImageBitmap +interface ImageCapture + attribute @@toStringTag + getter track + method constructor + method getPhotoCapabilities + method grabFrame + method setOptions + method takePhoto +interface ImageData + attribute @@toStringTag + getter data + getter dataUnion + getter height + getter width + method constructor + method createImageData + method getColorSettings +interface InputDeviceCapabilities + attribute @@toStringTag + getter firesTouchEvents + method constructor +interface InputEvent : UIEvent + attribute @@toStringTag + getter data + getter dataTransfer + getter inputType + getter isComposing + method constructor + method getTargetRanges +interface IntersectionObserver + attribute @@toStringTag + getter root + getter rootMargin + getter thresholds + method constructor + method disconnect + method observe + method takeRecords + method unobserve +interface IntersectionObserverEntry + attribute @@toStringTag + getter boundingClientRect + getter intersectionRatio + getter intersectionRect + getter isIntersecting + getter rootBounds + getter target + getter time + method constructor +interface KeyboardEvent : UIEvent + attribute @@toStringTag + attribute DOM_KEY_LOCATION_LEFT + attribute DOM_KEY_LOCATION_NUMPAD + attribute DOM_KEY_LOCATION_RIGHT + attribute DOM_KEY_LOCATION_STANDARD + getter altKey + getter charCode + getter code + getter ctrlKey + getter isComposing + getter key + getter keyCode + getter location + getter metaKey + getter repeat + getter shiftKey + getter which + method constructor + method getModifierState + method initKeyboardEvent +interface KeyframeEffect : KeyframeEffectReadOnly + attribute @@toStringTag + method constructor +interface KeyframeEffectReadOnly : AnimationEffectReadOnly + attribute @@toStringTag + method constructor +interface Location + attribute @@toStringTag + method constructor +interface MIDIAccess : EventTarget + attribute @@toStringTag + getter inputs + getter onstatechange + getter outputs + getter sysexEnabled + method constructor + setter onstatechange +interface MIDIConnectionEvent : Event + attribute @@toStringTag + getter port + method constructor +interface MIDIInput : MIDIPort + attribute @@toStringTag + getter onmidimessage + method constructor + setter onmidimessage +interface MIDIInputMap + attribute @@toStringTag + getter size + method @@iterator + method constructor + method entries + method forEach + method get + method has + method keys + method values +interface MIDIMessageEvent : Event + attribute @@toStringTag + getter data + method constructor +interface MIDIOutput : MIDIPort + attribute @@toStringTag + method constructor + method send +interface MIDIOutputMap + attribute @@toStringTag + getter size + method @@iterator + method constructor + method entries + method forEach + method get + method has + method keys + method values +interface MIDIPort : EventTarget + attribute @@toStringTag + getter connection + getter id + getter manufacturer + getter name + getter onstatechange + getter state + getter type + getter version + method close + method constructor + method open + setter onstatechange +interface Magnetometer : Sensor + attribute @@toStringTag + getter x + getter y + getter z + method constructor +interface MediaCapabilities + attribute @@toStringTag + method constructor + method decodingInfo +interface MediaCapabilitiesInfo + attribute @@toStringTag + getter powerEfficient + getter smooth + getter supported + method constructor +interface MediaDeviceInfo + attribute @@toStringTag + getter deviceId + getter groupId + getter kind + getter label + method constructor + method toJSON +interface MediaDevices : EventTarget + attribute @@toStringTag + getter ondevicechange + method constructor + method enumerateDevices + method getSupportedConstraints + method getUserMedia + setter ondevicechange +interface MediaElementAudioSourceNode : AudioNode + attribute @@toStringTag + getter mediaElement + method constructor +interface MediaEncryptedEvent : Event + attribute @@toStringTag + getter initData + getter initDataType + method constructor +interface MediaError + attribute @@toStringTag + attribute MEDIA_ERR_ABORTED + attribute MEDIA_ERR_DECODE + attribute MEDIA_ERR_NETWORK + attribute MEDIA_ERR_SRC_NOT_SUPPORTED + getter code + method constructor +interface MediaKeyMessageEvent : Event + attribute @@toStringTag + getter message + getter messageType + method constructor +interface MediaKeySession : EventTarget + attribute @@toStringTag + getter closed + getter expiration + getter keyStatuses + getter onkeystatuseschange + getter onmessage + getter sessionId + method close + method constructor + method generateRequest + method load + method remove + method update + setter onkeystatuseschange + setter onmessage +interface MediaKeyStatusMap + attribute @@toStringTag + getter size + method @@iterator + method constructor + method entries + method forEach + method get + method has + method keys + method values +interface MediaKeySystemAccess + attribute @@toStringTag + getter keySystem + method constructor + method createMediaKeys + method getConfiguration +interface MediaKeys + attribute @@toStringTag + method constructor + method createSession + method setServerCertificate +interface MediaList + attribute @@toStringTag + getter length + getter mediaText + method @@iterator + method appendMedium + method constructor + method deleteMedium + method item + setter mediaText +interface MediaMetadata + attribute @@toStringTag + getter album + getter artist + getter artwork + getter title + method constructor + setter album + setter artist + setter artwork + setter title +interface MediaQueryList : EventTarget + attribute @@toStringTag + getter matches + getter media + getter onchange + method addListener + method constructor + method removeListener + setter onchange +interface MediaQueryListEvent : Event + attribute @@toStringTag + getter matches + getter media + method constructor +interface MediaRecorder : EventTarget + static method isTypeSupported + attribute @@toStringTag + getter audioBitsPerSecond + getter mimeType + getter ondataavailable + getter onerror + getter onpause + getter onresume + getter onstart + getter onstop + getter state + getter stream + getter videoBitsPerSecond + method constructor + method pause + method requestData + method resume + method start + method stop + setter ondataavailable + setter onerror + setter onpause + setter onresume + setter onstart + setter onstop +interface MediaSession + attribute @@toStringTag + getter metadata + getter playbackState + method constructor + method setActionHandler + setter metadata + setter playbackState +interface MediaSettingsRange + attribute @@toStringTag + getter max + getter min + getter step + method constructor +interface MediaSource : EventTarget + static method isTypeSupported + attribute @@toStringTag + getter activeSourceBuffers + getter duration + getter onsourceclose + getter onsourceended + getter onsourceopen + getter readyState + getter sourceBuffers + method addSourceBuffer + method clearLiveSeekableRange + method constructor + method endOfStream + method removeSourceBuffer + method setLiveSeekableRange + setter duration + setter onsourceclose + setter onsourceended + setter onsourceopen +interface MediaStream : EventTarget + attribute @@toStringTag + getter active + getter id + getter onactive + getter onaddtrack + getter oninactive + getter onremovetrack + method addTrack + method clone + method constructor + method getAudioTracks + method getTrackById + method getTracks + method getVideoTracks + method removeTrack + setter onactive + setter onaddtrack + setter oninactive + setter onremovetrack +interface MediaStreamAudioDestinationNode : AudioNode + attribute @@toStringTag + getter stream + method constructor +interface MediaStreamAudioSourceNode : AudioNode + attribute @@toStringTag + getter mediaStream + method constructor +interface MediaStreamEvent : Event + attribute @@toStringTag + getter stream + method constructor +interface MediaStreamTrack : EventTarget + attribute @@toStringTag + getter contentHint + getter enabled + getter id + getter kind + getter label + getter muted + getter onended + getter onmute + getter onunmute + getter readyState + method applyConstraints + method clone + method constructor + method getCapabilities + method getConstraints + method getSettings + method stop + setter contentHint + setter enabled + setter onended + setter onmute + setter onunmute +interface MediaStreamTrackEvent : Event + attribute @@toStringTag + getter track + method constructor +interface MessageChannel + attribute @@toStringTag + getter port1 + getter port2 + method constructor +interface MessageEvent : Event + attribute @@toStringTag + getter data + getter lastEventId + getter origin + getter ports + getter source + getter suborigin + method constructor + method initMessageEvent +interface MessagePort : EventTarget + attribute @@toStringTag + getter onmessage + method close + method constructor + method postMessage + method start + setter onmessage +interface MimeType + attribute @@toStringTag + getter description + getter enabledPlugin + getter suffixes + getter type + method constructor +interface MimeTypeArray + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item + method namedItem +interface Mojo + static method createDataPipe + static method createMessagePipe + static method createSharedBuffer + attribute @@toStringTag + attribute RESULT_ABORTED + attribute RESULT_ALREADY_EXISTS + attribute RESULT_BUSY + attribute RESULT_CANCELLED + attribute RESULT_DATA_LOSS + attribute RESULT_DEADLINE_EXCEEDED + attribute RESULT_FAILED_PRECONDITION + attribute RESULT_INTERNAL + attribute RESULT_INVALID_ARGUMENT + attribute RESULT_NOT_FOUND + attribute RESULT_OK + attribute RESULT_OUT_OF_RANGE + attribute RESULT_PERMISSION_DENIED + attribute RESULT_RESOURCE_EXHAUSTED + attribute RESULT_SHOULD_WAIT + attribute RESULT_UNAVAILABLE + attribute RESULT_UNIMPLEMENTED + attribute RESULT_UNKNOWN + method constructor +interface MojoHandle + attribute @@toStringTag + method close + method constructor + method discardData + method duplicateBufferHandle + method mapBuffer + method queryData + method readData + method readMessage + method watch + method writeData + method writeMessage +interface MojoWatcher + attribute @@toStringTag + method cancel + method constructor +interface MouseEvent : UIEvent + attribute @@toStringTag + getter altKey + getter button + getter buttons + getter clientX + getter clientY + getter ctrlKey + getter fromElement + getter layerX + getter layerY + getter metaKey + getter movementX + getter movementY + getter offsetX + getter offsetY + getter pageX + getter pageY + getter region + getter relatedTarget + getter screenX + getter screenY + getter shiftKey + getter toElement + getter which + getter x + getter y + method constructor + method getModifierState + method initMouseEvent +interface MutationEvent : Event + attribute @@toStringTag + attribute ADDITION + attribute MODIFICATION + attribute REMOVAL + getter attrChange + getter attrName + getter newValue + getter prevValue + getter relatedNode + method constructor + method initMutationEvent +interface MutationObserver + attribute @@toStringTag + method constructor + method disconnect + method observe + method takeRecords +interface MutationRecord + attribute @@toStringTag + getter addedNodes + getter attributeName + getter attributeNamespace + getter nextSibling + getter oldValue + getter previousSibling + getter removedNodes + getter target + getter type + method constructor +interface NFC + attribute @@toStringTag + method cancelPush + method cancelWatch + method constructor + method push + method watch +interface NamedNodeMap + attribute @@toStringTag + getter length + method @@iterator + method constructor + method getNamedItem + method getNamedItemNS + method item + method removeNamedItem + method removeNamedItemNS + method setNamedItem + method setNamedItemNS +interface Navigator + attribute @@toStringTag + getter appCodeName + getter appName + getter appVersion + getter authentication + getter bluetooth + getter budget + getter connection + getter cookieEnabled + getter credentials + getter doNotTrack + getter geolocation + getter hardwareConcurrency + getter language + getter languages + getter maxTouchPoints + getter mediaCapabilities + getter mediaDevices + getter mediaSession + getter mimeTypes + getter nfc + getter onLine + getter permissions + getter platform + getter plugins + getter presentation + getter product + getter productSub + getter serviceWorker + getter storage + getter usb + getter userAgent + getter vendor + getter vendorSub + getter webkitPersistentStorage + getter webkitTemporaryStorage + method constructor + method getBattery + method getGamepads + method getInstalledRelatedApps + method getUserMedia + method getVRDisplays + method isProtocolHandlerRegistered + method javaEnabled + method registerProtocolHandler + method requestMIDIAccess + method requestMediaKeySystemAccess + method sendBeacon + method share + method unregisterProtocolHandler + method vibrate + method webkitGetUserMedia +interface NetworkInformation : EventTarget + attribute @@toStringTag + getter downlinkMax + getter onchange + getter ontypechange + getter type + method constructor + setter onchange + setter ontypechange +interface Node : EventTarget + attribute @@toStringTag + attribute ATTRIBUTE_NODE + attribute CDATA_SECTION_NODE + attribute COMMENT_NODE + attribute DOCUMENT_FRAGMENT_NODE + attribute DOCUMENT_NODE + attribute DOCUMENT_POSITION_CONTAINED_BY + attribute DOCUMENT_POSITION_CONTAINS + attribute DOCUMENT_POSITION_DISCONNECTED + attribute DOCUMENT_POSITION_FOLLOWING + attribute DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + attribute DOCUMENT_POSITION_PRECEDING + attribute DOCUMENT_TYPE_NODE + attribute ELEMENT_NODE + attribute ENTITY_NODE + attribute ENTITY_REFERENCE_NODE + attribute NOTATION_NODE + attribute PROCESSING_INSTRUCTION_NODE + attribute TEXT_NODE + getter baseURI + getter childNodes + getter firstChild + getter isConnected + getter lastChild + getter nextSibling + getter nodeName + getter nodeType + getter nodeValue + getter ownerDocument + getter parentElement + getter parentNode + getter previousSibling + getter textContent + method appendChild + method cloneNode + method compareDocumentPosition + method constructor + method contains + method getRootNode + method hasChildNodes + method insertBefore + method isDefaultNamespace + method isEqualNode + method isSameNode + method lookupNamespaceURI + method lookupPrefix + method normalize + method removeChild + method replaceChild + setter nodeValue + setter textContent +interface NodeFilter + attribute @@toStringTag + attribute FILTER_ACCEPT + attribute FILTER_REJECT + attribute FILTER_SKIP + attribute SHOW_ALL + attribute SHOW_ATTRIBUTE + attribute SHOW_CDATA_SECTION + attribute SHOW_COMMENT + attribute SHOW_DOCUMENT + attribute SHOW_DOCUMENT_FRAGMENT + attribute SHOW_DOCUMENT_TYPE + attribute SHOW_ELEMENT + attribute SHOW_ENTITY + attribute SHOW_ENTITY_REFERENCE + attribute SHOW_NOTATION + attribute SHOW_PROCESSING_INSTRUCTION + attribute SHOW_TEXT + method acceptNode + method constructor +interface NodeIterator + attribute @@toStringTag + getter filter + getter pointerBeforeReferenceNode + getter referenceNode + getter root + getter whatToShow + method constructor + method detach + method nextNode + method previousNode +interface NodeList + attribute @@toStringTag + getter length + method @@iterator + method constructor + method entries + method forEach + method item + method keys + method values +interface Notification : EventTarget + static getter maxActions + static getter permission + static method requestPermission + attribute @@toStringTag + getter actions + getter badge + getter body + getter data + getter dir + getter icon + getter image + getter lang + getter onclick + getter onclose + getter onerror + getter onshow + getter renotify + getter requireInteraction + getter silent + getter tag + getter timestamp + getter title + getter vibrate + method close + method constructor + setter onclick + setter onclose + setter onerror + setter onshow +interface OfflineAudioCompletionEvent : Event + attribute @@toStringTag + getter renderedBuffer + method constructor +interface OfflineAudioContext : BaseAudioContext + attribute @@toStringTag + getter length + getter oncomplete + method constructor + method startRendering + method suspend + setter oncomplete +interface OffscreenCanvas : EventTarget + attribute @@toStringTag + getter height + getter width + method constructor + method convertToBlob + method getContext + method transferToImageBitmap + setter height + setter width +interface OffscreenCanvasRenderingContext2D + attribute @@toStringTag + getter canvas + getter fillStyle + getter filter + getter globalAlpha + getter globalCompositeOperation + getter imageSmoothingEnabled + getter imageSmoothingQuality + getter lineCap + getter lineDashOffset + getter lineJoin + getter lineWidth + getter miterLimit + getter shadowBlur + getter shadowColor + getter shadowOffsetX + getter shadowOffsetY + getter strokeStyle + method arc + method arcTo + method beginPath + method bezierCurveTo + method clearRect + method clip + method closePath + method commit + method constructor + method createImageData + method createLinearGradient + method createPattern + method createRadialGradient + method drawImage + method ellipse + method fill + method fillRect + method getImageData + method getLineDash + method isPointInPath + method isPointInStroke + method lineTo + method moveTo + method putImageData + method quadraticCurveTo + method rect + method resetTransform + method restore + method rotate + method save + method scale + method setLineDash + method setTransform + method stroke + method strokeRect + method transform + method translate + setter fillStyle + setter filter + setter globalAlpha + setter globalCompositeOperation + setter imageSmoothingEnabled + setter imageSmoothingQuality + setter lineCap + setter lineDashOffset + setter lineJoin + setter lineWidth + setter miterLimit + setter shadowBlur + setter shadowColor + setter shadowOffsetX + setter shadowOffsetY + setter strokeStyle +interface Option + attribute @@toStringTag + getter defaultSelected + getter disabled + getter form + getter index + getter label + getter selected + getter text + getter value + method constructor + setter defaultSelected + setter disabled + setter label + setter selected + setter text + setter value +interface OrientationSensor : Sensor + attribute @@toStringTag + getter quaternion + method constructor + method populateMatrix +interface OscillatorNode : AudioScheduledSourceNode + attribute @@toStringTag + getter detune + getter frequency + getter type + method constructor + method setPeriodicWave + setter type +interface PageTransitionEvent : Event + attribute @@toStringTag + getter persisted + method constructor +interface PannerNode : AudioNode + attribute @@toStringTag + getter coneInnerAngle + getter coneOuterAngle + getter coneOuterGain + getter distanceModel + getter maxDistance + getter orientationX + getter orientationY + getter orientationZ + getter panningModel + getter positionX + getter positionY + getter positionZ + getter refDistance + getter rolloffFactor + method constructor + method setOrientation + method setPosition + setter coneInnerAngle + setter coneOuterAngle + setter coneOuterGain + setter distanceModel + setter maxDistance + setter panningModel + setter refDistance + setter rolloffFactor +interface PasswordCredential : SiteBoundCredential + attribute @@toStringTag + getter additionalData + getter idName + getter passwordName + method constructor + setter additionalData + setter idName + setter passwordName +interface Path2D + attribute @@toStringTag + method addPath + method arc + method arcTo + method bezierCurveTo + method closePath + method constructor + method ellipse + method lineTo + method moveTo + method quadraticCurveTo + method rect +interface PaymentAddress + attribute @@toStringTag + getter addressLine + getter city + getter country + getter dependentLocality + getter languageCode + getter organization + getter phone + getter postalCode + getter recipient + getter region + getter sortingCode + method constructor + method toJSON +interface PaymentManager + attribute @@toStringTag + getter instruments + method constructor + method getManifest + method setManifest +interface PaymentRequest : EventTarget + attribute @@toStringTag + getter onshippingaddresschange + getter onshippingoptionchange + getter shippingAddress + getter shippingOption + getter shippingType + method abort + method canMakePayment + method constructor + method show + setter onshippingaddresschange + setter onshippingoptionchange +interface PaymentRequestUpdateEvent : Event + attribute @@toStringTag + method constructor + method updateWith +interface PaymentResponse + attribute @@toStringTag + getter details + getter methodName + getter payerEmail + getter payerName + getter payerPhone + getter shippingAddress + getter shippingOption + method complete + method constructor + method toJSON +interface Performance : EventTarget + attribute @@toStringTag + getter memory + getter navigation + getter onframetimingbufferfull + getter onresourcetimingbufferfull + getter timing + method clearFrameTimings + method clearMarks + method clearMeasures + method clearResourceTimings + method constructor + method getEntries + method getEntriesByName + method getEntriesByType + method mark + method measure + method now + method setFrameTimingBufferSize + method setResourceTimingBufferSize + method toJSON + setter onframetimingbufferfull + setter onresourcetimingbufferfull +interface PerformanceEntry + attribute @@toStringTag + getter duration + getter entryType + getter name + getter startTime + method constructor + method toJSON +interface PerformanceLongTaskTiming : PerformanceEntry + attribute @@toStringTag + getter attribution + method constructor +interface PerformanceMark : PerformanceEntry + attribute @@toStringTag + method constructor +interface PerformanceMeasure : PerformanceEntry + attribute @@toStringTag + method constructor +interface PerformanceNavigation + attribute @@toStringTag + attribute TYPE_BACK_FORWARD + attribute TYPE_NAVIGATE + attribute TYPE_RELOAD + attribute TYPE_RESERVED + getter redirectCount + getter type + method constructor + method toJSON +interface PerformanceNavigationTiming : PerformanceResourceTiming + attribute @@toStringTag + getter domComplete + getter domContentLoadedEventEnd + getter domContentLoadedEventStart + getter domInteractive + getter loadEventEnd + getter loadEventStart + getter redirectCount + getter type + getter unloadEventEnd + getter unloadEventStart + method constructor + method toJSON +interface PerformanceObserver + attribute @@toStringTag + method constructor + method disconnect + method observe +interface PerformanceObserverEntryList + attribute @@toStringTag + method constructor + method getEntries + method getEntriesByName + method getEntriesByType +interface PerformancePaintTiming : PerformanceEntry + attribute @@toStringTag + method constructor +interface PerformanceResourceTiming : PerformanceEntry + attribute @@toStringTag + getter connectEnd + getter connectStart + getter decodedBodySize + getter domainLookupEnd + getter domainLookupStart + getter encodedBodySize + getter fetchStart + getter initiatorType + getter redirectEnd + getter redirectStart + getter requestStart + getter responseEnd + getter responseStart + getter secureConnectionStart + getter transferSize + getter workerStart + method constructor +interface PerformanceTiming + attribute @@toStringTag + getter connectEnd + getter connectStart + getter domComplete + getter domContentLoadedEventEnd + getter domContentLoadedEventStart + getter domInteractive + getter domLoading + getter domainLookupEnd + getter domainLookupStart + getter fetchStart + getter loadEventEnd + getter loadEventStart + getter navigationStart + getter redirectEnd + getter redirectStart + getter requestStart + getter responseEnd + getter responseStart + getter secureConnectionStart + getter unloadEventEnd + getter unloadEventStart + method constructor + method toJSON +interface PeriodicWave + attribute @@toStringTag + method constructor +interface PermissionStatus : EventTarget + attribute @@toStringTag + getter onchange + getter state + method constructor + setter onchange +interface Permissions + attribute @@toStringTag + method constructor + method query + method request + method requestAll + method revoke +interface PhotoCapabilities + attribute @@toStringTag + getter fillLightMode + getter imageHeight + getter imageWidth + getter redEyeReduction + method constructor +interface Plugin + attribute @@toStringTag + getter description + getter filename + getter length + getter name + method @@iterator + method constructor + method item + method namedItem +interface PluginArray + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item + method namedItem + method refresh +interface PointerEvent : MouseEvent + attribute @@toStringTag + getter height + getter isPrimary + getter pointerId + getter pointerType + getter pressure + getter tangentialPressure + getter tiltX + getter tiltY + getter twist + getter width + method constructor + method getCoalescedEvents +interface PopStateEvent : Event + attribute @@toStringTag + getter state + method constructor +interface Presentation + attribute @@toStringTag + getter defaultRequest + getter receiver + method constructor + setter defaultRequest +interface PresentationAvailability : EventTarget + attribute @@toStringTag + getter onchange + getter value + method constructor + setter onchange +interface PresentationConnection : EventTarget + attribute @@toStringTag + getter binaryType + getter id + getter onclose + getter onconnect + getter onmessage + getter onterminate + getter state + getter url + method close + method constructor + method send + method terminate + setter binaryType + setter onclose + setter onconnect + setter onmessage + setter onterminate +interface PresentationConnectionAvailableEvent : Event + attribute @@toStringTag + getter connection + method constructor +interface PresentationConnectionCloseEvent : Event + attribute @@toStringTag + getter message + getter reason + method constructor +interface PresentationConnectionList : EventTarget + attribute @@toStringTag + getter connections + getter onconnectionavailable + method constructor + setter onconnectionavailable +interface PresentationReceiver + attribute @@toStringTag + getter connectionList + method constructor +interface PresentationRequest : EventTarget + attribute @@toStringTag + getter onconnectionavailable + method constructor + method getAvailability + method reconnect + method start + setter onconnectionavailable +interface ProcessingInstruction : CharacterData + attribute @@toStringTag + getter sheet + getter target + method constructor +interface ProgressEvent : Event + attribute @@toStringTag + getter lengthComputable + getter loaded + getter total + method constructor +interface PromiseRejectionEvent : Event + attribute @@toStringTag + getter promise + getter reason + method constructor +interface PushManager + attribute @@toStringTag + method constructor + method getSubscription + method permissionState + method subscribe +interface PushSubscription + attribute @@toStringTag + getter endpoint + getter options + method constructor + method getKey + method toJSON + method unsubscribe +interface PushSubscriptionOptions + attribute @@toStringTag + getter applicationServerKey + getter userVisibleOnly + method constructor +interface RTCCertificate + attribute @@toStringTag + getter expires + method constructor +interface RTCDataChannel : EventTarget + attribute @@toStringTag + getter binaryType + getter bufferedAmount + getter bufferedAmountLowThreshold + getter id + getter label + getter maxRetransmitTime + getter maxRetransmits + getter negotiated + getter onbufferedamountlow + getter onclose + getter onerror + getter onmessage + getter onopen + getter ordered + getter protocol + getter readyState + getter reliable + method close + method constructor + method send + setter binaryType + setter bufferedAmountLowThreshold + setter onbufferedamountlow + setter onclose + setter onerror + setter onmessage + setter onopen +interface RTCDataChannelEvent : Event + attribute @@toStringTag + getter channel + method constructor +interface RTCIceCandidate + attribute @@toStringTag + getter candidate + getter sdpMLineIndex + getter sdpMid + method constructor + method toJSON + setter candidate + setter sdpMLineIndex + setter sdpMid +interface RTCPeerConnection : EventTarget + static method generateCertificate + attribute @@toStringTag + getter iceConnectionState + getter iceGatheringState + getter localDescription + getter onaddstream + getter ondatachannel + getter onicecandidate + getter oniceconnectionstatechange + getter onicegatheringstatechange + getter onnegotiationneeded + getter onremovestream + getter onsignalingstatechange + getter remoteDescription + getter signalingState + method addIceCandidate + method addStream + method close + method constructor + method createAnswer + method createDTMFSender + method createDataChannel + method createOffer + method getLocalStreams + method getReceivers + method getRemoteStreams + method getStats + method getStreamById + method removeStream + method setConfiguration + method setLocalDescription + method setRemoteDescription + setter onaddstream + setter ondatachannel + setter onicecandidate + setter oniceconnectionstatechange + setter onicegatheringstatechange + setter onnegotiationneeded + setter onremovestream + setter onsignalingstatechange +interface RTCPeerConnectionIceEvent : Event + attribute @@toStringTag + getter candidate + method constructor +interface RTCRtpContributingSource + attribute @@toStringTag + getter source + getter timestamp + method constructor +interface RTCRtpReceiver + attribute @@toStringTag + getter track + method constructor + method getContributingSources +interface RTCSessionDescription + attribute @@toStringTag + getter sdp + getter type + method constructor + 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 + method constructor + setter value +interface Range + attribute @@toStringTag + attribute END_TO_END + attribute END_TO_START + attribute START_TO_END + attribute START_TO_START + getter collapsed + getter commonAncestorContainer + getter endContainer + getter endOffset + getter startContainer + getter startOffset + method cloneContents + method cloneRange + method collapse + method compareBoundaryPoints + method comparePoint + method constructor + method createContextualFragment + method deleteContents + method detach + method expand + method extractContents + method getBoundingClientRect + method getClientRects + method insertNode + method intersectsNode + method isPointInRange + method selectNode + method selectNodeContents + method setEnd + method setEndAfter + method setEndBefore + method setStart + method setStartAfter + method setStartBefore + method surroundContents + method toString +interface ReadableStream + getter locked + method cancel + method constructor + method getReader + method pipeThrough + method pipeTo + method tee +interface RelatedEvent : Event + attribute @@toStringTag + getter relatedTarget + method constructor +interface RemotePlayback : EventTarget + attribute @@toStringTag + getter onconnect + getter onconnecting + getter ondisconnect + getter state + method cancelWatchAvailability + method constructor + method prompt + method watchAvailability + setter onconnect + setter onconnecting + setter ondisconnect +interface Request + attribute @@toStringTag + getter bodyUsed + getter cache + getter credentials + getter headers + getter integrity + getter method + getter mode + getter redirect + getter referrer + getter referrerPolicy + getter url + method arrayBuffer + method blob + method clone + method constructor + method json + method text +interface ResizeObserver + attribute @@toStringTag + method constructor + method disconnect + method observe + method unobserve +interface ResizeObserverEntry + attribute @@toStringTag + getter contentRect + getter target + method constructor +interface Response + static method error + static method redirect + attribute @@toStringTag + getter body + getter bodyUsed + getter headers + getter ok + getter redirected + getter status + getter statusText + getter type + getter url + method arrayBuffer + method blob + method clone + method constructor + method json + method text +interface SVGAElement : SVGGraphicsElement + attribute @@toStringTag + getter href + getter target + method constructor +interface SVGAngle + attribute @@toStringTag + attribute SVG_ANGLETYPE_DEG + attribute SVG_ANGLETYPE_GRAD + attribute SVG_ANGLETYPE_RAD + attribute SVG_ANGLETYPE_UNKNOWN + attribute SVG_ANGLETYPE_UNSPECIFIED + getter unitType + getter value + getter valueAsString + getter valueInSpecifiedUnits + method constructor + method convertToSpecifiedUnits + method newValueSpecifiedUnits + setter value + setter valueAsString + setter valueInSpecifiedUnits +interface SVGAnimateElement : SVGAnimationElement + attribute @@toStringTag + method constructor +interface SVGAnimateMotionElement : SVGAnimationElement + attribute @@toStringTag + method constructor +interface SVGAnimateTransformElement : SVGAnimationElement + attribute @@toStringTag + method constructor +interface SVGAnimatedAngle + attribute @@toStringTag + getter animVal + getter baseVal + method constructor +interface SVGAnimatedBoolean + attribute @@toStringTag + getter animVal + getter baseVal + method constructor + setter baseVal +interface SVGAnimatedEnumeration + attribute @@toStringTag + getter animVal + getter baseVal + method constructor + setter baseVal +interface SVGAnimatedInteger + attribute @@toStringTag + getter animVal + getter baseVal + method constructor + setter baseVal +interface SVGAnimatedLength + attribute @@toStringTag + getter animVal + getter baseVal + method constructor +interface SVGAnimatedLengthList + attribute @@toStringTag + getter animVal + getter baseVal + method constructor +interface SVGAnimatedNumber + attribute @@toStringTag + getter animVal + getter baseVal + method constructor + setter baseVal +interface SVGAnimatedNumberList + attribute @@toStringTag + getter animVal + getter baseVal + method constructor +interface SVGAnimatedPreserveAspectRatio + attribute @@toStringTag + getter animVal + getter baseVal + method constructor +interface SVGAnimatedRect + attribute @@toStringTag + getter animVal + getter baseVal + method constructor +interface SVGAnimatedString + attribute @@toStringTag + getter animVal + getter baseVal + method constructor + setter baseVal +interface SVGAnimatedTransformList + attribute @@toStringTag + getter animVal + getter baseVal + method constructor +interface SVGAnimationElement : SVGElement + attribute @@toStringTag + getter onbegin + getter onend + getter onrepeat + getter requiredExtensions + getter systemLanguage + getter targetElement + method beginElement + method beginElementAt + method constructor + method endElement + method endElementAt + method getCurrentTime + method getSimpleDuration + method getStartTime + setter onbegin + setter onend + setter onrepeat +interface SVGCircleElement : SVGGeometryElement + attribute @@toStringTag + getter cx + getter cy + getter r + method constructor +interface SVGClipPathElement : SVGGraphicsElement + attribute @@toStringTag + getter clipPathUnits + method constructor +interface SVGComponentTransferFunctionElement : SVGElement + attribute @@toStringTag + attribute SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE + attribute SVG_FECOMPONENTTRANSFER_TYPE_GAMMA + attribute SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY + attribute SVG_FECOMPONENTTRANSFER_TYPE_LINEAR + attribute SVG_FECOMPONENTTRANSFER_TYPE_TABLE + attribute SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN + getter amplitude + getter exponent + getter intercept + getter offset + getter slope + getter tableValues + getter type + method constructor +interface SVGDefsElement : SVGGraphicsElement + attribute @@toStringTag + method constructor +interface SVGDescElement : SVGElement + attribute @@toStringTag + method constructor +interface SVGDiscardElement : SVGElement + attribute @@toStringTag + method constructor +interface SVGElement : Element + attribute @@toStringTag + getter className + getter dataset + getter onabort + getter onauxclick + getter onblur + getter oncancel + getter oncanplay + getter oncanplaythrough + getter onchange + getter onclick + getter onclose + getter oncontextmenu + getter oncuechange + getter ondblclick + getter ondrag + getter ondragend + getter ondragenter + getter ondragleave + getter ondragover + getter ondragstart + getter ondrop + getter ondurationchange + getter onemptied + getter onended + getter onerror + getter onfocus + getter ongotpointercapture + getter oninput + getter oninvalid + getter onkeydown + getter onkeypress + getter onkeyup + getter onload + getter onloadeddata + getter onloadedmetadata + getter onloadstart + getter onlostpointercapture + getter onmousedown + getter onmouseenter + getter onmouseleave + getter onmousemove + getter onmouseout + getter onmouseover + getter onmouseup + getter onmousewheel + getter onpause + getter onplay + getter onplaying + getter onpointercancel + getter onpointerdown + getter onpointerenter + getter onpointerleave + getter onpointermove + getter onpointerout + getter onpointerover + getter onpointerup + getter onprogress + getter onratechange + getter onreset + getter onresize + getter onscroll + getter onseeked + getter onseeking + getter onselect + getter onshow + getter onstalled + getter onsubmit + getter onsuspend + getter ontimeupdate + getter ontoggle + getter ontouchcancel + getter ontouchend + getter ontouchmove + getter ontouchstart + getter onvolumechange + getter onwaiting + getter ownerSVGElement + getter style + getter tabIndex + getter viewportElement + method blur + method constructor + method focus + setter onabort + setter onauxclick + setter onblur + setter oncancel + setter oncanplay + setter oncanplaythrough + setter onchange + setter onclick + setter onclose + setter oncontextmenu + setter oncuechange + setter ondblclick + setter ondrag + setter ondragend + setter ondragenter + setter ondragleave + setter ondragover + setter ondragstart + setter ondrop + setter ondurationchange + setter onemptied + setter onended + setter onerror + setter onfocus + setter ongotpointercapture + setter oninput + setter oninvalid + setter onkeydown + setter onkeypress + setter onkeyup + setter onload + setter onloadeddata + setter onloadedmetadata + setter onloadstart + setter onlostpointercapture + setter onmousedown + setter onmouseenter + setter onmouseleave + setter onmousemove + setter onmouseout + setter onmouseover + setter onmouseup + setter onmousewheel + setter onpause + setter onplay + setter onplaying + setter onpointercancel + setter onpointerdown + setter onpointerenter + setter onpointerleave + setter onpointermove + setter onpointerout + setter onpointerover + setter onpointerup + setter onprogress + setter onratechange + setter onreset + setter onresize + setter onscroll + setter onseeked + setter onseeking + setter onselect + setter onshow + setter onstalled + setter onsubmit + setter onsuspend + setter ontimeupdate + setter ontoggle + setter ontouchcancel + setter ontouchend + setter ontouchmove + setter ontouchstart + setter onvolumechange + setter onwaiting + setter style + setter tabIndex +interface SVGEllipseElement : SVGGeometryElement + attribute @@toStringTag + getter cx + getter cy + getter rx + getter ry + method constructor +interface SVGFEBlendElement : SVGElement + attribute @@toStringTag + attribute SVG_FEBLEND_MODE_DARKEN + attribute SVG_FEBLEND_MODE_LIGHTEN + attribute SVG_FEBLEND_MODE_MULTIPLY + attribute SVG_FEBLEND_MODE_NORMAL + attribute SVG_FEBLEND_MODE_SCREEN + attribute SVG_FEBLEND_MODE_UNKNOWN + getter height + getter in1 + getter in2 + getter mode + getter result + getter width + getter x + getter y + method constructor +interface SVGFEColorMatrixElement : SVGElement + attribute @@toStringTag + attribute SVG_FECOLORMATRIX_TYPE_HUEROTATE + attribute SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA + attribute SVG_FECOLORMATRIX_TYPE_MATRIX + attribute SVG_FECOLORMATRIX_TYPE_SATURATE + attribute SVG_FECOLORMATRIX_TYPE_UNKNOWN + getter height + getter in1 + getter result + getter type + getter values + getter width + getter x + getter y + method constructor +interface SVGFEComponentTransferElement : SVGElement + attribute @@toStringTag + getter height + getter in1 + getter result + getter width + getter x + getter y + method constructor +interface SVGFECompositeElement : SVGElement + attribute @@toStringTag + attribute SVG_FECOMPOSITE_OPERATOR_ARITHMETIC + attribute SVG_FECOMPOSITE_OPERATOR_ATOP + attribute SVG_FECOMPOSITE_OPERATOR_IN + attribute SVG_FECOMPOSITE_OPERATOR_OUT + attribute SVG_FECOMPOSITE_OPERATOR_OVER + attribute SVG_FECOMPOSITE_OPERATOR_UNKNOWN + attribute SVG_FECOMPOSITE_OPERATOR_XOR + getter height + getter in1 + getter in2 + getter k1 + getter k2 + getter k3 + getter k4 + getter operator + getter result + getter width + getter x + getter y + method constructor +interface SVGFEConvolveMatrixElement : SVGElement + attribute @@toStringTag + attribute SVG_EDGEMODE_DUPLICATE + attribute SVG_EDGEMODE_NONE + attribute SVG_EDGEMODE_UNKNOWN + attribute SVG_EDGEMODE_WRAP + getter bias + getter divisor + getter edgeMode + getter height + getter in1 + getter kernelMatrix + getter kernelUnitLengthX + getter kernelUnitLengthY + getter orderX + getter orderY + getter preserveAlpha + getter result + getter targetX + getter targetY + getter width + getter x + getter y + method constructor +interface SVGFEDiffuseLightingElement : SVGElement + attribute @@toStringTag + getter diffuseConstant + getter height + getter in1 + getter kernelUnitLengthX + getter kernelUnitLengthY + getter result + getter surfaceScale + getter width + getter x + getter y + method constructor +interface SVGFEDisplacementMapElement : SVGElement + attribute @@toStringTag + attribute SVG_CHANNEL_A + attribute SVG_CHANNEL_B + attribute SVG_CHANNEL_G + attribute SVG_CHANNEL_R + attribute SVG_CHANNEL_UNKNOWN + getter height + getter in1 + getter in2 + getter result + getter scale + getter width + getter x + getter xChannelSelector + getter y + getter yChannelSelector + method constructor +interface SVGFEDistantLightElement : SVGElement + attribute @@toStringTag + getter azimuth + getter elevation + method constructor +interface SVGFEDropShadowElement : SVGElement + attribute @@toStringTag + getter dx + getter dy + getter height + getter in1 + getter result + getter stdDeviationX + getter stdDeviationY + getter width + getter x + getter y + method constructor + method setStdDeviation +interface SVGFEFloodElement : SVGElement + attribute @@toStringTag + getter height + getter result + getter width + getter x + getter y + method constructor +interface SVGFEFuncAElement : SVGComponentTransferFunctionElement + attribute @@toStringTag + method constructor +interface SVGFEFuncBElement : SVGComponentTransferFunctionElement + attribute @@toStringTag + method constructor +interface SVGFEFuncGElement : SVGComponentTransferFunctionElement + attribute @@toStringTag + method constructor +interface SVGFEFuncRElement : SVGComponentTransferFunctionElement + attribute @@toStringTag + method constructor +interface SVGFEGaussianBlurElement : SVGElement + attribute @@toStringTag + getter height + getter in1 + getter result + getter stdDeviationX + getter stdDeviationY + getter width + getter x + getter y + method constructor + method setStdDeviation +interface SVGFEImageElement : SVGElement + attribute @@toStringTag + getter height + getter href + getter preserveAspectRatio + getter result + getter width + getter x + getter y + method constructor +interface SVGFEMergeElement : SVGElement + attribute @@toStringTag + getter height + getter result + getter width + getter x + getter y + method constructor +interface SVGFEMergeNodeElement : SVGElement + attribute @@toStringTag + getter in1 + method constructor +interface SVGFEMorphologyElement : SVGElement + attribute @@toStringTag + attribute SVG_MORPHOLOGY_OPERATOR_DILATE + attribute SVG_MORPHOLOGY_OPERATOR_ERODE + attribute SVG_MORPHOLOGY_OPERATOR_UNKNOWN + getter height + getter in1 + getter operator + getter radiusX + getter radiusY + getter result + getter width + getter x + getter y + method constructor +interface SVGFEOffsetElement : SVGElement + attribute @@toStringTag + getter dx + getter dy + getter height + getter in1 + getter result + getter width + getter x + getter y + method constructor +interface SVGFEPointLightElement : SVGElement + attribute @@toStringTag + getter x + getter y + getter z + method constructor +interface SVGFESpecularLightingElement : SVGElement + attribute @@toStringTag + getter height + getter in1 + getter kernelUnitLengthX + getter kernelUnitLengthY + getter result + getter specularConstant + getter specularExponent + getter surfaceScale + getter width + getter x + getter y + method constructor +interface SVGFESpotLightElement : SVGElement + attribute @@toStringTag + getter limitingConeAngle + getter pointsAtX + getter pointsAtY + getter pointsAtZ + getter specularExponent + getter x + getter y + getter z + method constructor +interface SVGFETileElement : SVGElement + attribute @@toStringTag + getter height + getter in1 + getter result + getter width + getter x + getter y + method constructor +interface SVGFETurbulenceElement : SVGElement + attribute @@toStringTag + attribute SVG_STITCHTYPE_NOSTITCH + attribute SVG_STITCHTYPE_STITCH + attribute SVG_STITCHTYPE_UNKNOWN + attribute SVG_TURBULENCE_TYPE_FRACTALNOISE + attribute SVG_TURBULENCE_TYPE_TURBULENCE + attribute SVG_TURBULENCE_TYPE_UNKNOWN + getter baseFrequencyX + getter baseFrequencyY + getter height + getter numOctaves + getter result + getter seed + getter stitchTiles + getter type + getter width + getter x + getter y + method constructor +interface SVGFilterElement : SVGElement + attribute @@toStringTag + getter filterUnits + getter height + getter href + getter primitiveUnits + getter width + getter x + getter y + method constructor +interface SVGForeignObjectElement : SVGGraphicsElement + attribute @@toStringTag + getter height + getter width + getter x + getter y + method constructor +interface SVGGElement : SVGGraphicsElement + attribute @@toStringTag + method constructor +interface SVGGeometryElement : SVGGraphicsElement + attribute @@toStringTag + getter pathLength + method constructor + method getPointAtLength + method getTotalLength + method isPointInFill + method isPointInStroke +interface SVGGradientElement : SVGElement + attribute @@toStringTag + attribute SVG_SPREADMETHOD_PAD + attribute SVG_SPREADMETHOD_REFLECT + attribute SVG_SPREADMETHOD_REPEAT + attribute SVG_SPREADMETHOD_UNKNOWN + getter gradientTransform + getter gradientUnits + getter href + getter spreadMethod + method constructor +interface SVGGraphicsElement : SVGElement + attribute @@toStringTag + getter farthestViewportElement + getter nearestViewportElement + getter requiredExtensions + getter systemLanguage + getter transform + method constructor + method getBBox + method getCTM + method getScreenCTM +interface SVGImageElement : SVGGraphicsElement + attribute @@toStringTag + getter height + getter href + getter preserveAspectRatio + getter width + getter x + getter y + method constructor +interface SVGLength + attribute @@toStringTag + attribute SVG_LENGTHTYPE_CM + attribute SVG_LENGTHTYPE_EMS + attribute SVG_LENGTHTYPE_EXS + attribute SVG_LENGTHTYPE_IN + attribute SVG_LENGTHTYPE_MM + attribute SVG_LENGTHTYPE_NUMBER + attribute SVG_LENGTHTYPE_PC + attribute SVG_LENGTHTYPE_PERCENTAGE + attribute SVG_LENGTHTYPE_PT + attribute SVG_LENGTHTYPE_PX + attribute SVG_LENGTHTYPE_UNKNOWN + getter unitType + getter value + getter valueAsString + getter valueInSpecifiedUnits + method constructor + method convertToSpecifiedUnits + method newValueSpecifiedUnits + setter value + setter valueAsString + setter valueInSpecifiedUnits +interface SVGLengthList + attribute @@toStringTag + getter length + getter numberOfItems + method @@iterator + method appendItem + method clear + method constructor + method getItem + method initialize + method insertItemBefore + method removeItem + method replaceItem +interface SVGLineElement : SVGGeometryElement + attribute @@toStringTag + getter x1 + getter x2 + getter y1 + getter y2 + method constructor +interface SVGLinearGradientElement : SVGGradientElement + attribute @@toStringTag + getter x1 + getter x2 + getter y1 + getter y2 + method constructor +interface SVGMPathElement : SVGElement + attribute @@toStringTag + getter href + method constructor +interface SVGMarkerElement : SVGElement + attribute @@toStringTag + attribute SVG_MARKERUNITS_STROKEWIDTH + attribute SVG_MARKERUNITS_UNKNOWN + attribute SVG_MARKERUNITS_USERSPACEONUSE + attribute SVG_MARKER_ORIENT_ANGLE + attribute SVG_MARKER_ORIENT_AUTO + attribute SVG_MARKER_ORIENT_UNKNOWN + getter markerHeight + getter markerUnits + getter markerWidth + getter orientAngle + getter orientType + getter preserveAspectRatio + getter refX + getter refY + getter viewBox + method constructor + method setOrientToAngle + method setOrientToAuto +interface SVGMaskElement : SVGElement + attribute @@toStringTag + getter height + getter maskContentUnits + getter maskUnits + getter requiredExtensions + getter systemLanguage + getter width + getter x + getter y + method constructor +interface SVGMatrix + attribute @@toStringTag + getter a + getter b + getter c + getter d + getter e + getter f + method constructor + method flipX + method flipY + method inverse + method multiply + method rotate + method rotateFromVector + method scale + method scaleNonUniform + method skewX + method skewY + method translate + setter a + setter b + setter c + setter d + setter e + setter f +interface SVGMetadataElement : SVGElement + attribute @@toStringTag + method constructor +interface SVGNumber + attribute @@toStringTag + getter value + method constructor + setter value +interface SVGNumberList + attribute @@toStringTag + getter length + getter numberOfItems + method @@iterator + method appendItem + method clear + method constructor + method getItem + method initialize + method insertItemBefore + method removeItem + method replaceItem +interface SVGPathElement : SVGGeometryElement + attribute @@toStringTag + method constructor + method getPathSegAtLength +interface SVGPatternElement : SVGElement + attribute @@toStringTag + getter height + getter href + getter patternContentUnits + getter patternTransform + getter patternUnits + getter preserveAspectRatio + getter requiredExtensions + getter systemLanguage + getter viewBox + getter width + getter x + getter y + method constructor +interface SVGPoint + attribute @@toStringTag + getter x + getter y + method constructor + method matrixTransform + setter x + setter y +interface SVGPointList + attribute @@toStringTag + getter length + getter numberOfItems + method @@iterator + method appendItem + method clear + method constructor + method getItem + method initialize + method insertItemBefore + method removeItem + method replaceItem +interface SVGPolygonElement : SVGGeometryElement + attribute @@toStringTag + getter animatedPoints + getter points + method constructor +interface SVGPolylineElement : SVGGeometryElement + attribute @@toStringTag + getter animatedPoints + getter points + method constructor +interface SVGPreserveAspectRatio + attribute @@toStringTag + attribute SVG_MEETORSLICE_MEET + attribute SVG_MEETORSLICE_SLICE + attribute SVG_MEETORSLICE_UNKNOWN + attribute SVG_PRESERVEASPECTRATIO_NONE + attribute SVG_PRESERVEASPECTRATIO_UNKNOWN + attribute SVG_PRESERVEASPECTRATIO_XMAXYMAX + attribute SVG_PRESERVEASPECTRATIO_XMAXYMID + attribute SVG_PRESERVEASPECTRATIO_XMAXYMIN + attribute SVG_PRESERVEASPECTRATIO_XMIDYMAX + attribute SVG_PRESERVEASPECTRATIO_XMIDYMID + attribute SVG_PRESERVEASPECTRATIO_XMIDYMIN + attribute SVG_PRESERVEASPECTRATIO_XMINYMAX + attribute SVG_PRESERVEASPECTRATIO_XMINYMID + attribute SVG_PRESERVEASPECTRATIO_XMINYMIN + getter align + getter meetOrSlice + method constructor + setter align + setter meetOrSlice +interface SVGRadialGradientElement : SVGGradientElement + attribute @@toStringTag + getter cx + getter cy + getter fr + getter fx + getter fy + getter r + method constructor +interface SVGRect + attribute @@toStringTag + getter height + getter width + getter x + getter y + method constructor + setter height + setter width + setter x + setter y +interface SVGRectElement : SVGGeometryElement + attribute @@toStringTag + getter height + getter rx + getter ry + getter width + getter x + getter y + method constructor +interface SVGSVGElement : SVGGraphicsElement + attribute @@toStringTag + attribute SVG_ZOOMANDPAN_DISABLE + attribute SVG_ZOOMANDPAN_MAGNIFY + attribute SVG_ZOOMANDPAN_UNKNOWN + getter currentScale + getter currentTranslate + getter height + getter preserveAspectRatio + getter viewBox + getter width + getter x + getter y + getter zoomAndPan + method animationsPaused + method checkEnclosure + method checkIntersection + method constructor + method createSVGAngle + method createSVGLength + method createSVGMatrix + method createSVGNumber + method createSVGPoint + method createSVGRect + method createSVGTransform + method createSVGTransformFromMatrix + method deselectAll + method forceRedraw + method getCurrentTime + method getElementById + method getEnclosureList + method getIntersectionList + method pauseAnimations + method setCurrentTime + method suspendRedraw + method unpauseAnimations + method unsuspendRedraw + method unsuspendRedrawAll + setter currentScale + setter zoomAndPan +interface SVGScriptElement : SVGElement + attribute @@toStringTag + getter href + getter nonce + getter type + method constructor + setter nonce + setter type +interface SVGSetElement : SVGAnimationElement + attribute @@toStringTag + method constructor +interface SVGStopElement : SVGElement + attribute @@toStringTag + getter offset + method constructor +interface SVGStringList + attribute @@toStringTag + getter length + getter numberOfItems + method @@iterator + method appendItem + method clear + method constructor + method getItem + method initialize + method insertItemBefore + method removeItem + method replaceItem +interface SVGStyleElement : SVGElement + attribute @@toStringTag + getter disabled + getter media + getter sheet + getter title + getter type + method constructor + setter disabled + setter media + setter title + setter type +interface SVGSwitchElement : SVGGraphicsElement + attribute @@toStringTag + method constructor +interface SVGSymbolElement : SVGElement + attribute @@toStringTag + getter preserveAspectRatio + getter viewBox + method constructor +interface SVGTSpanElement : SVGTextPositioningElement + attribute @@toStringTag + method constructor +interface SVGTextContentElement : SVGGraphicsElement + attribute @@toStringTag + attribute LENGTHADJUST_SPACING + attribute LENGTHADJUST_SPACINGANDGLYPHS + attribute LENGTHADJUST_UNKNOWN + getter lengthAdjust + getter textLength + method constructor + method getCharNumAtPosition + method getComputedTextLength + method getEndPositionOfChar + method getExtentOfChar + method getNumberOfChars + method getRotationOfChar + method getStartPositionOfChar + method getSubStringLength + method selectSubString +interface SVGTextElement : SVGTextPositioningElement + attribute @@toStringTag + method constructor +interface SVGTextPathElement : SVGTextContentElement + attribute @@toStringTag + attribute TEXTPATH_METHODTYPE_ALIGN + attribute TEXTPATH_METHODTYPE_STRETCH + attribute TEXTPATH_METHODTYPE_UNKNOWN + attribute TEXTPATH_SPACINGTYPE_AUTO + attribute TEXTPATH_SPACINGTYPE_EXACT + attribute TEXTPATH_SPACINGTYPE_UNKNOWN + getter href + getter method + getter spacing + getter startOffset + method constructor +interface SVGTextPositioningElement : SVGTextContentElement + attribute @@toStringTag + getter dx + getter dy + getter rotate + getter x + getter y + method constructor +interface SVGTitleElement : SVGElement + attribute @@toStringTag + method constructor +interface SVGTransform + attribute @@toStringTag + attribute SVG_TRANSFORM_MATRIX + attribute SVG_TRANSFORM_ROTATE + attribute SVG_TRANSFORM_SCALE + attribute SVG_TRANSFORM_SKEWX + attribute SVG_TRANSFORM_SKEWY + attribute SVG_TRANSFORM_TRANSLATE + attribute SVG_TRANSFORM_UNKNOWN + getter angle + getter matrix + getter type + method constructor + method setMatrix + method setRotate + method setScale + method setSkewX + method setSkewY + method setTranslate +interface SVGTransformList + attribute @@toStringTag + getter length + getter numberOfItems + method @@iterator + method appendItem + method clear + method consolidate + method constructor + method createSVGTransformFromMatrix + method getItem + method initialize + method insertItemBefore + method removeItem + method replaceItem +interface SVGUnitTypes + attribute @@toStringTag + attribute SVG_UNIT_TYPE_OBJECTBOUNDINGBOX + attribute SVG_UNIT_TYPE_UNKNOWN + attribute SVG_UNIT_TYPE_USERSPACEONUSE + method constructor +interface SVGUseElement : SVGGraphicsElement + attribute @@toStringTag + getter height + getter href + getter width + getter x + getter y + method constructor +interface SVGViewElement : SVGElement + attribute @@toStringTag + attribute SVG_ZOOMANDPAN_DISABLE + attribute SVG_ZOOMANDPAN_MAGNIFY + attribute SVG_ZOOMANDPAN_UNKNOWN + getter preserveAspectRatio + getter viewBox + getter zoomAndPan + method constructor + setter zoomAndPan +interface ScopedCredential + attribute @@toStringTag + getter id + getter type + method constructor +interface ScopedCredentialInfo + attribute @@toStringTag + getter attestation + getter clientData + method constructor +interface Screen + attribute @@toStringTag + getter availHeight + getter availLeft + getter availTop + getter availWidth + getter colorDepth + getter height + getter keepAwake + getter orientation + getter pixelDepth + getter width + method constructor + setter keepAwake +interface ScreenOrientation : EventTarget + attribute @@toStringTag + getter angle + getter onchange + getter type + method constructor + method lock + method unlock + setter onchange +interface ScriptProcessorNode : AudioNode + attribute @@toStringTag + getter bufferSize + getter onaudioprocess + method constructor + setter onaudioprocess +interface SecurityPolicyViolationEvent : Event + attribute @@toStringTag + getter blockedURI + getter columnNumber + getter disposition + getter documentURI + getter effectiveDirective + getter lineNumber + getter originalPolicy + getter referrer + getter sample + getter sourceFile + getter statusCode + getter violatedDirective + method constructor +interface Selection + attribute @@toStringTag + getter anchorNode + getter anchorOffset + getter baseNode + getter baseOffset + getter extentNode + getter extentOffset + getter focusNode + getter focusOffset + getter isCollapsed + getter rangeCount + getter type + method addRange + method collapse + method collapseToEnd + method collapseToStart + method constructor + method containsNode + method deleteFromDocument + method empty + method extend + method getRangeAt + method modify + method removeAllRanges + method removeRange + method selectAllChildren + method setBaseAndExtent + method setPosition + method toString +interface Sensor : EventTarget + attribute @@toStringTag + getter activated + getter onactivate + getter onchange + getter onerror + getter timestamp + method constructor + method start + method stop + setter onactivate + setter onchange + setter onerror +interface SensorErrorEvent : Event + attribute @@toStringTag + getter error + method constructor +interface ServiceWorker : EventTarget + attribute @@toStringTag + getter onerror + getter onstatechange + getter scriptURL + getter state + method constructor + method postMessage + setter onerror + setter onstatechange +interface ServiceWorkerContainer : EventTarget + attribute @@toStringTag + getter controller + getter oncontrollerchange + getter onmessage + getter ready + method constructor + method getRegistration + method getRegistrations + method register + setter oncontrollerchange + setter onmessage +interface ServiceWorkerRegistration : EventTarget + attribute @@toStringTag + getter active + getter backgroundFetch + getter installing + getter onupdatefound + getter paymentManager + getter pushManager + getter scope + getter sync + getter waiting + method constructor + method getNotifications + method showNotification + method unregister + method update + setter onupdatefound +interface ShadowRoot : DocumentFragment + attribute @@toStringTag + getter activeElement + getter delegatesFocus + getter fullscreenElement + getter host + getter innerHTML + getter mode + getter olderShadowRoot + getter pointerLockElement + getter styleSheets + method constructor + method elementFromPoint + method elementsFromPoint + method getSelection + setter innerHTML +interface SharedWorker : EventTarget + attribute @@toStringTag + getter onerror + getter port + getter workerStart + method constructor + setter onerror +interface SiteBoundCredential : Credential + attribute @@toStringTag + getter iconURL + getter name + method constructor +interface SourceBuffer : EventTarget + attribute @@toStringTag + getter appendWindowEnd + getter appendWindowStart + getter audioTracks + getter buffered + getter mode + getter onabort + getter onerror + getter onupdate + getter onupdateend + getter onupdatestart + getter timestampOffset + getter trackDefaults + getter updating + getter videoTracks + method abort + method appendBuffer + method constructor + method remove + setter appendWindowEnd + setter appendWindowStart + setter mode + setter onabort + setter onerror + setter onupdate + setter onupdateend + setter onupdatestart + setter timestampOffset + setter trackDefaults +interface SourceBufferList : EventTarget + attribute @@toStringTag + getter length + getter onaddsourcebuffer + getter onremovesourcebuffer + method @@iterator + method constructor + setter onaddsourcebuffer + setter onremovesourcebuffer +interface SpeechSynthesisEvent : Event + attribute @@toStringTag + getter charIndex + getter elapsedTime + getter name + getter utterance + method constructor +interface SpeechSynthesisUtterance : EventTarget + attribute @@toStringTag + getter lang + getter onboundary + getter onend + getter onerror + getter onmark + getter onpause + getter onresume + getter onstart + getter pitch + getter rate + getter text + getter voice + getter volume + method constructor + setter lang + setter onboundary + setter onend + setter onerror + setter onmark + setter onpause + setter onresume + setter onstart + setter pitch + setter rate + setter text + setter voice + setter volume +interface StaticRange + attribute @@toStringTag + getter collapsed + getter endContainer + getter endOffset + getter startContainer + getter startOffset + method constructor + method setEnd + method setStart + method toRange + setter endContainer + setter endOffset + setter startContainer + setter startOffset +interface StereoPannerNode : AudioNode + attribute @@toStringTag + getter pan + method constructor +interface Storage + attribute @@toStringTag + getter length + method clear + method constructor + method getItem + method key + method removeItem + method setItem +interface StorageEvent : Event + attribute @@toStringTag + getter key + getter newValue + getter oldValue + getter storageArea + getter url + method constructor + method initStorageEvent +interface StorageManager + attribute @@toStringTag + method constructor + method estimate + method persist + method persisted +interface StylePropertyMap : StylePropertyMapReadonly + attribute @@toStringTag + method append + method constructor + method delete + method set +interface StylePropertyMapReadonly + attribute @@toStringTag + method @@iterator + method constructor + method entries + method forEach + method get + method getAll + method getProperties + method has + method keys + method values +interface StyleSheet + attribute @@toStringTag + getter disabled + getter href + getter media + getter ownerNode + getter parentStyleSheet + getter title + getter type + method constructor + setter disabled +interface StyleSheetList + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item +interface SubtleCrypto + attribute @@toStringTag + method constructor + method decrypt + method deriveBits + method deriveKey + method digest + method encrypt + method exportKey + method generateKey + method importKey + method sign + method unwrapKey + method verify + method wrapKey +interface SyncManager + attribute @@toStringTag + method constructor + method getTags + method register +interface TaskAttributionTiming : PerformanceEntry + attribute @@toStringTag + getter containerId + getter containerName + getter containerSrc + getter containerType + method constructor +interface Text : CharacterData + attribute @@toStringTag + getter assignedSlot + getter wholeText + method constructor + method getDestinationInsertionPoints + method splitText +interface TextDecoder + attribute @@toStringTag + getter encoding + getter fatal + getter ignoreBOM + method constructor + method decode +interface TextDetector + attribute @@toStringTag + method constructor + method detect +interface TextEncoder + attribute @@toStringTag + getter encoding + method constructor + method encode +interface TextEvent : UIEvent + attribute @@toStringTag + getter data + method constructor + method initTextEvent +interface TextMetrics + attribute @@toStringTag + getter actualBoundingBoxAscent + getter actualBoundingBoxDescent + getter actualBoundingBoxLeft + getter actualBoundingBoxRight + getter alphabeticBaseline + getter emHeightAscent + getter emHeightDescent + getter fontBoundingBoxAscent + getter fontBoundingBoxDescent + getter hangingBaseline + getter ideographicBaseline + getter width + method constructor +interface TextTrack : EventTarget + attribute @@toStringTag + getter activeCues + getter cues + getter id + getter kind + getter label + getter language + getter mode + getter oncuechange + method addCue + method constructor + method removeCue + setter mode + setter oncuechange +interface TextTrackCue : EventTarget + attribute @@toStringTag + getter endTime + getter id + getter onenter + getter onexit + getter pauseOnExit + getter startTime + getter track + method constructor + setter endTime + setter id + setter onenter + setter onexit + setter pauseOnExit + setter startTime +interface TextTrackCueList + attribute @@toStringTag + getter length + method @@iterator + method constructor + method getCueById +interface TextTrackList : EventTarget + attribute @@toStringTag + getter length + getter onaddtrack + getter onchange + getter onremovetrack + method @@iterator + method constructor + method getTrackById + setter onaddtrack + setter onchange + setter onremovetrack +interface TimeRanges + attribute @@toStringTag + getter length + method constructor + method end + method start +interface Touch + attribute @@toStringTag + getter clientX + getter clientY + getter force + getter identifier + getter pageX + getter pageY + getter radiusX + getter radiusY + getter region + getter rotationAngle + getter screenX + getter screenY + getter target + method constructor +interface TouchEvent : UIEvent + attribute @@toStringTag + getter altKey + getter changedTouches + getter ctrlKey + getter metaKey + getter shiftKey + getter targetTouches + getter touches + method constructor +interface TouchList + attribute @@toStringTag + getter length + method @@iterator + method constructor + method item +interface TrackDefault + attribute @@toStringTag + getter byteStreamTrackID + getter kinds + getter label + getter language + getter type + method constructor +interface TrackDefaultList + attribute @@toStringTag + getter length + method @@iterator + method constructor +interface TrackEvent : Event + attribute @@toStringTag + getter track + method constructor +interface TransitionEvent : Event + attribute @@toStringTag + getter elapsedTime + getter propertyName + getter pseudoElement + method constructor +interface TreeWalker + attribute @@toStringTag + getter currentNode + getter filter + getter root + getter whatToShow + method constructor + method firstChild + method lastChild + method nextNode + method nextSibling + method parentNode + method previousNode + method previousSibling + setter currentNode +interface UIEvent : Event + attribute @@toStringTag + getter detail + getter sourceCapabilities + getter view + getter which + method constructor + method initUIEvent +interface URL + static method createObjectURL + static method revokeObjectURL + attribute @@toStringTag + getter hash + getter host + getter hostname + getter href + getter origin + getter password + getter pathname + getter port + getter protocol + getter search + getter searchParams + getter username + method constructor + method toString + setter hash + setter host + setter hostname + setter href + setter password + setter pathname + setter port + setter protocol + setter search + setter username +interface URLSearchParams + attribute @@toStringTag + method @@iterator + method append + method constructor + method delete + method entries + method forEach + method get + method getAll + method has + method keys + method set + method toString + method values +interface USB : EventTarget + attribute @@toStringTag + getter onconnect + getter ondisconnect + method constructor + method getDevices + method requestDevice + setter onconnect + setter ondisconnect +interface USBAlternateInterface + attribute @@toStringTag + getter alternateSetting + getter endpoints + getter interfaceClass + getter interfaceName + getter interfaceProtocol + getter interfaceSubclass + method constructor +interface USBConfiguration + attribute @@toStringTag + getter configurationName + getter configurationValue + getter interfaces + method constructor +interface USBConnectionEvent : Event + attribute @@toStringTag + getter device + method constructor +interface USBDevice + attribute @@toStringTag + getter configuration + getter configurations + getter deviceClass + getter deviceProtocol + getter deviceSubclass + getter deviceVersionMajor + getter deviceVersionMinor + getter deviceVersionSubminor + getter manufacturerName + getter opened + getter productId + getter productName + getter serialNumber + getter usbVersionMajor + getter usbVersionMinor + getter usbVersionSubminor + getter vendorId + method claimInterface + method clearHalt + method close + method constructor + method controlTransferIn + method controlTransferOut + method isochronousTransferIn + method isochronousTransferOut + method open + method releaseInterface + method reset + method selectAlternateInterface + method selectConfiguration + method transferIn + method transferOut +interface USBEndpoint + attribute @@toStringTag + getter direction + getter endpointNumber + getter packetSize + getter type + method constructor +interface USBInTransferResult + attribute @@toStringTag + getter data + getter status + method constructor +interface USBInterface + attribute @@toStringTag + getter alternate + getter alternates + getter claimed + getter interfaceNumber + method constructor +interface USBIsochronousInTransferPacket + attribute @@toStringTag + getter data + getter status + method constructor +interface USBIsochronousInTransferResult + attribute @@toStringTag + getter data + getter packets + method constructor +interface USBIsochronousOutTransferPacket + attribute @@toStringTag + getter bytesWritten + getter status + method constructor +interface USBIsochronousOutTransferResult + attribute @@toStringTag + getter packets + method constructor +interface USBOutTransferResult + attribute @@toStringTag + getter bytesWritten + getter status + method constructor +interface VRDisplay : EventTarget + attribute @@toStringTag + getter capabilities + getter depthFar + getter depthNear + getter displayId + getter displayName + getter isPresenting + getter stageParameters + method cancelAnimationFrame + method constructor + method exitPresent + method getEyeParameters + method getFrameData + method getLayers + method requestAnimationFrame + method requestPresent + method submitFrame + setter depthFar + setter depthNear +interface VRDisplayCapabilities + attribute @@toStringTag + getter canPresent + getter hasExternalDisplay + getter hasPosition + getter maxLayers + method constructor +interface VRDisplayEvent : Event + attribute @@toStringTag + getter display + getter reason + method constructor +interface VREyeParameters + attribute @@toStringTag + getter offset + getter renderHeight + getter renderWidth + method constructor +interface VRFrameData + attribute @@toStringTag + getter leftProjectionMatrix + getter leftViewMatrix + getter pose + getter rightProjectionMatrix + getter rightViewMatrix + method constructor +interface VRPose + attribute @@toStringTag + getter angularAcceleration + getter angularVelocity + getter linearAcceleration + getter linearVelocity + getter orientation + getter position + method constructor +interface VRStageParameters + attribute @@toStringTag + getter sittingToStandingTransform + getter sizeX + getter sizeZ + method constructor +interface VTTCue : TextTrackCue + attribute @@toStringTag + getter align + getter line + getter position + getter region + getter size + getter snapToLines + getter text + getter vertical + method constructor + method getCueAsHTML + setter align + setter line + setter position + setter region + setter size + setter snapToLines + setter text + setter vertical +interface VTTRegion + attribute @@toStringTag + getter lines + getter regionAnchorX + getter regionAnchorY + getter scroll + getter viewportAnchorX + getter viewportAnchorY + getter width + method constructor + setter lines + setter regionAnchorX + setter regionAnchorY + setter scroll + setter viewportAnchorX + setter viewportAnchorY + setter width +interface ValidityState + attribute @@toStringTag + getter badInput + getter customError + getter patternMismatch + getter rangeOverflow + getter rangeUnderflow + getter stepMismatch + getter tooLong + getter tooShort + getter typeMismatch + getter valid + getter valueMissing + method constructor +interface VideoPlaybackQuality + attribute @@toStringTag + getter corruptedVideoFrames + getter creationTime + getter droppedVideoFrames + getter totalVideoFrames + method constructor +interface VideoTrack + attribute @@toStringTag + getter id + getter kind + getter label + getter language + getter selected + getter sourceBuffer + method constructor + setter selected +interface VideoTrackList : EventTarget + attribute @@toStringTag + getter length + getter onaddtrack + getter onchange + getter onremovetrack + getter selectedIndex + method @@iterator + method constructor + method getTrackById + setter onaddtrack + setter onchange + setter onremovetrack +interface VisualViewport : EventTarget + attribute @@toStringTag + getter clientHeight + getter clientWidth + getter pageX + getter pageY + getter scale + getter scrollLeft + getter scrollTop + method constructor +interface WaveShaperNode : AudioNode + attribute @@toStringTag + getter curve + getter oversample + method constructor + setter curve + setter oversample +interface WebAuthentication + attribute @@toStringTag + method constructor + method getAssertion + method makeCredential +interface WebGL2RenderingContext + attribute @@toStringTag + attribute ACTIVE_ATTRIBUTES + attribute ACTIVE_TEXTURE + attribute ACTIVE_UNIFORMS + attribute ACTIVE_UNIFORM_BLOCKS + attribute ALIASED_LINE_WIDTH_RANGE + attribute ALIASED_POINT_SIZE_RANGE + attribute ALPHA + attribute ALPHA_BITS + attribute ALREADY_SIGNALED + attribute ALWAYS + attribute ANY_SAMPLES_PASSED + attribute ANY_SAMPLES_PASSED_CONSERVATIVE + attribute ARRAY_BUFFER + attribute ARRAY_BUFFER_BINDING + attribute ATTACHED_SHADERS + attribute BACK + attribute BLEND + attribute BLEND_COLOR + attribute BLEND_DST_ALPHA + attribute BLEND_DST_RGB + attribute BLEND_EQUATION + attribute BLEND_EQUATION_ALPHA + attribute BLEND_EQUATION_RGB + attribute BLEND_SRC_ALPHA + attribute BLEND_SRC_RGB + attribute BLUE_BITS + attribute BOOL + attribute BOOL_VEC2 + attribute BOOL_VEC3 + attribute BOOL_VEC4 + attribute BROWSER_DEFAULT_WEBGL + attribute BUFFER_SIZE + attribute BUFFER_USAGE + attribute BYTE + attribute CCW + attribute CLAMP_TO_EDGE + attribute COLOR + attribute COLOR_ATTACHMENT0 + attribute COLOR_ATTACHMENT1 + attribute COLOR_ATTACHMENT10 + attribute COLOR_ATTACHMENT11 + attribute COLOR_ATTACHMENT12 + attribute COLOR_ATTACHMENT13 + attribute COLOR_ATTACHMENT14 + attribute COLOR_ATTACHMENT15 + attribute COLOR_ATTACHMENT2 + attribute COLOR_ATTACHMENT3 + attribute COLOR_ATTACHMENT4 + attribute COLOR_ATTACHMENT5 + attribute COLOR_ATTACHMENT6 + attribute COLOR_ATTACHMENT7 + attribute COLOR_ATTACHMENT8 + attribute COLOR_ATTACHMENT9 + attribute COLOR_BUFFER_BIT + attribute COLOR_CLEAR_VALUE + attribute COLOR_WRITEMASK + attribute COMPARE_REF_TO_TEXTURE + attribute COMPILE_STATUS + attribute COMPRESSED_TEXTURE_FORMATS + attribute CONDITION_SATISFIED + attribute CONSTANT_ALPHA + attribute CONSTANT_COLOR + attribute CONTEXT_LOST_WEBGL + attribute COPY_READ_BUFFER + attribute COPY_READ_BUFFER_BINDING + attribute COPY_WRITE_BUFFER + attribute COPY_WRITE_BUFFER_BINDING + attribute CULL_FACE + attribute CULL_FACE_MODE + attribute CURRENT_PROGRAM + attribute CURRENT_QUERY + attribute CURRENT_VERTEX_ATTRIB + attribute CW + attribute DECR + attribute DECR_WRAP + attribute DELETE_STATUS + attribute DEPTH + attribute DEPTH24_STENCIL8 + attribute DEPTH32F_STENCIL8 + attribute DEPTH_ATTACHMENT + attribute DEPTH_BITS + attribute DEPTH_BUFFER_BIT + attribute DEPTH_CLEAR_VALUE + attribute DEPTH_COMPONENT + attribute DEPTH_COMPONENT16 + attribute DEPTH_COMPONENT24 + attribute DEPTH_COMPONENT32F + attribute DEPTH_FUNC + attribute DEPTH_RANGE + attribute DEPTH_STENCIL + attribute DEPTH_STENCIL_ATTACHMENT + attribute DEPTH_TEST + attribute DEPTH_WRITEMASK + attribute DITHER + attribute DONT_CARE + attribute DRAW_BUFFER0 + attribute DRAW_BUFFER1 + attribute DRAW_BUFFER10 + attribute DRAW_BUFFER11 + attribute DRAW_BUFFER12 + attribute DRAW_BUFFER13 + attribute DRAW_BUFFER14 + attribute DRAW_BUFFER15 + attribute DRAW_BUFFER2 + attribute DRAW_BUFFER3 + attribute DRAW_BUFFER4 + attribute DRAW_BUFFER5 + attribute DRAW_BUFFER6 + attribute DRAW_BUFFER7 + attribute DRAW_BUFFER8 + attribute DRAW_BUFFER9 + attribute DRAW_FRAMEBUFFER + attribute DRAW_FRAMEBUFFER_BINDING + attribute DST_ALPHA + attribute DST_COLOR + attribute DYNAMIC_COPY + attribute DYNAMIC_DRAW + attribute DYNAMIC_READ + attribute ELEMENT_ARRAY_BUFFER + attribute ELEMENT_ARRAY_BUFFER_BINDING + attribute EQUAL + attribute FASTEST + attribute FLOAT + attribute FLOAT_32_UNSIGNED_INT_24_8_REV + attribute FLOAT_MAT2 + attribute FLOAT_MAT2x3 + attribute FLOAT_MAT2x4 + attribute FLOAT_MAT3 + attribute FLOAT_MAT3x2 + attribute FLOAT_MAT3x4 + attribute FLOAT_MAT4 + attribute FLOAT_MAT4x2 + attribute FLOAT_MAT4x3 + attribute FLOAT_VEC2 + attribute FLOAT_VEC3 + attribute FLOAT_VEC4 + attribute FRAGMENT_SHADER + attribute FRAGMENT_SHADER_DERIVATIVE_HINT + attribute FRAMEBUFFER + attribute FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE + attribute FRAMEBUFFER_ATTACHMENT_BLUE_SIZE + attribute FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING + attribute FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE + attribute FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE + attribute FRAMEBUFFER_ATTACHMENT_GREEN_SIZE + attribute FRAMEBUFFER_ATTACHMENT_OBJECT_NAME + attribute FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE + attribute FRAMEBUFFER_ATTACHMENT_RED_SIZE + attribute FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL + attribute FRAMEBUFFER_BINDING + attribute FRAMEBUFFER_COMPLETE + attribute FRAMEBUFFER_DEFAULT + attribute FRAMEBUFFER_INCOMPLETE_ATTACHMENT + attribute FRAMEBUFFER_INCOMPLETE_DIMENSIONS + attribute FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT + attribute FRAMEBUFFER_INCOMPLETE_MULTISAMPLE + attribute FRAMEBUFFER_UNSUPPORTED + attribute FRONT + attribute FRONT_AND_BACK + attribute FRONT_FACE + attribute FUNC_ADD + attribute FUNC_REVERSE_SUBTRACT + attribute FUNC_SUBTRACT + attribute GENERATE_MIPMAP_HINT + attribute GEQUAL + attribute GREATER + attribute GREEN_BITS + attribute HALF_FLOAT + attribute HIGH_FLOAT + attribute HIGH_INT + attribute IMPLEMENTATION_COLOR_READ_FORMAT + attribute IMPLEMENTATION_COLOR_READ_TYPE + attribute INCR + attribute INCR_WRAP + attribute INT + attribute INTERLEAVED_ATTRIBS + attribute INT_2_10_10_10_REV + attribute INT_SAMPLER_2D + attribute INT_SAMPLER_2D_ARRAY + attribute INT_SAMPLER_3D + attribute INT_SAMPLER_CUBE + attribute INT_VEC2 + attribute INT_VEC3 + attribute INT_VEC4 + attribute INVALID_ENUM + attribute INVALID_FRAMEBUFFER_OPERATION + attribute INVALID_INDEX + attribute INVALID_OPERATION + attribute INVALID_VALUE + attribute INVERT + attribute KEEP + attribute LEQUAL + attribute LESS + attribute LINEAR + attribute LINEAR_MIPMAP_LINEAR + attribute LINEAR_MIPMAP_NEAREST + attribute LINES + attribute LINE_LOOP + attribute LINE_STRIP + attribute LINE_WIDTH + attribute LINK_STATUS + attribute LOW_FLOAT + attribute LOW_INT + attribute LUMINANCE + attribute LUMINANCE_ALPHA + attribute MAX + attribute MAX_3D_TEXTURE_SIZE + attribute MAX_ARRAY_TEXTURE_LAYERS + attribute MAX_CLIENT_WAIT_TIMEOUT_WEBGL + attribute MAX_COLOR_ATTACHMENTS + attribute MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS + attribute MAX_COMBINED_TEXTURE_IMAGE_UNITS + attribute MAX_COMBINED_UNIFORM_BLOCKS + attribute MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS + attribute MAX_CUBE_MAP_TEXTURE_SIZE + attribute MAX_DRAW_BUFFERS + attribute MAX_ELEMENTS_INDICES + attribute MAX_ELEMENTS_VERTICES + attribute MAX_ELEMENT_INDEX + attribute MAX_FRAGMENT_INPUT_COMPONENTS + attribute MAX_FRAGMENT_UNIFORM_BLOCKS + attribute MAX_FRAGMENT_UNIFORM_COMPONENTS + attribute MAX_FRAGMENT_UNIFORM_VECTORS + attribute MAX_PROGRAM_TEXEL_OFFSET + attribute MAX_RENDERBUFFER_SIZE + attribute MAX_SAMPLES + attribute MAX_SERVER_WAIT_TIMEOUT + attribute MAX_TEXTURE_IMAGE_UNITS + attribute MAX_TEXTURE_LOD_BIAS + attribute MAX_TEXTURE_SIZE + attribute MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS + attribute MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS + attribute MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS + attribute MAX_UNIFORM_BLOCK_SIZE + attribute MAX_UNIFORM_BUFFER_BINDINGS + attribute MAX_VARYING_COMPONENTS + attribute MAX_VARYING_VECTORS + attribute MAX_VERTEX_ATTRIBS + attribute MAX_VERTEX_OUTPUT_COMPONENTS + attribute MAX_VERTEX_TEXTURE_IMAGE_UNITS + attribute MAX_VERTEX_UNIFORM_BLOCKS + attribute MAX_VERTEX_UNIFORM_COMPONENTS + attribute MAX_VERTEX_UNIFORM_VECTORS + attribute MAX_VIEWPORT_DIMS + attribute MEDIUM_FLOAT + attribute MEDIUM_INT + attribute MIN + attribute MIN_PROGRAM_TEXEL_OFFSET + attribute MIRRORED_REPEAT + attribute NEAREST + attribute NEAREST_MIPMAP_LINEAR + attribute NEAREST_MIPMAP_NEAREST + attribute NEVER + attribute NICEST + attribute NONE + attribute NOTEQUAL + attribute NO_ERROR + attribute OBJECT_TYPE + attribute ONE + attribute ONE_MINUS_CONSTANT_ALPHA + attribute ONE_MINUS_CONSTANT_COLOR + attribute ONE_MINUS_DST_ALPHA + attribute ONE_MINUS_DST_COLOR + attribute ONE_MINUS_SRC_ALPHA + attribute ONE_MINUS_SRC_COLOR + attribute OUT_OF_MEMORY + attribute PACK_ALIGNMENT + attribute PACK_ROW_LENGTH + attribute PACK_SKIP_PIXELS + attribute PACK_SKIP_ROWS + attribute PIXEL_PACK_BUFFER + attribute PIXEL_PACK_BUFFER_BINDING + attribute PIXEL_UNPACK_BUFFER + attribute PIXEL_UNPACK_BUFFER_BINDING + attribute POINTS + attribute POLYGON_OFFSET_FACTOR + attribute POLYGON_OFFSET_FILL + attribute POLYGON_OFFSET_UNITS + attribute QUERY_RESULT + attribute QUERY_RESULT_AVAILABLE + attribute R11F_G11F_B10F + attribute R16F + attribute R16I + attribute R16UI + attribute R32F + attribute R32I + attribute R32UI + attribute R8 + attribute R8I + attribute R8UI + attribute R8_SNORM + attribute RASTERIZER_DISCARD + attribute READ_BUFFER + attribute READ_FRAMEBUFFER + attribute READ_FRAMEBUFFER_BINDING + attribute RED + attribute RED_BITS + attribute RED_INTEGER + attribute RENDERBUFFER + attribute RENDERBUFFER_ALPHA_SIZE + attribute RENDERBUFFER_BINDING + attribute RENDERBUFFER_BLUE_SIZE + attribute RENDERBUFFER_DEPTH_SIZE + attribute RENDERBUFFER_GREEN_SIZE + attribute RENDERBUFFER_HEIGHT + attribute RENDERBUFFER_INTERNAL_FORMAT + attribute RENDERBUFFER_RED_SIZE + attribute RENDERBUFFER_SAMPLES + attribute RENDERBUFFER_STENCIL_SIZE + attribute RENDERBUFFER_WIDTH + attribute RENDERER + attribute REPEAT + attribute REPLACE + attribute RG + attribute RG16F + attribute RG16I + attribute RG16UI + attribute RG32F + attribute RG32I + attribute RG32UI + attribute RG8 + attribute RG8I + attribute RG8UI + attribute RG8_SNORM + attribute RGB + attribute RGB10_A2 + attribute RGB10_A2UI + attribute RGB16F + attribute RGB16I + attribute RGB16UI + attribute RGB32F + attribute RGB32I + attribute RGB32UI + attribute RGB565 + attribute RGB5_A1 + attribute RGB8 + attribute RGB8I + attribute RGB8UI + attribute RGB8_SNORM + attribute RGB9_E5 + attribute RGBA + attribute RGBA16F + attribute RGBA16I + attribute RGBA16UI + attribute RGBA32F + attribute RGBA32I + attribute RGBA32UI + attribute RGBA4 + attribute RGBA8 + attribute RGBA8I + attribute RGBA8UI + attribute RGBA8_SNORM + attribute RGBA_INTEGER + attribute RGB_INTEGER + attribute RG_INTEGER + attribute SAMPLER_2D + attribute SAMPLER_2D_ARRAY + attribute SAMPLER_2D_ARRAY_SHADOW + attribute SAMPLER_2D_SHADOW + attribute SAMPLER_3D + attribute SAMPLER_BINDING + attribute SAMPLER_CUBE + attribute SAMPLER_CUBE_SHADOW + attribute SAMPLES + attribute SAMPLE_ALPHA_TO_COVERAGE + attribute SAMPLE_BUFFERS + attribute SAMPLE_COVERAGE + attribute SAMPLE_COVERAGE_INVERT + attribute SAMPLE_COVERAGE_VALUE + attribute SCISSOR_BOX + attribute SCISSOR_TEST + attribute SEPARATE_ATTRIBS + attribute SHADER_TYPE + attribute SHADING_LANGUAGE_VERSION + attribute SHORT + attribute SIGNALED + attribute SIGNED_NORMALIZED + attribute SRC_ALPHA + attribute SRC_ALPHA_SATURATE + attribute SRC_COLOR + attribute SRGB + attribute SRGB8 + attribute SRGB8_ALPHA8 + attribute STATIC_COPY + attribute STATIC_DRAW + attribute STATIC_READ + attribute STENCIL + attribute STENCIL_ATTACHMENT + attribute STENCIL_BACK_FAIL + attribute STENCIL_BACK_FUNC + attribute STENCIL_BACK_PASS_DEPTH_FAIL + attribute STENCIL_BACK_PASS_DEPTH_PASS + attribute STENCIL_BACK_REF + attribute STENCIL_BACK_VALUE_MASK + attribute STENCIL_BACK_WRITEMASK + attribute STENCIL_BITS + attribute STENCIL_BUFFER_BIT + attribute STENCIL_CLEAR_VALUE + attribute STENCIL_FAIL + attribute STENCIL_FUNC + attribute STENCIL_INDEX + attribute STENCIL_INDEX8 + attribute STENCIL_PASS_DEPTH_FAIL + attribute STENCIL_PASS_DEPTH_PASS + attribute STENCIL_REF + attribute STENCIL_TEST + attribute STENCIL_VALUE_MASK + attribute STENCIL_WRITEMASK + attribute STREAM_COPY + attribute STREAM_DRAW + attribute STREAM_READ + attribute SUBPIXEL_BITS + attribute SYNC_CONDITION + attribute SYNC_FENCE + attribute SYNC_FLAGS + attribute SYNC_FLUSH_COMMANDS_BIT + attribute SYNC_GPU_COMMANDS_COMPLETE + attribute SYNC_STATUS + attribute TEXTURE + attribute TEXTURE0 + attribute TEXTURE1 + attribute TEXTURE10 + attribute TEXTURE11 + attribute TEXTURE12 + attribute TEXTURE13 + attribute TEXTURE14 + attribute TEXTURE15 + attribute TEXTURE16 + attribute TEXTURE17 + attribute TEXTURE18 + attribute TEXTURE19 + attribute TEXTURE2 + attribute TEXTURE20 + attribute TEXTURE21 + attribute TEXTURE22 + attribute TEXTURE23 + attribute TEXTURE24 + attribute TEXTURE25 + attribute TEXTURE26 + attribute TEXTURE27 + attribute TEXTURE28 + attribute TEXTURE29 + attribute TEXTURE3 + attribute TEXTURE30 + attribute TEXTURE31 + attribute TEXTURE4 + attribute TEXTURE5 + attribute TEXTURE6 + attribute TEXTURE7 + attribute TEXTURE8 + attribute TEXTURE9 + attribute TEXTURE_2D + attribute TEXTURE_2D_ARRAY + attribute TEXTURE_3D + attribute TEXTURE_BASE_LEVEL + attribute TEXTURE_BINDING_2D + attribute TEXTURE_BINDING_2D_ARRAY + attribute TEXTURE_BINDING_3D + attribute TEXTURE_BINDING_CUBE_MAP + attribute TEXTURE_COMPARE_FUNC + attribute TEXTURE_COMPARE_MODE + attribute TEXTURE_CUBE_MAP + attribute TEXTURE_CUBE_MAP_NEGATIVE_X + attribute TEXTURE_CUBE_MAP_NEGATIVE_Y + attribute TEXTURE_CUBE_MAP_NEGATIVE_Z + attribute TEXTURE_CUBE_MAP_POSITIVE_X + attribute TEXTURE_CUBE_MAP_POSITIVE_Y + attribute TEXTURE_CUBE_MAP_POSITIVE_Z + attribute TEXTURE_IMMUTABLE_FORMAT + attribute TEXTURE_IMMUTABLE_LEVELS + attribute TEXTURE_MAG_FILTER + attribute TEXTURE_MAX_LEVEL + attribute TEXTURE_MAX_LOD + attribute TEXTURE_MIN_FILTER + attribute TEXTURE_MIN_LOD + attribute TEXTURE_WRAP_R + attribute TEXTURE_WRAP_S + attribute TEXTURE_WRAP_T + attribute TIMEOUT_EXPIRED + attribute TIMEOUT_IGNORED + attribute TRANSFORM_FEEDBACK + attribute TRANSFORM_FEEDBACK_ACTIVE + attribute TRANSFORM_FEEDBACK_BINDING + attribute TRANSFORM_FEEDBACK_BUFFER + attribute TRANSFORM_FEEDBACK_BUFFER_BINDING + attribute TRANSFORM_FEEDBACK_BUFFER_MODE + attribute TRANSFORM_FEEDBACK_BUFFER_SIZE + attribute TRANSFORM_FEEDBACK_BUFFER_START + attribute TRANSFORM_FEEDBACK_PAUSED + attribute TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN + attribute TRANSFORM_FEEDBACK_VARYINGS + attribute TRIANGLES + attribute TRIANGLE_FAN + attribute TRIANGLE_STRIP + attribute UNIFORM_ARRAY_STRIDE + attribute UNIFORM_BLOCK_ACTIVE_UNIFORMS + attribute UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES + attribute UNIFORM_BLOCK_BINDING + attribute UNIFORM_BLOCK_DATA_SIZE + attribute UNIFORM_BLOCK_INDEX + attribute UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER + attribute UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER + attribute UNIFORM_BUFFER + attribute UNIFORM_BUFFER_BINDING + attribute UNIFORM_BUFFER_OFFSET_ALIGNMENT + attribute UNIFORM_BUFFER_SIZE + attribute UNIFORM_BUFFER_START + attribute UNIFORM_IS_ROW_MAJOR + attribute UNIFORM_MATRIX_STRIDE + attribute UNIFORM_OFFSET + attribute UNIFORM_SIZE + attribute UNIFORM_TYPE + attribute UNPACK_ALIGNMENT + attribute UNPACK_COLORSPACE_CONVERSION_WEBGL + attribute UNPACK_FLIP_Y_WEBGL + attribute UNPACK_IMAGE_HEIGHT + attribute UNPACK_PREMULTIPLY_ALPHA_WEBGL + attribute UNPACK_ROW_LENGTH + attribute UNPACK_SKIP_IMAGES + attribute UNPACK_SKIP_PIXELS + attribute UNPACK_SKIP_ROWS + attribute UNSIGNALED + attribute UNSIGNED_BYTE + attribute UNSIGNED_INT + attribute UNSIGNED_INT_10F_11F_11F_REV + attribute UNSIGNED_INT_24_8 + attribute UNSIGNED_INT_2_10_10_10_REV + attribute UNSIGNED_INT_5_9_9_9_REV + attribute UNSIGNED_INT_SAMPLER_2D + attribute UNSIGNED_INT_SAMPLER_2D_ARRAY + attribute UNSIGNED_INT_SAMPLER_3D + attribute UNSIGNED_INT_SAMPLER_CUBE + attribute UNSIGNED_INT_VEC2 + attribute UNSIGNED_INT_VEC3 + attribute UNSIGNED_INT_VEC4 + attribute UNSIGNED_NORMALIZED + attribute UNSIGNED_SHORT + attribute UNSIGNED_SHORT_4_4_4_4 + attribute UNSIGNED_SHORT_5_5_5_1 + attribute UNSIGNED_SHORT_5_6_5 + attribute VALIDATE_STATUS + attribute VENDOR + attribute VERSION + attribute VERTEX_ARRAY_BINDING + attribute VERTEX_ATTRIB_ARRAY_BUFFER_BINDING + attribute VERTEX_ATTRIB_ARRAY_DIVISOR + attribute VERTEX_ATTRIB_ARRAY_ENABLED + attribute VERTEX_ATTRIB_ARRAY_INTEGER + attribute VERTEX_ATTRIB_ARRAY_NORMALIZED + attribute VERTEX_ATTRIB_ARRAY_POINTER + attribute VERTEX_ATTRIB_ARRAY_SIZE + attribute VERTEX_ATTRIB_ARRAY_STRIDE + attribute VERTEX_ATTRIB_ARRAY_TYPE + attribute VERTEX_SHADER + attribute VIEWPORT + attribute WAIT_FAILED + attribute ZERO + getter canvas + getter drawingBufferHeight + getter drawingBufferWidth + method activeTexture + method attachShader + method beginQuery + method beginTransformFeedback + method bindAttribLocation + method bindBuffer + method bindBufferBase + method bindBufferRange + method bindFramebuffer + method bindRenderbuffer + method bindSampler + method bindTexture + method bindTransformFeedback + method bindVertexArray + method blendColor + method blendEquation + method blendEquationSeparate + method blendFunc + method blendFuncSeparate + method blitFramebuffer + method bufferData + method bufferSubData + method checkFramebufferStatus + method clear + method clearBufferfi + method clearBufferfv + method clearBufferiv + method clearBufferuiv + method clearColor + method clearDepth + method clearStencil + method clientWaitSync + method colorMask + method commit + method compileShader + method compressedTexImage2D + method compressedTexImage3D + method compressedTexSubImage2D + method compressedTexSubImage3D + method constructor + method copyBufferSubData + method copyTexImage2D + method copyTexSubImage2D + method copyTexSubImage3D + method createBuffer + method createFramebuffer + method createProgram + method createQuery + method createRenderbuffer + method createSampler + method createShader + method createTexture + method createTransformFeedback + method createVertexArray + method cullFace + method deleteBuffer + method deleteFramebuffer + method deleteProgram + method deleteQuery + method deleteRenderbuffer + method deleteSampler + method deleteShader + method deleteSync + method deleteTexture + method deleteTransformFeedback + method deleteVertexArray + method depthFunc + method depthMask + method depthRange + method detachShader + method disable + method disableVertexAttribArray + method drawArrays + method drawArraysInstanced + method drawBuffers + method drawElements + method drawElementsInstanced + method drawRangeElements + method enable + method enableVertexAttribArray + method endQuery + method endTransformFeedback + method fenceSync + method finish + method flush + method framebufferRenderbuffer + method framebufferTexture2D + method framebufferTextureLayer + method frontFace + method generateMipmap + method getActiveAttrib + method getActiveUniform + method getActiveUniformBlockName + method getActiveUniformBlockParameter + method getActiveUniforms + method getAttachedShaders + method getAttribLocation + method getBufferParameter + method getBufferSubData + method getContextAttributes + method getError + method getExtension + method getFragDataLocation + method getFramebufferAttachmentParameter + method getIndexedParameter + method getInternalformatParameter + method getParameter + method getProgramInfoLog + method getProgramParameter + method getQuery + method getQueryParameter + method getRenderbufferParameter + method getSamplerParameter + method getShaderInfoLog + method getShaderParameter + method getShaderPrecisionFormat + method getShaderSource + method getSupportedExtensions + method getSyncParameter + method getTexParameter + method getTransformFeedbackVarying + method getUniform + method getUniformBlockIndex + method getUniformIndices + method getUniformLocation + method getVertexAttrib + method getVertexAttribOffset + method hint + method invalidateFramebuffer + method invalidateSubFramebuffer + method isBuffer + method isContextLost + method isEnabled + method isFramebuffer + method isProgram + method isQuery + method isRenderbuffer + method isSampler + method isShader + method isSync + method isTexture + method isTransformFeedback + method isVertexArray + method lineWidth + method linkProgram + method pauseTransformFeedback + method pixelStorei + method polygonOffset + method readBuffer + method readPixels + method renderbufferStorage + method renderbufferStorageMultisample + method resumeTransformFeedback + method sampleCoverage + method samplerParameterf + method samplerParameteri + method scissor + method shaderSource + method stencilFunc + method stencilFuncSeparate + method stencilMask + method stencilMaskSeparate + method stencilOp + method stencilOpSeparate + method texImage2D + method texImage3D + method texParameterf + method texParameteri + method texStorage2D + method texStorage3D + method texSubImage2D + method texSubImage3D + method transformFeedbackVaryings + method uniform1f + method uniform1fv + method uniform1i + method uniform1iv + method uniform1ui + method uniform1uiv + method uniform2f + method uniform2fv + method uniform2i + method uniform2iv + method uniform2ui + method uniform2uiv + method uniform3f + method uniform3fv + method uniform3i + method uniform3iv + method uniform3ui + method uniform3uiv + method uniform4f + method uniform4fv + method uniform4i + method uniform4iv + method uniform4ui + method uniform4uiv + method uniformBlockBinding + method uniformMatrix2fv + method uniformMatrix2x3fv + method uniformMatrix2x4fv + method uniformMatrix3fv + method uniformMatrix3x2fv + method uniformMatrix3x4fv + method uniformMatrix4fv + method uniformMatrix4x2fv + method uniformMatrix4x3fv + method useProgram + method validateProgram + method vertexAttrib1f + method vertexAttrib1fv + method vertexAttrib2f + method vertexAttrib2fv + method vertexAttrib3f + method vertexAttrib3fv + method vertexAttrib4f + method vertexAttrib4fv + method vertexAttribDivisor + method vertexAttribI4i + method vertexAttribI4iv + method vertexAttribI4ui + method vertexAttribI4uiv + method vertexAttribIPointer + method vertexAttribPointer + method viewport + method waitSync +interface WebGLActiveInfo + attribute @@toStringTag + getter name + getter size + getter type + method constructor +interface WebGLBuffer + attribute @@toStringTag + method constructor +interface WebGLContextEvent : Event + attribute @@toStringTag + getter statusMessage + method constructor +interface WebGLFramebuffer + attribute @@toStringTag + method constructor +interface WebGLProgram + attribute @@toStringTag + method constructor +interface WebGLQuery + attribute @@toStringTag + method constructor +interface WebGLRenderbuffer + attribute @@toStringTag + method constructor +interface WebGLRenderingContext + attribute @@toStringTag + attribute ACTIVE_ATTRIBUTES + attribute ACTIVE_TEXTURE + attribute ACTIVE_UNIFORMS + attribute ALIASED_LINE_WIDTH_RANGE + attribute ALIASED_POINT_SIZE_RANGE + attribute ALPHA + attribute ALPHA_BITS + attribute ALWAYS + attribute ARRAY_BUFFER + attribute ARRAY_BUFFER_BINDING + attribute ATTACHED_SHADERS + attribute BACK + attribute BLEND + attribute BLEND_COLOR + attribute BLEND_DST_ALPHA + attribute BLEND_DST_RGB + attribute BLEND_EQUATION + attribute BLEND_EQUATION_ALPHA + attribute BLEND_EQUATION_RGB + attribute BLEND_SRC_ALPHA + attribute BLEND_SRC_RGB + attribute BLUE_BITS + attribute BOOL + attribute BOOL_VEC2 + attribute BOOL_VEC3 + attribute BOOL_VEC4 + attribute BROWSER_DEFAULT_WEBGL + attribute BUFFER_SIZE + attribute BUFFER_USAGE + attribute BYTE + attribute CCW + attribute CLAMP_TO_EDGE + attribute COLOR_ATTACHMENT0 + attribute COLOR_BUFFER_BIT + attribute COLOR_CLEAR_VALUE + attribute COLOR_WRITEMASK + attribute COMPILE_STATUS + attribute COMPRESSED_TEXTURE_FORMATS + attribute CONSTANT_ALPHA + attribute CONSTANT_COLOR + attribute CONTEXT_LOST_WEBGL + attribute CULL_FACE + attribute CULL_FACE_MODE + attribute CURRENT_PROGRAM + attribute CURRENT_VERTEX_ATTRIB + attribute CW + attribute DECR + attribute DECR_WRAP + attribute DELETE_STATUS + attribute DEPTH_ATTACHMENT + attribute DEPTH_BITS + attribute DEPTH_BUFFER_BIT + attribute DEPTH_CLEAR_VALUE + attribute DEPTH_COMPONENT + attribute DEPTH_COMPONENT16 + attribute DEPTH_FUNC + attribute DEPTH_RANGE + attribute DEPTH_STENCIL + attribute DEPTH_STENCIL_ATTACHMENT + attribute DEPTH_TEST + attribute DEPTH_WRITEMASK + attribute DITHER + attribute DONT_CARE + attribute DST_ALPHA + attribute DST_COLOR + attribute DYNAMIC_DRAW + attribute ELEMENT_ARRAY_BUFFER + attribute ELEMENT_ARRAY_BUFFER_BINDING + attribute EQUAL + attribute FASTEST + attribute FLOAT + attribute FLOAT_MAT2 + attribute FLOAT_MAT3 + attribute FLOAT_MAT4 + attribute FLOAT_VEC2 + attribute FLOAT_VEC3 + attribute FLOAT_VEC4 + attribute FRAGMENT_SHADER + attribute FRAMEBUFFER + attribute FRAMEBUFFER_ATTACHMENT_OBJECT_NAME + attribute FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE + attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL + attribute FRAMEBUFFER_BINDING + attribute FRAMEBUFFER_COMPLETE + attribute FRAMEBUFFER_INCOMPLETE_ATTACHMENT + attribute FRAMEBUFFER_INCOMPLETE_DIMENSIONS + attribute FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT + attribute FRAMEBUFFER_UNSUPPORTED + attribute FRONT + attribute FRONT_AND_BACK + attribute FRONT_FACE + attribute FUNC_ADD + attribute FUNC_REVERSE_SUBTRACT + attribute FUNC_SUBTRACT + attribute GENERATE_MIPMAP_HINT + attribute GEQUAL + attribute GREATER + attribute GREEN_BITS + attribute HIGH_FLOAT + attribute HIGH_INT + attribute IMPLEMENTATION_COLOR_READ_FORMAT + attribute IMPLEMENTATION_COLOR_READ_TYPE + attribute INCR + attribute INCR_WRAP + attribute INT + attribute INT_VEC2 + attribute INT_VEC3 + attribute INT_VEC4 + attribute INVALID_ENUM + attribute INVALID_FRAMEBUFFER_OPERATION + attribute INVALID_OPERATION + attribute INVALID_VALUE + attribute INVERT + attribute KEEP + attribute LEQUAL + attribute LESS + attribute LINEAR + attribute LINEAR_MIPMAP_LINEAR + attribute LINEAR_MIPMAP_NEAREST + attribute LINES + attribute LINE_LOOP + attribute LINE_STRIP + attribute LINE_WIDTH + attribute LINK_STATUS + attribute LOW_FLOAT + attribute LOW_INT + attribute LUMINANCE + attribute LUMINANCE_ALPHA + attribute MAX_COMBINED_TEXTURE_IMAGE_UNITS + attribute MAX_CUBE_MAP_TEXTURE_SIZE + attribute MAX_FRAGMENT_UNIFORM_VECTORS + attribute MAX_RENDERBUFFER_SIZE + attribute MAX_TEXTURE_IMAGE_UNITS + attribute MAX_TEXTURE_SIZE + attribute MAX_VARYING_VECTORS + attribute MAX_VERTEX_ATTRIBS + attribute MAX_VERTEX_TEXTURE_IMAGE_UNITS + attribute MAX_VERTEX_UNIFORM_VECTORS + attribute MAX_VIEWPORT_DIMS + attribute MEDIUM_FLOAT + attribute MEDIUM_INT + attribute MIRRORED_REPEAT + attribute NEAREST + attribute NEAREST_MIPMAP_LINEAR + attribute NEAREST_MIPMAP_NEAREST + attribute NEVER + attribute NICEST + attribute NONE + attribute NOTEQUAL + attribute NO_ERROR + attribute ONE + attribute ONE_MINUS_CONSTANT_ALPHA + attribute ONE_MINUS_CONSTANT_COLOR + attribute ONE_MINUS_DST_ALPHA + attribute ONE_MINUS_DST_COLOR + attribute ONE_MINUS_SRC_ALPHA + attribute ONE_MINUS_SRC_COLOR + attribute OUT_OF_MEMORY + attribute PACK_ALIGNMENT + attribute POINTS + attribute POLYGON_OFFSET_FACTOR + attribute POLYGON_OFFSET_FILL + attribute POLYGON_OFFSET_UNITS + attribute RED_BITS + attribute RENDERBUFFER + attribute RENDERBUFFER_ALPHA_SIZE + attribute RENDERBUFFER_BINDING + attribute RENDERBUFFER_BLUE_SIZE + attribute RENDERBUFFER_DEPTH_SIZE + attribute RENDERBUFFER_GREEN_SIZE + attribute RENDERBUFFER_HEIGHT + attribute RENDERBUFFER_INTERNAL_FORMAT + attribute RENDERBUFFER_RED_SIZE + attribute RENDERBUFFER_STENCIL_SIZE + attribute RENDERBUFFER_WIDTH + attribute RENDERER + attribute REPEAT + attribute REPLACE + attribute RGB + attribute RGB565 + attribute RGB5_A1 + attribute RGBA + attribute RGBA4 + attribute SAMPLER_2D + attribute SAMPLER_CUBE + attribute SAMPLES + attribute SAMPLE_ALPHA_TO_COVERAGE + attribute SAMPLE_BUFFERS + attribute SAMPLE_COVERAGE + attribute SAMPLE_COVERAGE_INVERT + attribute SAMPLE_COVERAGE_VALUE + attribute SCISSOR_BOX + attribute SCISSOR_TEST + attribute SHADER_TYPE + attribute SHADING_LANGUAGE_VERSION + attribute SHORT + attribute SRC_ALPHA + attribute SRC_ALPHA_SATURATE + attribute SRC_COLOR + attribute STATIC_DRAW + attribute STENCIL_ATTACHMENT + attribute STENCIL_BACK_FAIL + attribute STENCIL_BACK_FUNC + attribute STENCIL_BACK_PASS_DEPTH_FAIL + attribute STENCIL_BACK_PASS_DEPTH_PASS + attribute STENCIL_BACK_REF + attribute STENCIL_BACK_VALUE_MASK + attribute STENCIL_BACK_WRITEMASK + attribute STENCIL_BITS + attribute STENCIL_BUFFER_BIT + attribute STENCIL_CLEAR_VALUE + attribute STENCIL_FAIL + attribute STENCIL_FUNC + attribute STENCIL_INDEX + attribute STENCIL_INDEX8 + attribute STENCIL_PASS_DEPTH_FAIL + attribute STENCIL_PASS_DEPTH_PASS + attribute STENCIL_REF + attribute STENCIL_TEST + attribute STENCIL_VALUE_MASK + attribute STENCIL_WRITEMASK + attribute STREAM_DRAW + attribute SUBPIXEL_BITS + attribute TEXTURE + attribute TEXTURE0 + attribute TEXTURE1 + attribute TEXTURE10 + attribute TEXTURE11 + attribute TEXTURE12 + attribute TEXTURE13 + attribute TEXTURE14 + attribute TEXTURE15 + attribute TEXTURE16 + attribute TEXTURE17 + attribute TEXTURE18 + attribute TEXTURE19 + attribute TEXTURE2 + attribute TEXTURE20 + attribute TEXTURE21 + attribute TEXTURE22 + attribute TEXTURE23 + attribute TEXTURE24 + attribute TEXTURE25 + attribute TEXTURE26 + attribute TEXTURE27 + attribute TEXTURE28 + attribute TEXTURE29 + attribute TEXTURE3 + attribute TEXTURE30 + attribute TEXTURE31 + attribute TEXTURE4 + attribute TEXTURE5 + attribute TEXTURE6 + attribute TEXTURE7 + attribute TEXTURE8 + attribute TEXTURE9 + attribute TEXTURE_2D + attribute TEXTURE_BINDING_2D + attribute TEXTURE_BINDING_CUBE_MAP + attribute TEXTURE_CUBE_MAP + attribute TEXTURE_CUBE_MAP_NEGATIVE_X + attribute TEXTURE_CUBE_MAP_NEGATIVE_Y + attribute TEXTURE_CUBE_MAP_NEGATIVE_Z + attribute TEXTURE_CUBE_MAP_POSITIVE_X + attribute TEXTURE_CUBE_MAP_POSITIVE_Y + attribute TEXTURE_CUBE_MAP_POSITIVE_Z + attribute TEXTURE_MAG_FILTER + attribute TEXTURE_MIN_FILTER + attribute TEXTURE_WRAP_S + attribute TEXTURE_WRAP_T + attribute TRIANGLES + attribute TRIANGLE_FAN + attribute TRIANGLE_STRIP + attribute UNPACK_ALIGNMENT + attribute UNPACK_COLORSPACE_CONVERSION_WEBGL + attribute UNPACK_FLIP_Y_WEBGL + attribute UNPACK_PREMULTIPLY_ALPHA_WEBGL + attribute UNSIGNED_BYTE + attribute UNSIGNED_INT + attribute UNSIGNED_SHORT + attribute UNSIGNED_SHORT_4_4_4_4 + attribute UNSIGNED_SHORT_5_5_5_1 + attribute UNSIGNED_SHORT_5_6_5 + attribute VALIDATE_STATUS + attribute VENDOR + attribute VERSION + attribute VERTEX_ATTRIB_ARRAY_BUFFER_BINDING + attribute VERTEX_ATTRIB_ARRAY_ENABLED + attribute VERTEX_ATTRIB_ARRAY_NORMALIZED + attribute VERTEX_ATTRIB_ARRAY_POINTER + attribute VERTEX_ATTRIB_ARRAY_SIZE + attribute VERTEX_ATTRIB_ARRAY_STRIDE + attribute VERTEX_ATTRIB_ARRAY_TYPE + attribute VERTEX_SHADER + attribute VIEWPORT + attribute ZERO + getter canvas + getter drawingBufferHeight + getter drawingBufferWidth + method activeTexture + method attachShader + method bindAttribLocation + method bindBuffer + method bindFramebuffer + method bindRenderbuffer + method bindTexture + method blendColor + method blendEquation + method blendEquationSeparate + method blendFunc + method blendFuncSeparate + method bufferData + method bufferSubData + method checkFramebufferStatus + method clear + method clearColor + method clearDepth + method clearStencil + method colorMask + method commit + method compileShader + method compressedTexImage2D + method compressedTexSubImage2D + method constructor + method copyTexImage2D + method copyTexSubImage2D + method createBuffer + method createFramebuffer + method createProgram + method createRenderbuffer + method createShader + method createTexture + method cullFace + method deleteBuffer + method deleteFramebuffer + method deleteProgram + method deleteRenderbuffer + method deleteShader + method deleteTexture + method depthFunc + method depthMask + method depthRange + method detachShader + method disable + method disableVertexAttribArray + method drawArrays + method drawElements + method enable + method enableVertexAttribArray + method finish + method flush + method framebufferRenderbuffer + method framebufferTexture2D + method frontFace + method generateMipmap + method getActiveAttrib + method getActiveUniform + method getAttachedShaders + method getAttribLocation + method getBufferParameter + method getContextAttributes + method getError + method getExtension + method getFramebufferAttachmentParameter + method getParameter + method getProgramInfoLog + method getProgramParameter + method getRenderbufferParameter + method getShaderInfoLog + method getShaderParameter + method getShaderPrecisionFormat + method getShaderSource + method getSupportedExtensions + method getTexParameter + method getUniform + method getUniformLocation + method getVertexAttrib + method getVertexAttribOffset + method hint + method isBuffer + method isContextLost + method isEnabled + method isFramebuffer + method isProgram + method isRenderbuffer + method isShader + method isTexture + method lineWidth + method linkProgram + method pixelStorei + method polygonOffset + method readPixels + method renderbufferStorage + method sampleCoverage + method scissor + method shaderSource + method stencilFunc + method stencilFuncSeparate + method stencilMask + method stencilMaskSeparate + method stencilOp + method stencilOpSeparate + method texImage2D + method texParameterf + method texParameteri + method texSubImage2D + method uniform1f + method uniform1fv + method uniform1i + method uniform1iv + method uniform2f + method uniform2fv + method uniform2i + method uniform2iv + method uniform3f + method uniform3fv + method uniform3i + method uniform3iv + method uniform4f + method uniform4fv + method uniform4i + method uniform4iv + method uniformMatrix2fv + method uniformMatrix3fv + method uniformMatrix4fv + method useProgram + method validateProgram + method vertexAttrib1f + method vertexAttrib1fv + method vertexAttrib2f + method vertexAttrib2fv + method vertexAttrib3f + method vertexAttrib3fv + method vertexAttrib4f + method vertexAttrib4fv + method vertexAttribPointer + method viewport +interface WebGLSampler + attribute @@toStringTag + method constructor +interface WebGLShader + attribute @@toStringTag + method constructor +interface WebGLShaderPrecisionFormat + attribute @@toStringTag + getter precision + getter rangeMax + getter rangeMin + method constructor +interface WebGLSync + attribute @@toStringTag + method constructor +interface WebGLTexture + attribute @@toStringTag + getter lastUploadedVideoHeight + getter lastUploadedVideoTimestamp + getter lastUploadedVideoWidth + method constructor +interface WebGLTransformFeedback + attribute @@toStringTag + method constructor +interface WebGLUniformLocation + attribute @@toStringTag + method constructor +interface WebGLVertexArrayObject + attribute @@toStringTag + method constructor +interface WebKitAnimationEvent : Event + attribute @@toStringTag + getter animationName + getter elapsedTime + method constructor +interface WebKitCSSMatrix + attribute @@toStringTag + getter a + getter b + getter c + getter d + getter e + getter f + getter m11 + getter m12 + getter m13 + getter m14 + getter m21 + getter m22 + getter m23 + getter m24 + getter m31 + getter m32 + getter m33 + getter m34 + getter m41 + getter m42 + getter m43 + getter m44 + method constructor + method inverse + method multiply + method rotate + method rotateAxisAngle + method scale + method setMatrixValue + method skewX + method skewY + method toString + method translate + setter a + setter b + setter c + setter d + setter e + setter f + setter m11 + setter m12 + setter m13 + setter m14 + setter m21 + setter m22 + setter m23 + setter m24 + setter m31 + setter m32 + setter m33 + setter m34 + setter m41 + setter m42 + setter m43 + setter m44 +interface WebKitMutationObserver + attribute @@toStringTag + method constructor + method disconnect + method observe + method takeRecords +interface WebKitTransitionEvent : Event + attribute @@toStringTag + getter elapsedTime + getter propertyName + getter pseudoElement + method constructor +interface WebSocket : EventTarget + attribute @@toStringTag + attribute CLOSED + attribute CLOSING + attribute CONNECTING + attribute OPEN + getter binaryType + getter bufferedAmount + getter extensions + getter onclose + getter onerror + getter onmessage + getter onopen + getter protocol + getter readyState + getter url + method close + method constructor + method send + setter binaryType + setter onclose + setter onerror + setter onmessage + setter onopen +interface WheelEvent : MouseEvent + attribute @@toStringTag + attribute DOM_DELTA_LINE + attribute DOM_DELTA_PAGE + attribute DOM_DELTA_PIXEL + getter deltaMode + getter deltaX + getter deltaY + getter deltaZ + getter wheelDelta + getter wheelDeltaX + getter wheelDeltaY + method constructor +interface Window : EventTarget + attribute @@toStringTag + attribute PERSISTENT + attribute TEMPORARY + method constructor +interface Worker : EventTarget + attribute @@toStringTag + getter onerror + getter onmessage + method constructor + method postMessage + method terminate + setter onerror + setter onmessage +interface Worklet + attribute @@toStringTag + method constructor + method import +interface WritableStream + getter locked + method abort + method constructor + method getWriter +interface XMLDocument : Document + attribute @@toStringTag + method constructor +interface XMLHttpRequest : XMLHttpRequestEventTarget + attribute @@toStringTag + attribute DONE + attribute HEADERS_RECEIVED + attribute LOADING + attribute OPENED + attribute UNSENT + getter onreadystatechange + getter readyState + getter response + getter responseText + getter responseType + getter responseURL + getter responseXML + getter status + getter statusText + getter timeout + getter upload + getter withCredentials + method abort + method constructor + method getAllResponseHeaders + method getResponseHeader + method open + method overrideMimeType + method send + method setRequestHeader + setter onreadystatechange + setter responseType + setter timeout + setter withCredentials +interface XMLHttpRequestEventTarget : EventTarget + attribute @@toStringTag + getter onabort + getter onerror + getter onload + getter onloadend + getter onloadstart + getter onprogress + getter ontimeout + method constructor + setter onabort + setter onerror + setter onload + setter onloadend + setter onloadstart + setter onprogress + setter ontimeout +interface XMLHttpRequestUpload : XMLHttpRequestEventTarget + attribute @@toStringTag + method constructor +interface XMLSerializer + attribute @@toStringTag + method constructor + method serializeToString +interface XPathEvaluator + attribute @@toStringTag + method constructor + method createExpression + method createNSResolver + method evaluate +interface XPathExpression + attribute @@toStringTag + method constructor + method evaluate +interface XPathResult + attribute @@toStringTag + attribute ANY_TYPE + attribute ANY_UNORDERED_NODE_TYPE + attribute BOOLEAN_TYPE + attribute FIRST_ORDERED_NODE_TYPE + attribute NUMBER_TYPE + attribute ORDERED_NODE_ITERATOR_TYPE + attribute ORDERED_NODE_SNAPSHOT_TYPE + attribute STRING_TYPE + attribute UNORDERED_NODE_ITERATOR_TYPE + attribute UNORDERED_NODE_SNAPSHOT_TYPE + getter booleanValue + getter invalidIteratorState + getter numberValue + getter resultType + getter singleNodeValue + getter snapshotLength + getter stringValue + method constructor + method iterateNext + method snapshotItem +interface XSLTProcessor + attribute @@toStringTag + method clearParameters + method constructor + method getParameter + method importStylesheet + method removeParameter + method reset + method setParameter + method transformToDocument + method transformToFragment +interface webkitMediaStream : EventTarget + attribute @@toStringTag + getter active + getter id + getter onactive + getter onaddtrack + getter oninactive + getter onremovetrack + method addTrack + method clone + method constructor + method getAudioTracks + method getTrackById + method getTracks + method getVideoTracks + method removeTrack + setter onactive + setter onaddtrack + setter oninactive + setter onremovetrack +interface webkitRTCPeerConnection : EventTarget + static method generateCertificate + attribute @@toStringTag + getter iceConnectionState + getter iceGatheringState + getter localDescription + getter onaddstream + getter ondatachannel + getter onicecandidate + getter oniceconnectionstatechange + getter onicegatheringstatechange + getter onnegotiationneeded + getter onremovestream + getter onsignalingstatechange + getter remoteDescription + getter signalingState + method addIceCandidate + method addStream + method close + method constructor + method createAnswer + method createDTMFSender + method createDataChannel + method createOffer + method getLocalStreams + method getReceivers + method getRemoteStreams + method getStats + method getStreamById + method removeStream + method setConfiguration + method setLocalDescription + method setRemoteDescription + setter onaddstream + setter ondatachannel + setter onicecandidate + setter oniceconnectionstatechange + setter onicegatheringstatechange + setter onnegotiationneeded + setter onremovestream + setter onsignalingstatechange +interface webkitSpeechGrammar + attribute @@toStringTag + getter src + getter weight + method constructor + setter src + setter weight +interface webkitSpeechGrammarList + attribute @@toStringTag + getter length + method @@iterator + method addFromString + method addFromUri + method constructor + method item +interface webkitSpeechRecognition : EventTarget + attribute @@toStringTag + getter audioTrack + getter continuous + getter grammars + getter interimResults + getter lang + getter maxAlternatives + getter onaudioend + getter onaudiostart + getter onend + getter onerror + getter onnomatch + getter onresult + getter onsoundend + getter onsoundstart + getter onspeechend + getter onspeechstart + getter onstart + method abort + method constructor + method start + method stop + setter audioTrack + setter continuous + setter grammars + setter interimResults + setter lang + setter maxAlternatives + setter onaudioend + setter onaudiostart + setter onend + setter onerror + setter onnomatch + setter onresult + setter onsoundend + setter onsoundstart + setter onspeechend + setter onspeechstart + setter onstart +interface webkitSpeechRecognitionError : Event + attribute @@toStringTag + getter error + getter message + method constructor +interface webkitSpeechRecognitionEvent : Event + attribute @@toStringTag + getter emma + getter interpretation + getter resultIndex + getter results + method constructor +interface webkitURL + static method createObjectURL + static method revokeObjectURL + attribute @@toStringTag + getter hash + getter host + getter hostname + getter href + getter origin + getter password + getter pathname + getter port + getter protocol + getter search + getter searchParams + getter username + method constructor + method toString + setter hash + setter host + setter hostname + setter href + setter password + setter pathname + setter port + setter protocol + setter search + setter username +[GLOBAL OBJECT] + attribute GCController + attribute accessibilityController + attribute chrome + attribute closed + attribute console + attribute eventSender + attribute frames + attribute gamepadController + attribute gin + attribute internals + attribute layoutTestController + attribute length + attribute location + attribute opener + attribute parent + attribute propertyNamesInGlobal + attribute self + attribute testRunner + attribute textInputController + attribute top + attribute window + getter animationWorklet + getter applicationCache + getter audioWorklet + getter caches + getter clientInformation + getter crypto + getter customElements + getter defaultStatus + getter defaultstatus + getter devicePixelRatio + getter document + getter event + getter external + getter frameElement + getter history + getter indexedDB + getter innerHeight + getter innerWidth + getter isSecureContext + getter localStorage + getter locationbar + getter menubar + getter name + getter navigator + getter offscreenBuffering + getter onabort + getter onanimationend + getter onanimationiteration + getter onanimationstart + getter onauxclick + getter onbeforeunload + getter onblur + getter oncancel + getter oncanplay + getter oncanplaythrough + getter onchange + getter onclick + getter onclose + getter oncontextmenu + getter oncuechange + getter ondblclick + getter ondevicelight + getter ondevicemotion + getter ondeviceorientation + getter ondeviceorientationabsolute + getter ondrag + getter ondragend + getter ondragenter + getter ondragleave + getter ondragover + getter ondragstart + getter ondrop + getter ondurationchange + getter onemptied + getter onended + getter onerror + getter onfocus + getter ongotpointercapture + getter onhashchange + getter oninput + getter oninvalid + getter onkeydown + getter onkeypress + getter onkeyup + getter onlanguagechange + getter onload + getter onloadeddata + getter onloadedmetadata + getter onloadstart + getter onlostpointercapture + getter onmessage + getter onmousedown + getter onmouseenter + getter onmouseleave + getter onmousemove + getter onmouseout + getter onmouseover + getter onmouseup + getter onmousewheel + getter onoffline + getter ononline + getter onpagehide + getter onpageshow + getter onpause + getter onplay + getter onplaying + getter onpointercancel + getter onpointerdown + getter onpointerenter + getter onpointerleave + getter onpointermove + getter onpointerout + getter onpointerover + getter onpointerup + getter onpopstate + getter onprogress + getter onratechange + getter onrejectionhandled + getter onreset + getter onresize + getter onscroll + getter onsearch + getter onseeked + getter onseeking + getter onselect + getter onshow + getter onstalled + getter onstorage + getter onsubmit + getter onsuspend + getter ontimeupdate + getter ontoggle + getter ontouchcancel + getter ontouchend + getter ontouchmove + getter ontouchstart + getter ontransitionend + getter onunhandledrejection + getter onunload + getter onvolumechange + getter onwaiting + getter onwebkitanimationend + getter onwebkitanimationiteration + getter onwebkitanimationstart + getter onwebkittransitionend + getter onwheel + getter origin + getter outerHeight + getter outerWidth + getter pageXOffset + getter pageYOffset + getter paintWorklet + getter performance + getter personalbar + getter screen + getter screenLeft + getter screenTop + getter screenX + getter screenY + getter scrollX + getter scrollY + getter scrollbars + getter sessionStorage + getter speechSynthesis + getter status + getter statusbar + getter styleMedia + getter toolbar + getter visualViewport + getter webkitStorageInfo + method alert + method atob + method blur + method btoa + method cancelAnimationFrame + method cancelIdleCallback + method captureEvents + method clearInterval + method clearTimeout + method close + method confirm + method createImageBitmap + method fetch + method find + method focus + method gc + method getComputedStyle + method getComputedStyleMap + method getMatchedCSSRules + method getSelection + method matchMedia + method moveBy + method moveTo + method open + method openDatabase + method postMessage + method print + method prompt + method releaseEvents + method requestAnimationFrame + method requestIdleCallback + method resizeBy + method resizeTo + method scroll + method scrollBy + method scrollTo + method setInterval + method setTimeout + method stop + method webkitCancelAnimationFrame + method webkitRequestAnimationFrame + method webkitRequestFileSystem + method webkitResolveLocalFileSystemURL + setter clientInformation + setter defaultStatus + setter defaultstatus + setter devicePixelRatio + setter event + setter external + setter innerHeight + setter innerWidth + setter locationbar + setter menubar + setter name + setter offscreenBuffering + setter onabort + setter onanimationend + setter onanimationiteration + setter onanimationstart + setter onauxclick + setter onbeforeunload + setter onblur + setter oncancel + setter oncanplay + setter oncanplaythrough + setter onchange + setter onclick + setter onclose + setter oncontextmenu + setter oncuechange + setter ondblclick + setter ondevicelight + setter ondevicemotion + setter ondeviceorientation + setter ondeviceorientationabsolute + setter ondrag + setter ondragend + setter ondragenter + setter ondragleave + setter ondragover + setter ondragstart + setter ondrop + setter ondurationchange + setter onemptied + setter onended + setter onerror + setter onfocus + setter ongotpointercapture + setter onhashchange + setter oninput + setter oninvalid + setter onkeydown + setter onkeypress + setter onkeyup + setter onlanguagechange + setter onload + setter onloadeddata + setter onloadedmetadata + setter onloadstart + setter onlostpointercapture + setter onmessage + setter onmousedown + setter onmouseenter + setter onmouseleave + setter onmousemove + setter onmouseout + setter onmouseover + setter onmouseup + setter onmousewheel + setter onoffline + setter ononline + setter onpagehide + setter onpageshow + setter onpause + setter onplay + setter onplaying + setter onpointercancel + setter onpointerdown + setter onpointerenter + setter onpointerleave + setter onpointermove + setter onpointerout + setter onpointerover + setter onpointerup + setter onpopstate + setter onprogress + setter onratechange + setter onrejectionhandled + setter onreset + setter onresize + setter onscroll + setter onsearch + setter onseeked + setter onseeking + setter onselect + setter onshow + setter onstalled + setter onstorage + setter onsubmit + setter onsuspend + setter ontimeupdate + setter ontoggle + setter ontouchcancel + setter ontouchend + setter ontouchmove + setter ontouchstart + setter ontransitionend + setter onunhandledrejection + setter onunload + setter onvolumechange + setter onwaiting + setter onwebkitanimationend + setter onwebkitanimationiteration + setter onwebkitanimationstart + setter onwebkittransitionend + setter onwheel + setter origin + setter outerHeight + setter outerWidth + setter pageXOffset + setter pageYOffset + setter performance + setter personalbar + setter screen + setter screenLeft + setter screenTop + setter screenX + setter screenY + setter scrollX + setter scrollY + setter scrollbars + setter status + setter statusbar + setter toolbar + setter visualViewport +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-shared-worker-expected.txt new file mode 100644 index 0000000..c661271f1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -0,0 +1,2336 @@ +This test documents all interface attributes and methods on SharedWorkerGlobalScope. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +Starting worker: resources/global-interface-listing.js +[Worker] [INTERFACES] +[Worker] interface BackgroundFetchFetch +[Worker] attribute @@toStringTag +[Worker] getter request +[Worker] method constructor +[Worker] interface BackgroundFetchManager +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method fetch +[Worker] method get +[Worker] method getTags +[Worker] interface BackgroundFetchRegistration +[Worker] attribute @@toStringTag +[Worker] getter icons +[Worker] getter tag +[Worker] getter title +[Worker] getter totalDownloadSize +[Worker] method abort +[Worker] method constructor +[Worker] interface BarcodeDetector +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method detect +[Worker] interface Blob +[Worker] attribute @@toStringTag +[Worker] getter isClosed +[Worker] getter size +[Worker] getter type +[Worker] method close +[Worker] method constructor +[Worker] method slice +[Worker] interface BroadcastChannel : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter name +[Worker] getter onmessage +[Worker] method close +[Worker] method constructor +[Worker] method postMessage +[Worker] setter onmessage +[Worker] interface BudgetService +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method getBudget +[Worker] method getCost +[Worker] method reserve +[Worker] interface BudgetState +[Worker] attribute @@toStringTag +[Worker] getter budgetAt +[Worker] getter time +[Worker] method constructor +[Worker] interface ByteLengthQueuingStrategy +[Worker] method constructor +[Worker] method size +[Worker] interface Cache +[Worker] attribute @@toStringTag +[Worker] method add +[Worker] method addAll +[Worker] method constructor +[Worker] method delete +[Worker] method keys +[Worker] method match +[Worker] method matchAll +[Worker] method put +[Worker] interface CacheStorage +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method delete +[Worker] method has +[Worker] method keys +[Worker] method match +[Worker] method open +[Worker] interface CanvasGradient +[Worker] attribute @@toStringTag +[Worker] method addColorStop +[Worker] method constructor +[Worker] interface CanvasPattern +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] interface CloseEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter code +[Worker] getter reason +[Worker] getter wasClean +[Worker] method constructor +[Worker] interface CountQueuingStrategy +[Worker] method constructor +[Worker] method size +[Worker] interface Crypto +[Worker] attribute @@toStringTag +[Worker] getter subtle +[Worker] method constructor +[Worker] method getRandomValues +[Worker] interface CryptoKey +[Worker] attribute @@toStringTag +[Worker] getter algorithm +[Worker] getter extractable +[Worker] getter type +[Worker] getter usages +[Worker] method constructor +[Worker] interface CustomEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter detail +[Worker] method constructor +[Worker] method initCustomEvent +[Worker] interface DOMException +[Worker] attribute @@toStringTag +[Worker] attribute ABORT_ERR +[Worker] attribute DATA_CLONE_ERR +[Worker] attribute DOMSTRING_SIZE_ERR +[Worker] attribute HIERARCHY_REQUEST_ERR +[Worker] attribute INDEX_SIZE_ERR +[Worker] attribute INUSE_ATTRIBUTE_ERR +[Worker] attribute INVALID_ACCESS_ERR +[Worker] attribute INVALID_CHARACTER_ERR +[Worker] attribute INVALID_MODIFICATION_ERR +[Worker] attribute INVALID_NODE_TYPE_ERR +[Worker] attribute INVALID_STATE_ERR +[Worker] attribute NAMESPACE_ERR +[Worker] attribute NETWORK_ERR +[Worker] attribute NOT_FOUND_ERR +[Worker] attribute NOT_SUPPORTED_ERR +[Worker] attribute NO_DATA_ALLOWED_ERR +[Worker] attribute NO_MODIFICATION_ALLOWED_ERR +[Worker] attribute QUOTA_EXCEEDED_ERR +[Worker] attribute SECURITY_ERR +[Worker] attribute SYNTAX_ERR +[Worker] attribute TIMEOUT_ERR +[Worker] attribute TYPE_MISMATCH_ERR +[Worker] attribute URL_MISMATCH_ERR +[Worker] attribute VALIDATION_ERR +[Worker] attribute WRONG_DOCUMENT_ERR +[Worker] getter code +[Worker] getter message +[Worker] getter name +[Worker] method constructor +[Worker] method toString +[Worker] interface DOMMatrix : DOMMatrixReadOnly +[Worker] attribute @@toStringTag +[Worker] getter a +[Worker] getter b +[Worker] getter c +[Worker] getter d +[Worker] getter e +[Worker] getter f +[Worker] getter m11 +[Worker] getter m12 +[Worker] getter m13 +[Worker] getter m14 +[Worker] getter m21 +[Worker] getter m22 +[Worker] getter m23 +[Worker] getter m24 +[Worker] getter m31 +[Worker] getter m32 +[Worker] getter m33 +[Worker] getter m34 +[Worker] getter m41 +[Worker] getter m42 +[Worker] getter m43 +[Worker] getter m44 +[Worker] method constructor +[Worker] method invertSelf +[Worker] method multiplySelf +[Worker] method preMultiplySelf +[Worker] method rotateAxisAngleSelf +[Worker] method rotateFromVectorSelf +[Worker] method rotateSelf +[Worker] method scale3dSelf +[Worker] method scaleSelf +[Worker] method setMatrixValue +[Worker] method skewXSelf +[Worker] method skewYSelf +[Worker] method translateSelf +[Worker] setter a +[Worker] setter b +[Worker] setter c +[Worker] setter d +[Worker] setter e +[Worker] setter f +[Worker] setter m11 +[Worker] setter m12 +[Worker] setter m13 +[Worker] setter m14 +[Worker] setter m21 +[Worker] setter m22 +[Worker] setter m23 +[Worker] setter m24 +[Worker] setter m31 +[Worker] setter m32 +[Worker] setter m33 +[Worker] setter m34 +[Worker] setter m41 +[Worker] setter m42 +[Worker] setter m43 +[Worker] setter m44 +[Worker] interface DOMMatrixReadOnly +[Worker] static method fromFloat32Array +[Worker] static method fromFloat64Array +[Worker] static method fromMatrix +[Worker] attribute @@toStringTag +[Worker] getter a +[Worker] getter b +[Worker] getter c +[Worker] getter d +[Worker] getter e +[Worker] getter f +[Worker] getter is2D +[Worker] getter isIdentity +[Worker] getter m11 +[Worker] getter m12 +[Worker] getter m13 +[Worker] getter m14 +[Worker] getter m21 +[Worker] getter m22 +[Worker] getter m23 +[Worker] getter m24 +[Worker] getter m31 +[Worker] getter m32 +[Worker] getter m33 +[Worker] getter m34 +[Worker] getter m41 +[Worker] getter m42 +[Worker] getter m43 +[Worker] getter m44 +[Worker] method constructor +[Worker] method flipX +[Worker] method flipY +[Worker] method inverse +[Worker] method multiply +[Worker] method rotate +[Worker] method rotateAxisAngle +[Worker] method rotateFromVector +[Worker] method scale +[Worker] method scale3d +[Worker] method skewX +[Worker] method skewY +[Worker] method toFloat32Array +[Worker] method toFloat64Array +[Worker] method toJSON +[Worker] method toString +[Worker] method transformPoint +[Worker] method translate +[Worker] interface DOMPoint : DOMPointReadOnly +[Worker] attribute @@toStringTag +[Worker] getter w +[Worker] getter x +[Worker] getter y +[Worker] getter z +[Worker] method constructor +[Worker] setter w +[Worker] setter x +[Worker] setter y +[Worker] setter z +[Worker] interface DOMPointReadOnly +[Worker] static method fromPoint +[Worker] attribute @@toStringTag +[Worker] getter w +[Worker] getter x +[Worker] getter y +[Worker] getter z +[Worker] method constructor +[Worker] method matrixTransform +[Worker] method toJSON +[Worker] interface DOMQuad +[Worker] static method fromQuad +[Worker] static method fromRect +[Worker] attribute @@toStringTag +[Worker] getter p1 +[Worker] getter p2 +[Worker] getter p3 +[Worker] getter p4 +[Worker] method constructor +[Worker] method getBounds +[Worker] method toJSON +[Worker] interface DOMRect : DOMRectReadOnly +[Worker] attribute @@toStringTag +[Worker] getter height +[Worker] getter width +[Worker] getter x +[Worker] getter y +[Worker] method constructor +[Worker] setter height +[Worker] setter width +[Worker] setter x +[Worker] setter y +[Worker] interface DOMRectReadOnly +[Worker] static method fromRect +[Worker] attribute @@toStringTag +[Worker] getter bottom +[Worker] getter height +[Worker] getter left +[Worker] getter right +[Worker] getter top +[Worker] getter width +[Worker] getter x +[Worker] getter y +[Worker] method constructor +[Worker] method toJSON +[Worker] interface DOMStringList +[Worker] attribute @@toStringTag +[Worker] getter length +[Worker] method @@iterator +[Worker] method constructor +[Worker] method contains +[Worker] method item +[Worker] interface DataView +[Worker] attribute @@toStringTag +[Worker] getter buffer +[Worker] getter byteLength +[Worker] getter byteOffset +[Worker] method constructor +[Worker] method getFloat32 +[Worker] method getFloat64 +[Worker] method getInt16 +[Worker] method getInt32 +[Worker] method getInt8 +[Worker] method getUint16 +[Worker] method getUint32 +[Worker] method getUint8 +[Worker] method setFloat32 +[Worker] method setFloat64 +[Worker] method setInt16 +[Worker] method setInt32 +[Worker] method setInt8 +[Worker] method setUint16 +[Worker] method setUint32 +[Worker] method setUint8 +[Worker] interface Event +[Worker] attribute @@toStringTag +[Worker] attribute AT_TARGET +[Worker] attribute BUBBLING_PHASE +[Worker] attribute CAPTURING_PHASE +[Worker] attribute NONE +[Worker] getter bubbles +[Worker] getter cancelBubble +[Worker] getter cancelable +[Worker] getter composed +[Worker] getter currentTarget +[Worker] getter defaultPrevented +[Worker] getter eventPhase +[Worker] getter path +[Worker] getter returnValue +[Worker] getter srcElement +[Worker] getter target +[Worker] getter timeStamp +[Worker] getter type +[Worker] method composedPath +[Worker] method constructor +[Worker] method initEvent +[Worker] method preventDefault +[Worker] method stopImmediatePropagation +[Worker] method stopPropagation +[Worker] setter cancelBubble +[Worker] setter returnValue +[Worker] interface EventSource : EventTarget +[Worker] attribute @@toStringTag +[Worker] attribute CLOSED +[Worker] attribute CONNECTING +[Worker] attribute OPEN +[Worker] getter onerror +[Worker] getter onmessage +[Worker] getter onopen +[Worker] getter readyState +[Worker] getter url +[Worker] getter withCredentials +[Worker] method close +[Worker] method constructor +[Worker] setter onerror +[Worker] setter onmessage +[Worker] setter onopen +[Worker] interface EventTarget +[Worker] attribute @@toStringTag +[Worker] method addEventListener +[Worker] method constructor +[Worker] method dispatchEvent +[Worker] method removeEventListener +[Worker] interface FaceDetector +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method detect +[Worker] interface File : Blob +[Worker] attribute @@toStringTag +[Worker] getter lastModified +[Worker] getter lastModifiedDate +[Worker] getter name +[Worker] getter webkitRelativePath +[Worker] method constructor +[Worker] interface FileList +[Worker] attribute @@toStringTag +[Worker] getter length +[Worker] method @@iterator +[Worker] method constructor +[Worker] method item +[Worker] interface FileReader : EventTarget +[Worker] attribute @@toStringTag +[Worker] attribute DONE +[Worker] attribute EMPTY +[Worker] attribute LOADING +[Worker] getter error +[Worker] getter onabort +[Worker] getter onerror +[Worker] getter onload +[Worker] getter onloadend +[Worker] getter onloadstart +[Worker] getter onprogress +[Worker] getter readyState +[Worker] getter result +[Worker] method abort +[Worker] method constructor +[Worker] method readAsArrayBuffer +[Worker] method readAsBinaryString +[Worker] method readAsDataURL +[Worker] method readAsText +[Worker] setter onabort +[Worker] setter onerror +[Worker] setter onload +[Worker] setter onloadend +[Worker] setter onloadstart +[Worker] setter onprogress +[Worker] interface FileReaderSync +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method readAsArrayBuffer +[Worker] method readAsBinaryString +[Worker] method readAsDataURL +[Worker] method readAsText +[Worker] interface FormData +[Worker] attribute @@toStringTag +[Worker] method @@iterator +[Worker] method append +[Worker] method constructor +[Worker] method delete +[Worker] method entries +[Worker] method forEach +[Worker] method get +[Worker] method getAll +[Worker] method has +[Worker] method keys +[Worker] method set +[Worker] method values +[Worker] interface Headers +[Worker] attribute @@toStringTag +[Worker] method @@iterator +[Worker] method append +[Worker] method constructor +[Worker] method delete +[Worker] method entries +[Worker] method forEach +[Worker] method get +[Worker] method getAll +[Worker] method has +[Worker] method keys +[Worker] method set +[Worker] method values +[Worker] interface IDBCursor +[Worker] attribute @@toStringTag +[Worker] getter direction +[Worker] getter key +[Worker] getter primaryKey +[Worker] getter source +[Worker] method advance +[Worker] method constructor +[Worker] method continue +[Worker] method continuePrimaryKey +[Worker] method delete +[Worker] method update +[Worker] interface IDBCursorWithValue : IDBCursor +[Worker] attribute @@toStringTag +[Worker] getter value +[Worker] method constructor +[Worker] interface IDBDatabase : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter name +[Worker] getter objectStoreNames +[Worker] getter onabort +[Worker] getter onclose +[Worker] getter onerror +[Worker] getter onversionchange +[Worker] getter version +[Worker] method close +[Worker] method constructor +[Worker] method createObjectStore +[Worker] method deleteObjectStore +[Worker] method transaction +[Worker] setter onabort +[Worker] setter onclose +[Worker] setter onerror +[Worker] setter onversionchange +[Worker] interface IDBFactory +[Worker] attribute @@toStringTag +[Worker] method cmp +[Worker] method constructor +[Worker] method deleteDatabase +[Worker] method open +[Worker] method webkitGetDatabaseNames +[Worker] interface IDBIndex +[Worker] attribute @@toStringTag +[Worker] getter keyPath +[Worker] getter multiEntry +[Worker] getter name +[Worker] getter objectStore +[Worker] getter unique +[Worker] method constructor +[Worker] method count +[Worker] method get +[Worker] method getAll +[Worker] method getAllKeys +[Worker] method getKey +[Worker] method openCursor +[Worker] method openKeyCursor +[Worker] setter name +[Worker] interface IDBKeyRange +[Worker] static method bound +[Worker] static method lowerBound +[Worker] static method only +[Worker] static method upperBound +[Worker] attribute @@toStringTag +[Worker] getter lower +[Worker] getter lowerOpen +[Worker] getter upper +[Worker] getter upperOpen +[Worker] method constructor +[Worker] method includes +[Worker] interface IDBObjectStore +[Worker] attribute @@toStringTag +[Worker] getter autoIncrement +[Worker] getter indexNames +[Worker] getter keyPath +[Worker] getter name +[Worker] getter transaction +[Worker] method add +[Worker] method clear +[Worker] method constructor +[Worker] method count +[Worker] method createIndex +[Worker] method delete +[Worker] method deleteIndex +[Worker] method get +[Worker] method getAll +[Worker] method getAllKeys +[Worker] method getKey +[Worker] method index +[Worker] method openCursor +[Worker] method openKeyCursor +[Worker] method put +[Worker] setter name +[Worker] interface IDBObservation +[Worker] attribute @@toStringTag +[Worker] getter key +[Worker] getter type +[Worker] getter value +[Worker] method constructor +[Worker] interface IDBObserver +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method observe +[Worker] method unobserve +[Worker] interface IDBOpenDBRequest : IDBRequest +[Worker] attribute @@toStringTag +[Worker] getter onblocked +[Worker] getter onupgradeneeded +[Worker] method constructor +[Worker] setter onblocked +[Worker] setter onupgradeneeded +[Worker] interface IDBRequest : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter error +[Worker] getter onerror +[Worker] getter onsuccess +[Worker] getter readyState +[Worker] getter result +[Worker] getter source +[Worker] getter transaction +[Worker] method constructor +[Worker] setter onerror +[Worker] setter onsuccess +[Worker] interface IDBTransaction : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter db +[Worker] getter error +[Worker] getter mode +[Worker] getter objectStoreNames +[Worker] getter onabort +[Worker] getter oncomplete +[Worker] getter onerror +[Worker] method abort +[Worker] method constructor +[Worker] method objectStore +[Worker] setter onabort +[Worker] setter oncomplete +[Worker] setter onerror +[Worker] interface IDBVersionChangeEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter dataLoss +[Worker] getter dataLossMessage +[Worker] getter newVersion +[Worker] getter oldVersion +[Worker] method constructor +[Worker] interface ImageBitmap +[Worker] attribute @@toStringTag +[Worker] getter height +[Worker] getter width +[Worker] method close +[Worker] method constructor +[Worker] interface ImageData +[Worker] attribute @@toStringTag +[Worker] getter data +[Worker] getter dataUnion +[Worker] getter height +[Worker] getter width +[Worker] method constructor +[Worker] method createImageData +[Worker] method getColorSettings +[Worker] interface MessageChannel +[Worker] attribute @@toStringTag +[Worker] getter port1 +[Worker] getter port2 +[Worker] method constructor +[Worker] interface MessageEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter data +[Worker] getter lastEventId +[Worker] getter origin +[Worker] getter ports +[Worker] getter source +[Worker] getter suborigin +[Worker] method constructor +[Worker] method initMessageEvent +[Worker] interface MessagePort : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter onmessage +[Worker] method close +[Worker] method constructor +[Worker] method postMessage +[Worker] method start +[Worker] setter onmessage +[Worker] interface NetworkInformation : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter downlinkMax +[Worker] getter onchange +[Worker] getter ontypechange +[Worker] getter type +[Worker] method constructor +[Worker] setter onchange +[Worker] setter ontypechange +[Worker] interface Notification : EventTarget +[Worker] static getter maxActions +[Worker] static getter permission +[Worker] attribute @@toStringTag +[Worker] getter actions +[Worker] getter badge +[Worker] getter body +[Worker] getter data +[Worker] getter dir +[Worker] getter icon +[Worker] getter image +[Worker] getter lang +[Worker] getter onclick +[Worker] getter onclose +[Worker] getter onerror +[Worker] getter onshow +[Worker] getter renotify +[Worker] getter requireInteraction +[Worker] getter silent +[Worker] getter tag +[Worker] getter timestamp +[Worker] getter title +[Worker] getter vibrate +[Worker] method close +[Worker] method constructor +[Worker] setter onclick +[Worker] setter onclose +[Worker] setter onerror +[Worker] setter onshow +[Worker] interface OffscreenCanvas : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter height +[Worker] getter width +[Worker] method constructor +[Worker] method convertToBlob +[Worker] method getContext +[Worker] method transferToImageBitmap +[Worker] setter height +[Worker] setter width +[Worker] interface OffscreenCanvasRenderingContext2D +[Worker] attribute @@toStringTag +[Worker] getter canvas +[Worker] getter fillStyle +[Worker] getter filter +[Worker] getter globalAlpha +[Worker] getter globalCompositeOperation +[Worker] getter imageSmoothingEnabled +[Worker] getter imageSmoothingQuality +[Worker] getter lineCap +[Worker] getter lineDashOffset +[Worker] getter lineJoin +[Worker] getter lineWidth +[Worker] getter miterLimit +[Worker] getter shadowBlur +[Worker] getter shadowColor +[Worker] getter shadowOffsetX +[Worker] getter shadowOffsetY +[Worker] getter strokeStyle +[Worker] method arc +[Worker] method arcTo +[Worker] method beginPath +[Worker] method bezierCurveTo +[Worker] method clearRect +[Worker] method clip +[Worker] method closePath +[Worker] method commit +[Worker] method constructor +[Worker] method createImageData +[Worker] method createLinearGradient +[Worker] method createPattern +[Worker] method createRadialGradient +[Worker] method drawImage +[Worker] method ellipse +[Worker] method fill +[Worker] method fillRect +[Worker] method getImageData +[Worker] method getLineDash +[Worker] method isPointInPath +[Worker] method isPointInStroke +[Worker] method lineTo +[Worker] method moveTo +[Worker] method putImageData +[Worker] method quadraticCurveTo +[Worker] method rect +[Worker] method resetTransform +[Worker] method restore +[Worker] method rotate +[Worker] method save +[Worker] method scale +[Worker] method setLineDash +[Worker] method setTransform +[Worker] method stroke +[Worker] method strokeRect +[Worker] method transform +[Worker] method translate +[Worker] setter fillStyle +[Worker] setter filter +[Worker] setter globalAlpha +[Worker] setter globalCompositeOperation +[Worker] setter imageSmoothingEnabled +[Worker] setter imageSmoothingQuality +[Worker] setter lineCap +[Worker] setter lineDashOffset +[Worker] setter lineJoin +[Worker] setter lineWidth +[Worker] setter miterLimit +[Worker] setter shadowBlur +[Worker] setter shadowColor +[Worker] setter shadowOffsetX +[Worker] setter shadowOffsetY +[Worker] setter strokeStyle +[Worker] interface Path2D +[Worker] attribute @@toStringTag +[Worker] method addPath +[Worker] method arc +[Worker] method arcTo +[Worker] method bezierCurveTo +[Worker] method closePath +[Worker] method constructor +[Worker] method ellipse +[Worker] method lineTo +[Worker] method moveTo +[Worker] method quadraticCurveTo +[Worker] method rect +[Worker] interface PerformanceObserverEntryList +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method getEntries +[Worker] method getEntriesByName +[Worker] method getEntriesByType +[Worker] interface PermissionStatus : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter onchange +[Worker] getter state +[Worker] method constructor +[Worker] setter onchange +[Worker] interface Permissions +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method query +[Worker] method request +[Worker] method requestAll +[Worker] method revoke +[Worker] interface ProgressEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter lengthComputable +[Worker] getter loaded +[Worker] getter total +[Worker] method constructor +[Worker] interface PromiseRejectionEvent : Event +[Worker] attribute @@toStringTag +[Worker] getter promise +[Worker] getter reason +[Worker] method constructor +[Worker] interface ReadableStream +[Worker] getter locked +[Worker] method cancel +[Worker] method constructor +[Worker] method getReader +[Worker] method pipeThrough +[Worker] method pipeTo +[Worker] method tee +[Worker] interface Request +[Worker] attribute @@toStringTag +[Worker] getter bodyUsed +[Worker] getter cache +[Worker] getter credentials +[Worker] getter headers +[Worker] getter integrity +[Worker] getter method +[Worker] getter mode +[Worker] getter redirect +[Worker] getter referrer +[Worker] getter referrerPolicy +[Worker] getter url +[Worker] method arrayBuffer +[Worker] method blob +[Worker] method clone +[Worker] method constructor +[Worker] method json +[Worker] method text +[Worker] interface Response +[Worker] static method error +[Worker] static method redirect +[Worker] attribute @@toStringTag +[Worker] getter body +[Worker] getter bodyUsed +[Worker] getter headers +[Worker] getter ok +[Worker] getter redirected +[Worker] getter status +[Worker] getter statusText +[Worker] getter type +[Worker] getter url +[Worker] method arrayBuffer +[Worker] method blob +[Worker] method clone +[Worker] method constructor +[Worker] method json +[Worker] method text +[Worker] interface ServiceWorkerRegistration : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter active +[Worker] getter backgroundFetch +[Worker] getter installing +[Worker] getter onupdatefound +[Worker] getter paymentManager +[Worker] getter pushManager +[Worker] getter scope +[Worker] getter sync +[Worker] getter waiting +[Worker] method constructor +[Worker] method getNotifications +[Worker] method showNotification +[Worker] method unregister +[Worker] method update +[Worker] setter onupdatefound +[Worker] interface SharedWorkerGlobalScope : WorkerGlobalScope +[Worker] attribute @@toStringTag +[Worker] attribute PERSISTENT +[Worker] attribute TEMPORARY +[Worker] method constructor +[Worker] interface StorageManager +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method estimate +[Worker] method persisted +[Worker] interface SubtleCrypto +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method decrypt +[Worker] method deriveBits +[Worker] method deriveKey +[Worker] method digest +[Worker] method encrypt +[Worker] method exportKey +[Worker] method generateKey +[Worker] method importKey +[Worker] method sign +[Worker] method unwrapKey +[Worker] method verify +[Worker] method wrapKey +[Worker] interface TextDecoder +[Worker] attribute @@toStringTag +[Worker] getter encoding +[Worker] getter fatal +[Worker] getter ignoreBOM +[Worker] method constructor +[Worker] method decode +[Worker] interface TextDetector +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method detect +[Worker] interface TextEncoder +[Worker] attribute @@toStringTag +[Worker] getter encoding +[Worker] method constructor +[Worker] method encode +[Worker] interface URL +[Worker] static method createObjectURL +[Worker] static method revokeObjectURL +[Worker] attribute @@toStringTag +[Worker] getter hash +[Worker] getter host +[Worker] getter hostname +[Worker] getter href +[Worker] getter origin +[Worker] getter password +[Worker] getter pathname +[Worker] getter port +[Worker] getter protocol +[Worker] getter search +[Worker] getter searchParams +[Worker] getter username +[Worker] method constructor +[Worker] method toString +[Worker] setter hash +[Worker] setter host +[Worker] setter hostname +[Worker] setter href +[Worker] setter password +[Worker] setter pathname +[Worker] setter port +[Worker] setter protocol +[Worker] setter search +[Worker] setter username +[Worker] interface URLSearchParams +[Worker] attribute @@toStringTag +[Worker] method @@iterator +[Worker] method append +[Worker] method constructor +[Worker] method delete +[Worker] method entries +[Worker] method forEach +[Worker] method get +[Worker] method getAll +[Worker] method has +[Worker] method keys +[Worker] method set +[Worker] method toString +[Worker] method values +[Worker] interface WebGL2RenderingContext +[Worker] attribute @@toStringTag +[Worker] attribute ACTIVE_ATTRIBUTES +[Worker] attribute ACTIVE_TEXTURE +[Worker] attribute ACTIVE_UNIFORMS +[Worker] attribute ACTIVE_UNIFORM_BLOCKS +[Worker] attribute ALIASED_LINE_WIDTH_RANGE +[Worker] attribute ALIASED_POINT_SIZE_RANGE +[Worker] attribute ALPHA +[Worker] attribute ALPHA_BITS +[Worker] attribute ALREADY_SIGNALED +[Worker] attribute ALWAYS +[Worker] attribute ANY_SAMPLES_PASSED +[Worker] attribute ANY_SAMPLES_PASSED_CONSERVATIVE +[Worker] attribute ARRAY_BUFFER +[Worker] attribute ARRAY_BUFFER_BINDING +[Worker] attribute ATTACHED_SHADERS +[Worker] attribute BACK +[Worker] attribute BLEND +[Worker] attribute BLEND_COLOR +[Worker] attribute BLEND_DST_ALPHA +[Worker] attribute BLEND_DST_RGB +[Worker] attribute BLEND_EQUATION +[Worker] attribute BLEND_EQUATION_ALPHA +[Worker] attribute BLEND_EQUATION_RGB +[Worker] attribute BLEND_SRC_ALPHA +[Worker] attribute BLEND_SRC_RGB +[Worker] attribute BLUE_BITS +[Worker] attribute BOOL +[Worker] attribute BOOL_VEC2 +[Worker] attribute BOOL_VEC3 +[Worker] attribute BOOL_VEC4 +[Worker] attribute BROWSER_DEFAULT_WEBGL +[Worker] attribute BUFFER_SIZE +[Worker] attribute BUFFER_USAGE +[Worker] attribute BYTE +[Worker] attribute CCW +[Worker] attribute CLAMP_TO_EDGE +[Worker] attribute COLOR +[Worker] attribute COLOR_ATTACHMENT0 +[Worker] attribute COLOR_ATTACHMENT1 +[Worker] attribute COLOR_ATTACHMENT10 +[Worker] attribute COLOR_ATTACHMENT11 +[Worker] attribute COLOR_ATTACHMENT12 +[Worker] attribute COLOR_ATTACHMENT13 +[Worker] attribute COLOR_ATTACHMENT14 +[Worker] attribute COLOR_ATTACHMENT15 +[Worker] attribute COLOR_ATTACHMENT2 +[Worker] attribute COLOR_ATTACHMENT3 +[Worker] attribute COLOR_ATTACHMENT4 +[Worker] attribute COLOR_ATTACHMENT5 +[Worker] attribute COLOR_ATTACHMENT6 +[Worker] attribute COLOR_ATTACHMENT7 +[Worker] attribute COLOR_ATTACHMENT8 +[Worker] attribute COLOR_ATTACHMENT9 +[Worker] attribute COLOR_BUFFER_BIT +[Worker] attribute COLOR_CLEAR_VALUE +[Worker] attribute COLOR_WRITEMASK +[Worker] attribute COMPARE_REF_TO_TEXTURE +[Worker] attribute COMPILE_STATUS +[Worker] attribute COMPRESSED_TEXTURE_FORMATS +[Worker] attribute CONDITION_SATISFIED +[Worker] attribute CONSTANT_ALPHA +[Worker] attribute CONSTANT_COLOR +[Worker] attribute CONTEXT_LOST_WEBGL +[Worker] attribute COPY_READ_BUFFER +[Worker] attribute COPY_READ_BUFFER_BINDING +[Worker] attribute COPY_WRITE_BUFFER +[Worker] attribute COPY_WRITE_BUFFER_BINDING +[Worker] attribute CULL_FACE +[Worker] attribute CULL_FACE_MODE +[Worker] attribute CURRENT_PROGRAM +[Worker] attribute CURRENT_QUERY +[Worker] attribute CURRENT_VERTEX_ATTRIB +[Worker] attribute CW +[Worker] attribute DECR +[Worker] attribute DECR_WRAP +[Worker] attribute DELETE_STATUS +[Worker] attribute DEPTH +[Worker] attribute DEPTH24_STENCIL8 +[Worker] attribute DEPTH32F_STENCIL8 +[Worker] attribute DEPTH_ATTACHMENT +[Worker] attribute DEPTH_BITS +[Worker] attribute DEPTH_BUFFER_BIT +[Worker] attribute DEPTH_CLEAR_VALUE +[Worker] attribute DEPTH_COMPONENT +[Worker] attribute DEPTH_COMPONENT16 +[Worker] attribute DEPTH_COMPONENT24 +[Worker] attribute DEPTH_COMPONENT32F +[Worker] attribute DEPTH_FUNC +[Worker] attribute DEPTH_RANGE +[Worker] attribute DEPTH_STENCIL +[Worker] attribute DEPTH_STENCIL_ATTACHMENT +[Worker] attribute DEPTH_TEST +[Worker] attribute DEPTH_WRITEMASK +[Worker] attribute DITHER +[Worker] attribute DONT_CARE +[Worker] attribute DRAW_BUFFER0 +[Worker] attribute DRAW_BUFFER1 +[Worker] attribute DRAW_BUFFER10 +[Worker] attribute DRAW_BUFFER11 +[Worker] attribute DRAW_BUFFER12 +[Worker] attribute DRAW_BUFFER13 +[Worker] attribute DRAW_BUFFER14 +[Worker] attribute DRAW_BUFFER15 +[Worker] attribute DRAW_BUFFER2 +[Worker] attribute DRAW_BUFFER3 +[Worker] attribute DRAW_BUFFER4 +[Worker] attribute DRAW_BUFFER5 +[Worker] attribute DRAW_BUFFER6 +[Worker] attribute DRAW_BUFFER7 +[Worker] attribute DRAW_BUFFER8 +[Worker] attribute DRAW_BUFFER9 +[Worker] attribute DRAW_FRAMEBUFFER +[Worker] attribute DRAW_FRAMEBUFFER_BINDING +[Worker] attribute DST_ALPHA +[Worker] attribute DST_COLOR +[Worker] attribute DYNAMIC_COPY +[Worker] attribute DYNAMIC_DRAW +[Worker] attribute DYNAMIC_READ +[Worker] attribute ELEMENT_ARRAY_BUFFER +[Worker] attribute ELEMENT_ARRAY_BUFFER_BINDING +[Worker] attribute EQUAL +[Worker] attribute FASTEST +[Worker] attribute FLOAT +[Worker] attribute FLOAT_32_UNSIGNED_INT_24_8_REV +[Worker] attribute FLOAT_MAT2 +[Worker] attribute FLOAT_MAT2x3 +[Worker] attribute FLOAT_MAT2x4 +[Worker] attribute FLOAT_MAT3 +[Worker] attribute FLOAT_MAT3x2 +[Worker] attribute FLOAT_MAT3x4 +[Worker] attribute FLOAT_MAT4 +[Worker] attribute FLOAT_MAT4x2 +[Worker] attribute FLOAT_MAT4x3 +[Worker] attribute FLOAT_VEC2 +[Worker] attribute FLOAT_VEC3 +[Worker] attribute FLOAT_VEC4 +[Worker] attribute FRAGMENT_SHADER +[Worker] attribute FRAGMENT_SHADER_DERIVATIVE_HINT +[Worker] attribute FRAMEBUFFER +[Worker] attribute FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_BLUE_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING +[Worker] attribute FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_GREEN_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_OBJECT_NAME +[Worker] attribute FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_RED_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL +[Worker] attribute FRAMEBUFFER_BINDING +[Worker] attribute FRAMEBUFFER_COMPLETE +[Worker] attribute FRAMEBUFFER_DEFAULT +[Worker] attribute FRAMEBUFFER_INCOMPLETE_ATTACHMENT +[Worker] attribute FRAMEBUFFER_INCOMPLETE_DIMENSIONS +[Worker] attribute FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT +[Worker] attribute FRAMEBUFFER_INCOMPLETE_MULTISAMPLE +[Worker] attribute FRAMEBUFFER_UNSUPPORTED +[Worker] attribute FRONT +[Worker] attribute FRONT_AND_BACK +[Worker] attribute FRONT_FACE +[Worker] attribute FUNC_ADD +[Worker] attribute FUNC_REVERSE_SUBTRACT +[Worker] attribute FUNC_SUBTRACT +[Worker] attribute GENERATE_MIPMAP_HINT +[Worker] attribute GEQUAL +[Worker] attribute GREATER +[Worker] attribute GREEN_BITS +[Worker] attribute HALF_FLOAT +[Worker] attribute HIGH_FLOAT +[Worker] attribute HIGH_INT +[Worker] attribute IMPLEMENTATION_COLOR_READ_FORMAT +[Worker] attribute IMPLEMENTATION_COLOR_READ_TYPE +[Worker] attribute INCR +[Worker] attribute INCR_WRAP +[Worker] attribute INT +[Worker] attribute INTERLEAVED_ATTRIBS +[Worker] attribute INT_2_10_10_10_REV +[Worker] attribute INT_SAMPLER_2D +[Worker] attribute INT_SAMPLER_2D_ARRAY +[Worker] attribute INT_SAMPLER_3D +[Worker] attribute INT_SAMPLER_CUBE +[Worker] attribute INT_VEC2 +[Worker] attribute INT_VEC3 +[Worker] attribute INT_VEC4 +[Worker] attribute INVALID_ENUM +[Worker] attribute INVALID_FRAMEBUFFER_OPERATION +[Worker] attribute INVALID_INDEX +[Worker] attribute INVALID_OPERATION +[Worker] attribute INVALID_VALUE +[Worker] attribute INVERT +[Worker] attribute KEEP +[Worker] attribute LEQUAL +[Worker] attribute LESS +[Worker] attribute LINEAR +[Worker] attribute LINEAR_MIPMAP_LINEAR +[Worker] attribute LINEAR_MIPMAP_NEAREST +[Worker] attribute LINES +[Worker] attribute LINE_LOOP +[Worker] attribute LINE_STRIP +[Worker] attribute LINE_WIDTH +[Worker] attribute LINK_STATUS +[Worker] attribute LOW_FLOAT +[Worker] attribute LOW_INT +[Worker] attribute LUMINANCE +[Worker] attribute LUMINANCE_ALPHA +[Worker] attribute MAX +[Worker] attribute MAX_3D_TEXTURE_SIZE +[Worker] attribute MAX_ARRAY_TEXTURE_LAYERS +[Worker] attribute MAX_CLIENT_WAIT_TIMEOUT_WEBGL +[Worker] attribute MAX_COLOR_ATTACHMENTS +[Worker] attribute MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS +[Worker] attribute MAX_COMBINED_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_COMBINED_UNIFORM_BLOCKS +[Worker] attribute MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS +[Worker] attribute MAX_CUBE_MAP_TEXTURE_SIZE +[Worker] attribute MAX_DRAW_BUFFERS +[Worker] attribute MAX_ELEMENTS_INDICES +[Worker] attribute MAX_ELEMENTS_VERTICES +[Worker] attribute MAX_ELEMENT_INDEX +[Worker] attribute MAX_FRAGMENT_INPUT_COMPONENTS +[Worker] attribute MAX_FRAGMENT_UNIFORM_BLOCKS +[Worker] attribute MAX_FRAGMENT_UNIFORM_COMPONENTS +[Worker] attribute MAX_FRAGMENT_UNIFORM_VECTORS +[Worker] attribute MAX_PROGRAM_TEXEL_OFFSET +[Worker] attribute MAX_RENDERBUFFER_SIZE +[Worker] attribute MAX_SAMPLES +[Worker] attribute MAX_SERVER_WAIT_TIMEOUT +[Worker] attribute MAX_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_TEXTURE_LOD_BIAS +[Worker] attribute MAX_TEXTURE_SIZE +[Worker] attribute MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS +[Worker] attribute MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS +[Worker] attribute MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS +[Worker] attribute MAX_UNIFORM_BLOCK_SIZE +[Worker] attribute MAX_UNIFORM_BUFFER_BINDINGS +[Worker] attribute MAX_VARYING_COMPONENTS +[Worker] attribute MAX_VARYING_VECTORS +[Worker] attribute MAX_VERTEX_ATTRIBS +[Worker] attribute MAX_VERTEX_OUTPUT_COMPONENTS +[Worker] attribute MAX_VERTEX_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_VERTEX_UNIFORM_BLOCKS +[Worker] attribute MAX_VERTEX_UNIFORM_COMPONENTS +[Worker] attribute MAX_VERTEX_UNIFORM_VECTORS +[Worker] attribute MAX_VIEWPORT_DIMS +[Worker] attribute MEDIUM_FLOAT +[Worker] attribute MEDIUM_INT +[Worker] attribute MIN +[Worker] attribute MIN_PROGRAM_TEXEL_OFFSET +[Worker] attribute MIRRORED_REPEAT +[Worker] attribute NEAREST +[Worker] attribute NEAREST_MIPMAP_LINEAR +[Worker] attribute NEAREST_MIPMAP_NEAREST +[Worker] attribute NEVER +[Worker] attribute NICEST +[Worker] attribute NONE +[Worker] attribute NOTEQUAL +[Worker] attribute NO_ERROR +[Worker] attribute OBJECT_TYPE +[Worker] attribute ONE +[Worker] attribute ONE_MINUS_CONSTANT_ALPHA +[Worker] attribute ONE_MINUS_CONSTANT_COLOR +[Worker] attribute ONE_MINUS_DST_ALPHA +[Worker] attribute ONE_MINUS_DST_COLOR +[Worker] attribute ONE_MINUS_SRC_ALPHA +[Worker] attribute ONE_MINUS_SRC_COLOR +[Worker] attribute OUT_OF_MEMORY +[Worker] attribute PACK_ALIGNMENT +[Worker] attribute PACK_ROW_LENGTH +[Worker] attribute PACK_SKIP_PIXELS +[Worker] attribute PACK_SKIP_ROWS +[Worker] attribute PIXEL_PACK_BUFFER +[Worker] attribute PIXEL_PACK_BUFFER_BINDING +[Worker] attribute PIXEL_UNPACK_BUFFER +[Worker] attribute PIXEL_UNPACK_BUFFER_BINDING +[Worker] attribute POINTS +[Worker] attribute POLYGON_OFFSET_FACTOR +[Worker] attribute POLYGON_OFFSET_FILL +[Worker] attribute POLYGON_OFFSET_UNITS +[Worker] attribute QUERY_RESULT +[Worker] attribute QUERY_RESULT_AVAILABLE +[Worker] attribute R11F_G11F_B10F +[Worker] attribute R16F +[Worker] attribute R16I +[Worker] attribute R16UI +[Worker] attribute R32F +[Worker] attribute R32I +[Worker] attribute R32UI +[Worker] attribute R8 +[Worker] attribute R8I +[Worker] attribute R8UI +[Worker] attribute R8_SNORM +[Worker] attribute RASTERIZER_DISCARD +[Worker] attribute READ_BUFFER +[Worker] attribute READ_FRAMEBUFFER +[Worker] attribute READ_FRAMEBUFFER_BINDING +[Worker] attribute RED +[Worker] attribute RED_BITS +[Worker] attribute RED_INTEGER +[Worker] attribute RENDERBUFFER +[Worker] attribute RENDERBUFFER_ALPHA_SIZE +[Worker] attribute RENDERBUFFER_BINDING +[Worker] attribute RENDERBUFFER_BLUE_SIZE +[Worker] attribute RENDERBUFFER_DEPTH_SIZE +[Worker] attribute RENDERBUFFER_GREEN_SIZE +[Worker] attribute RENDERBUFFER_HEIGHT +[Worker] attribute RENDERBUFFER_INTERNAL_FORMAT +[Worker] attribute RENDERBUFFER_RED_SIZE +[Worker] attribute RENDERBUFFER_SAMPLES +[Worker] attribute RENDERBUFFER_STENCIL_SIZE +[Worker] attribute RENDERBUFFER_WIDTH +[Worker] attribute RENDERER +[Worker] attribute REPEAT +[Worker] attribute REPLACE +[Worker] attribute RG +[Worker] attribute RG16F +[Worker] attribute RG16I +[Worker] attribute RG16UI +[Worker] attribute RG32F +[Worker] attribute RG32I +[Worker] attribute RG32UI +[Worker] attribute RG8 +[Worker] attribute RG8I +[Worker] attribute RG8UI +[Worker] attribute RG8_SNORM +[Worker] attribute RGB +[Worker] attribute RGB10_A2 +[Worker] attribute RGB10_A2UI +[Worker] attribute RGB16F +[Worker] attribute RGB16I +[Worker] attribute RGB16UI +[Worker] attribute RGB32F +[Worker] attribute RGB32I +[Worker] attribute RGB32UI +[Worker] attribute RGB565 +[Worker] attribute RGB5_A1 +[Worker] attribute RGB8 +[Worker] attribute RGB8I +[Worker] attribute RGB8UI +[Worker] attribute RGB8_SNORM +[Worker] attribute RGB9_E5 +[Worker] attribute RGBA +[Worker] attribute RGBA16F +[Worker] attribute RGBA16I +[Worker] attribute RGBA16UI +[Worker] attribute RGBA32F +[Worker] attribute RGBA32I +[Worker] attribute RGBA32UI +[Worker] attribute RGBA4 +[Worker] attribute RGBA8 +[Worker] attribute RGBA8I +[Worker] attribute RGBA8UI +[Worker] attribute RGBA8_SNORM +[Worker] attribute RGBA_INTEGER +[Worker] attribute RGB_INTEGER +[Worker] attribute RG_INTEGER +[Worker] attribute SAMPLER_2D +[Worker] attribute SAMPLER_2D_ARRAY +[Worker] attribute SAMPLER_2D_ARRAY_SHADOW +[Worker] attribute SAMPLER_2D_SHADOW +[Worker] attribute SAMPLER_3D +[Worker] attribute SAMPLER_BINDING +[Worker] attribute SAMPLER_CUBE +[Worker] attribute SAMPLER_CUBE_SHADOW +[Worker] attribute SAMPLES +[Worker] attribute SAMPLE_ALPHA_TO_COVERAGE +[Worker] attribute SAMPLE_BUFFERS +[Worker] attribute SAMPLE_COVERAGE +[Worker] attribute SAMPLE_COVERAGE_INVERT +[Worker] attribute SAMPLE_COVERAGE_VALUE +[Worker] attribute SCISSOR_BOX +[Worker] attribute SCISSOR_TEST +[Worker] attribute SEPARATE_ATTRIBS +[Worker] attribute SHADER_TYPE +[Worker] attribute SHADING_LANGUAGE_VERSION +[Worker] attribute SHORT +[Worker] attribute SIGNALED +[Worker] attribute SIGNED_NORMALIZED +[Worker] attribute SRC_ALPHA +[Worker] attribute SRC_ALPHA_SATURATE +[Worker] attribute SRC_COLOR +[Worker] attribute SRGB +[Worker] attribute SRGB8 +[Worker] attribute SRGB8_ALPHA8 +[Worker] attribute STATIC_COPY +[Worker] attribute STATIC_DRAW +[Worker] attribute STATIC_READ +[Worker] attribute STENCIL +[Worker] attribute STENCIL_ATTACHMENT +[Worker] attribute STENCIL_BACK_FAIL +[Worker] attribute STENCIL_BACK_FUNC +[Worker] attribute STENCIL_BACK_PASS_DEPTH_FAIL +[Worker] attribute STENCIL_BACK_PASS_DEPTH_PASS +[Worker] attribute STENCIL_BACK_REF +[Worker] attribute STENCIL_BACK_VALUE_MASK +[Worker] attribute STENCIL_BACK_WRITEMASK +[Worker] attribute STENCIL_BITS +[Worker] attribute STENCIL_BUFFER_BIT +[Worker] attribute STENCIL_CLEAR_VALUE +[Worker] attribute STENCIL_FAIL +[Worker] attribute STENCIL_FUNC +[Worker] attribute STENCIL_INDEX +[Worker] attribute STENCIL_INDEX8 +[Worker] attribute STENCIL_PASS_DEPTH_FAIL +[Worker] attribute STENCIL_PASS_DEPTH_PASS +[Worker] attribute STENCIL_REF +[Worker] attribute STENCIL_TEST +[Worker] attribute STENCIL_VALUE_MASK +[Worker] attribute STENCIL_WRITEMASK +[Worker] attribute STREAM_COPY +[Worker] attribute STREAM_DRAW +[Worker] attribute STREAM_READ +[Worker] attribute SUBPIXEL_BITS +[Worker] attribute SYNC_CONDITION +[Worker] attribute SYNC_FENCE +[Worker] attribute SYNC_FLAGS +[Worker] attribute SYNC_FLUSH_COMMANDS_BIT +[Worker] attribute SYNC_GPU_COMMANDS_COMPLETE +[Worker] attribute SYNC_STATUS +[Worker] attribute TEXTURE +[Worker] attribute TEXTURE0 +[Worker] attribute TEXTURE1 +[Worker] attribute TEXTURE10 +[Worker] attribute TEXTURE11 +[Worker] attribute TEXTURE12 +[Worker] attribute TEXTURE13 +[Worker] attribute TEXTURE14 +[Worker] attribute TEXTURE15 +[Worker] attribute TEXTURE16 +[Worker] attribute TEXTURE17 +[Worker] attribute TEXTURE18 +[Worker] attribute TEXTURE19 +[Worker] attribute TEXTURE2 +[Worker] attribute TEXTURE20 +[Worker] attribute TEXTURE21 +[Worker] attribute TEXTURE22 +[Worker] attribute TEXTURE23 +[Worker] attribute TEXTURE24 +[Worker] attribute TEXTURE25 +[Worker] attribute TEXTURE26 +[Worker] attribute TEXTURE27 +[Worker] attribute TEXTURE28 +[Worker] attribute TEXTURE29 +[Worker] attribute TEXTURE3 +[Worker] attribute TEXTURE30 +[Worker] attribute TEXTURE31 +[Worker] attribute TEXTURE4 +[Worker] attribute TEXTURE5 +[Worker] attribute TEXTURE6 +[Worker] attribute TEXTURE7 +[Worker] attribute TEXTURE8 +[Worker] attribute TEXTURE9 +[Worker] attribute TEXTURE_2D +[Worker] attribute TEXTURE_2D_ARRAY +[Worker] attribute TEXTURE_3D +[Worker] attribute TEXTURE_BASE_LEVEL +[Worker] attribute TEXTURE_BINDING_2D +[Worker] attribute TEXTURE_BINDING_2D_ARRAY +[Worker] attribute TEXTURE_BINDING_3D +[Worker] attribute TEXTURE_BINDING_CUBE_MAP +[Worker] attribute TEXTURE_COMPARE_FUNC +[Worker] attribute TEXTURE_COMPARE_MODE +[Worker] attribute TEXTURE_CUBE_MAP +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_X +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_Y +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_Z +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_X +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_Y +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_Z +[Worker] attribute TEXTURE_IMMUTABLE_FORMAT +[Worker] attribute TEXTURE_IMMUTABLE_LEVELS +[Worker] attribute TEXTURE_MAG_FILTER +[Worker] attribute TEXTURE_MAX_LEVEL +[Worker] attribute TEXTURE_MAX_LOD +[Worker] attribute TEXTURE_MIN_FILTER +[Worker] attribute TEXTURE_MIN_LOD +[Worker] attribute TEXTURE_WRAP_R +[Worker] attribute TEXTURE_WRAP_S +[Worker] attribute TEXTURE_WRAP_T +[Worker] attribute TIMEOUT_EXPIRED +[Worker] attribute TIMEOUT_IGNORED +[Worker] attribute TRANSFORM_FEEDBACK +[Worker] attribute TRANSFORM_FEEDBACK_ACTIVE +[Worker] attribute TRANSFORM_FEEDBACK_BINDING +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER_BINDING +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER_MODE +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER_SIZE +[Worker] attribute TRANSFORM_FEEDBACK_BUFFER_START +[Worker] attribute TRANSFORM_FEEDBACK_PAUSED +[Worker] attribute TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN +[Worker] attribute TRANSFORM_FEEDBACK_VARYINGS +[Worker] attribute TRIANGLES +[Worker] attribute TRIANGLE_FAN +[Worker] attribute TRIANGLE_STRIP +[Worker] attribute UNIFORM_ARRAY_STRIDE +[Worker] attribute UNIFORM_BLOCK_ACTIVE_UNIFORMS +[Worker] attribute UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES +[Worker] attribute UNIFORM_BLOCK_BINDING +[Worker] attribute UNIFORM_BLOCK_DATA_SIZE +[Worker] attribute UNIFORM_BLOCK_INDEX +[Worker] attribute UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER +[Worker] attribute UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER +[Worker] attribute UNIFORM_BUFFER +[Worker] attribute UNIFORM_BUFFER_BINDING +[Worker] attribute UNIFORM_BUFFER_OFFSET_ALIGNMENT +[Worker] attribute UNIFORM_BUFFER_SIZE +[Worker] attribute UNIFORM_BUFFER_START +[Worker] attribute UNIFORM_IS_ROW_MAJOR +[Worker] attribute UNIFORM_MATRIX_STRIDE +[Worker] attribute UNIFORM_OFFSET +[Worker] attribute UNIFORM_SIZE +[Worker] attribute UNIFORM_TYPE +[Worker] attribute UNPACK_ALIGNMENT +[Worker] attribute UNPACK_COLORSPACE_CONVERSION_WEBGL +[Worker] attribute UNPACK_FLIP_Y_WEBGL +[Worker] attribute UNPACK_IMAGE_HEIGHT +[Worker] attribute UNPACK_PREMULTIPLY_ALPHA_WEBGL +[Worker] attribute UNPACK_ROW_LENGTH +[Worker] attribute UNPACK_SKIP_IMAGES +[Worker] attribute UNPACK_SKIP_PIXELS +[Worker] attribute UNPACK_SKIP_ROWS +[Worker] attribute UNSIGNALED +[Worker] attribute UNSIGNED_BYTE +[Worker] attribute UNSIGNED_INT +[Worker] attribute UNSIGNED_INT_10F_11F_11F_REV +[Worker] attribute UNSIGNED_INT_24_8 +[Worker] attribute UNSIGNED_INT_2_10_10_10_REV +[Worker] attribute UNSIGNED_INT_5_9_9_9_REV +[Worker] attribute UNSIGNED_INT_SAMPLER_2D +[Worker] attribute UNSIGNED_INT_SAMPLER_2D_ARRAY +[Worker] attribute UNSIGNED_INT_SAMPLER_3D +[Worker] attribute UNSIGNED_INT_SAMPLER_CUBE +[Worker] attribute UNSIGNED_INT_VEC2 +[Worker] attribute UNSIGNED_INT_VEC3 +[Worker] attribute UNSIGNED_INT_VEC4 +[Worker] attribute UNSIGNED_NORMALIZED +[Worker] attribute UNSIGNED_SHORT +[Worker] attribute UNSIGNED_SHORT_4_4_4_4 +[Worker] attribute UNSIGNED_SHORT_5_5_5_1 +[Worker] attribute UNSIGNED_SHORT_5_6_5 +[Worker] attribute VALIDATE_STATUS +[Worker] attribute VENDOR +[Worker] attribute VERSION +[Worker] attribute VERTEX_ARRAY_BINDING +[Worker] attribute VERTEX_ATTRIB_ARRAY_BUFFER_BINDING +[Worker] attribute VERTEX_ATTRIB_ARRAY_DIVISOR +[Worker] attribute VERTEX_ATTRIB_ARRAY_ENABLED +[Worker] attribute VERTEX_ATTRIB_ARRAY_INTEGER +[Worker] attribute VERTEX_ATTRIB_ARRAY_NORMALIZED +[Worker] attribute VERTEX_ATTRIB_ARRAY_POINTER +[Worker] attribute VERTEX_ATTRIB_ARRAY_SIZE +[Worker] attribute VERTEX_ATTRIB_ARRAY_STRIDE +[Worker] attribute VERTEX_ATTRIB_ARRAY_TYPE +[Worker] attribute VERTEX_SHADER +[Worker] attribute VIEWPORT +[Worker] attribute WAIT_FAILED +[Worker] attribute ZERO +[Worker] getter canvas +[Worker] getter drawingBufferHeight +[Worker] getter drawingBufferWidth +[Worker] method activeTexture +[Worker] method attachShader +[Worker] method beginQuery +[Worker] method beginTransformFeedback +[Worker] method bindAttribLocation +[Worker] method bindBuffer +[Worker] method bindBufferBase +[Worker] method bindBufferRange +[Worker] method bindFramebuffer +[Worker] method bindRenderbuffer +[Worker] method bindSampler +[Worker] method bindTexture +[Worker] method bindTransformFeedback +[Worker] method bindVertexArray +[Worker] method blendColor +[Worker] method blendEquation +[Worker] method blendEquationSeparate +[Worker] method blendFunc +[Worker] method blendFuncSeparate +[Worker] method blitFramebuffer +[Worker] method bufferData +[Worker] method bufferSubData +[Worker] method checkFramebufferStatus +[Worker] method clear +[Worker] method clearBufferfi +[Worker] method clearBufferfv +[Worker] method clearBufferiv +[Worker] method clearBufferuiv +[Worker] method clearColor +[Worker] method clearDepth +[Worker] method clearStencil +[Worker] method clientWaitSync +[Worker] method colorMask +[Worker] method commit +[Worker] method compileShader +[Worker] method compressedTexImage2D +[Worker] method compressedTexImage3D +[Worker] method compressedTexSubImage2D +[Worker] method compressedTexSubImage3D +[Worker] method constructor +[Worker] method copyBufferSubData +[Worker] method copyTexImage2D +[Worker] method copyTexSubImage2D +[Worker] method copyTexSubImage3D +[Worker] method createBuffer +[Worker] method createFramebuffer +[Worker] method createProgram +[Worker] method createQuery +[Worker] method createRenderbuffer +[Worker] method createSampler +[Worker] method createShader +[Worker] method createTexture +[Worker] method createTransformFeedback +[Worker] method createVertexArray +[Worker] method cullFace +[Worker] method deleteBuffer +[Worker] method deleteFramebuffer +[Worker] method deleteProgram +[Worker] method deleteQuery +[Worker] method deleteRenderbuffer +[Worker] method deleteSampler +[Worker] method deleteShader +[Worker] method deleteSync +[Worker] method deleteTexture +[Worker] method deleteTransformFeedback +[Worker] method deleteVertexArray +[Worker] method depthFunc +[Worker] method depthMask +[Worker] method depthRange +[Worker] method detachShader +[Worker] method disable +[Worker] method disableVertexAttribArray +[Worker] method drawArrays +[Worker] method drawArraysInstanced +[Worker] method drawBuffers +[Worker] method drawElements +[Worker] method drawElementsInstanced +[Worker] method drawRangeElements +[Worker] method enable +[Worker] method enableVertexAttribArray +[Worker] method endQuery +[Worker] method endTransformFeedback +[Worker] method fenceSync +[Worker] method finish +[Worker] method flush +[Worker] method framebufferRenderbuffer +[Worker] method framebufferTexture2D +[Worker] method framebufferTextureLayer +[Worker] method frontFace +[Worker] method generateMipmap +[Worker] method getActiveAttrib +[Worker] method getActiveUniform +[Worker] method getActiveUniformBlockName +[Worker] method getActiveUniformBlockParameter +[Worker] method getActiveUniforms +[Worker] method getAttachedShaders +[Worker] method getAttribLocation +[Worker] method getBufferParameter +[Worker] method getBufferSubData +[Worker] method getContextAttributes +[Worker] method getError +[Worker] method getExtension +[Worker] method getFragDataLocation +[Worker] method getFramebufferAttachmentParameter +[Worker] method getIndexedParameter +[Worker] method getInternalformatParameter +[Worker] method getParameter +[Worker] method getProgramInfoLog +[Worker] method getProgramParameter +[Worker] method getQuery +[Worker] method getQueryParameter +[Worker] method getRenderbufferParameter +[Worker] method getSamplerParameter +[Worker] method getShaderInfoLog +[Worker] method getShaderParameter +[Worker] method getShaderPrecisionFormat +[Worker] method getShaderSource +[Worker] method getSupportedExtensions +[Worker] method getSyncParameter +[Worker] method getTexParameter +[Worker] method getTransformFeedbackVarying +[Worker] method getUniform +[Worker] method getUniformBlockIndex +[Worker] method getUniformIndices +[Worker] method getUniformLocation +[Worker] method getVertexAttrib +[Worker] method getVertexAttribOffset +[Worker] method hint +[Worker] method invalidateFramebuffer +[Worker] method invalidateSubFramebuffer +[Worker] method isBuffer +[Worker] method isContextLost +[Worker] method isEnabled +[Worker] method isFramebuffer +[Worker] method isProgram +[Worker] method isQuery +[Worker] method isRenderbuffer +[Worker] method isSampler +[Worker] method isShader +[Worker] method isSync +[Worker] method isTexture +[Worker] method isTransformFeedback +[Worker] method isVertexArray +[Worker] method lineWidth +[Worker] method linkProgram +[Worker] method pauseTransformFeedback +[Worker] method pixelStorei +[Worker] method polygonOffset +[Worker] method readBuffer +[Worker] method readPixels +[Worker] method renderbufferStorage +[Worker] method renderbufferStorageMultisample +[Worker] method resumeTransformFeedback +[Worker] method sampleCoverage +[Worker] method samplerParameterf +[Worker] method samplerParameteri +[Worker] method scissor +[Worker] method shaderSource +[Worker] method stencilFunc +[Worker] method stencilFuncSeparate +[Worker] method stencilMask +[Worker] method stencilMaskSeparate +[Worker] method stencilOp +[Worker] method stencilOpSeparate +[Worker] method texImage2D +[Worker] method texImage3D +[Worker] method texParameterf +[Worker] method texParameteri +[Worker] method texStorage2D +[Worker] method texStorage3D +[Worker] method texSubImage2D +[Worker] method texSubImage3D +[Worker] method transformFeedbackVaryings +[Worker] method uniform1f +[Worker] method uniform1fv +[Worker] method uniform1i +[Worker] method uniform1iv +[Worker] method uniform1ui +[Worker] method uniform1uiv +[Worker] method uniform2f +[Worker] method uniform2fv +[Worker] method uniform2i +[Worker] method uniform2iv +[Worker] method uniform2ui +[Worker] method uniform2uiv +[Worker] method uniform3f +[Worker] method uniform3fv +[Worker] method uniform3i +[Worker] method uniform3iv +[Worker] method uniform3ui +[Worker] method uniform3uiv +[Worker] method uniform4f +[Worker] method uniform4fv +[Worker] method uniform4i +[Worker] method uniform4iv +[Worker] method uniform4ui +[Worker] method uniform4uiv +[Worker] method uniformBlockBinding +[Worker] method uniformMatrix2fv +[Worker] method uniformMatrix2x3fv +[Worker] method uniformMatrix2x4fv +[Worker] method uniformMatrix3fv +[Worker] method uniformMatrix3x2fv +[Worker] method uniformMatrix3x4fv +[Worker] method uniformMatrix4fv +[Worker] method uniformMatrix4x2fv +[Worker] method uniformMatrix4x3fv +[Worker] method useProgram +[Worker] method validateProgram +[Worker] method vertexAttrib1f +[Worker] method vertexAttrib1fv +[Worker] method vertexAttrib2f +[Worker] method vertexAttrib2fv +[Worker] method vertexAttrib3f +[Worker] method vertexAttrib3fv +[Worker] method vertexAttrib4f +[Worker] method vertexAttrib4fv +[Worker] method vertexAttribDivisor +[Worker] method vertexAttribI4i +[Worker] method vertexAttribI4iv +[Worker] method vertexAttribI4ui +[Worker] method vertexAttribI4uiv +[Worker] method vertexAttribIPointer +[Worker] method vertexAttribPointer +[Worker] method viewport +[Worker] method waitSync +[Worker] interface WebGLRenderingContext +[Worker] attribute @@toStringTag +[Worker] attribute ACTIVE_ATTRIBUTES +[Worker] attribute ACTIVE_TEXTURE +[Worker] attribute ACTIVE_UNIFORMS +[Worker] attribute ALIASED_LINE_WIDTH_RANGE +[Worker] attribute ALIASED_POINT_SIZE_RANGE +[Worker] attribute ALPHA +[Worker] attribute ALPHA_BITS +[Worker] attribute ALWAYS +[Worker] attribute ARRAY_BUFFER +[Worker] attribute ARRAY_BUFFER_BINDING +[Worker] attribute ATTACHED_SHADERS +[Worker] attribute BACK +[Worker] attribute BLEND +[Worker] attribute BLEND_COLOR +[Worker] attribute BLEND_DST_ALPHA +[Worker] attribute BLEND_DST_RGB +[Worker] attribute BLEND_EQUATION +[Worker] attribute BLEND_EQUATION_ALPHA +[Worker] attribute BLEND_EQUATION_RGB +[Worker] attribute BLEND_SRC_ALPHA +[Worker] attribute BLEND_SRC_RGB +[Worker] attribute BLUE_BITS +[Worker] attribute BOOL +[Worker] attribute BOOL_VEC2 +[Worker] attribute BOOL_VEC3 +[Worker] attribute BOOL_VEC4 +[Worker] attribute BROWSER_DEFAULT_WEBGL +[Worker] attribute BUFFER_SIZE +[Worker] attribute BUFFER_USAGE +[Worker] attribute BYTE +[Worker] attribute CCW +[Worker] attribute CLAMP_TO_EDGE +[Worker] attribute COLOR_ATTACHMENT0 +[Worker] attribute COLOR_BUFFER_BIT +[Worker] attribute COLOR_CLEAR_VALUE +[Worker] attribute COLOR_WRITEMASK +[Worker] attribute COMPILE_STATUS +[Worker] attribute COMPRESSED_TEXTURE_FORMATS +[Worker] attribute CONSTANT_ALPHA +[Worker] attribute CONSTANT_COLOR +[Worker] attribute CONTEXT_LOST_WEBGL +[Worker] attribute CULL_FACE +[Worker] attribute CULL_FACE_MODE +[Worker] attribute CURRENT_PROGRAM +[Worker] attribute CURRENT_VERTEX_ATTRIB +[Worker] attribute CW +[Worker] attribute DECR +[Worker] attribute DECR_WRAP +[Worker] attribute DELETE_STATUS +[Worker] attribute DEPTH_ATTACHMENT +[Worker] attribute DEPTH_BITS +[Worker] attribute DEPTH_BUFFER_BIT +[Worker] attribute DEPTH_CLEAR_VALUE +[Worker] attribute DEPTH_COMPONENT +[Worker] attribute DEPTH_COMPONENT16 +[Worker] attribute DEPTH_FUNC +[Worker] attribute DEPTH_RANGE +[Worker] attribute DEPTH_STENCIL +[Worker] attribute DEPTH_STENCIL_ATTACHMENT +[Worker] attribute DEPTH_TEST +[Worker] attribute DEPTH_WRITEMASK +[Worker] attribute DITHER +[Worker] attribute DONT_CARE +[Worker] attribute DST_ALPHA +[Worker] attribute DST_COLOR +[Worker] attribute DYNAMIC_DRAW +[Worker] attribute ELEMENT_ARRAY_BUFFER +[Worker] attribute ELEMENT_ARRAY_BUFFER_BINDING +[Worker] attribute EQUAL +[Worker] attribute FASTEST +[Worker] attribute FLOAT +[Worker] attribute FLOAT_MAT2 +[Worker] attribute FLOAT_MAT3 +[Worker] attribute FLOAT_MAT4 +[Worker] attribute FLOAT_VEC2 +[Worker] attribute FLOAT_VEC3 +[Worker] attribute FLOAT_VEC4 +[Worker] attribute FRAGMENT_SHADER +[Worker] attribute FRAMEBUFFER +[Worker] attribute FRAMEBUFFER_ATTACHMENT_OBJECT_NAME +[Worker] attribute FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE +[Worker] attribute FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL +[Worker] attribute FRAMEBUFFER_BINDING +[Worker] attribute FRAMEBUFFER_COMPLETE +[Worker] attribute FRAMEBUFFER_INCOMPLETE_ATTACHMENT +[Worker] attribute FRAMEBUFFER_INCOMPLETE_DIMENSIONS +[Worker] attribute FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT +[Worker] attribute FRAMEBUFFER_UNSUPPORTED +[Worker] attribute FRONT +[Worker] attribute FRONT_AND_BACK +[Worker] attribute FRONT_FACE +[Worker] attribute FUNC_ADD +[Worker] attribute FUNC_REVERSE_SUBTRACT +[Worker] attribute FUNC_SUBTRACT +[Worker] attribute GENERATE_MIPMAP_HINT +[Worker] attribute GEQUAL +[Worker] attribute GREATER +[Worker] attribute GREEN_BITS +[Worker] attribute HIGH_FLOAT +[Worker] attribute HIGH_INT +[Worker] attribute IMPLEMENTATION_COLOR_READ_FORMAT +[Worker] attribute IMPLEMENTATION_COLOR_READ_TYPE +[Worker] attribute INCR +[Worker] attribute INCR_WRAP +[Worker] attribute INT +[Worker] attribute INT_VEC2 +[Worker] attribute INT_VEC3 +[Worker] attribute INT_VEC4 +[Worker] attribute INVALID_ENUM +[Worker] attribute INVALID_FRAMEBUFFER_OPERATION +[Worker] attribute INVALID_OPERATION +[Worker] attribute INVALID_VALUE +[Worker] attribute INVERT +[Worker] attribute KEEP +[Worker] attribute LEQUAL +[Worker] attribute LESS +[Worker] attribute LINEAR +[Worker] attribute LINEAR_MIPMAP_LINEAR +[Worker] attribute LINEAR_MIPMAP_NEAREST +[Worker] attribute LINES +[Worker] attribute LINE_LOOP +[Worker] attribute LINE_STRIP +[Worker] attribute LINE_WIDTH +[Worker] attribute LINK_STATUS +[Worker] attribute LOW_FLOAT +[Worker] attribute LOW_INT +[Worker] attribute LUMINANCE +[Worker] attribute LUMINANCE_ALPHA +[Worker] attribute MAX_COMBINED_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_CUBE_MAP_TEXTURE_SIZE +[Worker] attribute MAX_FRAGMENT_UNIFORM_VECTORS +[Worker] attribute MAX_RENDERBUFFER_SIZE +[Worker] attribute MAX_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_TEXTURE_SIZE +[Worker] attribute MAX_VARYING_VECTORS +[Worker] attribute MAX_VERTEX_ATTRIBS +[Worker] attribute MAX_VERTEX_TEXTURE_IMAGE_UNITS +[Worker] attribute MAX_VERTEX_UNIFORM_VECTORS +[Worker] attribute MAX_VIEWPORT_DIMS +[Worker] attribute MEDIUM_FLOAT +[Worker] attribute MEDIUM_INT +[Worker] attribute MIRRORED_REPEAT +[Worker] attribute NEAREST +[Worker] attribute NEAREST_MIPMAP_LINEAR +[Worker] attribute NEAREST_MIPMAP_NEAREST +[Worker] attribute NEVER +[Worker] attribute NICEST +[Worker] attribute NONE +[Worker] attribute NOTEQUAL +[Worker] attribute NO_ERROR +[Worker] attribute ONE +[Worker] attribute ONE_MINUS_CONSTANT_ALPHA +[Worker] attribute ONE_MINUS_CONSTANT_COLOR +[Worker] attribute ONE_MINUS_DST_ALPHA +[Worker] attribute ONE_MINUS_DST_COLOR +[Worker] attribute ONE_MINUS_SRC_ALPHA +[Worker] attribute ONE_MINUS_SRC_COLOR +[Worker] attribute OUT_OF_MEMORY +[Worker] attribute PACK_ALIGNMENT +[Worker] attribute POINTS +[Worker] attribute POLYGON_OFFSET_FACTOR +[Worker] attribute POLYGON_OFFSET_FILL +[Worker] attribute POLYGON_OFFSET_UNITS +[Worker] attribute RED_BITS +[Worker] attribute RENDERBUFFER +[Worker] attribute RENDERBUFFER_ALPHA_SIZE +[Worker] attribute RENDERBUFFER_BINDING +[Worker] attribute RENDERBUFFER_BLUE_SIZE +[Worker] attribute RENDERBUFFER_DEPTH_SIZE +[Worker] attribute RENDERBUFFER_GREEN_SIZE +[Worker] attribute RENDERBUFFER_HEIGHT +[Worker] attribute RENDERBUFFER_INTERNAL_FORMAT +[Worker] attribute RENDERBUFFER_RED_SIZE +[Worker] attribute RENDERBUFFER_STENCIL_SIZE +[Worker] attribute RENDERBUFFER_WIDTH +[Worker] attribute RENDERER +[Worker] attribute REPEAT +[Worker] attribute REPLACE +[Worker] attribute RGB +[Worker] attribute RGB565 +[Worker] attribute RGB5_A1 +[Worker] attribute RGBA +[Worker] attribute RGBA4 +[Worker] attribute SAMPLER_2D +[Worker] attribute SAMPLER_CUBE +[Worker] attribute SAMPLES +[Worker] attribute SAMPLE_ALPHA_TO_COVERAGE +[Worker] attribute SAMPLE_BUFFERS +[Worker] attribute SAMPLE_COVERAGE +[Worker] attribute SAMPLE_COVERAGE_INVERT +[Worker] attribute SAMPLE_COVERAGE_VALUE +[Worker] attribute SCISSOR_BOX +[Worker] attribute SCISSOR_TEST +[Worker] attribute SHADER_TYPE +[Worker] attribute SHADING_LANGUAGE_VERSION +[Worker] attribute SHORT +[Worker] attribute SRC_ALPHA +[Worker] attribute SRC_ALPHA_SATURATE +[Worker] attribute SRC_COLOR +[Worker] attribute STATIC_DRAW +[Worker] attribute STENCIL_ATTACHMENT +[Worker] attribute STENCIL_BACK_FAIL +[Worker] attribute STENCIL_BACK_FUNC +[Worker] attribute STENCIL_BACK_PASS_DEPTH_FAIL +[Worker] attribute STENCIL_BACK_PASS_DEPTH_PASS +[Worker] attribute STENCIL_BACK_REF +[Worker] attribute STENCIL_BACK_VALUE_MASK +[Worker] attribute STENCIL_BACK_WRITEMASK +[Worker] attribute STENCIL_BITS +[Worker] attribute STENCIL_BUFFER_BIT +[Worker] attribute STENCIL_CLEAR_VALUE +[Worker] attribute STENCIL_FAIL +[Worker] attribute STENCIL_FUNC +[Worker] attribute STENCIL_INDEX +[Worker] attribute STENCIL_INDEX8 +[Worker] attribute STENCIL_PASS_DEPTH_FAIL +[Worker] attribute STENCIL_PASS_DEPTH_PASS +[Worker] attribute STENCIL_REF +[Worker] attribute STENCIL_TEST +[Worker] attribute STENCIL_VALUE_MASK +[Worker] attribute STENCIL_WRITEMASK +[Worker] attribute STREAM_DRAW +[Worker] attribute SUBPIXEL_BITS +[Worker] attribute TEXTURE +[Worker] attribute TEXTURE0 +[Worker] attribute TEXTURE1 +[Worker] attribute TEXTURE10 +[Worker] attribute TEXTURE11 +[Worker] attribute TEXTURE12 +[Worker] attribute TEXTURE13 +[Worker] attribute TEXTURE14 +[Worker] attribute TEXTURE15 +[Worker] attribute TEXTURE16 +[Worker] attribute TEXTURE17 +[Worker] attribute TEXTURE18 +[Worker] attribute TEXTURE19 +[Worker] attribute TEXTURE2 +[Worker] attribute TEXTURE20 +[Worker] attribute TEXTURE21 +[Worker] attribute TEXTURE22 +[Worker] attribute TEXTURE23 +[Worker] attribute TEXTURE24 +[Worker] attribute TEXTURE25 +[Worker] attribute TEXTURE26 +[Worker] attribute TEXTURE27 +[Worker] attribute TEXTURE28 +[Worker] attribute TEXTURE29 +[Worker] attribute TEXTURE3 +[Worker] attribute TEXTURE30 +[Worker] attribute TEXTURE31 +[Worker] attribute TEXTURE4 +[Worker] attribute TEXTURE5 +[Worker] attribute TEXTURE6 +[Worker] attribute TEXTURE7 +[Worker] attribute TEXTURE8 +[Worker] attribute TEXTURE9 +[Worker] attribute TEXTURE_2D +[Worker] attribute TEXTURE_BINDING_2D +[Worker] attribute TEXTURE_BINDING_CUBE_MAP +[Worker] attribute TEXTURE_CUBE_MAP +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_X +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_Y +[Worker] attribute TEXTURE_CUBE_MAP_NEGATIVE_Z +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_X +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_Y +[Worker] attribute TEXTURE_CUBE_MAP_POSITIVE_Z +[Worker] attribute TEXTURE_MAG_FILTER +[Worker] attribute TEXTURE_MIN_FILTER +[Worker] attribute TEXTURE_WRAP_S +[Worker] attribute TEXTURE_WRAP_T +[Worker] attribute TRIANGLES +[Worker] attribute TRIANGLE_FAN +[Worker] attribute TRIANGLE_STRIP +[Worker] attribute UNPACK_ALIGNMENT +[Worker] attribute UNPACK_COLORSPACE_CONVERSION_WEBGL +[Worker] attribute UNPACK_FLIP_Y_WEBGL +[Worker] attribute UNPACK_PREMULTIPLY_ALPHA_WEBGL +[Worker] attribute UNSIGNED_BYTE +[Worker] attribute UNSIGNED_INT +[Worker] attribute UNSIGNED_SHORT +[Worker] attribute UNSIGNED_SHORT_4_4_4_4 +[Worker] attribute UNSIGNED_SHORT_5_5_5_1 +[Worker] attribute UNSIGNED_SHORT_5_6_5 +[Worker] attribute VALIDATE_STATUS +[Worker] attribute VENDOR +[Worker] attribute VERSION +[Worker] attribute VERTEX_ATTRIB_ARRAY_BUFFER_BINDING +[Worker] attribute VERTEX_ATTRIB_ARRAY_ENABLED +[Worker] attribute VERTEX_ATTRIB_ARRAY_NORMALIZED +[Worker] attribute VERTEX_ATTRIB_ARRAY_POINTER +[Worker] attribute VERTEX_ATTRIB_ARRAY_SIZE +[Worker] attribute VERTEX_ATTRIB_ARRAY_STRIDE +[Worker] attribute VERTEX_ATTRIB_ARRAY_TYPE +[Worker] attribute VERTEX_SHADER +[Worker] attribute VIEWPORT +[Worker] attribute ZERO +[Worker] getter canvas +[Worker] getter drawingBufferHeight +[Worker] getter drawingBufferWidth +[Worker] method activeTexture +[Worker] method attachShader +[Worker] method bindAttribLocation +[Worker] method bindBuffer +[Worker] method bindFramebuffer +[Worker] method bindRenderbuffer +[Worker] method bindTexture +[Worker] method blendColor +[Worker] method blendEquation +[Worker] method blendEquationSeparate +[Worker] method blendFunc +[Worker] method blendFuncSeparate +[Worker] method bufferData +[Worker] method bufferSubData +[Worker] method checkFramebufferStatus +[Worker] method clear +[Worker] method clearColor +[Worker] method clearDepth +[Worker] method clearStencil +[Worker] method colorMask +[Worker] method commit +[Worker] method compileShader +[Worker] method compressedTexImage2D +[Worker] method compressedTexSubImage2D +[Worker] method constructor +[Worker] method copyTexImage2D +[Worker] method copyTexSubImage2D +[Worker] method createBuffer +[Worker] method createFramebuffer +[Worker] method createProgram +[Worker] method createRenderbuffer +[Worker] method createShader +[Worker] method createTexture +[Worker] method cullFace +[Worker] method deleteBuffer +[Worker] method deleteFramebuffer +[Worker] method deleteProgram +[Worker] method deleteRenderbuffer +[Worker] method deleteShader +[Worker] method deleteTexture +[Worker] method depthFunc +[Worker] method depthMask +[Worker] method depthRange +[Worker] method detachShader +[Worker] method disable +[Worker] method disableVertexAttribArray +[Worker] method drawArrays +[Worker] method drawElements +[Worker] method enable +[Worker] method enableVertexAttribArray +[Worker] method finish +[Worker] method flush +[Worker] method framebufferRenderbuffer +[Worker] method framebufferTexture2D +[Worker] method frontFace +[Worker] method generateMipmap +[Worker] method getActiveAttrib +[Worker] method getActiveUniform +[Worker] method getAttachedShaders +[Worker] method getAttribLocation +[Worker] method getBufferParameter +[Worker] method getContextAttributes +[Worker] method getError +[Worker] method getExtension +[Worker] method getFramebufferAttachmentParameter +[Worker] method getParameter +[Worker] method getProgramInfoLog +[Worker] method getProgramParameter +[Worker] method getRenderbufferParameter +[Worker] method getShaderInfoLog +[Worker] method getShaderParameter +[Worker] method getShaderPrecisionFormat +[Worker] method getShaderSource +[Worker] method getSupportedExtensions +[Worker] method getTexParameter +[Worker] method getUniform +[Worker] method getUniformLocation +[Worker] method getVertexAttrib +[Worker] method getVertexAttribOffset +[Worker] method hint +[Worker] method isBuffer +[Worker] method isContextLost +[Worker] method isEnabled +[Worker] method isFramebuffer +[Worker] method isProgram +[Worker] method isRenderbuffer +[Worker] method isShader +[Worker] method isTexture +[Worker] method lineWidth +[Worker] method linkProgram +[Worker] method pixelStorei +[Worker] method polygonOffset +[Worker] method readPixels +[Worker] method renderbufferStorage +[Worker] method sampleCoverage +[Worker] method scissor +[Worker] method shaderSource +[Worker] method stencilFunc +[Worker] method stencilFuncSeparate +[Worker] method stencilMask +[Worker] method stencilMaskSeparate +[Worker] method stencilOp +[Worker] method stencilOpSeparate +[Worker] method texImage2D +[Worker] method texParameterf +[Worker] method texParameteri +[Worker] method texSubImage2D +[Worker] method uniform1f +[Worker] method uniform1fv +[Worker] method uniform1i +[Worker] method uniform1iv +[Worker] method uniform2f +[Worker] method uniform2fv +[Worker] method uniform2i +[Worker] method uniform2iv +[Worker] method uniform3f +[Worker] method uniform3fv +[Worker] method uniform3i +[Worker] method uniform3iv +[Worker] method uniform4f +[Worker] method uniform4fv +[Worker] method uniform4i +[Worker] method uniform4iv +[Worker] method uniformMatrix2fv +[Worker] method uniformMatrix3fv +[Worker] method uniformMatrix4fv +[Worker] method useProgram +[Worker] method validateProgram +[Worker] method vertexAttrib1f +[Worker] method vertexAttrib1fv +[Worker] method vertexAttrib2f +[Worker] method vertexAttrib2fv +[Worker] method vertexAttrib3f +[Worker] method vertexAttrib3fv +[Worker] method vertexAttrib4f +[Worker] method vertexAttrib4fv +[Worker] method vertexAttribPointer +[Worker] method viewport +[Worker] interface WebSocket : EventTarget +[Worker] attribute @@toStringTag +[Worker] attribute CLOSED +[Worker] attribute CLOSING +[Worker] attribute CONNECTING +[Worker] attribute OPEN +[Worker] getter binaryType +[Worker] getter bufferedAmount +[Worker] getter extensions +[Worker] getter onclose +[Worker] getter onerror +[Worker] getter onmessage +[Worker] getter onopen +[Worker] getter protocol +[Worker] getter readyState +[Worker] getter url +[Worker] method close +[Worker] method constructor +[Worker] method send +[Worker] setter binaryType +[Worker] setter onclose +[Worker] setter onerror +[Worker] setter onmessage +[Worker] setter onopen +[Worker] interface WorkerGlobalScope : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter addressSpace +[Worker] getter caches +[Worker] getter crypto +[Worker] getter indexedDB +[Worker] getter isSecureContext +[Worker] getter location +[Worker] getter navigator +[Worker] getter onerror +[Worker] getter onrejectionhandled +[Worker] getter onunhandledrejection +[Worker] getter origin +[Worker] getter performance +[Worker] getter self +[Worker] method atob +[Worker] method btoa +[Worker] method clearInterval +[Worker] method clearTimeout +[Worker] method constructor +[Worker] method createImageBitmap +[Worker] method fetch +[Worker] method importScripts +[Worker] method setInterval +[Worker] method setTimeout +[Worker] setter onerror +[Worker] setter onrejectionhandled +[Worker] setter onunhandledrejection +[Worker] setter origin +[Worker] interface WorkerLocation +[Worker] attribute @@toStringTag +[Worker] getter hash +[Worker] getter host +[Worker] getter hostname +[Worker] getter href +[Worker] getter origin +[Worker] getter pathname +[Worker] getter port +[Worker] getter protocol +[Worker] getter search +[Worker] method constructor +[Worker] method toString +[Worker] interface WorkerNavigator +[Worker] attribute @@toStringTag +[Worker] getter appCodeName +[Worker] getter appName +[Worker] getter appVersion +[Worker] getter budget +[Worker] getter connection +[Worker] getter hardwareConcurrency +[Worker] getter onLine +[Worker] getter permissions +[Worker] getter platform +[Worker] getter product +[Worker] getter storage +[Worker] getter userAgent +[Worker] method constructor +[Worker] interface WritableStream +[Worker] getter locked +[Worker] method abort +[Worker] method constructor +[Worker] method getWriter +[Worker] interface XMLHttpRequest : XMLHttpRequestEventTarget +[Worker] attribute @@toStringTag +[Worker] attribute DONE +[Worker] attribute HEADERS_RECEIVED +[Worker] attribute LOADING +[Worker] attribute OPENED +[Worker] attribute UNSENT +[Worker] getter onreadystatechange +[Worker] getter readyState +[Worker] getter response +[Worker] getter responseText +[Worker] getter responseType +[Worker] getter responseURL +[Worker] getter responseXML +[Worker] getter status +[Worker] getter statusText +[Worker] getter timeout +[Worker] getter upload +[Worker] getter withCredentials +[Worker] method abort +[Worker] method constructor +[Worker] method getAllResponseHeaders +[Worker] method getResponseHeader +[Worker] method open +[Worker] method overrideMimeType +[Worker] method send +[Worker] method setRequestHeader +[Worker] setter onreadystatechange +[Worker] setter responseType +[Worker] setter timeout +[Worker] setter withCredentials +[Worker] interface XMLHttpRequestEventTarget : EventTarget +[Worker] attribute @@toStringTag +[Worker] getter onabort +[Worker] getter onerror +[Worker] getter onload +[Worker] getter onloadend +[Worker] getter onloadstart +[Worker] getter onprogress +[Worker] getter ontimeout +[Worker] method constructor +[Worker] setter onabort +[Worker] setter onerror +[Worker] setter onload +[Worker] setter onloadend +[Worker] setter onloadstart +[Worker] setter onprogress +[Worker] setter ontimeout +[Worker] interface XMLHttpRequestUpload : XMLHttpRequestEventTarget +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] [GLOBAL OBJECT] +[Worker] attribute console +[Worker] attribute internals +[Worker] getter name +[Worker] getter onconnect +[Worker] method close +[Worker] method gc +[Worker] method webkitRequestFileSystem +[Worker] method webkitRequestFileSystemSync +[Worker] method webkitResolveLocalFileSystemSyncURL +[Worker] method webkitResolveLocalFileSystemURL +[Worker] setter onconnect +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-wpt/external/wpt/service-workers/service-worker/navigation-preload/README.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-wpt/external/wpt/service-workers/service-worker/navigation-preload/README.txt deleted file mode 100644 index 3d664ab7..0000000 --- a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-wpt/external/wpt/service-workers/service-worker/navigation-preload/README.txt +++ /dev/null
@@ -1 +0,0 @@ -This directory is for testing the navigation preload feature of service workers.
diff --git a/third_party/WebKit/LayoutTests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt index 9c921d6..56ef204 100644 --- a/third_party/WebKit/LayoutTests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -179,6 +179,7 @@ interface FetchEvent : ExtendableEvent getter clientId getter isReload + getter preloadResponse getter request method constructor method respondWith @@ -394,6 +395,12 @@ method postMessage method start setter onmessage +interface NavigationPreloadManager + method constructor + method disable + method enable + method getState + method setHeaderValue interface Notification : EventTarget static getter maxActions static getter permission @@ -516,6 +523,7 @@ interface ServiceWorkerRegistration : EventTarget getter active getter installing + getter navigationPreload getter onupdatefound getter pushManager getter scope
diff --git a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt index 558ab74..4f1d65c 100644 --- a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -422,6 +422,13 @@ [Worker] method postMessage [Worker] method start [Worker] setter onmessage +[Worker] interface NavigationPreloadManager +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method disable +[Worker] method enable +[Worker] method getState +[Worker] method setHeaderValue [Worker] interface Notification : EventTarget [Worker] static getter maxActions [Worker] static getter permission @@ -527,6 +534,7 @@ [Worker] attribute @@toStringTag [Worker] getter active [Worker] getter installing +[Worker] getter navigationPreload [Worker] getter onupdatefound [Worker] getter pushManager [Worker] getter scope
diff --git a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt index 6ecc346e..fe9a79453 100644 --- a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -417,6 +417,13 @@ [Worker] method postMessage [Worker] method start [Worker] setter onmessage +[Worker] interface NavigationPreloadManager +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method disable +[Worker] method enable +[Worker] method getState +[Worker] method setHeaderValue [Worker] interface Notification : EventTarget [Worker] static getter maxActions [Worker] static getter permission @@ -522,6 +529,7 @@ [Worker] attribute @@toStringTag [Worker] getter active [Worker] getter installing +[Worker] getter navigationPreload [Worker] getter onupdatefound [Worker] getter pushManager [Worker] getter scope
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt index 0b22d590..7f49c3b5 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -645,6 +645,13 @@ [Worker] method postMessage [Worker] method start [Worker] setter onmessage +[Worker] interface NavigationPreloadManager +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method disable +[Worker] method enable +[Worker] method getState +[Worker] method setHeaderValue [Worker] interface NetworkInformation : EventTarget [Worker] attribute @@toStringTag [Worker] getter downlinkMax @@ -859,6 +866,7 @@ [Worker] getter active [Worker] getter backgroundFetch [Worker] getter installing +[Worker] getter navigationPreload [Worker] getter onupdatefound [Worker] getter paymentManager [Worker] getter pushManager
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 155cbd5..0325aab 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -4294,6 +4294,13 @@ method removeNamedItemNS method setNamedItem method setNamedItemNS +interface NavigationPreloadManager + attribute @@toStringTag + method constructor + method disable + method enable + method getState + method setHeaderValue interface Navigator attribute @@toStringTag getter appCodeName @@ -6426,6 +6433,7 @@ getter active getter backgroundFetch getter installing + getter navigationPreload getter onupdatefound getter paymentManager getter pushManager
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt index c661271f1..9709dba 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -640,6 +640,13 @@ [Worker] method postMessage [Worker] method start [Worker] setter onmessage +[Worker] interface NavigationPreloadManager +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method disable +[Worker] method enable +[Worker] method getState +[Worker] method setHeaderValue [Worker] interface NetworkInformation : EventTarget [Worker] attribute @@toStringTag [Worker] getter downlinkMax @@ -854,6 +861,7 @@ [Worker] getter active [Worker] getter backgroundFetch [Worker] getter installing +[Worker] getter navigationPreload [Worker] getter onupdatefound [Worker] getter paymentManager [Worker] getter pushManager
diff --git a/third_party/WebKit/Source/bindings/bindings.gni b/third_party/WebKit/Source/bindings/bindings.gni index 9fc25956..73075ca 100644 --- a/third_party/WebKit/Source/bindings/bindings.gni +++ b/third_party/WebKit/Source/bindings/bindings.gni
@@ -135,8 +135,9 @@ "core/v8/TraceWrapperMember.h", "core/v8/TraceWrapperV8Reference.h", "core/v8/Transferables.h", - "core/v8/ToV8.cpp", "core/v8/ToV8.h", + "core/v8/ToV8ForCore.h", + "core/v8/ToV8ForCore.cpp", "core/v8/UseCounterCallback.cpp", "core/v8/UseCounterCallback.h", "core/v8/V8AbstractEventListener.cpp",
diff --git a/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp b/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp index bf10fc7..3474750 100644 --- a/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
@@ -33,7 +33,7 @@ #include "bindings/core/v8/ConditionalFeaturesForCore.h" #include "bindings/core/v8/DOMWrapperWorld.h" #include "bindings/core/v8/ScriptController.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMActivityLogger.h" #include "bindings/core/v8/V8DOMWrapper.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/Maplike.h b/third_party/WebKit/Source/bindings/core/v8/Maplike.h index 62f1d1ff..7e0e8ce 100644 --- a/third_party/WebKit/Source/bindings/core/v8/Maplike.h +++ b/third_party/WebKit/Source/bindings/core/v8/Maplike.h
@@ -7,7 +7,7 @@ #include "bindings/core/v8/Iterable.h" #include "bindings/core/v8/ScriptValue.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/core/v8/NativeValueTraitsImplTest.cpp b/third_party/WebKit/Source/bindings/core/v8/NativeValueTraitsImplTest.cpp index 062d7ff..3674e80 100644 --- a/third_party/WebKit/Source/bindings/core/v8/NativeValueTraitsImplTest.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/NativeValueTraitsImplTest.cpp
@@ -8,7 +8,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/TestSequenceCallback.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8BindingForTesting.h" #include "bindings/core/v8/V8Internals.h" #include "platform/wtf/Vector.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp index 926dfbf..dc76a1d 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp
@@ -31,7 +31,7 @@ #include "bindings/core/v8/ScriptPromise.h" #include "bindings/core/v8/ExceptionMessages.h" #include "bindings/core/v8/ExceptionState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8ThrowException.h" #include "core/dom/DOMException.h" #include "platform/InstanceCounters.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptPromiseProperty.h b/third_party/WebKit/Source/bindings/core/v8/ScriptPromiseProperty.h index c4459355..14c96ed 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptPromiseProperty.h +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptPromiseProperty.h
@@ -7,7 +7,7 @@ #include "bindings/core/v8/ScriptPromise.h" #include "bindings/core/v8/ScriptPromisePropertyBase.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "platform/ScriptForbiddenScope.h" #include "platform/wtf/Noncopyable.h" #include "platform/wtf/PassRefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptPromiseResolver.h b/third_party/WebKit/Source/bindings/core/v8/ScriptPromiseResolver.h index aea2963..d2c360e 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptPromiseResolver.h +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptPromiseResolver.h
@@ -8,7 +8,7 @@ #include "bindings/core/v8/ScopedPersistent.h" #include "bindings/core/v8/ScriptPromise.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "core/CoreExport.h" #include "core/dom/ExecutionContext.h" #include "core/dom/SuspendableObject.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp index c7392e6..111bc17 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp
@@ -4,7 +4,7 @@ #include "bindings/core/v8/ScriptWrappableVisitor.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/TraceWrapperV8Reference.h" #include "bindings/core/v8/V8BindingForTesting.h" #include "bindings/core/v8/V8GCController.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/ToV8.h b/third_party/WebKit/Source/bindings/core/v8/ToV8.h index e96c472b..433c174 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ToV8.h +++ b/third_party/WebKit/Source/bindings/core/v8/ToV8.h
@@ -17,17 +17,12 @@ #include "bindings/core/v8/ScriptWrappable.h" #include "bindings/core/v8/V8Binding.h" #include "core/CoreExport.h" -#include "core/dom/NotShared.h" #include "platform/heap/Handle.h" #include "platform/wtf/Forward.h" #include "v8/include/v8.h" namespace blink { -class DOMWindow; -class Dictionary; -class EventTarget; - // ScriptWrappable inline v8::Local<v8::Value> ToV8(ScriptWrappable* impl, @@ -44,21 +39,6 @@ return wrapper; } -inline v8::Local<v8::Value> ToV8(Node* impl, - v8::Local<v8::Object> creation_context, - v8::Isolate* isolate) { - return ToV8(ScriptWrappable::FromNode(impl), creation_context, isolate); -} - -// Special versions for DOMWindow and EventTarget - -CORE_EXPORT v8::Local<v8::Value> ToV8(DOMWindow*, - v8::Local<v8::Object> creation_context, - v8::Isolate*); -CORE_EXPORT v8::Local<v8::Value> ToV8(EventTarget*, - v8::Local<v8::Object> creation_context, - v8::Isolate*); - // Primitives inline v8::Local<v8::Value> ToV8(const String& value, @@ -195,13 +175,6 @@ // Dictionary -inline v8::Local<v8::Value> ToV8(const Dictionary& value, - v8::Local<v8::Object> creation_context, - v8::Isolate* isolate) { - NOTREACHED(); - return v8::Undefined(isolate); -} - inline v8::Local<v8::Value> ToV8(const IDLDictionaryBase& value, v8::Local<v8::Object> creation_context, v8::Isolate* isolate) { @@ -214,7 +187,7 @@ // overloads below. template <typename Sequence> inline v8::Local<v8::Value> ToV8SequenceInternal( - const Sequence& sequence, + const Sequence&, v8::Local<v8::Object> creation_context, v8::Isolate*); @@ -276,13 +249,6 @@ return object; } -template <typename T> -inline v8::Local<v8::Value> ToV8(NotShared<T> value, - v8::Local<v8::Object> creation_context, - v8::Isolate* isolate) { - return ToV8(value.View(), creation_context, isolate); -} - template <typename Sequence> inline v8::Local<v8::Value> ToV8SequenceInternal( const Sequence& sequence, @@ -337,4 +303,4 @@ } // namespace blink -#endif // ToV8_h +#endif // ToV8ForPlatform_h
diff --git a/third_party/WebKit/Source/bindings/core/v8/ToV8.cpp b/third_party/WebKit/Source/bindings/core/v8/ToV8ForCore.cpp similarity index 92% rename from third_party/WebKit/Source/bindings/core/v8/ToV8.cpp rename to third_party/WebKit/Source/bindings/core/v8/ToV8ForCore.cpp index 08ed539..4db3bc5 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ToV8.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/ToV8ForCore.cpp
@@ -1,8 +1,8 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. +// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/WindowProxy.h" #include "core/events/EventTarget.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/ToV8ForCore.h b/third_party/WebKit/Source/bindings/core/v8/ToV8ForCore.h new file mode 100644 index 0000000..a41ba2c --- /dev/null +++ b/third_party/WebKit/Source/bindings/core/v8/ToV8ForCore.h
@@ -0,0 +1,57 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ToV8ForCore_h +#define ToV8ForCore_h + +// ToV8() provides C++ -> V8 conversion. Note that ToV8() can return an empty +// handle. Call sites must check IsEmpty() before using return value. + +#include "bindings/core/v8/ScriptWrappable.h" +#include "bindings/core/v8/ToV8.h" +#include "core/CoreExport.h" +#include "core/dom/NotShared.h" +#include "v8/include/v8.h" + +namespace blink { + +class DOMWindow; +class Dictionary; +class EventTarget; +class Node; + +inline v8::Local<v8::Value> ToV8(Node* impl, + v8::Local<v8::Object> creation_context, + v8::Isolate* isolate) { + return ToV8(ScriptWrappable::FromNode(impl), creation_context, isolate); +} + +// Special versions for DOMWindow and EventTarget + +CORE_EXPORT v8::Local<v8::Value> ToV8(DOMWindow*, + v8::Local<v8::Object> creation_context, + v8::Isolate*); +CORE_EXPORT v8::Local<v8::Value> ToV8(EventTarget*, + v8::Local<v8::Object> creation_context, + v8::Isolate*); + +// Dictionary + +inline v8::Local<v8::Value> ToV8(const Dictionary& value, + v8::Local<v8::Object> creation_context, + v8::Isolate* isolate) { + NOTREACHED(); + return v8::Undefined(isolate); +} + +template <typename T> +inline v8::Local<v8::Value> ToV8(NotShared<T> value, + v8::Local<v8::Object> creation_context, + v8::Isolate* isolate) { + return ToV8(value.View(), creation_context, isolate); +} + +} // namespace blink + +#endif // ToV8ForCore_h
diff --git a/third_party/WebKit/Source/bindings/core/v8/ToV8Test.cpp b/third_party/WebKit/Source/bindings/core/v8/ToV8Test.cpp index 9e9c4e8..e724070 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ToV8Test.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/ToV8Test.cpp
@@ -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 "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include <limits> #include "bindings/core/v8/V8Binding.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8BindingTest.cpp b/third_party/WebKit/Source/bindings/core/v8/V8BindingTest.cpp index 5d34a460..249d314 100644 --- a/third_party/WebKit/Source/bindings/core/v8/V8BindingTest.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/V8BindingTest.cpp
@@ -5,7 +5,7 @@ #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/ExceptionState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8BindingForTesting.h" #include "platform/wtf/Vector.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.h b/third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.h index 0a53051a1..cee2df0 100644 --- a/third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.h +++ b/third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.h
@@ -6,7 +6,7 @@ #define V8IteratorResultValue_h #include "bindings/core/v8/ScriptValue.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "core/CoreExport.h" #include "v8/include/v8.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8ObjectBuilder.h b/third_party/WebKit/Source/bindings/core/v8/V8ObjectBuilder.h index f8e659b..28b08941 100644 --- a/third_party/WebKit/Source/bindings/core/v8/V8ObjectBuilder.h +++ b/third_party/WebKit/Source/bindings/core/v8/V8ObjectBuilder.h
@@ -5,7 +5,7 @@ #ifndef V8ObjectBuilder_h #define V8ObjectBuilder_h -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "core/CoreExport.h" #include "platform/heap/Handle.h" #include "platform/wtf/text/WTFString.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp index 48bb7a8..1bb3b01 100644 --- a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp
@@ -4,7 +4,7 @@ #include "bindings/core/v8/serialization/V8ScriptValueDeserializer.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "core/dom/CompositorProxy.h" #include "core/dom/DOMArrayBuffer.h" #include "core/dom/DOMSharedArrayBuffer.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp index 22202f6e7..eb24a7d 100644 --- a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp
@@ -4,7 +4,7 @@ #include "bindings/core/v8/serialization/V8ScriptValueSerializer.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Blob.h" #include "bindings/core/v8/V8CompositorProxy.h" #include "bindings/core/v8/V8File.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializerTest.cpp b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializerTest.cpp index 9d908e390..87424b9 100644 --- a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializerTest.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializerTest.cpp
@@ -219,7 +219,7 @@ ASSERT_TRUE(V8ImageData::hasInstance(result, scope.GetIsolate())); ImageData* new_image_data = V8ImageData::toImpl(result.As<v8::Object>()); EXPECT_NE(image_data, new_image_data); - EXPECT_EQ(image_data->size(), new_image_data->size()); + EXPECT_EQ(image_data->Size(), new_image_data->Size()); EXPECT_EQ(image_data->data()->length(), new_image_data->data()->length()); EXPECT_EQ(200, new_image_data->data()->Data()[0]); } @@ -237,7 +237,7 @@ V8ScriptValueDeserializer(script_state, input).Deserialize(); ASSERT_TRUE(V8ImageData::hasInstance(result, scope.GetIsolate())); ImageData* new_image_data = V8ImageData::toImpl(result.As<v8::Object>()); - EXPECT_EQ(IntSize(2, 1), new_image_data->size()); + EXPECT_EQ(IntSize(2, 1), new_image_data->Size()); EXPECT_EQ(8u, new_image_data->data()->length()); EXPECT_EQ(200, new_image_data->data()->Data()[0]); } @@ -252,7 +252,7 @@ V8ScriptValueDeserializer(script_state, input).Deserialize(); ASSERT_TRUE(V8ImageData::hasInstance(result, scope.GetIsolate())); ImageData* new_image_data = V8ImageData::toImpl(result.As<v8::Object>()); - EXPECT_EQ(IntSize(2, 1), new_image_data->size()); + EXPECT_EQ(IntSize(2, 1), new_image_data->Size()); EXPECT_EQ(8u, new_image_data->data()->length()); EXPECT_EQ(200, new_image_data->data()->Data()[0]); } @@ -391,7 +391,7 @@ ASSERT_TRUE(V8ImageBitmap::hasInstance(result, scope.GetIsolate())); ImageBitmap* new_image_bitmap = V8ImageBitmap::toImpl(result.As<v8::Object>()); - ASSERT_EQ(IntSize(10, 7), new_image_bitmap->size()); + ASSERT_EQ(IntSize(10, 7), new_image_bitmap->Size()); // Check that the pixel at (3, 3) is red. uint8_t pixel[4] = {}; @@ -428,7 +428,7 @@ ASSERT_TRUE(V8ImageBitmap::hasInstance(result, scope.GetIsolate())); ImageBitmap* new_image_bitmap = V8ImageBitmap::toImpl(result.As<v8::Object>()); - ASSERT_EQ(IntSize(2, 1), new_image_bitmap->size()); + ASSERT_EQ(IntSize(2, 1), new_image_bitmap->Size()); // Check that the pixels are opaque red and green, respectively. uint8_t pixels[8] = {}; @@ -494,7 +494,7 @@ ASSERT_TRUE(V8ImageBitmap::hasInstance(result, scope.GetIsolate())); ImageBitmap* new_image_bitmap = V8ImageBitmap::toImpl(result.As<v8::Object>()); - ASSERT_EQ(IntSize(10, 7), new_image_bitmap->size()); + ASSERT_EQ(IntSize(10, 7), new_image_bitmap->Size()); // Check that the pixel at (3, 3) is red. uint8_t pixel[4] = {}; @@ -523,7 +523,7 @@ ASSERT_TRUE(V8OffscreenCanvas::hasInstance(result, scope.GetIsolate())); OffscreenCanvas* new_canvas = V8OffscreenCanvas::toImpl(result.As<v8::Object>()); - EXPECT_EQ(IntSize(10, 7), new_canvas->size()); + EXPECT_EQ(IntSize(10, 7), new_canvas->Size()); EXPECT_EQ(519, new_canvas->PlaceholderCanvasId()); EXPECT_TRUE(canvas->IsNeutered()); EXPECT_FALSE(new_canvas->IsNeutered());
diff --git a/third_party/WebKit/Source/bindings/modules/v8/ConditionalFeaturesForModules.cpp b/third_party/WebKit/Source/bindings/modules/v8/ConditionalFeaturesForModules.cpp index 29d83a9..f26d82f 100644 --- a/third_party/WebKit/Source/bindings/modules/v8/ConditionalFeaturesForModules.cpp +++ b/third_party/WebKit/Source/bindings/modules/v8/ConditionalFeaturesForModules.cpp
@@ -13,13 +13,11 @@ #include "bindings/core/v8/V8Window.h" #include "bindings/core/v8/V8WorkerNavigator.h" #include "bindings/modules/v8/V8DedicatedWorkerGlobalScopePartial.h" -#include "bindings/modules/v8/V8FetchEvent.h" #include "bindings/modules/v8/V8Gamepad.h" #include "bindings/modules/v8/V8GamepadButton.h" #include "bindings/modules/v8/V8InstallEvent.h" #include "bindings/modules/v8/V8NavigatorPartial.h" #include "bindings/modules/v8/V8ServiceWorkerGlobalScope.h" -#include "bindings/modules/v8/V8ServiceWorkerRegistration.h" #include "bindings/modules/v8/V8SharedWorkerGlobalScopePartial.h" #include "bindings/modules/v8/V8WindowPartial.h" #include "bindings/modules/v8/V8WorkerNavigatorPartial.h" @@ -94,30 +92,6 @@ V8WindowPartial::installGamepadExtensions( isolate, world, instance_object, prototype_object, interface_object); } - if (OriginTrials::serviceWorkerNavigationPreloadEnabled( - execution_context)) { - V8WindowPartial::installServiceWorkerNavigationPreload( - isolate, world, instance_object, prototype_object, interface_object); - } - } else if (wrapper_type_info == - &V8DedicatedWorkerGlobalScope::wrapperTypeInfo) { - v8::Local<v8::Object> instance_object = - script_state->GetContext()->Global(); - if (OriginTrials::serviceWorkerNavigationPreloadEnabled( - execution_context)) { - V8DedicatedWorkerGlobalScopePartial:: - installServiceWorkerNavigationPreload(isolate, world, instance_object, - prototype_object, - interface_object); - } - } else if (wrapper_type_info == &V8SharedWorkerGlobalScope::wrapperTypeInfo) { - v8::Local<v8::Object> instance_object = - script_state->GetContext()->Global(); - if (OriginTrials::serviceWorkerNavigationPreloadEnabled( - execution_context)) { - V8SharedWorkerGlobalScopePartial::installServiceWorkerNavigationPreload( - isolate, world, instance_object, prototype_object, interface_object); - } } else if (wrapper_type_info == &V8ServiceWorkerGlobalScope::wrapperTypeInfo) { v8::Local<v8::Object> instance_object = @@ -126,26 +100,6 @@ V8ServiceWorkerGlobalScope::installForeignFetch( isolate, world, instance_object, prototype_object, interface_object); } - if (OriginTrials::serviceWorkerNavigationPreloadEnabled( - execution_context)) { - V8ServiceWorkerGlobalScope::installServiceWorkerNavigationPreload( - isolate, world, instance_object, prototype_object, interface_object); - } - } else if (wrapper_type_info == - &V8ServiceWorkerRegistration::wrapperTypeInfo) { - if (OriginTrials::serviceWorkerNavigationPreloadEnabled( - execution_context)) { - V8ServiceWorkerRegistration::installServiceWorkerNavigationPreload( - isolate, world, v8::Local<v8::Object>(), prototype_object, - interface_object); - } - } else if (wrapper_type_info == &V8FetchEvent::wrapperTypeInfo) { - if (OriginTrials::serviceWorkerNavigationPreloadEnabled( - execution_context)) { - V8FetchEvent::installServiceWorkerNavigationPreload( - isolate, world, v8::Local<v8::Object>(), prototype_object, - interface_object); - } } else if (wrapper_type_info == &V8InstallEvent::wrapperTypeInfo) { if (OriginTrials::foreignFetchEnabled(execution_context)) { V8InstallEvent::installForeignFetch(isolate, world, @@ -201,27 +155,6 @@ } return; } - if (feature == "ServiceWorkerNavigationPreload") { - global_instance_object = script_state->GetContext()->Global(); - V8WindowPartial::installServiceWorkerNavigationPreload( - isolate, world, global_instance_object, v8::Local<v8::Object>(), - v8::Local<v8::Function>()); - if (context_data->GetExistingConstructorAndPrototypeForType( - &V8FetchEvent::wrapperTypeInfo, &prototype_object, - &interface_object)) { - V8FetchEvent::installServiceWorkerNavigationPreload( - isolate, world, v8::Local<v8::Object>(), prototype_object, - interface_object); - } - if (context_data->GetExistingConstructorAndPrototypeForType( - &V8ServiceWorkerRegistration::wrapperTypeInfo, &prototype_object, - &interface_object)) { - V8ServiceWorkerRegistration::installServiceWorkerNavigationPreload( - isolate, world, v8::Local<v8::Object>(), prototype_object, - interface_object); - } - return; - } if (feature == "WebShare") { if (context_data->GetExistingConstructorAndPrototypeForType( &V8Navigator::wrapperTypeInfo, &prototype_object,
diff --git a/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModulesTest.cpp b/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModulesTest.cpp index 41c3b52..88f104b7 100644 --- a/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModulesTest.cpp +++ b/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModulesTest.cpp
@@ -27,7 +27,7 @@ #include "bindings/core/v8/SerializationTag.h" #include "bindings/core/v8/SerializedScriptValue.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8BindingForTesting.h" #include "bindings/core/v8/V8PerIsolateData.h"
diff --git a/third_party/WebKit/Source/bindings/modules/v8/WebGLAny.cpp b/third_party/WebKit/Source/bindings/modules/v8/WebGLAny.cpp index 6d71fe88..fc03883 100644 --- a/third_party/WebKit/Source/bindings/modules/v8/WebGLAny.cpp +++ b/third_party/WebKit/Source/bindings/modules/v8/WebGLAny.cpp
@@ -4,7 +4,7 @@ #include "bindings/modules/v8/WebGLAny.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "platform/wtf/text/WTFString.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/modules/v8/serialization/V8ScriptValueSerializerForModulesTest.cpp b/third_party/WebKit/Source/bindings/modules/v8/serialization/V8ScriptValueSerializerForModulesTest.cpp index a12c305..4786b79 100644 --- a/third_party/WebKit/Source/bindings/modules/v8/serialization/V8ScriptValueSerializerForModulesTest.cpp +++ b/third_party/WebKit/Source/bindings/modules/v8/serialization/V8ScriptValueSerializerForModulesTest.cpp
@@ -5,7 +5,7 @@ #include "bindings/modules/v8/serialization/V8ScriptValueSerializerForModules.h" #include "bindings/core/v8/ExceptionState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8ArrayBuffer.h" #include "bindings/core/v8/V8BindingForTesting.h" #include "bindings/core/v8/V8DOMException.h"
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_callback_function.py b/third_party/WebKit/Source/bindings/scripts/v8_callback_function.py index b158954..2f654f2 100644 --- a/third_party/WebKit/Source/bindings/scripts/v8_callback_function.py +++ b/third_party/WebKit/Source/bindings/scripts/v8_callback_function.py
@@ -20,7 +20,7 @@ CALLBACK_FUNCTION_CPP_INCLUDES = frozenset([ 'bindings/core/v8/ExceptionState.h', 'bindings/core/v8/ScriptState.h', - 'bindings/core/v8/ToV8.h', + 'bindings/core/v8/ToV8ForCore.h', 'bindings/core/v8/V8Binding.h', 'core/dom/ExecutionContext.h', 'platform/wtf/Assertions.h',
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py b/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py index 92d310d..069af802 100644 --- a/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py +++ b/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py
@@ -16,7 +16,7 @@ DICTIONARY_H_INCLUDES = frozenset([ 'bindings/core/v8/NativeValueTraits.h', - 'bindings/core/v8/ToV8.h', + 'bindings/core/v8/ToV8ForCore.h', 'bindings/core/v8/V8Binding.h', 'platform/heap/Handle.h', ])
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_interface.py b/third_party/WebKit/Source/bindings/scripts/v8_interface.py index 2911ce89..bc379f6 100644 --- a/third_party/WebKit/Source/bindings/scripts/v8_interface.py +++ b/third_party/WebKit/Source/bindings/scripts/v8_interface.py
@@ -53,7 +53,7 @@ 'bindings/core/v8/GeneratedCodeHelper.h', 'bindings/core/v8/NativeValueTraits.h', 'bindings/core/v8/ScriptWrappable.h', - 'bindings/core/v8/ToV8.h', + 'bindings/core/v8/ToV8ForCore.h', 'bindings/core/v8/V8Binding.h', 'bindings/core/v8/V8DOMWrapper.h', 'bindings/core/v8/WrapperTypeInfo.h', @@ -63,7 +63,7 @@ 'bindings/core/v8/ExceptionState.h', 'bindings/core/v8/V8DOMConfiguration.h', 'bindings/core/v8/V8ObjectConstructor.h', - 'core/dom/Document.h', + 'core/dom/ExecutionContext.h', 'platform/wtf/GetPtr.h', 'platform/wtf/RefPtr.h', ]) @@ -307,6 +307,10 @@ raise Exception('[Measure] or [MeasureAs] specified for interface without a constructor: ' '%s' % interface.name) + # [ConstructorCallWith=Document] + if has_extended_attribute_value(interface, 'ConstructorCallWith', 'Document'): + includes.add('core/dom/Document.h') + # [Unscopable] attributes and methods unscopables = [] for attribute in interface.attributes:
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_union.py b/third_party/WebKit/Source/bindings/scripts/v8_union.py index 1723495..1bf0e028 100644 --- a/third_party/WebKit/Source/bindings/scripts/v8_union.py +++ b/third_party/WebKit/Source/bindings/scripts/v8_union.py
@@ -7,7 +7,7 @@ UNION_CPP_INCLUDES = frozenset([ - 'bindings/core/v8/ToV8.h', + 'bindings/core/v8/ToV8ForCore.h', ]) UNION_H_INCLUDES = frozenset([
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/AnyCallbackFunctionOptionalAnyArg.cpp b/third_party/WebKit/Source/bindings/tests/results/core/AnyCallbackFunctionOptionalAnyArg.cpp index af786cba..63a4ed8 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/AnyCallbackFunctionOptionalAnyArg.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/AnyCallbackFunctionOptionalAnyArg.cpp
@@ -15,7 +15,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" #include "bindings/core/v8/ScriptValue.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "core/dom/ExecutionContext.h" #include "platform/wtf/Assertions.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/ArrayBufferOrArrayBufferViewOrDictionary.cpp b/third_party/WebKit/Source/bindings/tests/results/core/ArrayBufferOrArrayBufferViewOrDictionary.cpp index f38af45..2413650 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/ArrayBufferOrArrayBufferViewOrDictionary.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/ArrayBufferOrArrayBufferViewOrDictionary.cpp
@@ -12,7 +12,7 @@ #include "ArrayBufferOrArrayBufferViewOrDictionary.h" #include "bindings/core/v8/Dictionary.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8ArrayBuffer.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrElementSequence.cpp b/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrElementSequence.cpp index 0690b6ca..b096303 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrElementSequence.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrElementSequence.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Element.h" #include "core/animation/ElementAnimation.h" #include "core/dom/ChildNode.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrStringOrUnrestrictedDouble.cpp b/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrStringOrUnrestrictedDouble.cpp index 70ba36f..4a7ff91e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrStringOrUnrestrictedDouble.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrStringOrUnrestrictedDouble.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrTestCallbackInterface.cpp b/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrTestCallbackInterface.cpp index 302951d..2b0e6bf2 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrTestCallbackInterface.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/BooleanOrTestCallbackInterface.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8TestCallbackInterface.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/ByteStringOrNodeList.cpp b/third_party/WebKit/Source/bindings/tests/results/core/ByteStringOrNodeList.cpp index 802351b..c526b357 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/ByteStringOrNodeList.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/ByteStringOrNodeList.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8NodeList.h" #include "core/dom/NameNodeList.h" #include "core/dom/NodeList.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/ByteStringSequenceSequenceOrByteStringByteStringRecord.cpp b/third_party/WebKit/Source/bindings/tests/results/core/ByteStringSequenceSequenceOrByteStringByteStringRecord.cpp index 221fc5f..bd3ff3d 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/ByteStringSequenceSequenceOrByteStringByteStringRecord.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/ByteStringSequenceSequenceOrByteStringByteStringRecord.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrLongOrBooleanSequence.cpp b/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrLongOrBooleanSequence.cpp index 5567031e70..8037130 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrLongOrBooleanSequence.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrLongOrBooleanSequence.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/LongOrBoolean.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrString.cpp b/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrString.cpp index 28f82ece..27e7d34 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrString.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrString.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrStringOrDoubleOrStringSequence.cpp b/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrStringOrDoubleOrStringSequence.cpp index 484c4b3..a4777d7 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrStringOrDoubleOrStringSequence.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/DoubleOrStringOrDoubleOrStringSequence.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/DoubleOrString.h" #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/ElementSequenceOrByteStringDoubleOrStringRecord.cpp b/third_party/WebKit/Source/bindings/tests/results/core/ElementSequenceOrByteStringDoubleOrStringRecord.cpp index a21cb2b..d22c06f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/ElementSequenceOrByteStringDoubleOrStringRecord.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/ElementSequenceOrByteStringDoubleOrStringRecord.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/DoubleOrString.h" #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Element.h" #include "core/animation/ElementAnimation.h" #include "core/dom/ChildNode.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/FloatOrBoolean.cpp b/third_party/WebKit/Source/bindings/tests/results/core/FloatOrBoolean.cpp index 8576c61..3bae28e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/FloatOrBoolean.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/FloatOrBoolean.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/LongCallbackFunction.cpp b/third_party/WebKit/Source/bindings/tests/results/core/LongCallbackFunction.cpp index 84ae62e..99b45025 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/LongCallbackFunction.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/LongCallbackFunction.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "core/dom/ExecutionContext.h" #include "platform/wtf/Assertions.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/LongOrBoolean.cpp b/third_party/WebKit/Source/bindings/tests/results/core/LongOrBoolean.cpp index 4b4bfed..4b7f720f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/LongOrBoolean.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/LongOrBoolean.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/LongOrTestDictionary.cpp b/third_party/WebKit/Source/bindings/tests/results/core/LongOrTestDictionary.cpp index b8795e8..f1beed0 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/LongOrTestDictionary.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/LongOrTestDictionary.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/LongSequenceOrEvent.cpp b/third_party/WebKit/Source/bindings/tests/results/core/LongSequenceOrEvent.cpp index 9c43631a..f54f01a5 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/LongSequenceOrEvent.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/LongSequenceOrEvent.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Event.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/NodeOrLongSequenceOrEventOrXMLHttpRequestOrStringOrStringByteStringOrNodeListRecord.cpp b/third_party/WebKit/Source/bindings/tests/results/core/NodeOrLongSequenceOrEventOrXMLHttpRequestOrStringOrStringByteStringOrNodeListRecord.cpp index d31eef2..46fd2e34 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/NodeOrLongSequenceOrEventOrXMLHttpRequestOrStringOrStringByteStringOrNodeListRecord.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/NodeOrLongSequenceOrEventOrXMLHttpRequestOrStringOrStringByteStringOrNodeListRecord.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/ByteStringOrNodeList.h" #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Event.h" #include "bindings/core/v8/V8Node.h" #include "bindings/core/v8/V8NodeList.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/NodeOrNodeList.cpp b/third_party/WebKit/Source/bindings/tests/results/core/NodeOrNodeList.cpp index 50485840..ca12d20 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/NodeOrNodeList.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/NodeOrNodeList.cpp
@@ -11,7 +11,7 @@ // clang-format off #include "NodeOrNodeList.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Node.h" #include "bindings/core/v8/V8NodeList.h" #include "core/dom/NameNodeList.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/StringOrArrayBufferOrArrayBufferView.cpp b/third_party/WebKit/Source/bindings/tests/results/core/StringOrArrayBufferOrArrayBufferView.cpp index 71fb6df1..dc5fb10 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/StringOrArrayBufferOrArrayBufferView.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/StringOrArrayBufferOrArrayBufferView.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8ArrayBuffer.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/StringOrDouble.cpp b/third_party/WebKit/Source/bindings/tests/results/core/StringOrDouble.cpp index 873422c3..84e48d5 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/StringOrDouble.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/StringOrDouble.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/StringOrStringSequence.cpp b/third_party/WebKit/Source/bindings/tests/results/core/StringOrStringSequence.cpp index 521152dc..2cbd113 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/StringOrStringSequence.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/StringOrStringSequence.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/StringSequenceCallbackFunctionLongSequenceArg.cpp b/third_party/WebKit/Source/bindings/tests/results/core/StringSequenceCallbackFunctionLongSequenceArg.cpp index 904a2d0..3f118fb2 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/StringSequenceCallbackFunctionLongSequenceArg.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/StringSequenceCallbackFunctionLongSequenceArg.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "core/dom/ExecutionContext.h" #include "platform/wtf/Assertions.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/TestEnumOrDouble.cpp b/third_party/WebKit/Source/bindings/tests/results/core/TestEnumOrDouble.cpp index 06be713e..8113eb61 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/TestEnumOrDouble.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/TestEnumOrDouble.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/TestInterface2OrUint8Array.cpp b/third_party/WebKit/Source/bindings/tests/results/core/TestInterface2OrUint8Array.cpp index 2fef52b..710e524 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/TestInterface2OrUint8Array.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/TestInterface2OrUint8Array.cpp
@@ -11,7 +11,7 @@ // clang-format off #include "TestInterface2OrUint8Array.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8TestInterface2.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceGarbageCollectedOrString.cpp b/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceGarbageCollectedOrString.cpp index 211a66f..a82d600 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceGarbageCollectedOrString.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceGarbageCollectedOrString.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8TestInterfaceGarbageCollected.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceOrLong.cpp b/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceOrLong.cpp index d698834f..727f859 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceOrLong.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceOrLong.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8TestInterface.h" #include "bindings/tests/idls/core/TestImplements2.h" #include "bindings/tests/idls/core/TestImplements3Implementation.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceOrTestInterfaceEmpty.cpp b/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceOrTestInterfaceEmpty.cpp index 0b38224..413bdcf 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceOrTestInterfaceEmpty.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/TestInterfaceOrTestInterfaceEmpty.cpp
@@ -11,7 +11,7 @@ // clang-format off #include "TestInterfaceOrTestInterfaceEmpty.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8TestInterface.h" #include "bindings/core/v8/V8TestInterfaceEmpty.h" #include "bindings/tests/idls/core/TestImplements2.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/UnrestrictedDoubleOrString.cpp b/third_party/WebKit/Source/bindings/tests/results/core/UnrestrictedDoubleOrString.cpp index 455a1a5..6d28652 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/UnrestrictedDoubleOrString.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/UnrestrictedDoubleOrString.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/UnsignedLongLongOrBooleanOrTestCallbackInterface.cpp b/third_party/WebKit/Source/bindings/tests/results/core/UnsignedLongLongOrBooleanOrTestCallbackInterface.cpp index 3b93f7c..61efcf44 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/UnsignedLongLongOrBooleanOrTestCallbackInterface.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/UnsignedLongLongOrBooleanOrTestCallbackInterface.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8TestCallbackInterface.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.cpp index 598d706..278cf68 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8SharedArrayBuffer.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.h b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.h index 84c2a0b1..81002c0 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.cpp index 9c0bdf0..b9dc977 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.cpp
@@ -29,7 +29,7 @@ #include "bindings/core/v8/V8Uint32Array.h" #include "bindings/core/v8/V8Uint8Array.h" #include "bindings/core/v8/V8Uint8ClampedArray.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.h b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.h index aa36c85..161965a 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.cpp index 0e9a43d..d6ffb129 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8SharedArrayBuffer.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.h b/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.h index e27504c3..fa0df7c 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8ArrayBufferView.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.cpp index 12b1de4..9319a13a 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.cpp
@@ -17,7 +17,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "core/SVGNames.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/dom/custom/V0CustomElementProcessingStack.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.h b/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.h index 9052497..1f7931e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackFunctions.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackFunctions.cpp index 10a3fc8..12e195d 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackFunctions.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackFunctions.cpp
@@ -19,7 +19,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/VoidCallbackFunction.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/dom/custom/V0CustomElementProcessingStack.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackFunctions.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackFunctions.h index e1e7be3e4..6ec3d50 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackFunctions.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackFunctions.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestConstants.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestConstants.cpp index ea03305..14ee890f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestConstants.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestConstants.cpp
@@ -15,7 +15,7 @@ #include "bindings/core/v8/ScriptState.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/Deprecation.h" #include "core/frame/UseCounter.h" #include "core/origin_trials/OriginTrials.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestConstants.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestConstants.h index 706231fc..7f77dd94 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestConstants.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestConstants.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionary.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionary.h index 4a90a91..7334457e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionary.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionary.h
@@ -13,7 +13,7 @@ #define V8TestDictionary_h #include "bindings/core/v8/NativeValueTraits.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/tests/idls/core/TestDictionary.h" #include "core/CoreExport.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionaryDerived.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionaryDerived.h index 7787992..1c07cfb3 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionaryDerived.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionaryDerived.h
@@ -13,7 +13,7 @@ #define V8TestDictionaryDerived_h #include "bindings/core/v8/NativeValueTraits.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/tests/idls/core/TestDictionaryDerivedImplementedAs.h" #include "core/CoreExport.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp index 2049192b..65db03a9 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.h index 42915a9..9f5eaca 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.cpp index d812c6c3..cf9a565 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8Document.h" #include "bindings/core/v8/V8Node.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.h index eee8078..c3c0cd2 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.cpp index b77637e..48000cd 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8Document.h" #include "bindings/core/v8/V8Node.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.h index bcd207a..c850dd81 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.cpp index 12835f1..951e0fe 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8Document.h" #include "bindings/core/v8/V8Node.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.h index f6e3dc3..d7604782 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp index fff5df3..a929d9a 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
@@ -33,7 +33,7 @@ #include "bindings/tests/idls/core/TestInterfacePartial.h" #include "bindings/tests/idls/core/TestInterfacePartial2Implementation.h" #include "bindings/tests/idls/core/TestInterfacePartialSecureContext.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/UseCounter.h" #include "core/inspector/ConsoleMessage.h" #include "platform/RuntimeEnabledFeatures.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.h index 90956f8..50ab99b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.h
@@ -16,7 +16,7 @@ #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" #include "bindings/core/v8/StringOrDouble.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/V8TestInterfaceEmpty.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.cpp index 9cbc1bf8..7348e2c 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.cpp
@@ -20,7 +20,7 @@ #include "bindings/core/v8/V8Iterator.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8TestInterfaceEmpty.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/RuntimeEnabledFeatures.h" #include "platform/wtf/GetPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.h index 8d17a6d3..6b7f8ba 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.cpp index 03caa8b6..a3c9492 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8Document.h" #include "bindings/core/v8/V8Node.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.h index b3b0a62..e8c9fbd 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp index ae947c347..504041e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8CrossOriginSetterInfo.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.h index db8793e..db02e712 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp index 00b22cb..a53f25d7 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp
@@ -21,6 +21,7 @@ #include "bindings/core/v8/V8TestDictionary.h" #include "bindings/core/v8/V8TestInterfaceEmpty.h" #include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "core/frame/UseCounter.h" #include "platform/wtf/GetPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.h index 244d6c4..6a36d4e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.h
@@ -16,7 +16,7 @@ #include "bindings/core/v8/LongOrTestDictionary.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp index c7802d3..b469485 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8TestInterfaceEmpty.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.h index 9624ff8..76637c3 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp index ca090d78..923d2f7 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.h index d1b51dd..27dbfa4 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp index 5b99fde1..3648863 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp
@@ -17,7 +17,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8TestInterfaceConstructor4.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.h index 6e2eff0..912662e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp index 550ce5017..17e79e9 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.h index 66be651..33a867b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp index 907e876..d15c930 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp
@@ -17,8 +17,8 @@ #include "bindings/core/v8/V8ObjectConstructor.h" #include "core/animation/DocumentAnimation.h" #include "core/css/DocumentFontFaceSet.h" -#include "core/dom/Document.h" #include "core/dom/DocumentFullscreen.h" +#include "core/dom/ExecutionContext.h" #include "core/svg/SVGDocumentExtensions.h" #include "core/xml/DocumentXPathEvaluator.h" #include "platform/wtf/GetPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.h index f793b29..0cd4506 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/V8Document.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp index b150665..f7d7cae7 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.h index b8239a8..28245549 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInit.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInit.h index 72f669d..c56c6b3 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInit.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInit.h
@@ -13,7 +13,7 @@ #define V8TestInterfaceEventInit_h #include "bindings/core/v8/NativeValueTraits.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/tests/idls/core/TestInterfaceEventInit.h" #include "core/CoreExport.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp index 6c656cc..1299aca 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp
@@ -17,7 +17,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8TestInterfaceEventInit.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.h index 00a8860d3..ee589ee 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/V8Event.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp index 2c36e3dc..c438bf8 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp
@@ -16,6 +16,7 @@ #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8PrivateProperty.h" #include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.h index 3e756bfc..b354132 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/V8EventTarget.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp index c0292cdd..27ad15c 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp
@@ -20,7 +20,7 @@ #include "bindings/core/v8/V8Iterator.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8TestInterfaceGarbageCollected.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.h index 5cad3ffe..8bfc54ac 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/V8EventTarget.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp index 59f04aa0..2a235e0 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp
@@ -18,6 +18,7 @@ #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8PrivateProperty.h" #include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.h index ca5c214..abe08568 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp index 5260443..1839028 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp
@@ -17,7 +17,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8PrivateProperty.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.h index bf8d2159..7df638b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp index d137329..bfe0e2e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp
@@ -20,7 +20,7 @@ #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8TestInterfaceEmpty.h" #include "core/HTMLNames.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/dom/custom/V0CustomElementProcessingStack.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.h index 333f8f1..56872624 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/V8Node.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.cpp index a3a161d..5d98894 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/RuntimeEnabledFeatures.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.h index 10d6a9de..9ba375c 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.cpp index 28bcd5f..ec355ed 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/RuntimeEnabledFeatures.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.h index 16d6d63..c46755bf 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.cpp index 53ac540..38ebe0b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/frame/LocalDOMWindow.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.h index bf526b9..fe5c559 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/V8Node.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp index 32f4791..a4478c0 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
@@ -59,7 +59,7 @@ #include "core/HTMLNames.h" #include "core/dom/ClassCollection.h" #include "core/dom/DOMArrayBufferBase.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/dom/FlexibleArrayBufferView.h" #include "core/dom/NotShared.h" #include "core/dom/TagCollection.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.h index b4e77b9..479a65c4 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.h
@@ -28,7 +28,7 @@ #include "bindings/core/v8/TestEnumOrDouble.h" #include "bindings/core/v8/TestInterfaceGarbageCollectedOrString.h" #include "bindings/core/v8/TestInterfaceOrLong.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/UnrestrictedDoubleOrString.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestPermissiveDictionary.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestPermissiveDictionary.h index 2714b4c..b4cde2b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestPermissiveDictionary.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestPermissiveDictionary.h
@@ -13,7 +13,7 @@ #define V8TestPermissiveDictionary_h #include "bindings/core/v8/NativeValueTraits.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/tests/idls/core/TestPermissiveDictionary.h" #include "core/CoreExport.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp index a91db457..27a1af82 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp
@@ -18,7 +18,7 @@ #include "bindings/core/v8/V8Node.h" #include "bindings/core/v8/V8NodeList.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/dom/NameNodeList.h" #include "core/dom/NodeList.h" #include "core/dom/StaticNodeList.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.h index 11fc88f2..59564aa 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.h
@@ -16,7 +16,7 @@ #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/NodeOrNodeList.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp index 03542db6..99d0de5 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.h index 7b9ec75..fa78bdf 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp index f8bc673..e1dd78b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp
@@ -24,7 +24,7 @@ #include "bindings/core/v8/V8TestInterfaceEmpty.h" #include "bindings/core/v8/V8TestObject.h" #include "bindings/core/v8/V8XMLHttpRequest.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/dom/NameNodeList.h" #include "core/dom/NodeList.h" #include "core/dom/StaticNodeList.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.h index 49c6876..704ee5bd 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.h
@@ -19,7 +19,7 @@ #include "bindings/core/v8/ScriptWrappable.h" #include "bindings/core/v8/StringOrDouble.h" #include "bindings/core/v8/TestInterfaceOrTestInterfaceEmpty.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/UnsignedLongLongOrBooleanOrTestCallbackInterface.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp index 9bfcf56b..b15b1a8 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/V8DOMConfiguration.h" #include "bindings/core/v8/V8ObjectConstructor.h" #include "bindings/core/v8/V8SharedArrayBuffer.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.h b/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.h index 806bac0..ac8e8e9 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8ArrayBufferView.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunction.cpp b/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunction.cpp index e0f871c..e19fe12e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunction.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunction.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "core/dom/ExecutionContext.h" #include "platform/wtf/Assertions.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunctionInterfaceArg.cpp b/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunctionInterfaceArg.cpp index 1d7c61b..68ea20f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunctionInterfaceArg.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunctionInterfaceArg.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8HTMLDivElement.h" #include "core/dom/ExecutionContext.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunctionTypedef.cpp b/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunctionTypedef.cpp index c366b8840..130661b4 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunctionTypedef.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/VoidCallbackFunctionTypedef.cpp
@@ -16,7 +16,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "core/dom/ExecutionContext.h" #include "platform/wtf/Assertions.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/XMLHttpRequestOrString.cpp b/third_party/WebKit/Source/bindings/tests/results/core/XMLHttpRequestOrString.cpp index 02376e38..8d0d7a0e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/XMLHttpRequestOrString.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/XMLHttpRequestOrString.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8XMLHttpRequest.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/modules/BooleanOrString.cpp b/third_party/WebKit/Source/bindings/tests/results/modules/BooleanOrString.cpp index 15c367b6..4b02e762 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/BooleanOrString.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/modules/BooleanOrString.cpp
@@ -13,7 +13,7 @@ #include "bindings/core/v8/IDLTypes.h" #include "bindings/core/v8/NativeValueTraitsImpl.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" namespace blink {
diff --git a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface2Partial.cpp b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface2Partial.cpp index c67f5bf..1427846 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface2Partial.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface2Partial.cpp
@@ -19,7 +19,7 @@ #include "bindings/core/v8/V8TestInterface2.h" #include "bindings/tests/idls/modules/TestInterface2Partial.h" #include "bindings/tests/idls/modules/TestInterface2Partial2.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/RuntimeEnabledFeatures.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface2Partial.h b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface2Partial.h index ac687556..31bb26f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface2Partial.h +++ b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface2Partial.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/WrapperTypeInfo.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp index c451091..7c14a5be 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp
@@ -19,7 +19,7 @@ #include "bindings/core/v8/V8TestInterfaceEmpty.h" #include "bindings/modules/v8/V8TestInterface5.h" #include "bindings/modules/v8/VoidCallbackFunctionModules.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "platform/RuntimeEnabledFeatures.h" #include "platform/wtf/GetPtr.h" #include "platform/wtf/RefPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.h b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.h index 44de926..3d88414 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.h +++ b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.h
@@ -16,7 +16,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h" #include "bindings/core/v8/V8TestInterfaceEmpty.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp index 3f84967a9..9fbb71b9 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp
@@ -24,7 +24,7 @@ #include "bindings/core/v8/V8TestInterface.h" #include "bindings/tests/idls/modules/TestInterfacePartial3Implementation.h" #include "bindings/tests/idls/modules/TestInterfacePartial4.h" -#include "core/dom/Document.h" +#include "core/dom/ExecutionContext.h" #include "core/origin_trials/OriginTrials.h" #include "platform/RuntimeEnabledFeatures.h" #include "platform/wtf/GetPtr.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.h b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.h index 41e8605..00bf2135 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.h +++ b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.h
@@ -15,7 +15,7 @@ #include "bindings/core/v8/GeneratedCodeHelper.h" #include "bindings/core/v8/NativeValueTraits.h" #include "bindings/core/v8/ScriptWrappable.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/UnsignedLongLongOrBooleanOrTestCallbackInterface.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8DOMWrapper.h"
diff --git a/third_party/WebKit/Source/bindings/tests/results/modules/VoidCallbackFunctionModules.cpp b/third_party/WebKit/Source/bindings/tests/results/modules/VoidCallbackFunctionModules.cpp index fdfd5fef..8b6baef0 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/VoidCallbackFunctionModules.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/modules/VoidCallbackFunctionModules.cpp
@@ -14,7 +14,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "core/dom/ExecutionContext.h" #include "platform/wtf/Assertions.h"
diff --git a/third_party/WebKit/Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl b/third_party/WebKit/Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl index 4e81b0f4..2eac3550 100644 --- a/third_party/WebKit/Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl +++ b/third_party/WebKit/Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl
@@ -439,7 +439,7 @@ {{apply_fill_layer('CSSPropertyBackgroundPositionY', 'YPosition')}} {{apply_fill_layer('CSSPropertyBackgroundRepeatX', 'RepeatX')}} {{apply_fill_layer('CSSPropertyBackgroundRepeatY', 'RepeatY')}} -{{apply_fill_layer('CSSPropertyBackgroundSize', 'Size', 'size')}} +{{apply_fill_layer('CSSPropertyBackgroundSize', 'Size', 'Size')}} {{apply_fill_layer('CSSPropertyMaskSourceType', 'MaskSourceType')}} {{apply_fill_layer('CSSPropertyWebkitMaskClip', 'Clip')}} {{apply_fill_layer('CSSPropertyWebkitMaskComposite', 'Composite')}} @@ -449,7 +449,7 @@ {{apply_fill_layer('CSSPropertyWebkitMaskPositionY', 'YPosition')}} {{apply_fill_layer('CSSPropertyWebkitMaskRepeatX', 'RepeatX')}} {{apply_fill_layer('CSSPropertyWebkitMaskRepeatY', 'RepeatY')}} -{{apply_fill_layer('CSSPropertyWebkitMaskSize', 'Size', 'size')}} +{{apply_fill_layer('CSSPropertyWebkitMaskSize', 'Size', 'Size')}} {% macro apply_grid_template(property_id, type) %} {{declare_initial_function(property_id)}} {
diff --git a/third_party/WebKit/Source/core/animation/SizeListPropertyFunctions.cpp b/third_party/WebKit/Source/core/animation/SizeListPropertyFunctions.cpp index f88dbec..37c82ed 100644 --- a/third_party/WebKit/Source/core/animation/SizeListPropertyFunctions.cpp +++ b/third_party/WebKit/Source/core/animation/SizeListPropertyFunctions.cpp
@@ -43,7 +43,7 @@ SizeList result; for (const FillLayer* fill_layer = GetFillLayerForSize(property, style); fill_layer && fill_layer->IsSizeSet(); fill_layer = fill_layer->Next()) - result.push_back(fill_layer->size()); + result.push_back(fill_layer->Size()); return result; }
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp b/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp index 2e09769..46c98ca4 100644 --- a/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp +++ b/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
@@ -264,7 +264,7 @@ property == CSSPropertyWebkitMaskSize) { if (!fill_layer->IsSizeSet()) break; - values.push_back(CreateFromFillSize(fill_layer->size(), style)); + values.push_back(CreateFromFillSize(fill_layer->Size(), style)); } else { NOTREACHED(); }
diff --git a/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp b/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp index 78e1de5..add2968 100644 --- a/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp +++ b/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp
@@ -159,8 +159,8 @@ if (!from_image || !to_image) return IntSize(); - IntSize from_image_size = from_image->size(); - IntSize to_image_size = to_image->size(); + IntSize from_image_size = from_image->Size(); + IntSize to_image_size = to_image->Size(); if (from_image->IsSVGImage()) from_image_size = RoundedIntSize(
diff --git a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp index 662e265..83acd1a5 100644 --- a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp +++ b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
@@ -652,7 +652,7 @@ CSSPropertyBackgroundPosition, *curr_layer, style)); list->Append(*before_slash); CSSValueList* after_slash = CSSValueList::CreateSpaceSeparated(); - after_slash->Append(*ValueForFillSize(curr_layer->size(), style)); + after_slash->Append(*ValueForFillSize(curr_layer->Size(), style)); after_slash->Append(*CSSIdentifierValue::Create(curr_layer->Origin())); after_slash->Append(*CSSIdentifierValue::Create(curr_layer->Clip())); list->Append(*after_slash); @@ -2108,7 +2108,7 @@ ? &style.MaskLayers() : &style.BackgroundLayers(); for (; curr_layer; curr_layer = curr_layer->Next()) - list->Append(*ValueForFillSize(curr_layer->size(), style)); + list->Append(*ValueForFillSize(curr_layer->Size(), style)); return list; } case CSSPropertyBackgroundRepeat:
diff --git a/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.cpp b/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.cpp index 325cdd3..473c929 100644 --- a/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.cpp +++ b/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.cpp
@@ -6,7 +6,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptValue.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "core/StylePropertyShorthand.h" #include "core/css/cssom/StyleValueFactory.h" #include "core/css/parser/CSSParser.h"
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp index 55220c8ab..9e6b7c3 100644 --- a/third_party/WebKit/Source/core/dom/Document.cpp +++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -282,7 +282,7 @@ // After a document has been committed for this time, it can create a history // entry even if the user hasn't interacted with the document. -static const int kCElapsedTimeForHistoryEntryWithoutUserGestureMS = 5000; +static const int kElapsedTimeForHistoryEntryWithoutUserGestureMS = 5000; // DOM Level 2 says (letters added): // @@ -3221,11 +3221,11 @@ // on creating history entries without user gestures. I'm waiting to update // the tests until the feature is proven to minimize churn. // https://bugs.chromium.org/p/chromium/issues/detail?id=638198 - if (!frame_->GetSettings()->GetHistoryEntryRequiresUserGesture()) + if (!GetSettings() || !GetSettings()->GetHistoryEntryRequiresUserGesture()) return true; if (frame_->HasReceivedUserGesture()) return true; - return ElapsedTime() >= kCElapsedTimeForHistoryEntryWithoutUserGestureMS; + return ElapsedTime() >= kElapsedTimeForHistoryEntryWithoutUserGestureMS; } void Document::write(const SegmentedString& text, @@ -5437,19 +5437,19 @@ } } - Vector<IconURL> icon_ur_ls; + Vector<IconURL> icon_urls; if (first_favicon.icon_type_ != kInvalidIcon) - icon_ur_ls.push_back(first_favicon); + icon_urls.push_back(first_favicon); else if (url_.ProtocolIsInHTTPFamily() && icon_types_mask & kFavicon) - icon_ur_ls.push_back(IconURL::DefaultFavicon(url_)); + icon_urls.push_back(IconURL::DefaultFavicon(url_)); if (first_touch_icon.icon_type_ != kInvalidIcon) - icon_ur_ls.push_back(first_touch_icon); + icon_urls.push_back(first_touch_icon); if (first_touch_precomposed_icon.icon_type_ != kInvalidIcon) - icon_ur_ls.push_back(first_touch_precomposed_icon); + icon_urls.push_back(first_touch_precomposed_icon); for (int i = secondary_icons.size() - 1; i >= 0; --i) - icon_ur_ls.push_back(secondary_icons[i]); - return icon_ur_ls; + icon_urls.push_back(secondary_icons[i]); + return icon_urls; } Color Document::ThemeColor() const {
diff --git a/third_party/WebKit/Source/core/dom/Element.cpp b/third_party/WebKit/Source/core/dom/Element.cpp index 93797e20..40486270 100644 --- a/third_party/WebKit/Source/core/dom/Element.cpp +++ b/third_party/WebKit/Source/core/dom/Element.cpp
@@ -1122,7 +1122,7 @@ return IntRect(); // TODO(tkent): Can we check invisibility by scrollable non-frame elements? - IntSize viewport_size = GetDocument().GetPage()->GetVisualViewport().size(); + IntSize viewport_size = GetDocument().GetPage()->GetVisualViewport().Size(); IntRect rect(0, 0, viewport_size.Width(), viewport_size.Height()); // We don't use absoluteBoundingBoxRect() because it can return an IntRect // larger the actual size by 1px. crbug.com/470503
diff --git a/third_party/WebKit/Source/core/dom/ViewportDescription.cpp b/third_party/WebKit/Source/core/dom/ViewportDescription.cpp index f460171..10542cb 100644 --- a/third_party/WebKit/Source/core/dom/ViewportDescription.cpp +++ b/third_party/WebKit/Source/core/dom/ViewportDescription.cpp
@@ -278,7 +278,7 @@ // entire page to be visible. int viewport_width = max_width.IntValue(); int window_width = - main_frame->GetPage()->GetVisualViewport().size().Width(); + main_frame->GetPage()->GetVisualViewport().Size().Width(); int overview_zoom_percent = 100 * window_width / static_cast<float>(viewport_width); DEFINE_STATIC_LOCAL(SparseHistogram, overview_zoom_histogram,
diff --git a/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp b/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp index 5bdd506..33043a74 100644 --- a/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp +++ b/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp
@@ -1545,10 +1545,6 @@ .Data()); } -// TODO(rlanday): The behavior tested in the following DocumentMarker tests is -// going to be changed so markers are not split when text they contain is -// deleted - TEST_F(InputMethodControllerTest, Marker_WhitespaceFixupAroundMarkerBeginningWithSpace) { Element* div = InsertHTMLElement( @@ -1569,15 +1565,11 @@ Controller().SetCompositionFromExistingText(empty_underlines, 6, 10); Controller().CommitText(String(""), empty_underlines, 0); - // Check that the marker was split when the space at the beginning was - // converted to an nbsp - EXPECT_EQ(2u, GetDocument().Markers().Markers().size()); - EXPECT_STREQ("\xC2\xA0", // UTF-8 for an nbsp - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 0) - .Utf8() - .Data()); - EXPECT_STREQ("text", - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 1) + // Check that the marker is still attached to " text" and includes the space + // before "text" but not the space after + EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); + ASSERT_STREQ("\xC2\xA0text", + GetMarkedText(GetDocument().Markers(), div->firstChild(), 0) .Utf8() .Data()); } @@ -1602,15 +1594,11 @@ Controller().SetCompositionFromExistingText(empty_underlines, 6, 10); Controller().CommitText(String(""), empty_underlines, 0); - // Check that the marker was split when the space at the end was - // converted to an nbsp - EXPECT_EQ(2u, GetDocument().Markers().Markers().size()); - EXPECT_STREQ("text", - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 0) - .Utf8() - .Data()); - EXPECT_STREQ("\xC2\xA0", // UTF-8 for an nbsp - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 1) + // Check that the marker is still attached to "text " and includes the space + // after "text" but not the space before + EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); + ASSERT_STREQ("text\xC2\xA0", + GetMarkedText(GetDocument().Markers(), div->firstChild(), 0) .Utf8() .Data()); } @@ -1636,19 +1624,11 @@ Controller().SetCompositionFromExistingText(empty_underlines, 6, 10); Controller().CommitText(String(""), empty_underlines, 0); - // Check that the marker was split into three pieces when the two spaces were - // converted to nbsps - EXPECT_EQ(3u, GetDocument().Markers().Markers().size()); - EXPECT_STREQ("\xC2\xA0", // UTF-8 for an nbsp - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 0) - .Utf8() - .Data()); - EXPECT_STREQ("text", - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 1) - .Utf8() - .Data()); - EXPECT_STREQ("\xC2\xA0", // UTF-8 for an nbsp - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 2) + // Check that the marker is still attached to " text " and includes both the + // space before "text" and the space after + EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); + ASSERT_STREQ("\xC2\xA0text\xC2\xA0", + GetMarkedText(GetDocument().Markers(), div->firstChild(), 0) .Utf8() .Data()); } @@ -1668,11 +1648,10 @@ Controller().SetCompositionFromExistingText(empty_underlines, 0, 7); Controller().CommitText(String("Original"), empty_underlines, 0); - // Verify marker is under "al text" - // ("Initial" and "Original" have "al" as a common suffix) + // Verify marker is under "Original text" EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); - EXPECT_STREQ("al text", - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 0) + ASSERT_STREQ("Original text", + GetMarkedText(GetDocument().Markers(), div->firstChild(), 0) .Utf8() .Data()); } @@ -1716,10 +1695,10 @@ Controller().SetCompositionFromExistingText(empty_underlines, 8, 12); Controller().CommitText(String("string"), empty_underlines, 0); - // Verify marker is under "Initial " + // Verify marker is under "Initial string" EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); - EXPECT_STREQ("Initial ", - GetMarkedText(GetDocument().Markers(), div->FirstChild(), 0) + ASSERT_STREQ("Initial string", + GetMarkedText(GetDocument().Markers(), div->firstChild(), 0) .Utf8() .Data()); } @@ -1765,8 +1744,12 @@ Controller().SetCompositionFromExistingText(empty_underlines, 8, 12); Controller().CommitText(String("string"), empty_underlines, 0); - // Verify marker was removed - EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); + // Verify marker is under "string" + EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); + ASSERT_STREQ("string", + GetMarkedText(GetDocument().Markers(), div->firstChild(), 0) + .Utf8() + .Data()); } TEST_F(InputMethodControllerTest, Marker_ReplaceTextWithMarkerAtBeginning) { @@ -1811,4 +1794,174 @@ EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); } +TEST_F(InputMethodControllerTest, Marker_Deletions) { + Element* div = InsertHTMLElement( + "<div id='sample' contenteditable>1111122222333334444455555</div>", + "sample"); + + EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + marker_range = PlainTextRange(5, 10).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + marker_range = PlainTextRange(10, 15).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + marker_range = PlainTextRange(15, 20).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + marker_range = PlainTextRange(20, 25).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + EXPECT_EQ(5u, GetDocument().Markers().Markers().size()); + + // Delete third marker and portions of second and fourth + Vector<CompositionUnderline> empty_underlines; + Controller().SetCompositionFromExistingText(empty_underlines, 8, 17); + Controller().CommitText(String(""), empty_underlines, 0); + + // Verify markers were updated correctly + EXPECT_EQ(4u, GetDocument().Markers().Markers().size()); + + EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset()); + EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset()); + + EXPECT_EQ(5u, GetDocument().Markers().Markers()[1]->StartOffset()); + EXPECT_EQ(8u, GetDocument().Markers().Markers()[1]->EndOffset()); + + EXPECT_EQ(8u, GetDocument().Markers().Markers()[2]->StartOffset()); + EXPECT_EQ(11u, GetDocument().Markers().Markers()[2]->EndOffset()); + + EXPECT_EQ(11u, GetDocument().Markers().Markers()[3]->StartOffset()); + EXPECT_EQ(16u, GetDocument().Markers().Markers()[3]->EndOffset()); +} + +TEST_F(InputMethodControllerTest, Marker_DeleteExactlyOnMarker) { + Element* div = InsertHTMLElement( + "<div id='sample' contenteditable>1111122222333334444455555</div>", + "sample"); + + EphemeralRange marker_range = PlainTextRange(5, 10).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); + + // Delete exactly on the marker + Vector<CompositionUnderline> empty_underlines; + Controller().SetCompositionFromExistingText(empty_underlines, 5, 10); + Controller().CommitText(String(""), empty_underlines, 0); + EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); +} + +TEST_F(InputMethodControllerTest, Marker_DeleteMiddleOfMarker) { + Element* div = InsertHTMLElement( + "<div id='sample' contenteditable>1111122222333334444455555</div>", + "sample"); + + EphemeralRange marker_range = PlainTextRange(5, 10).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + // Delete middle of marker + Vector<CompositionUnderline> empty_underlines; + Controller().SetCompositionFromExistingText(empty_underlines, 6, 9); + Controller().CommitText(String(""), empty_underlines, 0); + + EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); + + EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->StartOffset()); + EXPECT_EQ(7u, GetDocument().Markers().Markers()[0]->EndOffset()); +} + +TEST_F(InputMethodControllerTest, Marker_InsertInMarkerInterior) { + Element* div = InsertHTMLElement( + "<div id='sample' contenteditable>1111122222333334444455555</div>", + "sample"); + + EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + marker_range = PlainTextRange(5, 10).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + marker_range = PlainTextRange(10, 15).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + EXPECT_EQ(3u, GetDocument().Markers().Markers().size()); + + // insert in middle of second marker + Vector<CompositionUnderline> empty_underlines; + Controller().SetComposition("", empty_underlines, 7, 7); + Controller().CommitText(String("66666"), empty_underlines, -7); + + EXPECT_EQ(3u, GetDocument().Markers().Markers().size()); + + EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset()); + EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset()); + + EXPECT_EQ(5u, GetDocument().Markers().Markers()[1]->StartOffset()); + EXPECT_EQ(15u, GetDocument().Markers().Markers()[1]->EndOffset()); + + EXPECT_EQ(15u, GetDocument().Markers().Markers()[2]->StartOffset()); + EXPECT_EQ(20u, GetDocument().Markers().Markers()[2]->EndOffset()); +} + +TEST_F(InputMethodControllerTest, Marker_InsertBetweenMarkers) { + Element* div = InsertHTMLElement( + "<div id='sample' contenteditable>1111122222333334444455555</div>", + "sample"); + + EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + marker_range = PlainTextRange(5, 15).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + marker_range = PlainTextRange(15, 20).CreateRange(*div); + GetDocument().Markers().AddMarker(marker_range.StartPosition(), + marker_range.EndPosition(), + DocumentMarker::kTextMatch); + + EXPECT_EQ(3u, GetDocument().Markers().Markers().size()); + + Vector<CompositionUnderline> empty_underlines; + Controller().SetComposition("", empty_underlines, 5, 5); + Controller().CommitText(String("77777"), empty_underlines, 0); + + EXPECT_EQ(3u, GetDocument().Markers().Markers().size()); + + EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset()); + EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset()); + + EXPECT_EQ(10u, GetDocument().Markers().Markers()[1]->StartOffset()); + EXPECT_EQ(20u, GetDocument().Markers().Markers()[1]->EndOffset()); + + EXPECT_EQ(20u, GetDocument().Markers().Markers()[2]->StartOffset()); + EXPECT_EQ(25u, GetDocument().Markers().Markers()[2]->EndOffset()); +} + } // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/commands/CompositeEditCommand.cpp b/third_party/WebKit/Source/core/editing/commands/CompositeEditCommand.cpp index 7571c5fa..f24d312 100644 --- a/third_party/WebKit/Source/core/editing/commands/CompositeEditCommand.cpp +++ b/third_party/WebKit/Source/core/editing/commands/CompositeEditCommand.cpp
@@ -25,6 +25,7 @@ #include "core/editing/commands/CompositeEditCommand.h" +#include <algorithm> #include "bindings/core/v8/ExceptionState.h" #include "core/HTMLNames.h" #include "core/dom/Document.h" @@ -52,6 +53,7 @@ #include "core/editing/commands/RemoveNodePreservingChildrenCommand.h" #include "core/editing/commands/ReplaceNodeWithSpanCommand.h" #include "core/editing/commands/ReplaceSelectionCommand.h" +#include "core/editing/commands/SetCharacterDataCommand.h" #include "core/editing/commands/SetNodeAttributeCommand.h" #include "core/editing/commands/SplitElementCommand.h" #include "core/editing/commands/SplitTextNodeCommand.h" @@ -73,7 +75,6 @@ #include "core/layout/LayoutListItem.h" #include "core/layout/LayoutText.h" #include "core/layout/line/InlineTextBox.h" -#include <algorithm> namespace blink { @@ -540,15 +541,10 @@ unsigned offset, unsigned count, const String& replacement_text) { - // DeleteFromTextNodeCommand and InsertIntoTextNodeCommand are never - // aborted. + // SetCharacterDataCommand is never aborted. ApplyCommandToComposite( - DeleteFromTextNodeCommand::Create(node, offset, count), + SetCharacterDataCommand::Create(node, offset, count, replacement_text), ASSERT_NO_EDITING_ABORT); - if (!replacement_text.IsEmpty()) - ApplyCommandToComposite( - InsertIntoTextNodeCommand::Create(node, offset, replacement_text), - ASSERT_NO_EDITING_ABORT); } Position CompositeEditCommand::ReplaceSelectedTextInNode(const String& text) { @@ -567,50 +563,6 @@ return Position(text_node, start.OffsetInContainerNode() + text.length()); } -static void CopyMarkerTypesAndDescriptions( - const DocumentMarkerVector& marker_pointers, - Vector<DocumentMarker::MarkerType>& types, - Vector<String>& descriptions) { - size_t array_size = marker_pointers.size(); - types.ReserveCapacity(array_size); - descriptions.ReserveCapacity(array_size); - for (const auto& marker_pointer : marker_pointers) { - types.push_back(marker_pointer->GetType()); - descriptions.push_back(marker_pointer->Description()); - } -} - -void CompositeEditCommand::ReplaceTextInNodePreservingMarkers( - Text* node, - unsigned offset, - unsigned count, - const String& replacement_text) { - DocumentMarkerController& marker_controller = GetDocument().Markers(); - Vector<DocumentMarker::MarkerType> types; - Vector<String> descriptions; - CopyMarkerTypesAndDescriptions( - marker_controller.MarkersInRange( - EphemeralRange(Position(node, offset), - Position(node, offset + count)), - DocumentMarker::AllMarkers()), - types, descriptions); - - ReplaceTextInNode(node, offset, count, replacement_text); - - // Re-adding markers requires a clean tree. - GetDocument().UpdateStyleAndLayout(); - - DocumentLifecycle::DisallowTransitionScope disallow_transition( - GetDocument().Lifecycle()); - Position start_position(node, offset); - Position end_position(node, offset + replacement_text.length()); - DCHECK_EQ(types.size(), descriptions.size()); - - for (size_t i = 0; i < types.size(); ++i) - marker_controller.AddMarker(start_position, end_position, types[i], - descriptions[i]); -} - Position CompositeEditCommand::PositionOutsideTabSpan(const Position& pos) { if (!IsTabHTMLSpanElementTextNode(pos.AnchorNode())) return pos; @@ -775,8 +727,7 @@ should_emit_nbs_pbefore_end); if (string != rebalanced_string) - ReplaceTextInNodePreservingMarkers(text_node, upstream, length, - rebalanced_string); + ReplaceTextInNode(text_node, upstream, length, rebalanced_string); } void CompositeEditCommand::PrepareWhitespaceAtPositionForSplit( @@ -818,9 +769,8 @@ Position pos = MostForwardCaretPosition(visible_position.DeepEquivalent()); if (!pos.ComputeContainerNode() || !pos.ComputeContainerNode()->IsTextNode()) return; - ReplaceTextInNodePreservingMarkers(ToText(pos.ComputeContainerNode()), - pos.OffsetInContainerNode(), 1, - NonBreakingSpaceString()); + ReplaceTextInNode(ToText(pos.ComputeContainerNode()), + pos.OffsetInContainerNode(), 1, NonBreakingSpaceString()); } void CompositeEditCommand::RebalanceWhitespace() {
diff --git a/third_party/WebKit/Source/core/editing/commands/CompositeEditCommand.h b/third_party/WebKit/Source/core/editing/commands/CompositeEditCommand.h index 412fe58..f8307c2 100644 --- a/third_party/WebKit/Source/core/editing/commands/CompositeEditCommand.h +++ b/third_party/WebKit/Source/core/editing/commands/CompositeEditCommand.h
@@ -157,10 +157,6 @@ unsigned count, const String& replacement_text); Position ReplaceSelectedTextInNode(const String&); - void ReplaceTextInNodePreservingMarkers(Text*, - unsigned offset, - unsigned count, - const String& replacement_text); Position PositionOutsideTabSpan(const Position&); void SetNodeAttribute(Element*, const QualifiedName& attribute,
diff --git a/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp b/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp index c3cec49..7a9c48e5 100644 --- a/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp +++ b/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp
@@ -760,9 +760,9 @@ DCHECK(!text_node->GetLayoutObject() || text_node->GetLayoutObject()->Style()->CollapseWhiteSpace()) << text_node; - ReplaceTextInNodePreservingMarkers( - text_node, leading_whitespace_.ComputeOffsetInContainerNode(), 1, - NonBreakingSpaceString()); + ReplaceTextInNode(text_node, + leading_whitespace_.ComputeOffsetInContainerNode(), 1, + NonBreakingSpaceString()); } if (trailing_whitespace_.IsNotNull() && !IsRenderedCharacter(trailing_whitespace_) && @@ -771,9 +771,9 @@ DCHECK(!text_node->GetLayoutObject() || text_node->GetLayoutObject()->Style()->CollapseWhiteSpace()) << text_node; - ReplaceTextInNodePreservingMarkers( - text_node, trailing_whitespace_.ComputeOffsetInContainerNode(), 1, - NonBreakingSpaceString()); + ReplaceTextInNode(text_node, + trailing_whitespace_.ComputeOffsetInContainerNode(), 1, + NonBreakingSpaceString()); } }
diff --git a/third_party/WebKit/Source/core/editing/commands/InsertParagraphSeparatorCommand.cpp b/third_party/WebKit/Source/core/editing/commands/InsertParagraphSeparatorCommand.cpp index b39fbc6..e2345c60 100644 --- a/third_party/WebKit/Source/core/editing/commands/InsertParagraphSeparatorCommand.cpp +++ b/third_party/WebKit/Source/core/editing/commands/InsertParagraphSeparatorCommand.cpp
@@ -471,9 +471,9 @@ DCHECK(!text_node->GetLayoutObject() || text_node->GetLayoutObject()->Style()->CollapseWhiteSpace()) << text_node; - ReplaceTextInNodePreservingMarkers( - text_node, leading_whitespace.ComputeOffsetInContainerNode(), 1, - NonBreakingSpaceString()); + ReplaceTextInNode(text_node, + leading_whitespace.ComputeOffsetInContainerNode(), 1, + NonBreakingSpaceString()); GetDocument().UpdateStyleAndLayoutIgnorePendingStylesheets(); }
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarker.cpp b/third_party/WebKit/Source/core/editing/markers/DocumentMarker.cpp index 05b050da4..a57a48e 100644 --- a/third_party/WebKit/Source/core/editing/markers/DocumentMarker.cpp +++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarker.cpp
@@ -175,6 +175,52 @@ end_offset_(marker.EndOffset()), details_(marker.Details()) {} +Optional<DocumentMarker::MarkerOffsets> +DocumentMarker::ComputeOffsetsAfterShift(unsigned offset, + unsigned old_length, + unsigned new_length) const { + MarkerOffsets result; + result.start_offset = StartOffset(); + result.end_offset = EndOffset(); + + // algorithm inspired by https://dom.spec.whatwg.org/#concept-cd-replace + // but with some changes + + // Deviation from the concept-cd-replace algorithm: second condition in the + // next line (don't include text inserted immediately before a marker in the + // marked range, but do include the new text if it's replacing text in the + // marked range) + if (StartOffset() > offset || (StartOffset() == offset && old_length == 0)) { + if (StartOffset() <= offset + old_length) { + // Marker start was in the replaced text. Move to end of new text + // (Deviation from the concept-cd-replace algorithm: that algorithm + // would move to the beginning of the new text here) + result.start_offset = offset + new_length; + } else { + // Marker start was after the replaced text. Shift by length + // difference + result.start_offset = StartOffset() + new_length - old_length; + } + } + + if (EndOffset() > offset) { + // Deviation from the concept-cd-replace algorithm: < instead of <= in + // the next line + if (EndOffset() < offset + old_length) { + // Marker end was in the replaced text. Move to beginning of new text + result.end_offset = offset; + } else { + // Marker end was after the replaced text. Shift by length difference + result.end_offset = EndOffset() + new_length - old_length; + } + } + + if (result.start_offset >= result.end_offset) + return WTF::kNullopt; + + return result; +} + void DocumentMarker::ShiftOffsets(int delta) { start_offset_ += delta; end_offset_ += delta;
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarker.h b/third_party/WebKit/Source/core/editing/markers/DocumentMarker.h index e1c9096c..9d22eb7 100644 --- a/third_party/WebKit/Source/core/editing/markers/DocumentMarker.h +++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarker.h
@@ -26,6 +26,7 @@ #include "core/CoreExport.h" #include "platform/graphics/Color.h" #include "platform/heap/Handle.h" +#include "wtf/Optional.h" #include "wtf/VectorTraits.h" #include "wtf/text/WTFString.h" @@ -164,6 +165,15 @@ void SetIsActiveMatch(bool); void ClearDetails() { details_.Clear(); } + struct MarkerOffsets { + unsigned start_offset; + unsigned end_offset; + }; + + Optional<MarkerOffsets> ComputeOffsetsAfterShift(unsigned offset, + unsigned old_length, + unsigned new_length) const; + // Offset modifications are done by DocumentMarkerController. // Other classes should not call following setters. void SetStartOffset(unsigned offset) { start_offset_ = offset; }
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp index c68602d..43fb66f 100644 --- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp +++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
@@ -179,11 +179,6 @@ return lhv->StartOffset() < rhv->StartOffset(); } -static bool StartsAfter(const Member<RenderedDocumentMarker>& marker, - size_t start_offset) { - return marker->StartOffset() < start_offset; -} - static bool EndsBefore(size_t start_offset, const Member<RenderedDocumentMarker>& rhv) { return start_offset < rhv->EndOffset(); @@ -303,10 +298,7 @@ return; bool doc_dirty = false; - for (size_t marker_list_index = 0; - marker_list_index < DocumentMarker::kMarkerTypeIndexesCount; - ++marker_list_index) { - Member<MarkerList>& list = (*markers)[marker_list_index]; + for (Member<MarkerList> list : *markers) { if (!list) continue; @@ -730,47 +722,6 @@ } } -void DocumentMarkerController::ShiftMarkers(Node* node, - unsigned start_offset, - int delta) { - if (!PossiblyHasMarkers(DocumentMarker::AllMarkers())) - return; - DCHECK(!markers_.IsEmpty()); - - MarkerLists* markers = markers_.at(node); - if (!markers) - return; - - bool did_shift_marker = false; - for (size_t marker_list_index = 0; - marker_list_index < DocumentMarker::kMarkerTypeIndexesCount; - ++marker_list_index) { - Member<MarkerList>& list = (*markers)[marker_list_index]; - if (!list) - continue; - MarkerList::iterator start_pos = - std::lower_bound(list->begin(), list->end(), start_offset, StartsAfter); - for (MarkerList::iterator marker = start_pos; marker != list->end(); - ++marker) { -#if DCHECK_IS_ON() - int start_offset = (*marker)->StartOffset(); - DCHECK_GE(start_offset + delta, 0); -#endif - (*marker)->ShiftOffsets(delta); - did_shift_marker = true; - } - } - - if (did_shift_marker) { - InvalidateRectsForMarkersInNode(*node); - // repaint the affected node - if (node->GetLayoutObject()) { - node->GetLayoutObject()->SetShouldDoFullPaintInvalidation( - kPaintInvalidationDocumentMarkerChange); - } - } -} - bool DocumentMarkerController::SetMarkersActive(const EphemeralRange& range, bool active) { if (!PossiblyHasMarkers(DocumentMarker::AllMarkers())) @@ -870,10 +821,46 @@ unsigned offset, unsigned old_length, unsigned new_length) { - // Shift markers as if we first remove the old text, then insert the new text - RemoveMarkers(node, offset, old_length); - ShiftMarkers(node, offset + old_length, 0 - old_length); - ShiftMarkers(node, offset, new_length); + if (!PossiblyHasMarkers(DocumentMarker::AllMarkers())) + return; + DCHECK(!markers_.IsEmpty()); + + MarkerLists* markers = markers_.at(node); + if (!markers) + return; + + bool did_shift_marker = false; + for (MarkerList* list : *markers) { + if (!list) + continue; + + for (MarkerList::iterator it = list->begin(); it != list->end(); ++it) { + RenderedDocumentMarker& marker = **it; + Optional<DocumentMarker::MarkerOffsets> result = + marker.ComputeOffsetsAfterShift(offset, old_length, new_length); + if (result == WTF::kNullopt) { + list->erase(it - list->begin()); + --it; + did_shift_marker = true; + continue; + } + + if (marker.StartOffset() != result.value().start_offset || + marker.EndOffset() != result.value().end_offset) { + did_shift_marker = true; + marker.SetStartOffset(result.value().start_offset); + marker.SetEndOffset(result.value().end_offset); + } + } + } + + if (!did_shift_marker) + return; + if (!node->GetLayoutObject()) + return; + InvalidateRectsForMarkersInNode(*node); + // repaint the affected node + node->GetLayoutObject()->SetShouldDoFullPaintInvalidation(); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h index 33aca40..398d7432 100644 --- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h +++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h
@@ -30,6 +30,7 @@ #define DocumentMarkerController_h #include "core/CoreExport.h" +#include "core/dom/SynchronousMutationObserver.h" #include "core/editing/iterators/TextIterator.h" #include "core/editing/markers/DocumentMarker.h" #include "platform/geometry/IntRect.h" @@ -103,7 +104,6 @@ void RemoveMarkers(const MarkerRemoverPredicate& should_remove_marker); void RepaintMarkers( DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); - void ShiftMarkers(Node*, unsigned start_offset, int delta); // Returns true if markers within a range are found. bool SetMarkersActive(const EphemeralRange&, bool); // Returns true if markers within a range defined by a node, |startOffset| and
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp index 6d3f23b..c9684a6 100644 --- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp +++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp
@@ -8,7 +8,15 @@ namespace blink { -class DocumentMarkerTest : public ::testing::Test {}; +using MarkerOffsets = DocumentMarker::MarkerOffsets; + +class DocumentMarkerTest : public ::testing::Test { + protected: + DocumentMarker* CreateMarker(unsigned startOffset, unsigned endOffset) { + return new DocumentMarker(startOffset, endOffset, + DocumentMarker::MatchStatus::kInactive); + } +}; TEST_F(DocumentMarkerTest, MarkerTypeIteratorEmpty) { DocumentMarker::MarkerTypes types(0); @@ -45,4 +53,166 @@ ++it; EXPECT_TRUE(it == types.end()); } + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteAfter) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 0); + EXPECT_EQ(0u, result.value().start_offset); + EXPECT_EQ(5u, result.value().end_offset); } + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteEndAndAfter) { + DocumentMarker* marker = CreateMarker(10, 15); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 0); + EXPECT_EQ(10u, result.value().start_offset); + EXPECT_EQ(13u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndAfter) { + DocumentMarker* marker = CreateMarker(20, 25); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 0); + EXPECT_EQ(WTF::kNullopt, result); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndBeginning) { + DocumentMarker* marker = CreateMarker(30, 35); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 0); + EXPECT_EQ(13u, result.value().start_offset); + EXPECT_EQ(16u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBefore) { + DocumentMarker* marker = CreateMarker(40, 45); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 0); + EXPECT_EQ(21u, result.value().start_offset); + EXPECT_EQ(26u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteStartAndAfter) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(0, 10, 0); + EXPECT_EQ(WTF::kNullopt, result); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndEnd) { + DocumentMarker* marker = CreateMarker(5, 10); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(0, 10, 0); + EXPECT_EQ(WTF::kNullopt, result); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteMarkerExactly) { + DocumentMarker* marker = CreateMarker(5, 10); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(5, 5, 0); + EXPECT_EQ(WTF::kNullopt, result); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteMiddleOfMarker) { + DocumentMarker* marker = CreateMarker(5, 10); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(6, 3, 0); + EXPECT_EQ(5u, result.value().start_offset); + EXPECT_EQ(7u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertAfter) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(10, 0, 5); + EXPECT_EQ(0u, result.value().start_offset); + EXPECT_EQ(5u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertImmediatelyAfter) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(5, 0, 5); + EXPECT_EQ(0u, result.value().start_offset); + EXPECT_EQ(5u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertInMiddle) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(2, 0, 5); + EXPECT_EQ(0u, result.value().start_offset); + EXPECT_EQ(10u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertImmediatelyBefore) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(0, 0, 5); + EXPECT_EQ(5u, result.value().start_offset); + EXPECT_EQ(10u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertBefore) { + DocumentMarker* marker = CreateMarker(5, 10); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(0, 0, 5); + EXPECT_EQ(10u, result.value().start_offset); + EXPECT_EQ(15u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceAfter) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 1); + EXPECT_EQ(0u, result.value().start_offset); + EXPECT_EQ(5u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceEndAndAfter) { + DocumentMarker* marker = CreateMarker(10, 15); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 1); + EXPECT_EQ(10u, result.value().start_offset); + EXPECT_EQ(13u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndAfter) { + DocumentMarker* marker = CreateMarker(20, 25); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 1); + EXPECT_EQ(WTF::kNullopt, result); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndBeginning) { + DocumentMarker* marker = CreateMarker(30, 35); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 1); + EXPECT_EQ(14u, result.value().start_offset); + EXPECT_EQ(17u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBefore) { + DocumentMarker* marker = CreateMarker(40, 45); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(13, 19, 1); + EXPECT_EQ(22u, result.value().start_offset); + EXPECT_EQ(27u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeginning) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(0, 2, 1); + EXPECT_EQ(0u, result.value().start_offset); + EXPECT_EQ(4u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceEnd) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(3, 2, 1); + EXPECT_EQ(0u, result.value().start_offset); + EXPECT_EQ(4u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceExactly) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(0, 5, 1); + EXPECT_EQ(0u, result.value().start_offset); + EXPECT_EQ(1u, result.value().end_offset); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeginningAndAfter) { + DocumentMarker* marker = CreateMarker(0, 5); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(0, 6, 1); + EXPECT_EQ(WTF::kNullopt, result); +} + +TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndEnd) { + DocumentMarker* marker = CreateMarker(5, 10); + Optional<MarkerOffsets> result = marker->ComputeOffsetsAfterShift(4, 6, 1); + EXPECT_EQ(WTF::kNullopt, result); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.cpp b/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.cpp index ff5604a..3ee85d8 100644 --- a/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.cpp +++ b/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.cpp
@@ -123,14 +123,14 @@ MarkupFormatter::MarkupFormatter(EAbsoluteURLs resolve_urls_method, SerializationType serialization_type) - : resolve_ur_ls_method_(resolve_urls_method), + : resolve_urls_method_(resolve_urls_method), serialization_type_(serialization_type) {} MarkupFormatter::~MarkupFormatter() {} String MarkupFormatter::ResolveURLIfNeeded(const Element& element, const String& url_string) const { - switch (resolve_ur_ls_method_) { + switch (resolve_urls_method_) { case kResolveAllURLs: return element.GetDocument().CompleteURL(url_string).GetString();
diff --git a/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.h b/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.h index 70a3bd60..830d997 100644 --- a/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.h +++ b/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.h
@@ -119,7 +119,7 @@ const Element&, const Attribute&); - const EAbsoluteURLs resolve_ur_ls_method_; + const EAbsoluteURLs resolve_urls_method_; SerializationType serialization_type_; };
diff --git a/third_party/WebKit/Source/core/editing/serializers/Serialization.cpp b/third_party/WebKit/Source/core/editing/serializers/Serialization.cpp index 59e24e3..0a763174 100644 --- a/third_party/WebKit/Source/core/editing/serializers/Serialization.cpp +++ b/third_party/WebKit/Source/core/editing/serializers/Serialization.cpp
@@ -245,7 +245,7 @@ const PositionTemplate<Strategy>& end_position, EAnnotateForInterchange should_annotate = kDoNotAnnotateForInterchange, ConvertBlocksToInlines = ConvertBlocksToInlines::kNotConvert, - EAbsoluteURLs should_resolve_ur_ls = kDoNotResolveURLs, + EAbsoluteURLs should_resolve_urls = kDoNotResolveURLs, Node* constraining_ancestor = nullptr); }; @@ -259,7 +259,7 @@ const PositionTemplate<Strategy>& end_position, EAnnotateForInterchange should_annotate, ConvertBlocksToInlines convert_blocks_to_inlines, - EAbsoluteURLs should_resolve_ur_ls, + EAbsoluteURLs should_resolve_urls, Node* constraining_ancestor) { if (start_position.IsNull() || end_position.IsNull()) return g_empty_string; @@ -284,7 +284,7 @@ HTMLElement* special_common_ancestor = HighestAncestorToWrapMarkup<Strategy>( start_position, end_position, should_annotate, constraining_ancestor); StyledMarkupSerializer<Strategy> serializer( - should_resolve_ur_ls, should_annotate, start_position, end_position, + should_resolve_urls, should_annotate, start_position, end_position, special_common_ancestor, convert_blocks_to_inlines); return serializer.CreateMarkup(); } @@ -293,22 +293,22 @@ const Position& end_position, EAnnotateForInterchange should_annotate, ConvertBlocksToInlines convert_blocks_to_inlines, - EAbsoluteURLs should_resolve_ur_ls, + EAbsoluteURLs should_resolve_urls, Node* constraining_ancestor) { return CreateMarkupAlgorithm<EditingStrategy>::CreateMarkup( start_position, end_position, should_annotate, convert_blocks_to_inlines, - should_resolve_ur_ls, constraining_ancestor); + should_resolve_urls, constraining_ancestor); } String CreateMarkup(const PositionInFlatTree& start_position, const PositionInFlatTree& end_position, EAnnotateForInterchange should_annotate, ConvertBlocksToInlines convert_blocks_to_inlines, - EAbsoluteURLs should_resolve_ur_ls, + EAbsoluteURLs should_resolve_urls, Node* constraining_ancestor) { return CreateMarkupAlgorithm<EditingInFlatTreeStrategy>::CreateMarkup( start_position, end_position, should_annotate, convert_blocks_to_inlines, - should_resolve_ur_ls, constraining_ancestor); + should_resolve_urls, constraining_ancestor); } DocumentFragment* CreateFragmentFromMarkup( @@ -434,11 +434,11 @@ String CreateMarkup(const Node* node, EChildrenOnly children_only, - EAbsoluteURLs should_resolve_ur_ls) { + EAbsoluteURLs should_resolve_urls) { if (!node) return ""; - MarkupAccumulator accumulator(should_resolve_ur_ls); + MarkupAccumulator accumulator(should_resolve_urls); return SerializeNodes<EditingStrategy>(accumulator, const_cast<Node&>(*node), children_only); }
diff --git a/third_party/WebKit/Source/core/editing/serializers/StyledMarkupAccumulator.cpp b/third_party/WebKit/Source/core/editing/serializers/StyledMarkupAccumulator.cpp index 92c41d8..77199fe 100644 --- a/third_party/WebKit/Source/core/editing/serializers/StyledMarkupAccumulator.cpp +++ b/third_party/WebKit/Source/core/editing/serializers/StyledMarkupAccumulator.cpp
@@ -51,13 +51,13 @@ using namespace HTMLNames; StyledMarkupAccumulator::StyledMarkupAccumulator( - EAbsoluteURLs should_resolve_ur_ls, + EAbsoluteURLs should_resolve_urls, const TextOffset& start, const TextOffset& end, Document* document, EAnnotateForInterchange should_annotate, ConvertBlocksToInlines convert_blocks_to_inlines) - : formatter_(should_resolve_ur_ls), + : formatter_(should_resolve_urls), start_(start), end_(end), document_(document),
diff --git a/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.cpp b/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.cpp index 9bbd54d9..adbadf3 100644 --- a/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.cpp +++ b/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.cpp
@@ -121,7 +121,7 @@ template <typename Strategy> StyledMarkupSerializer<Strategy>::StyledMarkupSerializer( - EAbsoluteURLs should_resolve_ur_ls, + EAbsoluteURLs should_resolve_urls, EAnnotateForInterchange should_annotate, const PositionTemplate<Strategy>& start, const PositionTemplate<Strategy>& end, @@ -129,7 +129,7 @@ ConvertBlocksToInlines convert_blocks_to_inlines) : start_(start), end_(end), - should_resolve_ur_ls_(should_resolve_ur_ls), + should_resolve_urls_(should_resolve_urls), should_annotate_(should_annotate), highest_node_to_be_serialized_(highest_node_to_be_serialized), convert_blocks_to_inlines_(convert_blocks_to_inlines), @@ -180,7 +180,7 @@ template <typename Strategy> String StyledMarkupSerializer<Strategy>::CreateMarkup() { StyledMarkupAccumulator markup_accumulator( - should_resolve_ur_ls_, ToTextOffset(start_.ParentAnchoredEquivalent()), + should_resolve_urls_, ToTextOffset(start_.ParentAnchoredEquivalent()), ToTextOffset(end_.ParentAnchoredEquivalent()), start_.GetDocument(), should_annotate_, convert_blocks_to_inlines_);
diff --git a/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.h b/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.h index bd00f5b..7cda283 100644 --- a/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.h +++ b/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.h
@@ -60,7 +60,7 @@ const PositionTemplate<Strategy> start_; const PositionTemplate<Strategy> end_; - const EAbsoluteURLs should_resolve_ur_ls_; + const EAbsoluteURLs should_resolve_urls_; const EAnnotateForInterchange should_annotate_; const Member<Node> highest_node_to_be_serialized_; const ConvertBlocksToInlines convert_blocks_to_inlines_;
diff --git a/third_party/WebKit/Source/core/frame/FrameSerializer.cpp b/third_party/WebKit/Source/core/frame/FrameSerializer.cpp index 6ec5d00e..5596684 100644 --- a/third_party/WebKit/Source/core/frame/FrameSerializer.cpp +++ b/third_party/WebKit/Source/core/frame/FrameSerializer.cpp
@@ -350,7 +350,7 @@ bool is_inline_css = !url.IsValid() || url.ProtocolIsData(); // If this CSS is not inline then it is identifiable by its URL. So just skip // it if it has already been analyzed before. - if (!is_inline_css && (resource_ur_ls_.Contains(url) || + if (!is_inline_css && (resource_urls_.Contains(url) || delegate_.ShouldSkipResourceWithURL(url))) { return; } @@ -390,7 +390,7 @@ resources_->push_back( SerializedResource(url, String("text/css"), SharedBuffer::Create(text.Data(), text.length()))); - resource_ur_ls_.insert(url); + resource_urls_.insert(url); } // Sub resources need to be serialized even if the CSS definition doesn't @@ -455,7 +455,7 @@ } bool FrameSerializer::ShouldAddURL(const KURL& url) { - return url.IsValid() && !resource_ur_ls_.Contains(url) && + return url.IsValid() && !resource_urls_.Contains(url) && !url.ProtocolIsData() && !delegate_.ShouldSkipResourceWithURL(url); } @@ -473,7 +473,7 @@ } resources_->push_back(SerializedResource(url, mime_type, std::move(data))); - resource_ur_ls_.insert(url); + resource_urls_.insert(url); } void FrameSerializer::AddImageToResources(ImageResourceContent* image,
diff --git a/third_party/WebKit/Source/core/frame/FrameSerializer.h b/third_party/WebKit/Source/core/frame/FrameSerializer.h index fff62e2..2a42ccd 100644 --- a/third_party/WebKit/Source/core/frame/FrameSerializer.h +++ b/third_party/WebKit/Source/core/frame/FrameSerializer.h
@@ -144,7 +144,7 @@ void RetrieveResourcesForCSSValue(const CSSValue&, Document&); Deque<SerializedResource>* resources_; - HashSet<KURL> resource_ur_ls_; + HashSet<KURL> resource_urls_; bool is_serializing_css_;
diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp index 3a1de81..b2648221 100644 --- a/third_party/WebKit/Source/core/frame/FrameView.cpp +++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
@@ -1444,7 +1444,7 @@ // be the viewport with browser controls showing, we add the browser // controls height, compensating for page scale as well, since we want to // use the viewport with browser controls hidden for vh (to match Safari). - int viewport_width = frame_->GetPage()->GetVisualViewport().size().Width(); + int viewport_width = frame_->GetPage()->GetVisualViewport().Size().Width(); if (frame_->IsMainFrame() && layout_size.Width() && viewport_width) { float page_scale_at_layout_width = viewport_width / layout_size.Width(); layout_size.Expand(
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmap.cpp b/third_party/WebKit/Source/core/frame/ImageBitmap.cpp index 4e9c4a56..9c5526e 100644 --- a/third_party/WebKit/Source/core/frame/ImageBitmap.cpp +++ b/third_party/WebKit/Source/core/frame/ImageBitmap.cpp
@@ -689,7 +689,7 @@ SourceImageStatus status; RefPtr<Image> input = offscreen_canvas->GetSourceImageForCanvas( &status, kPreferNoAcceleration, kSnapshotReasonCreateImageBitmap, - FloatSize(offscreen_canvas->size())); + FloatSize(offscreen_canvas->Size())); if (status != kNormalSourceImageStatus) return; ParsedOptions parsed_options = ParseOptions( @@ -780,7 +780,7 @@ Optional<IntRect> crop_rect, const ImageBitmapOptions& options) { // TODO(xidachen): implement the resize option - IntRect data_src_rect = IntRect(IntPoint(), data->size()); + IntRect data_src_rect = IntRect(IntPoint(), data->Size()); ParsedOptions parsed_options = ParseOptions(options, crop_rect, data->BitmapSourceSize()); if (DstBufferSizeHasOverflow(parsed_options)) @@ -798,17 +798,17 @@ parsed_options.crop_rect.Width(), parsed_options.crop_rect.Height(), kN32_SkColorType, kUnpremul_SkAlphaType, data->GetSkColorSpace()); unsigned bytes_per_pixel = static_cast<unsigned>(info.bytesPerPixel()); - unsigned src_pixel_bytes_per_row = bytes_per_pixel * data->size().Width(); + unsigned src_pixel_bytes_per_row = bytes_per_pixel * data->Size().Width(); unsigned dst_pixel_bytes_per_row = bytes_per_pixel * parsed_options.crop_rect.Width(); sk_sp<SkImage> sk_image; - if (parsed_options.crop_rect == IntRect(IntPoint(), data->size())) { - SwizzleImageData(src_addr, data->size().Height(), src_pixel_bytes_per_row, + if (parsed_options.crop_rect == IntRect(IntPoint(), data->Size())) { + SwizzleImageData(src_addr, data->Size().Height(), src_pixel_bytes_per_row, parsed_options.flip_y); sk_image = SkImage::MakeRasterCopy( SkPixmap(info, src_addr, dst_pixel_bytes_per_row)); // restore the original ImageData - SwizzleImageData(src_addr, data->size().Height(), src_pixel_bytes_per_row, + SwizzleImageData(src_addr, data->Size().Height(), src_pixel_bytes_per_row, parsed_options.flip_y); } else { RefPtr<ArrayBuffer> dst_buffer = ArrayBuffer::CreateOrNull( @@ -831,10 +831,10 @@ (parsed_options.crop_rect.Y() >= 0) ? 0 : -parsed_options.crop_rect.Y()); - int copy_height = data->size().Height() - src_point.Y(); + int copy_height = data->Size().Height() - src_point.Y(); if (parsed_options.crop_rect.Height() < copy_height) copy_height = parsed_options.crop_rect.Height(); - int copy_width = data->size().Width() - src_point.X(); + int copy_width = data->Size().Width() - src_point.X(); if (parsed_options.crop_rect.Width() < copy_width) copy_width = parsed_options.crop_rect.Width(); for (int i = 0; i < copy_height; i++) { @@ -915,7 +915,7 @@ if (parsed_options.crop_rect.Y() < 0) dst_point.SetY(-parsed_options.crop_rect.Y()); - buffer->PutByteArray(kUnmultiplied, data->data()->Data(), data->size(), + buffer->PutByteArray(kUnmultiplied, data->data()->Data(), data->Size(), src_rect, dst_point); sk_sp<SkImage> sk_image = buffer->NewSkImageSnapshot(kPreferNoAcceleration, kSnapshotReasonUnknown); @@ -950,7 +950,7 @@ if (!input) return; ParsedOptions parsed_options = - ParseOptions(options, crop_rect, input->size()); + ParseOptions(options, crop_rect, input->Size()); if (DstBufferSizeHasOverflow(parsed_options)) return; @@ -969,7 +969,7 @@ const ImageBitmapOptions& options) { bool origin_clean = image->OriginClean(); ParsedOptions parsed_options = - ParseOptions(options, crop_rect, image->size()); + ParseOptions(options, crop_rect, image->Size()); if (DstBufferSizeHasOverflow(parsed_options)) return; @@ -1096,7 +1096,7 @@ return image_ && (image_->IsTextureBacked() || image_->HasMailbox()); } -IntSize ImageBitmap::size() const { +IntSize ImageBitmap::Size() const { if (!image_) return IntSize(); ASSERT(image_->width() > 0 && image_->height() > 0);
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmap.h b/third_party/WebKit/Source/core/frame/ImageBitmap.h index b2c6f5b..8f98e52 100644 --- a/third_party/WebKit/Source/core/frame/ImageBitmap.h +++ b/third_party/WebKit/Source/core/frame/ImageBitmap.h
@@ -102,7 +102,7 @@ DataColorFormat = kRGBAColorType); unsigned long width() const; unsigned long height() const; - IntSize size() const; + IntSize Size() const; bool IsNeutered() const { return is_neutered_; } bool OriginClean() const { return image_->OriginClean(); } @@ -128,7 +128,7 @@ bool IsAccelerated() const override; // ImageBitmapSource implementation - IntSize BitmapSourceSize() const override { return size(); } + IntSize BitmapSourceSize() const override { return Size(); } ScriptPromise CreateImageBitmap(ScriptState*, EventTarget&, Optional<IntRect>,
diff --git a/third_party/WebKit/Source/core/frame/LocalFrameTest.cpp b/third_party/WebKit/Source/core/frame/LocalFrameTest.cpp index 660f3a95..a52d084 100644 --- a/third_party/WebKit/Source/core/frame/LocalFrameTest.cpp +++ b/third_party/WebKit/Source/core/frame/LocalFrameTest.cpp
@@ -53,7 +53,7 @@ "<div id=sample></div>"); Element* sample = GetDocument().GetElementById("sample"); const std::unique_ptr<DragImage> image = GetFrame().NodeImage(*sample); - EXPECT_EQ(IntSize(100, 100), image->size()); + EXPECT_EQ(IntSize(100, 100), image->Size()); } TEST_F(LocalFrameTest, nodeImageWithNestedElement) { @@ -80,7 +80,7 @@ "<div id=sample></div>"); Element* sample = GetDocument().GetElementById("sample"); const std::unique_ptr<DragImage> image = GetFrame().NodeImage(*sample); - EXPECT_EQ(IntSize(200, 200), image->size()) + EXPECT_EQ(IntSize(200, 200), image->Size()) << ":-webkit-drag should affect dragged image."; } @@ -137,10 +137,10 @@ const std::unique_ptr<DragImage> image2( GetFrame().DragImageForSelection(0.75f)); - EXPECT_GT(image1->size().Width(), 0); - EXPECT_GT(image1->size().Height(), 0); - EXPECT_EQ(image1->size().Width() * 2, image2->size().Width()); - EXPECT_EQ(image1->size().Height() * 2, image2->size().Height()); + EXPECT_GT(image1->Size().Width(), 0); + EXPECT_GT(image1->Size().Height(), 0); + EXPECT_EQ(image1->Size().Width() * 2, image2->Size().Width()); + EXPECT_EQ(image1->Size().Height() * 2, image2->Size().Height()); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/VisualViewport.h b/third_party/WebKit/Source/core/frame/VisualViewport.h index fa3c0645..83e26b43 100644 --- a/third_party/WebKit/Source/core/frame/VisualViewport.h +++ b/third_party/WebKit/Source/core/frame/VisualViewport.h
@@ -116,7 +116,7 @@ // Sets the size of the inner viewport when unscaled in CSS pixels. void SetSize(const IntSize&); - IntSize size() const { return size_; } + IntSize Size() const { return size_; } // Gets the scaled size, i.e. the viewport in root view space. FloatSize VisibleSize() const;
diff --git a/third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp b/third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp index 1abf5d0..b9c7b1b5 100644 --- a/third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp
@@ -307,10 +307,10 @@ UseCounter::Count(GetDocument(), UseCounter::kHTMLAnchorElementPingAttribute); - SpaceSplitString ping_ur_ls(ping_value, SpaceSplitString::kShouldNotFoldCase); - for (unsigned i = 0; i < ping_ur_ls.size(); i++) + SpaceSplitString ping_urls(ping_value, SpaceSplitString::kShouldNotFoldCase); + for (unsigned i = 0; i < ping_urls.size(); i++) PingLoader::SendLinkAuditPing(GetDocument().GetFrame(), - GetDocument().CompleteURL(ping_ur_ls[i]), + GetDocument().CompleteURL(ping_urls[i]), destination_url); }
diff --git a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp index a44859dd..105b9f0 100644 --- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp
@@ -728,7 +728,7 @@ if (!image_data) // allocation failure return String("data:,"); - return ImageDataBuffer(image_data->size(), image_data->data()->Data()) + return ImageDataBuffer(image_data->Size(), image_data->data()->Data()) .ToDataURL(encoding_mime_type, quality); } @@ -792,7 +792,7 @@ } CanvasAsyncBlobCreator* async_creator = CanvasAsyncBlobCreator::Create( - image_data->data(), encoding_mime_type, image_data->size(), callback, + image_data->data(), encoding_mime_type, image_data->Size(), callback, start_time, &GetDocument()); async_creator->ScheduleAsyncBlobCreation(quality); @@ -1338,7 +1338,7 @@ return FloatSize(0, 0); } if (PlaceholderFrame()) - return FloatSize(PlaceholderFrame()->size()); + return FloatSize(PlaceholderFrame()->Size()); return FloatSize(width(), height()); }
diff --git a/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp b/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp index 3bf2a9d..2e741f235 100644 --- a/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp
@@ -310,13 +310,16 @@ bool HTMLVideoElement::CopyVideoTextureToPlatformTexture( gpu::gles2::GLES2Interface* gl, GLuint texture, + GLenum internal_format, + GLenum format, + GLenum type, bool premultiply_alpha, bool flip_y) { if (!GetWebMediaPlayer()) return false; return GetWebMediaPlayer()->CopyVideoTextureToPlatformTexture( - gl, texture, premultiply_alpha, flip_y); + gl, texture, internal_format, format, type, premultiply_alpha, flip_y); } bool HTMLVideoElement::TexImageImpl(
diff --git a/third_party/WebKit/Source/core/html/HTMLVideoElement.h b/third_party/WebKit/Source/core/html/HTMLVideoElement.h index bc7e7fa..6f14c678 100644 --- a/third_party/WebKit/Source/core/html/HTMLVideoElement.h +++ b/third_party/WebKit/Source/core/html/HTMLVideoElement.h
@@ -75,9 +75,11 @@ void PaintCurrentFrame(PaintCanvas*, const IntRect&, const PaintFlags*) const; // Used by WebGL to do GPU-GPU textures copy if possible. - // The caller is responsible for allocating the destination texture. bool CopyVideoTextureToPlatformTexture(gpu::gles2::GLES2Interface*, GLuint texture, + GLenum internal_format, + GLenum format, + GLenum type, bool premultiply_alpha, bool flip_y);
diff --git a/third_party/WebKit/Source/core/html/ImageData.h b/third_party/WebKit/Source/core/html/ImageData.h index 75c1073..b4d4f75 100644 --- a/third_party/WebKit/Source/core/html/ImageData.h +++ b/third_party/WebKit/Source/core/html/ImageData.h
@@ -121,7 +121,7 @@ CanvasPixelFormat, ImageDataStorageFormat); - IntSize size() const { return size_; } + IntSize Size() const { return size_; } int width() const { return size_.Width(); } int height() const { return size_.Height(); }
diff --git a/third_party/WebKit/Source/core/html/ImageDocument.cpp b/third_party/WebKit/Source/core/html/ImageDocument.cpp index b7133f8..742b68e 100644 --- a/third_party/WebKit/Source/core/html/ImageDocument.cpp +++ b/third_party/WebKit/Source/core/html/ImageDocument.cpp
@@ -403,7 +403,7 @@ // The checker pattern is initialized based on how large the image is // relative to the viewport. int viewport_width = - GetFrame()->GetPage()->GetVisualViewport().size().Width(); + GetFrame()->GetPage()->GetVisualViewport().Size().Width(); scale = viewport_width / static_cast<double>(CalculateDivWidth()); } @@ -517,7 +517,7 @@ // * Images smaller in either dimension are centered along that axis. LayoutSize image_size = CachedImageSize(image_element_); int viewport_width = - GetFrame()->GetPage()->GetVisualViewport().size().Width(); + GetFrame()->GetPage()->GetVisualViewport().Size().Width(); // For huge images, minimum-scale=0.1 is still too big on small screens. // Set the <div> width so that the image will shrink to fit the width of the @@ -541,7 +541,7 @@ // can display the full image without shrinking it, allowing a full-width // reading mode for normal-width-huge-height images. float viewport_aspect_ratio = - GetFrame()->GetPage()->GetVisualViewport().size().AspectRatio(); + GetFrame()->GetPage()->GetVisualViewport().Size().AspectRatio(); int div_height = std::max(image_size.Height().ToInt(), static_cast<int>(div_width / viewport_aspect_ratio));
diff --git a/third_party/WebKit/Source/core/html/PublicURLManager.cpp b/third_party/WebKit/Source/core/html/PublicURLManager.cpp index b1bd27b..211f833 100644 --- a/third_party/WebKit/Source/core/html/PublicURLManager.cpp +++ b/third_party/WebKit/Source/core/html/PublicURLManager.cpp
@@ -77,8 +77,8 @@ Vector<String> urls_to_remove; for (auto& registry_url : registry_to_url_) { URLRegistry* registry = registry_url.key; - URLMap& registered_ur_ls = registry_url.value; - for (auto& registered_url : registered_ur_ls) { + URLMap& registered_urls = registry_url.value; + for (auto& registered_url : registered_urls) { if (uuid == registered_url.value) { KURL url(kParsedURLString, registered_url.key); GetExecutionContext()->RemoveURLFromMemoryCache(url); @@ -87,7 +87,7 @@ } } for (const auto& url : urls_to_remove) - registered_ur_ls.erase(url); + registered_urls.erase(url); urls_to_remove.Clear(); } }
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp index cd01183f..1152fb1 100644 --- a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp +++ b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp
@@ -225,9 +225,9 @@ if (has_url) { if (source_url.ProtocolIsData() || - clean_ur_ls_.Contains(source_url.GetString())) + clean_urls_.Contains(source_url.GetString())) return false; - if (dirty_ur_ls_.Contains(source_url.GetString())) + if (dirty_urls_.Contains(source_url.GetString())) return true; } @@ -239,9 +239,9 @@ if (has_url) { if (taint_origin) - dirty_ur_ls_.insert(source_url.GetString()); + dirty_urls_.insert(source_url.GetString()); else - clean_ur_ls_.insert(source_url.GetString()); + clean_urls_.insert(source_url.GetString()); } return taint_origin; }
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h index 3802a6b..c182daf 100644 --- a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h +++ b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h
@@ -230,8 +230,8 @@ Member<HTMLCanvasElement> canvas_; Member<OffscreenCanvas> offscreen_canvas_; - HashSet<String> clean_ur_ls_; - HashSet<String> dirty_ur_ls_; + HashSet<String> clean_urls_; + HashSet<String> dirty_urls_; CanvasColorSpace color_space_; CanvasPixelFormat pixel_format_; bool linear_pixel_math_ = false;
diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp index 2ef84cb3..7e196a2 100644 --- a/third_party/WebKit/Source/core/input/EventHandler.cpp +++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
@@ -432,7 +432,7 @@ // Get hotspot and convert from logical pixels to physical pixels. IntPoint hot_spot = (*cursors)[i].HotSpot(); hot_spot.Scale(scale, scale); - IntSize size = cached_image->GetImage()->size(); + IntSize size = cached_image->GetImage()->Size(); if (cached_image->ErrorOccurred()) continue; // Limit the size of cursors (in UI pixels) so that they cannot be
diff --git a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp index 577836f..2ba10f7 100644 --- a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp +++ b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp
@@ -558,14 +558,14 @@ void InspectorNetworkAgent::ShouldBlockRequest(const ResourceRequest& request, bool* result) { - protocol::DictionaryValue* blocked_ur_ls = + protocol::DictionaryValue* blocked_urls = state_->getObject(NetworkAgentState::kBlockedURLs); - if (!blocked_ur_ls) + if (!blocked_urls) return; String url = request.Url().GetString(); - for (size_t i = 0; i < blocked_ur_ls->size(); ++i) { - auto entry = blocked_ur_ls->at(i); + for (size_t i = 0; i < blocked_urls->size(); ++i) { + auto entry = blocked_urls->at(i); if (Matches(url, entry.first)) { *result = true; return;
diff --git a/third_party/WebKit/Source/core/inspector/browser_protocol.json b/third_party/WebKit/Source/core/inspector/browser_protocol.json index 66b454d..c46593db 100644 --- a/third_party/WebKit/Source/core/inspector/browser_protocol.json +++ b/third_party/WebKit/Source/core/inspector/browser_protocol.json
@@ -3458,7 +3458,7 @@ "name": "sendMessageToTarget", "description": "Sends protocol message to the target with given id.", "parameters": [ - { "name": "targetId", "type": "string" }, + { "name": "targetId", "$ref": "TargetID" }, { "name": "message", "type": "string" } ] }, @@ -4593,5 +4593,65 @@ ] } ] + }, + { + "domain": "Browser", + "description": "The Browser domain defines methods and events for browser managing.", + "experimental": true, + "types": [ + { + "id": "WindowID", + "type": "integer" + }, + { + "id": "WindowState", + "type": "string", + "enum": ["normal", "minimized", "maximized", "fullscreen"], + "description": "The state of the browser window." + }, + { + "id": "Bounds", + "type": "object", + "description": "Browser window bounds information", + "properties": [ + { "name": "left", "type": "integer", "optional": true, "description": "The offset from the left edge of the screen to the window in pixels."}, + { "name": "top", "type": "integer", "optional": true, "description": "The offset from the top edge of the screen to the window in pixels."}, + { "name": "width", "type": "integer", "optional": true, "description": "The window width in pixels."}, + { "name": "height", "type": "integer", "optional": true, "description": "The window height in pixels."}, + { "name": "windowState", "$ref": "WindowState", "optional": true, "description": "The window state. Default to normal."} + ] + } + ], + "commands": [ + { + "name": "getWindowForTarget", + "description": "Get the browser window that contains the devtools target.", + "parameters": [ + { "name": "targetId", "$ref": "Target.TargetID", "description": "Devtools agent host id." } + ], + "returns": [ + { "name": "windowId", "$ref": "WindowID", "description": "Browser window id." }, + { "name": "bounds", "$ref": "Bounds", "description": "Bounds information of the window. When window state is 'minimized', the restored window position and size are returned." } + ] + }, + { + "name": "setWindowBounds", + "description": "Set position and/or size of the browser window.", + "parameters": [ + { "name": "windowId", "$ref": "WindowID", "description": "Browser window id." }, + { "name": "bounds", "$ref": "Bounds", "description": "New window bounds. The 'minimized', 'maximized' and 'fullscreen' states cannot be combined with 'left', 'top', 'width' or 'height'. Leaves unspecified fields unchanged." } + ] + }, + { + "name": "getWindowBounds", + "description": "Get position and size of the browser window.", + "parameters": [ + { "name": "windowId", "$ref": "WindowID", "description": "Browser window id." } + ], + "returns": [ + { "name": "bounds", "$ref": "Bounds", "description": "Bounds information of the window. When window state is 'minimized', the restored window position and size are returned." } + ] + } + ] }] }
diff --git a/third_party/WebKit/Source/core/layout/ImageQualityController.cpp b/third_party/WebKit/Source/core/layout/ImageQualityController.cpp index 95351ba..5925a60 100644 --- a/third_party/WebKit/Source/core/layout/ImageQualityController.cpp +++ b/third_party/WebKit/Source/core/layout/ImageQualityController.cpp
@@ -206,7 +206,7 @@ } } - if (layout_size == image->size()) { + if (layout_size == image->Size()) { // There is no scale in effect. If we had a scale in effect before, we can // just remove this object from the list. RemoveLayer(object, inner_map, layer);
diff --git a/third_party/WebKit/Source/core/layout/ImageQualityControllerTest.cpp b/third_party/WebKit/Source/core/layout/ImageQualityControllerTest.cpp index d504d9f..efdfd302 100644 --- a/third_party/WebKit/Source/core/layout/ImageQualityControllerTest.cpp +++ b/third_party/WebKit/Source/core/layout/ImageQualityControllerTest.cpp
@@ -54,7 +54,7 @@ MetadataMode = kUseCurrentMetadata) override { return false; } - IntSize size() const override { return IntSize(); } + IntSize Size() const override { return IntSize(); } void DestroyDecodedData() override {} void Draw(PaintCanvas*, const PaintFlags&, @@ -83,7 +83,7 @@ MetadataMode = kUseCurrentMetadata) override { return false; } - IntSize size() const override { return IntSize(); } + IntSize Size() const override { return IntSize(); } void DestroyDecodedData() override {} void Draw(PaintCanvas*, const PaintFlags&, @@ -117,7 +117,7 @@ MetadataMode = kUseCurrentMetadata) override { return false; } - IntSize size() const override { return IntSize(1, 1); } + IntSize Size() const override { return IntSize(1, 1); } void DestroyDecodedData() override {} void Draw(PaintCanvas*, const PaintFlags&,
diff --git a/third_party/WebKit/Source/core/layout/LayoutFullScreen.cpp b/third_party/WebKit/Source/core/layout/LayoutFullScreen.cpp index f93c3ece..73c1d1f 100644 --- a/third_party/WebKit/Source/core/layout/LayoutFullScreen.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutFullScreen.cpp
@@ -113,7 +113,7 @@ fullscreen_style->SetPosition(EPosition::kFixed); fullscreen_style->SetLeft(Length(0, blink::kFixed)); fullscreen_style->SetTop(Length(0, blink::kFixed)); - IntSize viewport_size = GetDocument().GetPage()->GetVisualViewport().size(); + IntSize viewport_size = GetDocument().GetPage()->GetVisualViewport().Size(); fullscreen_style->SetWidth(Length(viewport_size.Width(), blink::kFixed)); fullscreen_style->SetHeight(Length(viewport_size.Height(), blink::kFixed));
diff --git a/third_party/WebKit/Source/core/layout/LayoutInline.cpp b/third_party/WebKit/Source/core/layout/LayoutInline.cpp index e8ae8c97..e449e6c 100644 --- a/third_party/WebKit/Source/core/layout/LayoutInline.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutInline.cpp
@@ -614,7 +614,7 @@ GenerateCulledLineBoxRects(yield, this); } else if (InlineFlowBox* curr = FirstLineBox()) { for (; curr; curr = curr->NextLineBox()) - yield(LayoutRect(curr->Location(), curr->size())); + yield(LayoutRect(curr->Location(), curr->Size())); } }
diff --git a/third_party/WebKit/Source/core/layout/LayoutText.cpp b/third_party/WebKit/Source/core/layout/LayoutText.cpp index 7c4d8fa2..c8ee986 100644 --- a/third_party/WebKit/Source/core/layout/LayoutText.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutText.cpp
@@ -337,7 +337,7 @@ const LayoutPoint& accumulated_offset) const { for (InlineTextBox* box = FirstTextBox(); box; box = box->NextTextBox()) { rects.push_back(EnclosingIntRect(LayoutRect( - LayoutPoint(accumulated_offset) + box->Location(), box->size()))); + LayoutPoint(accumulated_offset) + box->Location(), box->Size()))); } }
diff --git a/third_party/WebKit/Source/core/layout/TextAutosizer.cpp b/third_party/WebKit/Source/core/layout/TextAutosizer.cpp index f31a565..4af1f5c 100644 --- a/third_party/WebKit/Source/core/layout/TextAutosizer.cpp +++ b/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
@@ -629,7 +629,7 @@ IntSize TextAutosizer::WindowSize() const { Page* page = document_->GetPage(); DCHECK(page); - return page->GetVisualViewport().size(); + return page->GetVisualViewport().Size(); } void TextAutosizer::ResetMultipliers() {
diff --git a/third_party/WebKit/Source/core/layout/line/EllipsisBox.cpp b/third_party/WebKit/Source/core/layout/line/EllipsisBox.cpp index 53edf4a..d5535ef 100644 --- a/third_party/WebKit/Source/core/layout/line/EllipsisBox.cpp +++ b/third_party/WebKit/Source/core/layout/line/EllipsisBox.cpp
@@ -57,7 +57,7 @@ LayoutPoint box_origin = PhysicalLocation(); box_origin.MoveBy(accumulated_offset); - LayoutRect bounds_rect(box_origin, size()); + LayoutRect bounds_rect(box_origin, Size()); if (VisibleToHitTestRequest(result.GetHitTestRequest()) && bounds_rect.Intersects(LayoutRect(HitTestLocation::RectForPoint( location_in_container.Point(), 0, 0, 0, 0)))) {
diff --git a/third_party/WebKit/Source/core/layout/line/InlineBox.cpp b/third_party/WebKit/Source/core/layout/line/InlineBox.cpp index a787d641..f2a566d 100644 --- a/third_party/WebKit/Source/core/layout/line/InlineBox.cpp +++ b/third_party/WebKit/Source/core/layout/line/InlineBox.cpp
@@ -327,7 +327,7 @@ } LayoutPoint InlineBox::PhysicalLocation() const { - LayoutRect rect(Location(), size()); + LayoutRect rect(Location(), Size()); FlipForWritingMode(rect); return rect.Location(); }
diff --git a/third_party/WebKit/Source/core/layout/line/InlineBox.h b/third_party/WebKit/Source/core/layout/line/InlineBox.h index 9704cf6..7974ba1f 100644 --- a/third_party/WebKit/Source/core/layout/line/InlineBox.h +++ b/third_party/WebKit/Source/core/layout/line/InlineBox.h
@@ -235,7 +235,7 @@ LayoutUnit Height() const { return IsHorizontal() ? LogicalHeight() : LogicalWidth(); } - LayoutSize size() const { return LayoutSize(Width(), Height()); } + LayoutSize Size() const { return LayoutSize(Width(), Height()); } // The logicalLeft position is the left edge of the line box in a horizontal // line and the top edge in a vertical line.
diff --git a/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp b/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp index b227464..51c7e58 100644 --- a/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp +++ b/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp
@@ -70,7 +70,7 @@ } LayoutRect InlineFlowBox::FrameRect() const { - return LayoutRect(Location(), size()); + return LayoutRect(Location(), Size()); } static void SetHasTextDescendantsOnAncestors(InlineFlowBox* box) {
diff --git a/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp b/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp index 3a61fff..cd496703 100644 --- a/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp +++ b/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp
@@ -445,7 +445,7 @@ LayoutPoint box_origin = PhysicalLocation(); box_origin.MoveBy(accumulated_offset); - LayoutRect rect(box_origin, size()); + LayoutRect rect(box_origin, Size()); if (VisibleToHitTestRequest(result.GetHitTestRequest()) && location_in_container.Intersects(rect)) { GetLineLayoutItem().UpdateHitTestResult(
diff --git a/third_party/WebKit/Source/core/layout/shapes/Shape.cpp b/third_party/WebKit/Source/core/layout/shapes/Shape.cpp index 5402940..e8fe5da 100644 --- a/third_party/WebKit/Source/core/layout/shapes/Shape.cpp +++ b/third_party/WebKit/Source/core/layout/shapes/Shape.cpp
@@ -249,7 +249,7 @@ // for layout, which is not allowed. See https://crbug.com/429346 ImageObserverDisabler disabler(image); PaintFlags flags; - IntRect image_source_rect(IntPoint(), image->size()); + IntRect image_source_rect(IntPoint(), image->Size()); IntRect image_dest_rect(IntPoint(), image_rect.Size()); // TODO(ccameron): No color conversion is required here. image->Draw(image_buffer->Canvas(), flags, image_dest_rect,
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.cpp b/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.cpp index 5907d1e..76092d5 100644 --- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.cpp +++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.cpp
@@ -73,7 +73,7 @@ !cached_image->IsSizeAvailable()) return object_bounding_box_.Size(); - FloatSize intrinsic_size = FloatSize(cached_image->GetImage()->size()); + FloatSize intrinsic_size = FloatSize(cached_image->GetImage()->Size()); if (StyleRef().Width().IsAuto() && StyleRef().Height().IsAuto()) return intrinsic_size;
diff --git a/third_party/WebKit/Source/core/layout/svg/line/SVGInlineTextBox.cpp b/third_party/WebKit/Source/core/layout/svg/line/SVGInlineTextBox.cpp index 6ee9bda..9cfb2f6 100644 --- a/third_party/WebKit/Source/core/layout/svg/line/SVGInlineTextBox.cpp +++ b/third_party/WebKit/Source/core/layout/svg/line/SVGInlineTextBox.cpp
@@ -301,7 +301,7 @@ (hit_rules.can_hit_fill && (GetLineLayoutItem().Style()->SvgStyle().HasFill() || !hit_rules.require_fill))) { - LayoutRect rect(Location(), size()); + LayoutRect rect(Location(), Size()); rect.MoveBy(accumulated_offset); if (location_in_container.Intersects(rect)) { LineLayoutSVGInlineText line_layout_item =
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp index 8ad6442..34733c5 100644 --- a/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp +++ b/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp
@@ -249,7 +249,7 @@ should_respect_image_orientation == kRespectImageOrientation) { size = LayoutSize(ToBitmapImage(image_.Get())->SizeRespectingOrientation()); } else { - size = LayoutSize(image_->size()); + size = LayoutSize(image_->Size()); } if (size_type == kIntrinsicCorrectedToDPR && @@ -372,7 +372,7 @@ if (info_->ShouldShowPlaceholder() && all_data_received) { if (image_ && !image_->IsNull()) { - IntSize dimensions = image_->size(); + IntSize dimensions = image_->Size(); ClearImage(); image_ = PlaceholderImage::Create(this, dimensions); }
diff --git a/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp b/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp index e51a3619..d8539867 100644 --- a/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp +++ b/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp
@@ -343,7 +343,7 @@ : nullptr; CanvasAsyncBlobCreator* async_creator = CanvasAsyncBlobCreator::Create( - image_data->data(), encoding_mime_type, image_data->size(), start_time, + image_data->data(), encoding_mime_type, image_data->Size(), start_time, document, resolver); async_creator->ScheduleAsyncBlobCreation(options.quality());
diff --git a/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.h b/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.h index 36e92e2..810045a7 100644 --- a/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.h +++ b/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.h
@@ -51,7 +51,7 @@ const ImageEncodeOptions&, ExceptionState&); - IntSize size() const { return size_; } + IntSize Size() const { return size_; } void SetSize(const IntSize&); void SetPlaceholderCanvasId(int canvas_id) {
diff --git a/third_party/WebKit/Source/core/page/DragController.cpp b/third_party/WebKit/Source/core/page/DragController.cpp index 5078963c..79830a5 100644 --- a/third_party/WebKit/Source/core/page/DragController.cpp +++ b/third_party/WebKit/Source/core/page/DragController.cpp
@@ -1029,8 +1029,8 @@ orientation = ToBitmapImage(image)->CurrentFrameOrientation(); IntSize image_size = orientation.UsesWidthAsHeight() - ? image->size().TransposedSize() - : image->size(); + ? image->Size().TransposedSize() + : image->Size(); FloatSize image_scale = DragImage::ClampedImageScale(image_size, image_element_size_in_pixels, @@ -1043,7 +1043,7 @@ IntSize original_size = image_element_size_in_pixels; origin = image_element_location; - IntSize new_size = drag_image->size(); + IntSize new_size = drag_image->Size(); // Properly orient the drag image and orient it differently if it's smaller // than the original @@ -1071,7 +1071,7 @@ std::unique_ptr<DragImage> drag_image = DragImage::Create( link_url, link_text, font_description, device_scale_factor); - IntSize size = drag_image ? drag_image->size() : IntSize(); + IntSize size = drag_image ? drag_image->Size() : IntSize(); IntPoint drag_image_offset(-size.Width() / 2, -kLinkDragBorderInset); drag_loc = IntPoint(mouse_dragged_point.X() + drag_image_offset.X(), mouse_dragged_point.Y() + drag_image_offset.Y());
diff --git a/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp b/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp index b9b6f6bb..41c0b14 100644 --- a/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp +++ b/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp
@@ -58,7 +58,7 @@ const FillLayer& fill_layer, const LayoutSize& positioning_area_size) { StyleImage* image = fill_layer.GetImage(); - EFillSizeType type = fill_layer.size().type; + EFillSizeType type = fill_layer.Size().type; LayoutSize image_intrinsic_size = image->ImageSize( obj, obj.Style()->EffectiveZoom(), positioning_area_size); @@ -66,8 +66,8 @@ case kSizeLength: { LayoutSize tile_size(positioning_area_size); - Length layer_width = fill_layer.size().size.Width(); - Length layer_height = fill_layer.size().size.Height(); + Length layer_width = fill_layer.Size().size.Width(); + Length layer_height = fill_layer.Size().size.Height(); if (layer_width.IsFixed()) tile_size.SetWidth(LayoutUnit(layer_width.Value())); @@ -558,7 +558,7 @@ LayoutUnit rounded_width = positioning_area_size.Width() / nr_tiles; // Maintain aspect ratio if background-size: auto is set - if (fill_layer.size().size.Height().IsAuto() && + if (fill_layer.Size().size.Height().IsAuto() && background_repeat_y != kRoundFill) { fill_tile_size.SetHeight(fill_tile_size.Height() * rounded_width / fill_tile_size.Width()); @@ -585,7 +585,7 @@ fill_tile_size.Height())); LayoutUnit rounded_height = positioning_area_size.Height() / nr_tiles; // Maintain aspect ratio if background-size: auto is set - if (fill_layer.size().size.Width().IsAuto() && + if (fill_layer.Size().size.Width().IsAuto() && background_repeat_x != kRoundFill) { fill_tile_size.SetWidth(fill_tile_size.Width() * rounded_height / fill_tile_size.Height());
diff --git a/third_party/WebKit/Source/core/paint/BoxPainter.cpp b/third_party/WebKit/Source/core/paint/BoxPainter.cpp index 926f8c98..b0d1505d 100644 --- a/third_party/WebKit/Source/core/paint/BoxPainter.cpp +++ b/third_party/WebKit/Source/core/paint/BoxPainter.cpp
@@ -562,7 +562,7 @@ const FloatSize intrinsic_tile_size = image_context.GetImage()->HasRelativeSize() ? image_tile.Size() - : FloatSize(image_context.GetImage()->size()); + : FloatSize(image_context.GetImage()->Size()); const FloatRect src_rect = Image::ComputeSubsetForTile( image_tile, border.Rect(), intrinsic_tile_size);
diff --git a/third_party/WebKit/Source/core/paint/EllipsisBoxPainter.cpp b/third_party/WebKit/Source/core/paint/EllipsisBoxPainter.cpp index 010c62b2..644f1823 100644 --- a/third_party/WebKit/Source/core/paint/EllipsisBoxPainter.cpp +++ b/third_party/WebKit/Source/core/paint/EllipsisBoxPainter.cpp
@@ -35,7 +35,7 @@ const ComputedStyle& style) { LayoutPoint box_origin = ellipsis_box_.PhysicalLocation(); box_origin.MoveBy(paint_offset); - LayoutRect paint_rect(box_origin, ellipsis_box_.size()); + LayoutRect paint_rect(box_origin, ellipsis_box_.Size()); GraphicsContext& context = paint_info.context; DisplayItem::Type display_item_type =
diff --git a/third_party/WebKit/Source/core/paint/SVGImagePainter.cpp b/third_party/WebKit/Source/core/paint/SVGImagePainter.cpp index 17e322a1..88e47f9 100644 --- a/third_party/WebKit/Source/core/paint/SVGImagePainter.cpp +++ b/third_party/WebKit/Source/core/paint/SVGImagePainter.cpp
@@ -113,7 +113,7 @@ ->ConcreteObjectSize(layout_svg_image_.ObjectBoundingBox().Size()); } - return FloatSize(cached_image->GetImage()->size()); + return FloatSize(cached_image->GetImage()->Size()); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp b/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp index 557997dc..39b0007 100644 --- a/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp +++ b/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp
@@ -59,7 +59,7 @@ const LayoutPoint& paint_offset, bool include_selection_rect) const { LayoutRect bounds(svg_inline_text_box_.Location() + paint_offset, - svg_inline_text_box_.size()); + svg_inline_text_box_.Size()); if (HasShadow(paint_info, style)) bounds.Expand(style.TextShadow()->RectOutsetsIncludingOriginal()); if (include_selection_rect) {
diff --git a/third_party/WebKit/Source/core/paint/ScrollableAreaPainter.cpp b/third_party/WebKit/Source/core/paint/ScrollableAreaPainter.cpp index 8973a523..67cd37d 100644 --- a/third_party/WebKit/Source/core/paint/ScrollableAreaPainter.cpp +++ b/third_party/WebKit/Source/core/paint/ScrollableAreaPainter.cpp
@@ -86,14 +86,14 @@ DEFINE_STATIC_REF(Image, resize_corner_image_hi_res, (Image::LoadPlatformResource("textAreaResizeCorner@2x"))); resize_corner_image = resize_corner_image_hi_res; - corner_resizer_size = resize_corner_image->size(); + corner_resizer_size = resize_corner_image->Size(); if (old_device_scale_factor >= 2) corner_resizer_size.Scale(0.5f); } else { DEFINE_STATIC_REF(Image, resize_corner_image_lo_res, (Image::LoadPlatformResource("textAreaResizeCorner"))); resize_corner_image = resize_corner_image_lo_res; - corner_resizer_size = resize_corner_image->size(); + corner_resizer_size = resize_corner_image->Size(); } if (GetScrollableArea()
diff --git a/third_party/WebKit/Source/core/streams/ReadableStreamController.h b/third_party/WebKit/Source/core/streams/ReadableStreamController.h index de049f0e..96a4c15 100644 --- a/third_party/WebKit/Source/core/streams/ReadableStreamController.h +++ b/third_party/WebKit/Source/core/streams/ReadableStreamController.h
@@ -7,7 +7,7 @@ #include "bindings/core/v8/ScopedPersistent.h" #include "bindings/core/v8/ScriptValue.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8ScriptRunner.h" #include "core/CoreExport.h" #include "platform/heap/Handle.h"
diff --git a/third_party/WebKit/Source/core/streams/ReadableStreamOperations.cpp b/third_party/WebKit/Source/core/streams/ReadableStreamOperations.cpp index 8f717c9..75b07f5 100644 --- a/third_party/WebKit/Source/core/streams/ReadableStreamOperations.cpp +++ b/third_party/WebKit/Source/core/streams/ReadableStreamOperations.cpp
@@ -6,7 +6,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8ScriptRunner.h" #include "core/streams/UnderlyingSourceBase.h"
diff --git a/third_party/WebKit/Source/core/style/FillLayer.h b/third_party/WebKit/Source/core/style/FillLayer.h index bdffe507..9118a5c 100644 --- a/third_party/WebKit/Source/core/style/FillLayer.h +++ b/third_party/WebKit/Source/core/style/FillLayer.h
@@ -85,7 +85,7 @@ EFillSizeType SizeType() const { return static_cast<EFillSizeType>(size_type_); } - FillSize size() const { + FillSize Size() const { return FillSize(static_cast<EFillSizeType>(size_type_), size_length_); } EMaskSourceType MaskSourceType() const {
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp b/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp index 990466e..58c231a6 100644 --- a/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp +++ b/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
@@ -275,7 +275,7 @@ } sk_sp<SkImage> SVGImage::ImageForCurrentFrame() { - return ImageForCurrentFrameForContainer(KURL(), size()); + return ImageForCurrentFrameForContainer(KURL(), Size()); } void SVGImage::DrawPatternForContainer(GraphicsContext& context,
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImage.h b/third_party/WebKit/Source/core/svg/graphics/SVGImage.h index 76ea8976..a47aee4 100644 --- a/third_party/WebKit/Source/core/svg/graphics/SVGImage.h +++ b/third_party/WebKit/Source/core/svg/graphics/SVGImage.h
@@ -66,7 +66,7 @@ LayoutReplaced* EmbeddedReplacedContent() const; bool IsSVGImage() const override { return true; } - IntSize size() const override { return intrinsic_size_; } + IntSize Size() const override { return intrinsic_size_; } bool CurrentFrameHasSingleSecurityOrigin() const override;
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.cpp b/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.cpp index 6eec67e..37d8bdb4 100644 --- a/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.cpp +++ b/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.cpp
@@ -27,7 +27,7 @@ namespace blink { -IntSize SVGImageForContainer::size() const { +IntSize SVGImageForContainer::Size() const { FloatSize scaled_container_size(container_size_); scaled_container_size.Scale(zoom_); return RoundedIntSize(scaled_container_size); @@ -62,7 +62,7 @@ } sk_sp<SkImage> SVGImageForContainer::ImageForCurrentFrame() { - return image_->ImageForCurrentFrameForContainer(url_, size()); + return image_->ImageForCurrentFrameForContainer(url_, Size()); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.h b/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.h index b250268a..d54dca5 100644 --- a/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.h +++ b/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.h
@@ -68,7 +68,7 @@ zoom, url)); } - IntSize size() const override; + IntSize Size() const override; bool UsesContainerSize() const override { return image_->UsesContainerSize();
diff --git a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp index 450dc3b..cdb8104 100644 --- a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp +++ b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp
@@ -125,7 +125,7 @@ } dest_rect.Intersect(src_rect); } else { - src_rect = FloatRect(FloatPoint(), FloatSize(image_->size())); + src_rect = FloatRect(FloatPoint(), FloatSize(image_->Size())); preserve_aspect_ratio_->TransformRect(dest_rect, src_rect); } return dest_rect; @@ -144,7 +144,7 @@ TextStream& FEImage::ExternalRepresentation(TextStream& ts, int indent) const { IntSize image_size; if (image_) { - image_size = image_->size(); + image_size = image_->Size(); } else if (LayoutObject* layout_object = ReferencedLayoutObject()) { image_size = EnclosingIntRect(GetLayoutObjectRepaintRect(layout_object)).Size(); @@ -207,7 +207,7 @@ return CreateTransparentBlack(); } - FloatRect src_rect = FloatRect(FloatPoint(), FloatSize(image_->size())); + FloatRect src_rect = FloatRect(FloatPoint(), FloatSize(image_->Size())); FloatRect dst_rect = FilterPrimitiveSubregion(); preserve_aspect_ratio_->TransformRect(dst_rect, src_rect);
diff --git a/third_party/WebKit/Source/core/testing/Internals.cpp b/third_party/WebKit/Source/core/testing/Internals.cpp index 9198667..f061d5d 100644 --- a/third_party/WebKit/Source/core/testing/Internals.cpp +++ b/third_party/WebKit/Source/core/testing/Internals.cpp
@@ -2190,10 +2190,10 @@ Vector<String> Internals::IconURLs(Document* document, int icon_types_mask) const { - Vector<IconURL> icon_ur_ls = document->IconURLs(icon_types_mask); + Vector<IconURL> icon_urls = document->IconURLs(icon_types_mask); Vector<String> array; - for (auto& icon_url : icon_ur_ls) + for (auto& icon_url : icon_urls) array.push_back(icon_url.icon_url_.GetString()); return array; @@ -2648,7 +2648,7 @@ result.Append(','); result.AppendNumber(cursor.HotSpot().Y()); if (cursor.GetImage()) { - IntSize size = cursor.GetImage()->size(); + IntSize size = cursor.GetImage()->Size(); result.Append(" image="); result.AppendNumber(size.Width()); result.Append('x');
diff --git a/third_party/WebKit/Source/core/testing/LayerRect.h b/third_party/WebKit/Source/core/testing/LayerRect.h index b4efcd8..2b768375 100644 --- a/third_party/WebKit/Source/core/testing/LayerRect.h +++ b/third_party/WebKit/Source/core/testing/LayerRect.h
@@ -33,13 +33,12 @@ #include "bindings/core/v8/ScriptWrappable.h" #include "core/dom/ClientRect.h" +#include "core/dom/Node.h" #include "platform/heap/Handle.h" #include "wtf/text/WTFString.h" namespace blink { -class Node; - class LayerRect final : public GarbageCollectedFinalized<LayerRect>, public ScriptWrappable { DEFINE_WRAPPERTYPEINFO();
diff --git a/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp b/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp index 4cd5eeb..15c1f3392 100644 --- a/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp +++ b/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp
@@ -175,7 +175,7 @@ ExecutionContext& execution_context = *this->GetExecutionContext(); - Vector<KURL> completed_ur_ls; + Vector<KURL> completed_urls; for (const String& url_string : urls) { const KURL& url = execution_context.CompleteURL(url_string); if (!url.IsValid()) { @@ -190,10 +190,10 @@ "The script at '" + url.ElidedString() + "' failed to load."); return; } - completed_ur_ls.push_back(url); + completed_urls.push_back(url); } - for (const KURL& complete_url : completed_ur_ls) { + for (const KURL& complete_url : completed_urls) { RefPtr<WorkerScriptLoader> script_loader(WorkerScriptLoader::Create()); script_loader->SetRequestContext(WebURLRequest::kRequestContextScript); script_loader->LoadSynchronously(
diff --git a/third_party/WebKit/Source/devtools/front_end/Images/whatsnew.png b/third_party/WebKit/Source/devtools/front_end/Images/whatsnew.png index 8ae6257e..4a72ee0b 100644 --- a/third_party/WebKit/Source/devtools/front_end/Images/whatsnew.png +++ b/third_party/WebKit/Source/devtools/front_end/Images/whatsnew.png Binary files differ
diff --git a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js index 907fa811..04e9011 100644 --- a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js +++ b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js
@@ -372,7 +372,7 @@ var pageImage = new Image(); pageImage.src = 'data:image/png;base64,' + screenshot; pageImage.onload = async () => { - var scale = 1 / this._model.scale(); + var scale = window.devicePixelRatio / this._model.scale(); var outlineRect = this._model.outlineRect().scale(scale); var screenRect = this._model.screenRect().scale(scale); var visiblePageRect = this._model.visiblePageRect().scale(scale);
diff --git a/third_party/WebKit/Source/devtools/front_end/help/ReleaseNoteText.js b/third_party/WebKit/Source/devtools/front_end/help/ReleaseNoteText.js index 8c865d8..39a954b 100644 --- a/third_party/WebKit/Source/devtools/front_end/help/ReleaseNoteText.js +++ b/third_party/WebKit/Source/devtools/front_end/help/ReleaseNoteText.js
@@ -6,31 +6,72 @@ // be shown in Canary (e.g. make sure the release notes are accurate). // https://github.com/ChromeDevTools/devtools-frontend/wiki/Release-Notes +var commandMenuShortcut = Host.isMac() ? 'Command + Shift + P' : 'Control + Shift + P'; + /** @type {!Array<!Help.ReleaseNote>} */ -Help.releaseNoteText = [{ - version: 1, - date: 'March 2017', - highlights: [ - { - title: 'New Performance and Memory panels', - subtitle: 'Head to Performance for JavaScript profiling', - link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes#performance-panel', - }, - { - title: 'Editable cookies', - subtitle: 'You can edit any existing cookies and create new ones in the Application panel', - link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes#cookies', - }, - { - title: 'Console filtering & settings', - subtitle: 'Use the text filter or click the Console settings icon to touch up your preferences', - link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes#console', - }, - { - title: 'Debugger catches out-of-memory errors', - subtitle: 'See the stack or grab a heap snapshot to see why the app may crash', - link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes#out-of-memory-breakpoints', - }, - ], - link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes', -}]; +Help.releaseNoteText = [ + { + version: 2, + date: 'April 2017', + highlights: [ + { + title: 'CSS and JS code coverage', + subtitle: 'Find unused CSS and JS with the new Coverage drawer.', + link: 'https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage', + }, + { + title: 'Full-page screenshots', + subtitle: 'Take a screenshot of the entire page, from the top of the viewport to the bottom.', + link: 'https://developers.google.com/web/updates/2017/04/devtools-release-notes#screenshots', + }, + { + title: 'Block requests', + subtitle: 'Manually disable individual requests in the Network panel.', + link: 'https://developers.google.com/web/updates/2017/04/devtools-release-notes#block-requests', + }, + { + title: 'Step over async await', + subtitle: 'Step through async functions predictably.', + link: 'https://developers.google.com/web/updates/2017/04/devtools-release-notes#async', + }, + { + title: 'Unified Command Menu', + subtitle: 'Execute commands and open files from the newly-unified Command Menu (' + commandMenuShortcut + ').', + link: 'https://developers.google.com/web/updates/2017/04/devtools-release-notes#command-menu', + }, + { + title: 'Workspaces 2.0', + subtitle: 'Check out the new UX for using DevTools as your code editor.', + link: 'https://developers.google.com/web/updates/2017/04/devtools-release-notes#workspaces', + }, + ], + link: 'https://developers.google.com/web/updates/2017/04/devtools-release-notes', + }, + { + version: 1, + date: 'March 2017', + highlights: [ + { + title: 'New Performance and Memory panels', + subtitle: 'Head to Performance for JavaScript profiling', + link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes#performance-panel', + }, + { + title: 'Editable cookies', + subtitle: 'You can edit any existing cookies and create new ones in the Application panel', + link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes#cookies', + }, + { + title: 'Console filtering & settings', + subtitle: 'Use the text filter or click the Console settings icon to touch up your preferences', + link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes#console', + }, + { + title: 'Debugger catches out-of-memory errors', + subtitle: 'See the stack or grab a heap snapshot to see why the app may crash', + link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes#out-of-memory-breakpoints', + }, + ], + link: 'https://developers.google.com/web/updates/2017/03/devtools-release-notes', + } +];
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 a6911fb7..f8921ae 100644 --- a/third_party/WebKit/Source/devtools/front_end/main/Main.js +++ b/third_party/WebKit/Source/devtools/front_end/main/Main.js
@@ -90,33 +90,36 @@ * @param {!Object<string, string>} prefs */ _initializeExperiments(prefs) { + // Keep this sorted alphabetically: both keys and values. Runtime.experiments.register('accessibilityInspection', 'Accessibility Inspection'); Runtime.experiments.register('applyCustomStylesheet', 'Allow custom UI themes'); Runtime.experiments.register('audits2', 'Audits 2.0', true); Runtime.experiments.register('autoAttachToCrossProcessSubframes', 'Auto-attach to cross-process subframes', true); Runtime.experiments.register('blackboxJSFramesOnTimeline', 'Blackbox JavaScript frames on Timeline', true); Runtime.experiments.register('changesDrawer', 'Changes drawer', true); + Runtime.experiments.register('colorContrastRatio', 'Color contrast ratio line in color picker', true); Runtime.experiments.register('continueToLocationMarkers', 'Continue to location markers', true); - Runtime.experiments.register('colorContrastRatio', 'Contrast ratio line in color picker', true); Runtime.experiments.register('emptySourceMapAutoStepping', 'Empty sourcemap auto-stepping'); Runtime.experiments.register('inputEventsOnTimelineOverview', 'Input events on Timeline overview', true); Runtime.experiments.register('liveSASS', 'Live SASS'); Runtime.experiments.register('networkGroupingRequests', 'Network request groups support', true); Runtime.experiments.register('objectPreviews', 'Object previews', true); Runtime.experiments.register('persistence2', 'Persistence 2.0'); - Runtime.experiments.register('persistenceValidation', 'Validate persistence bindings'); - Runtime.experiments.register('timelineShowAllEvents', 'Show all events on Timeline', true); - Runtime.experiments.register('timelineShowAllProcesses', 'Show all processes on Timeline', true); - Runtime.experiments.register('timelinePaintTimingMarkers', 'Show paint timing markers on Timeline', true); + Runtime.experiments.register('persistenceValidation', 'Persistence validation'); Runtime.experiments.register('sourceDiff', 'Source diff'); - Runtime.experiments.register('timelineEventInitiators', 'Timeline event initiators'); - Runtime.experiments.register('timelineFlowEvents', 'Timeline flow events', true); Runtime.experiments.register('terminalInDrawer', 'Terminal in drawer', true); - Runtime.experiments.register('timelineInvalidationTracking', 'Timeline invalidation tracking', true); - Runtime.experiments.register('timelineMultipleMainViews', 'Tabbed views on Performance panel'); - Runtime.experiments.register('timelineTracingJSProfile', 'Timeline tracing based JS profiler', true); - Runtime.experiments.register('timelineV8RuntimeCallStats', 'V8 Runtime Call Stats on Timeline', true); - Runtime.experiments.register('timelinePerFrameTrack', 'Show track per frame on Timeline', true); + + // Timeline + Runtime.experiments.register('timelineEventInitiators', 'Timeline: event initiators'); + Runtime.experiments.register('timelineFlowEvents', 'Timeline: flow events', true); + Runtime.experiments.register('timelineInvalidationTracking', 'Timeline: invalidation tracking', true); + Runtime.experiments.register('timelineMultipleMainViews', 'Timeline: multiple main views'); + Runtime.experiments.register('timelinePaintTimingMarkers', 'Timeline: paint timing markers', true); + Runtime.experiments.register('timelinePerFrameTrack', 'Timeline: per-frame tracks', true); + Runtime.experiments.register('timelineShowAllEvents', 'Timeline: show all events', true); + Runtime.experiments.register('timelineShowAllProcesses', 'Timeline: show all processes', true); + Runtime.experiments.register('timelineTracingJSProfile', 'Timeline: tracing based JS profiler', true); + Runtime.experiments.register('timelineV8RuntimeCallStats', 'Timeline: V8 Runtime Call Stats on Timeline', true); Runtime.experiments.cleanUpStaleExperiments();
diff --git a/third_party/WebKit/Source/devtools/front_end/perf_ui/timelineGrid.css b/third_party/WebKit/Source/devtools/front_end/perf_ui/timelineGrid.css index 68d0f183..9e2382e1 100644 --- a/third_party/WebKit/Source/devtools/front_end/perf_ui/timelineGrid.css +++ b/third_party/WebKit/Source/devtools/front_end/perf_ui/timelineGrid.css
@@ -46,7 +46,7 @@ .resources-event-divider { position: absolute; - width: 2px; + width: 1px; top: 0; bottom: 0; z-index: 300;
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 0916726..2d1380c1 100644 --- a/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js +++ b/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js
@@ -58,6 +58,8 @@ this._filters.push(Timeline.TimelineUIUtils.visibleEventsFilter()); this._filters.push(new TimelineModel.ExcludeTopLevelFilter()); } + if (!Runtime.experiments.isEnabled('timelinePaintTimingMarkers')) + this._filters.push(Timeline.TimelineUIUtils.paintEventsFilter()); /** @type {?Timeline.PerformanceModel} */ this._performanceModel = null;
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline/TimelineUIUtils.js b/third_party/WebKit/Source/devtools/front_end/timeline/TimelineUIUtils.js index 2f22b5f5..fdec03b38 100644 --- a/third_party/WebKit/Source/devtools/front_end/timeline/TimelineUIUtils.js +++ b/third_party/WebKit/Source/devtools/front_end/timeline/TimelineUIUtils.js
@@ -111,6 +111,10 @@ new Timeline.TimelineRecordStyle(Common.UIString('DOMContentLoaded event'), categories['scripting'], true); eventStyles[recordTypes.MarkFirstPaint] = new Timeline.TimelineRecordStyle(Common.UIString('First paint'), categories['painting'], true); + eventStyles[recordTypes.MarkFMP] = + new Timeline.TimelineRecordStyle(Common.UIString('FMP'), categories['rendering'], true); + eventStyles[recordTypes.MarkFMPCandidate] = + new Timeline.TimelineRecordStyle(Common.UIString('FMP candidate'), categories['rendering'], true); eventStyles[recordTypes.TimeStamp] = new Timeline.TimelineRecordStyle(Common.UIString('Timestamp'), categories['scripting']); eventStyles[recordTypes.ConsoleTime] = @@ -1417,16 +1421,9 @@ var eventDivider = createElementWithClass('div', 'resources-event-divider'); var startTime = Number.millisToString(event.startTime - zeroTime); eventDivider.title = Common.UIString('%s at %s', Timeline.TimelineUIUtils.eventTitle(event), startTime); - - var recordTypes = TimelineModel.TimelineModel.RecordType; - var name = event.name; - if (name === recordTypes.MarkDOMContent) - eventDivider.classList.add('resources-blue-divider'); - else if (name === recordTypes.MarkLoad) - eventDivider.classList.add('resources-red-divider'); - else if (name === recordTypes.MarkFirstPaint) - eventDivider.classList.add('resources-green-divider'); - + var style = Timeline.TimelineUIUtils.markerStyleForEvent(event); + if (style.tall) + eventDivider.style.backgroundColor = style.color; return eventDivider; } @@ -1451,6 +1448,14 @@ } /** + * @return {!TimelineModel.TimelineModelFilter} + */ + static paintEventsFilter() { + var recordTypes = TimelineModel.TimelineModel.RecordType; + return new TimelineModel.TimelineInvisibleEventsFilter([recordTypes.MarkFMP, recordTypes.MarkFMPCandidate]); + } + + /** * @return {!Object.<string, !Timeline.TimelineCategory>} */ static categories() { @@ -1682,11 +1687,6 @@ * @return {!Timeline.TimelineMarkerStyle} */ static markerStyleForEvent(event) { - const red = 'rgb(255, 0, 0)'; - const blue = 'rgb(0, 0, 255)'; - const orange = 'rgb(255, 178, 23)'; - const green = 'rgb(0, 130, 0)'; - const purple = '#a2f'; const tallMarkerDashStyle = [10, 5]; const title = Timeline.TimelineUIUtils.eventTitle(event); @@ -1696,29 +1696,37 @@ title: title, dashStyle: tallMarkerDashStyle, lineWidth: 0.5, - color: event.hasCategory(TimelineModel.TimelineModel.Category.UserTiming) ? purple : orange, + color: event.hasCategory(TimelineModel.TimelineModel.Category.UserTiming) ? 'purple' : 'orange', tall: false, lowPriority: false, }; } var recordTypes = TimelineModel.TimelineModel.RecordType; var tall = false; - var color = green; + var color = 'green'; switch (event.name) { case recordTypes.MarkDOMContent: - color = blue; + color = 'blue'; tall = true; break; case recordTypes.MarkLoad: - color = red; + color = 'red'; tall = true; break; case recordTypes.MarkFirstPaint: - color = green; + color = 'green'; + tall = true; + break; + case recordTypes.MarkFMP: + color = 'orange'; + tall = true; + break; + case recordTypes.MarkFMPCandidate: + color = 'orange'; tall = true; break; case recordTypes.TimeStamp: - color = orange; + color = 'orange'; break; } return {
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js index d9e3925e..bcdfdf2c 100644 --- a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js +++ b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js
@@ -106,11 +106,8 @@ switch (event.name) { case recordTypes.TimeStamp: case recordTypes.MarkFirstPaint: - case recordTypes.FirstTextPaint: - case recordTypes.FirstImagePaint: - case recordTypes.FirstMeaningfulPaint: - case recordTypes.FirstPaint: - case recordTypes.FirstContentfulPaint: + case recordTypes.MarkFMP: + case recordTypes.MarkFMPCandidate: return true; case recordTypes.MarkDOMContent: case recordTypes.MarkLoad: @@ -1090,17 +1087,13 @@ MarkLoad: 'MarkLoad', MarkDOMContent: 'MarkDOMContent', MarkFirstPaint: 'MarkFirstPaint', + MarkFMP: 'firstMeaningfulPaint', + MarkFMPCandidate: 'firstMeaningfulPaintCandidate', TimeStamp: 'TimeStamp', ConsoleTime: 'ConsoleTime', UserTiming: 'UserTiming', - FirstTextPaint: 'firstTextPaint', - FirstImagePaint: 'firstImagePaint', - FirstMeaningfulPaint: 'firstMeaningfulPaint', - FirstPaint: 'firstPaint', - FirstContentfulPaint: 'firstContentfulPaint', - ResourceSendRequest: 'ResourceSendRequest', ResourceReceiveResponse: 'ResourceReceiveResponse', ResourceReceivedData: 'ResourceReceivedData',
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModelFilter.js b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModelFilter.js index 1f8033b..77b2002 100644 --- a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModelFilter.js +++ b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModelFilter.js
@@ -44,6 +44,25 @@ } }; +TimelineModel.TimelineInvisibleEventsFilter = class extends TimelineModel.TimelineModelFilter { + /** + * @param {!Array<string>} invisibleTypes + */ + constructor(invisibleTypes) { + super(); + this._invisibleTypes = new Set(invisibleTypes); + } + + /** + * @override + * @param {!SDK.TracingModel.Event} event + * @return {boolean} + */ + accept(event) { + return !this._invisibleTypes.has(TimelineModel.TimelineVisibleEventsFilter._eventType(event)); + } +}; + TimelineModel.ExclusiveNameFilter = class extends TimelineModel.TimelineModelFilter { /** * @param {!Array<string>} excludeNames
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/toolbar.css b/third_party/WebKit/Source/devtools/front_end/ui/toolbar.css index 4664e203..f45303bd 100644 --- a/third_party/WebKit/Source/devtools/front_end/ui/toolbar.css +++ b/third_party/WebKit/Source/devtools/front_end/ui/toolbar.css
@@ -214,6 +214,10 @@ border-radius: 2px; } +select.toolbar-item[data-keyboard-focus="true"]:focus > * { + background: white; +} + /* Input */ .toolbar-input {
diff --git a/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp b/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp index 94fe155..44ccdb3c 100644 --- a/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp +++ b/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp
@@ -1511,7 +1511,7 @@ ImageData* BaseRenderingContext2D::createImageData( ImageData* image_data, ExceptionState& exception_state) const { - ImageData* result = ImageData::Create(image_data->size()); + ImageData* result = ImageData::Create(image_data->Size()); if (!result) exception_state.ThrowRangeError("Out of memory at ImageData creation"); return result;
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBCursor.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBCursor.cpp index 97911604..15d5515 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBCursor.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBCursor.cpp
@@ -219,7 +219,7 @@ IDBDatabase::kNotValidKeyErrorMessage); return; } - continueFunction(key, nullptr, exception_state); + Continue(key, nullptr, exception_state); } void IDBCursor::continuePrimaryKey(ScriptState* script_state, @@ -286,12 +286,12 @@ return; } - continueFunction(key, primary_key, exception_state); + Continue(key, primary_key, exception_state); } -void IDBCursor::continueFunction(IDBKey* key, - IDBKey* primary_key, - ExceptionState& exception_state) { +void IDBCursor::Continue(IDBKey* key, + IDBKey* primary_key, + ExceptionState& exception_state) { DCHECK(transaction_->IsActive()); DCHECK(got_value_); DCHECK(!IsDeleted());
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBCursor.h b/third_party/WebKit/Source/modules/indexeddb/IDBCursor.h index 85cd1f0..c4a3e1d 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBCursor.h +++ b/third_party/WebKit/Source/modules/indexeddb/IDBCursor.h
@@ -87,7 +87,7 @@ bool isPrimaryKeyDirty() const { return primary_key_dirty_; } bool isValueDirty() const { return value_dirty_; } - void continueFunction(IDBKey*, IDBKey* primary_key, ExceptionState&); + void Continue(IDBKey*, IDBKey* primary_key, ExceptionState&); void PostSuccessHandlerCallback(); bool IsDeleted() const; void Close();
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp index 1782a240..84057d4 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp
@@ -154,7 +154,7 @@ const String& name, ExceptionState& exception_state) { return DeleteDatabaseInternal(script_state, name, exception_state, - false /* force_close */); + /*force_close=*/false); } IDBOpenDBRequest* IDBFactory::CloseConnectionsAndDeleteDatabase( @@ -162,7 +162,7 @@ const String& name, ExceptionState& exception_state) { return DeleteDatabaseInternal(script_state, name, exception_state, - true /* force_close */); + /*force_close=*/true); } IDBOpenDBRequest* IDBFactory::DeleteDatabaseInternal(
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBIndex.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBIndex.cpp index d80e150e..c997e91 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBIndex.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBIndex.cpp
@@ -27,7 +27,7 @@ #include <memory> #include "bindings/core/v8/ExceptionState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/modules/v8/ToV8ForModules.h" #include "bindings/modules/v8/V8BindingForModules.h" #include "core/dom/ExceptionCode.h" @@ -286,7 +286,7 @@ ExceptionState& exception_state) { IDB_TRACE("IDBIndex::getAllKeys"); return GetAllInternal(script_state, range, max_count, exception_state, - true /* keyOnly */); + /*key_only=*/true); } IDBRequest* IDBIndex::getKey(ScriptState* script_state,
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.cpp index adb501cb..9b62882e 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.cpp
@@ -88,7 +88,7 @@ return; } - key_path.Split('.', /*allowEmptyEntries*/ true, elements); + key_path.Split('.', /*allow_empty_entries=*/true, elements); for (size_t i = 0; i < elements.size(); ++i) { if (!IsIdentifier(elements[i])) { error = kIDBKeyPathParseErrorIdentifier;
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBKeyRange.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBKeyRange.cpp index 3027290..a16662f 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBKeyRange.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBKeyRange.cpp
@@ -26,7 +26,7 @@ #include "modules/indexeddb/IDBKeyRange.h" #include "bindings/core/v8/ExceptionState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/modules/v8/ToV8ForModules.h" #include "bindings/modules/v8/V8BindingForModules.h" #include "core/dom/ExceptionCode.h"
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp index 48e4aa7..9cbf73a 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp
@@ -30,7 +30,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" #include "bindings/core/v8/SerializedScriptValueFactory.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/modules/v8/ToV8ForModules.h" #include "bindings/modules/v8/V8BindingForModules.h" #include "core/dom/DOMStringList.h" @@ -170,7 +170,7 @@ IDBRequest* request = IDBRequest::Create(script_state, IDBAny::Create(this), transaction_.Get()); BackendDB()->Get(transaction_->Id(), Id(), IDBIndexMetadata::kInvalidId, - key_range, false /* keyOnly */, + key_range, /*key_only=*/false, request->CreateWebCallbacks().release()); return request; } @@ -214,7 +214,7 @@ IDBRequest* request = IDBRequest::Create(script_state, IDBAny::Create(this), transaction_.Get()); BackendDB()->Get(transaction_->Id(), Id(), IDBIndexMetadata::kInvalidId, - key_range, true /* keyOnly */, + key_range, /*key_only=*/true, request->CreateWebCallbacks().release()); return request; } @@ -645,7 +645,7 @@ namespace { // This class creates the index keys for a given index by extracting // them from the SerializedScriptValue, for all the existing values in -// the objectStore. It only needs to be kept alive by virtue of being +// the object store. It only needs to be kept alive by virtue of being // a listener on an IDBRequest object, in the same way that JavaScript // cursor success handlers are kept alive. class IndexPopulator final : public EventListener { @@ -707,7 +707,7 @@ Vector<int64_t> index_ids; index_ids.push_back(IndexMetadata().id); if (cursor && !cursor->IsDeleted()) { - cursor->continueFunction(nullptr, nullptr, ASSERT_NO_EXCEPTION); + cursor->Continue(nullptr, nullptr, ASSERT_NO_EXCEPTION); IDBKey* primary_key = cursor->IdbPrimaryKey(); ScriptValue value = cursor->value(script_state_.Get()); @@ -1060,10 +1060,10 @@ void IDBObjectStore::ClearIndexCache() { DCHECK(!transaction_->IsActive() || (IsDeleted() && IsNewlyCreated())); -// There is no harm in having clearIndexCache() happen multiple times for -// the same object. We assert that it is called once to uncover potential -// object store accounting bugs. #if DCHECK_IS_ON() + // There is no harm in having ClearIndexCache() happen multiple times for + // the same object. We assert that it is called once to uncover potential + // object store accounting bugs. DCHECK(!clear_index_cache_called_); clear_index_cache_called_ = true; #endif // DCHECK_IS_ON() @@ -1124,7 +1124,7 @@ BackendDB()->RenameIndex(transaction_->Id(), Id(), index_id, new_name); auto metadata_iterator = metadata_->indexes.Find(index_id); - DCHECK_NE(metadata_iterator, metadata_->indexes.end()) << "Invalid indexId"; + DCHECK_NE(metadata_iterator, metadata_->indexes.end()) << "Invalid index_id"; const String& old_name = metadata_iterator->value->name; DCHECK(index_map_.Contains(old_name))
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.h b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.h index 1c8bf9ca..166af9a4 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.h +++ b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.h
@@ -170,7 +170,7 @@ // // Used when a versionchange transaction is aborted. void RevertMetadata(RefPtr<IDBObjectStoreMetadata> previous_metadata); - // This relies on the changes made by revertMetadata(). + // This relies on the changes made by RevertMetadata(). void RevertDeletedIndexMetadata(IDBIndex& deleted_index); // Used by IDBIndex::setName:
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObservation.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBObservation.cpp index 75de57c..e627928 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBObservation.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBObservation.cpp
@@ -6,7 +6,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/modules/v8/ToV8ForModules.h" #include "bindings/modules/v8/V8BindingForModules.h" #include "modules/IndexedDBNames.h"
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp index 691eca1..1f1fdda8 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp
@@ -6,7 +6,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/modules/v8/ToV8ForModules.h" #include "bindings/modules/v8/V8BindingForModules.h"
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.h b/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.h index 57d56c5..389bc8c0 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.h +++ b/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.h
@@ -54,7 +54,7 @@ Member<IDBDatabase> database_; Member<IDBTransaction> transaction_; - // Map objectStoreId to IDBObservation list. + // Map object_store_id to IDBObservation list. HeapHashMap<int64_t, HeapVector<Member<IDBObservation>>> records_; };
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp index 423378a9..3c5f9f4c8 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp
@@ -132,7 +132,7 @@ IDBDatabase* idb_database = nullptr; if (ResultAsAny()) { - // Previous onUpgradeNeeded call delivered the backend. + // Previous OnUpgradeNeeded call delivered the backend. DCHECK(!backend.get()); idb_database = ResultAsAny()->IdbDatabase(); DCHECK(idb_database);
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBRequest.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBRequest.cpp index b62eeb02..b06389c 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBRequest.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBRequest.cpp
@@ -30,7 +30,7 @@ #include <memory> #include "bindings/core/v8/ExceptionState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/modules/v8/ToV8ForModules.h" #include "bindings/modules/v8/V8BindingForModules.h" #include "core/dom/DOMException.h"
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBRequest.h b/third_party/WebKit/Source/modules/indexeddb/IDBRequest.h index 80ad135..67cd951f 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBRequest.h +++ b/third_party/WebKit/Source/modules/indexeddb/IDBRequest.h
@@ -193,7 +193,7 @@ // Transactions should be aborted after event dispatch if an exception was // not caught. This is cleared before dispatch, set by a call to - // uncaughtExceptionInEventHandler() during dispatch, and checked afterwards + // UncaughtExceptionInEventHandler() during dispatch, and checked afterwards // to abort if necessary. bool did_throw_in_event_handler_ = false;
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBRequestTest.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBRequestTest.cpp index 8a7c323..87766553 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBRequestTest.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBRequestTest.cpp
@@ -78,7 +78,7 @@ scope.GetScriptState(), IDBAny::CreateUndefined(), transaction); EXPECT_EQ(request->readyState(), "pending"); - // Simulate the IDBTransaction having received onAbort from back end and + // Simulate the IDBTransaction having received OnAbort from back end and // aborting the request: request->Abort();
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBTransaction.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBTransaction.cpp index 40af722..3b29056 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBTransaction.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBTransaction.cpp
@@ -165,7 +165,7 @@ IDBTransaction::~IDBTransaction() { // Note: IDBTransaction is a ContextLifecycleObserver (rather than - // ContextClient) only in order to be able call upon getExecutionContext() + // ContextClient) only in order to be able call upon GetExecutionContext() // during this destructor. DCHECK(state_ == kFinished || !GetExecutionContext()); DCHECK(request_list_.IsEmpty() || !GetExecutionContext()); @@ -305,7 +305,7 @@ void IDBTransaction::IndexDeleted(IDBIndex* index) { DCHECK(index); - DCHECK(!index->IsDeleted()) << "indexDeleted called twice for the same index"; + DCHECK(!index->IsDeleted()) << "IndexDeleted called twice for the same index"; IDBObjectStore* object_store = index->objectStore(); DCHECK_EQ(object_store->transaction(), this); @@ -341,7 +341,7 @@ } void IDBTransaction::SetActive(bool active) { - DCHECK_NE(state_, kFinished) << "A finished transaction tried to setActive(" + DCHECK_NE(state_, kFinished) << "A finished transaction tried to SetActive(" << (active ? "true" : "false") << ")"; if (state_ == kFinishing) return; @@ -588,7 +588,7 @@ DCHECK(!old_store_metadata_.Contains(object_store)); object_store->ClearIndexCache(); } else { - // We'll call clearIndexCache() on this store in the loop below. + // We'll call ClearIndexCache() on this store in the loop below. DCHECK(old_store_metadata_.Contains(object_store)); } }
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBTransaction.h b/third_party/WebKit/Source/modules/indexeddb/IDBTransaction.h index 1046398c..f24644a 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBTransaction.h +++ b/third_party/WebKit/Source/modules/indexeddb/IDBTransaction.h
@@ -133,8 +133,9 @@ // ScriptWrappable bool HasPendingActivity() const final; - // For use in IDBObjectStore.isNewlyCreated(). The rest of the code should use - // IDBObjectStore.isNewlyCreated() instead of calling this method directly. + // For use in IDBObjectStore::IsNewlyCreated(). The rest of the code should + // use IDBObjectStore::IsNewlyCreated() instead of calling this method + // directly. int64_t OldMaxObjectStoreId() const { DCHECK(IsVersionChange()); return old_database_metadata_.max_object_store_id;
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBTransactionTest.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBTransactionTest.cpp index 64fa0288..7baa164 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBTransactionTest.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBTransactionTest.cpp
@@ -92,8 +92,8 @@ ThreadState::Current()->CollectAllGarbage(); EXPECT_EQ(1u, set.size()); - // This will generate an abort() call to the back end which is dropped by the - // fake proxy, so an explicit onAbort call is made. + // This will generate an Abort() call to the back end which is dropped by the + // fake proxy, so an explicit OnAbort call is made. scope.GetExecutionContext()->NotifyContextDestroyed(); transaction->OnAbort(DOMException::Create(kAbortError, "Aborted")); transaction.Clear(); @@ -143,7 +143,7 @@ // The test will not fail if it is, but ASAN would notice the error. db->OnAbort(kTransactionId, DOMException::Create(kAbortError, "Aborted")); - // onAbort() should have cleared the transaction's reference to the database. + // OnAbort() should have cleared the transaction's reference to the database. ThreadState::Current()->CollectAllGarbage(); EXPECT_EQ(0u, set.size()); }
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBVersionChangeEvent.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBVersionChangeEvent.cpp index 4de95928a..75dcf68 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBVersionChangeEvent.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBVersionChangeEvent.cpp
@@ -38,7 +38,7 @@ const Nullable<unsigned long long>& new_version, WebIDBDataLoss data_loss, const String& data_loss_message) - : Event(event_type, false /*canBubble*/, false /*cancelable*/), + : Event(event_type, /*can_bubble=*/false, /*cancelable=*/false), old_version_(old_version), new_version_(new_version), data_loss_(data_loss), @@ -47,7 +47,7 @@ IDBVersionChangeEvent::IDBVersionChangeEvent( const AtomicString& event_type, const IDBVersionChangeEventInit& initializer) - : Event(event_type, false /*canBubble*/, false /*cancelable*/), + : Event(event_type, /*can_bubble=*/false, /*cancelable=*/false), old_version_(initializer.oldVersion()), new_version_(nullptr), data_loss_(kWebIDBDataLossNone) {
diff --git a/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp b/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp index 880b93e..89d723a 100644 --- a/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
@@ -566,7 +566,7 @@ // Continue cursor before making injected script calls, otherwise // transaction might be finished. DummyExceptionStateForTesting exception_state; - idb_cursor->continueFunction(nullptr, nullptr, exception_state); + idb_cursor->Continue(nullptr, nullptr, exception_state); if (exception_state.HadException()) { request_callback_->sendFailure( Response::Error("Could not continue cursor."));
diff --git a/third_party/WebKit/Source/modules/indexeddb/MockWebIDBDatabase.h b/third_party/WebKit/Source/modules/indexeddb/MockWebIDBDatabase.h index 8a1cddc..971f62e 100644 --- a/third_party/WebKit/Source/modules/indexeddb/MockWebIDBDatabase.h +++ b/third_party/WebKit/Source/modules/indexeddb/MockWebIDBDatabase.h
@@ -21,111 +21,111 @@ static std::unique_ptr<MockWebIDBDatabase> Create(); MOCK_METHOD5(CreateObjectStore, - void(long long transactionId, - long long objectStoreId, + void(long long transaction_id, + long long object_store_id, const WebString& name, const WebIDBKeyPath&, - bool autoIncrement)); + bool auto_increment)); MOCK_METHOD2(DeleteObjectStore, - void(long long transactionId, long long objectStoreId)); + void(long long transaction_id, long long object_store_id)); MOCK_METHOD3(RenameObjectStore, - void(long long transactionId, - long long objectStoreId, - const WebString& newName)); + void(long long transaction_id, + long long object_store_id, + const WebString& new_name)); MOCK_METHOD3(CreateTransaction, void(long long id, const WebVector<long long>& scope, WebIDBTransactionMode)); MOCK_METHOD0(Close, void()); MOCK_METHOD0(VersionChangeIgnored, void()); - MOCK_METHOD1(Abort, void(long long transactionId)); - MOCK_METHOD1(Commit, void(long long transactionId)); + MOCK_METHOD1(Abort, void(long long transaction_id)); + MOCK_METHOD1(Commit, void(long long transaction_id)); MOCK_METHOD7(CreateIndex, - void(long long transactionId, - long long objectStoreId, - long long indexId, + void(long long transaction_id, + long long object_store_id, + long long index_id, const WebString& name, const WebIDBKeyPath&, bool unique, - bool multiEntry)); + bool multi_entry)); MOCK_METHOD3(DeleteIndex, - void(long long transactionId, - long long objectStoreId, - long long indexId)); + void(long long transaction_id, + long long object_store_id, + long long index_id)); MOCK_METHOD4(RenameIndex, - void(long long transactionId, - long long objectStoreId, - long long indexId, - const WebString& newName)); + void(long long transaction_id, + long long object_store_id, + long long index_id, + const WebString& new_name)); MOCK_METHOD6( AddObserver, - void(long long transactionId, - int32_t observerId, - bool includeTransaction, - bool noRecords, + void(long long transaction_id, + int32_t observer_id, + bool include_transaction, + bool no_records, bool values, - const std::bitset<kWebIDBOperationTypeCount>& operationTypes)); + const std::bitset<kWebIDBOperationTypeCount>& operation_types)); MOCK_CONST_METHOD1(ContainsObserverId, bool(int32_t id)); MOCK_METHOD1(RemoveObservers, - void(const WebVector<int32_t>& observerIdsToRemove)); + void(const WebVector<int32_t>& observer_ids_to_remove)); MOCK_METHOD6(Get, - void(long long transactionId, - long long objectStoreId, - long long indexId, + void(long long transaction_id, + long long object_store_id, + long long index_id, const WebIDBKeyRange&, - bool keyOnly, + bool key_only, WebIDBCallbacks*)); MOCK_METHOD7(GetAll, - void(long long transactionId, - long long objectStoreId, - long long indexId, + void(long long transaction_id, + long long object_store_id, + long long index_id, const WebIDBKeyRange&, - long long maxCount, - bool keyOnly, + long long max_count, + bool key_only, WebIDBCallbacks*)); MOCK_METHOD9(Put, - void(long long transactionId, - long long objectStoreId, + void(long long transaction_id, + long long object_store_id, const WebData& value, const WebVector<WebBlobInfo>&, const WebIDBKey&, WebIDBPutMode, WebIDBCallbacks*, - const WebVector<long long>& indexIds, + const WebVector<long long>& index_ids, const WebVector<WebIndexKeys>&)); MOCK_METHOD5(SetIndexKeys, - void(long long transactionId, - long long objectStoreId, + void(long long transaction_id, + long long object_store_id, const WebIDBKey&, - const WebVector<long long>& indexIds, + const WebVector<long long>& index_ids, const WebVector<WebIndexKeys>&)); MOCK_METHOD3(SetIndexesReady, - void(long long transactionId, - long long objectStoreId, - const WebVector<long long>& indexIds)); + void(long long transaction_id, + long long object_store_id, + const WebVector<long long>& index_ids)); MOCK_METHOD8(OpenCursor, - void(long long transactionId, - long long objectStoreId, - long long indexId, + void(long long transaction_id, + long long object_store_id, + long long index_id, const WebIDBKeyRange&, WebIDBCursorDirection, - bool keyOnly, + bool key_only, WebIDBTaskType, WebIDBCallbacks*)); MOCK_METHOD5(Count, - void(long long transactionId, - long long objectStoreId, - long long indexId, + void(long long transaction_id, + long long object_store_id, + long long index_id, const WebIDBKeyRange&, WebIDBCallbacks*)); MOCK_METHOD4(DeleteRange, - void(long long transactionId, - long long objectStoreId, + void(long long transaction_id, + long long object_store_id, const WebIDBKeyRange&, WebIDBCallbacks*)); MOCK_METHOD3(Clear, - void(long long transactionId, - long long objectStoreId, + void(long long transaction_id, + long long object_store_id, WebIDBCallbacks*)); MOCK_METHOD1(AckReceivedBlobs, void(const WebVector<WebString>& uuids));
diff --git a/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp b/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp index ca8750ad..c4e707e 100644 --- a/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp +++ b/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp
@@ -6,7 +6,7 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "core/dom/ExecutionContext.h" #include "core/dom/TaskRunnerHelper.h" #include "modules/mediasession/MediaImage.h"
diff --git a/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp b/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp index a4b1297..47d43f0 100644 --- a/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp +++ b/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp
@@ -186,7 +186,7 @@ image_buffer_->NewSkImageSnapshot(kPreferNoAcceleration, reason); ImageData* image_data = nullptr; if (snapshot) { - image_data = ImageData::Create(offscreenCanvas()->size()); + image_data = ImageData::Create(offscreenCanvas()->Size()); SkImageInfo image_info = SkImageInfo::Make(this->Width(), this->Height(), kRGBA_8888_SkColorType, kUnpremul_SkAlphaType); @@ -232,11 +232,11 @@ void OffscreenCanvasRenderingContext2D::DidDraw(const SkIRect& dirty_rect) {} bool OffscreenCanvasRenderingContext2D::StateHasFilter() { - return GetState().HasFilterForOffscreenCanvas(offscreenCanvas()->size()); + return GetState().HasFilterForOffscreenCanvas(offscreenCanvas()->Size()); } sk_sp<SkImageFilter> OffscreenCanvasRenderingContext2D::StateGetFilter() { - return GetState().GetFilterForOffscreenCanvas(offscreenCanvas()->size()); + return GetState().GetFilterForOffscreenCanvas(offscreenCanvas()->Size()); } void OffscreenCanvasRenderingContext2D::ValidateStateStack() const {
diff --git a/third_party/WebKit/Source/modules/payments/PaymentAppRequestConversion.cpp b/third_party/WebKit/Source/modules/payments/PaymentAppRequestConversion.cpp index 224ed78..fa5c982 100644 --- a/third_party/WebKit/Source/modules/payments/PaymentAppRequestConversion.cpp +++ b/third_party/WebKit/Source/modules/payments/PaymentAppRequestConversion.cpp
@@ -5,7 +5,7 @@ #include "modules/payments/PaymentAppRequestConversion.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "modules/payments/PaymentAppRequest.h" #include "modules/payments/PaymentCurrencyAmount.h" #include "modules/payments/PaymentDetailsModifier.h"
diff --git a/third_party/WebKit/Source/modules/presentation/PresentationReceiverTest.cpp b/third_party/WebKit/Source/modules/presentation/PresentationReceiverTest.cpp index 4da9e22..f031b901 100644 --- a/third_party/WebKit/Source/modules/presentation/PresentationReceiverTest.cpp +++ b/third_party/WebKit/Source/modules/presentation/PresentationReceiverTest.cpp
@@ -47,10 +47,10 @@ callbacks); } - void GetAvailability(const WebVector<WebURL>& availability_ur_ls, + void GetAvailability(const WebVector<WebURL>& availability_urls, std::unique_ptr<WebPresentationAvailabilityCallbacks> callbacks) override { - return getAvailability_(availability_ur_ls, callbacks); + return getAvailability_(availability_urls, callbacks); } public:
diff --git a/third_party/WebKit/Source/modules/serviceworkers/FetchEvent.cpp b/third_party/WebKit/Source/modules/serviceworkers/FetchEvent.cpp index 04f19ac..d1650d9c 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/FetchEvent.cpp +++ b/third_party/WebKit/Source/modules/serviceworkers/FetchEvent.cpp
@@ -5,7 +5,7 @@ #include "modules/serviceworkers/FetchEvent.h" #include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8PrivateProperty.h" #include "core/dom/ExecutionContext.h" #include "modules/fetch/BytesConsumerForDataConsumerHandle.h"
diff --git a/third_party/WebKit/Source/modules/serviceworkers/FetchEvent.idl b/third_party/WebKit/Source/modules/serviceworkers/FetchEvent.idl index f1efb96..3d76d24 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/FetchEvent.idl +++ b/third_party/WebKit/Source/modules/serviceworkers/FetchEvent.idl
@@ -13,5 +13,5 @@ readonly attribute boolean isReload; [CallWith=ScriptState, RaisesException] void respondWith(Promise<Response> r); - [OriginTrialEnabled=ServiceWorkerNavigationPreload, CallWith=ScriptState] readonly attribute Promise<any> preloadResponse; + [RuntimeEnabled=ServiceWorkerNavigationPreload, CallWith=ScriptState] readonly attribute Promise<any> preloadResponse; };
diff --git a/third_party/WebKit/Source/modules/serviceworkers/ForeignFetchEvent.cpp b/third_party/WebKit/Source/modules/serviceworkers/ForeignFetchEvent.cpp index 32ceb93..d3d50b0 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/ForeignFetchEvent.cpp +++ b/third_party/WebKit/Source/modules/serviceworkers/ForeignFetchEvent.cpp
@@ -4,7 +4,7 @@ #include "modules/serviceworkers/ForeignFetchEvent.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8PrivateProperty.h" #include "modules/fetch/Request.h" #include "modules/serviceworkers/ServiceWorkerGlobalScope.h"
diff --git a/third_party/WebKit/Source/modules/serviceworkers/InstallEvent.cpp b/third_party/WebKit/Source/modules/serviceworkers/InstallEvent.cpp index c09c82e..5e09649 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/InstallEvent.cpp +++ b/third_party/WebKit/Source/modules/serviceworkers/InstallEvent.cpp
@@ -69,27 +69,27 @@ return; } const Vector<String>& sub_scopes = options.scopes(); - Vector<KURL> sub_scope_ur_ls(sub_scopes.size()); + Vector<KURL> sub_scope_urls(sub_scopes.size()); for (size_t i = 0; i < sub_scopes.size(); ++i) { - sub_scope_ur_ls[i] = execution_context->CompleteURL(sub_scopes[i]); - if (!sub_scope_ur_ls[i].IsValid()) { + sub_scope_urls[i] = execution_context->CompleteURL(sub_scopes[i]); + if (!sub_scope_urls[i].IsValid()) { exception_state.ThrowTypeError("Invalid subscope URL: " + sub_scopes[i]); return; } - sub_scope_ur_ls[i].RemoveFragmentIdentifier(); - if (!origin->CanRequest(sub_scope_ur_ls[i])) { + sub_scope_urls[i].RemoveFragmentIdentifier(); + if (!origin->CanRequest(sub_scope_urls[i])) { exception_state.ThrowTypeError("Subscope URL is not within scope: " + sub_scopes[i]); return; } - String sub_scope_path = sub_scope_ur_ls[i].GetPath(); + String sub_scope_path = sub_scope_urls[i].GetPath(); if (!sub_scope_path.StartsWith(scope_path)) { exception_state.ThrowTypeError("Subscope URL is not within scope: " + sub_scopes[i]); return; } } - client->RegisterForeignFetchScopes(sub_scope_ur_ls, parsed_origins); + client->RegisterForeignFetchScopes(sub_scope_urls, parsed_origins); } const AtomicString& InstallEvent::InterfaceName() const {
diff --git a/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.idl b/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.idl index fb2521d5..a18e39d1 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.idl +++ b/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.idl
@@ -5,7 +5,7 @@ // TODO(falken): Revise link when this lands in the spec: // https://github.com/w3c/ServiceWorker/issues/920 [ - OriginTrialEnabled=ServiceWorkerNavigationPreload, + RuntimeEnabled=ServiceWorkerNavigationPreload, Exposed=(Window,Worker), ] interface NavigationPreloadManager { // TODO(mgiuca): Put SecureContext on the interface, not individual methods.
diff --git a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerError.cpp b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerError.cpp index 3bf1fb9..25504131 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerError.cpp +++ b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerError.cpp
@@ -31,7 +31,7 @@ #include "modules/serviceworkers/ServiceWorkerError.h" #include "bindings/core/v8/ScriptPromiseResolver.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "core/dom/DOMException.h" #include "core/dom/ExceptionCode.h"
diff --git a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.idl b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.idl index adea0c3..d25a82c 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.idl +++ b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.idl
@@ -11,7 +11,7 @@ readonly attribute ServiceWorker? installing; readonly attribute ServiceWorker? waiting; readonly attribute ServiceWorker? active; - [OriginTrialEnabled=ServiceWorkerNavigationPreload] readonly attribute NavigationPreloadManager navigationPreload; + [RuntimeEnabled=ServiceWorkerNavigationPreload] readonly attribute NavigationPreloadManager navigationPreload; readonly attribute USVString scope;
diff --git a/third_party/WebKit/Source/modules/shapedetection/ShapeDetector.cpp b/third_party/WebKit/Source/modules/shapedetection/ShapeDetector.cpp index 3287f40..437ecae 100644 --- a/third_party/WebKit/Source/modules/shapedetection/ShapeDetector.cpp +++ b/third_party/WebKit/Source/modules/shapedetection/ShapeDetector.cpp
@@ -128,7 +128,7 @@ : kDontPremultiplyAlpha, kN32ColorType); pixel_data_ptr = pixel_data->Data(); - allocation_size = image_bitmap->size().Area() * 4 /* bytes per pixel */; + allocation_size = image_bitmap->Size().Area() * 4 /* bytes per pixel */; } else { // TODO(mcasas): retrieve the pixels from elsewhere. NOTREACHED(); @@ -151,13 +151,13 @@ ImageData* image_data) { ScriptPromise promise = resolver->Promise(); - if (image_data->size().IsZero()) { + if (image_data->Size().IsZero()) { resolver->Resolve(HeapVector<Member<DOMRect>>()); return promise; } uint8_t* const data = image_data->data()->Data(); - WTF::CheckedNumeric<int> allocation_size = image_data->size().Area() * 4; + WTF::CheckedNumeric<int> allocation_size = image_data->Size().Area() * 4; mojo::ScopedSharedBufferHandle shared_buffer_handle = GetSharedBufferOnData(resolver, data, allocation_size.ValueOrDefault(0));
diff --git a/third_party/WebKit/Source/modules/vr/VRDisplay.cpp b/third_party/WebKit/Source/modules/vr/VRDisplay.cpp index 29548126..553622a 100644 --- a/third_party/WebKit/Source/modules/vr/VRDisplay.cpp +++ b/third_party/WebKit/Source/modules/vr/VRDisplay.cpp
@@ -673,6 +673,18 @@ EventTypeNames::vrdisplaydeactivate, true, false, this, reason)); } +void VRDisplay::ProcessScheduledWindowAnimations(double timestamp) { + TRACE_EVENT1("gpu", "VRDisplay::window.rAF", "frame", vr_frame_id_); + auto doc = navigator_vr_->GetDocument(); + if (!doc) + return; + auto page = doc->GetPage(); + if (!page) + return; + // TODO(klausw): update timestamp based on scheduling delay? + page->Animator().ServiceScriptedAnimations(timestamp); +} + void VRDisplay::ProcessScheduledAnimations(double timestamp) { // Check if we still have a valid context, the animation controller // or document may have disappeared since we scheduled this. @@ -686,6 +698,15 @@ pending_raf_ = false; scripted_animation_controller_->ServiceScriptedAnimations(timestamp); + + // For GVR, we shut down normal vsync processing during VR presentation. + // Trigger any callbacks on window.rAF manually so that they run after + // completing the vrDisplay.rAF processing. + if (is_presenting_ && !capabilities_->hasExternalDisplay()) { + Platform::Current()->CurrentThread()->GetWebTaskRunner()->PostTask( + BLINK_FROM_HERE, WTF::Bind(&VRDisplay::ProcessScheduledWindowAnimations, + WrapWeakPersistent(this), timestamp)); + } } void VRDisplay::OnVSync(device::mojom::blink::VRPosePtr pose,
diff --git a/third_party/WebKit/Source/modules/vr/VRDisplay.h b/third_party/WebKit/Source/modules/vr/VRDisplay.h index 25f30e8..16dead3 100644 --- a/third_party/WebKit/Source/modules/vr/VRDisplay.h +++ b/third_party/WebKit/Source/modules/vr/VRDisplay.h
@@ -142,6 +142,7 @@ ScriptedAnimationController& EnsureScriptedAnimationController(Document*); void ProcessScheduledAnimations(double timestamp); + void ProcessScheduledWindowAnimations(double timestamp); Member<NavigatorVR> navigator_vr_; unsigned display_id_ = 0;
diff --git a/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.cpp b/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.cpp index 4c1e7ec8..f93e04a0 100644 --- a/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.cpp +++ b/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.cpp
@@ -4,7 +4,7 @@ #include "modules/webaudio/AudioWorkletGlobalScope.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8BindingMacros.h" #include "bindings/core/v8/V8ObjectConstructor.h"
diff --git a/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScopeTest.cpp b/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScopeTest.cpp index 6e4e965..e08e4f9 100644 --- a/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScopeTest.cpp +++ b/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScopeTest.cpp
@@ -8,7 +8,7 @@ #include "bindings/core/v8/ScriptState.h" #include "bindings/core/v8/ScriptValue.h" #include "bindings/core/v8/SourceLocation.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/core/v8/V8Binding.h" #include "bindings/core/v8/V8BindingForTesting.h" #include "bindings/core/v8/V8BindingMacros.h"
diff --git a/third_party/WebKit/Source/modules/webdatabase/SQLResultSetRowList.cpp b/third_party/WebKit/Source/modules/webdatabase/SQLResultSetRowList.cpp index 8288bc9..925d1513d 100644 --- a/third_party/WebKit/Source/modules/webdatabase/SQLResultSetRowList.cpp +++ b/third_party/WebKit/Source/modules/webdatabase/SQLResultSetRowList.cpp
@@ -29,7 +29,7 @@ #include "modules/webdatabase/SQLResultSetRowList.h" #include "bindings/core/v8/ScriptValue.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "bindings/modules/v8/ToV8ForModules.h" #include "core/dom/ExceptionCode.h"
diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp index 9a90200..d3d020d4 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
@@ -3463,20 +3463,28 @@ bool WebGL2RenderingContextBase::ValidateClearBuffer(const char* function_name, GLenum buffer, - GLsizei size) { + GLsizei size, + GLuint src_offset) { + CheckedNumeric<GLsizei> checked_size(size); + checked_size -= src_offset; + if (!checked_size.IsValid()) { + SynthesizeGLError(GL_INVALID_VALUE, function_name, + "invalid array size / srcOffset"); + return false; + } switch (buffer) { case GL_COLOR: - if (size < 4) { + if (checked_size.ValueOrDie() < 4) { SynthesizeGLError(GL_INVALID_VALUE, function_name, - "invalid array size"); + "invalid array size / srcOffset"); return false; } break; case GL_DEPTH: case GL_STENCIL: - if (size < 1) { + if (checked_size.ValueOrDie() < 1) { SynthesizeGLError(GL_INVALID_VALUE, function_name, - "invalid array size"); + "invalid array size / srcOffset"); return false; } break; @@ -3498,64 +3506,74 @@ void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer, GLint drawbuffer, - NotShared<DOMInt32Array> value) { + NotShared<DOMInt32Array> value, + GLuint src_offset) { if (isContextLost() || - !ValidateClearBuffer("clearBufferiv", buffer, value.View()->length())) + !ValidateClearBuffer("clearBufferiv", buffer, value.View()->length(), + src_offset)) return; - ContextGL()->ClearBufferiv(buffer, drawbuffer, value.View()->Data()); + ContextGL()->ClearBufferiv(buffer, drawbuffer, + value.View()->Data() + src_offset); } void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer, GLint drawbuffer, - const Vector<GLint>& value) { + const Vector<GLint>& value, + GLuint src_offset) { if (isContextLost() || - !ValidateClearBuffer("clearBufferiv", buffer, value.size())) + !ValidateClearBuffer("clearBufferiv", buffer, value.size(), src_offset)) return; - ContextGL()->ClearBufferiv(buffer, drawbuffer, value.Data()); -} - -void WebGL2RenderingContextBase::clearBufferuiv( - GLenum buffer, - GLint drawbuffer, - NotShared<DOMUint32Array> value) { - if (isContextLost() || - !ValidateClearBuffer("clearBufferuiv", buffer, value.View()->length())) - return; - - ContextGL()->ClearBufferuiv(buffer, drawbuffer, value.View()->Data()); + ContextGL()->ClearBufferiv(buffer, drawbuffer, value.Data() + src_offset); } void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer, GLint drawbuffer, - const Vector<GLuint>& value) { + NotShared<DOMUint32Array> value, + GLuint src_offset) { if (isContextLost() || - !ValidateClearBuffer("clearBufferuiv", buffer, value.size())) + !ValidateClearBuffer("clearBufferuiv", buffer, value.View()->length(), + src_offset)) return; - ContextGL()->ClearBufferuiv(buffer, drawbuffer, value.Data()); + ContextGL()->ClearBufferuiv(buffer, drawbuffer, + value.View()->Data() + src_offset); } -void WebGL2RenderingContextBase::clearBufferfv( - GLenum buffer, - GLint drawbuffer, - NotShared<DOMFloat32Array> value) { +void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer, + GLint drawbuffer, + const Vector<GLuint>& value, + GLuint src_offset) { if (isContextLost() || - !ValidateClearBuffer("clearBufferfv", buffer, value.View()->length())) + !ValidateClearBuffer("clearBufferuiv", buffer, value.size(), src_offset)) return; - ContextGL()->ClearBufferfv(buffer, drawbuffer, value.View()->Data()); + ContextGL()->ClearBufferuiv(buffer, drawbuffer, value.Data() + src_offset); } void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer, GLint drawbuffer, - const Vector<GLfloat>& value) { + NotShared<DOMFloat32Array> value, + GLuint src_offset) { if (isContextLost() || - !ValidateClearBuffer("clearBufferfv", buffer, value.size())) + !ValidateClearBuffer("clearBufferfv", buffer, value.View()->length(), + src_offset)) return; - ContextGL()->ClearBufferfv(buffer, drawbuffer, value.Data()); + ContextGL()->ClearBufferfv(buffer, drawbuffer, + value.View()->Data() + src_offset); +} + +void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer, + GLint drawbuffer, + const Vector<GLfloat>& value, + GLuint src_offset) { + if (isContextLost() || + !ValidateClearBuffer("clearBufferfv", buffer, value.size(), src_offset)) + return; + + ContextGL()->ClearBufferfv(buffer, drawbuffer, value.Data() + src_offset); } void WebGL2RenderingContextBase::clearBufferfi(GLenum buffer,
diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h index 52b1d744..085bc48 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h
@@ -843,12 +843,12 @@ /* Multiple Render Targets */ void drawBuffers(const Vector<GLenum>&); - void clearBufferiv(GLenum, GLint, NotShared<DOMInt32Array>); - void clearBufferiv(GLenum, GLint, const Vector<GLint>&); - void clearBufferuiv(GLenum, GLint, NotShared<DOMUint32Array>); - void clearBufferuiv(GLenum, GLint, const Vector<GLuint>&); - void clearBufferfv(GLenum, GLint, NotShared<DOMFloat32Array>); - void clearBufferfv(GLenum, GLint, const Vector<GLfloat>&); + void clearBufferiv(GLenum, GLint, NotShared<DOMInt32Array>, GLuint); + void clearBufferiv(GLenum, GLint, const Vector<GLint>&, GLuint); + void clearBufferuiv(GLenum, GLint, NotShared<DOMUint32Array>, GLuint); + void clearBufferuiv(GLenum, GLint, const Vector<GLuint>&, GLuint); + void clearBufferfv(GLenum, GLint, NotShared<DOMFloat32Array>, GLuint); + void clearBufferfv(GLenum, GLint, const Vector<GLfloat>&, GLuint); void clearBufferfi(GLenum, GLint, GLfloat, GLint); /* Query Objects */ @@ -982,7 +982,8 @@ bool ValidateClearBuffer(const char* function_name, GLenum buffer, - GLsizei length); + GLsizei length, + GLuint src_offset); enum TexStorageType { kTexStorageType2D,
diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl index c645b87..75fe60be 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl
@@ -465,12 +465,12 @@ /* Multiple Render Targets */ void drawBuffers(sequence<GLenum> buffers); - void clearBufferiv(GLenum buffer, GLint drawbuffer, Int32Array value); - void clearBufferiv(GLenum buffer, GLint drawbuffer, sequence<GLint> value); - void clearBufferuiv(GLenum buffer, GLint drawbuffer, Uint32Array value); - void clearBufferuiv(GLenum buffer, GLint drawbuffer, sequence<GLuint> value); - void clearBufferfv(GLenum buffer, GLint drawbuffer, Float32Array value); - void clearBufferfv(GLenum buffer, GLint drawbuffer, sequence<GLfloat> value); + void clearBufferiv(GLenum buffer, GLint drawbuffer, Int32Array value, optional GLuint srcOffset = 0); + void clearBufferiv(GLenum buffer, GLint drawbuffer, sequence<GLint> value, optional GLuint srcOffset = 0); + void clearBufferuiv(GLenum buffer, GLint drawbuffer, Uint32Array value, optional GLuint srcOffset = 0); + void clearBufferuiv(GLenum buffer, GLint drawbuffer, sequence<GLuint> value, optional GLuint srcOffset = 0); + void clearBufferfv(GLenum buffer, GLint drawbuffer, Float32Array value, optional GLuint srcOffset = 0); + void clearBufferfv(GLenum buffer, GLint drawbuffer, sequence<GLfloat> value, optional GLuint srcOffset = 0); void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); /* Query Objects */
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp index 25e6283..b34b002 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
@@ -770,8 +770,8 @@ RefPtr<StaticBitmapImage> image; if (CreationAttributes().preserveDrawingBuffer()) { - int width = GetDrawingBuffer()->size().Width(); - int height = GetDrawingBuffer()->size().Height(); + int width = GetDrawingBuffer()->Size().Width(); + int height = GetDrawingBuffer()->Size().Height(); SkImageInfo image_info = SkImageInfo::Make(width, height, kRGBA_8888_SkColorType, CreationAttributes().alpha() ? kPremul_SkAlphaType @@ -830,7 +830,7 @@ GetDrawingBuffer()->CopyToPlatformTexture( gl, texture_target, texture_id, true, false, IntPoint(0, 0), - IntRect(IntPoint(0, 0), GetDrawingBuffer()->size()), kBackBuffer); + IntRect(IntPoint(0, 0), GetDrawingBuffer()->Size()), kBackBuffer); return surface->makeImageSnapshot(); } @@ -845,15 +845,15 @@ return image_data; } - int width = GetDrawingBuffer()->size().Width(); - int height = GetDrawingBuffer()->size().Height(); + int width = GetDrawingBuffer()->Size().Width(); + int height = GetDrawingBuffer()->Size().Height(); SkImageInfo image_info = SkImageInfo::Make(width, height, kRGBA_8888_SkColorType, CreationAttributes().alpha() ? kPremul_SkAlphaType : kOpaque_SkAlphaType); sk_sp<SkImage> snapshot = MakeImageSnapshot(image_info); if (snapshot) { - image_data = ImageData::Create(GetDrawingBuffer()->size()); + image_data = ImageData::Create(GetDrawingBuffer()->Size()); snapshot->readPixels(image_info, image_data->data()->Data(), image_info.minRowBytes(), 0, 0); } @@ -1615,11 +1615,11 @@ } int WebGLRenderingContextBase::drawingBufferWidth() const { - return isContextLost() ? 0 : GetDrawingBuffer()->size().Width(); + return isContextLost() ? 0 : GetDrawingBuffer()->Size().Width(); } int WebGLRenderingContextBase::drawingBufferHeight() const { - return isContextLost() ? 0 : GetDrawingBuffer()->size().Height(); + return isContextLost() ? 0 : GetDrawingBuffer()->Size().Height(); } void WebGLRenderingContextBase::activeTexture(GLenum texture) { @@ -4587,7 +4587,7 @@ if (!image->CurrentFrameKnownToBeOpaque()) buf->Canvas()->clear(SK_ColorTRANSPARENT); - IntRect src_rect(IntPoint(), image->size()); + IntRect src_rect(IntPoint(), image->Size()); IntRect dest_rect(0, 0, size.Width(), size.Height()); PaintFlags flags; // TODO(ccameron): WebGL should produce sRGB images. @@ -4803,7 +4803,7 @@ } if (!WebGLImageConversion::ExtractImageData( pixels->data()->Data(), - WebGLImageConversion::DataFormat::kDataFormatRGBA8, pixels->size(), + WebGLImageConversion::DataFormat::kDataFormatRGBA8, pixels->Size(), adjusted_source_image_rect, depth, unpack_image_height, format, type, unpack_flip_y_, unpack_premultiply_alpha_, data)) { SynthesizeGLError(GL_INVALID_VALUE, func_name, "bad image data"); @@ -4915,7 +4915,8 @@ SentinelEmptyRect(), 1, 0, exception_state); } -bool WebGLRenderingContextBase::CanUseTexImageByGPU(GLenum type) { +bool WebGLRenderingContextBase::CanUseTexImageByGPU(GLenum format, + GLenum type) { #if OS(MACOSX) // RGB5_A1 is not color-renderable on NVIDIA Mac, see crbug.com/676209. // Though, glCopyTextureCHROMIUM can handle RGB5_A1 internalformat by doing a @@ -4925,6 +4926,23 @@ if (type == GL_UNSIGNED_SHORT_5_5_5_1) return false; #endif + // TODO(kbr): bugs were observed when using CopyTextureCHROMIUM to + // copy hardware-accelerated video textures to red-channel textures. + // These bugs were seen on macOS but may indicate more general + // problems. Investigate the root cause of this and fix it. + // crbug.com/710673 + if (format == GL_RED || format == GL_RED_INTEGER) + return false; + +#if OS(ANDROID) + // TODO(kbr): bugs were seen on Android devices with NVIDIA GPUs + // when copying hardware-accelerated video textures to + // floating-point textures. Investigate the root cause of this and + // fix it. crbug.com/710874 + if (type == GL_FLOAT) + return false; +#endif + // OES_texture_half_float doesn't support HALF_FLOAT_OES type for // CopyTexImage/CopyTexSubImage. And OES_texture_half_float doesn't require // HALF_FLOAT_OES type texture to be renderable. So, HALF_FLOAT_OES type @@ -5116,7 +5134,7 @@ // float/integer/sRGB internal format. // TODO(crbug.com/622958): relax the constrains if copyTextureCHROMIUM is // upgraded to handle more formats. - if (!canvas->IsAccelerated() || !CanUseTexImageByGPU(type)) { + if (!canvas->IsAccelerated() || !CanUseTexImageByGPU(format, type)) { // 2D canvas has only FrontBuffer. TexImageImpl(function_id, target, level, internalformat, xoffset, yoffset, zoffset, format, type, @@ -5228,9 +5246,10 @@ source_image_rect == SentinelEmptyRect() || source_image_rect == IntRect(0, 0, video->videoWidth(), video->videoHeight()); - const bool use_copyTextureCHROMIUM = - function_id == kTexImage2D && source_image_rect_is_default && - depth == 1 && GL_TEXTURE_2D == target && CanUseTexImageByGPU(type); + const bool use_copyTextureCHROMIUM = function_id == kTexImage2D && + source_image_rect_is_default && + depth == 1 && GL_TEXTURE_2D == target && + CanUseTexImageByGPU(format, type); // Format of source video may be 16-bit format, e.g. Y16 format. // glCopyTextureCHROMIUM requires the source texture to be in 8-bit format. // Converting 16-bits formated source texture to 8-bits formated texture will @@ -5244,16 +5263,9 @@ // to system memory if possible. Otherwise, it will fall back to the normal // SW path. - // Note that neither - // HTMLVideoElement::copyVideoTextureToPlatformTexture nor - // ImageBuffer::copyToPlatformTexture allocate the destination texture - // any more. - TexImage2DBase(target, level, internalformat, video->videoWidth(), - video->videoHeight(), 0, format, type, nullptr); - - if (video->CopyVideoTextureToPlatformTexture(ContextGL(), texture->Object(), - unpack_premultiply_alpha_, - unpack_flip_y_)) { + if (video->CopyVideoTextureToPlatformTexture( + ContextGL(), texture->Object(), internalformat, format, type, + unpack_premultiply_alpha_, unpack_flip_y_)) { texture->UpdateLastUploadedVideo(video->GetWebMediaPlayer()); return; } @@ -5297,6 +5309,11 @@ // This is a straight GPU-GPU copy, any necessary color space conversion // was handled in the paintCurrentFrameInContext() call. + // Note that copyToPlatformTexture no longer allocates the destination + // texture. + TexImage2DBase(target, level, internalformat, video->videoWidth(), + video->videoHeight(), 0, format, type, nullptr); + if (image_buffer->CopyToPlatformTexture( FunctionIDToSnapshotReason(function_id), ContextGL(), target, texture->Object(), unpack_premultiply_alpha_, unpack_flip_y_, @@ -5393,7 +5410,7 @@ // TODO(kbr): make this work for sub-rectangles of ImageBitmaps. if (function_id != kTexSubImage3D && function_id != kTexImage3D && - bitmap->IsAccelerated() && CanUseTexImageByGPU(type) && + bitmap->IsAccelerated() && CanUseTexImageByGPU(format, type) && !selecting_sub_rectangle) { if (function_id == kTexImage2D) { TexImage2DBase(target, level, internalformat, width, height, 0, format, @@ -5442,12 +5459,12 @@ if ((is_pixel_data_bgra && !WebGLImageConversion::ExtractImageData( pixel_data_ptr, WebGLImageConversion::DataFormat::kDataFormatBGRA8, - bitmap->size(), source_sub_rect, depth, unpack_image_height, + bitmap->Size(), source_sub_rect, depth, unpack_image_height, format, type, false, false, data)) || (is_pixel_data_rgba && !WebGLImageConversion::ExtractImageData( pixel_data_ptr, WebGLImageConversion::DataFormat::kDataFormatRGBA8, - bitmap->size(), source_sub_rect, depth, unpack_image_height, + bitmap->Size(), source_sub_rect, depth, unpack_image_height, format, type, false, false, data))) { SynthesizeGLError(GL_INVALID_VALUE, func_name, "bad image data"); return;
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h index 3f92cf2..ee5d953 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
@@ -1111,7 +1111,7 @@ GLint zoffset, CanvasImageSource*, const IntRect& source_sub_rectangle); - virtual bool CanUseTexImageByGPU(GLenum type); + bool CanUseTexImageByGPU(GLenum format, GLenum type); virtual WebGLImageConversion::PixelStoreParams GetPackPixelStoreParams(); virtual WebGLImageConversion::PixelStoreParams GetUnpackPixelStoreParams(
diff --git a/third_party/WebKit/Source/modules/webusb/USBDevice.cpp b/third_party/WebKit/Source/modules/webusb/USBDevice.cpp index e651ee3..df77227d 100644 --- a/third_party/WebKit/Source/modules/webusb/USBDevice.cpp +++ b/third_party/WebKit/Source/modules/webusb/USBDevice.cpp
@@ -6,7 +6,7 @@ #include "bindings/core/v8/ScriptPromise.h" #include "bindings/core/v8/ScriptPromiseResolver.h" -#include "bindings/core/v8/ToV8.h" +#include "bindings/core/v8/ToV8ForCore.h" #include "core/dom/DOMArrayBuffer.h" #include "core/dom/DOMArrayBufferView.h" #include "core/dom/DOMException.h"
diff --git a/third_party/WebKit/Source/platform/DragImage.h b/third_party/WebKit/Source/platform/DragImage.h index 5bd6091cf..7cc2e3e 100644 --- a/third_party/WebKit/Source/platform/DragImage.h +++ b/third_party/WebKit/Source/platform/DragImage.h
@@ -70,7 +70,7 @@ const SkBitmap& Bitmap() { return bitmap_; } float ResolutionScale() const { return resolution_scale_; } - IntSize size() const { return IntSize(bitmap_.width(), bitmap_.height()); } + IntSize Size() const { return IntSize(bitmap_.width(), bitmap_.height()); } void Scale(float scale_x, float scale_y);
diff --git a/third_party/WebKit/Source/platform/DragImageTest.cpp b/third_party/WebKit/Source/platform/DragImageTest.cpp index 91d9fb4..43d1de7 100644 --- a/third_party/WebKit/Source/platform/DragImageTest.cpp +++ b/third_party/WebKit/Source/platform/DragImageTest.cpp
@@ -59,7 +59,7 @@ return AdoptRef(new TestImage(size)); } - IntSize size() const override { + IntSize Size() const override { ASSERT(image_); return IntSize(image_->width(), image_->height()); @@ -118,7 +118,7 @@ ASSERT_TRUE(drag_image); drag_image->Scale(0.5, 0.5); - IntSize size = drag_image->size(); + IntSize size = drag_image->Size(); EXPECT_EQ(1, size.Width()); EXPECT_EQ(1, size.Height()); } @@ -150,7 +150,7 @@ std::unique_ptr<DragImage> expected_image = DragImage::Create( url, expected_label, font_description, device_scale_factor); - EXPECT_EQ(test_image->size().Width(), expected_image->size().Width()); + EXPECT_EQ(test_image->Size().Width(), expected_image->Size().Width()); } TEST(DragImageTest, InterpolationNone) {
diff --git a/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5 b/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5 index 66ee8e6..bf202e6 100644 --- a/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5 +++ b/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
@@ -779,7 +779,7 @@ }, { name: "PresentationReceiver", - status: "experimental", + status: "stable", }, { name: "PrintBrowser", @@ -849,7 +849,7 @@ }, { name: "ServiceWorkerNavigationPreload", - origin_trial_feature_name: "ServiceWorkerNavigationPreload", + status: "stable", }, { name: "SetRootScroller",
diff --git a/third_party/WebKit/Source/platform/exported/WebImage.cpp b/third_party/WebKit/Source/platform/exported/WebImage.cpp index 724838b..3a9131d9 100644 --- a/third_party/WebKit/Source/platform/exported/WebImage.cpp +++ b/third_party/WebKit/Source/platform/exported/WebImage.cpp
@@ -126,7 +126,7 @@ return bitmap_.isNull(); } -WebSize WebImage::size() const { +WebSize WebImage::Size() const { return WebSize(bitmap_.width(), bitmap_.height()); }
diff --git a/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.cpp b/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.cpp index bbfdea4c..c8859d1 100644 --- a/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.cpp +++ b/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.cpp
@@ -44,7 +44,7 @@ return scrollbar_->Location(); } -WebSize WebScrollbarImpl::size() const { +WebSize WebScrollbarImpl::Size() const { return scrollbar_->Size(); }
diff --git a/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h b/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h index 5c79db2..dc7765a 100644 --- a/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h +++ b/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h
@@ -50,7 +50,7 @@ bool IsOverlay() const override; int Value() const override; WebPoint Location() const override; - WebSize size() const override; + WebSize Size() const override; bool Enabled() const override; int Maximum() const override; int TotalSize() const override;
diff --git a/third_party/WebKit/Source/platform/exported/WebScrollbarThemeClientImpl.cpp b/third_party/WebKit/Source/platform/exported/WebScrollbarThemeClientImpl.cpp index 6521d40e..e2b20e8 100644 --- a/third_party/WebKit/Source/platform/exported/WebScrollbarThemeClientImpl.cpp +++ b/third_party/WebKit/Source/platform/exported/WebScrollbarThemeClientImpl.cpp
@@ -56,7 +56,7 @@ } IntSize WebScrollbarThemeClientImpl::Size() const { - return scrollbar_.size(); + return scrollbar_.Size(); } IntPoint WebScrollbarThemeClientImpl::Location() const {
diff --git a/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp b/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp index cc37b9e..a7b5a46a 100644 --- a/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp +++ b/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp
@@ -56,8 +56,8 @@ AcceleratedStaticBitmapImage::~AcceleratedStaticBitmapImage() {} -IntSize AcceleratedStaticBitmapImage::size() const { - return texture_holder_->size(); +IntSize AcceleratedStaticBitmapImage::Size() const { + return texture_holder_->Size(); } void AcceleratedStaticBitmapImage::UpdateSyncToken(gpu::SyncToken sync_token) {
diff --git a/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.h b/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.h index 8ed1dc5c..0d91cbb 100644 --- a/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.h +++ b/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.h
@@ -37,7 +37,7 @@ IntSize mailbox_size); bool CurrentFrameKnownToBeOpaque(MetadataMode = kUseCurrentMetadata) override; - IntSize size() const override; + IntSize Size() const override; sk_sp<SkImage> ImageForCurrentFrame() override; bool IsTextureBacked() const override { return true; }
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp b/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp index 628de99..0a61fbac 100644 --- a/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp +++ b/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp
@@ -175,7 +175,7 @@ have_size_ = true; } -IntSize BitmapImage::size() const { +IntSize BitmapImage::Size() const { UpdateSize(); return size_; } @@ -332,7 +332,7 @@ size_available_ = source_.IsSizeAvailable(); - if (size_available_ && HasVisibleImageSize(size())) { + if (size_available_ && HasVisibleImageSize(Size())) { BitmapImageMetrics::CountDecodedImageType(source_.FilenameExtension()); if (source_.FilenameExtension() == "jpg") BitmapImageMetrics::CountImageOrientation(
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImage.h b/third_party/WebKit/Source/platform/graphics/BitmapImage.h index fed9073..4ee77dc5 100644 --- a/third_party/WebKit/Source/platform/graphics/BitmapImage.h +++ b/third_party/WebKit/Source/platform/graphics/BitmapImage.h
@@ -61,7 +61,7 @@ bool CurrentFrameHasSingleSecurityOrigin() const override; - IntSize size() const override; + IntSize Size() const override; IntSize SizeRespectingOrientation() const; bool GetHotSpot(IntPoint&) const override; String FilenameExtension() const override;
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp b/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp index 3930947..419f214 100644 --- a/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp +++ b/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp
@@ -236,7 +236,7 @@ LoadImage("/LayoutTests/images/resources/anim_none.gif", false); FrameAtIndex(1); int frame_size = - static_cast<int>(image_->size().Area() * sizeof(ImageFrame::PixelData)); + static_cast<int>(image_->Size().Area() * sizeof(ImageFrame::PixelData)); EXPECT_EQ(frame_size, LastDecodedSizeChange()); }
diff --git a/third_party/WebKit/Source/platform/graphics/CrossfadeGeneratedImage.cpp b/third_party/WebKit/Source/platform/graphics/CrossfadeGeneratedImage.cpp index 01687882..fe20233 100644 --- a/third_party/WebKit/Source/platform/graphics/CrossfadeGeneratedImage.cpp +++ b/third_party/WebKit/Source/platform/graphics/CrossfadeGeneratedImage.cpp
@@ -44,8 +44,8 @@ void CrossfadeGeneratedImage::DrawCrossfade(PaintCanvas* canvas, const PaintFlags& flags, ImageClampingMode clamp_mode) { - FloatRect from_image_rect(FloatPoint(), FloatSize(from_image_->size())); - FloatRect to_image_rect(FloatPoint(), FloatSize(to_image_->size())); + FloatRect from_image_rect(FloatPoint(), FloatSize(from_image_->Size())); + FloatRect to_image_rect(FloatPoint(), FloatSize(to_image_->Size())); FloatRect dest_rect((FloatPoint()), FloatSize(crossfade_size_)); // TODO(junov): The various effects encoded into paint should probably be
diff --git a/third_party/WebKit/Source/platform/graphics/CrossfadeGeneratedImage.h b/third_party/WebKit/Source/platform/graphics/CrossfadeGeneratedImage.h index ff9369a91..4d9ef645 100644 --- a/third_party/WebKit/Source/platform/graphics/CrossfadeGeneratedImage.h +++ b/third_party/WebKit/Source/platform/graphics/CrossfadeGeneratedImage.h
@@ -50,7 +50,7 @@ bool UsesContainerSize() const override { return false; } bool HasRelativeSize() const override { return false; } - IntSize size() const override { return crossfade_size_; } + IntSize Size() const override { return crossfade_size_; } protected: void Draw(PaintCanvas*,
diff --git a/third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp b/third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp index 243d3413..afd588d 100644 --- a/third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp +++ b/third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp
@@ -147,7 +147,7 @@ if (!decoder || !decoder->IsSizeAvailable()) return nullptr; - const IntSize size = decoder->size(); + const IntSize size = decoder->Size(); const SkImageInfo info = SkImageInfo::MakeN32(size.Width(), size.Height(), kPremul_SkAlphaType, decoder->ColorSpaceForSkImages());
diff --git a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp index 09de72ed..d1048585 100644 --- a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp +++ b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
@@ -179,8 +179,8 @@ : has_embedded_color_space_; } -IntSize DeferredImageDecoder::size() const { - return actual_decoder_ ? actual_decoder_->size() : size_; +IntSize DeferredImageDecoder::Size() const { + return actual_decoder_ ? actual_decoder_->Size() : size_; } IntSize DeferredImageDecoder::FrameSizeAtIndex(size_t index) const { @@ -255,7 +255,7 @@ if (frame_generator_) return; - size_ = actual_decoder_->size(); + size_ = actual_decoder_->Size(); has_hot_spot_ = actual_decoder_->HotSpot(hot_spot_); filename_extension_ = actual_decoder_->FilenameExtension(); // JPEG images support YUV decoding; other decoders do not. (WebP could in the
diff --git a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.h b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.h index 05eca6c..9a842c3a 100644 --- a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.h +++ b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.h
@@ -68,7 +68,7 @@ bool IsSizeAvailable(); bool HasEmbeddedColorSpace() const; - IntSize size() const; + IntSize Size() const; IntSize FrameSizeAtIndex(size_t index) const; size_t FrameCount(); int RepetitionCount() const;
diff --git a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp index 8d54bf57..d0818d0 100644 --- a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp +++ b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp
@@ -114,7 +114,7 @@ repetition_count_ = kCAnimationNone; status_ = ImageFrame::kFrameComplete; frame_duration_ = 0; - decoded_size_ = actual_decoder_->size(); + decoded_size_ = actual_decoder_->Size(); } void TearDown() override { ImageDecodingStore::Instance().Clear(); }
diff --git a/third_party/WebKit/Source/platform/graphics/GeneratedImage.h b/third_party/WebKit/Source/platform/graphics/GeneratedImage.h index b7235ec..1d77523f 100644 --- a/third_party/WebKit/Source/platform/graphics/GeneratedImage.h +++ b/third_party/WebKit/Source/platform/graphics/GeneratedImage.h
@@ -39,7 +39,7 @@ bool UsesContainerSize() const override { return true; } bool HasRelativeSize() const override { return true; } - IntSize size() const override { return size_; } + IntSize Size() const override { return size_; } // Assume that generated content has no decoded data we need to worry about void DestroyDecodedData() override {}
diff --git a/third_party/WebKit/Source/platform/graphics/Image.cpp b/third_party/WebKit/Source/platform/graphics/Image.cpp index 798ef9e..f82b3e98 100644 --- a/third_party/WebKit/Source/platform/graphics/Image.cpp +++ b/third_party/WebKit/Source/platform/graphics/Image.cpp
@@ -94,7 +94,7 @@ const FloatSize& scaled_tile_size, SkBlendMode op, const FloatSize& repeat_spacing) { - FloatSize intrinsic_tile_size(size()); + FloatSize intrinsic_tile_size(Size()); if (HasRelativeSize()) { intrinsic_tile_size.SetWidth(scaled_tile_size.Width()); intrinsic_tile_size.SetHeight(scaled_tile_size.Height());
diff --git a/third_party/WebKit/Source/platform/graphics/Image.h b/third_party/WebKit/Source/platform/graphics/Image.h index 470af4e3..869a0477 100644 --- a/third_party/WebKit/Source/platform/graphics/Image.h +++ b/third_party/WebKit/Source/platform/graphics/Image.h
@@ -90,15 +90,15 @@ virtual bool CurrentFrameHasSingleSecurityOrigin() const { return false; } static Image* NullImage(); - bool IsNull() const { return size().IsEmpty(); } + bool IsNull() const { return Size().IsEmpty(); } virtual bool UsesContainerSize() const { return false; } virtual bool HasRelativeSize() const { return false; } - virtual IntSize size() const = 0; - IntRect Rect() const { return IntRect(IntPoint(), size()); } - int width() const { return size().Width(); } - int height() const { return size().Height(); } + virtual IntSize Size() const = 0; + IntRect Rect() const { return IntRect(IntPoint(), Size()); } + int width() const { return Size().Width(); } + int height() const { return Size().Height(); } virtual bool GetHotSpot(IntPoint&) const { return false; } enum SizeAvailability { kSizeAvailable, kSizeUnavailable };
diff --git a/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp b/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp index e6a72baa..fe2f72f 100644 --- a/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp +++ b/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp
@@ -323,7 +323,7 @@ return drawing_buffer->CopyToPlatformTexture( gl, GL_TEXTURE_2D, texture_id, true, false, IntPoint(0, 0), - IntRect(IntPoint(0, 0), drawing_buffer->size()), source_buffer); + IntRect(IntPoint(0, 0), drawing_buffer->Size()), source_buffer); } void ImageBuffer::Draw(GraphicsContext& context,
diff --git a/third_party/WebKit/Source/platform/graphics/ImageLayerChromiumTest.cpp b/third_party/WebKit/Source/platform/graphics/ImageLayerChromiumTest.cpp index 0491ab0f..e3466b5 100644 --- a/third_party/WebKit/Source/platform/graphics/ImageLayerChromiumTest.cpp +++ b/third_party/WebKit/Source/platform/graphics/ImageLayerChromiumTest.cpp
@@ -49,7 +49,7 @@ return image_->isOpaque(); } - IntSize size() const override { return size_; } + IntSize Size() const override { return size_; } sk_sp<SkImage> ImageForCurrentFrame() override { return image_; }
diff --git a/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h b/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h index d822d4e..9c203f6 100644 --- a/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h +++ b/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h
@@ -20,7 +20,7 @@ bool IsSkiaTextureHolder() final { return false; } bool IsMailboxTextureHolder() final { return true; } unsigned SharedContextId() final; - IntSize size() const final { return size_; } + IntSize Size() const final { return size_; } bool CurrentFrameKnownToBeOpaque(Image::MetadataMode) final { return false; } gpu::Mailbox GetMailbox() final { return mailbox_; }
diff --git a/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp b/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp index 89b5cb6f..29d8a5e7 100644 --- a/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp +++ b/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
@@ -203,7 +203,7 @@ bool is_web_gl_software_rendering /* This flag is true when WebGL's commit is called on SwiftShader. */) { - if (!image || !VerifyImageSize(image->size())) + if (!image || !VerifyImageSize(image->Size())) return; if (!frame_sink_id_.is_valid()) { PostImageToPlaceholder(std::move(image));
diff --git a/third_party/WebKit/Source/platform/graphics/PlaceholderImage.h b/third_party/WebKit/Source/platform/graphics/PlaceholderImage.h index d211171..f87d166 100644 --- a/third_party/WebKit/Source/platform/graphics/PlaceholderImage.h +++ b/third_party/WebKit/Source/platform/graphics/PlaceholderImage.h
@@ -28,7 +28,7 @@ ~PlaceholderImage() override; - IntSize size() const override { return size_; } + IntSize Size() const override { return size_; } sk_sp<SkImage> ImageForCurrentFrame() override;
diff --git a/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp b/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp index d759d86..ab57e09 100644 --- a/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp +++ b/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.cpp
@@ -34,7 +34,7 @@ DCHECK(texture_holder->IsMailboxTextureHolder()); const gpu::Mailbox mailbox = texture_holder->GetMailbox(); const gpu::SyncToken sync_token = texture_holder->GetSyncToken(); - const IntSize mailbox_size = texture_holder->size(); + const IntSize mailbox_size = texture_holder->Size(); gpu::gles2::GLES2Interface* shared_gl = SharedGpuContext::Gl(); GrContext* shared_gr_context = SharedGpuContext::Gr();
diff --git a/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.h b/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.h index c801c0fe..15b5202 100644 --- a/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.h +++ b/third_party/WebKit/Source/platform/graphics/SkiaTextureHolder.h
@@ -18,7 +18,7 @@ bool IsSkiaTextureHolder() final { return true; } bool IsMailboxTextureHolder() final { return false; } unsigned SharedContextId() final; - IntSize size() const final { + IntSize Size() const final { return IntSize(image_->width(), image_->height()); } bool CurrentFrameKnownToBeOpaque(Image::MetadataMode) final {
diff --git a/third_party/WebKit/Source/platform/graphics/TextureHolder.h b/third_party/WebKit/Source/platform/graphics/TextureHolder.h index e487b13..18dec34 100644 --- a/third_party/WebKit/Source/platform/graphics/TextureHolder.h +++ b/third_party/WebKit/Source/platform/graphics/TextureHolder.h
@@ -24,7 +24,7 @@ virtual bool IsSkiaTextureHolder() = 0; virtual bool IsMailboxTextureHolder() = 0; virtual unsigned SharedContextId() = 0; - virtual IntSize size() const = 0; + virtual IntSize Size() const = 0; virtual bool CurrentFrameKnownToBeOpaque(Image::MetadataMode) = 0; // Methods overrided by MailboxTextureHolder
diff --git a/third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.cpp b/third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.cpp index 5892c07..ce8205ef 100644 --- a/third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.cpp +++ b/third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.cpp
@@ -21,7 +21,7 @@ UnacceleratedStaticBitmapImage::~UnacceleratedStaticBitmapImage() {} -IntSize UnacceleratedStaticBitmapImage::size() const { +IntSize UnacceleratedStaticBitmapImage::Size() const { return IntSize(image_->width(), image_->height()); }
diff --git a/third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.h b/third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.h index 0e08dd0..c740ca9 100644 --- a/third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.h +++ b/third_party/WebKit/Source/platform/graphics/UnacceleratedStaticBitmapImage.h
@@ -16,7 +16,7 @@ static PassRefPtr<UnacceleratedStaticBitmapImage> Create(sk_sp<SkImage>); bool CurrentFrameKnownToBeOpaque(MetadataMode = kUseCurrentMetadata) override; - IntSize size() const override; + IntSize Size() const override; sk_sp<SkImage> ImageForCurrentFrame() override; void Draw(PaintCanvas*,
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp index 9f08a210..7a26d0f 100644 --- a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp +++ b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
@@ -311,7 +311,7 @@ WebGLImageConversion::AlphaOp op = need_premultiply ? WebGLImageConversion::kAlphaDoPremultiply : WebGLImageConversion::kAlphaDoNothing; - ReadBackFramebuffer(pixels, size().Width(), size().Height(), kReadbackSkia, + ReadBackFramebuffer(pixels, Size().Width(), Size().Height(), kReadbackSkia, op); } @@ -1052,8 +1052,8 @@ ScopedStateRestorer scoped_state_restorer(this); DCHECK(!premultiplied_alpha_); - width = size().Width(); - height = size().Height(); + width = Size().Width(); + height = Size().Height(); CheckedNumeric<int> data_size = 4; data_size *= width;
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h index b776ff6..16e778c 100644 --- a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h +++ b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h
@@ -154,7 +154,7 @@ // Bind the default framebuffer to |target|. |target| must be // GL_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_DRAW_FRAMEBUFFER. void Bind(GLenum target); - IntSize size() const { return size_; } + IntSize Size() const { return size_; } // Resolves the multisample color buffer to the normal color buffer and leaves // the resolved color buffer bound to GL_READ_FRAMEBUFFER and
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/ImageLayerBridge.cpp b/third_party/WebKit/Source/platform/graphics/gpu/ImageLayerBridge.cpp index 1eb13b5..1c7f678a3 100644 --- a/third_party/WebKit/Source/platform/graphics/gpu/ImageLayerBridge.cpp +++ b/third_party/WebKit/Source/platform/graphics/gpu/ImageLayerBridge.cpp
@@ -111,7 +111,7 @@ bitmap.get(), gfx::Size(image_->width(), image_->height())); auto func = WTF::Bind(&ImageLayerBridge::MailboxReleasedSoftware, weak_ptr_factory_.CreateWeakPtr(), - base::Passed(&bitmap), image_->size()); + base::Passed(&bitmap), image_->Size()); *out_release_callback = cc::SingleReleaseCallback::Create( ConvertToBaseCallback(std::move(func))); } @@ -126,17 +126,17 @@ std::unique_ptr<cc::SharedBitmap> ImageLayerBridge::CreateOrRecycleBitmap() { auto it = std::remove_if(recycled_bitmaps_.begin(), recycled_bitmaps_.end(), [this](const RecycledBitmap& bitmap) { - return bitmap.size != image_->size(); + return bitmap.size != image_->Size(); }); recycled_bitmaps_.Shrink(it - recycled_bitmaps_.begin()); if (!recycled_bitmaps_.IsEmpty()) { RecycledBitmap recycled = std::move(recycled_bitmaps_.back()); recycled_bitmaps_.pop_back(); - DCHECK(recycled.size == image_->size()); + DCHECK(recycled.size == image_->Size()); return std::move(recycled.bitmap); } - return Platform::Current()->AllocateSharedBitmap(image_->size()); + return Platform::Current()->AllocateSharedBitmap(image_->Size()); } void ImageLayerBridge::MailboxReleasedGpu(RefPtr<StaticBitmapImage> image,
diff --git a/third_party/WebKit/Source/platform/graphics/test/MockImageDecoder.h b/third_party/WebKit/Source/platform/graphics/test/MockImageDecoder.h index eb63c13..74fe6ff 100644 --- a/third_party/WebKit/Source/platform/graphics/test/MockImageDecoder.h +++ b/third_party/WebKit/Source/platform/graphics/test/MockImageDecoder.h
@@ -76,7 +76,7 @@ ~MockImageDecoder() { client_->DecoderBeingDestroyed(); } IntSize DecodedSize() const override { - return client_->DecodedSize().IsEmpty() ? size() : client_->DecodedSize(); + return client_->DecodedSize().IsEmpty() ? Size() : client_->DecodedSize(); } String FilenameExtension() const override { return "mock"; } @@ -114,7 +114,7 @@ void InitializeNewFrame(size_t index) override { if (frame_buffer_cache_[index].AllocatePixelData( - size().Width(), size().Height(), ColorSpaceForSkImages())) + Size().Width(), Size().Height(), ColorSpaceForSkImages())) frame_buffer_cache_[index].ZeroFillPixelData(); frame_buffer_cache_[index].SetHasAlpha(false); }
diff --git a/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp index 0372d6d..86cb401b 100644 --- a/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.cpp
@@ -296,7 +296,7 @@ // When this frame spans the entire image rect we can set hasAlpha to false, // since there are logically no transparent pixels outside of the frame rect. - if (buffer.OriginalFrameRect().Contains(IntRect(IntPoint(), size()))) { + if (buffer.OriginalFrameRect().Contains(IntRect(IntPoint(), Size()))) { buffer.SetHasAlpha(false); buffer.SetRequiredPreviousFrameIndex(kNotFound); } else if (buffer.RequiredPreviousFrameIndex() != kNotFound) { @@ -353,7 +353,7 @@ size_t required_previous_frame_index = buffer->RequiredPreviousFrameIndex(); if (required_previous_frame_index == kNotFound) { // This frame doesn't rely on any previous data. - if (!buffer->AllocatePixelData(size().Width(), size().Height(), + if (!buffer->AllocatePixelData(Size().Width(), Size().Height(), ColorSpaceForSkImages())) { return false; } @@ -377,7 +377,7 @@ // We want to clear the previous frame to transparent, without // affecting pixels in the image outside of the frame. const IntRect& prev_rect = prev_buffer->OriginalFrameRect(); - DCHECK(!prev_rect.Contains(IntRect(IntPoint(), size()))); + DCHECK(!prev_rect.Contains(IntRect(IntPoint(), Size()))); buffer->ZeroFillFrameRect(prev_rect); } } @@ -435,7 +435,7 @@ const ImageFrame* curr_buffer = &frame_buffer_cache_[frame_index]; if ((frame_rect_is_opaque || curr_buffer->GetAlphaBlendSource() == ImageFrame::kBlendAtopBgcolor) && - curr_buffer->OriginalFrameRect().Contains(IntRect(IntPoint(), size()))) + curr_buffer->OriginalFrameRect().Contains(IntRect(IntPoint(), Size()))) return kNotFound; // The starting state for this frame depends on the previous frame's @@ -463,7 +463,7 @@ // this frame is a blank frame, so it can again be decoded alone. // Otherwise, the previous frame contributes to this frame. return (prev_buffer->OriginalFrameRect().Contains( - IntRect(IntPoint(), size())) || + IntRect(IntPoint(), Size())) || (prev_buffer->RequiredPreviousFrameIndex() == kNotFound)) ? kNotFound : prev_frame;
diff --git a/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h b/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h index 946d6cd..8ad82490 100644 --- a/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h +++ b/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h
@@ -140,11 +140,11 @@ bool IsDecodedSizeAvailable() const { return !failed_ && size_available_; } - virtual IntSize size() const { return size_; } + virtual IntSize Size() const { return size_; } // Decoders which downsample images should override this method to // return the actual decoded size. - virtual IntSize DecodedSize() const { return size(); } + virtual IntSize DecodedSize() const { return Size(); } // Image decoders that support YUV decoding must override this to // provide the size of each component. @@ -165,7 +165,7 @@ // sizes. This does NOT differ from size() for GIF or WebP, since // decoding GIF or WebP composites any smaller frames against previous // frames to create full-size frames. - virtual IntSize FrameSizeAtIndex(size_t) const { return size(); } + virtual IntSize FrameSizeAtIndex(size_t) const { return Size(); } // Returns whether the size is legal (i.e. not going to result in // overflow elsewhere). If not, marks decoding as failed.
diff --git a/third_party/WebKit/Source/platform/image-decoders/ImageDecoderTestHelpers.cpp b/third_party/WebKit/Source/platform/image-decoders/ImageDecoderTestHelpers.cpp index b36335c..735a98c1 100644 --- a/third_party/WebKit/Source/platform/image-decoders/ImageDecoderTestHelpers.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/ImageDecoderTestHelpers.cpp
@@ -232,14 +232,14 @@ if (length < frame_offset) { EXPECT_FALSE(decoder->IsSizeAvailable()); - EXPECT_TRUE(decoder->size().IsEmpty()); + EXPECT_TRUE(decoder->Size().IsEmpty()); EXPECT_FALSE(decoder->HasEmbeddedColorSpace()); EXPECT_EQ(0u, decoder->FrameCount()); EXPECT_EQ(kCAnimationLoopOnce, decoder->RepetitionCount()); EXPECT_FALSE(decoder->FrameBufferAtIndex(0)); } else { EXPECT_TRUE(decoder->IsSizeAvailable()); - EXPECT_FALSE(decoder->size().IsEmpty()); + EXPECT_FALSE(decoder->Size().IsEmpty()); EXPECT_EQ(decoder->HasEmbeddedColorSpace(), has_color_space); EXPECT_EQ(1u, decoder->FrameCount()); EXPECT_EQ(expected_repetition_count, decoder->RepetitionCount());
diff --git a/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageDecoderTest.cpp b/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageDecoderTest.cpp index ae7232ab..15d85c7 100644 --- a/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageDecoderTest.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageDecoderTest.cpp
@@ -31,8 +31,8 @@ std::unique_ptr<ImageDecoder> decoder = CreateDecoder(); decoder->SetData(data.Get(), true); EXPECT_TRUE(decoder->IsSizeAvailable()); - EXPECT_EQ(256, decoder->size().Width()); - EXPECT_EQ(256, decoder->size().Height()); + EXPECT_EQ(256, decoder->Size().Width()); + EXPECT_EQ(256, decoder->Size().Height()); } TEST(BMPImageDecoderTest, parseAndDecode) {
diff --git a/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.cpp b/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.cpp index 80c6818b..f3df130 100644 --- a/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.cpp
@@ -117,8 +117,8 @@ // Initialize the framebuffer if needed. DCHECK(buffer_); // Parent should set this before asking us to decode! if (buffer_->GetStatus() == ImageFrame::kFrameEmpty) { - if (!buffer_->AllocatePixelData(parent_->size().Width(), - parent_->size().Height(), + if (!buffer_->AllocatePixelData(parent_->Size().Width(), + parent_->Size().Height(), parent_->ColorSpaceForSkImages())) { return parent_->SetFailed(); // Unable to allocate. } @@ -130,10 +130,10 @@ buffer_->SetHasAlpha(false); // For BMPs, the frame always fills the entire image. - buffer_->SetOriginalFrameRect(IntRect(IntPoint(), parent_->size())); + buffer_->SetOriginalFrameRect(IntRect(IntPoint(), parent_->Size())); if (!is_top_down_) - coord_.SetY(parent_->size().Height() - 1); + coord_.SetY(parent_->Size().Height() - 1); } // Decode the data. @@ -150,7 +150,7 @@ !seen_non_zero_alpha_pixel_)) { // Reset decoding coordinates to start of image. coord_.SetX(0); - coord_.SetY(is_top_down_ ? 0 : (parent_->size().Height() - 1)); + coord_.SetY(is_top_down_ ? 0 : (parent_->Size().Height() - 1)); // The AND mask is stored as 1-bit data. info_header_.bi_bit_count = 1; @@ -643,7 +643,7 @@ switch (code) { case 0: // Magic token: EOL // Skip any remaining pixels in this row. - if (coord_.X() < parent_->size().Width()) + if (coord_.X() < parent_->Size().Width()) buffer_->SetHasAlpha(true); MoveBufferToNextRow(); @@ -652,8 +652,8 @@ case 1: // Magic token: EOF // Skip any remaining pixels in the image. - if ((coord_.X() < parent_->size().Width()) || - (is_top_down_ ? (coord_.Y() < (parent_->size().Height() - 1)) + if ((coord_.X() < parent_->Size().Width()) || + (is_top_down_ ? (coord_.Y() < (parent_->Size().Height() - 1)) : (coord_.Y() > 0))) buffer_->SetHasAlpha(true); // There's no need to move |m_coord| here to trigger the caller @@ -674,7 +674,7 @@ const uint8_t dy = ReadUint8(3); if (dx || dy) buffer_->SetHasAlpha(true); - if (((coord_.X() + dx) > parent_->size().Width()) || + if (((coord_.X() + dx) > parent_->Size().Width()) || PastEndOfImage(dy)) return kFailure; @@ -704,7 +704,7 @@ // The following color data is repeated for |count| total pixels. // Strangely, some BMPs seem to specify excessively large counts // here; ignore pixels past the end of the row. - const int end_x = std::min(coord_.X() + count, parent_->size().Width()); + const int end_x = std::min(coord_.X() + count, parent_->Size().Width()); if (info_header_.bi_compression == RLE24) { // Bail if there isn't enough data. @@ -746,11 +746,11 @@ return kInsufficientData; if (!in_rle) - num_pixels = parent_->size().Width(); + num_pixels = parent_->Size().Width(); // Fail if we're being asked to decode more pixels than remain in the row. const int end_x = coord_.X() + num_pixels; - if (end_x > parent_->size().Width()) + if (end_x > parent_->Size().Width()) return kFailure; // Determine how many bytes of data the requested number of pixels
diff --git a/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.h b/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.h index de4ac00..2d3df42 100644 --- a/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.h +++ b/third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.h
@@ -195,7 +195,7 @@ // the end of the image. Here "plus" means "toward the end of the // image", so downwards for m_isTopDown images and upwards otherwise. inline bool PastEndOfImage(int num_rows) { - return is_top_down_ ? ((coord_.Y() + num_rows) >= parent_->size().Height()) + return is_top_down_ ? ((coord_.Y() + num_rows) >= parent_->Size().Height()) : ((coord_.Y() - num_rows) < 0); }
diff --git a/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp index 92b2183..25a00e1 100644 --- a/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoder.cpp
@@ -112,10 +112,10 @@ const int x_begin = frame_context->xOffset(); const int y_begin = frame_context->yOffset() + row_number; const int x_end = std::min(static_cast<int>(frame_context->xOffset() + width), - size().Width()); + Size().Width()); const int y_end = std::min( static_cast<int>(frame_context->yOffset() + row_number + repeat_count), - size().Height()); + Size().Height()); if (!width || (x_begin < 0) || (y_begin < 0) || (x_end <= x_begin) || (y_end <= y_begin)) return true; @@ -222,7 +222,7 @@ ImageFrame* buffer = &frame_buffer_cache_[index]; const GIFFrameContext* frame_context = reader_->frameContext(index); buffer->SetOriginalFrameRect( - Intersection(frame_context->frameRect(), IntRect(IntPoint(), size()))); + Intersection(frame_context->frameRect(), IntRect(IntPoint(), Size()))); buffer->SetDuration(frame_context->delayTime()); buffer->SetDisposalMethod(frame_context->getDisposalMethod()); buffer->SetRequiredPreviousFrameIndex(
diff --git a/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoderTest.cpp b/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoderTest.cpp index bf7fa97..ee469c8 100644 --- a/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoderTest.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/gif/GIFImageDecoderTest.cpp
@@ -433,7 +433,7 @@ decoder->SetMemoryAllocator(nullptr); ASSERT_TRUE(frame); - EXPECT_EQ(IntRect(IntPoint(), decoder->size()), frame->OriginalFrameRect()); + EXPECT_EQ(IntRect(IntPoint(), decoder->Size()), frame->OriginalFrameRect()); EXPECT_FALSE(frame->HasAlpha()); }
diff --git a/third_party/WebKit/Source/platform/image-decoders/ico/ICOImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/ico/ICOImageDecoder.cpp index 6c6ddd6c..669289ee6 100644 --- a/third_party/WebKit/Source/platform/image-decoders/ico/ICOImageDecoder.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/ico/ICOImageDecoder.cpp
@@ -65,13 +65,13 @@ SetDataForPNGDecoderAtIndex(i); } -IntSize ICOImageDecoder::size() const { - return frame_size_.IsEmpty() ? ImageDecoder::size() : frame_size_; +IntSize ICOImageDecoder::Size() const { + return frame_size_.IsEmpty() ? ImageDecoder::Size() : frame_size_; } IntSize ICOImageDecoder::FrameSizeAtIndex(size_t index) const { return (index && (index < dir_entries_.size())) ? dir_entries_[index].size_ - : size(); + : Size(); } bool ICOImageDecoder::SetSize(unsigned width, unsigned height) { @@ -220,7 +220,7 @@ if (png_decoder->IsSizeAvailable()) { // Fail if the size the PNGImageDecoder calculated does not match the size // in the directory. - if (png_decoder->size() != dir_entry.size_) + if (png_decoder->Size() != dir_entry.size_) return SetFailed(); const auto* frame = png_decoder->FrameBufferAtIndex(0);
diff --git a/third_party/WebKit/Source/platform/image-decoders/ico/ICOImageDecoder.h b/third_party/WebKit/Source/platform/image-decoders/ico/ICOImageDecoder.h index 6254b9bc..bcec03e 100644 --- a/third_party/WebKit/Source/platform/image-decoders/ico/ICOImageDecoder.h +++ b/third_party/WebKit/Source/platform/image-decoders/ico/ICOImageDecoder.h
@@ -50,7 +50,7 @@ // ImageDecoder: String FilenameExtension() const override { return "ico"; } void OnSetData(SegmentReader*) override; - IntSize size() const override; + IntSize Size() const override; IntSize FrameSizeAtIndex(size_t) const override; bool SetSize(unsigned width, unsigned height) override; bool FrameIsCompleteAtIndex(size_t) const override;
diff --git a/third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp index fbf6830..69b457f 100644 --- a/third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
@@ -758,7 +758,7 @@ } unsigned JPEGImageDecoder::DesiredScaleNumerator() const { - size_t original_bytes = size().Width() * size().Height() * 4; + size_t original_bytes = Size().Width() * Size().Height() * 4; if (original_bytes <= max_decoded_bytes_) return scaleDenominator; @@ -949,7 +949,7 @@ buffer.SetHasAlpha(true); // For JPEGs, the frame always fills the entire image. - buffer.SetOriginalFrameRect(IntRect(IntPoint(), size())); + buffer.SetOriginalFrameRect(IntRect(IntPoint(), Size())); } #if defined(TURBO_JPEG_RGB_SWIZZLE)
diff --git a/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp index 7ec8bc2c..7f37ec5 100644 --- a/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
@@ -129,7 +129,7 @@ const PNGImageReader::FrameInfo& frame_info = reader_->GetFrameInfo(index); ImageFrame& buffer = frame_buffer_cache_[index]; - DCHECK(IntRect(IntPoint(), size()).Contains(frame_info.frame_rect)); + DCHECK(IntRect(IntPoint(), Size()).Contains(frame_info.frame_rect)); buffer.SetOriginalFrameRect(frame_info.frame_rect); buffer.SetDuration(frame_info.duration); @@ -292,7 +292,7 @@ if (PNG_INTERLACE_ADAM7 == png_get_interlace_type(png, reader_->InfoPtr())) { unsigned color_channels = has_alpha_channel_ ? 4 : 3; - reader_->CreateInterlaceBuffer(color_channels * size().Area()); + reader_->CreateInterlaceBuffer(color_channels * Size().Area()); if (!reader_->InterlaceBuffer()) { longjmp(JMPBUF(png), 1); return; @@ -303,7 +303,7 @@ } const IntRect& frame_rect = buffer.OriginalFrameRect(); - DCHECK(IntRect(IntPoint(), size()).Contains(frame_rect)); + DCHECK(IntRect(IntPoint(), Size()).Contains(frame_rect)); /* libpng comments (here to explain what follows). * @@ -332,7 +332,7 @@ int y = row_index + frame_rect.Y(); if (y < 0) return; - DCHECK_LT(y, size().Height()); + DCHECK_LT(y, Size().Height()); /* libpng comments (continued). * @@ -358,7 +358,7 @@ if (png_bytep interlace_buffer = reader_->InterlaceBuffer()) { unsigned color_channels = has_alpha ? 4 : 3; - row = interlace_buffer + (row_index * color_channels * size().Width()); + row = interlace_buffer + (row_index * color_channels * Size().Width()); png_progressive_combine_row(reader_->PngPtr(), row, row_buffer); }
diff --git a/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp index 0f422d9..6b37372 100644 --- a/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp
@@ -53,7 +53,7 @@ void TestSize(const char* png_file, IntSize expected_size) { auto decoder = CreateDecoderWithPngData(png_file); EXPECT_TRUE(decoder->IsSizeAvailable()); - EXPECT_EQ(expected_size, decoder->size()); + EXPECT_EQ(expected_size, decoder->Size()); } // Test whether querying for the size of the image works if we present the @@ -74,11 +74,11 @@ if (length < bytes_needed_to_decode_size) { EXPECT_FALSE(decoder->IsSizeAvailable()); - EXPECT_TRUE(decoder->size().IsEmpty()); + EXPECT_TRUE(decoder->Size().IsEmpty()); EXPECT_FALSE(decoder->Failed()); } else { EXPECT_TRUE(decoder->IsSizeAvailable()); - EXPECT_EQ(expected_size, decoder->size()); + EXPECT_EQ(expected_size, decoder->Size()); } } EXPECT_FALSE(decoder->Failed()); @@ -625,7 +625,7 @@ IntSize expected_size(5, 5); EXPECT_TRUE(decoder->IsSizeAvailable()); - EXPECT_EQ(expected_size, decoder->size()); + EXPECT_EQ(expected_size, decoder->Size()); const size_t kExpectedFrameCount = 0; EXPECT_EQ(kExpectedFrameCount, decoder->FrameCount()); @@ -892,7 +892,7 @@ frame = decoder->FrameBufferAtIndex(1); ASSERT_TRUE(frame); ASSERT_FALSE(decoder->Failed()); - ASSERT_NE(IntRect({}, decoder->size()), frame->OriginalFrameRect()); + ASSERT_NE(IntRect({}, decoder->Size()), frame->OriginalFrameRect()); ASSERT_EQ(kNotFound, frame->RequiredPreviousFrameIndex()); const auto hash = HashBitmap(frame->Bitmap());
diff --git a/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp index dea2eb4d..4aa6b91 100644 --- a/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp +++ b/third_party/WebKit/Source/platform/image-decoders/webp/WEBPImageDecoder.cpp
@@ -245,7 +245,7 @@ buffer.RequiredPreviousFrameIndex(); if (required_previous_frame_index == kNotFound) { frame_background_has_alpha_ = - !buffer.OriginalFrameRect().Contains(IntRect(IntPoint(), size())); + !buffer.OriginalFrameRect().Contains(IntRect(IntPoint(), Size())); } else { const ImageFrame& prev_buffer = frame_buffer_cache_[required_previous_frame_index]; @@ -397,7 +397,7 @@ IntRect frame_rect(animated_frame.x_offset, animated_frame.y_offset, animated_frame.width, animated_frame.height); buffer->SetOriginalFrameRect( - Intersection(frame_rect, IntRect(IntPoint(), size()))); + Intersection(frame_rect, IntRect(IntPoint(), Size()))); buffer->SetDuration(animated_frame.duration); buffer->SetDisposalMethod(animated_frame.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND @@ -460,7 +460,7 @@ DCHECK_NE(buffer.GetStatus(), ImageFrame::kFrameComplete); if (buffer.GetStatus() == ImageFrame::kFrameEmpty) { - if (!buffer.AllocatePixelData(size().Width(), size().Height(), + if (!buffer.AllocatePixelData(Size().Width(), Size().Height(), ColorSpaceForSkImages())) return SetFailed(); buffer.ZeroFillPixelData(); @@ -469,7 +469,7 @@ // loading. The correct alpha value for the frame will be set when it is // fully decoded. buffer.SetHasAlpha(true); - buffer.SetOriginalFrameRect(IntRect(IntPoint(), size())); + buffer.SetOriginalFrameRect(IntRect(IntPoint(), Size())); } const IntRect& frame_rect = buffer.OriginalFrameRect(); @@ -490,7 +490,7 @@ WebPInitDecBuffer(&decoder_buffer_); decoder_buffer_.colorspace = mode; decoder_buffer_.u.RGBA.stride = - size().Width() * sizeof(ImageFrame::PixelData); + Size().Width() * sizeof(ImageFrame::PixelData); decoder_buffer_.u.RGBA.size = decoder_buffer_.u.RGBA.stride * frame_rect.Height(); decoder_buffer_.is_external_memory = 1;
diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.cpp b/third_party/WebKit/Source/web/ChromeClientImpl.cpp index cb86012..ba81ee3 100644 --- a/third_party/WebKit/Source/web/ChromeClientImpl.cpp +++ b/third_party/WebKit/Source/web/ChromeClientImpl.cpp
@@ -205,8 +205,8 @@ // These numbers will be fairly wrong. The window's x/y coordinates will // be the top left corner of the screen and the size will be the content // size instead of the window size. - rect.width = web_view_->size().width; - rect.height = web_view_->size().height; + rect.width = web_view_->Size().width; + rect.height = web_view_->Size().height; } return IntRect(rect); }
diff --git a/third_party/WebKit/Source/web/FullscreenController.cpp b/third_party/WebKit/Source/web/FullscreenController.cpp index a09e2ca3..3cd0485 100644 --- a/third_party/WebKit/Source/web/FullscreenController.cpp +++ b/third_party/WebKit/Source/web/FullscreenController.cpp
@@ -271,7 +271,7 @@ PageScaleConstraints fullscreen_constraints; if (!remove_constraints) { fullscreen_constraints = PageScaleConstraints(1.0, 1.0, 1.0); - fullscreen_constraints.layout_size = FloatSize(web_view_impl_->size()); + fullscreen_constraints.layout_size = FloatSize(web_view_impl_->Size()); } web_view_impl_->GetPageScaleConstraintsSet().SetFullscreenConstraints( fullscreen_constraints);
diff --git a/third_party/WebKit/Source/web/InspectorOverlay.cpp b/third_party/WebKit/Source/web/InspectorOverlay.cpp index e0a4d18..3954ddc 100644 --- a/third_party/WebKit/Source/web/InspectorOverlay.cpp +++ b/third_party/WebKit/Source/web/InspectorOverlay.cpp
@@ -412,7 +412,7 @@ IntRect visible_rect_in_document = view->GetScrollableArea()->VisibleContentRect(); - IntSize viewport_size = frame->GetPage()->GetVisualViewport().size(); + IntSize viewport_size = frame->GetPage()->GetVisualViewport().Size(); OverlayMainFrame()->View()->Resize(viewport_size); OverlayPage()->GetVisualViewport().SetSize(viewport_size); OverlayMainFrame()->SetPageZoomFactor(WindowToViewportScale());
diff --git a/third_party/WebKit/Source/web/PageOverlay.cpp b/third_party/WebKit/Source/web/PageOverlay.cpp index 726e354..339e9ad 100644 --- a/third_party/WebKit/Source/web/PageOverlay.cpp +++ b/third_party/WebKit/Source/web/PageOverlay.cpp
@@ -96,7 +96,7 @@ } } - FloatSize size(frame->GetPage()->GetVisualViewport().size()); + FloatSize size(frame->GetPage()->GetVisualViewport().Size()); if (size != layer_->Size()) layer_->SetSize(size);
diff --git a/third_party/WebKit/Source/web/RotationViewportAnchor.cpp b/third_party/WebKit/Source/web/RotationViewportAnchor.cpp index ba65ea6..47cb34b 100644 --- a/third_party/WebKit/Source/web/RotationViewportAnchor.cpp +++ b/third_party/WebKit/Source/web/RotationViewportAnchor.cpp
@@ -136,7 +136,7 @@ // Note, we specifically use the unscaled visual viewport size here as the // conversion into content-space below will apply the scale. - FloatPoint anchor_offset(visual_viewport_->size()); + FloatPoint anchor_offset(visual_viewport_->Size()); anchor_offset.Scale(anchor_in_inner_view_coords_.Width(), anchor_in_inner_view_coords_.Height()); @@ -168,7 +168,7 @@ page_scale_constraints_set_.FinalConstraints().ClampToConstraints( new_page_scale_factor); - FloatSize visual_viewport_size(visual_viewport_->size()); + FloatSize visual_viewport_size(visual_viewport_->Size()); visual_viewport_size.Scale(1 / new_page_scale_factor); IntPoint main_frame_origin;
diff --git a/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp b/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp index 3d12b17f..fe1b404c 100644 --- a/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp +++ b/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
@@ -154,7 +154,7 @@ self_keep_alive_.Clear(); } -WebSize WebFrameWidgetImpl::size() { +WebSize WebFrameWidgetImpl::Size() { return size_; }
diff --git a/third_party/WebKit/Source/web/WebFrameWidgetImpl.h b/third_party/WebKit/Source/web/WebFrameWidgetImpl.h index 676840f8..ac28f742 100644 --- a/third_party/WebKit/Source/web/WebFrameWidgetImpl.h +++ b/third_party/WebKit/Source/web/WebFrameWidgetImpl.h
@@ -75,7 +75,7 @@ // WebWidget functions: void Close() override; - WebSize size() override; + WebSize Size() override; void Resize(const WebSize&) override; void ResizeVisualViewport(const WebSize&) override; void DidEnterFullscreen() override;
diff --git a/third_party/WebKit/Source/web/WebImageDecoder.cpp b/third_party/WebKit/Source/web/WebImageDecoder.cpp index 0cbd472..1da10eb 100644 --- a/third_party/WebKit/Source/web/WebImageDecoder.cpp +++ b/third_party/WebKit/Source/web/WebImageDecoder.cpp
@@ -77,9 +77,9 @@ return private_->IsSizeAvailable(); } -WebSize WebImageDecoder::size() const { +WebSize WebImageDecoder::Size() const { DCHECK(private_); - return private_->size(); + return private_->Size(); } size_t WebImageDecoder::FrameCount() const {
diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp index 3177631..8ed362f 100644 --- a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp +++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
@@ -1739,7 +1739,7 @@ bool is_main_frame = !Parent(); IntSize initial_size = (is_main_frame || !FrameWidget()) ? web_view->MainFrameSize() - : (IntSize)FrameWidget()->size(); + : (IntSize)FrameWidget()->Size(); Color base_background_color = web_view->BaseBackgroundColor(); if (!is_main_frame && Parent()->IsWebRemoteFrame()) base_background_color = Color::kTransparent;
diff --git a/third_party/WebKit/Source/web/WebViewFrameWidget.cpp b/third_party/WebKit/Source/web/WebViewFrameWidget.cpp index d8f26dd..e62eba8 100644 --- a/third_party/WebKit/Source/web/WebViewFrameWidget.cpp +++ b/third_party/WebKit/Source/web/WebViewFrameWidget.cpp
@@ -37,8 +37,8 @@ delete this; } -WebSize WebViewFrameWidget::size() { - return web_view_->size(); +WebSize WebViewFrameWidget::Size() { + return web_view_->Size(); } void WebViewFrameWidget::Resize(const WebSize& size) {
diff --git a/third_party/WebKit/Source/web/WebViewFrameWidget.h b/third_party/WebKit/Source/web/WebViewFrameWidget.h index bd6a7447..c891504 100644 --- a/third_party/WebKit/Source/web/WebViewFrameWidget.h +++ b/third_party/WebKit/Source/web/WebViewFrameWidget.h
@@ -43,7 +43,7 @@ // WebFrameWidget overrides: void Close() override; - WebSize size() override; + WebSize Size() override; void Resize(const WebSize&) override; void ResizeVisualViewport(const WebSize&) override; void DidEnterFullscreen() override;
diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp index 14a28bb..16ac66b8 100644 --- a/third_party/WebKit/Source/web/WebViewImpl.cpp +++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
@@ -1794,7 +1794,7 @@ Deref(); // Balances ref() acquired in WebView::create } -WebSize WebViewImpl::size() { +WebSize WebViewImpl::Size() { return size_; } @@ -2852,7 +2852,7 @@ if (!need_animation) return; - FloatSize target_viewport_size(visual_viewport.size()); + FloatSize target_viewport_size(visual_viewport.Size()); target_viewport_size.Scale(1 / new_scale); if (textbox_rect_in_document.Width() <= target_viewport_size.Width()) {
diff --git a/third_party/WebKit/Source/web/WebViewImpl.h b/third_party/WebKit/Source/web/WebViewImpl.h index 0bb1e38..a22ef37 100644 --- a/third_party/WebKit/Source/web/WebViewImpl.h +++ b/third_party/WebKit/Source/web/WebViewImpl.h
@@ -109,7 +109,7 @@ // WebWidget methods: void Close() override; - WebSize size() override; + WebSize Size() override; void Resize(const WebSize&) override; void ResizeVisualViewport(const WebSize&) override; void DidEnterFullscreen() override;
diff --git a/third_party/WebKit/Source/web/tests/BrowserControlsTest.cpp b/third_party/WebKit/Source/web/tests/BrowserControlsTest.cpp index e2a1abc..e047b2c 100644 --- a/third_party/WebKit/Source/web/tests/BrowserControlsTest.cpp +++ b/third_party/WebKit/Source/web/tests/BrowserControlsTest.cpp
@@ -159,7 +159,7 @@ TEST_F(BrowserControlsTest, MAYBE(HideOnScrollDown)) { WebViewImpl* web_view = Initialize(); // initialize browser controls to be shown. - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, true); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, true); web_view->GetBrowserControls().SetShownRatio(1); web_view->HandleInputEvent(GenerateEvent(WebInputEvent::kGestureScrollBegin)); @@ -196,7 +196,7 @@ TEST_F(BrowserControlsTest, MAYBE(ShowOnScrollUp)) { WebViewImpl* web_view = Initialize(); // initialize browser controls to be hidden. - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, false); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, false); web_view->GetBrowserControls().SetShownRatio(0); web_view->HandleInputEvent(GenerateEvent(WebInputEvent::kGestureScrollBegin)); @@ -222,7 +222,7 @@ TEST_F(BrowserControlsTest, MAYBE(ScrollDownThenUp)) { WebViewImpl* web_view = Initialize(); // initialize browser controls to be shown and position page at 100px. - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, true); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, true); web_view->GetBrowserControls().SetShownRatio(1); GetFrame()->View()->GetScrollableArea()->SetScrollOffset(ScrollOffset(0, 100), kProgrammaticScroll); @@ -278,7 +278,7 @@ TEST_F(BrowserControlsTest, MAYBE(ScrollUpThenDown)) { WebViewImpl* web_view = Initialize(); // initialize browser controls to be hidden and position page at 100px. - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, false); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, false); web_view->GetBrowserControls().SetShownRatio(0); GetFrame()->View()->GetScrollableArea()->SetScrollOffset(ScrollOffset(0, 100), kProgrammaticScroll); @@ -315,7 +315,7 @@ TEST_F(BrowserControlsTest, MAYBE(HorizontalScroll)) { WebViewImpl* web_view = Initialize(); // initialize browser controls to be shown. - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, true); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, true); web_view->GetBrowserControls().SetShownRatio(1); web_view->HandleInputEvent(GenerateEvent(WebInputEvent::kGestureScrollBegin)); @@ -344,7 +344,7 @@ web_view->SetPageScaleFactor(2.0); // Initialize browser controls to be shown. - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, true); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, true); web_view->GetBrowserControls().SetShownRatio(1); web_view->HandleInputEvent(GenerateEvent(WebInputEvent::kGestureScrollBegin)); @@ -399,7 +399,7 @@ web_view->SetPageScaleFactor(2.0); // Initialize browser controls to be shown. - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, true); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, true); web_view->GetBrowserControls().SetShownRatio(1); web_view->GetBrowserControls().ScrollBegin(); @@ -416,7 +416,7 @@ // Scrollable subregions should scroll before browser controls TEST_F(BrowserControlsTest, MAYBE(ScrollableSubregionScrollFirst)) { WebViewImpl* web_view = Initialize("overflow-scrolling.html"); - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, true); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, true); web_view->GetBrowserControls().SetShownRatio(1); GetFrame()->View()->GetScrollableArea()->SetScrollOffset(ScrollOffset(0, 50), kProgrammaticScroll); @@ -472,7 +472,7 @@ // Scrollable iframes should scroll before browser controls TEST_F(BrowserControlsTest, MAYBE(ScrollableIframeScrollFirst)) { WebViewImpl* web_view = Initialize("iframe-scrolling.html"); - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, true); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, true); web_view->GetBrowserControls().SetShownRatio(1); GetFrame()->View()->GetScrollableArea()->SetScrollOffset(ScrollOffset(0, 50), kProgrammaticScroll); @@ -528,13 +528,13 @@ // Browser controls visibility should remain consistent when height is changed. TEST_F(BrowserControlsTest, MAYBE(HeightChangeMaintainsVisibility)) { WebViewImpl* web_view = Initialize(); - web_view->ResizeWithBrowserControls(web_view->size(), 20.f, false); + web_view->ResizeWithBrowserControls(web_view->Size(), 20.f, false); web_view->GetBrowserControls().SetShownRatio(0); - web_view->ResizeWithBrowserControls(web_view->size(), 20.f, false); + web_view->ResizeWithBrowserControls(web_view->Size(), 20.f, false); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); - web_view->ResizeWithBrowserControls(web_view->size(), 40.f, false); + web_view->ResizeWithBrowserControls(web_view->Size(), 40.f, false); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); // Scroll up to show browser controls. @@ -543,14 +543,14 @@ // Changing height of a fully shown browser controls should correctly adjust // content offset - web_view->ResizeWithBrowserControls(web_view->size(), 30.f, false); + web_view->ResizeWithBrowserControls(web_view->Size(), 30.f, false); EXPECT_FLOAT_EQ(30.f, web_view->GetBrowserControls().ContentOffset()); } // Zero delta should not have any effect on browser controls. TEST_F(BrowserControlsTest, MAYBE(ZeroHeightMeansNoEffect)) { WebViewImpl* web_view = Initialize(); - web_view->ResizeWithBrowserControls(web_view->size(), 0, false); + web_view->ResizeWithBrowserControls(web_view->Size(), 0, false); web_view->GetBrowserControls().SetShownRatio(0); GetFrame()->View()->GetScrollableArea()->SetScrollOffset(ScrollOffset(0, 100), kProgrammaticScroll); @@ -577,7 +577,7 @@ TEST_F(BrowserControlsTest, MAYBE(ScrollUpPastLimitDoesNotHide)) { WebViewImpl* web_view = Initialize(); // Initialize browser controls to be shown - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, true); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, true); web_view->GetBrowserControls().SetShownRatio(1); // Use 2x scale so that both visual viewport and frameview are scrollable web_view->SetPageScaleFactor(2.0); @@ -609,7 +609,7 @@ // Browser controls should honor its constraints TEST_F(BrowserControlsTest, MAYBE(StateConstraints)) { WebViewImpl* web_view = Initialize(); - web_view->ResizeWithBrowserControls(web_view->size(), 50.f, false); + web_view->ResizeWithBrowserControls(web_view->Size(), 50.f, false); GetFrame()->View()->GetScrollableArea()->SetScrollOffset(ScrollOffset(0, 100), kProgrammaticScroll);
diff --git a/third_party/WebKit/Source/web/tests/FrameSerializerTest.cpp b/third_party/WebKit/Source/web/tests/FrameSerializerTest.cpp index 23867da..709cc96 100644 --- a/third_party/WebKit/Source/web/tests/FrameSerializerTest.cpp +++ b/third_party/WebKit/Source/web/tests/FrameSerializerTest.cpp
@@ -107,11 +107,11 @@ } void RegisterRewriteURL(const char* from_url, const char* to_url) { - rewrite_ur_ls_.insert(from_url, to_url); + rewrite_urls_.insert(from_url, to_url); } void RegisterSkipURL(const char* url) { - skip_ur_ls_.push_back(KURL(base_url_, url)); + skip_urls_.push_back(KURL(base_url_, url)); } void Serialize(const char* url) { @@ -173,27 +173,27 @@ } } - if (complete_url.IsNull() || !rewrite_ur_ls_.Contains(complete_url)) + if (complete_url.IsNull() || !rewrite_urls_.Contains(complete_url)) return false; StringBuilder uri_builder; uri_builder.Append(rewrite_folder_); uri_builder.Append('/'); - uri_builder.Append(rewrite_ur_ls_.at(complete_url)); + uri_builder.Append(rewrite_urls_.at(complete_url)); rewritten_link = uri_builder.ToString(); return true; } bool ShouldSkipResourceWithURL(const KURL& url) { - return skip_ur_ls_.Contains(url); + return skip_urls_.Contains(url); } FrameTestHelpers::WebViewHelper helper_; std::string folder_; KURL base_url_; Deque<SerializedResource> resources_; - HashMap<String, String> rewrite_ur_ls_; - Vector<String> skip_ur_ls_; + HashMap<String, String> rewrite_urls_; + Vector<String> skip_urls_; String rewrite_folder_; };
diff --git a/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp b/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp index 64d7c1d..39e2e168 100644 --- a/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp +++ b/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp
@@ -205,22 +205,22 @@ VisualViewport& visualViewport = frame()->GetPage()->GetVisualViewport(); - IntSize webViewSize = webViewImpl()->size(); + IntSize webViewSize = webViewImpl()->Size(); // Make sure the visual viewport was initialized. - EXPECT_SIZE_EQ(webViewSize, visualViewport.size()); + EXPECT_SIZE_EQ(webViewSize, visualViewport.Size()); // Resizing the WebView should change the VisualViewport. webViewSize = IntSize(640, 480); webViewImpl()->Resize(webViewSize); - EXPECT_SIZE_EQ(webViewSize, IntSize(webViewImpl()->size())); - EXPECT_SIZE_EQ(webViewSize, visualViewport.size()); + EXPECT_SIZE_EQ(webViewSize, IntSize(webViewImpl()->Size())); + EXPECT_SIZE_EQ(webViewSize, visualViewport.Size()); // Resizing the visual viewport shouldn't affect the WebView. IntSize newViewportSize = IntSize(320, 200); visualViewport.SetSize(newViewportSize); - EXPECT_SIZE_EQ(webViewSize, IntSize(webViewImpl()->size())); - EXPECT_SIZE_EQ(newViewportSize, visualViewport.size()); + EXPECT_SIZE_EQ(webViewSize, IntSize(webViewImpl()->Size())); + EXPECT_SIZE_EQ(newViewportSize, visualViewport.Size()); } // Make sure that the visibleContentRect method acurately reflects the scale and @@ -459,7 +459,7 @@ VisualViewport& visualViewport = frame()->GetPage()->GetVisualViewport(); // Initial visible rect should be the whole frame. - EXPECT_SIZE_EQ(IntSize(webViewImpl()->size()), visualViewport.size()); + EXPECT_SIZE_EQ(IntSize(webViewImpl()->Size()), visualViewport.Size()); // Viewport is whole frame. IntSize size = IntSize(400, 200); @@ -472,7 +472,7 @@ expectedRect.Scale(0.5); visualViewport.SetScale(2); EXPECT_EQ(2, visualViewport.Scale()); - EXPECT_SIZE_EQ(size, visualViewport.size()); + EXPECT_SIZE_EQ(size, visualViewport.Size()); EXPECT_FLOAT_RECT_EQ(expectedRect, visualViewport.VisibleRect()); // Move the viewport. @@ -703,13 +703,13 @@ // typically the scale will be clamped to prevent it from actually being // larger. visualViewport.SetSize(IntSize(330, 250)); - EXPECT_SIZE_EQ(IntSize(330, 250), visualViewport.size()); + EXPECT_SIZE_EQ(IntSize(330, 250), visualViewport.Size()); // Resize both the viewport and the frame to be larger. webViewImpl()->Resize(IntSize(640, 480)); webViewImpl()->UpdateAllLifecyclePhases(); - EXPECT_SIZE_EQ(IntSize(webViewImpl()->size()), visualViewport.size()); - EXPECT_SIZE_EQ(IntSize(webViewImpl()->size()), + EXPECT_SIZE_EQ(IntSize(webViewImpl()->Size()), visualViewport.Size()); + EXPECT_SIZE_EQ(IntSize(webViewImpl()->Size()), frame()->View()->FrameRect().Size()); visualViewport.SetLocation(FloatPoint(1000, 1000)); EXPECT_FLOAT_POINT_EQ(FloatPoint(320, 240), @@ -819,8 +819,8 @@ TEST_P(VisualViewportTest, TestVisualViewportGetsSizeInAutoSizeMode) { initializeWithDesktopSettings(); - EXPECT_SIZE_EQ(IntSize(0, 0), IntSize(webViewImpl()->size())); - EXPECT_SIZE_EQ(IntSize(0, 0), frame()->GetPage()->GetVisualViewport().size()); + EXPECT_SIZE_EQ(IntSize(0, 0), IntSize(webViewImpl()->Size())); + EXPECT_SIZE_EQ(IntSize(0, 0), frame()->GetPage()->GetVisualViewport().Size()); webViewImpl()->EnableAutoResizeMode(WebSize(10, 10), WebSize(1000, 1000)); @@ -828,7 +828,7 @@ navigateTo(m_baseURL + "200-by-300.html"); EXPECT_SIZE_EQ(IntSize(200, 300), - frame()->GetPage()->GetVisualViewport().size()); + frame()->GetPage()->GetVisualViewport().Size()); } // Test that the text selection handle's position accounts for the visual @@ -1445,7 +1445,7 @@ browserControlsHeight / minPageScale), frameView.FrameRect().Size()); EXPECT_SIZE_EQ(IntSize(500, visualViewportHeight - browserControlsHeight), - visualViewport.size()); + visualViewport.Size()); // Scroll all the way to the bottom, hiding the browser controls in the // process. @@ -1474,7 +1474,7 @@ webViewImpl()->ResizeWithBrowserControls(WebSize(500, visualViewportHeight), 20, false); - EXPECT_SIZE_EQ(IntSize(500, visualViewportHeight), visualViewport.size()); + EXPECT_SIZE_EQ(IntSize(500, visualViewportHeight), visualViewport.Size()); EXPECT_SIZE_EQ(IntSize(250, visualViewportHeight / pageScale), visualViewport.VisibleRect().Size()); EXPECT_SIZE_EQ(IntSize(1000, layoutViewportHeight), @@ -1514,7 +1514,7 @@ visualViewport.VisibleRect().Size()); EXPECT_SIZE_EQ(IntSize(1000, layoutViewportHeight), frameView.FrameRect().Size()); - EXPECT_SIZE_EQ(IntSize(500, visualViewportHeight), visualViewport.size()); + EXPECT_SIZE_EQ(IntSize(500, visualViewportHeight), visualViewport.Size()); // Scroll all the way to the bottom, showing the the browser controls in the // process. (This could happen via window.scrollTo during a scroll, for @@ -1548,7 +1548,7 @@ WebSize(500, visualViewportHeight - browserControlsHeight), 20, true); EXPECT_SIZE_EQ(IntSize(500, visualViewportHeight - browserControlsHeight), - visualViewport.size()); + visualViewport.Size()); EXPECT_SIZE_EQ( IntSize(250, (visualViewportHeight - browserControlsHeight) / pageScale), visualViewport.VisibleRect().Size()); @@ -1565,7 +1565,7 @@ // the main frame's scroll offset. crbug.com/428193. TEST_P(VisualViewportTest, TestTopControlHidingResizeDoesntClampMainFrame) { initializeWithAndroidSettings(); - webViewImpl()->ResizeWithBrowserControls(webViewImpl()->size(), 500, false); + webViewImpl()->ResizeWithBrowserControls(webViewImpl()->Size(), 500, false); webViewImpl()->ApplyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1, 1); webViewImpl()->ResizeWithBrowserControls(WebSize(1000, 1000), 500, true);
diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp index 5b9d629..f7aacb4 100644 --- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp +++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
@@ -3041,7 +3041,7 @@ web_view_helper.Resize( WebSize(viewport_size.width, viewport_size.height)); web_view_helper.WebView()->SetPageScaleFactor(initial_page_scale_factor); - ASSERT_EQ(viewport_size, web_view_helper.WebView()->size()); + ASSERT_EQ(viewport_size, web_view_helper.WebView()->Size()); ASSERT_EQ(initial_page_scale_factor, web_view_helper.WebView()->PageScaleFactor()); web_view_helper.Resize( @@ -7422,8 +7422,8 @@ WebElement element = node.To<WebElement>(); WebImage image = element.ImageContents(); ASSERT_FALSE(image.IsNull()); - EXPECT_EQ(image.size().width, 10); - EXPECT_EQ(image.size().height, 10); + EXPECT_EQ(image.Size().width, 10); + EXPECT_EQ(image.Size().height, 10); SkBitmap bitmap = image.GetSkBitmap(); SkAutoLockPixels locker(bitmap); EXPECT_EQ(bitmap.getColor(0, 0), SK_ColorBLUE); @@ -8523,8 +8523,8 @@ SkCanvas canvas(bitmap); canvas.drawColor(SK_ColorGREEN); - EXPECT_EQ(reference_bitmap_size.Width(), drag_image->size().Width()); - EXPECT_EQ(reference_bitmap_size.Height(), drag_image->size().Height()); + EXPECT_EQ(reference_bitmap_size.Width(), drag_image->Size().Width()); + EXPECT_EQ(reference_bitmap_size.Height(), drag_image->Size().Height()); const SkBitmap& drag_bitmap = drag_image->Bitmap(); SkAutoLockPixels lock_pixel(drag_bitmap); EXPECT_EQ( @@ -8728,8 +8728,8 @@ // after swapping to a local frame. Page* page = ToWebViewImpl(local_frame->View())->GetPage()->MainFrame()->GetPage(); - EXPECT_EQ(size.width, page->GetVisualViewport().size().Width()); - EXPECT_EQ(size.height, page->GetVisualViewport().size().Height()); + EXPECT_EQ(size.width, page->GetVisualViewport().Size().Width()); + EXPECT_EQ(size.height, page->GetVisualViewport().Size().Height()); // Manually reset to break WebViewHelper's dependency on the stack allocated // TestWebFrameClient.
diff --git a/third_party/WebKit/Source/web/tests/WebImageTest.cpp b/third_party/WebKit/Source/web/tests/WebImageTest.cpp index c5df21e..dc938eab 100644 --- a/third_party/WebKit/Source/web/tests/WebImageTest.cpp +++ b/third_party/WebKit/Source/web/tests/WebImageTest.cpp
@@ -49,7 +49,7 @@ ASSERT_TRUE(data.Get()); WebImage image = WebImage::FromData(WebData(data), WebSize()); - EXPECT_TRUE(image.size() == WebSize(1, 1)); + EXPECT_TRUE(image.Size() == WebSize(1, 1)); SkAutoLockPixels auto_lock(image.GetSkBitmap()); EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), image.GetSkBitmap().getColor(0, 0)); @@ -61,8 +61,8 @@ WebVector<WebImage> images = WebImage::FramesFromData(WebData(data)); ASSERT_EQ(2u, images.size()); - EXPECT_TRUE(images[0].size() == WebSize(2, 2)); - EXPECT_TRUE(images[1].size() == WebSize(1, 1)); + EXPECT_TRUE(images[0].Size() == WebSize(2, 2)); + EXPECT_TRUE(images[1].Size() == WebSize(1, 1)); SkAutoLockPixels auto_lock1(images[0].GetSkBitmap()); EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), images[0].GetSkBitmap().getColor(0, 0));
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py index fecac2d..6a792fc 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py
@@ -213,10 +213,6 @@ if not self._options.dry_run: self._write_json_files(summarized_full_results, summarized_failing_results, initial_results, running_all_tests) - if self._options.write_full_results_to: - self._filesystem.copyfile(self._filesystem.join(self._results_directory, "full_results.json"), - self._options.write_full_results_to) - self._upload_json_files() results_path = self._filesystem.join(self._results_directory, "results.html") @@ -495,8 +491,15 @@ # from a file url for results.html and Chromium doesn't allow that. json_results_generator.write_json(self._filesystem, summarized_failing_results, full_results_path, callback="ADD_RESULTS") + # Write out the JSON files suitable for other tools to process. + # As the output can be quite large (as there are 60k+ tests) we also + # support only outputting the failing results. + if self._options.json_failing_test_results: + # FIXME(tansell): Make sure this includes an *unexpected* results + # (IE Passing when expected to be failing.) + json_results_generator.write_json(self._filesystem, summarized_failing_results, self._options.json_failing_test_results) if self._options.json_test_results: - json_results_generator.write_json(self._filesystem, summarized_failing_results, self._options.json_test_results) + json_results_generator.write_json(self._filesystem, summarized_full_results, self._options.json_test_results) _log.debug("Finished writing JSON files.")
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py index c5fe3cdf..aec5831 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
@@ -164,9 +164,14 @@ default=False, help='Show all failures in results.html, rather than only regressions'), optparse.make_option( - '--json-test-results', - action='store', - help='Path to write the JSON test results to.'), + '--json-test-results', # New name from json_results_generator + '--write-full-results-to', # Old argument name + '--isolated-script-test-output', # Isolated API + help='Path to write the JSON test results for *all* tests.'), + # FIXME(tansell): Remove this option if nobody is found who needs it. + optparse.make_option( + '--json-failing-test-results', + help='Path to write the JSON test results for only *failing* tests.'), optparse.make_option( '--new-baseline', action='store_true', @@ -466,10 +471,6 @@ '--test-results-server', default='', help='If specified, upload results json files to this appengine server.'), - optparse.make_option( - '--write-full-results-to', - help=('If specified, copy full_results.json from the results dir to the ' - 'specified path.')), ])) option_parser = optparse.OptionParser()
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 76f8050..7e1af3c 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
@@ -170,7 +170,7 @@ def test_basic(self): options, args = parse_args( - extra_args=['--json-test-results', '/tmp/json_test_results.json'], + extra_args=['--json-failing-test-results', '/tmp/json_failing_test_results.json'], tests_included=True) logging_stream = StringIO.StringIO() stdout = StringIO.StringIO() @@ -210,9 +210,6 @@ json_to_eval = failing_results_text.replace('ADD_RESULTS(', '').replace(');', '') self.assertEqual(json.loads(json_to_eval), details.summarized_failing_results) - json_test_results = host.filesystem.read_text_file('/tmp/json_test_results.json') - self.assertEqual(json.loads(json_test_results), details.summarized_failing_results) - full_results_text = host.filesystem.read_text_file('/tmp/layout-test-results/full_results.json') self.assertEqual(json.loads(full_results_text), details.summarized_full_results) @@ -1007,12 +1004,38 @@ tests_included=True, host=host) self.assertIn('OUT:', err.getvalue()) - def test_write_full_results_to(self): - host = MockHost() - details, _, _ = logging_run(['--write-full-results-to', '/tmp/full_results.json', - '--order', 'natural'], host=host) + def _check_json_test_results(self, host, details): self.assertEqual(details.exit_code, 0) - self.assertTrue(host.filesystem.exists('/tmp/full_results.json')) + self.assertTrue(host.filesystem.exists('/tmp/json_results.json')) + json_failing_test_results = host.filesystem.read_text_file('/tmp/json_results.json') + self.assertEqual(json.loads(json_failing_test_results), details.summarized_full_results) + + def test_json_test_results(self): + host = MockHost() + details, _, _ = logging_run( + ['--json-test-results', '/tmp/json_results.json'], host=host) + self._check_json_test_results(host, details) + + def test_json_test_results_alias_write_full_results_to(self): + host = MockHost() + details, _, _ = logging_run( + ['--write-full-results-to', '/tmp/json_results.json'], host=host) + self._check_json_test_results(host, details) + + def test_json_test_results_alias_isolated_script_test_output(self): + host = MockHost() + details, _, _ = logging_run( + ['--isolated-script-test-output', '/tmp/json_results.json'], host=host) + self._check_json_test_results(host, details) + + def test_json_failing_test_results(self): + host = MockHost() + details, _, _ = logging_run( + ['--json-failing-test-results', '/tmp/json_failing_results.json'], host=host) + self.assertEqual(details.exit_code, 0) + self.assertTrue(host.filesystem.exists('/tmp/json_failing_results.json')) + json_failing_test_results = host.filesystem.read_text_file('/tmp/json_failing_results.json') + self.assertEqual(json.loads(json_failing_test_results), details.summarized_failing_results) def test_buildbot_results_are_printed_on_early_exit(self): stdout = StringIO.StringIO()
diff --git a/third_party/WebKit/public/platform/WebExternalBitmap.h b/third_party/WebKit/public/platform/WebExternalBitmap.h index 0ea28fd..62fc5bc 100644 --- a/third_party/WebKit/public/platform/WebExternalBitmap.h +++ b/third_party/WebKit/public/platform/WebExternalBitmap.h
@@ -37,7 +37,7 @@ class WebExternalBitmap { public: - virtual WebSize size() = 0; + virtual WebSize Size() = 0; // Sets the size of the bitmap. This may reallocate the bitmap and // invalidate the pointer returned from pixels if the size changes.
diff --git a/third_party/WebKit/public/platform/WebImage.h b/third_party/WebKit/public/platform/WebImage.h index 151529c0..5fed0176 100644 --- a/third_party/WebKit/public/platform/WebImage.h +++ b/third_party/WebKit/public/platform/WebImage.h
@@ -77,7 +77,7 @@ BLINK_PLATFORM_EXPORT void Assign(const WebImage&); BLINK_PLATFORM_EXPORT bool IsNull() const; - BLINK_PLATFORM_EXPORT WebSize size() const; + BLINK_PLATFORM_EXPORT WebSize Size() const; #if INSIDE_BLINK BLINK_PLATFORM_EXPORT WebImage(WTF::PassRefPtr<Image>);
diff --git a/third_party/WebKit/public/platform/WebMediaPlayer.h b/third_party/WebKit/public/platform/WebMediaPlayer.h index 959631b..4f17e2e 100644 --- a/third_party/WebKit/public/platform/WebMediaPlayer.h +++ b/third_party/WebKit/public/platform/WebMediaPlayer.h
@@ -177,19 +177,20 @@ // TODO(kbr): remove non-|target| version. crbug.com/349871 // - // Do a GPU-GPU texture copy of the natural size of the current - // video frame to |texture|. Caller is responsible for allocating - // |texture| with the appropriate size. If the copy is impossible or - // fails, it returns false. + // Do a GPU-GPU texture copy of the current video frame to |texture|, + // reallocating |texture| at the appropriate size with given internal + // format, format, and type if necessary. If the copy is impossible + // or fails, it returns false. virtual bool CopyVideoTextureToPlatformTexture(gpu::gles2::GLES2Interface*, unsigned texture, + unsigned internal_format, + unsigned format, + unsigned type, bool premultiply_alpha, bool flip_y) { return false; } - // TODO(kbr): when updating calling code to use this, remove the - // |internalFormat| and |type| parameters. crbug.com/349871 // Do a GPU-GPU textures copy. If the copy is impossible or fails, it returns // false. virtual bool CopyVideoTextureToPlatformTexture(gpu::gles2::GLES2Interface*,
diff --git a/third_party/WebKit/public/platform/WebScrollbar.h b/third_party/WebKit/public/platform/WebScrollbar.h index 0a32bfb..8d15d9c 100644 --- a/third_party/WebKit/public/platform/WebScrollbar.h +++ b/third_party/WebKit/public/platform/WebScrollbar.h
@@ -72,7 +72,7 @@ virtual int Value() const = 0; virtual WebPoint Location() const = 0; - virtual WebSize size() const = 0; + virtual WebSize Size() const = 0; virtual bool Enabled() const = 0; virtual int Maximum() const = 0; virtual int TotalSize() const = 0;
diff --git a/third_party/WebKit/public/web/WebImageDecoder.h b/third_party/WebKit/public/web/WebImageDecoder.h index 9631d686..70552482 100644 --- a/third_party/WebKit/public/web/WebImageDecoder.h +++ b/third_party/WebKit/public/web/WebImageDecoder.h
@@ -63,7 +63,7 @@ BLINK_EXPORT bool IsSizeAvailable() const; // Returns the size of the image. - BLINK_EXPORT WebSize size() const; + BLINK_EXPORT WebSize Size() const; // Gives frame count for the image. For multiple frames, decoder scans the // image data for the count.
diff --git a/third_party/WebKit/public/web/WebView.h b/third_party/WebKit/public/web/WebView.h index 8dce5a3d..e811392b 100644 --- a/third_party/WebKit/public/web/WebView.h +++ b/third_party/WebKit/public/web/WebView.h
@@ -81,7 +81,7 @@ // WebWidget overrides. using WebWidget::Close; - using WebWidget::size; + using WebWidget::Size; using WebWidget::Resize; using WebWidget::ResizeVisualViewport; using WebWidget::DidEnterFullscreen;
diff --git a/third_party/WebKit/public/web/WebWidget.h b/third_party/WebKit/public/web/WebWidget.h index e91cbe36..9183285c 100644 --- a/third_party/WebKit/public/web/WebWidget.h +++ b/third_party/WebKit/public/web/WebWidget.h
@@ -60,7 +60,7 @@ virtual void Close() {} // Returns the current size of the WebWidget. - virtual WebSize size() { return WebSize(); } + virtual WebSize Size() { return WebSize(); } // Called to resize the WebWidget. virtual void Resize(const WebSize&) {}
diff --git a/tools/binary_size/libsupersize/archive.py b/tools/binary_size/libsupersize/archive.py index 0991f0b..7443c37 100644 --- a/tools/binary_size/libsupersize/archive.py +++ b/tools/binary_size/libsupersize/archive.py
@@ -11,9 +11,13 @@ import gzip import logging import os +import multiprocessing +import posixpath import re import subprocess import sys +import tempfile +import zipfile import describe import file_format @@ -205,12 +209,16 @@ Groups include: * Symbols that have [clone] in their name (created by compiler optimization). * Star symbols (such as "** merge strings", and "** symbol gap") + + To view created groups: + Print(size_info.symbols.Filter(lambda s: s.IsGroup()), recursive=True) """ # http://unix.stackexchange.com/questions/223013/function-symbol-gets-part-suffix-after-compilation # Example name suffixes: - # [clone .part.322] - # [clone .isra.322] - # [clone .constprop.1064] + # [clone .part.322] # GCC + # [clone .isra.322] # GCC + # [clone .constprop.1064] # GCC + # [clone .11064] # clang # Step 1: Create name map, find clones, collect star syms into replacements. logging.debug('Creating name -> symbol map') @@ -351,6 +359,9 @@ _PostProcessSizeInfo(size_info) if logging.getLogger().isEnabledFor(logging.DEBUG): + # Padding is reported in size coverage logs. + if raw_only: + _CalculatePadding(size_info.raw_symbols) for line in describe.DescribeSizeInfoCoverage(size_info): logging.info(line) logging.info('Recorded info for %d symbols', len(size_info.raw_symbols)) @@ -386,6 +397,12 @@ return section_sizes +def _ArchFromElf(elf_path, tool_prefix): + args = [tool_prefix + 'readelf', '-h', elf_path] + stdout = subprocess.check_output(args) + return re.search('Machine:\s*(\S+)', stdout).group(1) + + def _ParseGnArgs(args_path): """Returns a list of normalized "key=value" strings.""" args = {} @@ -399,15 +416,30 @@ return ["%s=%s" % x for x in sorted(args.iteritems())] +def _ElfInfoFromApk(apk_path, apk_so_path, tool_prefix): + """Returns a tuple of (build_id, section_sizes).""" + with zipfile.ZipFile(apk_path) as apk, \ + tempfile.NamedTemporaryFile() as f: + f.write(apk.read(apk_so_path)) + f.flush() + build_id = BuildIdFromElf(f.name, tool_prefix) + section_sizes = _SectionSizesFromElf(f.name, tool_prefix) + return build_id, section_sizes + + def AddArguments(parser): parser.add_argument('size_file', help='Path to output .size file.') - parser.add_argument('--elf-file', required=True, + parser.add_argument('--apk-file', + help='.apk file to measure. When set, --elf-file will be ' + 'derived (if unset). Providing the .apk allows ' + 'for the size of packed relocations to be recorded') + parser.add_argument('--elf-file', help='Path to input ELF file. Currently used for ' - 'capturing metadata. Pass "" to skip ' - 'metadata collection.') + 'capturing metadata.') parser.add_argument('--map-file', help='Path to input .map(.gz) file. Defaults to ' - '{{elf_file}}.map(.gz)?') + '{{elf_file}}.map(.gz)?. If given without ' + '--elf-file, no size metadata will be recorded.') parser.add_argument('--no-source-paths', action='store_true', help='Do not use .ninja files to map ' 'object_path -> source_path') @@ -421,26 +453,47 @@ if not args.size_file.endswith('.size'): parser.error('size_file must end with .size') - if args.map_file: - if (not args.map_file.endswith('.map') - and not args.map_file.endswith('.map.gz')): + elf_path = args.elf_file + map_path = args.map_file + apk_path = args.apk_file + any_input = apk_path or elf_path or map_path + if not any_input: + parser.error('Most pass at least one of --apk-file, --elf-file, --map-file') + lazy_paths = paths.LazyPaths(args=args, input_file=any_input) + + if apk_path: + with zipfile.ZipFile(apk_path) as z: + lib_infos = [f for f in z.infolist() + if f.filename.endswith('.so') and f.file_size > 0] + assert lib_infos, 'APK has no .so files.' + # TODO(agrieve): Add support for multiple .so files, and take into account + # secondary architectures. + apk_so_path = max(lib_infos, key=lambda x:x.file_size).filename + logging.debug('Sub-apk path=%s', apk_so_path) + if not elf_path: + elf_path = os.path.join( + lazy_paths.output_directory, 'lib.unstripped', + os.path.basename(apk_so_path.replace('crazy.', ''))) + logging.debug('Detected --elf-file=%s', elf_path) + + if map_path: + if not map_path.endswith('.map') and not map_path.endswith('.map.gz'): parser.error('Expected --map-file to end with .map or .map.gz') - map_file_path = args.map_file else: - map_file_path = args.elf_file + '.map' - if not os.path.exists(map_file_path): - map_file_path += '.gz' - if not os.path.exists(map_file_path): + map_path = elf_path + '.map' + if not os.path.exists(map_path): + map_path += '.gz' + if not os.path.exists(map_path): parser.error('Could not find .map(.gz)? file. Use --map-file.') - lazy_paths = paths.LazyPaths(args=args, input_file=args.elf_file) metadata = None - if args.elf_file: + if elf_path: logging.debug('Constructing metadata') - git_rev = _DetectGitRevision(os.path.dirname(args.elf_file)) - build_id = BuildIdFromElf(args.elf_file, lazy_paths.tool_prefix) + git_rev = _DetectGitRevision(os.path.dirname(elf_path)) + architecture = _ArchFromElf(elf_path, lazy_paths.tool_prefix) + build_id = BuildIdFromElf(elf_path, lazy_paths.tool_prefix) timestamp_obj = datetime.datetime.utcfromtimestamp(os.path.getmtime( - args.elf_file)) + elf_path)) timestamp = calendar.timegm(timestamp_obj.timetuple()) gn_args = _ParseGnArgs(os.path.join(lazy_paths.output_directory, 'args.gn')) @@ -449,26 +502,55 @@ metadata = { models.METADATA_GIT_REVISION: git_rev, - models.METADATA_MAP_FILENAME: relative_to_out(map_file_path), - models.METADATA_ELF_FILENAME: relative_to_out(args.elf_file), + models.METADATA_MAP_FILENAME: relative_to_out(map_path), + models.METADATA_ELF_ARCHITECTURE: architecture, + models.METADATA_ELF_FILENAME: relative_to_out(elf_path), models.METADATA_ELF_MTIME: timestamp, models.METADATA_ELF_BUILD_ID: build_id, models.METADATA_GN_ARGS: gn_args, } - size_info = CreateSizeInfo(map_file_path, lazy_paths, - no_source_paths=args.no_source_paths, - raw_only=True) + if apk_path: + metadata[models.METADATA_APK_FILENAME] = relative_to_out(apk_path) + # Extraction takes around 1 second, so do it in parallel. + pool_of_one = multiprocessing.Pool(1) + apk_elf_result = pool_of_one.apply_async( + _ElfInfoFromApk, (apk_path, apk_so_path, lazy_paths.tool_prefix)) + pool_of_one.close() + + size_info = CreateSizeInfo( + map_path, lazy_paths, no_source_paths=args.no_source_paths, raw_only=True) if metadata: size_info.metadata = metadata logging.debug('Validating section sizes') - elf_section_sizes = _SectionSizesFromElf(args.elf_file, - lazy_paths.tool_prefix) + elf_section_sizes = _SectionSizesFromElf(elf_path, lazy_paths.tool_prefix) for k, v in elf_section_sizes.iteritems(): assert v == size_info.section_sizes.get(k), ( 'ELF file and .map file do not match.') + if apk_path: + logging.debug('Extracting section sizes from .so within .apk') + unstripped_section_sizes = size_info.section_sizes + apk_build_id, size_info.section_sizes = apk_elf_result.get() + assert apk_build_id == build_id, ( + 'BuildID for %s within %s did not match the one at %s' % + (apk_so_path, apk_path, elf_path)) + + packed_section_name = None + if architecture == 'ARM': + packed_section_name = '.rel.dyn' + elif architecture == 'AArch64': + packed_section_name = '.rela.dyn' + + if packed_section_name: + logging.debug('Recording size of unpacked relocations') + if packed_section_name not in size_info.section_sizes: + logging.warning('Packed section not present: %s', packed_section_name) + else: + size_info.section_sizes['%s (unpacked)' % packed_section_name] = ( + unstripped_section_sizes.get(packed_section_name)) + logging.info('Recording metadata: \n %s', '\n '.join(describe.DescribeMetadata(size_info.metadata))) logging.info('Saving result to %s', args.size_file)
diff --git a/tools/binary_size/libsupersize/console.py b/tools/binary_size/libsupersize/console.py index 34de184..3dbb6a8 100644 --- a/tools/binary_size/libsupersize/console.py +++ b/tools/binary_size/libsupersize/console.py
@@ -77,11 +77,9 @@ if len(size_infos) == 1: self._variables['size_info'] = size_infos[0] - self._variables['symbols'] = size_infos[0].symbols else: for i, size_info in enumerate(size_infos): self._variables['size_info%d' % (i + 1)] = size_info - self._variables['symbols%d' % (i + 1)] = size_info.symbols def _PrintFunc(self, obj, verbose=False, recursive=False, use_pager=None, to_file=None): @@ -150,19 +148,19 @@ 'Print(size_info, verbose=True)', '', '# Show two levels of .text, grouped by first two subdirectories', - 'text_syms = symbols.WhereInSection("t")', + 'text_syms = size_info.symbols.WhereInSection("t")', 'by_path = text_syms.GroupBySourcePath(depth=2)', 'Print(by_path.WhereBiggerThan(1024))', '', '# Show all non-vtable generated symbols', - 'generated_syms = symbols.WhereIsGenerated()', + 'generated_syms = size_info.symbols.WhereIsGenerated()', 'Print(generated_syms.WhereNameMatches(r"vtable").Inverted())', '', '# Show all symbols that have "print" in their name or path, except', '# those within components/.', '# Note: Could have also used Inverted(), as above.', '# Note: Use "help(ExpandRegex)" for more about what {{_print_}} does.', - 'print_syms = symbols.WhereMatches(r"{{_print_}}")', + 'print_syms = size_info.symbols.WhereMatches(r"{{_print_}}")', 'Print(print_syms - print_syms.WherePathMatches(r"^components/"))', '', '# Diff two .size files and save result to a file:',
diff --git a/tools/binary_size/libsupersize/integration_test.py b/tools/binary_size/libsupersize/integration_test.py index 830c335..30fa4fd 100755 --- a/tools/binary_size/libsupersize/integration_test.py +++ b/tools/binary_size/libsupersize/integration_test.py
@@ -71,7 +71,7 @@ def test_Archive(self): with tempfile.NamedTemporaryFile(suffix='.size') as temp_file: _RunApp('archive', temp_file.name, '--output-directory', _TEST_DATA_DIR, - '--map-file', _TEST_MAP_PATH, '--elf-file', '') + '--map-file', _TEST_MAP_PATH) size_info = archive.LoadAndPostProcessSizeInfo(temp_file.name) # Check that saving & loading is the same as directly parsing the .map. expected_size_info = self._CloneSizeInfo() @@ -90,7 +90,7 @@ # Just tests that it doesn't crash. with tempfile.NamedTemporaryFile(suffix='.size') as temp_file: _RunApp('archive', temp_file.name, '--no-source-paths', - '--map-file', _TEST_MAP_PATH, '--elf-file', '') + '--map-file', _TEST_MAP_PATH) archive.LoadAndPostProcessSizeInfo(temp_file.name) @_CompareWithGolden
diff --git a/tools/binary_size/libsupersize/models.py b/tools/binary_size/libsupersize/models.py index 178ab0b8..dac0072 100644 --- a/tools/binary_size/libsupersize/models.py +++ b/tools/binary_size/libsupersize/models.py
@@ -31,7 +31,9 @@ METADATA_GIT_REVISION = 'git_revision' +METADATA_APK_FILENAME = 'apk_file_name' # Path relative to output_directory. METADATA_MAP_FILENAME = 'map_file_name' # Path relative to output_directory. +METADATA_ELF_ARCHITECTURE = 'elf_arch' # "Machine" field from readelf -h METADATA_ELF_FILENAME = 'elf_file_name' # Path relative to output_directory. METADATA_ELF_MTIME = 'elf_mtime' # int timestamp in utc. METADATA_ELF_BUILD_ID = 'elf_build_id'
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 18ad474..03543d5 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -21985,6 +21985,14 @@ </summary> </histogram> +<histogram name="GPU.DirectComposition.FramesSinceColorSpaceChange" + units="frames"> + <owner>jbauman@chromium.org</owner> + <summary> + How many frames since the last time the layer color format was changed. + </summary> +</histogram> + <histogram name="GPU.DirectComposition.OverlaysSupported" enum="BooleanOverlaySupported"> <owner>jbauman@chromium.org</owner> @@ -74153,17 +74161,17 @@ <histogram name="Translate.LanguageVerification" enum="TranslateLanguageVerification"> - <owner>kenjibaheux@google.com</owner> + <owner>yyushkina@chromium.org</owner> <summary> - For each page load, measures whether the provided Content-Language header - matches the language determined by CLD. Beyond directly matching or - mismatching the Content-Language header, CLD can complement the - Content-Language. For example, suppose the Content-Language header - specifies 'zh' (general Chinese), a language code that the Translate server - does not support. In this case, CLD can detect a subcode like '-TW' or - '-CN', resulting in language codes 'zh-TW' and 'zh-CN', which the Translate - server supports. This is referred to as "complementing a language - subcode". + For each page load, measures whether the provided HTML language (i.e. the + page lang attribute if it exists, otherwise the header Content-Language + value) matches the language determined by CLD. Beyond directly matching or + mismatching the HTML language, CLD can complement the HTML language. For + example, suppose the HTML language is 'zh' (general Chinese), a language + code that the Translate server does not support. In this case, CLD can + detect a subcode like '-TW' or '-CN', resulting in language codes 'zh-TW' + and 'zh-CN', which the Translate server supports. This is referred to as + "complementing a language subcode". </summary> </histogram>
diff --git a/tools/perf/benchmarks/blink_style.py b/tools/perf/benchmarks/blink_style.py index b468c68..73e1929 100644 --- a/tools/perf/benchmarks/blink_style.py +++ b/tools/perf/benchmarks/blink_style.py
@@ -22,8 +22,7 @@ return 'blink_style.top_25' -@benchmark.Disabled('all') # crbug.com/702194 -#@benchmark.Enabled('android') +@benchmark.Enabled('android') class BlinkStyleKeyMobileSites(perf_benchmark.PerfBenchmark): """Measures performance of Blink's style engine (CSS Parsing, Style Recalc, etc.) on key mobile sites.
diff --git a/tools/perf/benchmarks/oilpan_gc_times.py b/tools/perf/benchmarks/oilpan_gc_times.py index bee7b82..91711d5 100644 --- a/tools/perf/benchmarks/oilpan_gc_times.py +++ b/tools/perf/benchmarks/oilpan_gc_times.py
@@ -48,8 +48,7 @@ return 'oilpan_gc_times.key_silk_cases' -@benchmark.Disabled('all') # crbug.com/702194 -#@benchmark.Enabled('android') +@benchmark.Enabled('android') class OilpanGCTimesSyncScrollKeyMobileSites(perf_benchmark.PerfBenchmark): tag = 'sync_scroll' test = oilpan_gc_times.OilpanGCTimesForSmoothness
diff --git a/tools/perf/benchmarks/smoothness.py b/tools/perf/benchmarks/smoothness.py index ef0b3069..733eb12 100644 --- a/tools/perf/benchmarks/smoothness.py +++ b/tools/perf/benchmarks/smoothness.py
@@ -153,8 +153,7 @@ possible_browser.platform.GetOSName() == 'win') -@benchmark.Disabled('all') # crbug.com/702194 -#@benchmark.Enabled('android') +@benchmark.Enabled('android') @benchmark.Owner(emails=['vmiura@chromium.org', 'tdresser@chromium.org']) class SmoothnessKeyMobileSites(_Smoothness): """Measures rendering statistics while scrolling down the key mobile sites. @@ -277,8 +276,7 @@ possible_browser.browser_type == 'reference') -@benchmark.Disabled('all') # crbug.com/702194 -#@benchmark.Enabled('android') +@benchmark.Enabled('android') @benchmark.Owner(emails=['tdresser@chromium.org', 'rbyers@chromium.org']) class SmoothnessSyncScrollKeyMobileSites(_Smoothness): """Measures rendering statistics for the key mobile sites with synchronous
diff --git a/tools/perf/benchmarks/v8.py b/tools/perf/benchmarks/v8.py index e671c67..f835c10 100644 --- a/tools/perf/benchmarks/v8.py +++ b/tools/perf/benchmarks/v8.py
@@ -43,8 +43,7 @@ return 'v8.top_25_smooth' -@benchmark.Disabled('all') # crbug.com/702194 -#@benchmark.Enabled('android') +@benchmark.Enabled('android') @benchmark.Owner(emails=['hpayer@chromium.org', 'rmcilroy@chromium.org']) class V8KeyMobileSites(perf_benchmark.PerfBenchmark): """Measures V8 GC metrics on the while scrolling down key mobile sites.
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc index bc3639c..865504a 100644 --- a/ui/compositor/layer_unittest.cc +++ b/ui/compositor/layer_unittest.cc
@@ -2202,15 +2202,9 @@ DISALLOW_COPY_AND_ASSIGN(TestMetricsReporter); }; -// https://crbug.com/709080 -#if defined(OS_WIN) -#define MAYBE_ReportMetrics DISABLED_ReportMetrics -#else -#define MAYBE_ReportMetrics ReportMetrics -#endif // Starts an animation and tests that incrementing compositor frame count can // be used to report animation smoothness metrics. -TEST_F(LayerWithRealCompositorTest, MAYBE_ReportMetrics) { +TEST_F(LayerWithRealCompositorTest, ReportMetrics) { std::unique_ptr<Layer> root(CreateLayer(LAYER_SOLID_COLOR)); GetCompositor()->SetRootLayer(root.get()); LayerAnimator* animator = root->GetAnimator();
diff --git a/ui/display/manager/display_manager.cc b/ui/display/manager/display_manager.cc index 2a6e59bb..6b34dedc 100644 --- a/ui/display/manager/display_manager.cc +++ b/ui/display/manager/display_manager.cc
@@ -487,6 +487,21 @@ return iter->second; } +void DisplayManager::SetSelectedModeForDisplayId( + int64_t display_id, + const scoped_refptr<ManagedDisplayMode>& display_mode) { + ManagedDisplayInfo info = GetDisplayInfo(display_id); + auto iter = FindDisplayMode(info, display_mode); + if (iter == info.display_modes().end()) { + LOG(WARNING) << "Unsupported display mode was requested:" + << "size=" << display_mode->size().ToString() + << ", ui scale=" << display_mode->ui_scale() + << ", scale factor=" << display_mode->device_scale_factor(); + } + + display_modes_[display_id] = *iter; +} + bool DisplayManager::IsDisplayUIScalingEnabled() const { return GetDisplayIdForUIScaling() != kInvalidDisplayId; }
diff --git a/ui/display/manager/display_manager.h b/ui/display/manager/display_manager.h index 5524f31..9de768fc 100644 --- a/ui/display/manager/display_manager.h +++ b/ui/display/manager/display_manager.h
@@ -208,11 +208,18 @@ scoped_refptr<ManagedDisplayMode> GetActiveModeForDisplayId( int64_t display_id) const; - // Returns the display's selected mode. This returns false and doesn't set - // |mode_out| if the display mode is in default. + // Returns the display's selected mode. scoped_refptr<ManagedDisplayMode> GetSelectedModeForDisplayId( int64_t display_id) const; + // Sets the selected mode of |display_id| to |display_mode| if it's a + // supported mode. This doesn't trigger reconfiguration or observers + // notifications. This is suitable to be used from within an observer + // notification to prevent reentrance to UpdateDisplaysWith(). + void SetSelectedModeForDisplayId( + int64_t display_id, + const scoped_refptr<ManagedDisplayMode>& display_mode); + // Tells if the virtual resolution feature is enabled. bool IsDisplayUIScalingEnabled() const;
diff --git a/ui/views/animation/ink_drop_impl_unittest.cc b/ui/views/animation/ink_drop_impl_unittest.cc index d63ce21..2a9904e 100644 --- a/ui/views/animation/ink_drop_impl_unittest.cc +++ b/ui/views/animation/ink_drop_impl_unittest.cc
@@ -15,6 +15,7 @@ #include "ui/compositor/scoped_animation_duration_scale_mode.h" #include "ui/views/animation/test/ink_drop_impl_test_api.h" #include "ui/views/animation/test/test_ink_drop_host.h" +#include "ui/views/test/platform_test_helper.h" #include "ui/views/test/views_test_base.h" namespace views { @@ -235,6 +236,13 @@ TEST_F(InkDropImplTest, SettingHighlightStateDuringStateExitIsntAllowedDeathTest) { + // gtest death tests, such as EXPECT_DCHECK_DEATH(), can not work in the + // presence of fork() and other process launching. In views-mus, we have + // already launched additional processes for our service manager. Performing + // this test under mus is impossible. + if (PlatformTestHelper::IsMus()) + return; + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; test::InkDropImplTestApi::SetStateOnExitHighlightState::Install(
diff --git a/ui/views/layout/grid_layout_unittest.cc b/ui/views/layout/grid_layout_unittest.cc index 35cc80b..91c759efe 100644 --- a/ui/views/layout/grid_layout_unittest.cc +++ b/ui/views/layout/grid_layout_unittest.cc
@@ -7,6 +7,7 @@ #include "base/compiler_specific.h" #include "base/test/gtest_util.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/views/test/platform_test_helper.h" #include "ui/views/view.h" namespace views { @@ -772,6 +773,13 @@ // GridLayout must guard against this as it hasn't yet updated the internal // structures it uses to calculate Layout, so will give bogus results. TEST_F(GridLayoutTest, LayoutOnAddDeath) { + // gtest death tests, such as EXPECT_DCHECK_DEATH(), can not work in the + // presence of fork() and other process launching. In views-mus, we have + // already launched additional processes for our service manager. Performing + // this test under mus is impossible. + if (PlatformTestHelper::IsMus()) + return; + // Don't use the |layout| data member from the test harness, otherwise // SetLayoutManager() can take not take ownership. GridLayout* grid_layout = new GridLayout(&host);
diff --git a/ui/webui/resources/cr_elements/network/cr_network_icon.html b/ui/webui/resources/cr_elements/network/cr_network_icon.html index d9fbc66..9158262 100644 --- a/ui/webui/resources/cr_elements/network/cr_network_icon.html +++ b/ui/webui/resources/cr_elements/network/cr_network_icon.html
@@ -26,6 +26,7 @@ /* Upper-left corner */ #technology { + --iron-icon-fill-color: #5a5a5a; height: 20px; left: 0; position: absolute; @@ -35,11 +36,12 @@ /* Lower-right corner */ #secure { - height: 20px; + --iron-icon-fill-color: #5a5a5a; + height: 8px; left: 16px; position: absolute; top: 16px; - width: 20px; + width: 8px; } /* Images */ @@ -131,7 +133,7 @@ icon="[[getTechnology_(networkState)]]"> </iron-icon> <iron-icon id="secure" hidden="[[!showSecure_(networkState)]]" - icon="network:badge-secure"> + icon="network8:badge-secure"> </iron-icon> </template> <script src="cr_network_icon.js"></script>
diff --git a/ui/webui/resources/cr_elements/network/network_icons.html b/ui/webui/resources/cr_elements/network/network_icons.html index 21551ba4..8097dbf 100644 --- a/ui/webui/resources/cr_elements/network/network_icons.html +++ b/ui/webui/resources/cr_elements/network/network_icons.html
@@ -1,11 +1,11 @@ <link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html"> +<!-- These icons were converted from source .svg files. --> + <iron-iconset-svg name="network" size="20"> <svg> <defs> - <!-- These icons were converted from source .svg files. --> - <!-- Badges --> <g id="badge-1x"><path d="M0 1h1V0h1v5H1V2H0M3 2h1v1H3V2zm1 1h1v1H4V3zM3 4h1v1H3V4zm2 0h1v1H5V4zm0-2h1v1H5V2z"/></g> <g id="badge-3g"><path d="M9 0H5v5h4V2H7v1h1v1H6V1h3M3 3v2h1V0H0v1h3v1H1v1h2zM0 4h3v1H0V4z"/></g> @@ -17,7 +17,17 @@ <g id="badge-hspa-plus"><path d="M0 0h1v2h2V0h1v5H3V3H1v2H0M7 1V0H6v1H5v1h1v1h1V2h1V1H7z"/></g> <g id="badge-lte"><path d="M0 0v5h3V4H1V0M3 0h5v1H6v4H5V1H3M9 0v5h3V4h-2V3h1V2h-1V1h2V0"/></g> <g id="badge-lte-advanced"><path d="M0 0v5h3V4H1V0M3 0h5v1H6v4H5V1H3M9 0v5h3V4h-2V3h1V2h-1V1h2V0M15 1V0h-1v1h-1v1h1v1h1V2h1V1h-1z"/></g> - <g id="badge-secure"><path d="M1 4c0-.552.45-1 .99-1h4.02c.546 0 .99.444.99 1v3c0 .552-.45 1-.99 1H1.99C1.445 8 1 7.556 1 7V4zm2.5 1h1v1h-1V5z"/><path d="M2 1h1v3H2V1zm3 0h1v3H5V1zm.5-1v1h-3V0h3z"/></g> + </defs> + </svg> +</iron-iconset-svg> + +<iron-iconset-svg name="network8" size="8"> + <svg> + <defs> + <g id="badge-secure" fill-rule="evenodd"> + <path d="M1 4c0-.552.45-1 .99-1h4.02c.546 0 .99.444.99 1v3c0 .552-.45 1-.99 1H1.99C1.445 8 1 7.556 1 7V4zm2.5 1h1v1h-1V5z"/> + <path d="M2 1h1v3H2V1zm3 0h1v3H5V1zm.5-1v1h-3V0h3z"/> + </g> </defs> </svg> </iron-iconset-svg>
diff --git a/ui/webui/resources/html/md_select_css.html b/ui/webui/resources/html/md_select_css.html index 0c483be..f9a8062 100644 --- a/ui/webui/resources/html/md_select_css.html +++ b/ui/webui/resources/html/md_select_css.html
@@ -34,10 +34,13 @@ /* Mirroring paper-dropdown-menu disabled style. */ .md-select[disabled] { - border-bottom: 1px dashed var(--secondary-text-color); + pointer-events: none; + } + + .md-select[disabled], + .md-select[disabled] + .md-select-underline { color: var(--secondary-text-color); opacity: 0.65; - pointer-events: none; } :host-context([dir=rtl]) .md-select { @@ -77,6 +80,10 @@ transition: transform 200ms ease-out; } + .md-select[disabled] + .md-select-underline { + border-top: 1px dashed var(--secondary-text-color); + } + .md-select-wrapper { display: inline-block; max-width: 100%;