New issue
Advanced search Search tips

Issue 612312 link

Starred by 8 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Jan 15
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Task

Blocking:
issue 598069
issue 612285



Sign in to add a comment

Content Modularization Project: Push Messaging

Project Member Reported by jam@chromium.org, May 16 2016

Issue description

Tracking bug for the push messaging part of the Content Modularization Project.

-given that service worker moves to components/service_worker, move to push_messaging subdirectory in there
  -this entails removing existing dependencies on content, to support SWs eventually running in the profile process
 

Comment 1 by jam@chromium.org, May 17 2016

btw above is for the content/browser code. The code in content/renderer should move to blink per onion soup project.
Components: Blink>PushAPI

Comment 3 by peter@chromium.org, May 17 2016

Cc: -joh...@chromium.org
Owner: joh...@chromium.org
Status: Assigned (was: Available)
Tentatively to johnme@ since he'll be working on moving Push to Mojo soon. Please reach out if anybody else has plans to pick something up! :-)
Cc: -mvanouwe...@chromium.org

Comment 5 by ke...@intel.com, Dec 28 2016

Hi, Peter@, johnme@,
I'm interested. I plan to start from "converting push messaging messages into mojo interfaces". During the mojofication let's temporarily keep those related files in //content.
After mojofication, I'll start to decouple and move into blink.
Any comments? Thanks.

Comment 6 by peter@chromium.org, Jan 4 2017

Owner: ke...@intel.com
That's fantastic! Your plan sounds great, too. Thank you very much :)
Project Member

Comment 7 by bugdroid1@chromium.org, Feb 22 2017

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

commit 5f426e32c2b82c6ef89c15934907652cadb5c349
Author: ke.he <ke.he@intel.com>
Date: Wed Feb 22 12:37:12 2017

Convert push_messaging IPC msgs into mojo interfaces

In this patch, We added a push_messaging.mojom file and converted the old push
messaging IPC msgs into mojo interfaces. We also added the typemap and traits
files for those data structures used as parameters of IPC messages of
push_messaging.

We temporarily place the mojom and traits files alongside the original
push_messaging_messages.h. They will be moved into blink when the
push_messaging related {.h|cc} files are moved into blink in following steps.

BUG= 612312 

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

[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/browser/BUILD.gn
[rename] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/browser/push_messaging/push_messaging_manager.cc
[rename] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/browser/push_messaging/push_messaging_manager.h
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/child/BUILD.gn
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/child/blink_platform_impl.cc
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/child/blink_platform_impl.h
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/child/child_thread_impl.cc
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/child/child_thread_impl.h
[delete] https://crrev.com/d0698b2368b6e48592d9c0231f63055fff323364/content/child/push_messaging/push_dispatcher.cc
[delete] https://crrev.com/d0698b2368b6e48592d9c0231f63055fff323364/content/child/push_messaging/push_dispatcher.h
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/child/push_messaging/push_provider.cc
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/child/push_messaging/push_provider.h
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/common/BUILD.gn
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/common/content_message_generator.h
[add] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/common/push_messaging.mojom
[add] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/common/push_messaging.typemap
[delete] https://crrev.com/d0698b2368b6e48592d9c0231f63055fff323364/content/common/push_messaging_messages.h
[add] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/common/push_messaging_param_traits.cc
[add] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/common/push_messaging_param_traits.h
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/common/typemaps.gni
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/public/app/mojo/content_browser_manifest.json
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/public/browser/push_messaging_service.cc
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/public/common/BUILD.gn
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/renderer/BUILD.gn
[add] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/renderer/push_messaging/push_messaging_client.cc
[add] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/renderer/push_messaging/push_messaging_client.h
[delete] https://crrev.com/d0698b2368b6e48592d9c0231f63055fff323364/content/renderer/push_messaging/push_messaging_dispatcher.cc
[delete] https://crrev.com/d0698b2368b6e48592d9c0231f63055fff323364/content/renderer/push_messaging/push_messaging_dispatcher.h
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/5f426e32c2b82c6ef89c15934907652cadb5c349/content/renderer/render_frame_impl.h

Comment 8 by ke...@intel.com, May 19 2017

Status: Available (was: Assigned)

Comment 9 by jam@chromium.org, Jul 17 2017

I wanted to update this since over the last year we've gained a better understanding of what we want to do with servicification and web platform.

The code for push that runs outside of blink (i.e. currently in the browser process) should be extracted into a separate service. Likely this will be in src/blink/browser/push. It should be able to run on its own, with few dependencies (i.e. just network service, profile service). At that point, we can then run chrome in a minimal mode on desktop so that it can listen for push notifications without all the bloat of a full browser.

Comment 10 by peter@chromium.org, Jul 17 2017

There's a few different layers to this:

  - GCM Driver [1]. Listens for and receives messages from GCM on desktop. Depends on networking and preferences, but not on other parts of the profile.

  - Push Messaging browser code [2]. Maintains subscription metadata, dispatches incoming messages to their associated Service Worker. Depends on the world.

It seems to me like we'd want the GCM Driver to be the service, which only wakes up the push messaging browser code (and its dependencies) when necessary?

[1] //components/gcm_driver/
[2] //chrome/browser/push_messaging/ and //content/browser/push_messaging/
Peter, am I understanding correctly that GCM Driver also needs the information of the Google account that the user is using for sync (via //google_apis/gaia/{account_tracker, identity_provider, oauth2_token_service}.h?
Components: Blink>Internals>Modularization
Owner: ----
Components: Internals>Services
Labels: Type-Task
Appending component Internals>Services to S13N projects and changing the Type (for tracking sake) to Type=Task.
Project Member

Comment 14 by bugdroid1@chromium.org, Dec 20 2017

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

commit 738944e867221c97b71c3d89166366242072bf33
Author: Peter Beverloo <peter@chromium.org>
Date: Wed Dec 20 15:44:56 2017

Remove the custom permission infrastructure for Push Notifications

Instead use the Permission Service directly from Blink.

TBR=thakis for header *removal* from //chrome/browser/DEPS

Bug:  612312 
Change-Id: I88e7a2f8913bdd0e97521b11193ff0ccd96c6aad
Reviewed-on: https://chromium-review.googlesource.com/822936
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525334}
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/chrome/browser/DEPS
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/chrome/browser/push_messaging/push_messaging_service_impl.cc
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/chrome/browser/push_messaging/push_messaging_service_impl.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/chrome/browser/push_messaging/push_messaging_service_unittest.cc
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/browser/DEPS
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/browser/push_messaging/push_messaging_manager.cc
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/browser/push_messaging/push_messaging_manager.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/common/DEPS
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/common/push_messaging.mojom
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/common/push_messaging.typemap
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/common/push_messaging_param_traits.cc
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/common/push_messaging_param_traits.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/public/browser/push_messaging_service.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/renderer/push_messaging/push_messaging_client.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/renderer/push_messaging/push_provider.cc
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/renderer/push_messaging/push_provider.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/shell/browser/layout_test/layout_test_push_messaging_service.cc
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/content/shell/browser/layout_test/layout_test_push_messaging_service.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/get-subscription-in-document.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/permission-state-exception-in-service-worker.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/push-subscription-stringification.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/resources/instrumentation-service-worker.js
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/resources/test-helpers.js
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/subscribe-encryption-public-key.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/subscribe-failure-permission-default-in-service-worker.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/subscribe-failure-permission-denied-in-document.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/subscribe-failure-permission-denied-in-service-worker.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/subscribe-success-in-document.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/subscribe-success-in-service-worker.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/LayoutTests/http/tests/push_messaging/unsubscribe-in-document.html
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/Source/modules/push_messaging/BUILD.gn
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/Source/modules/push_messaging/DEPS
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp
[add] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/Source/modules/push_messaging/PushMessagingBridge.cpp
[add] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/Source/modules/push_messaging/PushMessagingBridge.h
[delete] https://crrev.com/f4121a01d35e1f48f178f0920882da43903a825a/third_party/WebKit/Source/modules/push_messaging/PushPermissionStatusCallbacks.cpp
[delete] https://crrev.com/f4121a01d35e1f48f178f0920882da43903a825a/third_party/WebKit/Source/modules/push_messaging/PushPermissionStatusCallbacks.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/public/BUILD.gn
[delete] https://crrev.com/f4121a01d35e1f48f178f0920882da43903a825a/third_party/WebKit/public/platform/modules/push_messaging/WebPushPermissionStatus.h
[modify] https://crrev.com/738944e867221c97b71c3d89166366242072bf33/third_party/WebKit/public/platform/modules/push_messaging/WebPushProvider.h

Project Member

Comment 15 by sheriffbot@chromium.org, Dec 20

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: haraken@chromium.org
Labels: Hotlist-CodeRefactoring
Status: Available (was: Untriaged)
We should finish onion-souping push_messaging/. It should be easy.

Complexity: Easy

Status: WontFix (was: Available)
Our thinking of what it means to modularize content has changed since this was filed. I don't see much benefit to move the browser side code of this outside of content at this point. Onion souping it is good though, but it should be tracked in a separate bug (this bug was for moving it out of content/browser).

Sign in to add a comment