Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for browser-side navigation (PlzNavigate) #2290

Closed
magreenblatt opened this issue Oct 26, 2017 · 12 comments
Closed

Add support for browser-side navigation (PlzNavigate) #2290

magreenblatt opened this issue Oct 26, 2017 · 12 comments
Labels
enhancement Enhancement request Framework Related to framework code or APIs

Comments

@magreenblatt
Copy link
Collaborator

Original report by me.


Chromium's effort to move all navigation-related callbacks into the browser process (called PlzNavigate) has now been enabled by default in Chromium master [1]. We need to add support for this run mode in CEF.

Related discussion is occuring in https://crbug.com/776884.

[1] https://groups.google.com/a/chromium.org/forum/?utm_medium=email&utm_source=footer#!msg/blink-dev/4SU8Vw63quY/RMGyAto5BAAJ

@magreenblatt
Copy link
Collaborator Author

Issue #1076 was marked as a duplicate of this issue.

@magreenblatt
Copy link
Collaborator Author

Issue #579 was marked as a duplicate of this issue.

@magreenblatt
Copy link
Collaborator Author

Other related complications:

  • Swapped out RenderFrameHosts can no longer be safely ignored (see https://crrev.com/27caae83).
  • IPC-related methods and callbacks need to move from browser (WebContentsObserver) level to frame (RenderFrameHost) level (see https://crrev.com/f4357cac).
  • RenderView will be removed in the renderer process. We need a different way to associate RenderFrames in the same frame tree (see https://crbug.com/776884#c19).

@magreenblatt
Copy link
Collaborator Author

  • Browser-side navigation is disabled by default in master revision 2733a56 (bb).
  • Resolve request mapping issues with swapped out frames and browser-side navigation in master revision 4787b45 (bb).

@magreenblatt
Copy link
Collaborator Author

The old navigation code path will be deleted from Chromium in mid-December: https://groups.google.com/a/chromium.org/forum/?utm_medium=email&utm_source=footer#!msg/embedder-dev/9m0nieB320U/QSW9KWOQBQAJ

@magreenblatt
Copy link
Collaborator Author

The CefRenderProcessHandler::OnBeforeNavigation method will be removed because it is no longer used with browser-side navigation.

@magreenblatt
Copy link
Collaborator Author

Fix bugs and test failures with browser-side navigation in master revision 69178d5 (bb) and 3239 branch revision ddfc3ed (bb).

@magreenblatt
Copy link
Collaborator Author

Original comment by Dave Simmons (Bitbucket: HarmlessDave, GitHub: HarmlessDave).


OnBeforeBrowse issue: request->GetPostData always returns null in our tests.

We used the POST data in the renderer OnBeforeNavigation to distinguish between different actions that use same server URL, and to extract other values.

In some cases we delay or block navigations so OnBeforeResourceLoad is not an ideal substitute.

Sample code to replicate in CEFClient: http://magpcss.org/ceforum/viewtopic.php?f=6&t=15750

If the Chromium docs say this event is working as intended, perhaps there is another pre-navigation event added by plzNavigate where the POST data does appear.

@magreenblatt
Copy link
Collaborator Author

Enable browser-side navigation by default and remove CefRenderHandler::OnBeforeNavigation in master revision de1bd28 (bb).

@magreenblatt
Copy link
Collaborator Author

Filed issue #2386 for @HarmlessDave 's comment above.

@magreenblatt
Copy link
Collaborator Author

Marking this issue as resolved because browser-side navigation is now enabled by default. Please find/file new issues for any additional problems or enhancements related to browser-side navigation.

@magreenblatt
Copy link
Collaborator Author

  • changed state from "new" to "resolved"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement request Framework Related to framework code or APIs
Projects
None yet
Development

No branches or pull requests

1 participant