diff --git a/DEPS b/DEPS index a660b30..25040a008 100644 --- a/DEPS +++ b/DEPS
@@ -43,7 +43,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '8e49b3ef63f17f28c1f6ea9f83011f361227350b', + 'v8_revision': '9c51453ce0a6f1d93b45c2557c7011c8968a4176', # 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.
diff --git a/build/android/pylib/gtest/gtest_config.py b/build/android/pylib/gtest/gtest_config.py index 35401c90..91c98d3 100644 --- a/build/android/pylib/gtest/gtest_config.py +++ b/build/android/pylib/gtest/gtest_config.py
@@ -41,7 +41,7 @@ 'ui_android_unittests', 'ui_base_unittests', 'ui_touch_selection_unittests', - 'unit_tests', + 'unit_tests_apk', 'webkit_unit_tests', ]
diff --git a/chrome/browser/chromeos/arc/arc_policy_bridge.cc b/chrome/browser/chromeos/arc/arc_policy_bridge.cc index 84ab6407..5ad15000 100644 --- a/chrome/browser/chromeos/arc/arc_policy_bridge.cc +++ b/chrome/browser/chromeos/arc/arc_policy_bridge.cc
@@ -152,6 +152,10 @@ arc_bridge_service()->RemoveObserver(this); } +void ArcPolicyBridge::OverrideIsManagedForTesting(bool is_managed) { + is_managed_ = is_managed; +} + void ArcPolicyBridge::OnPolicyInstanceReady() { VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady"; if (policy_service_ == nullptr) { @@ -177,6 +181,10 @@ void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) { VLOG(1) << "ArcPolicyBridge::GetPolicies"; + if (!is_managed_) { + callback.Run(mojo::String(nullptr)); + return; + } const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME, std::string()); const policy::PolicyMap& policy_map = @@ -198,9 +206,10 @@ user_manager::UserManager::Get()->GetPrimaryUser(); Profile* const profile = chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); - policy_service_ = - policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile) - ->policy_service(); + auto profile_policy_connector = + policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile); + policy_service_ = profile_policy_connector->policy_service(); + is_managed_ = profile_policy_connector->IsManaged(); } } // namespace arc
diff --git a/chrome/browser/chromeos/arc/arc_policy_bridge.h b/chrome/browser/chromeos/arc/arc_policy_bridge.h index 4464bb2..caf04f2 100644 --- a/chrome/browser/chromeos/arc/arc_policy_bridge.h +++ b/chrome/browser/chromeos/arc/arc_policy_bridge.h
@@ -27,6 +27,8 @@ policy::PolicyService* policy_service); ~ArcPolicyBridge() override; + void OverrideIsManagedForTesting(bool is_managed); + // ArcBridgeService::Observer overrides. void OnPolicyInstanceReady() override; void OnPolicyInstanceClosed() override; @@ -44,6 +46,7 @@ mojo::Binding<PolicyHost> binding_; policy::PolicyService* policy_service_ = nullptr; + bool is_managed_ = false; DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridge); };
diff --git a/chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc b/chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc index 1c4b4a2..4b3f7f1 100644 --- a/chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc +++ b/chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc
@@ -30,6 +30,7 @@ bridge_service_.reset(new FakeArcBridgeService()); policy_bridge_.reset( new ArcPolicyBridge(bridge_service_.get(), &policy_service_)); + policy_bridge_->OverrideIsManagedForTesting(true); EXPECT_CALL(policy_service_, GetPolicies(policy::PolicyNamespace( @@ -70,6 +71,11 @@ DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridgeTest); }; +TEST_F(ArcPolicyBridgeTest, UnmanagedTest) { + policy_bridge()->OverrideIsManagedForTesting(false); + policy_bridge()->GetPolicies(PolicyStringCallback(nullptr)); +} + TEST_F(ArcPolicyBridgeTest, EmptyPolicyTest) { // No policy is set, result should be empty. policy_bridge()->GetPolicies(PolicyStringCallback("{}"));
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_tasks.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_tasks.cc index 6431e9e..3e7c03f 100644 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_tasks.cc +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_tasks.cc
@@ -192,11 +192,12 @@ } void FileManagerPrivateInternalGetFileTasksFunction::OnFileTasksListed( - const std::vector<file_manager::file_tasks::FullTaskDescriptor>& tasks) { + std::unique_ptr<std::vector<file_manager::file_tasks::FullTaskDescriptor>> + tasks) { // Convert the tasks into JSON compatible objects. using api::file_manager_private::FileTask; std::vector<FileTask> results; - for (const file_manager::file_tasks::FullTaskDescriptor& task : tasks) { + for (const file_manager::file_tasks::FullTaskDescriptor& task : *tasks) { FileTask converted; converted.task_id = file_manager::file_tasks::TaskDescriptorToId(task.task_descriptor());
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_tasks.h b/chrome/browser/chromeos/extensions/file_manager/private_api_tasks.h index 112d25b..3f951a9 100644 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_tasks.h +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_tasks.h
@@ -68,7 +68,8 @@ std::unique_ptr<std::set<base::FilePath>> path_directory_set); void OnFileTasksListed( - const std::vector<file_manager::file_tasks::FullTaskDescriptor>& tasks); + std::unique_ptr<std::vector<file_manager::file_tasks::FullTaskDescriptor>> + tasks); std::unique_ptr<app_file_handler_util::IsDirectoryCollector> is_directory_collector_;
diff --git a/chrome/browser/chromeos/file_manager/file_tasks.cc b/chrome/browser/chromeos/file_manager/file_tasks.cc index 88fb033..fb7b554 100644 --- a/chrome/browser/chromeos/file_manager/file_tasks.cc +++ b/chrome/browser/chromeos/file_manager/file_tasks.cc
@@ -19,6 +19,7 @@ #include "chrome/browser/chromeos/file_manager/file_browser_handlers.h" #include "chrome/browser/chromeos/file_manager/fileapi_util.h" #include "chrome/browser/chromeos/file_manager/open_util.h" +#include "chrome/browser/extensions/api/file_handlers/mime_util.h" #include "chrome/browser/extensions/extension_tab_util.h" #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/profiles/profile.h" @@ -140,6 +141,38 @@ return false; } +void FindArcTasks(Profile* profile, + const std::vector<extensions::EntryInfo>& entries, + std::unique_ptr<std::vector<FullTaskDescriptor>> result_list, + const FindTasksCallback& callback) { + // TODO(kinaba): implement. + callback.Run(std::move(result_list)); +} + +void ExecuteByArcAfterMimeTypesCollected( + Profile* profile, + const TaskDescriptor& task, + const std::vector<FileSystemURL>& file_urls, + const FileTaskFinishedCallback& done, + extensions::app_file_handler_util::MimeTypeCollector* mime_collector, + std::unique_ptr<std::vector<std::string>> mime_types) { + // TODO(kinaba): implement. + NOTIMPLEMENTED(); + done.Run(extensions::api::file_manager_private::TASK_RESULT_FAILED); +} + +void PostProcessFoundTasks( + Profile* profile, + const std::vector<extensions::EntryInfo>& entries, + const FindTasksCallback& callback, + std::unique_ptr<std::vector<FullTaskDescriptor>> result_list) { + // Google documents can only be handled by internal handlers. + if (ContainsGoogleDocument(entries)) + KeepOnlyFileManagerInternalTasks(result_list.get()); + ChooseAndSetDefaultTask(*profile->GetPrefs(), entries, result_list.get()); + callback.Run(std::move(result_list)); +} + } // namespace FullTaskDescriptor::FullTaskDescriptor( @@ -275,9 +308,15 @@ const TaskDescriptor& task, const std::vector<FileSystemURL>& file_urls, const FileTaskFinishedCallback& done) { + // ARC apps needs mime types for launching. Retrieve them first. if (task.task_type == TASK_TYPE_ARC_APP) { - NOTIMPLEMENTED(); - return false; + extensions::app_file_handler_util::MimeTypeCollector* mime_collector = + new extensions::app_file_handler_util::MimeTypeCollector(profile); + mime_collector->CollectForURLs( + file_urls, + base::Bind(&ExecuteByArcAfterMimeTypesCollected, profile, task, + file_urls, done, base::Owned(mime_collector))); + return true; } // drive::FileTaskExecutor is responsible to handle drive tasks. @@ -525,29 +564,26 @@ const std::vector<GURL>& file_urls, const FindTasksCallback& callback) { DCHECK(profile); - std::vector<FullTaskDescriptor> result_list; + std::unique_ptr<std::vector<FullTaskDescriptor>> result_list( + new std::vector<FullTaskDescriptor>); // Find Drive app tasks, if the drive app registry is present. if (drive_app_registry) - FindDriveAppTasks(*drive_app_registry, entries, &result_list); + FindDriveAppTasks(*drive_app_registry, entries, result_list.get()); // Find and append file handler tasks. We know there aren't duplicates // because Drive apps and platform apps are entirely different kinds of // tasks. - FindFileHandlerTasks(profile, entries, &result_list); + FindFileHandlerTasks(profile, entries, result_list.get()); // Find and append file browser handler tasks. We know there aren't // duplicates because "file_browser_handlers" and "file_handlers" shouldn't // be used in the same manifest.json. - FindFileBrowserHandlerTasks(profile, file_urls, &result_list); + FindFileBrowserHandlerTasks(profile, file_urls, result_list.get()); - // Google documents can only be handled by internal handlers. - if (ContainsGoogleDocument(entries)) - KeepOnlyFileManagerInternalTasks(&result_list); - - ChooseAndSetDefaultTask(*profile->GetPrefs(), entries, &result_list); - - callback.Run(result_list); + // Find and append ARC handler tasks. + FindArcTasks(profile, entries, std::move(result_list), + base::Bind(&PostProcessFoundTasks, profile, entries, callback)); } void ChooseAndSetDefaultTask(const PrefService& pref_service,
diff --git a/chrome/browser/chromeos/file_manager/file_tasks.h b/chrome/browser/chromeos/file_manager/file_tasks.h index 66dd4fc0..7207051 100644 --- a/chrome/browser/chromeos/file_manager/file_tasks.h +++ b/chrome/browser/chromeos/file_manager/file_tasks.h
@@ -111,6 +111,7 @@ #ifndef CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILE_TASKS_H_ #define CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILE_TASKS_H_ +#include <memory> #include <set> #include <string> #include <vector> @@ -289,7 +290,8 @@ std::vector<FullTaskDescriptor>* result_list); // Callback function type for FindAllTypesOfTasks. -typedef base::Callback<void(const std::vector<FullTaskDescriptor>& result)> +typedef base::Callback<void( + std::unique_ptr<std::vector<FullTaskDescriptor>> result)> FindTasksCallback; // Finds all types (drive, file handlers, file browser handlers) of
diff --git a/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc b/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc index a15b91e..afb46b328 100644 --- a/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc +++ b/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc
@@ -455,8 +455,8 @@ private: void OnReply(std::vector<FullTaskDescriptor>* out, - const std::vector<FullTaskDescriptor>& result) { - *out = result; + std::unique_ptr<std::vector<FullTaskDescriptor>> result) { + *out = *result; run_loop_.Quit(); }
diff --git a/chrome/browser/chromeos/file_manager/open_util.cc b/chrome/browser/chromeos/file_manager/open_util.cc index 81d7252..49f8a09 100644 --- a/chrome/browser/chromeos/file_manager/open_util.cc +++ b/chrome/browser/chromeos/file_manager/open_util.cc
@@ -77,11 +77,11 @@ Profile* profile, const GURL& url, const platform_util::OpenOperationCallback& callback, - const std::vector<file_tasks::FullTaskDescriptor>& tasks) { + std::unique_ptr<std::vector<file_tasks::FullTaskDescriptor>> tasks) { // Select a default handler. If a default handler is not available, select // a non-generic file handler. const file_tasks::FullTaskDescriptor* chosen_task = nullptr; - for (const auto& task : tasks) { + for (const auto& task : *tasks) { if (!task.is_generic_file_handler()) { chosen_task = &task; if (task.is_default())
diff --git a/chrome/browser/extensions/api/instance_id/instance_id_apitest.cc b/chrome/browser/extensions/api/instance_id/instance_id_apitest.cc index 2709a73b..63a46743 100644 --- a/chrome/browser/extensions/api/instance_id/instance_id_apitest.cc +++ b/chrome/browser/extensions/api/instance_id/instance_id_apitest.cc
@@ -5,7 +5,6 @@ #include <memory> #include <utility> -#include "base/base_switches.h" #include "base/macros.h" #include "base/run_loop.h" #include "chrome/browser/extensions/api/instance_id/instance_id_api.h" @@ -42,7 +41,6 @@ protected: void SetUpOnMainThread() override; - void SetUpCommandLine(base::CommandLine* command_line) override; private: DISALLOW_COPY_AND_ASSIGN(InstanceIDApiTest); @@ -58,14 +56,6 @@ ExtensionApiTest::SetUpOnMainThread(); } -void InstanceIDApiTest::SetUpCommandLine(base::CommandLine* command_line) { - ExtensionApiTest::SetUpCommandLine(command_line); - - // Makes sure InstanceID is enabled for testing. - command_line->AppendSwitchASCII( - switches::kForceFieldTrials, "InstanceID/Enabled/"); -} - IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, GetID) { ASSERT_TRUE(RunExtensionTest("instance_id/get_id")); }
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc index 630f239..9eec60fa 100644 --- a/chrome/browser/prerender/prerender_browsertest.cc +++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -326,6 +326,27 @@ DISALLOW_COPY_AND_ASSIGN(ChannelDestructionWatcher); }; +// A navigation observer to wait until WebContents is destroyed. +class WebContentsDestructionObserver : public WebContentsObserver { + public: + explicit WebContentsDestructionObserver(WebContents* web_contents) + : WebContentsObserver(web_contents) {} + + // Waits for destruction of the observed WebContents. + void Wait() { + loop_.Run(); + } + + // WebContentsObserver implementation: + void WebContentsDestroyed() override { + loop_.Quit(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(WebContentsDestructionObserver); + base::RunLoop loop_; +}; + // A navigation observer to wait on either a new load or a swap of a // WebContents. On swap, if the new WebContents is still loading, wait for that // load to complete as well. Note that the load must begin after the observer is @@ -3074,7 +3095,9 @@ } // Checks that when a prerendered page is swapped in to a referring page, the -// unload handlers on the referring page are executed. +// unload handlers on the referring page are executed and its WebContents is +// destroyed. +// TODO(pasko): A similar test for BeforeUnload. See http://crbug.com/600693 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderUnload) { // Matches URL in prerender_loader_with_unload.html. const GURL unload_url("http://unload-url.test"); @@ -3088,8 +3111,10 @@ set_loader_path("/prerender/prerender_loader_with_unload.html"); PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); + WebContentsDestructionObserver destruction_observer(GetActiveWebContents()); NavigateToDestURL(); unload_counter.WaitForCount(1); + destruction_observer.Wait(); } // Checks that a hanging unload on the referring page of a prerender swap does
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc index 3bc6d9c..17bb6d91 100644 --- a/chrome/browser/prerender/prerender_manager.cc +++ b/chrome/browser/prerender/prerender_manager.cc
@@ -144,11 +144,6 @@ ScheduleWebContentsForDeletion(false); } - void SwappedOut(WebContents* source) override { - DCHECK_EQ(tab_.get(), source); - ScheduleWebContentsForDeletion(false); - } - bool ShouldSuppressDialogs(WebContents* source) override { // Use this as a proxy for getting statistics on how often we fail to honor // the beforeunload event.
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/OWNERS b/chrome/browser/ui/views/apps/app_info_dialog/OWNERS deleted file mode 100644 index c1a46c70..0000000 --- a/chrome/browser/ui/views/apps/app_info_dialog/OWNERS +++ /dev/null
@@ -1 +0,0 @@ -sashab@chromium.org
diff --git a/components/cronet/android/java/src/org/chromium/net/CronetLibraryLoader.java b/components/cronet/android/java/src/org/chromium/net/CronetLibraryLoader.java index 59d9b32..0ce0b5430 100644 --- a/components/cronet/android/java/src/org/chromium/net/CronetLibraryLoader.java +++ b/components/cronet/android/java/src/org/chromium/net/CronetLibraryLoader.java
@@ -17,24 +17,23 @@ */ @JNINamespace("cronet") class CronetLibraryLoader { - // Synchronize initialization. + /** + * Synchronize access to sInitTaskPosted and initialization routine. + */ private static final Object sLoadLock = new Object(); private static final String TAG = "CronetLibraryLoader"; - // Has library loading commenced? Setting guarded by sLoadLock. - private static volatile boolean sInitStarted = false; - // Has ensureMainThreadInitialized() completed? Only accessed on main thread. - private static boolean sMainThreadInitDone = false; + private static boolean sInitTaskPosted = false; /** * Ensure that native library is loaded and initialized. Can be called from * any thread, the load and initialization is performed on main thread. */ - static void ensureInitialized(final Context context, final CronetEngine.Builder builder) { + public static void ensureInitialized( + final Context context, final CronetEngine.Builder builder) { synchronized (sLoadLock) { - if (sInitStarted) { + if (sInitTaskPosted) { return; } - sInitStarted = true; builder.loadLibrary(); if (!Version.CRONET_VERSION.equals(nativeGetCronetVersion())) { throw new RuntimeException(String.format( @@ -49,7 +48,7 @@ // Init native Chromium CronetEngine on Main UI thread. Runnable task = new Runnable() { public void run() { - ensureInitializedOnMainThread(context); + initOnMainThread(context); } }; // Run task immediately or post it to the UI thread. @@ -60,20 +59,11 @@ // to other tasks posted to the main thread. new Handler(Looper.getMainLooper()).post(task); } + sInitTaskPosted = true; } } - /** - * Ensure that the main thread initialization has completed. Can only be called from - * the main thread. Ensures that the NetworkChangeNotifier is initialzied and the - * main thread native MessageLoop is initialized. - */ - static void ensureInitializedOnMainThread(Context context) { - assert sInitStarted; - assert Looper.getMainLooper() == Looper.myLooper(); - if (sMainThreadInitDone) { - return; - } + private static void initOnMainThread(final Context context) { NetworkChangeNotifier.init(context); // Registers to always receive network notifications. Note // that this call is fine for Cronet because Cronet @@ -86,7 +76,6 @@ // the undesired initial network change observer notification, which // will cause active requests to fail with ERR_NETWORK_CHANGED. nativeCronetInitOnMainThread(); - sMainThreadInitDone = true; } // Native methods are implemented in cronet_library_loader.cc.
diff --git a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java index 1c4140c..9fd00597 100644 --- a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java +++ b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
@@ -76,7 +76,7 @@ new ObserverList<RequestFinishedListener>(); @UsedByReflection("CronetEngine.java") - public CronetUrlRequestContext(final CronetEngine.Builder builder) { + public CronetUrlRequestContext(CronetEngine.Builder builder) { CronetLibraryLoader.ensureInitialized(builder.getContext(), builder); nativeSetMinLogLevel(getLoggingLevel()); synchronized (mLock) { @@ -91,7 +91,6 @@ Runnable task = new Runnable() { @Override public void run() { - CronetLibraryLoader.ensureInitializedOnMainThread(builder.getContext()); synchronized (mLock) { // mUrlRequestContextAdapter is guaranteed to exist until // initialization on main and network threads completes and
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java index 5fbfcbf..5353b8a 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
@@ -1125,30 +1125,4 @@ assertTrue(loader.wasCalled()); } } - - // Creates a CronetEngine on another thread and then one on the main thread. This shouldn't - // crash. - @SmallTest - @Feature({"Cronet"}) - public void testThreadedStartup() throws Exception { - final ConditionVariable otherThreadDone = new ConditionVariable(); - final ConditionVariable uiThreadDone = new ConditionVariable(); - new Handler(Looper.getMainLooper()).post(new Runnable() { - public void run() { - final CronetEngine.Builder builder = - new CronetEngine.Builder(getContext()).setLibraryName("cronet_tests"); - new Thread() { - public void run() { - CronetEngine cronetEngine = builder.build(); - otherThreadDone.open(); - cronetEngine.shutdown(); - } - }.start(); - otherThreadDone.block(); - builder.build().shutdown(); - uiThreadDone.open(); - } - }); - assertTrue(uiThreadDone.block(1000)); - } }
diff --git a/components/gcm_driver/gcm_driver_desktop_unittest.cc b/components/gcm_driver/gcm_driver_desktop_unittest.cc index c7a2b0c..5f66622 100644 --- a/components/gcm_driver/gcm_driver_desktop_unittest.cc +++ b/components/gcm_driver/gcm_driver_desktop_unittest.cc
@@ -11,7 +11,6 @@ #include "base/files/scoped_temp_dir.h" #include "base/location.h" #include "base/macros.h" -#include "base/metrics/field_trial.h" #include "base/run_loop.h" #include "base/strings/string_util.h" #include "base/test/test_simple_task_runner.h" @@ -167,7 +166,6 @@ TestingPrefServiceSimple prefs_; base::MessageLoopForUI message_loop_; base::Thread io_thread_; - base::FieldTrialList field_trial_list_; std::unique_ptr<GCMDriverDesktop> driver_; std::unique_ptr<FakeGCMAppHandler> gcm_app_handler_; std::unique_ptr<FakeGCMConnectionObserver> gcm_connection_observer_; @@ -187,7 +185,6 @@ GCMDriverTest::GCMDriverTest() : io_thread_("IOThread"), - field_trial_list_(NULL), registration_result_(GCMClient::UNKNOWN_ERROR), send_result_(GCMClient::UNKNOWN_ERROR), unregistration_result_(GCMClient::UNKNOWN_ERROR) { @@ -950,9 +947,6 @@ GCMDriverTest::SetUp(); url_fetcher_factory_.set_remove_fetcher_on_delete(true); - - // Turn on all-user support. - ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("GCM", "Enabled")); } void GCMChannelStatusSyncerTest::CompleteGCMChannelStatusRequest(
diff --git a/components/gcm_driver/instance_id/instance_id_driver.cc b/components/gcm_driver/instance_id/instance_id_driver.cc index c4c89ae..1e3ee9e 100644 --- a/components/gcm_driver/instance_id/instance_id_driver.cc +++ b/components/gcm_driver/instance_id/instance_id_driver.cc
@@ -5,6 +5,7 @@ #include "components/gcm_driver/instance_id/instance_id_driver.h" #include "base/metrics/field_trial.h" +#include "base/strings/string_util.h" #include "build/build_config.h" #include "components/gcm_driver/gcm_driver.h" #include "components/gcm_driver/instance_id/instance_id.h" @@ -13,14 +14,15 @@ namespace { const char kInstanceIDFieldTrialName[] = "InstanceID"; -const char kInstanceIDFieldTrialEnabledGroupName[] = "Enabled"; +const char kInstanceIDFieldTrialDisabledGroupPrefix[] = "Disabled"; } // namespace // static bool InstanceIDDriver::IsInstanceIDEnabled() { std::string group_name = base::FieldTrialList::FindFullName(kInstanceIDFieldTrialName); - return group_name == kInstanceIDFieldTrialEnabledGroupName; + return !base::StartsWith(group_name, kInstanceIDFieldTrialDisabledGroupPrefix, + base::CompareCase::INSENSITIVE_ASCII); } InstanceIDDriver::InstanceIDDriver(gcm::GCMDriver* gcm_driver)
diff --git a/content/browser/frame_host/frame_navigation_entry.cc b/content/browser/frame_host/frame_navigation_entry.cc index a6fc6d9..90293581 100644 --- a/content/browser/frame_host/frame_navigation_entry.cc +++ b/content/browser/frame_host/frame_navigation_entry.cc
@@ -8,14 +8,10 @@ namespace content { -FrameNavigationEntry::FrameNavigationEntry(int frame_tree_node_id) - : frame_tree_node_id_(frame_tree_node_id), - item_sequence_number_(-1), - document_sequence_number_(-1), - post_id_(-1) {} +FrameNavigationEntry::FrameNavigationEntry() + : item_sequence_number_(-1), document_sequence_number_(-1), post_id_(-1) {} FrameNavigationEntry::FrameNavigationEntry( - int frame_tree_node_id, const std::string& frame_unique_name, int64_t item_sequence_number, int64_t document_sequence_number, @@ -24,8 +20,7 @@ const Referrer& referrer, const std::string& method, int64_t post_id) - : frame_tree_node_id_(frame_tree_node_id), - frame_unique_name_(frame_unique_name), + : frame_unique_name_(frame_unique_name), item_sequence_number_(item_sequence_number), document_sequence_number_(document_sequence_number), site_instance_(std::move(site_instance)), @@ -38,7 +33,7 @@ } FrameNavigationEntry* FrameNavigationEntry::Clone() const { - FrameNavigationEntry* copy = new FrameNavigationEntry(frame_tree_node_id_); + FrameNavigationEntry* copy = new FrameNavigationEntry(); copy->UpdateEntry(frame_unique_name_, item_sequence_number_, document_sequence_number_, site_instance_.get(), url_, referrer_, page_state_, method_, post_id_); @@ -67,17 +62,14 @@ void FrameNavigationEntry::set_item_sequence_number( int64_t item_sequence_number) { - // Once assigned, the item sequence number shouldn't change. - DCHECK(item_sequence_number_ == -1 || - item_sequence_number_ == item_sequence_number); + // TODO(creis): Assert that this does not change after being assigned, once + // location.replace is classified as NEW_PAGE rather than EXISTING_PAGE. + // Same for document sequence number. See https://crbug.com/596707. item_sequence_number_ = item_sequence_number; } void FrameNavigationEntry::set_document_sequence_number( int64_t document_sequence_number) { - // Once assigned, the document sequence number shouldn't change. - DCHECK(document_sequence_number_ == -1 || - document_sequence_number_ == document_sequence_number); document_sequence_number_ = document_sequence_number; }
diff --git a/content/browser/frame_host/frame_navigation_entry.h b/content/browser/frame_host/frame_navigation_entry.h index e93eb010..256cd26 100644 --- a/content/browser/frame_host/frame_navigation_entry.h +++ b/content/browser/frame_host/frame_navigation_entry.h
@@ -15,7 +15,8 @@ namespace content { -// Represents a session history item for a particular frame. +// Represents a session history item for a particular frame. It is matched with +// corresponding FrameTreeNodes using unique name (or by the root position). // // This class is refcounted and can be shared across multiple NavigationEntries. // For now, it is owned by a single NavigationEntry and only tracks the main @@ -28,9 +29,8 @@ class CONTENT_EXPORT FrameNavigationEntry : public base::RefCounted<FrameNavigationEntry> { public: - explicit FrameNavigationEntry(int frame_tree_node_id); - FrameNavigationEntry(int frame_tree_node_id, - const std::string& frame_unique_name, + FrameNavigationEntry(); + FrameNavigationEntry(const std::string& frame_unique_name, int64_t item_sequence_number, int64_t document_sequence_number, scoped_refptr<SiteInstanceImpl> site_instance, @@ -54,17 +54,6 @@ const std::string& method, int64_t post_id); - // The ID of the FrameTreeNode this entry is for. -1 for the main frame, - // since we don't always know the FrameTreeNode ID when creating the overall - // NavigationEntry. - // TODO(creis): Consider removing |frame_tree_node_id| in favor of - // |frame_unique_name|, if we can move unique name computation to the browser - // process. - int frame_tree_node_id() const { return frame_tree_node_id_; } - void set_frame_tree_node_id(int frame_tree_node_id) { - frame_tree_node_id_ = frame_tree_node_id; - } - // The unique name of the frame this entry is for. This is a stable name for // the frame based on its position in the tree and relation to other named // frames, which does not change after cross-process navigations or restores. @@ -129,7 +118,6 @@ // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING // See the accessors above for descriptions. - int frame_tree_node_id_; std::string frame_unique_name_; int64_t item_sequence_number_; int64_t document_sequence_number_;
diff --git a/content/browser/frame_host/frame_tree_node.h b/content/browser/frame_host/frame_tree_node.h index d3818580..a8a9eed 100644 --- a/content/browser/frame_host/frame_tree_node.h +++ b/content/browser/frame_host/frame_tree_node.h
@@ -98,6 +98,10 @@ return replication_state_.name; } + const std::string& unique_name() const { + return replication_state_.unique_name; + } + size_t child_count() const { return children_.size(); }
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc index 9b3fd5e..7446d51 100644 --- a/content/browser/frame_host/navigation_controller_impl.cc +++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -736,7 +736,7 @@ if (SiteIsolationPolicy::UseSubframeNavigationEntries()) { entry = GetLastCommittedEntry()->Clone(); entry->SetPageID(-1); - entry->AddOrUpdateFrameEntry(node, "", -1, -1, nullptr, params.url, + entry->AddOrUpdateFrameEntry(node, -1, -1, nullptr, params.url, params.referrer, PageState(), "GET", -1); } } @@ -977,7 +977,7 @@ // NavigationEntry. // TODO(creis): Have the renderer classify location.replace as // did_create_new_entry for all cases and eliminate this special case. This - // requires updating several test expectations. See https://crbug.com/317872. + // requires updating several test expectations. See https://crbug.com/596707. if (!rfh->GetParent() && GetLastCommittedEntry() && GetLastCommittedEntry()->site_instance() != rfh->GetSiteInstance() && params.should_replace_current_entry) { @@ -1190,6 +1190,13 @@ frame_entry->set_method(params.method); frame_entry->set_post_id(params.post_id); + // Update the ISN and DSN in case this was a location.replace, which can cause + // them to change. + // TODO(creis): Classify location.replace as NEW_PAGE instead of EXISTING_PAGE + // in https://crbug.com/596707. + frame_entry->set_item_sequence_number(params.item_sequence_number); + frame_entry->set_document_sequence_number(params.document_sequence_number); + // The redirected to page should not inherit the favicon from the previous // page. if (ui::PageTransitionIsRedirect(params.transition)) @@ -1268,19 +1275,18 @@ std::unique_ptr<NavigationEntryImpl> new_entry; if (SiteIsolationPolicy::UseSubframeNavigationEntries()) { - // Make sure new_entry takes ownership of frame_entry in a scoped_refptr. - FrameNavigationEntry* frame_entry = new FrameNavigationEntry( - rfh->frame_tree_node()->frame_tree_node_id(), params.frame_unique_name, - params.item_sequence_number, params.document_sequence_number, - rfh->GetSiteInstance(), params.url, params.referrer, params.method, - params.post_id); + // Make sure we don't leak frame_entry if new_entry doesn't take ownership. + scoped_refptr<FrameNavigationEntry> frame_entry(new FrameNavigationEntry( + params.frame_unique_name, params.item_sequence_number, + params.document_sequence_number, rfh->GetSiteInstance(), params.url, + params.referrer, params.method, params.post_id)); new_entry = GetLastCommittedEntry()->CloneAndReplace(rfh->frame_tree_node(), - frame_entry); + frame_entry.get()); - // TODO(creis): Make sure the last committed entry always has the subframe - // entry to replace, and CHECK(frame_entry->HasOneRef). For now, we might - // not find the entry to replace, and new_entry will be deleted when it goes - // out of scope. See https://crbug.com/522193. + // TODO(creis): Update this to add the frame_entry if we can't find the one + // to replace, which can happen due to a unique name change. See + // https://crbug.com/607205. For now, frame_entry will be deleted when it + // goes out of scope if it doesn't get used. } else { new_entry = GetLastCommittedEntry()->Clone(); } @@ -1332,10 +1338,9 @@ // it may be a "history auto" case where we update an existing one. NavigationEntryImpl* last_committed = GetLastCommittedEntry(); last_committed->AddOrUpdateFrameEntry( - rfh->frame_tree_node(), params.frame_unique_name, - params.item_sequence_number, params.document_sequence_number, - rfh->GetSiteInstance(), params.url, params.referrer, params.page_state, - params.method, params.post_id); + rfh->frame_tree_node(), params.item_sequence_number, + params.document_sequence_number, rfh->GetSiteInstance(), params.url, + params.referrer, params.page_state, params.method, params.post_id); // Cross-process subframe navigations may leave a pending entry around. // Clear it if it's actually for the subframe.
diff --git a/content/browser/frame_host/navigation_controller_impl_browsertest.cc b/content/browser/frame_host/navigation_controller_impl_browsertest.cc index d369b414..8fc6ec9 100644 --- a/content/browser/frame_host/navigation_controller_impl_browsertest.cc +++ b/content/browser/frame_host/navigation_controller_impl_browsertest.cc
@@ -729,7 +729,7 @@ // ... and replace it with a failed load. // TODO(creis): Make this be NEW_PAGE along with the other location.replace // cases. There isn't much impact to having this be EXISTING_PAGE for now. - // See https://crbug.com/317872. + // See https://crbug.com/596707. { FrameNavigateParamsCapturer capturer(root); NavigateToURLAndReplace(shell(), error_url); @@ -967,7 +967,7 @@ { // location.replace(). // TODO(creis): Change this to be NEW_PAGE with replacement in - // https://crbug.com/317872. + // https://crbug.com/596707. FrameNavigateParamsCapturer capturer(root); GURL frame_url(embedded_test_server()->GetURL( "/navigation_controller/simple_page_1.html")); @@ -2267,6 +2267,9 @@ EXPECT_EQ(0U, entry4->root_node()->children.size()); } + // Inject a JS value so that we can check for it later. + EXPECT_TRUE(content::ExecuteScript(root->current_frame_host(), "foo=3;")); + // 7. Go back again, to the data URL in the nested iframe. { TestNavigationObserver back_load_observer(shell()->web_contents()); @@ -2298,6 +2301,15 @@ EXPECT_EQ(0U, entry3->root_node()->children.size()); } + // Verify that we did not reload the main frame. See https://crbug.com/586234. + { + int value = 0; + EXPECT_TRUE(ExecuteScriptAndExtractInt(root->current_frame_host(), + "domAutomationController.send(foo)", + &value)); + EXPECT_EQ(3, value); + } + // 8. Go back again, to the data URL in the first subframe. { TestNavigationObserver back_load_observer(shell()->web_contents()); @@ -2693,6 +2705,150 @@ EXPECT_EQ(named_subframe_name, foo_subframe_entry->frame_unique_name()); } +// Ensure we don't crash when cloning a named window. This happened in +// https://crbug.com/603245 because neither the FrameTreeNode ID nor the name of +// the cloned window matched the root FrameNavigationEntry. +IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, CloneNamedWindow) { + // Start on an initial page. + GURL url_1(embedded_test_server()->GetURL( + "/navigation_controller/simple_page_1.html")); + EXPECT_TRUE(NavigateToURL(shell(), url_1)); + + // Name the window. + EXPECT_TRUE(ExecuteScript(shell()->web_contents(), "window.name = 'foo';")); + + // Navigate it. + GURL url_2(embedded_test_server()->GetURL( + "/navigation_controller/simple_page_2.html")); + EXPECT_TRUE(NavigateToURL(shell(), url_2)); + + // Clone the tab and load the page. + std::unique_ptr<WebContentsImpl> new_tab( + static_cast<WebContentsImpl*>(shell()->web_contents()->Clone())); + NavigationController& new_controller = new_tab->GetController(); + EXPECT_TRUE(new_controller.IsInitialNavigation()); + EXPECT_TRUE(new_controller.NeedsReload()); + { + TestNavigationObserver clone_observer(new_tab.get()); + new_controller.LoadIfNecessary(); + clone_observer.Wait(); + } +} + +// Ensure we don't crash when going back in a cloned named window. This +// happened in https://crbug.com/603245 because neither the FrameTreeNode ID nor +// the name of the cloned window matched the root FrameNavigationEntry. +IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, + CloneAndGoBackWithNamedWindow) { + // Start on an initial page. + GURL url_1(embedded_test_server()->GetURL( + "/navigation_controller/simple_page_1.html")); + EXPECT_TRUE(NavigateToURL(shell(), url_1)); + + // Name the window. + EXPECT_TRUE(ExecuteScript(shell()->web_contents(), "window.name = 'foo';")); + + // Navigate it. + GURL url_2(embedded_test_server()->GetURL( + "/navigation_controller/simple_page_2.html")); + EXPECT_TRUE(NavigateToURL(shell(), url_2)); + + // Clear the name. + EXPECT_TRUE(ExecuteScript(shell()->web_contents(), "window.name = '';")); + + // Navigate it again. + EXPECT_TRUE(NavigateToURL(shell(), url_1)); + + // Clone the tab and load the page. + std::unique_ptr<WebContentsImpl> new_tab( + static_cast<WebContentsImpl*>(shell()->web_contents()->Clone())); + NavigationController& new_controller = new_tab->GetController(); + EXPECT_TRUE(new_controller.IsInitialNavigation()); + EXPECT_TRUE(new_controller.NeedsReload()); + { + TestNavigationObserver clone_observer(new_tab.get()); + new_controller.LoadIfNecessary(); + clone_observer.Wait(); + } + + // Go back. + { + TestNavigationObserver back_load_observer(new_tab.get()); + new_controller.GoBack(); + back_load_observer.Wait(); + } +} + +// Ensures that FrameNavigationEntries for dynamically added iframes can be +// found correctly when cloning them during a transfer. If we don't look for +// them based on unique name in AddOrUpdateFrameEntry, the FrameTreeNode ID +// mismatch will cause us to create a second FrameNavigationEntry during the +// transfer. Later, we'll find the wrong FrameNavigationEntry (the earlier one +// from the clone which still has a PageState), and this will cause the renderer +// to crash in NavigateInternal because the PageState is present but the page_id +// is -1 (similar to https://crbug.com/568703). See https://crbug.com/568768. +IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, + FrameNavigationEntry_RepeatCreatedFrame) { + NavigationControllerImpl& controller = static_cast<NavigationControllerImpl&>( + shell()->web_contents()->GetController()); + + // 1. Navigate the main frame. + GURL url(embedded_test_server()->GetURL( + "/navigation_controller/page_with_links.html")); + EXPECT_TRUE(NavigateToURL(shell(), url)); + FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents()) + ->GetFrameTree() + ->root(); + SiteInstance* main_site_instance = + root->current_frame_host()->GetSiteInstance(); + + // 2. Add a cross-site subframe. + GURL frame_url(embedded_test_server()->GetURL( + "foo.com", "/navigation_controller/simple_page_1.html")); + std::string script = "var iframe = document.createElement('iframe');" + "iframe.src = '" + frame_url.spec() + "';" + "document.body.appendChild(iframe);"; + { + LoadCommittedCapturer capturer(shell()->web_contents()); + EXPECT_TRUE(ExecuteScript(root->current_frame_host(), script)); + capturer.Wait(); + EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_SUBFRAME, capturer.transition_type()); + } + + FrameTreeNode* subframe = root->child_at(0); + if (AreAllSitesIsolatedForTesting()) { + EXPECT_NE(main_site_instance, + subframe->current_frame_host()->GetSiteInstance()); + } + if (SiteIsolationPolicy::UseSubframeNavigationEntries()) { + FrameNavigationEntry* subframe_entry = + controller.GetLastCommittedEntry()->GetFrameEntry(subframe); + EXPECT_EQ(frame_url, subframe_entry->url()); + } + + // 3. Reload the main frame. + { + FrameNavigateParamsCapturer capturer(root); + controller.Reload(false); + capturer.Wait(); + EXPECT_EQ(ui::PAGE_TRANSITION_RELOAD, capturer.params().transition); + EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type); + EXPECT_FALSE(capturer.details().is_in_page); + } + + // 4. Add the iframe again. + { + LoadCommittedCapturer capturer(shell()->web_contents()); + EXPECT_TRUE(ExecuteScript(root->current_frame_host(), script)); + capturer.Wait(); + EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_SUBFRAME, capturer.transition_type()); + } + if (AreAllSitesIsolatedForTesting()) { + EXPECT_NE(main_site_instance, + root->child_at(0)->current_frame_host()->GetSiteInstance()); + } +} + // Verifies that item sequence numbers and document sequence numbers update // properly for main frames and subframes. IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
diff --git a/content/browser/frame_host/navigation_controller_impl_unittest.cc b/content/browser/frame_host/navigation_controller_impl_unittest.cc index 6257838d8..6246334 100644 --- a/content/browser/frame_host/navigation_controller_impl_unittest.cc +++ b/content/browser/frame_host/navigation_controller_impl_unittest.cc
@@ -2176,9 +2176,10 @@ navigation_entry_committed_counter_ = 0; // Prereq: add a subframe with an initial auto-subframe navigation. + std::string unique_name("uniqueName0"); main_test_rfh()->OnCreateChildFrame( process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, - std::string(), "uniqueName0", blink::WebSandboxFlags::None, + std::string(), unique_name, blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); @@ -2187,6 +2188,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = 1; params.nav_entry_id = 0; + params.frame_unique_name = unique_name; params.did_create_new_entry = false; params.url = subframe_url; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; @@ -2207,6 +2209,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = 2; params.nav_entry_id = 0; + params.frame_unique_name = unique_name; params.did_create_new_entry = true; params.url = url2; params.transition = ui::PAGE_TRANSITION_MANUAL_SUBFRAME; @@ -2260,9 +2263,10 @@ navigation_entry_committed_counter_ = 0; // Add a subframe and navigate it. + std::string unique_name0("uniqueName0"); main_test_rfh()->OnCreateChildFrame( process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, - std::string(), "uniqueName0", blink::WebSandboxFlags::None, + std::string(), unique_name0, blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); @@ -2271,6 +2275,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = 1; params.nav_entry_id = 0; + params.frame_unique_name = unique_name0; params.did_create_new_entry = false; params.url = url2; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; @@ -2307,9 +2312,10 @@ } // Add a second subframe and navigate. + std::string unique_name1("uniqueName1"); main_test_rfh()->OnCreateChildFrame( process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, - std::string(), "uniqueName1", blink::WebSandboxFlags::None, + std::string(), unique_name1, blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); TestRenderFrameHost* subframe2 = static_cast<TestRenderFrameHost*>( contents()->GetFrameTree()->root()->child_at(1)->current_frame_host()); @@ -2318,6 +2324,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = 1; params.nav_entry_id = 0; + params.frame_unique_name = unique_name1; params.did_create_new_entry = false; params.url = url3; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; @@ -2354,9 +2361,10 @@ } // Add a nested subframe and navigate. + std::string unique_name2("uniqueName2"); subframe->OnCreateChildFrame(process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, std::string(), - "uniqueName2", blink::WebSandboxFlags::None, + unique_name2, blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); TestRenderFrameHost* subframe3 = static_cast<TestRenderFrameHost*>(contents() @@ -2370,6 +2378,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = 1; params.nav_entry_id = 0; + params.frame_unique_name = unique_name2; params.did_create_new_entry = false; params.url = url4; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; @@ -2421,9 +2430,10 @@ navigation_entry_committed_counter_ = 0; // Prereq: add a subframe with an initial auto-subframe navigation. + std::string unique_name("uniqueName0"); main_test_rfh()->OnCreateChildFrame( process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, - std::string(), "uniqueName0", blink::WebSandboxFlags::None, + std::string(), unique_name, blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); @@ -2436,6 +2446,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = 1; params.nav_entry_id = 0; + params.frame_unique_name = unique_name; params.did_create_new_entry = false; params.url = subframe_url; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; @@ -2458,6 +2469,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = 2; params.nav_entry_id = 0; + params.frame_unique_name = unique_name; params.did_create_new_entry = true; params.url = url2; params.transition = ui::PAGE_TRANSITION_MANUAL_SUBFRAME; @@ -2491,6 +2503,7 @@ const GURL url3("http://foo3"); params.page_id = 3; params.nav_entry_id = 0; + params.frame_unique_name = unique_name; params.did_create_new_entry = true; params.url = url3; params.transition = ui::PAGE_TRANSITION_MANUAL_SUBFRAME; @@ -2519,6 +2532,7 @@ controller.GoBack(); params.page_id = 2; params.nav_entry_id = entry2->GetUniqueID(); + params.frame_unique_name = unique_name; params.did_create_new_entry = false; params.url = url2; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; @@ -2538,6 +2552,7 @@ controller.GoBack(); params.page_id = 1; params.nav_entry_id = entry1->GetUniqueID(); + params.frame_unique_name = unique_name; params.did_create_new_entry = false; params.url = subframe_url; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; @@ -3885,9 +3900,10 @@ EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); // Add and navigate a subframe that would normally count as in-page. + std::string unique_name("uniqueName0"); main_test_rfh()->OnCreateChildFrame( process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, - std::string(), "uniqueName0", blink::WebSandboxFlags::None, + std::string(), unique_name, blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); @@ -3895,6 +3911,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = 0; params.nav_entry_id = 0; + params.frame_unique_name = unique_name; params.did_create_new_entry = false; params.url = subframe_url; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; @@ -4053,9 +4070,10 @@ // Send a subframe update from the first page, as if one had just // automatically loaded. Auto subframes don't increment the page ID. + std::string unique_name("uniqueName0"); main_test_rfh()->OnCreateChildFrame( process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, - std::string(), "uniqueName0", blink::WebSandboxFlags::None, + std::string(), unique_name, blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); @@ -4063,6 +4081,7 @@ FrameHostMsg_DidCommitProvisionalLoad_Params params; params.page_id = controller.GetLastCommittedEntry()->GetPageID(); params.nav_entry_id = 0; + params.frame_unique_name = unique_name; params.did_create_new_entry = false; params.url = url1_sub; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
diff --git a/content/browser/frame_host/navigation_entry_impl.cc b/content/browser/frame_host/navigation_entry_impl.cc index 87405be..eccc064 100644 --- a/content/browser/frame_host/navigation_entry_impl.cc +++ b/content/browser/frame_host/navigation_entry_impl.cc
@@ -39,7 +39,7 @@ void RecursivelyGenerateFrameEntries(const ExplodedFrameState& state, NavigationEntryImpl::TreeNode* node) { node->frame_entry = new FrameNavigationEntry( - -1, UTF16ToUTF8(state.target.string()), state.item_sequence_number, + UTF16ToUTF8(state.target.string()), state.item_sequence_number, state.document_sequence_number, nullptr, GURL(state.url_string.string()), Referrer(GURL(state.referrer.string()), state.referrer_policy), "GET", -1); @@ -100,22 +100,23 @@ NavigationEntryImpl::TreeNode::~TreeNode() { } -bool NavigationEntryImpl::TreeNode::MatchesFrame( - FrameTreeNode* frame_tree_node) const { - if (frame_tree_node->frame_tree_node_id() == - frame_entry->frame_tree_node_id()) - return true; +bool NavigationEntryImpl::TreeNode::MatchesFrame(FrameTreeNode* frame_tree_node, + bool is_root_tree_node) const { + // The root node is for the main frame whether the unique name matches or not. + if (is_root_tree_node) + return frame_tree_node->IsMainFrame(); - // For now, we set the root FNE's FrameTreeNode ID to -1. - return frame_tree_node->IsMainFrame() && - frame_entry->frame_tree_node_id() == -1; + // Otherwise check the unique name for subframes. + return !frame_tree_node->IsMainFrame() && + frame_tree_node->unique_name() == frame_entry->frame_unique_name(); } std::unique_ptr<NavigationEntryImpl::TreeNode> NavigationEntryImpl::TreeNode::CloneAndReplace( FrameTreeNode* frame_tree_node, - FrameNavigationEntry* frame_navigation_entry) const { - if (frame_tree_node && MatchesFrame(frame_tree_node)) { + FrameNavigationEntry* frame_navigation_entry, + bool is_root_tree_node) const { + if (frame_tree_node && MatchesFrame(frame_tree_node, is_root_tree_node)) { // Replace this node in the cloned tree and prune its children. return base::WrapUnique( new NavigationEntryImpl::TreeNode(frame_navigation_entry)); @@ -129,7 +130,7 @@ // Recursively clone the children. for (auto& child : children) { copy->children.push_back( - child->CloneAndReplace(frame_tree_node, frame_navigation_entry)); + child->CloneAndReplace(frame_tree_node, frame_navigation_entry, false)); } return copy; @@ -167,8 +168,7 @@ const base::string16& title, ui::PageTransition transition_type, bool is_renderer_initiated) - : frame_tree_(new TreeNode(new FrameNavigationEntry(-1, - "", + : frame_tree_(new TreeNode(new FrameNavigationEntry("", -1, -1, std::move(instance), @@ -531,8 +531,8 @@ // TODO(creis): Only share the same FrameNavigationEntries if cloning within // the same tab. - copy->frame_tree_ = - frame_tree_->CloneAndReplace(frame_tree_node, frame_navigation_entry); + copy->frame_tree_ = frame_tree_->CloneAndReplace( + frame_tree_node, frame_navigation_entry, true); // Copy most state over, unless cleared in ResetForCommit. // Don't copy unique_id_, otherwise it won't be unique. @@ -686,7 +686,6 @@ void NavigationEntryImpl::AddOrUpdateFrameEntry( FrameTreeNode* frame_tree_node, - const std::string& frame_unique_name, int64_t item_sequence_number, int64_t document_sequence_number, SiteInstanceImpl* site_instance, @@ -707,12 +706,12 @@ } // Now check whether we have a TreeNode for the node itself. - int frame_tree_node_id = frame_tree_node->frame_tree_node_id(); + const std::string& unique_name = frame_tree_node->unique_name(); for (TreeNode* child : parent_node->children) { - if (child->frame_entry->frame_tree_node_id() == frame_tree_node_id) { + if (child->frame_entry->frame_unique_name() == unique_name) { // Update the existing FrameNavigationEntry (e.g., for replaceState). child->frame_entry->UpdateEntry( - frame_unique_name, item_sequence_number, document_sequence_number, + unique_name, item_sequence_number, document_sequence_number, site_instance, url, referrer, page_state, method, post_id); return; } @@ -722,8 +721,8 @@ // Unordered list, since we expect to look up entries by frame sequence number // or unique name. FrameNavigationEntry* frame_entry = new FrameNavigationEntry( - frame_tree_node_id, frame_unique_name, item_sequence_number, - document_sequence_number, site_instance, url, referrer, method, post_id); + unique_name, item_sequence_number, document_sequence_number, + site_instance, url, referrer, method, post_id); frame_entry->set_page_state(page_state); parent_node->children.push_back( new NavigationEntryImpl::TreeNode(frame_entry)); @@ -735,24 +734,6 @@ return tree_node ? tree_node->frame_entry.get() : nullptr; } -FrameNavigationEntry* NavigationEntryImpl::GetFrameEntryByUniqueName( - const std::string& unique_name) const { - NavigationEntryImpl::TreeNode* node = nullptr; - std::queue<NavigationEntryImpl::TreeNode*> work_queue; - work_queue.push(root_node()); - while (!work_queue.empty()) { - node = work_queue.front(); - work_queue.pop(); - if (node->frame_entry->frame_unique_name() == unique_name) - return node->frame_entry.get(); - - // Enqueue any children and keep looking. - for (auto& child : node->children) - work_queue.push(child); - } - return nullptr; -} - void NavigationEntryImpl::SetScreenshotPNGData( scoped_refptr<base::RefCountedBytes> png_data) { screenshot_ = png_data; @@ -772,12 +753,9 @@ while (!work_queue.empty()) { node = work_queue.front(); work_queue.pop(); - if (node->MatchesFrame(frame_tree_node)) { - // Only the root TreeNode should have a FTN ID of -1. - DCHECK(node->frame_entry->frame_tree_node_id() != -1 || - node == root_node()); + if (node->MatchesFrame(frame_tree_node, node == root_node())) return node; - } + // Enqueue any children and keep looking. for (auto& child : node->children) work_queue.push(child);
diff --git a/content/browser/frame_host/navigation_entry_impl.h b/content/browser/frame_host/navigation_entry_impl.h index 6614806..2e40e67 100644 --- a/content/browser/frame_host/navigation_entry_impl.h +++ b/content/browser/frame_host/navigation_entry_impl.h
@@ -37,19 +37,26 @@ TreeNode(FrameNavigationEntry* frame_entry); ~TreeNode(); - // Returns whether this TreeNode corresponds to |frame_tree_node|. - bool MatchesFrame(FrameTreeNode* frame_tree_node) const; + // Returns whether this TreeNode corresponds to |frame_tree_node|. If this + // is called on the root TreeNode, then |is_root_tree_node| should be true + // and we only check if |frame_tree_node| is the main frame. Otherwise, we + // check if the unique name matches. + bool MatchesFrame(FrameTreeNode* frame_tree_node, + bool is_root_tree_node) const; // Recursively makes a deep copy of TreeNode with copies of each of the // FrameNavigationEntries in the subtree. Replaces the TreeNode // corresponding to |frame_tree_node| (and all of its children) with a new // TreeNode for |frame_navigation_entry|. Pass nullptr for both parameters // to make a complete clone. + // |is_root_tree_node| indicates whether this is being called on the root + // NavigationEntryImpl::TreeNode. // TODO(creis): For --site-per-process, share FrameNavigationEntries between // NavigationEntries of the same tab. std::unique_ptr<TreeNode> CloneAndReplace( FrameTreeNode* frame_tree_node, - FrameNavigationEntry* frame_navigation_entry) const; + FrameNavigationEntry* frame_navigation_entry, + bool is_root_tree_node) const; // Ref counted pointer that keeps the FrameNavigationEntry alive as long as // it is needed by this node's NavigationEntry. @@ -188,7 +195,6 @@ // Does nothing if there is no entry already and |url| is about:blank, since // that does not count as a real commit. void AddOrUpdateFrameEntry(FrameTreeNode* frame_tree_node, - const std::string& frame_unique_name, int64_t item_sequence_number, int64_t document_sequence_number, SiteInstanceImpl* site_instance, @@ -202,15 +208,6 @@ // there is one in this NavigationEntry. FrameNavigationEntry* GetFrameEntry(FrameTreeNode* frame_tree_node) const; - // Returns the FrameNavigationEntry corresponding to the frame with the given - // |unique_name|, if any. This is useful when the FrameTreeNode cannot be used - // to find the entry, such as for a newly created subframe in a history - // navigation. Callers should update the FrameTreeNode ID of the entry so that - // it can be found with |GetFrameEntry| above. - // TODO(creis): Generate or verify the unique_name in the browser process. - FrameNavigationEntry* GetFrameEntryByUniqueName( - const std::string& unique_name) const; - void set_unique_id(int unique_id) { unique_id_ = unique_id; }
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc index 0a7b6df..a5ff8a1 100644 --- a/content/browser/frame_host/navigator_impl.cc +++ b/content/browser/frame_host/navigator_impl.cc
@@ -435,17 +435,14 @@ if (!entry) return false; + // TODO(creis): Remove unique_name from the IPC, now that we can rely on the + // replication state. + DCHECK_EQ(render_frame_host->frame_tree_node()->unique_name(), unique_name); FrameNavigationEntry* frame_entry = - entry->GetFrameEntryByUniqueName(unique_name); + entry->GetFrameEntry(render_frame_host->frame_tree_node()); if (!frame_entry) return false; - // Update the FrameNavigationEntry's FrameTreeNode ID (which is currently the - // ID of the old FrameTreeNode that no longer exists) to be the ID of the - // newly created frame. - frame_entry->set_frame_tree_node_id( - render_frame_host->frame_tree_node()->frame_tree_node_id()); - return NavigateToEntry(render_frame_host->frame_tree_node(), *frame_entry, *entry, NavigationControllerImpl::NO_RELOAD, false, false);
diff --git a/content/browser/service_worker/service_worker_job_coordinator.cc b/content/browser/service_worker/service_worker_job_coordinator.cc index 54542b2..916d714 100644 --- a/content/browser/service_worker/service_worker_job_coordinator.cc +++ b/content/browser/service_worker/service_worker_job_coordinator.cc
@@ -133,7 +133,6 @@ ServiceWorkerRegistration* registration, bool force_bypass_cache) { DCHECK(registration); - DCHECK(registration->GetNewestVersion()); job_queues_[registration->pattern()].Push( base::WrapUnique<ServiceWorkerRegisterJobBase>( new ServiceWorkerRegisterJob(context_, registration, @@ -148,7 +147,6 @@ ServiceWorkerProviderHost* provider_host, const ServiceWorkerRegisterJob::RegistrationCallback& callback) { DCHECK(registration); - DCHECK(registration->GetNewestVersion()); ServiceWorkerRegisterJob* queued_job = static_cast<ServiceWorkerRegisterJob*>( job_queues_[registration->pattern()].Push( base::WrapUnique<ServiceWorkerRegisterJobBase>(
diff --git a/content/browser/service_worker/service_worker_job_unittest.cc b/content/browser/service_worker/service_worker_job_unittest.cc index 77438a1..9974961 100644 --- a/content/browser/service_worker/service_worker_job_unittest.cc +++ b/content/browser/service_worker/service_worker_job_unittest.cc
@@ -1132,30 +1132,32 @@ EXPECT_TRUE(update_helper->update_found_); } -TEST_F(ServiceWorkerJobTest, Update_NewestVersionChanged) { +// Test that the update job uses the script URL of the newest worker when the +// job starts, rather than when it is scheduled. +TEST_F(ServiceWorkerJobTest, Update_ScriptUrlChanged) { + // Create a registration with an active version. scoped_refptr<ServiceWorkerRegistration> registration = RunRegisterJob(GURL("http://www.example.com/one/"), GURL("http://www.example.com/service_worker.js")); - ServiceWorkerVersion* active_version = registration->active_version(); - - // Queue an Update, it should abort when it starts and sees the new version. + // Queue an Update. When this runs, it will use the waiting version's script. job_coordinator()->Update(registration.get(), false); - // Add a waiting version with new script. - scoped_refptr<ServiceWorkerVersion> version = - new ServiceWorkerVersion(registration.get(), - GURL("http://www.example.com/new_worker.js"), - 2L /* dummy version id */, - helper_->context()->AsWeakPtr()); + // Add a waiting version with a new script. + GURL new_script("http://www.example.com/new_worker.js"); + scoped_refptr<ServiceWorkerVersion> version = new ServiceWorkerVersion( + registration.get(), new_script, 2L /* dummy version id */, + helper_->context()->AsWeakPtr()); registration->SetWaitingVersion(version); + // Run the update job. base::RunLoop().RunUntilIdle(); - // Verify the registration was not modified by the Update. - EXPECT_EQ(active_version, registration->active_version()); - EXPECT_EQ(version.get(), registration->waiting_version()); - EXPECT_EQ(NULL, registration->installing_version()); + // The update job should have created a new version with the new script, + // and promoted it to the active version. + EXPECT_EQ(new_script, registration->active_version()->script_url()); + EXPECT_EQ(nullptr, registration->waiting_version()); + EXPECT_EQ(nullptr, registration->installing_version()); } // Test that update succeeds if the incumbent worker was evicted
diff --git a/content/browser/service_worker/service_worker_register_job.cc b/content/browser/service_worker/service_worker_register_job.cc index 8cd8bd5..0bee03b6 100644 --- a/content/browser/service_worker/service_worker_register_job.cc +++ b/content/browser/service_worker/service_worker_register_job.cc
@@ -58,7 +58,6 @@ : context_(context), job_type_(UPDATE_JOB), pattern_(registration->pattern()), - script_url_(registration->GetNewestVersion()->script_url()), phase_(INITIAL), doom_installing_worker_(false), is_promise_resolved_(false), @@ -126,10 +125,13 @@ } bool ServiceWorkerRegisterJob::Equals(ServiceWorkerRegisterJobBase* job) const { - if (job->GetType() != GetType()) + if (job->GetType() != job_type_) return false; ServiceWorkerRegisterJob* register_job = static_cast<ServiceWorkerRegisterJob*>(job); + if (job_type_ == UPDATE_JOB) + return register_job->pattern_ == pattern_; + DCHECK_EQ(REGISTRATION_JOB, job_type_); return register_job->pattern_ == pattern_ && register_job->script_url_ == script_url_; } @@ -257,14 +259,16 @@ return; } - // A previous job may have unregistered or installed a new version to this - // registration. + // A previous job may have unregistered this registration. if (registration()->is_uninstalling() || - registration()->GetNewestVersion()->script_url() != script_url_) { + !registration()->GetNewestVersion()) { Complete(SERVICE_WORKER_ERROR_NOT_FOUND); return; } + DCHECK(script_url_.is_empty()); + script_url_ = registration()->GetNewestVersion()->script_url(); + // TODO(michaeln): If the last update check was less than 24 hours // ago, depending on the freshness of the cached worker script we // may be able to complete the update job right here.
diff --git a/content/browser/service_worker/service_worker_register_job.h b/content/browser/service_worker/service_worker_register_job.h index 66c7822..455f3598 100644 --- a/content/browser/service_worker/service_worker_register_job.h +++ b/content/browser/service_worker/service_worker_register_job.h
@@ -146,7 +146,7 @@ RegistrationJobType job_type_; const GURL pattern_; - const GURL script_url_; + GURL script_url_; std::vector<RegistrationCallback> callbacks_; Phase phase_; Internal internal_;
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc index 0fbeecf..d50415a2 100644 --- a/content/browser/service_worker/service_worker_version.cc +++ b/content/browser/service_worker/service_worker_version.cc
@@ -305,6 +305,7 @@ DCHECK_NE(kInvalidServiceWorkerVersionId, version_id); DCHECK(context_); DCHECK(registration); + DCHECK(script_url_.is_valid()); context_->AddLiveVersion(this); embedded_worker_ = context_->embedded_worker_registry()->CreateWorker(); embedded_worker_->AddListener(this);
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi index a9721c8..1ec0132e 100644 --- a/content/content_renderer.gypi +++ b/content/content_renderer.gypi
@@ -636,6 +636,8 @@ 'renderer/media/canvas_capture_handler.h', 'renderer/media/html_video_element_capturer_source.cc', 'renderer/media/html_video_element_capturer_source.h', + 'renderer/media/image_capture_frame_grabber.cc', + 'renderer/media/image_capture_frame_grabber.h', 'renderer/media/media_recorder_handler.cc', 'renderer/media/media_recorder_handler.h', 'renderer/media/media_stream.cc',
diff --git a/content/renderer/media/image_capture_frame_grabber.cc b/content/renderer/media/image_capture_frame_grabber.cc new file mode 100644 index 0000000..af3a5f19 --- /dev/null +++ b/content/renderer/media/image_capture_frame_grabber.cc
@@ -0,0 +1,121 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/renderer/media/image_capture_frame_grabber.h" + +#include "media/base/bind_to_current_loop.h" +#include "media/base/video_frame.h" +#include "media/base/video_util.h" +#include "skia/ext/platform_canvas.h" +#include "third_party/WebKit/public/platform/WebCallbacks.h" +#include "third_party/WebKit/public/platform/WebMediaStreamSource.h" +#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" +#include "third_party/libyuv/include/libyuv.h" +#include "third_party/skia/include/core/SkImage.h" +#include "third_party/skia/include/core/SkSurface.h" + +namespace content { + +using blink::WebImageCaptureGrabFrameCallbacks; + +namespace { + +void OnError(std::unique_ptr<WebImageCaptureGrabFrameCallbacks> callbacks) { + callbacks->onError(); +} + +// This internal method receives a |frame| and converts its pixels into a +// SkImage via an internal SkSurface and SkPixmap. Alpha channel, if any, is +// copied. +void OnVideoFrame(const ImageCaptureFrameGrabber::SkImageDeliverCB& callback, + const scoped_refptr<media::VideoFrame>& frame, + base::TimeTicks /* current_time */) { + DCHECK(frame->format() == media::PIXEL_FORMAT_YV12 || + frame->format() == media::PIXEL_FORMAT_I420 || + frame->format() == media::PIXEL_FORMAT_YV12A); + + const SkAlphaType alpha = media::IsOpaque(frame->format()) + ? kOpaque_SkAlphaType + : kPremul_SkAlphaType; + const SkImageInfo info = SkImageInfo::MakeN32( + frame->visible_rect().width(), frame->visible_rect().height(), alpha); + + sk_sp<SkSurface> surface = SkSurface::MakeRaster(info); + DCHECK(surface); + + SkPixmap pixmap; + if (!skia::GetWritablePixels(surface->getCanvas(), &pixmap)) { + DLOG(ERROR) << "Error trying to map SkSurface's pixels"; + callback.Run(sk_sp<SkImage>()); + return; + } + + libyuv::I420ToARGB(frame->visible_data(media::VideoFrame::kYPlane), + frame->stride(media::VideoFrame::kYPlane), + frame->visible_data(media::VideoFrame::kUPlane), + frame->stride(media::VideoFrame::kUPlane), + frame->visible_data(media::VideoFrame::kVPlane), + frame->stride(media::VideoFrame::kVPlane), + static_cast<uint8*>(pixmap.writable_addr()), + pixmap.width() * 4, pixmap.width(), pixmap.height()); + + if (frame->format() == media::PIXEL_FORMAT_YV12A) { + DCHECK(!info.isOpaque()); + // This function copies any plane into the alpha channel of an ARGB image. + libyuv::ARGBCopyYToAlpha(frame->visible_data(media::VideoFrame::kAPlane), + frame->stride(media::VideoFrame::kAPlane), + static_cast<uint8*>(pixmap.writable_addr()), + pixmap.width() * 4, pixmap.width(), + pixmap.height()); + } + + callback.Run(surface->makeImageSnapshot()); +} + +} // anonymous namespace + +ImageCaptureFrameGrabber::ImageCaptureFrameGrabber() : weak_factory_(this) {} + +ImageCaptureFrameGrabber::~ImageCaptureFrameGrabber() { + DCHECK(thread_checker_.CalledOnValidThread()); +} + +void ImageCaptureFrameGrabber::grabFrame( + blink::WebMediaStreamTrack* track, + WebImageCaptureGrabFrameCallbacks* callbacks) { + DVLOG(1) << __FUNCTION__; + DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK(!!callbacks); + + DCHECK(track && !track->isNull() && track->getExtraData()); + DCHECK_EQ(blink::WebMediaStreamSource::TypeVideo, track->source().getType()); + + ScopedWebCallbacks<WebImageCaptureGrabFrameCallbacks> scoped_callbacks = + make_scoped_web_callbacks(callbacks, base::Bind(&OnError)); + + // ConnectToTrack() must happen on render's Main Thread, whereas VideoFrames + // are delivered on a background thread though, so we Bind the callback to our + // current thread. + MediaStreamVideoSink::ConnectToTrack( + *track, + base::Bind(&OnVideoFrame, media::BindToCurrentLoop(base::Bind( + &ImageCaptureFrameGrabber::OnSkImage, + weak_factory_.GetWeakPtr(), + base::Passed(&scoped_callbacks))))); +} + +void ImageCaptureFrameGrabber::OnSkImage( + ScopedWebCallbacks<WebImageCaptureGrabFrameCallbacks> callbacks, + sk_sp<SkImage> image) { + DVLOG(1) << __FUNCTION__; + DCHECK(thread_checker_.CalledOnValidThread()); + + MediaStreamVideoSink::DisconnectFromTrack(); + if (image) + callbacks.PassCallbacks()->onSuccess(image); + else + callbacks.PassCallbacks()->onError(); +} + +} // namespace content
diff --git a/content/renderer/media/image_capture_frame_grabber.h b/content/renderer/media/image_capture_frame_grabber.h new file mode 100644 index 0000000..78543e4a --- /dev/null +++ b/content/renderer/media/image_capture_frame_grabber.h
@@ -0,0 +1,58 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_RENDERER_MEDIA_IMAGE_CAPTURE_FRAME_GRABBER_H_ +#define CONTENT_RENDERER_MEDIA_IMAGE_CAPTURE_FRAME_GRABBER_H_ + +#include "base/compiler_specific.h" +#include "base/macros.h" +#include "base/memory/weak_ptr.h" +#include "base/threading/thread_checker.h" +#include "content/child/scoped_web_callbacks.h" +#include "content/common/content_export.h" +#include "content/public/renderer/media_stream_video_sink.h" +#include "third_party/WebKit/public/platform/WebImageCaptureFrameGrabber.h" + +namespace blink { +class WebMediaStreamTrack; +} + +namespace media { +class VideoFrame; +} + +namespace content { + +// This class grabs Video Frames from a given Media Stream Video Track, binding +// a function every time grabFrame() is called. This function receives an +// incoming VideoFrame on a background thread and converts it into the +// appropriate SkBitmap which is sent back to OnSkBitmap(). This class is single +// threaded throughout. +class CONTENT_EXPORT ImageCaptureFrameGrabber final + : NON_EXPORTED_BASE(public blink::WebImageCaptureFrameGrabber), + NON_EXPORTED_BASE(public MediaStreamVideoSink) { + public: + using SkImageDeliverCB = base::Callback<void(sk_sp<SkImage>)>; + + ImageCaptureFrameGrabber(); + ~ImageCaptureFrameGrabber() override; + + // blink::WebImageCaptureFrameGrabber implementation. + void grabFrame(blink::WebMediaStreamTrack* track, + blink::WebImageCaptureGrabFrameCallbacks* callbacks) override; + + private: + void OnSkImage( + ScopedWebCallbacks<blink::WebImageCaptureGrabFrameCallbacks> callbacks, + sk_sp<SkImage> image); + + base::ThreadChecker thread_checker_; + base::WeakPtrFactory<ImageCaptureFrameGrabber> weak_factory_; + + DISALLOW_COPY_AND_ASSIGN(ImageCaptureFrameGrabber); +}; + +} // namespace content + +#endif // CONTENT_RENDERER_MEDIA_IMAGE_CAPTURE_FRAME_GRABBER_H_
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc index 5a15965..ac93eff 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -64,6 +64,7 @@ #include "content/renderer/media/audio_decoder.h" #include "content/renderer/media/canvas_capture_handler.h" #include "content/renderer/media/html_video_element_capturer_source.h" +#include "content/renderer/media/image_capture_frame_grabber.h" #include "content/renderer/media/media_recorder_handler.h" #include "content/renderer/media/renderer_webaudiodevice_impl.h" #include "content/renderer/media/renderer_webmidiaccessor_impl.h" @@ -150,6 +151,7 @@ using blink::WebGamepad; using blink::WebGamepads; using blink::WebIDBFactory; +using blink::WebImageCaptureFrameGrabber; using blink::WebMIDIAccessor; using blink::WebMediaPlayer; using blink::WebMediaRecorderHandler; @@ -959,6 +961,17 @@ //------------------------------------------------------------------------------ +WebImageCaptureFrameGrabber* +RendererBlinkPlatformImpl::createImageCaptureFrameGrabber() { +#if defined(ENABLE_WEBRTC) + return new ImageCaptureFrameGrabber(); +#else + return nullptr; +#endif // defined(ENABLE_WEBRTC) +} + +//------------------------------------------------------------------------------ + blink::WebSpeechSynthesizer* RendererBlinkPlatformImpl::createSpeechSynthesizer( blink::WebSpeechSynthesizerClient* client) { return GetContentClient()->renderer()->OverrideSpeechSynthesizer(client);
diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h index be95c061c..e361e3b 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h
@@ -172,6 +172,7 @@ void createHTMLVideoElementCapturer( blink::WebMediaStream* web_media_stream, blink::WebMediaPlayer* web_media_player) override; + blink::WebImageCaptureFrameGrabber* createImageCaptureFrameGrabber() override; blink::WebGraphicsContext3DProvider* createOffscreenGraphicsContext3DProvider( const blink::Platform::ContextAttributes& attributes, const blink::WebURL& top_document_web_url,
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index 33b3282..94919829 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -1927,6 +1927,7 @@ // http://crbug.com/99393. <rdar://problem/10949687> bool NeedsIOSurfaceReadbackWorkaround(); + bool InitializeCopyTextureCHROMIUM(const char* function_name); // Generate a member function prototype for each command in an automated and // typesafe way. #define GLES2_CMD_OP(name) \ @@ -4473,7 +4474,7 @@ if (DebugImpl && doing_gpu_trace) gpu_tracer_->End(kTraceDecoder); - if (DebugImpl && debug()) { + if (DebugImpl && debug() && !WasContextLost()) { GLenum error; while ((error = glGetError()) != GL_NO_ERROR) { LOG(ERROR) << "[" << logger_.GetLogPrefix() << "] " @@ -13796,17 +13797,17 @@ GLboolean unpack_premultiply_alpha, GLboolean unpack_unmultiply_alpha) { TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoCopyTextureCHROMIUM"); - + static const char kFunctionName[] = "glCopyTextureCHROMIUM"; TextureRef* source_texture_ref = GetTexture(source_id); TextureRef* dest_texture_ref = GetTexture(dest_id); - if (!ValidateCopyTextureCHROMIUMTextures( - "glCopyTextureCHROMIUM", source_texture_ref, dest_texture_ref)) { + if (!ValidateCopyTextureCHROMIUMTextures(kFunctionName, source_texture_ref, + dest_texture_ref)) { return; } if (!ValidateCopyTextureCHROMIUMInternalFormats( - "glCopyTextureCHROMIUM", source_texture_ref, internal_format)) { + kFunctionName, source_texture_ref, internal_format)) { return; } @@ -13840,8 +13841,7 @@ // Check that this type of texture is allowed. if (!texture_manager()->ValidForTarget(source_target, 0, source_width, source_height, 1)) { - LOCAL_SET_GL_ERROR( - GL_INVALID_VALUE, "glCopyTextureCHROMIUM", "Bad dimensions"); + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "Bad dimensions"); return; } } @@ -13852,7 +13852,7 @@ &source_internal_format); if (dest_texture->IsImmutable()) { - LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glCopyTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, kFunctionName, "texture is immutable"); return; } @@ -13860,21 +13860,12 @@ // Clear the source texture if necessary. if (!texture_manager()->ClearTextureLevel(this, source_texture_ref, source_target, 0)) { - LOCAL_SET_GL_ERROR(GL_OUT_OF_MEMORY, "glCopyTextureCHROMIUM", - "dimensions too big"); + LOCAL_SET_GL_ERROR(GL_OUT_OF_MEMORY, kFunctionName, "dimensions too big"); return; } - // Defer initializing the CopyTextureCHROMIUMResourceManager until it is - // needed because it takes 10s of milliseconds to initialize. - if (!copy_texture_CHROMIUM_.get()) { - LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("glCopyTextureCHROMIUM"); - copy_texture_CHROMIUM_.reset(new CopyTextureCHROMIUMResourceManager()); - copy_texture_CHROMIUM_->Initialize(this, features()); - RestoreCurrentFramebufferBindings(); - if (LOCAL_PEEK_GL_ERROR("glCopyTextureCHROMIUM") != GL_NO_ERROR) - return; - } + if (!InitializeCopyTextureCHROMIUM(kFunctionName)) + return; GLenum dest_type_previous = dest_type; GLenum dest_internal_format = internal_format; @@ -13894,14 +13885,14 @@ dest_internal_format != internal_format || dest_type_previous != dest_type) { // Ensure that the glTexImage2D succeeds. - LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("glCopyTextureCHROMIUM"); + LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER(kFunctionName); glBindTexture(dest_target, dest_texture->service_id()); glTexImage2D(dest_target, 0, texture_manager()->AdjustTexInternalFormat(internal_format), source_width, source_height, 0, texture_manager()->AdjustTexFormat(internal_format), dest_type, NULL); - GLenum error = LOCAL_PEEK_GL_ERROR("glCopyTextureCHROMIUM"); + GLenum error = LOCAL_PEEK_GL_ERROR(kFunctionName); if (error != GL_NO_ERROR) { RestoreCurrentTextureBindings(&state_, dest_target); return; @@ -13967,11 +13958,12 @@ GLboolean unpack_unmultiply_alpha) { TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoCopySubTextureCHROMIUM"); + static const char kFunctionName[] = "glCopySubTextureCHROMIUM"; TextureRef* source_texture_ref = GetTexture(source_id); TextureRef* dest_texture_ref = GetTexture(dest_id); - if (!ValidateCopyTextureCHROMIUMTextures( - "glCopySubTextureCHROMIUM", source_texture_ref, dest_texture_ref)) { + if (!ValidateCopyTextureCHROMIUMTextures(kFunctionName, source_texture_ref, + dest_texture_ref)) { return; } @@ -13988,8 +13980,7 @@ source_width = size.width(); source_height = size.height(); if (source_width <= 0 || source_height <= 0) { - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM", - "invalid image size"); + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "invalid image size"); return; } @@ -14003,14 +13994,14 @@ int32_t max_y; if (!SafeAddInt32(x, width, &max_x) || !SafeAddInt32(y, height, &max_y) || x < 0 || y < 0 || max_x > source_width || max_y > source_height) { - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "source texture bad dimensions"); return; } } else { if (!source_texture->GetLevelSize(source_target, 0, &source_width, &source_height, nullptr)) { - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "source texture has no level 0"); return; } @@ -14018,14 +14009,14 @@ // Check that this type of texture is allowed. if (!texture_manager()->ValidForTarget(source_target, 0, source_width, source_height, 1)) { - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "source texture bad dimensions"); return; } if (!source_texture->ValidForTexture(source_target, 0, x, y, 0, width, height, 1)) { - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "source texture bad dimensions."); return; } @@ -14041,41 +14032,32 @@ bool dest_level_defined = dest_texture->GetLevelType( dest_target, 0, &dest_type, &dest_internal_format); if (!dest_level_defined) { - LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glCopySubTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, kFunctionName, "destination texture is not defined"); return; } if (!dest_texture->ValidForTexture(dest_target, 0, xoffset, yoffset, 0, width, height, 1)) { - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "destination texture bad dimensions."); return; } - if (!ValidateCopyTextureCHROMIUMInternalFormats("glCopySubTextureCHROMIUM", - source_texture_ref, - dest_internal_format)) { + if (!ValidateCopyTextureCHROMIUMInternalFormats( + kFunctionName, source_texture_ref, dest_internal_format)) { return; } // Clear the source texture if necessary. if (!texture_manager()->ClearTextureLevel(this, source_texture_ref, source_target, 0)) { - LOCAL_SET_GL_ERROR(GL_OUT_OF_MEMORY, "glCopySubTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_OUT_OF_MEMORY, kFunctionName, "source texture dimensions too big"); return; } - // Defer initializing the CopyTextureCHROMIUMResourceManager until it is - // needed because it takes 10s of milliseconds to initialize. - if (!copy_texture_CHROMIUM_.get()) { - LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("glCopySubTextureCHROMIUM"); - copy_texture_CHROMIUM_.reset(new CopyTextureCHROMIUMResourceManager()); - copy_texture_CHROMIUM_->Initialize(this, features()); - RestoreCurrentFramebufferBindings(); - if (LOCAL_PEEK_GL_ERROR("glCopySubTextureCHROMIUM") != GL_NO_ERROR) - return; - } + if (!InitializeCopyTextureCHROMIUM(kFunctionName)) + return; int dest_width = 0; int dest_height = 0; @@ -14097,7 +14079,7 @@ // Otherwise clear part of texture level that is not already cleared. if (!texture_manager()->ClearTextureLevel(this, dest_texture_ref, dest_target, 0)) { - LOCAL_SET_GL_ERROR(GL_OUT_OF_MEMORY, "glCopySubTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_OUT_OF_MEMORY, kFunctionName, "destination texture dimensions too big"); return; } @@ -14150,16 +14132,29 @@ unpack_premultiply_alpha == GL_TRUE, unpack_unmultiply_alpha == GL_TRUE); } +bool GLES2DecoderImpl::InitializeCopyTextureCHROMIUM( + const char* function_name) { + // Defer initializing the CopyTextureCHROMIUMResourceManager until it is + // needed because it takes 10s of milliseconds to initialize. + if (!copy_texture_CHROMIUM_.get()) { + LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER(function_name); + copy_texture_CHROMIUM_.reset(new CopyTextureCHROMIUMResourceManager()); + copy_texture_CHROMIUM_->Initialize(this, features()); + if (LOCAL_PEEK_GL_ERROR(function_name) != GL_NO_ERROR) + return false; + } + return true; +} + void GLES2DecoderImpl::DoCompressedCopyTextureCHROMIUM(GLuint source_id, GLuint dest_id) { TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoCompressedCopyTextureCHROMIUM"); - + static const char kFunctionName[] = "glCompressedCopyTextureCHROMIUM"; TextureRef* source_texture_ref = GetTexture(source_id); TextureRef* dest_texture_ref = GetTexture(dest_id); if (!source_texture_ref || !dest_texture_ref) { - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedCopyTextureCHROMIUM", - "unknown texture ids"); + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "unknown texture ids"); return; } @@ -14174,16 +14169,13 @@ source_width = size.width(); source_height = size.height(); if (source_width <= 0 || source_height <= 0) { - LOCAL_SET_GL_ERROR( - GL_INVALID_VALUE, - "glCompressedCopyTextureCHROMIUM", "invalid image size"); + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "invalid image size"); return; } } else { if (!source_texture->GetLevelSize(source_texture->target(), 0, &source_width, &source_height, nullptr)) { - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, - "glCompressedCopyTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "source texture has no level 0"); return; } @@ -14191,9 +14183,7 @@ // Check that this type of texture is allowed. if (!texture_manager()->ValidForTarget(source_texture->target(), 0, source_width, source_height, 1)) { - LOCAL_SET_GL_ERROR( - GL_INVALID_VALUE, "glCompressedCopyTextureCHROMIUM", - "Bad dimensions"); + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, kFunctionName, "Bad dimensions"); return; } } @@ -14204,34 +14194,23 @@ source_texture->target(), 0, &source_type, &source_internal_format); if (dest_texture->IsImmutable()) { - LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, - "glCompressedCopyTextureCHROMIUM", + LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, kFunctionName, "texture is immutable"); return; } - if (!ValidateCompressedCopyTextureCHROMIUM( - "glCompressedCopyTextureCHROMIUM", - source_texture_ref, dest_texture_ref)) { + if (!ValidateCompressedCopyTextureCHROMIUM(kFunctionName, source_texture_ref, + dest_texture_ref)) { return; } - // Defer initializing the CopyTextureCHROMIUMResourceManager until it is - // needed because it takes 10s of milliseconds to initialize. - if (!copy_texture_CHROMIUM_.get()) { - LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("glCopyTextureCHROMIUM"); - copy_texture_CHROMIUM_.reset(new CopyTextureCHROMIUMResourceManager()); - copy_texture_CHROMIUM_->Initialize(this, features()); - RestoreCurrentFramebufferBindings(); - if (LOCAL_PEEK_GL_ERROR("glCopyTextureCHROMIUM") != GL_NO_ERROR) - return; - } + if (!InitializeCopyTextureCHROMIUM(kFunctionName)) + return; // Clear the source texture if necessary. if (!texture_manager()->ClearTextureLevel(this, source_texture_ref, source_texture->target(), 0)) { - LOCAL_SET_GL_ERROR(GL_OUT_OF_MEMORY, "glCompressedCopyTextureCHROMIUM", - "dimensions too big"); + LOCAL_SET_GL_ERROR(GL_OUT_OF_MEMORY, kFunctionName, "dimensions too big"); return; } @@ -14259,16 +14238,16 @@ GLsizei source_size = 0; bool did_get_size = GetCompressedTexSizeInBytes( - "glCompressedCopyTextureCHROMIUM", source_width, source_height, - 1, source_internal_format, &source_size); + kFunctionName, source_width, source_height, 1, source_internal_format, + &source_size); DCHECK(did_get_size); // Ensure that the glCompressedTexImage2D succeeds. - LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("glCompressedCopyTextureCHROMIUM"); + LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER(kFunctionName); glCompressedTexImage2D(GL_TEXTURE_2D, 0, source_internal_format, source_width, source_height, 0, source_size, NULL); - GLenum error = LOCAL_PEEK_GL_ERROR("glCompressedCopyTextureCHROMIUM"); + GLenum error = LOCAL_PEEK_GL_ERROR(kFunctionName); if (error != GL_NO_ERROR) { RestoreCurrentTextureBindings(&state_, dest_texture->target()); return; @@ -14294,10 +14273,10 @@ DoCopyTexImageIfNeeded(source_texture, source_texture->target()); // As a fallback, copy into a non-compressed GL_RGBA texture. - LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("glCompressedCopyTextureCHROMIUM"); + LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER(kFunctionName); glTexImage2D(dest_texture->target(), 0, GL_RGBA, source_width, source_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); - GLenum error = LOCAL_PEEK_GL_ERROR("glCompressedCopyTextureCHROMIUM"); + GLenum error = LOCAL_PEEK_GL_ERROR(kFunctionName); if (error != GL_NO_ERROR) { RestoreCurrentTextureBindings(&state_, dest_texture->target()); return;
diff --git a/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter b/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter index bf64966c..f1a95b1 100644 --- a/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter +++ b/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter
@@ -2,7 +2,6 @@ -RenderViewImplTest.OnNavigationHttpPost -ServiceWorkerBrowserTest.FetchPageWithSaveData -ServiceWorkerBrowserTest.FetchPageWithSaveDataPassThroughOnFetch --SessionHistoryTest.FrameBackForward -SessionHistoryTest.FrameFormBackForward -SitePerProcessIgnoreCertErrorsBrowserTest.CrossSiteRedirectCertificateStore -WebContentsImplBrowserTest.NoResetOnBeforeUnloadCanceledOnCommit
diff --git a/testing/buildbot/filters/isolate-extensions.content_browsertests.filter b/testing/buildbot/filters/isolate-extensions.content_browsertests.filter index 57bbe401..fabb6a8 100644 --- a/testing/buildbot/filters/isolate-extensions.content_browsertests.filter +++ b/testing/buildbot/filters/isolate-extensions.content_browsertests.filter
@@ -1,4 +1,3 @@ --SessionHistoryTest.FrameBackForward -*.RestoreSubframeFileAccessForHistoryNavigation # https://crbug.com/590782 - test too eager to assert presence of OOPIFs?
diff --git a/testing/buildbot/filters/site-per-process.content_browsertests.filter b/testing/buildbot/filters/site-per-process.content_browsertests.filter index 08868224..94c2321 100644 --- a/testing/buildbot/filters/site-per-process.content_browsertests.filter +++ b/testing/buildbot/filters/site-per-process.content_browsertests.filter
@@ -1,5 +1,4 @@ # crbug.com/417518: Get tests working with --site-per-process --SessionHistoryTest.FrameBackForward -NavigationControllerBrowserTest.ReloadOriginalRequest -*.RestoreSubframeFileAccessForHistoryNavigation -FrameTreeBrowserTest.NavigateGrandchildToBlob
diff --git a/testing/libfuzzer/archive_corpus.py b/testing/libfuzzer/archive_corpus.py index fa90a5a..7e39bb5 100755 --- a/testing/libfuzzer/archive_corpus.py +++ b/testing/libfuzzer/archive_corpus.py
@@ -18,23 +18,17 @@ def main(): parser = argparse.ArgumentParser(description="Generate fuzzer config.") - parser.add_argument('--depfile', required=True) parser.add_argument('--corpus', required=True) parser.add_argument('--output', required=True) parser.add_argument('--fuzzer', required=True) args = parser.parse_args() corpus_files = [] - # Generate .d file with dependency from corpus archive to individual files. - with open(args.depfile, 'w') as depfile: - print(os.path.basename(args.output), ":", end="", file=depfile) - for (dirpath, _, filenames) in os.walk(args.corpus): - for filename in filenames: - full_filename = os.path.join(dirpath, filename) - print(" ", full_filename, end="", file=depfile) - corpus_files.append(full_filename) - # chrome bots complain about this one: - # print(" ", args.fuzzer, end="", file=depfile) + + for (dirpath, _, filenames) in os.walk(args.corpus): + for filename in filenames: + full_filename = os.path.join(dirpath, filename) + corpus_files.append(full_filename) with zipfile.ZipFile(args.output, 'w') as z: for corpus_file in corpus_files: @@ -43,4 +37,3 @@ if __name__ == '__main__': main() -
diff --git a/testing/libfuzzer/fuzzer_test.gni b/testing/libfuzzer/fuzzer_test.gni index 26d3ad6..24391365 100644 --- a/testing/libfuzzer/fuzzer_test.gni +++ b/testing/libfuzzer/fuzzer_test.gni
@@ -37,14 +37,11 @@ } if (defined(invoker.seed_corpus)) { - depfile = "$root_build_dir/$target_name" + ".seed_corpus.d" out = "$root_build_dir/$target_name" + "_seed_corpus.zip" action(target_name + "_seed_corpus") { script = "//testing/libfuzzer/archive_corpus.py" args = [ - "--depfile", - rebase_path(depfile), "--corpus", rebase_path(invoker.seed_corpus), "--output", @@ -53,7 +50,6 @@ rebase_path("$root_build_dir/$target_name"), ] - depfile = depfile outputs = [ out, ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index f61e97c..c5d54c2 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -568,7 +568,8 @@ crbug.com/552494 scrollbars/overflow-scrollbar-combinations.html [ Pass Failure ] crbug.com/552494 virtual/prefer_compositing_to_lcd_text/scrollbars/overflow-scrollbar-combinations.html [ Pass Failure ] crbug.com/552494 virtual/rootlayerscrolls/scrollbars/overflow-scrollbar-combinations.html [ Pass Failure ] - +crbug.com/51182 fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html [ NeedsManualRebaseline ] +crbug.com/51182 fast/dom/HTMLMeterElement/meter-styles.html [ NeedsManualRebaseline ] crbug.com/380217 [ Linux Win ] fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius.html [ Skip ] crbug.com/380217 [ Win ] fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-bottom-left.html [ Skip ] @@ -1559,7 +1560,3 @@ crbug.com/606302 [ Win7 ] transforms/3d/point-mapping/3d-point-mapping-preserve-3d.html [ Failure Pass ] crbug.com/606649 fast/dom/gc-dom-tree-lifetime.html [ Pass Timeout ] - -crbug.com/607156 [ Mac10.11 Debug ] http/tests/fetch/referrer/serviceworker-echo-referrer-from-default-document.html [ Pass Crash ] -crbug.com/607156 [ Win7 Debug ] http/tests/fetch/referrer/serviceworker-echo-referrer-from-default-document.html [ Pass Crash ] -crbug.com/607156 [ Linux Debug ] http/tests/fetch/referrer/serviceworker-echo-referrer-from-default-document.html [ Pass Crash ]
diff --git a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt index 04a9026d..75e722e4 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt
@@ -16,6 +16,8 @@ | pseudo="-webkit-meter-optimum-value" | style="width: 70%;" | shadow:pseudoId="-webkit-meter-optimum-value" +| <div> +| <content> | " " | <meter> @@ -36,6 +38,8 @@ | pseudo="-webkit-meter-suboptimum-value" | style="width: 100%;" | shadow:pseudoId="-webkit-meter-suboptimum-value" +| <div> +| <content> | " " | <meter> @@ -56,5 +60,7 @@ | pseudo="-webkit-meter-even-less-good-value" | style="width: 100%;" | shadow:pseudoId="-webkit-meter-even-less-good-value" +| <div> +| <content> | " "
diff --git a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html index 1872b62..6c24f7ef 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html +++ b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html
@@ -1,14 +1,12 @@ <html> <head> <body> -<meter id="native" value="0" min="0" max="100"></meter> -<meter id="shadow" value="0" min="0" max="100" style="-webkit-appearance: none;"></meter> +<meter id="shadow" value="0" min="0" max="100"></meter> <script> if (window.testRunner) testRunner.waitUntilDone(); document.body.onload = function() { window.setTimeout(function() { - document.getElementById("native").value = 50; document.getElementById("shadow").value = 50; window.setTimeout(function() { if (window.testRunner)
diff --git a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html index 3cb3cbf..f117536 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html +++ b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html
@@ -14,7 +14,6 @@ } </script> <style> - meter.styled { -webkit-appearance: none; } meter.styled::-webkit-meter-bar { background: gray; } meter.styled::-webkit-meter-optimum-value { background: green; } meter.styled::-webkit-meter-suboptimum-value { background: yellow; }
diff --git a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-styles.html b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-styles.html index a26c519..0d3867f 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-styles.html +++ b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-styles.html
@@ -5,23 +5,21 @@ testRunner.notifyDone(); </script> <style> - meter.usestyle { -webkit-appearance: none; /* this forces styling; */ } - meter.tall { width: 30px; height: 40px; -webkit-appearance: none; /* this forces styling; */ } + meter.tall { width: 30px; height: 40px; } ul, h2, p { margin: 0.2em; } h1, h2 { font-size: medium; } li { margin: 0.2em; list-style-type: none; } meter.barstyled::-webkit-meter-bar { background: gray; border-style: solid; border-width: 2px; border-color: #222; } meter.valstyled::-webkit-meter-optimum-value { background: green; border-style: solid; border-width: 2px; border-color: #7c7; } - meter#bar-paddings { -webkit-appearance: none; } meter#bar-paddings::-webkit-meter-bar { padding: 5px; } </style> </head> <body> <h2>Horizontal meters with the non-themed default style</h2> <ul> - <li><meter class="usestyle" min="0" max="100" low="30" high="60" optimum="100" value="25" ></meter> - <meter class="usestyle" min="0" max="100" low="30" high="60" optimum="100" value="45" ></meter> - <meter class="usestyle" min="0" max="100" low="30" high="60" optimum="100" value="75" ></meter></li> + <li><meter min="0" max="100" low="30" high="60" optimum="100" value="25" ></meter> + <meter min="0" max="100" low="30" high="60" optimum="100" value="45" ></meter> + <meter min="0" max="100" low="30" high="60" optimum="100" value="75" ></meter></li> <li><meter class="tall" min="0" max="100" low="30" high="60" optimum="100" value="25" ></meter> <meter class="tall" min="0" max="100" low="30" high="60" optimum="100" value="45" ></meter> <meter class="tall" min="0" max="100" low="30" high="60" optimum="100" value="75" ></meter></li> @@ -29,33 +27,27 @@ <h2>Providing meter styles</h2> <div style="background-color: #eee"> <ul> - <li><meter style="background-color: #aac; border-color: #224; border-style: solid; border-width: 5px 20px 5px 10px;" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has border</li> - <li><meter style="background-color: #aac; border-color: #224; padding: 5px 20px 5px 10px;" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has padding</li> - <li><meter style="background-color: #aac; border-color: #224; margin: 5px 20px 5px 10px;" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has margin</li> + <li><meter style="border-color: #224; border-style: solid; border-width: 5px 20px 5px 10px;" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has border</li> + <li><meter style="border-color: #224; padding: 5px 20px 5px 10px;" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has padding</li> + <li><meter style="border-color: #224; margin: 5px 20px 5px 10px;" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has margin</li> <li><meter style="box-shadow: 4px 4px 10px rgba(255,0,0,0.5), inset 4px 4px 4px rgba(0,255,0,0.5);"></meter> has box-shadow</li> + <li><meter style="background: blue; color: white;" value="50">50</meter> Background CSS property does not disable -webkit-appearance.</li> </ul> </div> <h2>Providing bar and/or value styles</h2> <div style="background-color: #eee"> <ul> - default -webkit-appearance, thus should use platform theme (only for Mac.) + default -webkit-appearance, thus should use Shadow DOM CSS rendring. <li><meter class="valstyled" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has bar style but should ignore it.</li> <li><meter class="barstyled" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has value style but should ignore it.</li> <li><meter class="barstyled valstyled" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has both styles but should ignore them.</li> </ul> - <ul> - -webkit-appearance: none, thus custom styled elements should be shown. - <li><meter class="usestyle valstyled" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has bar style, should have solid value part.</li> - <li><meter class="usestyle barstyled" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has value style, should be solid bar part.</li> - <li><meter class="usestyle barstyled valstyled" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> should have solid bar and value part.</li> - </ul> </div> <h2>Providing appearances</h2> <div style="background-color: #eee"> <ul> - <li><meter style="-webkit-appearance: none" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has "none" appearance, should be styled with default style.</li> - <li><meter style="-webkit-appearance: meter" min="0" max="100" low="30" high="60" optimum="100" value="80" ></meter> has "meter" appearance, should be themed.</li> + <li><meter style="-webkit-appearance: none" min="0" max="100" low="30" high="60" optimum="100" value="80" >80</meter> has "none" appearance, should render METER content.</li> </ul> </div> <h2>Providing bar paddings</h2>
diff --git a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-writing-mode-expected.html b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-writing-mode-expected.html index e959c3156..daa6cabe 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-writing-mode-expected.html +++ b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-writing-mode-expected.html
@@ -4,7 +4,6 @@ meter { width: 50px; height: 50px; - -webkit-appearance: none; } </style> </head>
diff --git a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-writing-mode.html b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-writing-mode.html index 1b83da2a..3e14617 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-writing-mode.html +++ b/third_party/WebKit/LayoutTests/fast/dom/HTMLMeterElement/meter-writing-mode.html
@@ -4,12 +4,11 @@ meter { width: 50px; height: 50px; - -webkit-appearance: none; - background-color: red; /* should not be visible */ } </style> </head> <body> +<!-- writing-mode doen't work for now. --> <meter min=0 value=30 max=100 style="-webkit-writing-mode: vertical-lr;"></meter> <meter min=0 value=30 max=100 style="-webkit-writing-mode: vertical-rl;"></meter> <meter min=0 value=30 max=100 style="-webkit-writing-mode: horizontal-tb;"></meter>
diff --git a/third_party/WebKit/LayoutTests/fast/html/meter-user-modify-expected.txt b/third_party/WebKit/LayoutTests/fast/html/meter-user-modify-expected.txt index 6a951896..e1fa3a9 100644 --- a/third_party/WebKit/LayoutTests/fast/html/meter-user-modify-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/html/meter-user-modify-expected.txt
@@ -4,4 +4,4 @@ TEST COMPLETE The inner element of meter should not be deleteable. -(before)(after) +(before)In meter(after)
diff --git a/third_party/WebKit/LayoutTests/fast/html/meter-user-modify.html b/third_party/WebKit/LayoutTests/fast/html/meter-user-modify.html index 42b9612..2d2f050 100644 --- a/third_party/WebKit/LayoutTests/fast/html/meter-user-modify.html +++ b/third_party/WebKit/LayoutTests/fast/html/meter-user-modify.html
@@ -17,14 +17,14 @@ <p>The inner element of meter should not be deleteable.</p> <div id="container" contenteditable> - (before)<meter id="meter" min="0" max="100" value="50"></meter>(after) + (before)<meter id="meter" min="0" max="100" value="50">In meter</meter>(after) </div> <script> function focusAndType(id, key) { var target = document.getElementById(id); - eventSender.mouseMoveTo(target.offsetLeft + 2, target.offsetTop + 2); + eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth / 2, target.offsetTop + target.offsetHeight / 2); eventSender.mouseDown(); eventSender.mouseUp(); eventSender.keyDown(key);
diff --git a/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-creation.html b/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-creation.html new file mode 100644 index 0000000..8cfadc4e --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-creation.html
@@ -0,0 +1,64 @@ +<!DOCTYPE html> +<script src=../../resources/testharness.js></script> +<script src=../../resources/testharnessreport.js></script> +<script src=../../resources/testharness-helpers.js></script> +<script> + +// This test verifies that ImageCapture can be created (or not) with different +// Media Stream Track types (audio, video). + +var testVideo = promise_test(function() { + const gotStream = this.step_func(function(stream) { + assert_equals(stream.getAudioTracks().length, 0); + assert_equals(stream.getVideoTracks().length, 1); + assert_equals(stream.getVideoTracks()[0].readyState, 'live'); + assert_true(stream.getVideoTracks()[0].enabled); + assert_false(stream.getVideoTracks()[0].muted); + + var capturer = new ImageCapture(stream.getVideoTracks()[0]); + assert_equals(capturer.videoStreamTrack, stream.getVideoTracks()[0]); + + // Assert that grabFrame() is rejected if the associated video track is + // disabled, or ended. grabFrame() would also reject if the video Track is + // muted but that's a read-only property. + stream.getVideoTracks()[0].enabled = false; + assert_promise_rejects(capturer.grabFrame(), + 'InvalidStateError', + 'ImageCapturer cannot grabFrame() of a disabled Track'); + + stream.getVideoTracks()[0].stop(); + assert_equals(stream.getVideoTracks()[0].readyState, 'ended'); + assert_promise_rejects(capturer.grabFrame(), + 'InvalidStateError', + 'ImageCapturer cannot grabFrame() of a non-live Track'); + + this.done(); + }); + + const onError = this.step_func(function() { + assert_unreached('Error creating MediaStream'); + }); + + navigator.webkitGetUserMedia({video:true}, gotStream, onError); +}, 'verifies that ImageCapture API rejects grabFrame() in certain Track states.'); + +var testAudio = promise_test(function() { + const onError = this.step_func(function() { + assert_unreached('Error creating MediaStream'); + }); + + navigator.webkitGetUserMedia({audio:true}, + this.step_func(function(stream) { + assert_equals(stream.getAudioTracks().length, 1); + assert_equals(stream.getVideoTracks().length, 0); + assert_throws("NotSupportedError", + function() { + var capturer = new ImageCapture(stream.getAudioTracks()[0]); + }, + 'an ImageCapturer can only be created from a video track'); + + this.done(); + }), onError); +}, 'verifies that an ImageCapture cannot be created out of an Audio Track'); + +</script>
diff --git a/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-creationAndGrabFrame.html b/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-creationAndGrabFrame.html deleted file mode 100644 index df02f76e..0000000 --- a/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-creationAndGrabFrame.html +++ /dev/null
@@ -1,59 +0,0 @@ -<!DOCTYPE html> -<script src=../../resources/testharness.js></script> -<script src=../../resources/testharnessreport.js></script> -<script src=../../resources/testharness-helpers.js></script> -<script> - -// This test verifies that ImageCapture can be created (or not) with different -// Media Stream Track types (audio, video). The simplest API method grabFrame() -// is also exercised here. - -var test = async_test('exercises the ImageCapture API creation and grabFrame().'); - -gotStream = test.step_func(function(stream) { - assert_equals(stream.getAudioTracks().length, 1); - assert_equals(stream.getVideoTracks().length, 1); - assert_throws("NotSupportedError", - function() { - capturer = new ImageCapture(stream.getAudioTracks()[0]); - }, - 'an ImageCapturer can only be created from a video track'); - - assert_equals(stream.getVideoTracks()[0].readyState, 'live'); - assert_true(stream.getVideoTracks()[0].enabled); - assert_false(stream.getVideoTracks()[0].muted); - capturer = new ImageCapture(stream.getVideoTracks()[0]); - - assert_equals(capturer.videoStreamTrack, stream.getVideoTracks()[0]); - - // TODO(mcasas): Remove this assert after the method is implemented, and - // substitute with something more relevant. - stream.getVideoTracks()[0].enabled = true; - assert_promise_rejects(capturer.grabFrame(), - 'NotSupportedError', - 'ImageCapturer grabFrame() is not implemented'); - - // Assert that grabFrame() is rejected if the associated video track is - // disabled, or ended. grabFrame() would also reject if the video Track is - // muted but that's a read-only property. - stream.getVideoTracks()[0].enabled = false; - assert_promise_rejects(capturer.grabFrame(), - 'InvalidStateError', - 'ImageCapturer cannot grabFrame() of a disabled Track'); - - stream.getVideoTracks()[0].stop(); - assert_equals(stream.getVideoTracks()[0].readyState, 'ended'); - assert_promise_rejects(capturer.grabFrame(), - 'InvalidStateError', - 'ImageCapturer cannot grabFrame() of a non-live Track'); - - test.done(); -}); - -onError = test.step_func(function() { - assert_unreached('Error creating MediaStream'); -}); - -navigator.webkitGetUserMedia({video:true, audio:true}, gotStream, onError); - -</script>
diff --git a/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-grabFrame.html b/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-grabFrame.html new file mode 100644 index 0000000..ad7388a --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/imagecapture/ImageCapture-grabFrame.html
@@ -0,0 +1,46 @@ +<!DOCTYPE html> +<script src=../../resources/testharness.js></script> +<script src=../../resources/testharnessreport.js></script> +<body> +<canvas id='canvas0' width=10 height=10/> +<canvas id='canvas1' width=10 height=10/> +</body> +<script> + +// This test verifies that ImageCapture can grabFrame()s. + +var test = async_test(function() { + var canvas0 = document.getElementById('canvas0'); + var context0 = canvas0.getContext("2d"); + context0.fillStyle = "red"; + context0.fillRect(0, 0, 10, 10); + + var stream = canvas0.captureStream(); + + var capturer = new ImageCapture(stream.getVideoTracks()[0]); + + capturer.grabFrame() + .then(bitmap => { + assert_equals(canvas0.width, bitmap.width); + assert_equals(canvas0.height, bitmap.height); + + var context1 = document.getElementById('canvas1').getContext("2d"); + context1.drawImage(bitmap, 0, 0); + + var imageData0 = context0.getImageData(0, 0, 10, 10); + var imageData1 = context1.getImageData(0, 0, 10, 10); + + assert_equals(imageData0.width, imageData1.width); + assert_equals(imageData0.height, imageData1.height); + assert_equals(imageData0.data.length, imageData1.data.length); + for (var i = 0; i < imageData0.data.length; i++) + assert_approx_equals(imageData0.data[i], imageData1.data[i], 5); + + this.done(); + }) + .catch(error => { + assert_unreached('Error during grabFrame(): '+ error); + }); +}, 'exercises the ImageCapture API creation and grabFrame().'); + +</script>
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png index bf1ca1e..df1121a 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt index f70a3736..c6b0fdb 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt
@@ -3,13 +3,7 @@ layer at (0,0) size 800x600 LayoutBlockFlow {HTML} at (0,0) size 800x600 LayoutBlockFlow {BODY} at (8,8) size 784x584 - LayoutBlockFlow {METER} at (0,1.19) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 40x16 - LayoutText {#text} at (80,0) size 4x18 - text run at (80,0) width 4: " " - LayoutBlockFlow {METER} at (84,1.19) size 80x16 + LayoutBlockFlow {METER} at (0,0.19) size 80x16 LayoutBlockFlow {DIV} at (0,0) size 80x16 LayoutBlockFlow {DIV} at (0,0) size 80x16 LayoutBlockFlow {DIV} at (0,0) size 40x16
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt index e734276b..d18f98c 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt
@@ -44,27 +44,21 @@ LayoutBlockFlow {H2} at (3.19,86.56) size 777.63x18 LayoutText {#text} at (0,0) size 153x18 text run at (0,0) width 153: "Providing meter styles" - LayoutBlockFlow {DIV} at (0,107.75) size 784x90.56 [bgcolor=#EEEEEE] - LayoutBlockFlow {UL} at (3.19,0) size 777.63x90.56 + LayoutBlockFlow {DIV} at (0,107.75) size 784x112.75 [bgcolor=#EEEEEE] + LayoutBlockFlow {UL} at (3.19,0) size 777.63x112.75 LayoutListItem {LI} at (43.19,0) size 731.25x18 - LayoutBlockFlow {METER} at (0,1.19) size 80x16 [bgcolor=#AAAACC] [border: (5px solid #222244) (20px solid #222244) (5px solid #222244) (10px solid #222244)] - LayoutBlockFlow {DIV} at (10,5) size 50x6 - LayoutBlockFlow {DIV} at (0,0) size 50x6 - LayoutBlockFlow {DIV} at (0,0) size 40x6 + LayoutBlockFlow {METER} at (0,1.19) size 80x16 [border: (5px solid #222244) (20px solid #222244) (5px solid #222244) (10px solid #222244)] + LayoutBlockFlow {DIV} at (10,5) size 50x0 LayoutText {#text} at (80,0) size 72x18 text run at (80,0) width 72: " has border" LayoutListItem {LI} at (43.19,21.19) size 731.25x18 - LayoutBlockFlow {METER} at (0,1.19) size 80x16 [bgcolor=#AAAACC] - LayoutBlockFlow {DIV} at (10,5) size 50x6 - LayoutBlockFlow {DIV} at (0,0) size 50x6 - LayoutBlockFlow {DIV} at (0,0) size 40x6 + LayoutBlockFlow {METER} at (0,1.19) size 80x16 + LayoutBlockFlow {DIV} at (10,5) size 50x0 LayoutText {#text} at (80,0) size 81x18 text run at (80,0) width 81: " has padding" LayoutListItem {LI} at (43.19,42.38) size 731.25x27 - LayoutBlockFlow {METER} at (10,5.19) size 80x16 [bgcolor=#AAAACC] - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 64x16 + LayoutBlockFlow {METER} at (10,5.19) size 80x16 + LayoutBlockFlow {DIV} at (0,0) size 80x0 LayoutText {#text} at (110,9) size 75x18 text run at (110,9) width 75: " has margin" LayoutListItem {LI} at (43.19,72.56) size 731.25x18 @@ -74,14 +68,21 @@ LayoutBlockFlow {DIV} at (0,0) size 0x16 LayoutText {#text} at (80,0) size 108x18 text run at (80,0) width 108: " has box-shadow" - LayoutBlockFlow {H2} at (3.19,201.50) size 777.63x18 + LayoutListItem {LI} at (43.19,93.75) size 731.25x19 + LayoutBlockFlow {METER} at (0,3.19) size 80x16 [color=#FFFFFF] [bgcolor=#0000FF] + LayoutBlockFlow {DIV} at (0,0) size 80x18 + LayoutText {#text} at (0,0) size 16x18 + text run at (0,0) width 16: "50" + LayoutText {#text} at (80,0) size 447x18 + text run at (80,0) width 447: " Background CSS property disables -webkit-apparance automatically." + LayoutBlockFlow {H2} at (3.19,223.69) size 777.63x18 LayoutText {#text} at (0,0) size 227x18 text run at (0,0) width 227: "Providing bar and/or value styles" - LayoutBlockFlow {DIV} at (0,222.69) size 784x166.31 [bgcolor=#EEEEEE] + LayoutBlockFlow {DIV} at (0,244.88) size 784x81.56 [bgcolor=#EEEEEE] LayoutBlockFlow {UL} at (3.19,0) size 777.63x81.56 LayoutBlockFlow (anonymous) at (40,0) size 737.63x18 - LayoutText {#text} at (0,0) size 486x18 - text run at (0,0) width 486: "default -webkit-appearance, thus should use platform theme (only for Mac.)" + LayoutText {#text} at (0,0) size 473x18 + text run at (0,0) width 473: "default -webkit-appearance, thus should use Shadow DOM CSS rendring." LayoutListItem {LI} at (43.19,21.19) size 731.25x18 LayoutBlockFlow {METER} at (0,1.19) size 80x16 LayoutBlockFlow {DIV} at (0,0) size 80x16 @@ -103,54 +104,22 @@ LayoutBlockFlow {DIV} at (2,2) size 60.80x12 [bgcolor=#008000] [border: (2px solid #77CC77)] LayoutText {#text} at (80,0) size 255x18 text run at (80,0) width 255: " has both styles but should ignore them." - LayoutBlockFlow {UL} at (3.19,84.75) size 777.63x81.56 - LayoutBlockFlow (anonymous) at (40,0) size 737.63x18 - LayoutText {#text} at (0,0) size 470x18 - text run at (0,0) width 470: "-webkit-appearance: none, thus custom styled elements should be shown." - LayoutListItem {LI} at (43.19,21.19) size 731.25x18 - LayoutBlockFlow {METER} at (0,1.19) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 64x16 [bgcolor=#008000] [border: (2px solid #77CC77)] - LayoutText {#text} at (80,0) size 276x18 - text run at (80,0) width 276: " has bar style, should have solid value part." - LayoutListItem {LI} at (43.19,42.38) size 731.25x18 - LayoutBlockFlow {METER} at (0,1.19) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 [bgcolor=#808080] [border: (2px solid #222222)] - LayoutBlockFlow {DIV} at (2,2) size 60.80x12 - LayoutText {#text} at (80,0) size 261x18 - text run at (80,0) width 261: " has value style, should be solid bar part." - LayoutListItem {LI} at (43.19,63.56) size 731.25x18 - LayoutBlockFlow {METER} at (0,1.19) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 [bgcolor=#808080] [border: (2px solid #222222)] - LayoutBlockFlow {DIV} at (2,2) size 60.80x12 [bgcolor=#008000] [border: (2px solid #77CC77)] - LayoutText {#text} at (80,0) size 240x18 - text run at (80,0) width 240: " should have solid bar and value part." - LayoutBlockFlow {H2} at (3.19,392.19) size 777.63x18 + LayoutBlockFlow {H2} at (3.19,329.63) size 777.63x18 LayoutText {#text} at (0,0) size 157x18 text run at (0,0) width 157: "Providing appearances" - LayoutBlockFlow {DIV} at (0,413.38) size 784x39.19 [bgcolor=#EEEEEE] - LayoutBlockFlow {UL} at (3.19,0) size 777.63x39.19 - LayoutListItem {LI} at (43.19,0) size 731.25x18 - LayoutBlockFlow {METER} at (0,1.19) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 64x16 - LayoutText {#text} at (80,0) size 381x18 - text run at (80,0) width 381: " has \"none\" appearance, should be styled with default style." - LayoutListItem {LI} at (43.19,21.19) size 731.25x18 - LayoutBlockFlow {METER} at (0,1.19) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 80x16 - LayoutBlockFlow {DIV} at (0,0) size 64x16 - LayoutText {#text} at (80,0) size 280x18 - text run at (80,0) width 280: " has \"meter\" appearance, should be themed." - LayoutBlockFlow {H2} at (3.19,455.75) size 777.63x18 + LayoutBlockFlow {DIV} at (0,350.81) size 784x19 [bgcolor=#EEEEEE] + LayoutBlockFlow {UL} at (3.19,0) size 777.63x19 + LayoutListItem {LI} at (43.19,0) size 731.25x19 + LayoutBlockFlow {METER} at (0,3.19) size 80x16 + LayoutBlockFlow {DIV} at (0,0) size 80x18 + LayoutText {#text} at (0,0) size 16x18 + text run at (0,0) width 16: "80" + LayoutText {#text} at (80,0) size 359x18 + text run at (80,0) width 359: " has \"none\" appearance, should render METER content." + LayoutBlockFlow {H2} at (3.19,373) size 777.63x18 LayoutText {#text} at (0,0) size 162x18 text run at (0,0) width 162: "Providing bar paddings" - LayoutBlockFlow {DIV} at (0,476.94) size 784x18 [bgcolor=#EEEEEE] + LayoutBlockFlow {DIV} at (0,394.19) size 784x18 [bgcolor=#EEEEEE] LayoutBlockFlow {METER} at (0,1.19) size 80x16 LayoutBlockFlow {DIV} at (0,0) size 80x16 LayoutBlockFlow {DIV} at (0,0) size 80x16
diff --git a/third_party/WebKit/Source/bindings/templates/interface.cpp b/third_party/WebKit/Source/bindings/templates/interface.cpp index f153bd5..cf9e196 100644 --- a/third_party/WebKit/Source/bindings/templates/interface.cpp +++ b/third_party/WebKit/Source/bindings/templates/interface.cpp
@@ -464,7 +464,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo {{v8_class}}Constructor::wrapperTypeInfo = { gin::kEmbedderBlink, {{v8_class}}Constructor::domTemplate, {{v8_class}}::trace, {{to_active_scriptwrappable}}, 0, {{v8_class}}::preparePrototypeAndInterfaceObject, {{v8_class}}::installConditionallyEnabledProperties, "{{interface_name}}", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{event_target_inheritance}}, WrapperTypeInfo::{{lifetime}} }; +const WrapperTypeInfo {{v8_class}}Constructor::wrapperTypeInfo = { gin::kEmbedderBlink, {{v8_class}}Constructor::domTemplate, {{v8_class}}::trace, {{to_active_scriptwrappable}}, 0, {{v8_class}}::preparePrototypeAndInterfaceObject,{% if has_conditional_attributes_on_instance %} {{v8_class}}::installConditionallyEnabledProperties{% else %} nullptr{% endif %}, "{{interface_name}}", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{event_target_inheritance}}, WrapperTypeInfo::{{lifetime}} }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
diff --git a/third_party/WebKit/Source/bindings/templates/interface.h b/third_party/WebKit/Source/bindings/templates/interface.h index fb5e5a06..bde2739 100644 --- a/third_party/WebKit/Source/bindings/templates/interface.h +++ b/third_party/WebKit/Source/bindings/templates/interface.h
@@ -148,8 +148,8 @@ * a C++ pointer to the DOM object (if the object is not in oilpan) #} static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + {{custom_internal_field_counter}}; {# End custom internal fields #} - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*){% if has_conditional_attributes %}; - {% else %} { } + {% if has_conditional_attributes %} + static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*); {% endif %} {{exported}}static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate){% if unscopeables or has_conditional_attributes_on_prototype or conditionally_enabled_methods %}; {% else %} { }
diff --git a/third_party/WebKit/Source/bindings/templates/interface_base.cpp b/third_party/WebKit/Source/bindings/templates/interface_base.cpp index 342b417..83a0234f 100644 --- a/third_party/WebKit/Source/bindings/templates/interface_base.cpp +++ b/third_party/WebKit/Source/bindings/templates/interface_base.cpp
@@ -24,7 +24,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -{{wrapper_type_info_const}}WrapperTypeInfo {{v8_class}}::wrapperTypeInfo = { gin::kEmbedderBlink, {{dom_template}}, {{v8_class}}::trace, {{to_active_scriptwrappable}}, {{visit_dom_wrapper}}, {{v8_class}}::preparePrototypeAndInterfaceObject, {{v8_class}}::installConditionallyEnabledProperties, "{{interface_name}}", {{parent_wrapper_type_info}}, WrapperTypeInfo::{{wrapper_type_prototype}}, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{event_target_inheritance}}, WrapperTypeInfo::{{lifetime}} }; +{{wrapper_type_info_const}}WrapperTypeInfo {{v8_class}}::wrapperTypeInfo = { gin::kEmbedderBlink, {{dom_template}}, {{v8_class}}::trace, {{to_active_scriptwrappable}}, {{visit_dom_wrapper}}, {{v8_class}}::preparePrototypeAndInterfaceObject,{% if has_conditional_attributes %} {{v8_class}}::installConditionallyEnabledProperties{% else %} nullptr{% endif %}, "{{interface_name}}", {{parent_wrapper_type_info}}, WrapperTypeInfo::{{wrapper_type_prototype}}, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{event_target_inheritance}}, WrapperTypeInfo::{{lifetime}} }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 79c2ffc..7888ed4 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.cpp
@@ -23,7 +23,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8ArrayBuffer::wrapperTypeInfo = { gin::kEmbedderBlink, 0, V8ArrayBuffer::trace, 0, 0, V8ArrayBuffer::preparePrototypeAndInterfaceObject, V8ArrayBuffer::installConditionallyEnabledProperties, "ArrayBuffer", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8ArrayBuffer::wrapperTypeInfo = { gin::kEmbedderBlink, 0, V8ArrayBuffer::trace, 0, 0, V8ArrayBuffer::preparePrototypeAndInterfaceObject, nullptr, "ArrayBuffer", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 51af0560..ac5d767 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.h
@@ -31,7 +31,6 @@ visitor->trace(scriptWrappable->toImpl<TestArrayBuffer>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 4b1abbe0..d35d37f3 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.cpp
@@ -34,7 +34,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8ArrayBufferView::wrapperTypeInfo = { gin::kEmbedderBlink, 0, V8ArrayBufferView::trace, 0, 0, V8ArrayBufferView::preparePrototypeAndInterfaceObject, V8ArrayBufferView::installConditionallyEnabledProperties, "ArrayBufferView", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8ArrayBufferView::wrapperTypeInfo = { gin::kEmbedderBlink, 0, V8ArrayBufferView::trace, 0, 0, V8ArrayBufferView::preparePrototypeAndInterfaceObject, nullptr, "ArrayBufferView", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 82316dea..1e707742a 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.h
@@ -31,7 +31,6 @@ visitor->trace(scriptWrappable->toImpl<TestArrayBufferView>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 79e5189..d59c19f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.cpp
@@ -23,7 +23,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8DataView::wrapperTypeInfo = { gin::kEmbedderBlink, 0, V8DataView::trace, 0, 0, V8DataView::preparePrototypeAndInterfaceObject, V8DataView::installConditionallyEnabledProperties, "DataView", &V8ArrayBufferView::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8DataView::wrapperTypeInfo = { gin::kEmbedderBlink, 0, V8DataView::trace, 0, 0, V8DataView::preparePrototypeAndInterfaceObject, nullptr, "DataView", &V8ArrayBufferView::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 c268a3ac..f3f5c0a 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.h
@@ -33,7 +33,6 @@ visitor->trace(scriptWrappable->toImpl<TestDataView>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 0bf7eee..2861e7b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.cpp
@@ -23,7 +23,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8SVGTestInterface::wrapperTypeInfo = { gin::kEmbedderBlink, V8SVGTestInterface::domTemplate, V8SVGTestInterface::trace, 0, 0, V8SVGTestInterface::preparePrototypeAndInterfaceObject, V8SVGTestInterface::installConditionallyEnabledProperties, "SVGTestInterface", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; +const WrapperTypeInfo V8SVGTestInterface::wrapperTypeInfo = { gin::kEmbedderBlink, V8SVGTestInterface::domTemplate, V8SVGTestInterface::trace, 0, 0, V8SVGTestInterface::preparePrototypeAndInterfaceObject, nullptr, "SVGTestInterface", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 3c9c687..50e9cec 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.h
@@ -36,7 +36,6 @@ visitor->trace(scriptWrappable->toImpl<SVGTestInterface>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 f173a06b..b123086 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp
@@ -22,7 +22,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestException::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestException::domTemplate, V8TestException::trace, 0, 0, V8TestException::preparePrototypeAndInterfaceObject, V8TestException::installConditionallyEnabledProperties, "TestException", 0, WrapperTypeInfo::WrapperTypeExceptionPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestException::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestException::domTemplate, V8TestException::trace, 0, 0, V8TestException::preparePrototypeAndInterfaceObject, nullptr, "TestException", 0, WrapperTypeInfo::WrapperTypeExceptionPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 6a07f896..0aa2cdb 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.h
@@ -37,7 +37,6 @@ } static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 10b2ee2b..d95245c 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.cpp
@@ -23,7 +23,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestIntegerIndexed::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestIntegerIndexed::domTemplate, V8TestIntegerIndexed::trace, 0, 0, V8TestIntegerIndexed::preparePrototypeAndInterfaceObject, V8TestIntegerIndexed::installConditionallyEnabledProperties, "TestIntegerIndexed", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestIntegerIndexed::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestIntegerIndexed::domTemplate, V8TestIntegerIndexed::trace, 0, 0, V8TestIntegerIndexed::preparePrototypeAndInterfaceObject, nullptr, "TestIntegerIndexed", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 edec2cd..32adafd 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexed.h
@@ -44,7 +44,6 @@ static void namedPropertyDeleterCustom(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Boolean>&); static void namedPropertyEnumeratorCustom(const v8::PropertyCallbackInfo<v8::Array>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 48839da..9ca6f2b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.cpp
@@ -23,7 +23,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestIntegerIndexedGlobal::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestIntegerIndexedGlobal::domTemplate, V8TestIntegerIndexedGlobal::trace, 0, 0, V8TestIntegerIndexedGlobal::preparePrototypeAndInterfaceObject, V8TestIntegerIndexedGlobal::installConditionallyEnabledProperties, "TestIntegerIndexedGlobal", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestIntegerIndexedGlobal::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestIntegerIndexedGlobal::domTemplate, V8TestIntegerIndexedGlobal::trace, 0, 0, V8TestIntegerIndexedGlobal::preparePrototypeAndInterfaceObject, nullptr, "TestIntegerIndexedGlobal", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 172ca2f..df54432 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedGlobal.h
@@ -45,7 +45,6 @@ static void namedPropertyDeleterCustom(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Boolean>&); static void namedPropertyEnumeratorCustom(const v8::PropertyCallbackInfo<v8::Array>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 3d2563d..62cfa76 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.cpp
@@ -23,7 +23,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestIntegerIndexedPrimaryGlobal::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestIntegerIndexedPrimaryGlobal::domTemplate, V8TestIntegerIndexedPrimaryGlobal::trace, 0, 0, V8TestIntegerIndexedPrimaryGlobal::preparePrototypeAndInterfaceObject, V8TestIntegerIndexedPrimaryGlobal::installConditionallyEnabledProperties, "TestIntegerIndexedPrimaryGlobal", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestIntegerIndexedPrimaryGlobal::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestIntegerIndexedPrimaryGlobal::domTemplate, V8TestIntegerIndexedPrimaryGlobal::trace, 0, 0, V8TestIntegerIndexedPrimaryGlobal::preparePrototypeAndInterfaceObject, nullptr, "TestIntegerIndexedPrimaryGlobal", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 22ae407..458871e4 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestIntegerIndexedPrimaryGlobal.h
@@ -45,7 +45,6 @@ static void namedPropertyDeleterCustom(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Boolean>&); static void namedPropertyEnumeratorCustom(const v8::PropertyCallbackInfo<v8::Array>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 5195ef7..d72f3e9 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
@@ -44,7 +44,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -WrapperTypeInfo V8TestInterface::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterface::domTemplate, V8TestInterface::trace, V8TestInterface::toActiveScriptWrappable, V8TestInterface::visitDOMWrapper, V8TestInterface::preparePrototypeAndInterfaceObject, V8TestInterface::installConditionallyEnabledProperties, "TestInterface", &V8TestInterfaceEmpty::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; +WrapperTypeInfo V8TestInterface::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterface::domTemplate, V8TestInterface::trace, V8TestInterface::toActiveScriptWrappable, V8TestInterface::visitDOMWrapper, V8TestInterface::preparePrototypeAndInterfaceObject, nullptr, "TestInterface", &V8TestInterfaceEmpty::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 ff86211..9d0f92b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.h
@@ -49,7 +49,6 @@ static void implementsCustomVoidMethodMethodCustom(const v8::FunctionCallbackInfo<v8::Value>&); static void legacyCallCustom(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate); CORE_EXPORT static void updateWrapperTypeInfo(InstallTemplateFunction, PreparePrototypeAndInterfaceObjectFunction); CORE_EXPORT static void installV8TestInterfaceTemplate(v8::Isolate*, const DOMWrapperWorld&, v8::Local<v8::FunctionTemplate> interfaceTemplate);
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 c57f899d..3191545 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.cpp
@@ -29,7 +29,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -WrapperTypeInfo V8TestInterface2::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterface2::domTemplate, V8TestInterface2::trace, V8TestInterface2::toActiveScriptWrappable, V8TestInterface2::visitDOMWrapper, V8TestInterface2::preparePrototypeAndInterfaceObject, V8TestInterface2::installConditionallyEnabledProperties, "TestInterface2", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; +WrapperTypeInfo V8TestInterface2::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterface2::domTemplate, V8TestInterface2::trace, V8TestInterface2::toActiveScriptWrappable, V8TestInterface2::visitDOMWrapper, V8TestInterface2::preparePrototypeAndInterfaceObject, nullptr, "TestInterface2", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 f5b0841..831cc41b 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.h
@@ -39,7 +39,6 @@ static ActiveScriptWrappable* toActiveScriptWrappable(v8::Local<v8::Object>); static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } CORE_EXPORT static void updateWrapperTypeInfo(InstallTemplateFunction, PreparePrototypeAndInterfaceObjectFunction); CORE_EXPORT static void installV8TestInterface2Template(v8::Isolate*, const DOMWrapperWorld&, v8::Local<v8::FunctionTemplate> interfaceTemplate);
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 228435e1..b77c582 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.cpp
@@ -27,7 +27,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterface3::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterface3::domTemplate, V8TestInterface3::trace, 0, V8TestInterface3::visitDOMWrapper, V8TestInterface3::preparePrototypeAndInterfaceObject, V8TestInterface3::installConditionallyEnabledProperties, "TestInterface3", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; +const WrapperTypeInfo V8TestInterface3::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterface3::domTemplate, V8TestInterface3::trace, 0, V8TestInterface3::visitDOMWrapper, V8TestInterface3::preparePrototypeAndInterfaceObject, nullptr, "TestInterface3", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 3b0e5454..90e6da7 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.h
@@ -44,7 +44,6 @@ static void namedPropertyDeleterCustom(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Boolean>&); static void namedPropertyEnumeratorCustom(const v8::PropertyCallbackInfo<v8::Array>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 6ea272d..2743903 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp
@@ -22,7 +22,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceCheckSecurity::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceCheckSecurity::domTemplate, V8TestInterfaceCheckSecurity::trace, 0, 0, V8TestInterfaceCheckSecurity::preparePrototypeAndInterfaceObject, V8TestInterfaceCheckSecurity::installConditionallyEnabledProperties, "TestInterfaceCheckSecurity", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceCheckSecurity::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceCheckSecurity::domTemplate, V8TestInterfaceCheckSecurity::trace, 0, 0, V8TestInterfaceCheckSecurity::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceCheckSecurity", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 e26830e..2298a2a 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.h
@@ -36,7 +36,6 @@ visitor->trace(scriptWrappable->toImpl<TestInterfaceCheckSecurity>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 831a1c94..45f4a983 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp
@@ -27,7 +27,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructor::domTemplate, V8TestInterfaceConstructor::trace, 0, 0, V8TestInterfaceConstructor::preparePrototypeAndInterfaceObject, V8TestInterfaceConstructor::installConditionallyEnabledProperties, "TestInterfaceConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructor::domTemplate, V8TestInterfaceConstructor::trace, 0, 0, V8TestInterfaceConstructor::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif @@ -269,7 +269,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceConstructorConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructorConstructor::domTemplate, V8TestInterfaceConstructor::trace, 0, 0, V8TestInterfaceConstructor::preparePrototypeAndInterfaceObject, V8TestInterfaceConstructor::installConditionallyEnabledProperties, "TestInterfaceConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceConstructorConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructorConstructor::domTemplate, V8TestInterfaceConstructor::trace, 0, 0, V8TestInterfaceConstructor::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 d335a9e..45e08b59 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.h
@@ -44,7 +44,6 @@ } static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 883ae6ed..6620ba4 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp
@@ -24,7 +24,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceConstructor2::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructor2::domTemplate, V8TestInterfaceConstructor2::trace, 0, 0, V8TestInterfaceConstructor2::preparePrototypeAndInterfaceObject, V8TestInterfaceConstructor2::installConditionallyEnabledProperties, "TestInterfaceConstructor2", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceConstructor2::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructor2::domTemplate, V8TestInterfaceConstructor2::trace, 0, 0, V8TestInterfaceConstructor2::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceConstructor2", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 f2c6e07..33852800 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.h
@@ -37,7 +37,6 @@ } static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 dd5169d..d038060 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp
@@ -22,7 +22,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceConstructor3::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructor3::domTemplate, V8TestInterfaceConstructor3::trace, 0, 0, V8TestInterfaceConstructor3::preparePrototypeAndInterfaceObject, V8TestInterfaceConstructor3::installConditionallyEnabledProperties, "TestInterfaceConstructor3", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceConstructor3::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructor3::domTemplate, V8TestInterfaceConstructor3::trace, 0, 0, V8TestInterfaceConstructor3::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceConstructor3", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 5771c3f4..03ee0f8f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.h
@@ -37,7 +37,6 @@ } static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 0de4733..70691de 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp
@@ -23,7 +23,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceConstructor4::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructor4::domTemplate, V8TestInterfaceConstructor4::trace, 0, 0, V8TestInterfaceConstructor4::preparePrototypeAndInterfaceObject, V8TestInterfaceConstructor4::installConditionallyEnabledProperties, "TestInterfaceConstructor4", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceConstructor4::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceConstructor4::domTemplate, V8TestInterfaceConstructor4::trace, 0, 0, V8TestInterfaceConstructor4::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceConstructor4", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 3ade87d9..0ac4371 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.h
@@ -37,7 +37,6 @@ } static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 57fa0cc..bb9b1be 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp
@@ -22,7 +22,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceCustomConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceCustomConstructor::domTemplate, V8TestInterfaceCustomConstructor::trace, 0, 0, V8TestInterfaceCustomConstructor::preparePrototypeAndInterfaceObject, V8TestInterfaceCustomConstructor::installConditionallyEnabledProperties, "TestInterfaceCustomConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceCustomConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceCustomConstructor::domTemplate, V8TestInterfaceCustomConstructor::trace, 0, 0, V8TestInterfaceCustomConstructor::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceCustomConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 11c7f535..3981383 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.h
@@ -38,7 +38,6 @@ static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static void constructorCustom(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 d6bee0af..c4a7617 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp
@@ -27,7 +27,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceDocument::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceDocument::domTemplate, V8TestInterfaceDocument::trace, 0, 0, V8TestInterfaceDocument::preparePrototypeAndInterfaceObject, V8TestInterfaceDocument::installConditionallyEnabledProperties, "TestInterfaceDocument", &V8Document::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::NodeClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Dependent }; +const WrapperTypeInfo V8TestInterfaceDocument::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceDocument::domTemplate, V8TestInterfaceDocument::trace, 0, 0, V8TestInterfaceDocument::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceDocument", &V8Document::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::NodeClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 e83577c..e253b601 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.h
@@ -37,7 +37,6 @@ visitor->trace(scriptWrappable->toImpl<TestInterfaceDocument>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 24f4e94..1144b8cb 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp
@@ -21,7 +21,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceEmpty::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceEmpty::domTemplate, V8TestInterfaceEmpty::trace, 0, 0, V8TestInterfaceEmpty::preparePrototypeAndInterfaceObject, V8TestInterfaceEmpty::installConditionallyEnabledProperties, "TestInterfaceEmpty", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceEmpty::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceEmpty::domTemplate, V8TestInterfaceEmpty::trace, 0, 0, V8TestInterfaceEmpty::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceEmpty", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 d8723ae..d603871 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.h
@@ -36,7 +36,6 @@ visitor->trace(scriptWrappable->toImpl<TestInterfaceEmpty>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 a76c579..5af29d14 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp
@@ -24,7 +24,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceEventInitConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceEventInitConstructor::domTemplate, V8TestInterfaceEventInitConstructor::trace, 0, 0, V8TestInterfaceEventInitConstructor::preparePrototypeAndInterfaceObject, V8TestInterfaceEventInitConstructor::installConditionallyEnabledProperties, "TestInterfaceEventInitConstructor", &V8Event::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceEventInitConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceEventInitConstructor::domTemplate, V8TestInterfaceEventInitConstructor::trace, 0, 0, V8TestInterfaceEventInitConstructor::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceEventInitConstructor", &V8Event::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 ba694755..b9069e9 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.h
@@ -38,7 +38,6 @@ } static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 ecec150..0423f80 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp
@@ -22,7 +22,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceEventTarget::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceEventTarget::domTemplate, V8TestInterfaceEventTarget::trace, 0, 0, V8TestInterfaceEventTarget::preparePrototypeAndInterfaceObject, V8TestInterfaceEventTarget::installConditionallyEnabledProperties, "TestInterfaceEventTarget", &V8EventTarget::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceEventTarget::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceEventTarget::domTemplate, V8TestInterfaceEventTarget::trace, 0, 0, V8TestInterfaceEventTarget::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceEventTarget", &V8EventTarget::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif @@ -42,7 +42,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceEventTargetConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceEventTargetConstructor::domTemplate, V8TestInterfaceEventTarget::trace, 0, 0, V8TestInterfaceEventTarget::preparePrototypeAndInterfaceObject, V8TestInterfaceEventTarget::installConditionallyEnabledProperties, "TestInterfaceEventTarget", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceEventTargetConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceEventTargetConstructor::domTemplate, V8TestInterfaceEventTarget::trace, 0, 0, V8TestInterfaceEventTarget::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceEventTarget", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 0f804fb..6bc2b4e7 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.h
@@ -45,7 +45,6 @@ } static const int eventListenerCacheIndex = v8DefaultWrapperInternalFieldCount + 0; static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 1; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 f379922..48b38cf 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp
@@ -26,7 +26,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceGarbageCollected::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceGarbageCollected::domTemplate, V8TestInterfaceGarbageCollected::trace, 0, 0, V8TestInterfaceGarbageCollected::preparePrototypeAndInterfaceObject, V8TestInterfaceGarbageCollected::installConditionallyEnabledProperties, "TestInterfaceGarbageCollected", &V8EventTarget::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceGarbageCollected::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceGarbageCollected::domTemplate, V8TestInterfaceGarbageCollected::trace, 0, 0, V8TestInterfaceGarbageCollected::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceGarbageCollected", &V8EventTarget::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 4f5e381..0dda408 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.h
@@ -39,7 +39,6 @@ static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int eventListenerCacheIndex = v8DefaultWrapperInternalFieldCount + 0; static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 1; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 2ad4dc8..da6d408 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp
@@ -22,7 +22,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceNamedConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNamedConstructor::domTemplate, V8TestInterfaceNamedConstructor::trace, V8TestInterfaceNamedConstructor::toActiveScriptWrappable, 0, V8TestInterfaceNamedConstructor::preparePrototypeAndInterfaceObject, V8TestInterfaceNamedConstructor::installConditionallyEnabledProperties, "TestInterfaceNamedConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; +const WrapperTypeInfo V8TestInterfaceNamedConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNamedConstructor::domTemplate, V8TestInterfaceNamedConstructor::trace, V8TestInterfaceNamedConstructor::toActiveScriptWrappable, 0, V8TestInterfaceNamedConstructor::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceNamedConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif @@ -55,7 +55,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceNamedConstructorConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNamedConstructorConstructor::domTemplate, V8TestInterfaceNamedConstructor::trace, V8TestInterfaceNamedConstructor::toActiveScriptWrappable, 0, V8TestInterfaceNamedConstructor::preparePrototypeAndInterfaceObject, V8TestInterfaceNamedConstructor::installConditionallyEnabledProperties, "TestInterfaceNamedConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; +const WrapperTypeInfo V8TestInterfaceNamedConstructorConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNamedConstructorConstructor::domTemplate, V8TestInterfaceNamedConstructor::trace, V8TestInterfaceNamedConstructor::toActiveScriptWrappable, 0, V8TestInterfaceNamedConstructor::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceNamedConstructor", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 c161de0..9a12c2f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.h
@@ -44,7 +44,6 @@ } static ActiveScriptWrappable* toActiveScriptWrappable(v8::Local<v8::Object>); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 c3aeae8a..6f253ee9 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp
@@ -22,7 +22,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceNamedConstructor2::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNamedConstructor2::domTemplate, V8TestInterfaceNamedConstructor2::trace, 0, 0, V8TestInterfaceNamedConstructor2::preparePrototypeAndInterfaceObject, V8TestInterfaceNamedConstructor2::installConditionallyEnabledProperties, "TestInterfaceNamedConstructor2", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceNamedConstructor2::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNamedConstructor2::domTemplate, V8TestInterfaceNamedConstructor2::trace, 0, 0, V8TestInterfaceNamedConstructor2::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceNamedConstructor2", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif @@ -42,7 +42,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceNamedConstructor2Constructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNamedConstructor2Constructor::domTemplate, V8TestInterfaceNamedConstructor2::trace, 0, 0, V8TestInterfaceNamedConstructor2::preparePrototypeAndInterfaceObject, V8TestInterfaceNamedConstructor2::installConditionallyEnabledProperties, "TestInterfaceNamedConstructor2", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceNamedConstructor2Constructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNamedConstructor2Constructor::domTemplate, V8TestInterfaceNamedConstructor2::trace, 0, 0, V8TestInterfaceNamedConstructor2::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceNamedConstructor2", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 8c8d1f3..f31ed50 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.h
@@ -43,7 +43,6 @@ visitor->trace(scriptWrappable->toImpl<TestInterfaceNamedConstructor2>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 ad01d4c..3c79dee 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp
@@ -26,7 +26,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceNode::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNode::domTemplate, V8TestInterfaceNode::trace, 0, 0, V8TestInterfaceNode::preparePrototypeAndInterfaceObject, V8TestInterfaceNode::installConditionallyEnabledProperties, "TestInterfaceNode", &V8Node::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::NodeClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Dependent }; +const WrapperTypeInfo V8TestInterfaceNode::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceNode::domTemplate, V8TestInterfaceNode::trace, 0, 0, V8TestInterfaceNode::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceNode", &V8Node::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::NodeClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 80a23c5..b2e9683d 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.h
@@ -37,7 +37,6 @@ visitor->trace(scriptWrappable->toImpl<TestInterfaceNode>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 fcaa0d4..23aaf6d 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.cpp
@@ -24,7 +24,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterfaceOriginTrialEnabled::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceOriginTrialEnabled::domTemplate, V8TestInterfaceOriginTrialEnabled::trace, 0, 0, V8TestInterfaceOriginTrialEnabled::preparePrototypeAndInterfaceObject, V8TestInterfaceOriginTrialEnabled::installConditionallyEnabledProperties, "TestInterfaceOriginTrialEnabled", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestInterfaceOriginTrialEnabled::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceOriginTrialEnabled::domTemplate, V8TestInterfaceOriginTrialEnabled::trace, 0, 0, V8TestInterfaceOriginTrialEnabled::preparePrototypeAndInterfaceObject, nullptr, "TestInterfaceOriginTrialEnabled", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 03b5ec67..0687b82 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceOriginTrialEnabled.h
@@ -36,7 +36,6 @@ visitor->trace(scriptWrappable->toImpl<TestInterfaceOriginTrialEnabled>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 724645f..873356e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.cpp
@@ -22,7 +22,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestNode::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestNode::domTemplate, V8TestNode::trace, 0, 0, V8TestNode::preparePrototypeAndInterfaceObject, V8TestNode::installConditionallyEnabledProperties, "TestNode", &V8Node::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::NodeClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Dependent }; +const WrapperTypeInfo V8TestNode::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestNode::domTemplate, V8TestNode::trace, 0, 0, V8TestNode::preparePrototypeAndInterfaceObject, nullptr, "TestNode", &V8Node::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::NodeClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 58d24d79..f8b674f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.h
@@ -38,7 +38,6 @@ } static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 d29b2c37..4ed419b8 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
@@ -80,7 +80,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestObject::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestObject::domTemplate, V8TestObject::trace, 0, 0, V8TestObject::preparePrototypeAndInterfaceObject, V8TestObject::installConditionallyEnabledProperties, "TestObject", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestObject::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestObject::domTemplate, V8TestObject::trace, 0, 0, V8TestObject::preparePrototypeAndInterfaceObject, nullptr, "TestObject", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 d4e9b69..27234cf0 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.h
@@ -71,7 +71,6 @@ static void customGetterImplementedAsLongAttributeAttributeGetterCustom(const v8::FunctionCallbackInfo<v8::Value>&); static void customSetterImplementedAsLongAttributeAttributeSetterCustom(v8::Local<v8::Value>, const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate); };
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 b0b3ae7..4b7ec2a 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp
@@ -28,7 +28,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestSpecialOperations::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestSpecialOperations::domTemplate, V8TestSpecialOperations::trace, 0, 0, V8TestSpecialOperations::preparePrototypeAndInterfaceObject, V8TestSpecialOperations::installConditionallyEnabledProperties, "TestSpecialOperations", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestSpecialOperations::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestSpecialOperations::domTemplate, V8TestSpecialOperations::trace, 0, 0, V8TestSpecialOperations::preparePrototypeAndInterfaceObject, nullptr, "TestSpecialOperations", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 4770a17..d461b6d 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.h
@@ -36,7 +36,6 @@ visitor->trace(scriptWrappable->toImpl<TestSpecialOperations>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 7b8e399e..329eb12 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp
@@ -21,7 +21,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestSpecialOperationsNotEnumerable::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestSpecialOperationsNotEnumerable::domTemplate, V8TestSpecialOperationsNotEnumerable::trace, 0, 0, V8TestSpecialOperationsNotEnumerable::preparePrototypeAndInterfaceObject, V8TestSpecialOperationsNotEnumerable::installConditionallyEnabledProperties, "TestSpecialOperationsNotEnumerable", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestSpecialOperationsNotEnumerable::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestSpecialOperationsNotEnumerable::domTemplate, V8TestSpecialOperationsNotEnumerable::trace, 0, 0, V8TestSpecialOperationsNotEnumerable::preparePrototypeAndInterfaceObject, nullptr, "TestSpecialOperationsNotEnumerable", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 29fba29..cd24523 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.h
@@ -36,7 +36,6 @@ visitor->trace(scriptWrappable->toImpl<TestSpecialOperationsNotEnumerable>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 3ae7c1a1..ad39522f 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp
@@ -26,7 +26,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestTypedefs::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestTypedefs::domTemplate, V8TestTypedefs::trace, 0, 0, V8TestTypedefs::preparePrototypeAndInterfaceObject, V8TestTypedefs::installConditionallyEnabledProperties, "TestTypedefs", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8TestTypedefs::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestTypedefs::domTemplate, V8TestTypedefs::trace, 0, 0, V8TestTypedefs::preparePrototypeAndInterfaceObject, nullptr, "TestTypedefs", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 590ff95..c0e120e1 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.h
@@ -37,7 +37,6 @@ } static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 9616b9a6..71a506e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp
@@ -23,7 +23,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8Uint8ClampedArray::wrapperTypeInfo = { gin::kEmbedderBlink, 0, V8Uint8ClampedArray::trace, 0, 0, V8Uint8ClampedArray::preparePrototypeAndInterfaceObject, V8Uint8ClampedArray::installConditionallyEnabledProperties, "Uint8ClampedArray", &V8ArrayBufferView::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; +const WrapperTypeInfo V8Uint8ClampedArray::wrapperTypeInfo = { gin::kEmbedderBlink, 0, V8Uint8ClampedArray::trace, 0, 0, V8Uint8ClampedArray::preparePrototypeAndInterfaceObject, nullptr, "Uint8ClampedArray", &V8ArrayBufferView::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Independent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 8425073..918bf08 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.h +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.h
@@ -33,7 +33,6 @@ visitor->trace(scriptWrappable->toImpl<TestUint8ClampedArray>()); } static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } CORE_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { } };
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 4d0bca2..58cd1b9 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp
@@ -28,7 +28,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif -const WrapperTypeInfo V8TestInterface5::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterface5::domTemplate, V8TestInterface5::trace, V8TestInterface5::toActiveScriptWrappable, V8TestInterface5::visitDOMWrapper, V8TestInterface5::preparePrototypeAndInterfaceObject, V8TestInterface5::installConditionallyEnabledProperties, "TestInterface5", &V8TestInterfaceEmpty::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; +const WrapperTypeInfo V8TestInterface5::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterface5::domTemplate, V8TestInterface5::trace, V8TestInterface5::toActiveScriptWrappable, V8TestInterface5::visitDOMWrapper, V8TestInterface5::preparePrototypeAndInterfaceObject, nullptr, "TestInterface5", &V8TestInterfaceEmpty::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::NotInheritFromEventTarget, WrapperTypeInfo::Dependent }; #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) #pragma clang diagnostic pop #endif
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 74009c4..8bec41e 100644 --- a/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.h +++ b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.h
@@ -40,7 +40,6 @@ static ActiveScriptWrappable* toActiveScriptWrappable(v8::Local<v8::Object>); static void legacyCallCustom(const v8::FunctionCallbackInfo<v8::Value>&); static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; - static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { } MODULES_EXPORT static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, const DOMWrapperWorld&, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate); };
diff --git a/third_party/WebKit/Source/core/css/html.css b/third_party/WebKit/Source/core/css/html.css index 3d23a2d..af8debd6 100644 --- a/third_party/WebKit/Source/core/css/html.css +++ b/third_party/WebKit/Source/core/css/html.css
@@ -845,6 +845,7 @@ height: 1em; width: 5em; vertical-align: -0.2em; + -webkit-user-modify: read-only !important; } meter::-webkit-meter-inner-element {
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp index 45a91520..8c475bbf 100644 --- a/third_party/WebKit/Source/core/dom/Document.cpp +++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -1873,7 +1873,7 @@ return false; } -void Document::updateLayoutTreeForNode(Node* node) +void Document::updateLayoutTreeForNode(const Node* node) { DCHECK(node); if (!needsLayoutTreeUpdateForNode(*node))
diff --git a/third_party/WebKit/Source/core/dom/Document.h b/third_party/WebKit/Source/core/dom/Document.h index 5ff715d1..4a5afa0 100644 --- a/third_party/WebKit/Source/core/dom/Document.h +++ b/third_party/WebKit/Source/core/dom/Document.h
@@ -424,7 +424,7 @@ void updateLayoutTree(); // Same as updateLayoutTree() except ignoring pending stylesheets. void updateLayoutTreeIgnorePendingStylesheets(); - void updateLayoutTreeForNode(Node*); + void updateLayoutTreeForNode(const Node*); void updateLayout(); void layoutUpdated(); enum RunPostLayoutTasks {
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmap.cpp b/third_party/WebKit/Source/core/frame/ImageBitmap.cpp index 62de013..030f8964 100644 --- a/third_party/WebKit/Source/core/frame/ImageBitmap.cpp +++ b/third_party/WebKit/Source/core/frame/ImageBitmap.cpp
@@ -7,6 +7,7 @@ #include "core/html/HTMLCanvasElement.h" #include "core/html/HTMLVideoElement.h" #include "core/html/ImageData.h" +#include "platform/graphics/skia/SkiaUtils.h" #include "platform/image-decoders/ImageDecoder.h" #include "third_party/skia/include/core/SkSurface.h" #include "wtf/RefPtr.h" @@ -402,6 +403,12 @@ m_isNeutered = true; } +// static +ImageBitmap* ImageBitmap::take(ScriptPromiseResolver*, sk_sp<SkImage> image) +{ + return ImageBitmap::create(StaticBitmapImage::create(fromSkSp(image))); +} + PassOwnPtr<uint8_t[]> ImageBitmap::copyBitmapData(AlphaDisposition alphaOp) { SkImageInfo info = SkImageInfo::Make(width(), height(), kRGBA_8888_SkColorType, (alphaOp == PremultiplyAlpha) ? kPremul_SkAlphaType : kUnpremul_SkAlphaType);
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmap.h b/third_party/WebKit/Source/core/frame/ImageBitmap.h index d9174eb..61772a4 100644 --- a/third_party/WebKit/Source/core/frame/ImageBitmap.h +++ b/third_party/WebKit/Source/core/frame/ImageBitmap.h
@@ -42,6 +42,10 @@ static ImageBitmap* create(PassRefPtr<StaticBitmapImage>, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions()); static PassRefPtr<SkImage> getSkImageFromDecoder(PassOwnPtr<ImageDecoder>); + // Type and helper function required by CallbackPromiseAdapter: + using WebType = sk_sp<SkImage>; + static ImageBitmap* take(ScriptPromiseResolver*, sk_sp<SkImage>); + StaticBitmapImage* bitmapImage() const { return (m_image) ? m_image.get() : nullptr; } PassOwnPtr<uint8_t[]> copyBitmapData(AlphaDisposition alphaOp = DontPremultiplyAlpha); unsigned long width() const;
diff --git a/third_party/WebKit/Source/core/html/HTMLMeterElement.cpp b/third_party/WebKit/Source/core/html/HTMLMeterElement.cpp index d84e2ea9..ad35299 100644 --- a/third_party/WebKit/Source/core/html/HTMLMeterElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLMeterElement.cpp
@@ -24,8 +24,10 @@ #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ExceptionStatePlaceholder.h" #include "core/HTMLNames.h" +#include "core/dom/NodeComputedStyle.h" #include "core/dom/shadow/ShadowRoot.h" #include "core/frame/UseCounter.h" +#include "core/html/HTMLContentElement.h" #include "core/html/HTMLDivElement.h" #include "core/html/parser/HTMLParserIdioms.h" #include "core/layout/LayoutObject.h" @@ -35,6 +37,70 @@ using namespace HTMLNames; +// ---------------------------------------------------------------- + +class MeterFallbackElement final : public HTMLDivElement { +public: + DECLARE_NODE_FACTORY(MeterFallbackElement); + +private: + explicit MeterFallbackElement(Document& doc) + : HTMLDivElement(doc) + { + setHasCustomStyleCallbacks(); + } + + PassRefPtr<ComputedStyle> customStyleForLayoutObject() override + { + // We can't use setInlineStyleProperty() because it updates the DOM + // tree. We shouldn't do it during style calculation. + // TODO(tkent): Injecting a CSS variable by host is a better approach? + Element* host = shadowHost(); + RefPtr<ComputedStyle> style = originalStyleForLayoutObject(); + if (!host || !host->computedStyle() || host->computedStyle()->appearance() != MeterPart || style->display() == NONE) + return style.release(); + RefPtr<ComputedStyle> newStyle = ComputedStyle::clone(*style); + newStyle->setDisplay(NONE); + newStyle->setUnique(); + return newStyle.release(); + } +}; + +DEFINE_NODE_FACTORY(MeterFallbackElement) + +// ---------------------------------------------------------------- + +class MeterInnerElement final : public HTMLDivElement { +public: + DECLARE_NODE_FACTORY(MeterInnerElement); + +private: + explicit MeterInnerElement(Document& doc) + : HTMLDivElement(doc) + { + setHasCustomStyleCallbacks(); + } + + PassRefPtr<ComputedStyle> customStyleForLayoutObject() override + { + // We can't use setInlineStyleProperty() because it updates the DOM + // tree. We shouldn't do it during style calculation. + // TODO(tkent): Injecting a CSS variable by host is a better approach? + Element* host = shadowHost(); + RefPtr<ComputedStyle> style = originalStyleForLayoutObject(); + if (!host || !host->computedStyle() || host->computedStyle()->appearance() == MeterPart || style->display() == NONE) + return style.release(); + RefPtr<ComputedStyle> newStyle = ComputedStyle::clone(*style); + newStyle->setDisplay(NONE); + newStyle->setUnique(); + return newStyle.release(); + } +}; + +DEFINE_NODE_FACTORY(MeterInnerElement) + +// ---------------------------------------------------------------- + HTMLMeterElement::HTMLMeterElement(Document& document) : LabelableElement(meterTag, document) { @@ -192,7 +258,7 @@ { ASSERT(!m_value); - HTMLDivElement* inner = HTMLDivElement::create(document()); + MeterInnerElement* inner = MeterInnerElement::create(document()); inner->setShadowPseudoId(AtomicString("-webkit-meter-inner-element")); root.appendChild(inner); @@ -204,6 +270,10 @@ bar->appendChild(m_value); inner->appendChild(bar); + + MeterFallbackElement* fallback = MeterFallbackElement::create(document()); + fallback->appendChild(HTMLContentElement::create(document())); + root.appendChild(fallback); } void HTMLMeterElement::updateValueAppearance(double percentage) @@ -226,6 +296,12 @@ } } +bool HTMLMeterElement::canContainRangeEndPoint() const +{ + document().updateLayoutTreeForNode(this); + return computedStyle() && !computedStyle()->hasAppearance(); +} + DEFINE_TRACE(HTMLMeterElement) { visitor->trace(m_value);
diff --git a/third_party/WebKit/Source/core/html/HTMLMeterElement.h b/third_party/WebKit/Source/core/html/HTMLMeterElement.h index 3a0e1a3..e13c7d9 100644 --- a/third_party/WebKit/Source/core/html/HTMLMeterElement.h +++ b/third_party/WebKit/Source/core/html/HTMLMeterElement.h
@@ -60,7 +60,7 @@ double valueRatio() const; GaugeRegion getGaugeRegion() const; - bool canContainRangeEndPoint() const override { return false; } + bool canContainRangeEndPoint() const override; DECLARE_VIRTUAL_TRACE();
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.cpp index 3df7e846..669b7d3 100644 --- a/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.cpp +++ b/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.cpp
@@ -244,7 +244,7 @@ void InspectorDebuggerAgent::setBlackboxPatterns(ErrorString* errorString, PassOwnPtr<protocol::Array<String16>> patterns) { - m_v8DebuggerAgent->setBlackboxPatterns(errorString, patterns); + m_v8DebuggerAgent->setBlackboxPatterns(errorString, std::move(patterns)); } void InspectorDebuggerAgent::setBlackboxedRanges(
diff --git a/third_party/WebKit/Source/core/inspector/ThreadDebugger.cpp b/third_party/WebKit/Source/core/inspector/ThreadDebugger.cpp index f953c5f..0ef90d1 100644 --- a/third_party/WebKit/Source/core/inspector/ThreadDebugger.cpp +++ b/third_party/WebKit/Source/core/inspector/ThreadDebugger.cpp
@@ -137,7 +137,7 @@ int id = ++m_lastTimerId; OwnPtr<Timer<ThreadDebugger>> timer = adoptPtr(new Timer<ThreadDebugger>(this, &ThreadDebugger::onTimer)); Timer<ThreadDebugger>* timerPtr = timer.get(); - m_timerCallbacks.set(timerPtr, callback); + m_timerCallbacks.set(timerPtr, std::move(callback)); m_timers.set(id, timer.release()); timerPtr->startRepeating(interval, BLINK_FROM_HERE); return id;
diff --git a/third_party/WebKit/Source/core/layout/LayoutTheme.cpp b/third_party/WebKit/Source/core/layout/LayoutTheme.cpp index 6f3258c..ba75ce86 100644 --- a/third_party/WebKit/Source/core/layout/LayoutTheme.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutTheme.cpp
@@ -397,7 +397,6 @@ case SquareButtonPart: case ButtonPart: case ProgressBarPart: - case MeterPart: return style.hasAuthorBackground() || style.hasAuthorBorder(); case MenulistPart:
diff --git a/third_party/WebKit/Source/core/loader/BeaconLoader.cpp b/third_party/WebKit/Source/core/loader/BeaconLoader.cpp index 2732564..f84f614e 100644 --- a/third_party/WebKit/Source/core/loader/BeaconLoader.cpp +++ b/third_party/WebKit/Source/core/loader/BeaconLoader.cpp
@@ -31,39 +31,126 @@ public: virtual bool serialize(ResourceRequest&, int, int&) const = 0; virtual unsigned long long size() const = 0; - -protected: - static unsigned long long beaconSize(const String&); - static unsigned long long beaconSize(Blob*); - static unsigned long long beaconSize(DOMArrayBufferView*); - static unsigned long long beaconSize(FormData*); - - static bool serialize(const String&, ResourceRequest&, int, int&); - static bool serialize(Blob*, ResourceRequest&, int, int&); - static bool serialize(DOMArrayBufferView*, ResourceRequest&, int, int&); - static bool serialize(FormData*, ResourceRequest&, int, int&); }; -template<typename Payload> -class BeaconData final : public Beacon { +class BeaconString final : public Beacon { public: - BeaconData(const Payload& data) + BeaconString(const String& data) : m_data(data) { } - bool serialize(ResourceRequest& request, int allowance, int& payloadLength) const override + unsigned long long size() const override { - return Beacon::serialize(m_data, request, allowance, payloadLength); + return m_data.sizeInBytes(); + } + + bool serialize(ResourceRequest& request, int, int&) const override + { + RefPtr<EncodedFormData> entityBody = EncodedFormData::create(m_data.utf8()); + request.setHTTPBody(entityBody); + request.setHTTPContentType("text/plain;charset=UTF-8"); + return true; + } + +private: + const String m_data; +}; + +class BeaconBlob final : public Beacon { +public: + BeaconBlob(Blob* data) + : m_data(data) + { } unsigned long long size() const override { - return beaconSize(m_data); + return m_data->size(); + } + + bool serialize(ResourceRequest& request, int, int&) const override + { + ASSERT(m_data); + RefPtr<EncodedFormData> entityBody = EncodedFormData::create(); + if (m_data->hasBackingFile()) + entityBody->appendFile(toFile(m_data)->path()); + else + entityBody->appendBlob(m_data->uuid(), m_data->blobDataHandle()); + + request.setHTTPBody(entityBody.release()); + + const String& blobType = m_data->type(); + if (!blobType.isEmpty() && isValidContentType(blobType)) + request.setHTTPContentType(AtomicString(blobType)); + + return true; } private: - const typename WTF::ParamStorageTraits<Payload>::StorageType m_data; + const Persistent<Blob> m_data; +}; + +class BeaconDOMArrayBufferView final : public Beacon { +public: + BeaconDOMArrayBufferView(DOMArrayBufferView* data) + : m_data(data) + { + } + + unsigned long long size() const override + { + return m_data->byteLength(); + } + + bool serialize(ResourceRequest& request, int, int&) const override + { + ASSERT(m_data); + RefPtr<EncodedFormData> entityBody = EncodedFormData::create(m_data->baseAddress(), m_data->byteLength()); + request.setHTTPBody(entityBody.release()); + + // FIXME: a reasonable choice, but not in the spec; should it give a default? + AtomicString contentType = AtomicString("application/octet-stream"); + request.setHTTPContentType(contentType); + + return true; + } + +private: + const Persistent<DOMArrayBufferView> m_data; +}; + +class BeaconFormData final : public Beacon { +public: + BeaconFormData(FormData* data) + : m_data(data) + { + } + + unsigned long long size() const override + { + // FormData's size cannot be determined until serialized. + return 0; + } + + bool serialize(ResourceRequest& request, int allowance, int& payloadLength) const override + { + ASSERT(m_data); + RefPtr<EncodedFormData> entityBody = m_data->encodeMultiPartFormData(); + unsigned long long entitySize = entityBody->sizeInBytes(); + if (allowance > 0 && static_cast<unsigned long long>(allowance) < entitySize) + return false; + + AtomicString contentType = AtomicString("multipart/form-data; boundary=") + entityBody->boundary().data(); + request.setHTTPBody(entityBody.release()); + request.setHTTPContentType(contentType); + + payloadLength = entitySize; + return true; + } + +private: + const Persistent<FormData> m_data; }; } // namespace @@ -106,25 +193,25 @@ bool BeaconLoader::sendBeacon(LocalFrame* frame, int allowance, const KURL& beaconURL, const String& data, int& payloadLength) { - BeaconData<String> beacon(data); + BeaconString beacon(data); return Sender::send(frame, allowance, beaconURL, beacon, payloadLength); } bool BeaconLoader::sendBeacon(LocalFrame* frame, int allowance, const KURL& beaconURL, DOMArrayBufferView* data, int& payloadLength) { - BeaconData<decltype(data)> beacon(data); + BeaconDOMArrayBufferView beacon(data); return Sender::send(frame, allowance, beaconURL, beacon, payloadLength); } bool BeaconLoader::sendBeacon(LocalFrame* frame, int allowance, const KURL& beaconURL, FormData* data, int& payloadLength) { - BeaconData<decltype(data)> beacon(data); + BeaconFormData beacon(data); return Sender::send(frame, allowance, beaconURL, beacon, payloadLength); } bool BeaconLoader::sendBeacon(LocalFrame* frame, int allowance, const KURL& beaconURL, Blob* data, int& payloadLength) { - BeaconData<decltype(data)> beacon(data); + BeaconBlob beacon(data); return Sender::send(frame, allowance, beaconURL, beacon, payloadLength); } @@ -159,84 +246,4 @@ // updates of Origin: following this successful redirect. } -namespace { - -unsigned long long Beacon::beaconSize(const String& data) -{ - return data.sizeInBytes(); -} - -bool Beacon::serialize(const String& data, ResourceRequest& request, int, int&) -{ - RefPtr<EncodedFormData> entityBody = EncodedFormData::create(data.utf8()); - request.setHTTPBody(entityBody); - request.setHTTPContentType("text/plain;charset=UTF-8"); - return true; -} - -unsigned long long Beacon::beaconSize(Blob* data) -{ - return data->size(); -} - -bool Beacon::serialize(Blob* data, ResourceRequest& request, int, int&) -{ - ASSERT(data); - RefPtr<EncodedFormData> entityBody = EncodedFormData::create(); - if (data->hasBackingFile()) - entityBody->appendFile(toFile(data)->path()); - else - entityBody->appendBlob(data->uuid(), data->blobDataHandle()); - - request.setHTTPBody(entityBody.release()); - - const String& blobType = data->type(); - if (!blobType.isEmpty() && isValidContentType(blobType)) - request.setHTTPContentType(AtomicString(blobType)); - - return true; -} - -unsigned long long Beacon::beaconSize(DOMArrayBufferView* data) -{ - return data->byteLength(); -} - -bool Beacon::serialize(DOMArrayBufferView* data, ResourceRequest& request, int, int&) -{ - ASSERT(data); - RefPtr<EncodedFormData> entityBody = EncodedFormData::create(data->baseAddress(), data->byteLength()); - request.setHTTPBody(entityBody.release()); - - // FIXME: a reasonable choice, but not in the spec; should it give a default? - AtomicString contentType = AtomicString("application/octet-stream"); - request.setHTTPContentType(contentType); - - return true; -} - -unsigned long long Beacon::beaconSize(FormData*) -{ - // FormData's size cannot be determined until serialized. - return 0; -} - -bool Beacon::serialize(FormData* data, ResourceRequest& request, int allowance, int& payloadLength) -{ - ASSERT(data); - RefPtr<EncodedFormData> entityBody = data->encodeMultiPartFormData(); - unsigned long long entitySize = entityBody->sizeInBytes(); - if (allowance > 0 && static_cast<unsigned long long>(allowance) < entitySize) - return false; - - AtomicString contentType = AtomicString("multipart/form-data; boundary=") + entityBody->boundary().data(); - request.setHTTPBody(entityBody.release()); - request.setHTTPContentType(contentType); - - payloadLength = entitySize; - return true; -} - -} // namespace - } // namespace blink
diff --git a/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp b/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp index e7422f9..7712195 100644 --- a/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp +++ b/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp
@@ -99,7 +99,7 @@ CanvasRenderingContext::ContextType type = renderingContextFactory->getContextType(); ASSERT(type < CanvasRenderingContext::ContextTypeCount); ASSERT(!renderingContextFactories()[type]); - renderingContextFactories()[type] = renderingContextFactory; + renderingContextFactories()[type] = std::move(renderingContextFactory); } DEFINE_TRACE(OffscreenCanvas)
diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/CPUProfileView.js b/third_party/WebKit/Source/devtools/front_end/profiler/CPUProfileView.js index 4281fbe..3c638a0 100644 --- a/third_party/WebKit/Source/devtools/front_end/profiler/CPUProfileView.js +++ b/third_party/WebKit/Source/devtools/front_end/profiler/CPUProfileView.js
@@ -62,7 +62,7 @@ */ WebInspector.CPUProfileType = function() { - WebInspector.ProfileType.call(this, WebInspector.CPUProfileType.TypeId, WebInspector.UIString("Collect JavaScript CPU Profile")); + WebInspector.ProfileType.call(this, WebInspector.CPUProfileType.TypeId, WebInspector.UIString("Record JavaScript CPU Profile")); this._recording = false; this._nextAnonymousConsoleProfileNumber = 1;
diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfileView.js b/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfileView.js index 1e446c9..22a8f7f 100644 --- a/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfileView.js +++ b/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfileView.js
@@ -44,7 +44,7 @@ */ WebInspector.SamplingHeapProfileType = function() { - WebInspector.ProfileType.call(this, WebInspector.SamplingHeapProfileType.TypeId, WebInspector.UIString("Collect JavaScript Heap Profile")); + WebInspector.ProfileType.call(this, WebInspector.SamplingHeapProfileType.TypeId, WebInspector.UIString("Record Allocation Profile")); this._recording = false; WebInspector.SamplingHeapProfileType.instance = this; } @@ -91,12 +91,12 @@ get treeItemTitle() { - return WebInspector.UIString("HEAP PROFILES"); + return WebInspector.UIString("ALLOCATION PROFILES"); }, get description() { - return WebInspector.UIString("Heap profiles show where the most memory allocations took place in JavaScript functions."); + return WebInspector.UIString("Allocation profiles show memory allocations from your JavaScript functions."); }, startRecordingProfile: function()
diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js b/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js index 158b30cb..852f576 100644 --- a/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js +++ b/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js
@@ -1177,7 +1177,7 @@ */ WebInspector.TrackingHeapSnapshotProfileType = function() { - WebInspector.HeapSnapshotProfileType.call(this, WebInspector.TrackingHeapSnapshotProfileType.TypeId, WebInspector.UIString("Record Heap Allocations")); + WebInspector.HeapSnapshotProfileType.call(this, WebInspector.TrackingHeapSnapshotProfileType.TypeId, WebInspector.UIString("Record Allocation Timeline")); } WebInspector.TrackingHeapSnapshotProfileType.TypeId = "HEAP-RECORD"; @@ -1364,12 +1364,12 @@ get treeItemTitle() { - return WebInspector.UIString("HEAP TIMELINES"); + return WebInspector.UIString("ALLOCATION TIMELINES"); }, get description() { - return WebInspector.UIString("Record JavaScript object allocations over time. Use this profile type to isolate memory leaks."); + return WebInspector.UIString("Allocation timelines show memory allocations from your heap over time. Use this profile type to isolate memory leaks."); }, /**
diff --git a/third_party/WebKit/Source/modules/fetch/GlobalFetch.cpp b/third_party/WebKit/Source/modules/fetch/GlobalFetch.cpp index bae5563..a4bdd71 100644 --- a/third_party/WebKit/Source/modules/fetch/GlobalFetch.cpp +++ b/third_party/WebKit/Source/modules/fetch/GlobalFetch.cpp
@@ -33,6 +33,11 @@ ScriptPromise fetch(ScriptState* scriptState, const RequestInfo& input, const Dictionary& init, ExceptionState& exceptionState) override { + if (!scriptState->contextIsValid()) { + // TODO(yhirano): Should this be moved to bindings? + exceptionState.throwTypeError("The global scope is shutting down."); + return ScriptPromise(); + } if (m_fetchManager->isStopped()) { exceptionState.throwTypeError("The global scope is shutting down."); return ScriptPromise();
diff --git a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp index b900c51..4d55d835 100644 --- a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp +++ b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp
@@ -4,12 +4,16 @@ #include "modules/imagecapture/ImageCapture.h" +#include "bindings/core/v8/CallbackPromiseAdapter.h" #include "bindings/core/v8/ScriptPromiseResolver.h" #include "core/dom/DOMException.h" #include "core/dom/ExceptionCode.h" +#include "core/frame/ImageBitmap.h" #include "modules/EventTargetModules.h" #include "modules/mediastream/MediaStreamTrack.h" #include "public/platform/Platform.h" +#include "public/platform/WebImageCaptureFrameGrabber.h" +#include "public/platform/WebMediaStreamTrack.h" namespace blink { @@ -60,7 +64,21 @@ return promise; } - resolver->reject(DOMException::create(NotSupportedError, "Not implemented yet")); + // Create |m_frameGrabber| the first time. + if (!m_frameGrabber) { + m_frameGrabber = adoptPtr(Platform::current()->createImageCaptureFrameGrabber()); + + } + + if (!m_frameGrabber) { + resolver->reject(DOMException::create(UnknownError, "Couldn't create platform resources")); + return promise; + } + + // The platform does not know about MediaStreamTrack, so we wrap it up. + WebMediaStreamTrack track(m_streamTrack->component()); + m_frameGrabber->grabFrame(&track, new CallbackPromiseAdapter<ImageBitmap, void>(resolver)); + return promise; }
diff --git a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.h b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.h index fd89bd0..16633e5b 100644 --- a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.h +++ b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.h
@@ -17,6 +17,7 @@ class ExceptionState; class MediaStreamTrack; +class WebImageCaptureFrameGrabber; // TODO(mcasas): Consideradding a LayoutTest checking that this class is not // garbage collected while it has event listeners. @@ -53,6 +54,7 @@ bool addEventListenerInternal(const AtomicString& eventType, EventListener*, const EventListenerOptions&) override; Member<MediaStreamTrack> m_streamTrack; + OwnPtr<WebImageCaptureFrameGrabber> m_frameGrabber; }; } // namespace blink
diff --git a/third_party/WebKit/Source/platform/exported/WebBlobData.cpp b/third_party/WebKit/Source/platform/exported/WebBlobData.cpp index e68dee06..6b67d588 100644 --- a/third_party/WebKit/Source/platform/exported/WebBlobData.cpp +++ b/third_party/WebKit/Source/platform/exported/WebBlobData.cpp
@@ -94,14 +94,14 @@ return m_private->contentType(); } -WebBlobData::WebBlobData(const PassOwnPtr<BlobData>& data) - : m_private(data) +WebBlobData::WebBlobData(PassOwnPtr<BlobData> data) + : m_private(std::move(data)) { } -WebBlobData& WebBlobData::operator=(const PassOwnPtr<BlobData>& data) +WebBlobData& WebBlobData::operator=(PassOwnPtr<BlobData> data) { - m_private.reset(data); + m_private.reset(std::move(data)); return *this; }
diff --git a/third_party/WebKit/Source/platform/fonts/FontCache.cpp b/third_party/WebKit/Source/platform/fonts/FontCache.cpp index 7ecd3eb..29b1841 100644 --- a/third_party/WebKit/Source/platform/fonts/FontCache.cpp +++ b/third_party/WebKit/Source/platform/fonts/FontCache.cpp
@@ -78,7 +78,6 @@ #if OS(WIN) bool FontCache::s_antialiasedTextEnabled = false; bool FontCache::s_lcdTextEnabled = false; -bool FontCache::s_useSubpixelPositioning = false; float FontCache::s_deviceScaleFactor = 1.0; bool FontCache::s_useSkiaFontFallback = false; #endif // OS(WIN)
diff --git a/third_party/WebKit/Source/platform/fonts/FontCache.h b/third_party/WebKit/Source/platform/fonts/FontCache.h index 0e12c9e..f56d8bdb 100644 --- a/third_party/WebKit/Source/platform/fonts/FontCache.h +++ b/third_party/WebKit/Source/platform/fonts/FontCache.h
@@ -103,7 +103,6 @@ static void setFontManager(const RefPtr<SkFontMgr>&); #if OS(WIN) - bool useSubpixelPositioning() const { return s_useSubpixelPositioning; } static bool antialiasedTextEnabled() { return s_antialiasedTextEnabled; } static bool lcdTextEnabled() { return s_lcdTextEnabled; } static float deviceScaleFactor() { return s_deviceScaleFactor; } @@ -190,7 +189,6 @@ static bool s_antialiasedTextEnabled; static bool s_lcdTextEnabled; static float s_deviceScaleFactor; - static bool s_useSubpixelPositioning; static HashMap<String, RefPtr<SkTypeface>>* s_sideloadedFonts; // The system font metrics cache. static AtomicString* s_menuFontFamilyName;
diff --git a/third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp b/third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp index d4ee06b..209c675 100644 --- a/third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp +++ b/third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp
@@ -54,7 +54,6 @@ , m_isHashTableDeletedValue(true) #if OS(WIN) , m_paintTextFlags(0) - , m_useSubpixelPositioning(false) , m_minSizeForAntiAlias(0) , m_minSizeForSubpixel(0) #endif @@ -76,7 +75,6 @@ , m_isHashTableDeletedValue(false) #if OS(WIN) , m_paintTextFlags(0) - , m_useSubpixelPositioning(false) , m_minSizeForAntiAlias(0) , m_minSizeForSubpixel(0) #endif @@ -98,7 +96,6 @@ , m_isHashTableDeletedValue(false) #if OS(WIN) , m_paintTextFlags(0) - , m_useSubpixelPositioning(false) , m_minSizeForAntiAlias(0) , m_minSizeForSubpixel(0) #endif @@ -121,7 +118,6 @@ , m_isHashTableDeletedValue(false) #if OS(WIN) , m_paintTextFlags(source.m_paintTextFlags) - , m_useSubpixelPositioning(source.m_useSubpixelPositioning) , m_minSizeForAntiAlias(source.m_minSizeForAntiAlias) , m_minSizeForSubpixel(source.m_minSizeForSubpixel) #endif @@ -144,17 +140,18 @@ , m_isHashTableDeletedValue(false) #if OS(WIN) , m_paintTextFlags(src.m_paintTextFlags) - , m_useSubpixelPositioning(src.m_useSubpixelPositioning) , m_minSizeForAntiAlias(src.m_minSizeForAntiAlias) , m_minSizeForSubpixel(src.m_minSizeForSubpixel) #endif { #if !OS(MACOSX) - querySystemForRenderStyle(FontDescription::subpixelPositioning()); + querySystemForRenderStyle(); #endif } -FontPlatformData::FontPlatformData(PassRefPtr<SkTypeface> tf, const char* family, float textSize, bool syntheticBold, bool syntheticItalic, FontOrientation orientation, bool subpixelTextPosition) +FontPlatformData::FontPlatformData(PassRefPtr<SkTypeface> tf, + const char* family, float textSize, bool syntheticBold, + bool syntheticItalic, FontOrientation orientation) : m_typeface(tf) #if !OS(WIN) , m_family(family) @@ -166,13 +163,12 @@ , m_isHashTableDeletedValue(false) #if OS(WIN) , m_paintTextFlags(0) - , m_useSubpixelPositioning(subpixelTextPosition) , m_minSizeForAntiAlias(0) , m_minSizeForSubpixel(0) #endif { #if !OS(MACOSX) - querySystemForRenderStyle(subpixelTextPosition); + querySystemForRenderStyle(); #endif } @@ -215,7 +211,6 @@ m_paintTextFlags = 0; m_minSizeForAntiAlias = other.m_minSizeForAntiAlias; m_minSizeForSubpixel = other.m_minSizeForSubpixel; - m_useSubpixelPositioning = other.m_useSubpixelPositioning; #endif return *this;
diff --git a/third_party/WebKit/Source/platform/fonts/FontPlatformData.h b/third_party/WebKit/Source/platform/fonts/FontPlatformData.h index b2e6253..4e85939 100644 --- a/third_party/WebKit/Source/platform/fonts/FontPlatformData.h +++ b/third_party/WebKit/Source/platform/fonts/FontPlatformData.h
@@ -84,7 +84,7 @@ #if OS(MACOSX) FontPlatformData(NSFont*, float size, bool syntheticBold = false, bool syntheticItalic = false, FontOrientation = FontOrientation::Horizontal); #endif - FontPlatformData(PassRefPtr<SkTypeface>, const char* name, float textSize, bool syntheticBold, bool syntheticItalic, FontOrientation = FontOrientation::Horizontal, bool subpixelTextPosition = defaultUseSubpixelPositioning()); + FontPlatformData(PassRefPtr<SkTypeface>, const char* name, float textSize, bool syntheticBold, bool syntheticItalic, FontOrientation = FontOrientation::Horizontal); ~FontPlatformData(); #if OS(MACOSX) @@ -145,9 +145,8 @@ #endif private: - bool static defaultUseSubpixelPositioning(); #if !OS(MACOSX) - void querySystemForRenderStyle(bool useSkiaSubpixelPositioning); + void querySystemForRenderStyle(); #endif RefPtr<SkTypeface> m_typeface; @@ -169,7 +168,6 @@ bool m_isHashTableDeletedValue; #if OS(WIN) int m_paintTextFlags; - bool m_useSubpixelPositioning; unsigned m_minSizeForAntiAlias; float m_minSizeForSubpixel; #endif
diff --git a/third_party/WebKit/Source/platform/fonts/linux/FontPlatformDataLinux.cpp b/third_party/WebKit/Source/platform/fonts/linux/FontPlatformDataLinux.cpp index 4ed918f..d16dc21 100644 --- a/third_party/WebKit/Source/platform/fonts/linux/FontPlatformDataLinux.cpp +++ b/third_party/WebKit/Source/platform/fonts/linux/FontPlatformDataLinux.cpp
@@ -96,7 +96,7 @@ paint->setTextSkewX(m_syntheticItalic ? -SK_Scalar1 / 4 : 0); } -void FontPlatformData::querySystemForRenderStyle(bool useSkiaSubpixelPositioning) +void FontPlatformData::querySystemForRenderStyle() { WebFontRenderStyle style; #if OS(ANDROID) @@ -133,12 +133,7 @@ // TestRunner specifically toggles the subpixel positioning flag. if (m_style.useSubpixelPositioning == FontRenderStyle::NoPreference || LayoutTestSupport::isRunningLayoutTest()) - m_style.useSubpixelPositioning = useSkiaSubpixelPositioning; -} - -bool FontPlatformData::defaultUseSubpixelPositioning() -{ - return FontDescription::subpixelPositioning(); + m_style.useSubpixelPositioning = FontDescription::subpixelPositioning(); } } // namespace blink
diff --git a/third_party/WebKit/Source/platform/fonts/mac/FontPlatformDataMac.mm b/third_party/WebKit/Source/platform/fonts/mac/FontPlatformDataMac.mm index ca5351f..bf1be45 100644 --- a/third_party/WebKit/Source/platform/fonts/mac/FontPlatformDataMac.mm +++ b/third_party/WebKit/Source/platform/fonts/mac/FontPlatformDataMac.mm
@@ -163,10 +163,4 @@ } } -bool FontPlatformData::defaultUseSubpixelPositioning() -{ - return FontDescription::subpixelPositioning(); -} - - } // namespace blink
diff --git a/third_party/WebKit/Source/platform/fonts/skia/FontCacheSkia.cpp b/third_party/WebKit/Source/platform/fonts/skia/FontCacheSkia.cpp index aa866cde..5d474693 100644 --- a/third_party/WebKit/Source/platform/fonts/skia/FontCacheSkia.cpp +++ b/third_party/WebKit/Source/platform/fonts/skia/FontCacheSkia.cpp
@@ -216,8 +216,7 @@ fontSize, (fontDescription.weight() >= FontWeight600 && !tf->isBold()) || fontDescription.isSyntheticBold(), ((fontDescription.style() == FontStyleItalic || fontDescription.style() == FontStyleOblique) && !tf->isItalic()) || fontDescription.isSyntheticItalic(), - fontDescription.orientation(), - fontDescription.useSubpixelPositioning())); + fontDescription.orientation())); } #endif // !OS(WIN)
diff --git a/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp b/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp index eb36e26..731eb0a 100644 --- a/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp +++ b/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp
@@ -101,9 +101,6 @@ m_fontManager = s_fontManager; if (!m_fontManager.get()) m_fontManager = adoptRef(SkFontMgr_New_DirectWrite()); - - s_useSubpixelPositioning = true; - ASSERT(m_fontManager.get()); } @@ -401,8 +398,7 @@ fontSize, (fontDescription.weight() >= FontWeight600 && !tf->isBold()) || fontDescription.isSyntheticBold(), ((fontDescription.style() == FontStyleItalic || fontDescription.style() == FontStyleOblique) && !tf->isItalic()) || fontDescription.isSyntheticItalic(), - fontDescription.orientation(), - s_useSubpixelPositioning)); + fontDescription.orientation())); struct FamilyMinSize { const wchar_t* family;
diff --git a/third_party/WebKit/Source/platform/fonts/win/FontPlatformDataWin.cpp b/third_party/WebKit/Source/platform/fonts/win/FontPlatformDataWin.cpp index 9e7e6c04..285cb0b 100644 --- a/third_party/WebKit/Source/platform/fonts/win/FontPlatformDataWin.cpp +++ b/third_party/WebKit/Source/platform/fonts/win/FontPlatformDataWin.cpp
@@ -62,11 +62,10 @@ if (ts >= m_minSizeForAntiAlias) { - if (m_useSubpixelPositioning - // Disable subpixel text for certain older fonts at smaller sizes as - // they tend to get quite blurry at non-integer sizes and positions. - // For high-DPI this workaround isn't required. - && (ts >= m_minSizeForSubpixel + // Disable subpixel text for certain older fonts at smaller sizes as + // they tend to get quite blurry at non-integer sizes and positions. + // For high-DPI this workaround isn't required. + if ((ts >= m_minSizeForSubpixel || FontCache::fontCache()->deviceScaleFactor() >= 1.5) // Subpixel text positioning looks pretty bad without font @@ -117,14 +116,9 @@ } -void FontPlatformData::querySystemForRenderStyle(bool) +void FontPlatformData::querySystemForRenderStyle() { m_paintTextFlags = computePaintTextFlags(fontFamilyName()); } -bool FontPlatformData::defaultUseSubpixelPositioning() -{ - return FontCache::fontCache()->useSubpixelPositioning(); -} - } // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp b/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp index 78511f3..cfbcf13 100644 --- a/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp +++ b/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp
@@ -67,7 +67,6 @@ , m_allDataReceived(false) , m_haveSize(false) , m_sizeAvailable(false) - , m_hasUniformFrameSize(true) , m_haveFrameCount(false) { } @@ -167,10 +166,6 @@ m_frames[index].m_hasAlpha = m_source.frameHasAlphaAtIndex(index); m_frames[index].m_frameBytes = m_source.frameBytesAtIndex(index); - const IntSize frameSize(index ? m_source.frameSizeAtIndex(index) : m_size); - if (frameSize != m_size) - m_hasUniformFrameSize = false; - notifyMemoryChanged(); } @@ -236,7 +231,6 @@ m_source.setData(*data(), allDataReceived); m_haveFrameCount = false; - m_hasUniformFrameSize = true; return isSizeAvailable(); }
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImage.h b/third_party/WebKit/Source/platform/graphics/BitmapImage.h index 2a650a89..3c46113 100644 --- a/third_party/WebKit/Source/platform/graphics/BitmapImage.h +++ b/third_party/WebKit/Source/platform/graphics/BitmapImage.h
@@ -185,7 +185,6 @@ bool m_allDataReceived : 1; // Whether or not we've received all our data. mutable bool m_haveSize : 1; // Whether or not our |m_size| member variable has the final overall image size yet. bool m_sizeAvailable : 1; // Whether or not we can obtain the size of the first image frame yet from ImageIO. - mutable bool m_hasUniformFrameSize : 1; mutable bool m_haveFrameCount : 1; };
diff --git a/third_party/WebKit/Source/platform/heap/GarbageCollected.h b/third_party/WebKit/Source/platform/heap/GarbageCollected.h index 182a044..c41b329 100644 --- a/third_party/WebKit/Source/platform/heap/GarbageCollected.h +++ b/third_party/WebKit/Source/platform/heap/GarbageCollected.h
@@ -99,6 +99,11 @@ || isHeapAllocatedListHashSetNode; }; +template <> +struct IsGarbageCollectedType<void> { + static const bool value = false; +}; + // The GarbageCollectedMixin interface and helper macro // USING_GARBAGE_COLLECTED_MIXIN can be used to automatically define // TraceTrait/ObjectAliveTrait on non-leftmost deriving classes
diff --git a/third_party/WebKit/Source/platform/heap/Handle.h b/third_party/WebKit/Source/platform/heap/Handle.h index 92b1812..a82c488 100644 --- a/third_party/WebKit/Source/platform/heap/Handle.h +++ b/third_party/WebKit/Source/platform/heap/Handle.h
@@ -1159,10 +1159,11 @@ // For wtf/Functional.h template<typename T, bool isGarbageCollected> struct PointerParamStorageTraits; +// The condition of 'T must be fully defined' (except for void) is checked in +// blink::IsGarbageCollectedType<T>::value. template<typename T> struct PointerParamStorageTraits<T*, false> { STATIC_ONLY(PointerParamStorageTraits); - static_assert(sizeof(T), "T must be fully defined"); using StorageType = T*; static StorageType wrap(T* value) { return value; } @@ -1172,7 +1173,6 @@ template<typename T> struct PointerParamStorageTraits<T*, true> { STATIC_ONLY(PointerParamStorageTraits); - static_assert(sizeof(T), "T must be fully defined"); using StorageType = blink::CrossThreadPersistent<T>; static StorageType wrap(T* value) { return value; } @@ -1182,7 +1182,6 @@ template<typename T> struct ParamStorageTraits<T*> : public PointerParamStorageTraits<T*, blink::IsGarbageCollectedType<T>::value> { STATIC_ONLY(ParamStorageTraits); - static_assert(sizeof(T), "T must be fully defined"); }; template<typename T>
diff --git a/third_party/WebKit/Source/platform/heap/PersistentNode.cpp b/third_party/WebKit/Source/platform/heap/PersistentNode.cpp index df3cfa7c..f0460774 100644 --- a/third_party/WebKit/Source/platform/heap/PersistentNode.cpp +++ b/third_party/WebKit/Source/platform/heap/PersistentNode.cpp
@@ -119,14 +119,6 @@ ASSERT(persistentCount == m_persistentCount); } - -namespace { -class GCObject final : public GarbageCollected<GCObject> { -public: - DEFINE_INLINE_TRACE() { } -}; -} - void CrossThreadPersistentRegion::prepareForThreadStateTermination(ThreadState* threadState) { // For heaps belonging to a thread that's detaching, any cross-thread persistents
diff --git a/third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp b/third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp index eb66a9b..c07fa1f 100644 --- a/third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp +++ b/third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp
@@ -176,7 +176,7 @@ void V8InspectorSessionImpl::addInspectedObject(PassOwnPtr<V8RuntimeAgent::Inspectable> inspectable) { - m_inspectedObjects.prepend(inspectable); + m_inspectedObjects.prepend(std::move(inspectable)); while (m_inspectedObjects.size() > kInspectedObjectBufferSize) m_inspectedObjects.removeLast(); } @@ -190,7 +190,7 @@ void V8InspectorSessionImpl::schedulePauseOnNextStatement(const String16& breakReason, PassOwnPtr<protocol::DictionaryValue> data) { - m_debuggerAgent->schedulePauseOnNextStatement(breakReason, data); + m_debuggerAgent->schedulePauseOnNextStatement(breakReason, std::move(data)); } void V8InspectorSessionImpl::cancelPauseOnNextStatement() @@ -200,12 +200,12 @@ void V8InspectorSessionImpl::breakProgram(const String16& breakReason, PassOwnPtr<protocol::DictionaryValue> data) { - m_debuggerAgent->breakProgram(breakReason, data); + m_debuggerAgent->breakProgram(breakReason, std::move(data)); } void V8InspectorSessionImpl::breakProgramOnException(const String16& breakReason, PassOwnPtr<protocol::DictionaryValue> data) { - m_debuggerAgent->breakProgramOnException(breakReason, data); + m_debuggerAgent->breakProgramOnException(breakReason, std::move(data)); } void V8InspectorSessionImpl::setSkipAllPauses(bool skip)
diff --git a/third_party/WebKit/Source/wtf/Functional.h b/third_party/WebKit/Source/wtf/Functional.h index 8aa0a938..43b97d6 100644 --- a/third_party/WebKit/Source/wtf/Functional.h +++ b/third_party/WebKit/Source/wtf/Functional.h
@@ -214,14 +214,6 @@ static typename RetainPtr<T>::PtrType unwrap(const StorageType& value) { return value.get(); } }; -template <> -struct ParamStorageTraits<void*> { - typedef void* StorageType; - - static StorageType wrap(void* value) { return value; } - static void* unwrap(const StorageType& value) { return value; } -}; - template <typename T> struct ParamStorageTraits<PassedWrapper<T>> { typedef PassedWrapper<T> StorageType;
diff --git a/third_party/WebKit/Source/wtf/OwnPtr.h b/third_party/WebKit/Source/wtf/OwnPtr.h index 391031ca4..687e4ea 100644 --- a/third_party/WebKit/Source/wtf/OwnPtr.h +++ b/third_party/WebKit/Source/wtf/OwnPtr.h
@@ -43,9 +43,8 @@ OwnPtr() : m_ptr(nullptr) {} OwnPtr(std::nullptr_t) : m_ptr(nullptr) {} - // See comment in PassOwnPtr.h for why this takes a const reference. - OwnPtr(const PassOwnPtr<T>&); - template <typename U> OwnPtr(const PassOwnPtr<U>&, EnsurePtrConvertibleArgDecl(U, T)); + OwnPtr(PassOwnPtr<T>&&); + template <typename U> OwnPtr(PassOwnPtr<U>&&, EnsurePtrConvertibleArgDecl(U, T)); // Hash table deleted values, which are only constructed and never copied or // destroyed. @@ -72,9 +71,9 @@ bool operator!() const { return !m_ptr; } explicit operator bool() const { return m_ptr; } - OwnPtr& operator=(const PassOwnPtr<T>&); + OwnPtr& operator=(PassOwnPtr<T>&&); OwnPtr& operator=(std::nullptr_t) { clear(); return *this; } - template <typename U> OwnPtr& operator=(const PassOwnPtr<U>&); + template <typename U> OwnPtr& operator=(PassOwnPtr<U>&&); OwnPtr(OwnPtr&&); template <typename U> OwnPtr(OwnPtr<U>&&); @@ -114,13 +113,13 @@ PtrType m_ptr; }; -template <typename T> inline OwnPtr<T>::OwnPtr(const PassOwnPtr<T>& o) +template <typename T> inline OwnPtr<T>::OwnPtr(PassOwnPtr<T>&& o) : m_ptr(o.leakPtr()) { } template <typename T> -template <typename U> inline OwnPtr<T>::OwnPtr(const PassOwnPtr<U>& o, EnsurePtrConvertibleArgDefn(U, T)) +template <typename U> inline OwnPtr<T>::OwnPtr(PassOwnPtr<U>&& o, EnsurePtrConvertibleArgDefn(U, T)) : m_ptr(o.leakPtr()) { static_assert(!std::is_array<T>::value, "pointers to array must never be converted"); @@ -155,7 +154,7 @@ return m_ptr[i]; } -template <typename T> inline OwnPtr<T>& OwnPtr<T>::operator=(const PassOwnPtr<T>& o) +template <typename T> inline OwnPtr<T>& OwnPtr<T>::operator=(PassOwnPtr<T>&& o) { PtrType ptr = m_ptr; m_ptr = o.leakPtr(); @@ -165,7 +164,7 @@ } template <typename T> -template <typename U> inline OwnPtr<T>& OwnPtr<T>::operator=(const PassOwnPtr<U>& o) +template <typename U> inline OwnPtr<T>& OwnPtr<T>::operator=(PassOwnPtr<U>&& o) { static_assert(!std::is_array<T>::value, "pointers to array must never be converted"); PtrType ptr = m_ptr;
diff --git a/third_party/WebKit/Source/wtf/PassOwnPtr.h b/third_party/WebKit/Source/wtf/PassOwnPtr.h index 131cb381..eb9a85c 100644 --- a/third_party/WebKit/Source/wtf/PassOwnPtr.h +++ b/third_party/WebKit/Source/wtf/PassOwnPtr.h
@@ -47,18 +47,14 @@ PassOwnPtr() : m_ptr(nullptr) {} PassOwnPtr(std::nullptr_t) : m_ptr(nullptr) {} - // It somewhat breaks the type system to allow transfer of ownership out of - // a const PassOwnPtr. However, it makes it much easier to work with - // PassOwnPtr temporaries, and we don't have a need to use real const - // PassOwnPtrs anyway. - PassOwnPtr(const PassOwnPtr& o) : m_ptr(o.leakPtr()) {} - template <typename U> PassOwnPtr(const PassOwnPtr<U>&, EnsurePtrConvertibleArgDecl(U, T)); + PassOwnPtr(PassOwnPtr&& o) : m_ptr(o.leakPtr()) {} + template <typename U> PassOwnPtr(PassOwnPtr<U>&&, EnsurePtrConvertibleArgDecl(U, T)); ~PassOwnPtr() { OwnedPtrDeleter<T>::deletePtr(m_ptr); } PtrType get() const { return m_ptr; } - PtrType leakPtr() const WARN_UNUSED_RETURN; + PtrType leakPtr() WARN_UNUSED_RETURN; ValueType& operator*() const { ASSERT(m_ptr); return *m_ptr; } PtrType operator->() const { ASSERT(m_ptr); return m_ptr; } @@ -73,6 +69,7 @@ private: explicit PassOwnPtr(PtrType ptr) : m_ptr(ptr) {} + PassOwnPtr(const PassOwnPtr&) = delete; PassOwnPtr& operator=(const PassOwnPtr&) = delete; // We should never have two OwnPtrs for the same underlying object @@ -83,17 +80,17 @@ template <typename U> bool operator==(const OwnPtr<U>&) const = delete; template <typename U> bool operator!=(const OwnPtr<U>&) const = delete; - mutable PtrType m_ptr; + PtrType m_ptr; }; template <typename T> -template <typename U> inline PassOwnPtr<T>::PassOwnPtr(const PassOwnPtr<U>& o, EnsurePtrConvertibleArgDefn(U, T)) +template <typename U> inline PassOwnPtr<T>::PassOwnPtr(PassOwnPtr<U>&& o, EnsurePtrConvertibleArgDefn(U, T)) : m_ptr(o.leakPtr()) { static_assert(!std::is_array<T>::value, "pointers to array must never be converted"); } -template <typename T> inline typename PassOwnPtr<T>::PtrType PassOwnPtr<T>::leakPtr() const +template <typename T> inline typename PassOwnPtr<T>::PtrType PassOwnPtr<T>::leakPtr() { PtrType ptr = m_ptr; m_ptr = nullptr; @@ -130,7 +127,7 @@ return PassOwnPtr<T[]>(ptr); } -template <typename T, typename U> inline PassOwnPtr<T> static_pointer_cast(const PassOwnPtr<U>& p) +template <typename T, typename U> inline PassOwnPtr<T> static_pointer_cast(PassOwnPtr<U>&& p) { static_assert(!std::is_array<T>::value, "pointers to array must never be converted"); return adoptPtr(static_cast<T*>(p.leakPtr()));
diff --git a/third_party/WebKit/public/platform/Platform.h b/third_party/WebKit/public/platform/Platform.h index ca570973..03e769e 100644 --- a/third_party/WebKit/public/platform/Platform.h +++ b/third_party/WebKit/public/platform/Platform.h
@@ -78,6 +78,7 @@ class WebGestureCurve; class WebGraphicsContext3DProvider; class WebIDBFactory; +class WebImageCaptureFrameGrabber; class WebInstalledApp; class WebMIDIAccessor; class WebMIDIAccessorClient; @@ -499,11 +500,11 @@ // WebRTC ---------------------------------------------------------- - // Creates an WebRTCPeerConnectionHandler for RTCPeerConnection. + // Creates a WebRTCPeerConnectionHandler for RTCPeerConnection. // May return null if WebRTC functionality is not avaliable or if it's out of resources. virtual WebRTCPeerConnectionHandler* createRTCPeerConnectionHandler(WebRTCPeerConnectionHandlerClient*) { return nullptr; } - // Creates an WebMediaRecorderHandler to record MediaStreams. + // Creates a WebMediaRecorderHandler to record MediaStreams. // May return null if the functionality is not available or out of resources. virtual WebMediaRecorderHandler* createMediaRecorderHandler() { return nullptr; } @@ -513,13 +514,17 @@ // May return null if WebRTC functionality is not available or out of resources. virtual WebMediaStreamCenter* createMediaStreamCenter(WebMediaStreamCenterClient*) { return nullptr; } - // Creates an WebCanvasCaptureHandler to capture Canvas output. + // Creates a WebCanvasCaptureHandler to capture Canvas output. virtual WebCanvasCaptureHandler* createCanvasCaptureHandler(const WebSize&, double, WebMediaStreamTrack*) { return nullptr; } // Fills in the WebMediaStream to capture from the WebMediaPlayer identified // by the second parameter. virtual void createHTMLVideoElementCapturer(WebMediaStream*, WebMediaPlayer*) {} + // Creates a WebImageCaptureFrameGrabber to take a snapshot of a Video Tracks. + // May return null if the functionality is not available. + virtual WebImageCaptureFrameGrabber* createImageCaptureFrameGrabber() { return nullptr; } + // WebWorker ---------------------------------------------------------- virtual void didStartWorkerThread() { }
diff --git a/third_party/WebKit/public/platform/WebBlobData.h b/third_party/WebKit/public/platform/WebBlobData.h index 98136cef..6a8949f 100644 --- a/third_party/WebKit/public/platform/WebBlobData.h +++ b/third_party/WebKit/public/platform/WebBlobData.h
@@ -77,8 +77,8 @@ BLINK_PLATFORM_EXPORT WebString contentType() const; #if INSIDE_BLINK - BLINK_PLATFORM_EXPORT WebBlobData(const WTF::PassOwnPtr<BlobData>&); - BLINK_PLATFORM_EXPORT WebBlobData& operator=(const WTF::PassOwnPtr<BlobData>&); + BLINK_PLATFORM_EXPORT WebBlobData(WTF::PassOwnPtr<BlobData>); + BLINK_PLATFORM_EXPORT WebBlobData& operator=(WTF::PassOwnPtr<BlobData>); BLINK_PLATFORM_EXPORT operator WTF::PassOwnPtr<BlobData>(); #endif
diff --git a/third_party/WebKit/public/platform/WebImageCaptureFrameGrabber.h b/third_party/WebKit/public/platform/WebImageCaptureFrameGrabber.h new file mode 100644 index 0000000..093f0828 --- /dev/null +++ b/third_party/WebKit/public/platform/WebImageCaptureFrameGrabber.h
@@ -0,0 +1,30 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WebImageCaptureFrameGrabber_h +#define WebImageCaptureFrameGrabber_h + +#include "public/platform/WebCallbacks.h" +#include "public/platform/WebCommon.h" +#include "third_party/skia/include/core/SkRefCnt.h" + +class SkImage; + +namespace blink { + +class WebMediaStreamTrack; + +using WebImageCaptureGrabFrameCallbacks = WebCallbacks<sk_sp<SkImage>, void>; + +// Platform interface of an ImageCapture class for grabFrame() calls. +class WebImageCaptureFrameGrabber { +public: + virtual ~WebImageCaptureFrameGrabber() { } + + virtual void grabFrame(WebMediaStreamTrack*, WebImageCaptureGrabFrameCallbacks*) = 0; +}; + +} // namespace blink + +#endif // WebImageCaptureFrameGrabber_h
diff --git a/third_party/WebKit/public/platform/WebPrivateOwnPtr.h b/third_party/WebKit/public/platform/WebPrivateOwnPtr.h index 060a621..64d0451 100644 --- a/third_party/WebKit/public/platform/WebPrivateOwnPtr.h +++ b/third_party/WebKit/public/platform/WebPrivateOwnPtr.h
@@ -59,7 +59,8 @@ T* get() const { return m_ptr; } #if INSIDE_BLINK - template<typename U> WebPrivateOwnPtr(const PassOwnPtr<U>&, EnsurePtrConvertibleArgDecl(U, T)); + template <typename U> + WebPrivateOwnPtr(PassOwnPtr<U>, EnsurePtrConvertibleArgDecl(U, T)); void reset(T* ptr) { @@ -67,7 +68,7 @@ m_ptr = ptr; } - void reset(const PassOwnPtr<T>& o) + void reset(PassOwnPtr<T> o) { reset(o.leakPtr()); } @@ -97,7 +98,9 @@ }; #if INSIDE_BLINK -template<typename T> template<typename U> inline WebPrivateOwnPtr<T>::WebPrivateOwnPtr(const PassOwnPtr<U>& o, EnsurePtrConvertibleArgDefn(U, T)) +template <typename T> +template <typename U> +inline WebPrivateOwnPtr<T>::WebPrivateOwnPtr(PassOwnPtr<U> o, EnsurePtrConvertibleArgDefn(U, T)) : m_ptr(o.leakPtr()) { static_assert(!std::is_array<T>::value, "Pointers to array must never be converted");
diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn index fe2515c..8ad626b 100644 --- a/third_party/boringssl/BUILD.gn +++ b/third_party/boringssl/BUILD.gn
@@ -178,6 +178,16 @@ ":boringssl_fuzzer", ] seed_corpus = "src/fuzz/${fuzzer}_corpus" + + if ("cert" == fuzzer) { + libfuzzer_options = [ "max_len=3072" ] + } else if ("client" == fuzzer) { + libfuzzer_options = [ "max_len=20000" ] + } else if ("privkey" == fuzzer) { + libfuzzer_options = [ "max_len=2048" ] + } else if ("server" == fuzzer) { + libfuzzer_options = [ "max_len=4096" ] + } } } }
diff --git a/tools/android/loading/analyze.py b/tools/android/loading/analyze.py index db0106f..82cc071 100755 --- a/tools/android/loading/analyze.py +++ b/tools/android/loading/analyze.py
@@ -59,16 +59,6 @@ device.StartActivity(load_intent, blocking=True) -def _WriteJson(output, json_data): - """Write JSON data in a nice way. - - Args: - output: a file object - json_data: JSON data as a dict. - """ - json.dump(json_data, output, sort_keys=True, indent=2) - - def _GetPrefetchHtml(graph_view, name=None): """Generate prefetch page for the resources in resource graph. @@ -154,14 +144,14 @@ logging.warning('Warm fetch') warm_data = _LogRequests(url, clear_cache_override=False) with open(json_output, 'w') as f: - _WriteJson(f, warm_data) + json.dump(warm_data, f) logging.warning('Wrote ' + json_output) with open(json_output + '.cold', 'w') as f: - _WriteJson(f, cold_data) + json.dump(cold_data, f) logging.warning('Wrote ' + json_output + '.cold') else: with open(json_output, 'w') as f: - _WriteJson(f, cold_data) + json.dump(cold_data, f) logging.warning('Wrote ' + json_output)
diff --git a/tools/android/loading/loading_trace.py b/tools/android/loading/loading_trace.py index 2a291e5e..0804e27 100644 --- a/tools/android/loading/loading_trace.py +++ b/tools/android/loading/loading_trace.py
@@ -52,7 +52,7 @@ """Save a json file representing this instance.""" json_dict = self.ToJsonDict() with open(json_path, 'w') as output_file: - json.dump(json_dict, output_file, indent=2) + json.dump(json_dict, output_file) @classmethod def FromJsonDict(cls, json_dict):
diff --git a/tools/android/loading/trace_to_chrome_trace.py b/tools/android/loading/trace_to_chrome_trace.py index 382d87d..23c3632 100755 --- a/tools/android/loading/trace_to_chrome_trace.py +++ b/tools/android/loading/trace_to_chrome_trace.py
@@ -5,12 +5,11 @@ """Convert trace output for Chrome. -Takes a loading trace from 'analyze.py log_requests' and outputs a zip'd json +Takes a loading trace from 'analyze.py log_requests' and outputs a json file that can be loaded by chrome's about:tracing.. """ import argparse -import gzip import json if __name__ == '__main__': @@ -18,6 +17,6 @@ parser.add_argument('input') parser.add_argument('output') args = parser.parse_args() - with gzip.GzipFile(args.output, 'w') as output_f, file(args.input) as input_f: + with file(args.output, 'w') as output_f, file(args.input) as input_f: events = json.load(input_f)['tracing_track']['events'] json.dump({'traceEvents': events, 'metadata': {}}, output_f)
diff --git a/tools/clang/blink_gc_plugin/OWNERS b/tools/clang/blink_gc_plugin/OWNERS index 9c24a96..789d7ef 100644 --- a/tools/clang/blink_gc_plugin/OWNERS +++ b/tools/clang/blink_gc_plugin/OWNERS
@@ -1,5 +1,4 @@ -ager@chromium.org haraken@chromium.org kouhei@chromium.org tkent@chromium.org -zerny@chromium.org +sigbjornf@opera.com