Commit Graph

10 Commits

Author SHA1 Message Date
Marshall Greenblatt 241941a44a Move message routing from CefBrowser to CefFrame (see issue #2498).
This change moves the SendProcessMessage method from CefBrowser to CefFrame and
adds CefBrowser parameters to OnProcessMessageReceived and
OnDraggableRegionsChanged.

The internal implementation has changed as follows:
- Frame IDs are now a 64-bit combination of the 32-bit render_process_id and
  render_routing_id values that uniquely identify a RenderFrameHost (RFH).
- CefFrameHostImpl objects are now managed by CefBrowserInfo with life span tied
  to RFH expectations. Specifically, a CefFrameHostImpl object representing a
  sub-frame will be created when a RenderFrame is created in the renderer
  process and detached when the associated RenderFrame is deleted or the
  renderer process in which it runs has died.
- The CefFrameHostImpl object representing the main frame will always be valid
  but the underlying RFH (and associated frame ID) may change over time as a
  result of cross-origin navigations. Despite these changes calling LoadURL on
  the main frame object in the browser process will always navigate as expected.
- Speculative RFHs, which may be created as a result of a cross-origin
  navigation and discarded if that navigation is not committed, are now handled
  correctly (e.g. ignored in most cases until they're committed).
- It is less likely, but still possible, to receive a CefFrame object with an
  invalid frame ID (ID < 0). This can happen in cases where a RFH has not yet
  been created for a sub-frame. For example, when OnBeforeBrowse is called
  before initiating navigation in a previously nonexisting sub-frame.

To test: All tests pass with NetworkService enabled and disabled.
2019-05-29 17:44:56 +03:00
Marshall Greenblatt fb0133cd4b Fix NetworkService expectations for FrameTest.*Nav tests (see issue #2622). 2019-04-30 17:33:40 -04:00
Felix Bruns 4b33c17533 Add user_gesture parameter to OnBeforeBrowse (issue #1526) 2018-04-27 15:11:53 +00:00
John Mayhew e312a35ef3 Change CefFrame::GetName() to return assigned name if it is non-empty before returning unique name (issue #2403) 2018-03-28 17:30:15 +00:00
Marshall Greenblatt 57fb011377 Fix test flakyness in renderer process OnLoadingStateChange history state 2018-02-20 13:51:59 -05:00
Marshall Greenblatt c3f2c2e91c Fix style issues from commit de1bd28 2018-02-12 18:13:51 -05:00
Marshall Greenblatt de1bd286f8 Enable browser-side navigation by default and remove CefRenderHandler::OnBeforeNavigation (issue #2290) 2018-02-12 18:01:43 -05:00
Marshall Greenblatt 69178d519e Fix bugs and test failures with browser-side navigation (issue #2290) 2017-11-30 18:20:24 -05:00
Marshall Greenblatt 31d9407ee2 Apply clang-format to all C, C++ and ObjC files (issue #2171) 2017-05-18 12:30:05 +02:00
Marshall Greenblatt bd9a2c8069 Rename unittests to ceftests (issue #1632) 2016-11-18 12:44:46 -05:00