1. Oct 09, 2014
  2. Aug 21, 2014
  3. Aug 06, 2014
  4. Aug 04, 2014
    • Jocelyn Turcotte's avatar
      Don't inherit from Qt private types · 1c2a4da1
      Jocelyn Turcotte authored
      
      Do the d_ptr magic ourselves to avoid having to include private
      headers from qtcore, qtgui and qtdeclarative.
      
      It is hackish to hide QObject's d_ptr member to have the macros
      working in a public class, but if anything goes wrong we just
      need to replace the private macro convenience while maintaining
      the binary compatibility of the stored extra opaque pointer.
      
      Change-Id: Idb92f4f902826bef9068a5c2ef6ea31fc3fa15b2
      Reviewed-by: default avatarAndras Becsi <andras.becsi@digia.com>
      1c2a4da1
  5. Aug 01, 2014
    • Jocelyn Turcotte's avatar
      Fix tab focus in the widgets and QML webviews · 04f58ffc
      Jocelyn Turcotte authored
      
      Fixes:
      - Make sure that we call SetInitialFocus when giving focus through Tab
        This does the same as would WebContents::FocusThroughTabTraversal
      - Implement QWebEnginePagePrivate::passOnFocus
      - Set each new RWHVQtDelegate as the focus proxy of the QWebEngineView
      - Make sure that the widgets delegate accepts the tab focus policy
      
      Cleaups:
      - RenderWidgetHostViewQtDelegateQuick doesn't need to be a focus scope,
        it doesn't have any children
      - We don't need to reimplement QQuickWebEngineView::forceActiveFocus
        since the view is now a focus scope
      - Do not explicitly setFocus(true) on the QQuickWebEngineView,
        the application should decide this through the API
      
      Change-Id: I817dc2c895d4fff4aa3536c71ecc5d306bb3bee0
      Reviewed-by: default avatarAndras Becsi <andras.becsi@digia.com>
      04f58ffc
    • Szabolcs David's avatar
      Add loadVisuallyCommitted signal to the experimental Quick API · 27813457
      Szabolcs David authored
      
      This fixes the flaky QQuickWebEngineViewGraphics test and extends it
      with a new test case.
      
      Change-Id: I2d8a0762716cb9232fdea6473760e67ac2e7146d
      Reviewed-by: default avatarAndras Becsi <andras.becsi@digia.com>
      Reviewed-by: default avatarJocelyn Turcotte <jocelyn.turcotte@digia.com>
      27813457
  6. Jul 26, 2014
  7. May 12, 2014
  8. May 09, 2014
  9. May 08, 2014
  10. May 05, 2014
  11. Apr 15, 2014
    • Jocelyn Turcotte's avatar
      Fix how NewPopupDisposition is exposed in QQuickWebEngineView · 4d1d3302
      Jocelyn Turcotte authored
      
      I initially misintepreted the meaning of the enum, assuming that it
      meant that the window should possibly be blocked. The user_gesture
      parameter in WebContentsDelegate::AddNewContents is actually doing
      this, while the popup disposition means that JavaScript requested
      the window to be opened without one of the standard decoration (i.e.
      status bar, menu bar, tool bar, etc.).
      
      Update the QtQuick API to reflect this, renaming the "isPopup"
      parameter to a more familiar "isUserInitiated".
      
      The popup disposition is named "dialog" to match the previous
      QWebPage::WebModalDialog enum.
      
      Change-Id: Ib0c4bc53671fcf0dd9499aa1be2bbc8c494ba49e
      Reviewed-by: default avatarMichael Bruning <michael.bruning@digia.com>
      4d1d3302
  12. Apr 14, 2014
  13. Mar 13, 2014
    • Szabolcs David's avatar
      Fix focus in Quick API · c47bc798
      Szabolcs David authored
      
      The forceActiveFocus() doesn't work in the QML tests.
      
      We need to call forceActiveFocus() in RenderWidgetHostViewQtDelegateQuick
      instead of the one in WebEngineView. To make this work, I replaced RWHV
      with QQuickWebEngineView in the focus chain.
      
      This is necessary in order to extend tst_loadUrl QML test with
      urlProperty test case.
      
      Change-Id: Ifba0c824a7ce9f00d328110233402d3563f967aa
      Reviewed-by: default avatarZeno Albisser <zeno.albisser@digia.com>
      Reviewed-by: default avatarJocelyn Turcotte <jocelyn.turcotte@digia.com>
      c47bc798
  14. Feb 25, 2014
  15. Feb 18, 2014
  16. Feb 13, 2014
    • Jocelyn Turcotte's avatar
      QQuickWebEngineView new window API refactoring · b81a337a
      Jocelyn Turcotte authored
      
      Improve the code and API in a few ways:
      - Expose a more discoverable "request" argument in the signal.
      - Use the request as the carrier of the backend WebContentsAdapter
        and get rid of our handle.
      - Put the adoption method (renamed to openIn) on the request object
        and keep the view API clean of a context-specific adoptHandle method.
      - Use an enum instead of strings for the new view destination.
      - Do not let JavaScript own the request object since it won't be
        necessary until we want to support asynchronous view attachment.
        We can create the request object on the heap and let the JavaScript
        engine own the object once we want to support it.
      - Move the request class to its own header.
      - Replace tabs.currentView by currentWebView in the quicknanobrowser
        qml code since we now need this property on the root object anyway.
      
      Change-Id: I40d7d15255f516ead9f3e414dd587bf345e6ca4b
      Reviewed-by: default avatarSimon Hausmann <simon.hausmann@digia.com>
      b81a337a
  17. Feb 11, 2014
  18. Jan 31, 2014
    • Arvid Nilsson's avatar
      Quick: Support reparenting · a4b0e218
      Arvid Nilsson authored
      
      To support reparenting, we make the compositing surface independent of
      the window by using gfx::TEXTURE_TRANSPORT. We also need to be able to
      keep frame data across window changes so we can reconstruct the QSGNode
      tree in a new context, so extract that data into DelegatedFrameNodeData
      class. Any context-specific data is still stored in DelegatedFrameNode.
      
      Also hook up window changes to WebContents::WasShown/Hidden for Quick.
      Remove checking of Qt isVisible state, this mechanism is used to sync
      Chromium with Qt, not the other way around. WasShown/Hidden is
      orthogonal to Show/Hide, and can use different triggers. However for
      Widgets it probably makes sense to hook both up to widget visibility.
      
      Change-Id: I1ef4b50cd61b8e54b791e03f0b41929c42fec8bf
      Reviewed-by: default avatarJocelyn Turcotte <jocelyn.turcotte@digia.com>
      a4b0e218
  19. Jan 30, 2014
  20. Jan 15, 2014
  21. Nov 28, 2013
    • Jocelyn Turcotte's avatar
      Moving sources to src part 1: Move files. · fd61d752
      Jocelyn Turcotte authored
      This only move files without adjusting any paths.
      
      This moves:
      - lib/quick -> src/webengine/api (API files)
        lib/quick -> src/webengine (other files)
        This contains the main QtWebEngine module library since
        <ec7b2ee7
      
      >.
      - lib/widgets -> src/webenginewidgets
        Also rename this directory to match its module name and rename Api to api.
      - lib -> src/core
      - process -> src/process
      - resources -> src/core/resources
      - tools/* -> tools/scripts/
      
      The build directory is spread as follow:
      - build/build.pro -> src/core/gyp_run.pro
      - build/qmake_extras/* -> src/core/ (for the host and target .pro files)
      - build/qmake -> tools/qmake
      - Build related scripts -> tools/buildscripts
      
      Change-Id: I0cded1de772c99c0c1da6536c9afea353236b4a1
      Reviewed-by: default avatarZeno Albisser <zeno.albisser@digia.com>
      Reviewed-by: default avatarPierre Rossi <pierre.rossi@gmail.com>
      Reviewed-by: default avatarAndras Becsi <andras.becsi@digia.com>
      fd61d752
  22. Nov 18, 2013
  23. Oct 29, 2013
    • Chris Hutten-Czapski's avatar
      QtWebEngine Dev Tools (Web Inspector) · f21cb5bc
      Chris Hutten-Czapski authored
      
      To implement the Web Inspector we need a delegate to handle the http
      server and devtools connections, a landing page, a ContentClient to
      tell the devtools server where to find its frontend resources, those
      frontend resources, and an API for embedders to turn on inspectability
      in WebEngineViews.
      
      The frontend resources are build by the chromium build and are copied
      over as part of lib's build.
      
      The landing page was taken directly from content_shell. This
      should be replaced by either a new one for all QtWebEngine embedders or
      by a mechanism for embedders to supply their own (or both).
      
      Change-Id: Id4076d5ede34a91abf8dba443aed4dca4be1b3e5
      Reviewed-by: default avatarPierre Rossi <pierre.rossi@gmail.com>
      f21cb5bc
  24. Oct 04, 2013
    • Arvid Nilsson's avatar
      Add loadProgress API · f7842507
      Arvid Nilsson authored
      This exposes loadProgress in both widget and quick webengineviews.
      However, the progress will not change until we get an upstream change
      in Chromium where the content LoadProgressChanged API is exposed to all
      ports, not just Android. The upstream change is
      https://src.chromium.org/viewvc/chrome?revision=221010&view=revision
      
      
      
      Once we get that change, you'll see the widget example browser start to
      paint a blue progress rectangle in the background of the URL bar. Also,
      a progress bar was added to the quicknanobrowser, but it will be stuck
      at 0 for now.
      
      Change-Id: Icbaa01b86c013e0052b3abb7672c38e57128f44a
      Reviewed-by: default avatarZeno Albisser <zeno.albisser@digia.com>
      f7842507
  25. Oct 03, 2013
    • Arvid Nilsson's avatar
      Quick: Add Favicon API · ef6cb53a
      Arvid Nilsson authored
      
      Adds a favicon API modelled after the WebKit2 QQuickWebView API, but
      using an http(s) URL instead of a custom protocol, because there's no
      icondatabase yet.
      
      The icon URL lingers even when a new load is committed, until the load
      finishes. It might be more prudent to clear the icon when committing a
      new load, but I opted to let the app take care of that detail if
      desired. Many browsers show a spinner instead of the favicon while
      loading, for example.
      
      There's no widget API implementation for favicons yet, because that API
      only makes sense if we have a full-fledged icon database (case in
      point: QWebEngineSettings::iconForUrl()).
      
      Change-Id: I1e7b85104c80de2ae46a5fe9a273104d43a5c71f
      Reviewed-by: default avatarAndras Becsi <andras.becsi@digia.com>
      ef6cb53a
  26. Sep 17, 2013
  27. Aug 20, 2013
  28. Aug 19, 2013
  29. Jul 31, 2013
    • Pierre Rossi's avatar
      Split out the Widgets and QtQuick integration · 67d042d0
      Pierre Rossi authored
      
      This is the first step to making proper Qt Modules out of QtWebEngine.
      The Widgets integration becomes a proper C++ Qt Module while we make
      the QtQuick side a QML plugin for now (could probably be promoted if
      the need arises).
      
      Code-wise, this means the introduction of a WebContentsAdapterClient
      interface that is subclassed by the private implementation of our API
      classes for delegation of things that are UI specific. Functionality
      from WebContents and the like is exposed via the WebContentsAdapter.
      
      Change-Id: I4ca3395b9fe8502a24e36002cfd5af44067bb6e8
      Reviewed-by: default avatarJocelyn Turcotte <jocelyn.turcotte@digia.com>
      67d042d0
  30. Jun 19, 2013
  31. Jun 18, 2013
  32. Jun 11, 2013
    • Jocelyn Turcotte's avatar
      Get rid of BlinqApplication. · e67c21a0
      Jocelyn Turcotte authored
      Rename the class to WebEngineContext and keep it as a ref-counted member
      of pages instead. Also:
      - Change the user-agent product to QtWebEngine
      - Don't pass actual command line arguments to Chromium anymore
      - Allow attaching to the event loop through Before/AfterRun instead of blocking
      e67c21a0
  33. Jun 10, 2013
  34. Jun 06, 2013
    • Jocelyn Turcotte's avatar
      Properly implement a QWidget and QtQuick API · 5bf14ccc
      Jocelyn Turcotte authored
      This layers things properly to be able to implement the UI in the
      example application instead of directly in shell_qt.cpp.
      
      This is still using global variables to allow the Shell platform
      code to do callbacks to the API classes. This should go away once
      we properly implemented a WebContentsDelegate.
      5bf14ccc
  35. Jun 05, 2013
    • Zeno Albisser's avatar
      Implement support for QtQuick2. · db4b7526
      Zeno Albisser authored
      The current preliminary implementation uses the QQuickPaintedItem.
      
      The RasterWindow is being replaced by an abstract NativeViewQt
      class, which can be instantiated as QWidgetNativeView or QQuickNativeView.
      The NativeViewContainerQt builds a wrapper around an instance of these classes
      and serves as a common api towards chromium.
      
      Due to the current design where the view is being created by the shell,
      we introduce a browser_window.qml which provides a very basic browser UI.
      The content is then being injected into an item within that browser window.
      
      Just executing the example the "regular" way will launch the Widgets example.
      To launch the QtQuick2 example, the environment variable QQUICKWEBENGINE must
      be defined.
      db4b7526
  36. May 31, 2013