initial version of the headless download manager delegate [chromium/src : master]

2 views
Skip to first unread message

David Vallet (Gerrit)

unread,
Jul 31, 2017, 11:14:29 PM7/31/17
to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Eric Seckler, Sami Kyöstilä, Pavel Feldman, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

PTAL, this is ready to land

View Change

    To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
    Gerrit-Change-Number: 590913
    Gerrit-PatchSet: 7
    Gerrit-Owner: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
    Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-Comment-Date: Tue, 01 Aug 2017 03:14:23 +0000
    Gerrit-HasComments: No
    Gerrit-HasLabels: No

    Eric Seckler (Gerrit)

    unread,
    Aug 1, 2017, 2:46:29 AM8/1/17
    to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Sami Kyöstilä, Pavel Feldman, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

    Thanks for taking this on, David :)

    Patch set 7:Code-Review +1

    View Change

    3 comments:

    To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
    Gerrit-Change-Number: 590913
    Gerrit-PatchSet: 7
    Gerrit-Owner: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
    Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-Comment-Date: Tue, 01 Aug 2017 06:46:22 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: Yes

    David Vallet (Gerrit)

    unread,
    Aug 3, 2017, 2:38:00 AM8/3/17
    to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Eric Seckler, Sami Kyöstilä, Pavel Feldman, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

    Thanks, PTAL

    View Change

    3 comments:

      • Patch Set #7, Line 217: DownloadManagerDelegate

        nit: Can we make HeadlessBrowserContextImpl::GetDownloadManagerDelegate() r

      • This is overriding a content::BrowserContext so we probably want to keep it as is.
        Doing an additional method would mean adding it to public/HeadlessBrowserContext which only contains high level methods.
        I created a From method from a content:DownloadManager to encapsulate the casting

    • File headless/lib/browser/headless_browser_impl.cc:

      • nit: doesn't look like we need this here, let's remove this line :)

      • nit: Test comment here and for DeniedDefaultDownload below need updating.

      • Oops! done

    To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
    Gerrit-Change-Number: 590913
    Gerrit-PatchSet: 8
    Gerrit-Owner: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
    Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-Comment-Date: Thu, 03 Aug 2017 06:37:55 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Eric Seckler (Gerrit)

    unread,
    Aug 3, 2017, 2:57:29 AM8/3/17
    to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Sami Kyöstilä, Pavel Feldman, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

    View Change

    1 comment:

      • This is overriding a content::BrowserContext so we probably want to keep it

        I was thinking we could just override the method with a more specialized return type in the Impl. Afaik, c++ supports covariant return types when overriding? :)

        https://stackoverflow.com/a/15064420

    To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
    Gerrit-Change-Number: 590913
    Gerrit-PatchSet: 8
    Gerrit-Owner: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
    Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-Comment-Date: Thu, 03 Aug 2017 06:57:25 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    David Vallet (Gerrit)

    unread,
    Aug 3, 2017, 3:27:00 AM8/3/17
    to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Eric Seckler, Sami Kyöstilä, Pavel Feldman, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

    @pfeldman: can you review changes to browser protocol?

    View Change

    1 comment:

      • I was thinking we could just override the method with a more specialized re

      • Huh, TIL
        DOne

    To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
    Gerrit-Change-Number: 590913
    Gerrit-PatchSet: 10
    Gerrit-Owner: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
    Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-Comment-Date: Thu, 03 Aug 2017 07:26:55 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Pavel Feldman (Gerrit)

    unread,
    Aug 3, 2017, 7:54:30 PM8/3/17
    to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Eric Seckler, Sami Kyöstilä, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

    I think this needs to be implemented on the content level instead. I've recently moved embedder-specific alert() handling from chrome/ to content/. Downloads are no different. See what I did there: https://chromium-review.googlesource.com/c/592608

    View Change

    1 comment:

    To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
    Gerrit-Change-Number: 590913
    Gerrit-PatchSet: 10
    Gerrit-Owner: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: David Vallet <dva...@chromium.org>
    Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
    Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-Comment-Date: Thu, 03 Aug 2017 23:54:14 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Pavel Feldman (Gerrit)

    unread,
    Aug 3, 2017, 7:57:32 PM8/3/17
    to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Eric Seckler, Sami Kyöstilä, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

    Downloads are easier because we don't need to maintain backwards compatibility. WebDriver was making me preserve one for alert(). In your case, I would simply allow overriding download manager with the protocol-based version. I.e. what you did for headless would move into devtools/protocol/ and would substitute chrome's delegate.

    View Change

      To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: chromium/src
      Gerrit-Branch: master
      Gerrit-MessageType: comment
      Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
      Gerrit-Change-Number: 590913
      Gerrit-PatchSet: 10
      Gerrit-Owner: David Vallet <dva...@chromium.org>
      Gerrit-Reviewer: David Vallet <dva...@chromium.org>
      Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
      Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
      Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
      Gerrit-CC: Commit Bot <commi...@chromium.org>
      Gerrit-Comment-Date: Thu, 03 Aug 2017 23:57:29 +0000
      Gerrit-HasComments: No
      Gerrit-HasLabels: No

      Eric Seckler (Gerrit)

      unread,
      Aug 4, 2017, 6:31:58 AM8/4/17
      to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Alex Clarke, David Vallet, Pavel Feldman, Sami Kyöstilä

      David Vallet has uploaded this change for review.

      View Change

      initial version of the headless download manager delegate

      patch from issue 2886693002 at patchset 100001 (http://crrev.com/2886693002#ps100001)
      Following fixes:
      - Added Deny/Allow behavior tests, fixed setting deny by default
      - Changed using TaskScheduler for FILE thread post tasks, since use of BrowserThread::FILE is deprecated
      - Merged setDownloadBehavior and setDownloadDirectory into setDownloadBehaviour with downloadPath optional parameter.
      - Additional cleanup



      BUG=696481

      Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
      ---
      M headless/BUILD.gn
      M headless/lib/DEPS
      M headless/lib/browser/headless_browser_context_impl.cc
      M headless/lib/browser/headless_browser_context_impl.h
      M headless/lib/browser/headless_browser_impl.cc
      M headless/lib/browser/headless_browser_impl.h
      M headless/lib/browser/headless_devtools_manager_delegate.cc
      M headless/lib/browser/headless_devtools_manager_delegate.h
      A headless/lib/browser/headless_download_manager_delegate.cc
      A headless/lib/browser/headless_download_manager_delegate.h
      A headless/lib/headless_download_browsertest.cc
      M third_party/WebKit/Source/core/inspector/browser_protocol.json
      12 files changed, 788 insertions(+), 5 deletions(-)


      To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: chromium/src
      Gerrit-Branch: master
      Gerrit-MessageType: newchange
      Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
      Gerrit-Change-Number: 590913
      Gerrit-PatchSet: 10
      Gerrit-Owner: David Vallet <dva...@chromium.org>
      Gerrit-Reviewer: David Vallet <dva...@chromium.org>
      Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
      Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
      Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
      Gerrit-CC: Alex Clarke <alexc...@chromium.org>

      Sami Kyöstilä (Gerrit)

      unread,
      Aug 4, 2017, 12:03:16 PM8/4/17
      to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Eric Seckler, Alex Clarke, Pavel Feldman, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

      I think the implementation looks great, but Pavel has a point: if there's a straightforward way to make this support non-headless too then let's try to do that.

      View Change

      1 comment:

      To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: chromium/src
      Gerrit-Branch: master
      Gerrit-MessageType: comment
      Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
      Gerrit-Change-Number: 590913
      Gerrit-PatchSet: 10
      Gerrit-Owner: David Vallet <dva...@chromium.org>
      Gerrit-Reviewer: David Vallet <dva...@chromium.org>
      Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
      Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
      Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
      Gerrit-CC: Alex Clarke <alexc...@chromium.org>
      Gerrit-CC: Commit Bot <commi...@chromium.org>
      Gerrit-Comment-Date: Fri, 04 Aug 2017 16:03:13 +0000
      Gerrit-HasComments: Yes
      Gerrit-HasLabels: No

      David Vallet (Gerrit)

      unread,
      Aug 7, 2017, 7:26:45 PM8/7/17
      to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Sami Kyöstilä, Eric Seckler, Alex Clarke, Pavel Feldman, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

      Patch Set 10:

      (1 comment)

      I think the implementation looks great, but Pavel has a point: if there's a straightforward way to make this support non-headless too then let's try to do that.

      Thanks for the suggestions!
      Sorry for the silence, I just had some time to look into this.

      I believe that this is should be doable for both headless/head, as Pavel suggests.

      But, I don't think it can be done in Page without significantly reworking how the download manager works in Chrome. The main reason is that the download manager delegate is stored in the browser context: https://cs.chromium.org/chromium/src/content/public/browser/browser_context.h?rcl=baca1a8cf2f9382857ba94863d94e333674526b9&l=219

      My suggestion then is to move the impl to content/protocol as Pavel suggests, but leave it in the Browser domain, wdyt?

      View Change

        To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-MessageType: comment
        Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
        Gerrit-Change-Number: 590913
        Gerrit-PatchSet: 10
        Gerrit-Owner: David Vallet <dva...@chromium.org>
        Gerrit-Reviewer: David Vallet <dva...@chromium.org>
        Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
        Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
        Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
        Gerrit-CC: Alex Clarke <alexc...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-Comment-Date: Mon, 07 Aug 2017 23:26:38 +0000
        Gerrit-HasComments: No
        Gerrit-HasLabels: No

        Pavel Feldman (Gerrit)

        unread,
        Aug 7, 2017, 7:41:26 PM8/7/17
        to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, Sami Kyöstilä, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

        Browser's fine. I just saw that most of the methods receive DownloadItem* as a parameter and those that don't are either coming from DownloadItemImpl or from WebContentsImpl directly. I.e. WC context should be trivially accessible. I might have missed something though. We can have a per-context delegate provided that all methods receive DI or WC. Up to you though, for most automation scenarios browsercontext would suffice.

        View Change

          To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: master
          Gerrit-MessageType: comment
          Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
          Gerrit-Change-Number: 590913
          Gerrit-PatchSet: 10
          Gerrit-Owner: David Vallet <dva...@chromium.org>
          Gerrit-Reviewer: David Vallet <dva...@chromium.org>
          Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
          Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
          Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
          Gerrit-CC: Alex Clarke <alexc...@chromium.org>
          Gerrit-CC: Commit Bot <commi...@chromium.org>
          Gerrit-Comment-Date: Mon, 07 Aug 2017 23:41:16 +0000
          Gerrit-HasComments: No
          Gerrit-HasLabels: No

          David Vallet (Gerrit)

          unread,
          Aug 10, 2017, 3:09:20 AM8/10/17
          to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, dtraino...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, pfeldma...@chromium.org, John Abd-El-Malek, Pavel Feldman, Sami Kyöstilä, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

          PTAL this is an early version of a working devtools Page.setDownloadBehavior command

          Looking for early feedback (see TODO(dvallet)), thx!

          View Change

            To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

            Gerrit-Project: chromium/src
            Gerrit-Branch: master
            Gerrit-MessageType: comment
            Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
            Gerrit-Change-Number: 590913
            Gerrit-PatchSet: 11
            Gerrit-Owner: David Vallet <dva...@chromium.org>
            Gerrit-Reviewer: David Vallet <dva...@chromium.org>
            Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
            Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
            Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
            Gerrit-CC: Alex Clarke <alexc...@chromium.org>
            Gerrit-CC: Commit Bot <commi...@chromium.org>
            Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
            Gerrit-Comment-Date: Thu, 10 Aug 2017 07:09:12 +0000
            Gerrit-HasComments: No
            Gerrit-HasLabels: No

            David Vallet (Gerrit)

            unread,
            Aug 15, 2017, 2:43:53 AM8/15/17
            to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Peter Beverloo, John Abd-El-Malek, Pavel Feldman, Sami Kyöstilä, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

            PTAL

            I opted to have the new DevToolsDownloadManagerDelegate take a proxy manager delegate, for the following reasons:

            • It allows using the GetNextId() of the chrome_download_manager_delegate, otherwise it makes it incompatible when disabling the custom download behavior or restoring a user-data-dir
            • It allows gracefully falling back to the chrome_download_manager_delegate without having to add specific logic to recover it. This is doable, but it did add extra logic (e.g. taking into account how many page_handlers are enabled, keeping the previous instance)
            • It allows handling some cases in which a download will start *after* the page handler is disabled

            View Change

              To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

              Gerrit-Project: chromium/src
              Gerrit-Branch: master
              Gerrit-MessageType: comment
              Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
              Gerrit-Change-Number: 590913
              Gerrit-PatchSet: 14
              Gerrit-Owner: David Vallet <dva...@chromium.org>
              Gerrit-Reviewer: David Vallet <dva...@chromium.org>
              Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
              Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
              Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
              Gerrit-CC: Alex Clarke <alexc...@chromium.org>
              Gerrit-CC: Commit Bot <commi...@chromium.org>
              Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
              Gerrit-CC: Peter Beverloo <pe...@chromium.org>
              Gerrit-Comment-Date: Tue, 15 Aug 2017 06:43:39 +0000
              Gerrit-HasComments: No
              Gerrit-HasLabels: No

              Sami Kyöstilä (Gerrit)

              unread,
              Aug 15, 2017, 2:04:00 PM8/15/17
              to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Peter Beverloo, John Abd-El-Malek, Pavel Feldman, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

              View Change

              1 comment:

              To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

              Gerrit-Project: chromium/src
              Gerrit-Branch: master
              Gerrit-MessageType: comment
              Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
              Gerrit-Change-Number: 590913
              Gerrit-PatchSet: 14
              Gerrit-Owner: David Vallet <dva...@chromium.org>
              Gerrit-Reviewer: David Vallet <dva...@chromium.org>
              Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
              Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
              Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
              Gerrit-CC: Alex Clarke <alexc...@chromium.org>
              Gerrit-CC: Commit Bot <commi...@chromium.org>
              Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
              Gerrit-CC: Peter Beverloo <pe...@chromium.org>
              Gerrit-Comment-Date: Tue, 15 Aug 2017 18:03:49 +0000
              Gerrit-HasComments: Yes
              Gerrit-HasLabels: No

              David Vallet (Gerrit)

              unread,
              Aug 15, 2017, 9:30:27 PM8/15/17
              to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Pavel Feldman, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

              View Change

              1 comment:

              To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

              Gerrit-Project: chromium/src
              Gerrit-Branch: master
              Gerrit-MessageType: comment
              Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
              Gerrit-Change-Number: 590913
              Gerrit-PatchSet: 15
              Gerrit-Owner: David Vallet <dva...@chromium.org>
              Gerrit-Reviewer: David Vallet <dva...@chromium.org>
              Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
              Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
              Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
              Gerrit-CC: Alex Clarke <alexc...@chromium.org>
              Gerrit-CC: Commit Bot <commi...@chromium.org>
              Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
              Gerrit-CC: Peter Beverloo <pe...@chromium.org>
              Gerrit-Comment-Date: Wed, 16 Aug 2017 01:30:21 +0000
              Gerrit-HasComments: Yes
              Gerrit-HasLabels: No

              Sami Kyöstilä (Gerrit)

              unread,
              Aug 16, 2017, 7:03:50 AM8/16/17
              to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Peter Beverloo, John Abd-El-Malek, Pavel Feldman, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

              Thanks, non-owner lgtm.

              Patch set 18:Code-Review +1

              View Change

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 18
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Wed, 16 Aug 2017 11:03:46 +0000
                Gerrit-HasComments: No
                Gerrit-HasLabels: Yes

                Pavel Feldman (Gerrit)

                unread,
                Aug 16, 2017, 5:41:23 PM8/16/17
                to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                Great stuff, see the large comment that explains a small change that might make things simpler on your side...

                View Change

                16 comments:

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 18
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Wed, 16 Aug 2017 21:41:19 +0000
                Gerrit-HasComments: Yes
                Gerrit-HasLabels: No

                David Vallet (Gerrit)

                unread,
                Aug 17, 2017, 3:16:25 AM8/17/17
                to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                Thanks for the review!

                View Change

                18 comments:

                  • void TakeOver(content::DownloadManager* download_manager);

                    // DownloadManagerDelegate overrides


                  • void Shutdown() override;
                    bool DetermineDownloadTarget(
                    content::DownloadItem* download,
                    const content::DownloadTargetCallback& callback) override;
                    bool ShouldOpenDownload(
                    content::DownloadItem* item,
                    const content::DownloadOpenDelayedCallback& callback) override;
                    void GetNextId(const content::DownloadIdCallback& callback) override;

                  • style: "// DownloadManagerDelegate overrides" comment above the following ones, no empty lines betwe […]

                    Done

                  • void TakeOver(content::DownloadManager* download_manager);

                    // DownloadManagerDelegate overrides


                  • void Shutdown() override;
                    bool DetermineDownloadTarget(
                    content::DownloadItem* download,
                    const content::DownloadTargetCallback& callback) override;
                    bool ShouldOpenDownload(
                    content::DownloadItem* item,
                    const content::DownloadOpenDelayedCallback& callback) override;
                    void GetNextId(const content::DownloadIdCallback& callback) override;

                  • style: "// DownloadManagerDelegate overrides" comment above the following ones, no empty lines betwe […]

                    Done

                  • Patch Set #18, Line 52: friend struct base::DefaultSingletonTraits<DevToolsDownloadManagerDelegate>;

                  • We are not refcounted, stray?

                  • We are not refcounted, stray?

                  • Singleton should not have a weakptr factory.

                  • Singleton should not have a weakptr factory.

                  • Patch Set #18, Line 43: download_manager_ = download_manager;

                    For the consistency, you should restore the proxy delegate on the previous instance.

                  • Done

                  • Patch Set #18, Line 43: download_manager_ = download_manager;

                    For the consistency, you should restore the proxy delegate on the previous instance.

                  • Done

                  • Patch Set #18, Line 48: proxy_download_delegate_ = download_manager->GetDelegate();

                    So this is nullable, which means that it could be that in chrome embedder, devtools installs its del […]

                    For headless there's no embedded delegate, so in that case we do need to keep the logic in case proxy_delegate is not set.

                    Re SetDelegate: Wouldn't we need this to take over the manager when setting the DevtoolsDownloadManagerDelegate? afaik DownloadManagerImpl is only created once (per browser?) so getting it from the BrowserContext would not work.

                  • Patch Set #18, Line 70: return proxy_download_delegate_->DetermineDownloadTarget(item, callback);

                  • You'll be able to DCHECK(proxy_download_delegate_)

                  • The use cases are mainly for headless, where there is no delegate to substitute.

                  • Patch Set #18, Line 74: if (!download_helper ||

                    download_helper will then be here for sure, so this branch won't be needed

                  • Ditto here, this is the case for headless without setting DownloadBehavior, in that case we should deny by default. I've added a comment to make this more clear.

                  • You could expose GenerateDefaultFilename on the download_manager and reuse it between this and the s […]

                    Yeah there's a bit of copy/paste here which I'm not a fun of.
                    But I don't see a cleaner way of sharing the code though. I could have a virtual DetermineDefaultDownloadTarget added to download_manager but I think it would be strange to add it to the download_manager public interface, since it does look like something the delegate should do.

                  • Patch Set #18, Line 121: if (!DevToolsDownloadManagerHelper::FromWebContents(item->GetWebContents()) ||

                  • I would say it should be false in case you have the helper instance per this item.

                  • Patch Set #18, Line 627: { "name": "downloadPath", "type": "string", "optional": true, "description": "The default path to save downloaded files to." }

                  • Juts a side note, would be more hermetic if we could return it as a stream instead of writing to fil […]

                    Ack. I think it should be doable by extending the delegate to decide if it wants to receive the stream rather than saving to a file.

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 19
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Thu, 17 Aug 2017 07:16:18 +0000
                Gerrit-HasComments: Yes
                Gerrit-HasLabels: No

                Pavel Feldman (Gerrit)

                unread,
                Aug 17, 2017, 1:25:44 PM8/17/17
                to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                The code looks good. I think we could do better in terms of nullability of the default proxy. Let me try out a couple of things - I don't want to give suggestions that won't work. If I find nothing better, we can land as is. Sg?

                View Change

                9 comments:

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 19
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Thu, 17 Aug 2017 17:25:38 +0000
                Gerrit-HasComments: Yes
                Gerrit-HasLabels: No

                Pavel Feldman (Gerrit)

                unread,
                Aug 17, 2017, 2:57:41 PM8/17/17
                to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                View Change

                2 comments:

                • File content/browser/devtools/protocol/page_handler.cc:

                  • Patch Set #19, Line 648: void PageHandler::OverrideDownloadDelegate() {

                    Ok, so the only thing missing is going back from this state. We want PageHandler::Disable to delete all the helpers from the web contents and we'd also want devtools delegate to release control and redirect manager back to its original delegate.

                    The tricky bit is web contents vs browser, single devtools delegate is singleton, we would need to count clients.

                • File third_party/WebKit/Source/core/inspector/browser_protocol.json:

                  • Patch Set #19, Line 626: { "name": "behavior", "type": "string", "enum": ["deny", "allow"], "description": "Whether to allow all or deny all download requests." },

                    Let's add 'default' that would restore original browser behavior. It would not make sense to headless, but when running against real chrome, it would still make sense.

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 19
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Thu, 17 Aug 2017 18:57:37 +0000
                Gerrit-HasComments: Yes
                Gerrit-HasLabels: No

                David Vallet (Gerrit)

                unread,
                Aug 17, 2017, 11:20:06 PM8/17/17
                to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                SGTM, I'm happy to refine it until it feels right.

                View Change

                9 comments:

                  • You no longer need it, can be inlined into TakeOver.

                  • Done. Thinking about this a bit, I've made TakeOver the only way to create this instance, that way we ensure that its not possible to create and assign this delegate directly.

                  • Patch Set #19, Line 39: // DownloadManagerDelegate overrides.

                    Just started reviewing this, but it feels like there should be an opposite one that would release th […]

                    Yes, this makes sense if we decide to release control at Page.Disable(), see my comment in page_handler.cc

                  • Patch Set #19, Line 41: bool DetermineDownloadTarget(

                  • friendly style nit: "." in the end of the comment.

                  • yeah, inline or expose as a friend to a test.

                  • Let's make sure download path is always there in the helper?

                  • Sorry, I'm not sure what you mean by this. The default path can only be obtained from the BrowserContext, that's why this check is here.

                  • Do you know when this happens? I think we should not force anything in the automated mode. I.e. […]

                    DOne. You're right this is probably not something we want for automated. This is when a request info has a save file path attached, which I imagine is when is setup in the user profile.

                  • Patch Set #19, Line 123: if (download_helper &&

                  • This crashes when there is no helper attached.

                  • Oops, good catch!

                • File content/browser/devtools/protocol/page_handler.cc:

                  • Patch Set #19, Line 648: nullptr;

                    Ok, so the only thing missing is going back from this state. […]

                    I did try this and it worked up to a point. I found a couple of problem though:

                    • Sometimes Page.Disable() is called before the download initiates, so I thought it was best ensuring that if Helper data is associated we follow that setup. See code p[1] for an example
                    • Also, I founds sometimes Page.Disable() was not called as I expected (but maybe that was bad code on my part), again, to ensure that things are consistent I thing that relying on Helper data was better.

                    If you think this is correct behavior then is doable, the devtools delegate still needs to be aware of the GetNextID method of the proxied delegate though, since otherwise download ids are not in sync.

                    [1]

                    const CDP = require("chrome-remote-interface");

                    async function getDownload () {
                    const protocol = await CDP({port:9222});
                    try {
                    const {Page, Runtime} = protocol;
                    await Page.enable();
                    await protocol.send('Page.setDownloadBehavior', {behavior : "allow", downloadPath: "/tmp/download1"});
                    // await protocol.send('Page.bringToFront', {});
                    await Page.navigate({url:"http://ipv4.download.thinkbroadband.com/5MB.zip"});
                    } catch (err) {
                    console.error(err);
                    } finally {
                    protocol.close();
                    }
                    }

                    getDownload().catch((err) => console.error(err));

                • File third_party/WebKit/Source/core/inspector/browser_protocol.json:

                  • Patch Set #19, Line 626: { "name": "behavior", "type": "string", "enum": ["deny", "allow", "default"], "description": "Whether to allow all or deny all download requests, or use default Chrome behavior if available (otherwise deny)." },

                    Let's add 'default' that would restore original browser behavior. […]

                    Done

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 20
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Fri, 18 Aug 2017 03:19:59 +0000
                Gerrit-HasComments: Yes
                Gerrit-HasLabels: No

                Pavel Feldman (Gerrit)

                unread,
                Aug 18, 2017, 12:52:27 AM8/18/17
                to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                View Change

                2 comments:

                  • I did try this and it worked up to a point. I found a couple of problem though: […]

                    So in the snippet, await Page.navigate was processed before download started? I'd say this is intended behavior, Page.navigate is an atomic browser-level command, it never makes sense to await for it to be completed, one should rather wait for onload, network idle or download request as in your case.

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 20
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Fri, 18 Aug 2017 04:52:23 +0000
                Gerrit-HasComments: Yes
                Gerrit-HasLabels: No

                David Vallet (Gerrit)

                unread,
                Aug 18, 2017, 3:28:04 AM8/18/17
                to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                PTAL,
                I've added the logic to Reset the DownloadDelegate.

                View Change

                4 comments:

                  • I'm suggesting to make download_path a required field when behavior is set to auto-accept.

                  • So in the snippet, await Page. […]

                    I see, so a user should wait for a download to be finalized, in this case resetting in Disable should be doable

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 21
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Fri, 18 Aug 2017 07:27:55 +0000
                Gerrit-HasComments: Yes
                Gerrit-HasLabels: No

                Pavel Feldman (Gerrit)

                unread,
                Aug 18, 2017, 8:07:21 PM8/18/17
                to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                View Change

                5 comments:

                To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-MessageType: comment
                Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                Gerrit-Change-Number: 590913
                Gerrit-PatchSet: 22
                Gerrit-Owner: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                Gerrit-Comment-Date: Sat, 19 Aug 2017 00:07:18 +0000
                Gerrit-HasComments: Yes
                Gerrit-HasLabels: No

                David Vallet (Gerrit)

                unread,
                Aug 21, 2017, 3:33:23 AM8/21/17
                to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                Thx! PTAL

                View Change

                  To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                  Gerrit-Project: chromium/src
                  Gerrit-Branch: master
                  Gerrit-MessageType: comment
                  Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                  Gerrit-Change-Number: 590913
                  Gerrit-PatchSet: 24
                  Gerrit-Owner: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                  Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                  Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                  Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                  Gerrit-CC: Commit Bot <commi...@chromium.org>
                  Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                  Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                  Gerrit-Comment-Date: Mon, 21 Aug 2017 07:33:14 +0000
                  Gerrit-HasComments: No
                  Gerrit-HasLabels: No

                  Pavel Feldman (Gerrit)

                  unread,
                  Aug 21, 2017, 6:50:02 PM8/21/17
                  to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                  Get rid of the counter and this is good to go?

                  View Change

                  5 comments:

                  To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                  Gerrit-Project: chromium/src
                  Gerrit-Branch: master
                  Gerrit-MessageType: comment
                  Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                  Gerrit-Change-Number: 590913
                  Gerrit-PatchSet: 24
                  Gerrit-Owner: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                  Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                  Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                  Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                  Gerrit-CC: Commit Bot <commi...@chromium.org>
                  Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                  Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                  Gerrit-Comment-Date: Mon, 21 Aug 2017 22:49:58 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-HasLabels: No

                  David Vallet (Gerrit)

                  unread,
                  Aug 21, 2017, 10:59:35 PM8/21/17
                  to Sami Kyöstilä, Eric Seckler, Pavel Feldman, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Alex Clarke, devtools...@chromium.org, chromium...@chromium.org, John Abd-El-Malek, Commit Bot, Peter Beverloo

                  David Vallet uploaded patch set #26 to this change.

                  View Change

                  initial version of the headless download manager delegate

                  This cl implementes setDownloadBehavior devtools command, for both headles/non-headless


                  BUG=696481

                  Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                  ---
                  M content/browser/BUILD.gn
                  A content/browser/devtools/protocol/devtools_download_manager_delegate.cc
                  A content/browser/devtools/protocol/devtools_download_manager_delegate.h
                  A content/browser/devtools/protocol/devtools_download_manager_helper.cc
                  A content/browser/devtools/protocol/devtools_download_manager_helper.h
                  M content/browser/devtools/protocol/devtools_protocol_browsertest.cc
                  M content/browser/devtools/protocol/page_handler.cc
                  M content/browser/devtools/protocol/page_handler.h
                  M content/browser/devtools/protocol_config.json
                  M content/shell/browser/shell_download_manager_delegate.cc
                  M third_party/WebKit/Source/core/inspector/browser_protocol.json
                  M third_party/WebKit/Source/core/inspector/inspector_protocol_config.json
                  12 files changed, 922 insertions(+), 7 deletions(-)

                  To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                  Gerrit-Project: chromium/src
                  Gerrit-Branch: master
                  Gerrit-MessageType: newpatchset
                  Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                  Gerrit-Change-Number: 590913
                  Gerrit-PatchSet: 26
                  Gerrit-Owner: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                  Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                  Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                  Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                  Gerrit-CC: Commit Bot <commi...@chromium.org>

                  David Vallet (Gerrit)

                  unread,
                  Aug 21, 2017, 11:00:14 PM8/21/17
                  to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                  View Change

                  5 comments:

                    • style nit: i would assign this in the constructor.

                    • You should not need it any longer.

                    • Done

                    • download_manager_delegate_ = nullptr;

                      Done

                    • Patch Set #24, Line 632: content::BrowserContext* browser_context = web_contents->GetBrowserContext();

                    • Inline it and only override when behavior is not 'default'?

                    • You should not need to count any more, right?

                    • Done

                  To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                  Gerrit-Project: chromium/src
                  Gerrit-Branch: master
                  Gerrit-MessageType: comment
                  Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                  Gerrit-Change-Number: 590913
                  Gerrit-PatchSet: 26
                  Gerrit-Owner: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                  Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                  Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                  Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                  Gerrit-CC: Commit Bot <commi...@chromium.org>
                  Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                  Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                  Gerrit-Comment-Date: Tue, 22 Aug 2017 03:00:07 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-HasLabels: No

                  Pavel Feldman (Gerrit)

                  unread,
                  Aug 22, 2017, 12:01:20 AM8/22/17
                  to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                  lgtm % nits

                  Patch set 26:Code-Review +1

                  View Change

                  2 comments:

                  To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                  Gerrit-Project: chromium/src
                  Gerrit-Branch: master
                  Gerrit-MessageType: comment
                  Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                  Gerrit-Change-Number: 590913
                  Gerrit-PatchSet: 26
                  Gerrit-Owner: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                  Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                  Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                  Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                  Gerrit-CC: Commit Bot <commi...@chromium.org>
                  Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                  Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                  Gerrit-Comment-Date: Tue, 22 Aug 2017 04:01:17 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-HasLabels: Yes

                  David Vallet (Gerrit)

                  unread,
                  Aug 22, 2017, 3:23:28 AM8/22/17
                  to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                  View Change

                  2 comments:

                  To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                  Gerrit-Project: chromium/src
                  Gerrit-Branch: master
                  Gerrit-MessageType: comment
                  Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                  Gerrit-Change-Number: 590913
                  Gerrit-PatchSet: 27
                  Gerrit-Owner: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                  Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                  Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                  Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                  Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                  Gerrit-CC: Commit Bot <commi...@chromium.org>
                  Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                  Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                  Gerrit-Comment-Date: Tue, 22 Aug 2017 07:23:22 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-HasLabels: No

                  David Vallet (Gerrit)

                  unread,
                  Aug 22, 2017, 9:36:10 PM8/22/17
                  to apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, Commit Bot, chromium...@chromium.org, devtools...@chromium.org

                  Patch set 28:Commit-Queue +2

                  View Change

                    To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                    Gerrit-Project: chromium/src
                    Gerrit-Branch: master
                    Gerrit-MessageType: comment
                    Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                    Gerrit-Change-Number: 590913
                    Gerrit-PatchSet: 28
                    Gerrit-Owner: David Vallet <dva...@chromium.org>
                    Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                    Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                    Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                    Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                    Gerrit-CC: Commit Bot <commi...@chromium.org>
                    Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                    Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                    Gerrit-Comment-Date: Wed, 23 Aug 2017 01:36:05 +0000
                    Gerrit-HasComments: No
                    Gerrit-HasLabels: Yes

                    Commit Bot (Gerrit)

                    unread,
                    Aug 22, 2017, 9:36:23 PM8/22/17
                    to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, chromium...@chromium.org, devtools...@chromium.org

                    CQ is trying da patch.

                    Note: The patchset sent to CQ was uploaded after this CL was approved.
                    "Fixed some nitscomments" https://chromium-review.googlesource.com/c/590913/28

                    Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/chromium-review.googlesource.com/590913/28

                    Bot data: {"action": "start", "triggered_at": "2017-08-23T01:36:05.0Z", "cq_cfg_revision": "81f1a3f0cb07446abeff7dd01ff1b8bae94ffe0d", "revision": "513c35c4e09564576e47fed18f3add7015fdee0f"}

                    View Change

                      To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                      Gerrit-Project: chromium/src
                      Gerrit-Branch: master
                      Gerrit-MessageType: comment
                      Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                      Gerrit-Change-Number: 590913
                      Gerrit-PatchSet: 28
                      Gerrit-Owner: David Vallet <dva...@chromium.org>
                      Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                      Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                      Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                      Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                      Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                      Gerrit-CC: Commit Bot <commi...@chromium.org>
                      Gerrit-CC: John Abd-El-Malek <j...@chromium.org>
                      Gerrit-CC: Peter Beverloo <pe...@chromium.org>
                      Gerrit-Comment-Date: Wed, 23 Aug 2017 01:36:19 +0000
                      Gerrit-HasComments: No
                      Gerrit-HasLabels: No

                      Commit Bot (Gerrit)

                      unread,
                      Aug 22, 2017, 11:20:52 PM8/22/17
                      to David Vallet, apavlo...@chromium.org, blink-...@chromium.org, caseq...@chromium.org, dari...@chromium.org, jochen...@chromium.org, kozyatins...@chromium.org, lushnik...@chromium.org, mlamouri+wa...@chromium.org, pfeldma...@chromium.org, dtraino...@chromium.org, Pavel Feldman, Sami Kyöstilä, Peter Beverloo, John Abd-El-Malek, Eric Seckler, Alex Clarke, chromium...@chromium.org, devtools...@chromium.org

                      Commit Bot merged this change.

                      View Change

                      Approvals: Pavel Feldman: Looks good to me Sami Kyöstilä: Looks good to me Eric Seckler: Looks good to me David Vallet: Commit
                      initial version of the headless download manager delegate

                      This cl implementes setDownloadBehavior devtools command, for both headles/non-headless


                      BUG=696481

                      Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                      Reviewed-on: https://chromium-review.googlesource.com/590913
                      Commit-Queue: David Vallet <dva...@chromium.org>
                      Reviewed-by: Pavel Feldman <pfel...@chromium.org>
                      Reviewed-by: Sami Kyöstilä <skyo...@chromium.org>
                      Reviewed-by: Eric Seckler <esec...@chromium.org>
                      Cr-Commit-Position: refs/heads/master@{#496577}

                      ---
                      M content/browser/BUILD.gn
                      A content/browser/devtools/protocol/devtools_download_manager_delegate.cc
                      A content/browser/devtools/protocol/devtools_download_manager_delegate.h
                      A content/browser/devtools/protocol/devtools_download_manager_helper.cc
                      A content/browser/devtools/protocol/devtools_download_manager_helper.h
                      M content/browser/devtools/protocol/devtools_protocol_browsertest.cc
                      M content/browser/devtools/protocol/page_handler.cc
                      M content/browser/devtools/protocol/page_handler.h
                      M content/browser/devtools/protocol_config.json
                      M content/shell/browser/shell_download_manager_delegate.cc
                      M third_party/WebKit/Source/core/inspector/browser_protocol.json
                      M third_party/WebKit/Source/core/inspector/inspector_protocol_config.json
                      12 files changed, 920 insertions(+), 7 deletions(-)


                      To view, visit change 590913. To unsubscribe, or for help writing mail filters, visit settings.

                      Gerrit-Project: chromium/src
                      Gerrit-Branch: master
                      Gerrit-MessageType: merged
                      Gerrit-Change-Id: Ib4385e478e89219062241983a6ceb523bf476d09
                      Gerrit-Change-Number: 590913
                      Gerrit-PatchSet: 29
                      Gerrit-Owner: David Vallet <dva...@chromium.org>
                      Gerrit-Reviewer: Commit Bot <commi...@chromium.org>
                      Gerrit-Reviewer: David Vallet <dva...@chromium.org>
                      Gerrit-Reviewer: Eric Seckler <esec...@chromium.org>
                      Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                      Gerrit-Reviewer: Sami Kyöstilä <skyo...@chromium.org>
                      Gerrit-CC: Alex Clarke <alexc...@chromium.org>
                      Reply all
                      Reply to author
                      Forward
                      0 new messages