New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 701223 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

DevToolsProtocolTest.VirtualTimeTest is flaky on android.

Project Member Reported by khushals...@chromium.org, Mar 14 2017

Issue description

A few instance of the failure:

https://uberchromegw.corp.google.com/i/chromium.linux/builders/Android%20Tests/builds/39242
https://uberchromegw.corp.google.com/i/chromium.linux/builders/Android%20Tests/builds/39220

The log from the failure:

[UNKNOWN] DevToolsProtocolTest.VirtualTimeTest:
C  419.170s Main  [ RUN      ] DevToolsProtocolTest.VirtualTimeTest
C  419.170s Main  [WARNING:dns_config_service_posix.cc(326)] Failed to read DnsConfig.
C  419.170s Main  [ERROR:devtools_http_handler.cc(221)] Cannot start http server for devtools. Stop devtools.
C  419.170s Main  ../../content/browser/devtools/protocol/devtools_protocol_browsertest.cc:1344: Failure
C  419.170s Main  Value of: console_messages_
C  419.170s Main  Expected: has 2 elements where
C  419.170s Main  element #0 is equal to "before",
C  419.170s Main  element #1 is equal to "done"
C  419.170s Main    Actual: { "done" }, which has 1 element
C  419.170s Main  ../../content/browser/devtools/protocol/devtools_protocol_browsertest.cc:1355: Failure
C  419.170s Main  Value of: console_messages_
C  419.170s Main  Expected: has 3 elements where
C  419.170s Main  element #0 is equal to "before",
C  419.170s Main  element #1 is equal to "done",
C  419.170s Main  element #2 is equal to "after"
C  419.170s Main    Actual: { "done", "before", "after" }, whose element #0 doesn't match
C  419.170s Main  [  FAILED  ] DevToolsProtocolTest.VirtualTimeTest, where TypeParam =  and GetParam() =  (545 ms)
C  419.170s Main  [----------] 1 test from DevToolsProtocolTest (546 ms total)
C  419.170s Main  
C  419.170s Main  [----------] Global test environment tear-down
C  419.170s Main  [==========] 1 test from 1 test case ran. (547 ms total)
C  419.170s Main  [  PASSED  ] 0 tests.
C  419.170s Main  [  FAILED  ] 1 test, listed below:
C  419.170s Main  [  FAILED  ] DevToolsProtocolTest.VirtualTimeTest, where TypeParam =  and GetParam() = 

I'm disabling the test for now.
 
Owner: alexclarke@chromium.org
Status: Assigned (was: Untriaged)
+alexclarke@, could you take a look at this.
Project Member

Comment 2 by bugdroid1@chromium.org, Mar 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/59fd92a3139ea60c5fb024342174c17cbd0b7796

commit 59fd92a3139ea60c5fb024342174c17cbd0b7796
Author: khushalsagar <khushalsagar@chromium.org>
Date: Tue Mar 14 03:20:45 2017

devtools[android]: Disable flaky DevtoolsProtocolTest.VirtualTimeTest.

BUG= 701223 
TBR=alexclarke@chromium.org

Review-Url: https://codereview.chromium.org/2745063004
Cr-Commit-Position: refs/heads/master@{#456611}

[modify] https://crrev.com/59fd92a3139ea60c5fb024342174c17cbd0b7796/content/browser/devtools/protocol/devtools_protocol_browsertest.cc

Owner: skyos...@chromium.org
Sami's patch caused this.
Cc: alexclarke@chromium.org
Status: Started (was: Assigned)
Turns out the problem here is that consistent delayed task ordering still isn't guaranteed across task queues because of the two-phase way where we first set the sequence number for a task, followed by the enqueue order when the delay is up. Because the latter happens in a random order across task queues, delayed tasks for the same point in time can still fire in random orders.

I think we can fix this by removing the two-phase enqueue order computation. It doesn't really seem to be necessary because the selector has starvation protection to immediate tasks from delayed tasks and vice versa. It only had the latter when we made the second enqueue order computation.

Super hacky WIP patch: https://codereview.chromium.org/2786083005/
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7d68ce72674bc9189bd8bcf305823d75c044489d

commit 7d68ce72674bc9189bd8bcf305823d75c044489d
Author: skyostil <skyostil@chromium.org>
Date: Mon Apr 10 16:47:24 2017

extensions: Fix synchronization in ContentScriptApiTest.ContentScriptOtherExtensions

The ContentScriptApiTest.ContentScriptOtherExtensions has the following
flow:

1. Register the inject.js content script to run at 'document_end'
   time.
2. Load iframe_content.{html,js} in an iframe.
3. On DOMContentLoaded, set a 10ms timer to report the iframe's contents
   to the test harness.
4. In 'inject.js', rewrite the page's content.
5. In the test harness, verify that the page reports the content mutated
   by inject.js.

The problem is that the timer registered in step 3 races with the
task[1] triggering the injection script since there's no explicit
synchronization between the two. Currently this works by accident, but
an upcoming change[2] in the Blink Scheduler will cause the test to
actually become flaky.

This change fixes the test by making the iframe report its contents
based on the load event rather than DOMContentLoaded. Since this is
guaranteed to happen after the injection has finished, there's no
possibility of out-of-order execution.

BUG= 696001 , 701223 

[1] blink::FrameLoader::finishedParsing
    => extensions::ScriptInjection::InjectJs
       => blink::SuspendableScriptExecutor::create
[2] https://bugs.chromium.org/p/chromium/issues/detail?id=701223#c4

Review-Url: https://codereview.chromium.org/2800103002
Cr-Commit-Position: refs/heads/master@{#463294}

[modify] https://crrev.com/7d68ce72674bc9189bd8bcf305823d75c044489d/chrome/test/data/extensions/api_test/content_scripts/other_extensions/iframe_content.js

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d80c41e37b7570607f6f877961f487f7f24ae12e

commit d80c41e37b7570607f6f877961f487f7f24ae12e
Author: skyostil <skyostil@chromium.org>
Date: Tue Apr 25 18:35:36 2017

scheduler: Move WebFrameScheduler and WebScheduler into Blink

Move WebFrameScheduler and WebScheduler into Blink since there is no
need to expose these classes to outside components.

No functional changes.

BUG= 696001 , 701223 
TBR=jochen@chromium.org,dalecurtis@chromium.org

Review-Url: https://codereview.chromium.org/2843503002
Cr-Commit-Position: refs/heads/master@{#467058}

[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/media/blink/run_all_unittests.cc
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitor.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/bindings/core/v8/V8IdleTaskRunner.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/dom/IdleDeadline.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/dom/IdleDeadlineTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/dom/ScriptRunner.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/frame/LocalFrame.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/frame/RootFrameViewportTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/loader/NavigationScheduler.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/page/ScopedPageSuspender.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/timing/WorkerPerformance.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/modules/fetch/DataConsumerHandleTestUtil.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerLinkResource.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/modules/websockets/WebSocketHandleImpl.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/Timer.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/TimerTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/WebScheduler.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/WebThreadSupportingGC.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/graphics/GraphicsLayerTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/heap/ThreadState.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/loader/fetch/RawResourceTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/loader/fetch/Resource.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm
[rename] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/child/web_scheduler.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/child/web_scheduler_impl.cc
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/child/web_scheduler_impl.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h
[rename] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scheduler/test/fake_renderer_scheduler.cc
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/scroll/ScrollbarTestSuite.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/web/InspectorEmulationAgent.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/web/WebViewImpl.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/web/WebViewImpl.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/web/tests/ActiveConnectionThrottlingTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/public/platform/scheduler/renderer/renderer_scheduler.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/public/platform/scheduler/test/fake_renderer_scheduler.h
[modify] https://crrev.com/d80c41e37b7570607f6f877961f487f7f24ae12e/third_party/WebKit/public/platform/scheduler/test/mock_renderer_scheduler.h

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ea78625e749782bff7e8009a66f90afa850ffbb

commit 5ea78625e749782bff7e8009a66f90afa850ffbb
Author: skyostil <skyostil@chromium.org>
Date: Wed Apr 26 18:43:07 2017

scheduler: Use PLATFORM_EXPORT instead of BLINK_PLATFORM_EXPORT

Since the scheduler classes don't need to be exposed to content, the
PLATFORM_EXPORT macro is more appropriate for controlling their
visibility.

BUG= 696001 , 701223 

Review-Url: https://codereview.chromium.org/2836853003
Cr-Commit-Position: refs/heads/master@{#467391}

[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/lazy_now.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/queueing_time_estimator.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/real_time_domain.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/task_queue.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_delegate.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/task_queue_selector.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/task_time_observer.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/thread_load_tracker.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/time_domain.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/virtual_time_domain.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/work_queue.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/compositor_worker_scheduler.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/idle_canceled_delayed_task_sweeper.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/idle_helper.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/scheduler_helper.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/scheduler_tqm_delegate.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/scheduler_tqm_delegate_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/web_scheduler.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/web_scheduler_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/web_task_runner_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/worker_global_scope_scheduler.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/auto_advancing_virtual_time_domain.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/deadline_task_runner.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/idle_time_estimator.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/render_widget_signals.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/renderer_web_scheduler_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/task_cost_estimator.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/user_model.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/renderer/webthread_impl_for_renderer_scheduler.h
[modify] https://crrev.com/5ea78625e749782bff7e8009a66f90afa850ffbb/third_party/WebKit/Source/platform/scheduler/utility/webthread_impl_for_utility_thread.h

Project Member

Comment 8 by bugdroid1@chromium.org, May 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6b5d2e208a399b53facc7ab80fca62b35f427c46

commit 6b5d2e208a399b53facc7ab80fca62b35f427c46
Author: skyostil <skyostil@chromium.org>
Date: Tue May 02 12:03:09 2017

scheduler: Make virtual time expiration deterministic

Since the execution order of tasks across task queues is not
guaranteed[1], the task that controls the expiration of the virtual time
budget can run in a random order w.r.t. the tasks virtual time is
actually controlling. This patch makes the ordering deterministic by
using the control task queue (i.e., always the highest priority) to
reset the virtual time policy when the budget expires.

BUG= 696001 , 701223 

[1] https://codereview.chromium.org/2786083005/

Review-Url: https://codereview.chromium.org/2841463003
Cr-Commit-Position: refs/heads/master@{#468604}

[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler.h
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.h
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl_unittest.cc
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/web/InspectorEmulationAgent.cpp
[modify] https://crrev.com/6b5d2e208a399b53facc7ab80fca62b35f427c46/third_party/WebKit/Source/web/InspectorEmulationAgent.h

Status: Fixed (was: Started)

Sign in to add a comment