Commit Graph

589 Commits

Author SHA1 Message Date
Marshall Greenblatt
8fee8ed05d Add unittests target to the binary distribution (issue #1632)
- Move all tests from the top-level directory to tests/.
- Move files shared by cefclient and unittests to tests/shared/.
- Add a fused (single header/source file) version of gtest in
  tests/gtest/ with associated CMake configuration.
- Test-only headers are now exposed in include/test/. Unit test
  targets must define UNIT_TEST in order to access them.
- Replace usage of USING_CEF_SHARED with WRAPPING_CEF_SHARED for
  clarity (only the libcef_dll_wrapper target should define it).
- Remove the RENAME_DIRECTORY CMake macro which is no longer used.
- Remove C++11 usage from unittests sources for compatibility with
  the binary distribution configuration.
- Windows: Fix build errors due to chrome_elf.dll and imm32.lib
  missing from the CMake configuration.
2016-11-18 03:19:17 -05:00
Marshall Greenblatt
f557d325c1 Remove Chromium target dependencies for unit tests (issue #1632) 2016-11-16 12:51:44 -08:00
Marshall Greenblatt
ef6df50bf9 Remove Chromium includes in unit tests (issue #1632) 2016-11-15 18:22:34 -05:00
Marshall Greenblatt
0e65f027d2 Remove usage of ui::KeyboardCode in unit tests (issue #1632) 2016-11-15 17:50:33 -05:00
Marshall Greenblatt
832654689f Add CefWaitableEvent interface for unit tests (issue #1632) 2016-11-15 16:18:41 -05:00
Marshall Greenblatt
04642e0480 Add CefScopedTempDir and file utility functions for unit tests (issue #1632) 2016-11-15 13:47:44 -05:00
Marshall Greenblatt
a7195c0103 Remove usage of gfx in unit tests (issue #1632) 2016-11-14 13:47:31 -05:00
Marshall Greenblatt
9ed17519a9 Remove usage of base::StringPrintf in unit tests (issue #1632) 2016-11-14 13:28:05 -05:00
Marshall Greenblatt
03f3900d75 Remove usage of base::WrapUnique in unit tests (issue #1632) 2016-11-14 13:03:12 -05:00
Marshall Greenblatt
18d56feac0 Add CefThread interface (issue #1632) 2016-11-14 11:30:15 -05:00
Marshall Greenblatt
607d420baf Fix memory leak with IME on macOS (see http://crbug.com/654695) 2016-11-10 19:16:38 -05:00
Marshall Greenblatt
18763fde50 Add initial WebUI support (issue #2037)
- Visit chrome://webui-hosts for the list of supported hosts.
2016-11-08 16:56:11 -08:00
Marshall Greenblatt
cdd2a40469 Change index parameter type from int to size_t (issue #1491) 2016-11-04 15:26:35 -04:00
Marshall Greenblatt
f3a0ff98bb Add test for history navigation of pages containing dynamically created iframes (issue #2022) 2016-11-04 13:56:19 -04:00
Marshall Greenblatt
d6b17a8fb5 Standardize IME callbacks for off-screen rendering (issue #1675) 2016-11-03 21:02:36 -04:00
Marshall Greenblatt
ffab334e94 Fix translator error with X509CertificateList (issue #1824) 2016-10-27 15:46:58 -04:00
Marshall Greenblatt
29f7953677 Minor fixes for output consistency 2016-10-27 14:24:03 -04:00
Marshall Greenblatt
676cb1f07d Add callback for custom certificate selection (issue #1824) 2016-10-27 14:04:48 -04:00
Marshall Greenblatt
e006ec0ab5 Add V8 interceptor support (issue #1159) 2016-10-27 14:03:53 -04:00
Marshall Greenblatt
0e97c527ae Allow CefV8Context::Eval to bypass CSP (issue #2024) 2016-10-27 14:03:53 -04:00
Marshall Greenblatt
c9e81c082f Update to Chromium revision 614d31da (#423768)
- Fix PDF extension loading after showing the plugin placeholder (issue #2020)
2016-10-25 15:34:33 -04:00
Marshall Greenblatt
07d12b78e1 Update to Chromium revision 9cedf753 (#418732)
- Simplify usage of OnBeforePluginLoad (issue #2015)
- Switch crash reporting from crashpad to breakpad on Windows and OS X.
  Adds a new chrome_elf.dll dependency on Windows (issue #1995)
- Remove CefTextfield::GetPlaceholderTextColor() method which is no
  longer supported by Chromium.
2016-10-20 16:54:25 -04:00
Marshall Greenblatt
a1fc6f1ad0 Add CefRegisterWidevineCdm function and remove component updater support (issue #2009)
Mac: Check in widevinecdmadapter.plugin binary until Widevine GN build errors are resolved (https://crbug.com/626436).
2016-10-17 14:16:31 -04:00
Marshall Greenblatt
a312974ad9 Add CefDOMNode::GetElementBounds() method 2016-09-09 14:02:57 -04:00
Marshall Greenblatt
40558a0922 Mac: Set rpath instead of using install_name_tool from CMake (issue #1403) 2016-09-02 16:59:39 +03:00
Marshall Greenblatt
10c1fd6b8d Add API for SSL status and certificate retrieval (issue #1924) 2016-09-02 13:01:33 +03:00
Marshall Greenblatt
5068b50b48 Use DCHECK_IS_ON() instead of !NDEBUG for debug logic (issue #1961) 2016-09-01 14:24:30 +03:00
Marshall Greenblatt
9064e30296 Update to Chromium revision 1ae106db (#414607) 2016-09-01 11:52:50 +03:00
Marshall Greenblatt
b89329b0fa Use the same PDF plugin name as official Chrome 2016-08-24 16:38:51 +03:00
Marshall Greenblatt
3b5fb0d526 Add CefResponse parameter to CefRequestHandler::OnResourceRedirect 2016-08-24 16:19:57 +03:00
Marshall Greenblatt
69334e22c2 Add StoragePartition and extension object proxy support (issue #1973) 2016-08-24 15:41:53 +03:00
Marshall Greenblatt
1c06d8e3f5 cefclient: Allow dragging of fragments and show message when blocking URLs/files (issue #1976) 2016-08-19 13:59:50 +02:00
Marshall Greenblatt
2e1d960f3f Linux: Flush display after showing window (issue #1946) 2016-08-17 07:56:43 -07:00
Marshall Greenblatt
aa950f8bdb views: Restore hover state on menu buttons 2016-08-08 19:15:34 +03:00
Marshall Greenblatt
98f59f47fd Update to Chromium revision fc6aaca4 (#406441) 2016-07-26 13:28:54 -04:00
Marshall Greenblatt
188326bbc4 Pass transition type to CefLoadHandler::OnLoadStart (issue #1943) 2016-07-12 12:00:51 -04:00
Marshall Greenblatt
c8681ea3e8 Mac: Remove duplicate focus change notification 2016-07-11 17:11:42 -04:00
Marshall Greenblatt
a22b11d764 Fix crash in CefResourceDispatcherHostDelegate::HandleExternalProtocol when destroying a browser during redirect (issue #1941) 2016-07-08 15:28:53 -04:00
Marshall Greenblatt
a60bb077a3 Update to Chromium revision 68623971 (#403382) 2016-07-07 16:24:12 -04:00
Marshall Greenblatt
05ee60b7b4 Update to Chromium revision 318e6f54 (#400326) 2016-06-21 12:41:21 -04:00
Marshall Greenblatt
f5b910326d Improve binary distribution CMake macros (issue #1923) 2016-06-14 18:29:34 -04:00
Marshall Greenblatt
18d882b5d2 cefclient: Don't create multiple DevTools windows (issue #1920) 2016-06-10 14:33:07 -04:00
Marshall Greenblatt
acdb4bb564 Mac: Fix window sharing type (issue #1884) 2016-06-09 14:48:59 -04:00
Marshall Greenblatt
ab2636b012 Update to Chromium revision 2b3ae3b8 (#394939) 2016-05-25 08:10:01 -07:00
Marshall Greenblatt
575c968a55 Modernize binary distribution CMake configuration (issue #1897)
- Load CEF configuration using `find_package(CEF)`.
- Use per-target configuration via a new SET_EXECUTABLE_TARGET_PROPERTIES
  macro instead of setting global CMAKE_* variables.
- Support building projects more easily with an external binary
  distribution directory.
- Improve related documentation.
2016-05-12 18:10:31 -04:00
Marshall Greenblatt
958618359c Add error code to CefResponse (issue #1845) 2016-05-11 15:36:15 -04:00
Marshall Greenblatt
157f526d07 Fix Win 64-bit conversion from 'size_t' to 'int' error (issue #1887) 2016-05-09 12:04:06 -07:00
Marshall Greenblatt
1ff26aa02a Improve support for a host owned message pump (issue #1805)
- Add new CefSettings.external_message_pump option and
  CefBrowserProcessHandler::OnScheduleMessagePumpWork() callback.
- Improve documentation related to CefDoMessageLoopWork().
- Pass `--external-message-pump` command-line flag to cefclient or
  cef_unittests to test the new mode.
2016-05-04 18:35:49 -04:00
Marshall Greenblatt
e690fa444c Update platform and build requirements.
- Mac: Require 10.7+ deployment target and 10.9+ system version
  (see https://codereview.chromium.org/1615823003/).
- Windows: Changes references from VS2013 to VS2015.
2016-04-29 13:16:28 -04:00
Marshall Greenblatt
e7ddc933c9 Update to Chromium revision 6e53600d (#386251)
- Remove |accept_lang| parameter from CefJSDialogHandler::OnJSDialog
  and CefFormatUrlForSecurityDisplay (see https://crbug.com/336973#c36).
- Remove remaining NPAPI-related code including functions from
  cef_web_plugin.h (see https://crbug.com/493212#c55).
- Mac: 10.7+ deployment target is now required for client applications.
- Mac: Remove CefBrowserHost::SetWindowVisibility (issue #1375). No
  replacement is required for windowed rendering. Use WasHidden for
  off-screen rendering.
- Windows: Visual Studio 2015 Update 2 is now required when building
  CEF/Chromium.
2016-04-28 12:57:08 -04:00
Marshall Greenblatt
06e73fff15 Implement Views framework on Windows and Linux (issue #1749).
- Add Views header files in a new include/views directory.
- Add initial top-level window (CefWindow), control (CefBrowserView,
  CefLabelButton, CefMenuButton, CefPanel, CefScrollView,
  CefTextfield) and layout (CefBoxLayout, CefFlowLayout) support.
  See libcef/browser/views/view_impl.h comments for implementation
  details.
- Add Views example usage in cefclient and cefsimple and Views unit
  tests in cef_unittests. Pass the `--use-views` command-line flag to
  cefclient, cefsimple and cef_unittests to run using the Views
  framework instead of platform APIs. For cefclient and cefsimple
  this will create the browser window and all related functionality
  using the Views framework. For cef_unittests this will run all
  tests (except OSR tests) in a Views-based browser window. Views-
  specific unit tests (`--gtest_filter=Views*`) will be run even if
  the the `--use-views` flag is not specified.
- Pass the `--hide-frame` command-line flag to cefclient to demo a
  frameless Views-based browser window.
- Pass the `--hide-controls` command-line flag to cefclient to demo a
  browser window without top controls. This also works in non-Views
  mode.
- Pass the `--enable-high-dpi-support` command-line flag to
  cef_unittests on Windows to test high-DPI support on a display
  that supports it.
- Add CefImage for reading/writing image file formats.
- Add CefBrowser::DownloadImage() for downloading image URLs as a
  CefImage representation. This is primarily for loading favicons.
- Add CefMenuModel::CreateMenuModel() and CefMenuModelDelegate for
  creating custom menus. This is primarily for use with
  CefMenuButton.
- Add CefBrowser::TryCloseBrowser() helper for closing a browser.
  Also improve related documentation in cef_life_span_handler.h.
- Rename cef_page_range_t to cef_range_t. It is now also used by
  CefTextfield.
- Remove CefLifeSpanHandler::RunModal() which is never called.
- Add draggable regions example to cefclient.
2016-04-26 11:58:13 -04:00
Marshall Greenblatt
243a9c26d7 Update to Chromium revision 0bfd25d4 (#381305)
- Delete include/cef_runnable.h (issue #1336).
- Build the cef_unittests target using all Chromium headers. Add a
  USING_CHROMIUM_INCLUDES define and libcef_dll_wrapper_unittests
  target to support this. This change avoids compile errors due to
  the divergence of CEF and Chromium base/ header implementations.
  The libcef_dll_wrapper sources must now compile successfully with
  both CEF and Chromium base/ headers (issue #1632).
- The onbeforeunload message specified via JavaScript is no longer
  passed to the client (see http://crbug.com/587940).
2016-03-17 13:01:21 -04:00
Marshall Greenblatt
e1aa8cc109 Fix duplicate entries in CefRequest header map (issue #1840) 2016-03-01 19:11:08 -05:00
Marshall Greenblatt
a1d9c22b58 Add DNS resolution methods to CefRequestContext (issue #1841) 2016-02-23 18:37:35 -05:00
Marshall Greenblatt
fabd3db33e Allow clients to clear certificate exceptions and close connections (issue #1793) 2016-02-23 14:32:07 -05:00
Marshall Greenblatt
e601e76445 Continue OnDownloadUpdated notifications after navigation (issue #1833) 2016-02-16 13:48:52 -05:00
Marshall Greenblatt
f7aa98fe69 Update to Chromium revision 088f14a0 (#373530)
- Building on Windows now requires the Windows 10.0.10586 SDK.
- Remove CefParseCSSColor which was implemented using Blink code in the
  browser process. This is longer advisable now that the Oilpan GC is enabled.
- Avoid potential renderer process crashes by disabling script actions
  on the CefV8Context passed to CefRenderProcessHandler::OnContextReleased.
2016-02-08 13:16:11 -05:00
Marshall Greenblatt
63d313de76 Persist visited link status (issue #287) 2016-01-13 15:38:50 -05:00
Marshall Greenblatt
d2372c3d11 Update to Chromium revision d7d5682a (#367535) 2016-01-07 11:53:39 -08:00
Marshall Greenblatt
12f19e3a33 Expose additional SSL certificate information.
- Provide access to the full certificate issuer chain (issue #1530)
- Add several missing certificate error codes to cef_errorcode_t (issue #1784)
- Provide the full certificate status bitmask (issue #1790)
2015-12-18 14:05:42 -05:00
Marshall Greenblatt
5dec0c5f57 Update to Chromium revision c78c0ad7 (#363565) 2015-12-10 12:45:26 -05:00
Marshall Greenblatt
f207a555a3 Add support for response filtering (issue #515).
- Add a new CefRequestHandler::GetResourceResponseFilter method and
  CefResponseFilter class.
2015-12-08 13:47:52 -05:00
Marshall Greenblatt
864db71f6b Mac: Fix Xcode 7 (10.11 SDK) build errors (issue #1732) 2015-12-08 12:59:42 -05:00
Marshall Greenblatt
626fc561ca Add new CefRequestHandler::OnResourceLoadComplete callback (issue #1781) 2015-12-04 13:59:14 -05:00
Marshall Greenblatt
bd6e656747 cefsimple: Only instantiate SimpleApp in the browser process (issue #1776) 2015-12-03 17:27:32 -05:00
Marshall Greenblatt
b4a159a1da Add CommandLineTest.IgnorePrefixes unit test to verify prefix removal behavior (issue #1778) 2015-12-03 17:13:23 -05:00
Marshall Greenblatt
06e1a34850 Consider scale factor changes to OSR browsers when switching monitors (issue #1774) 2015-12-03 15:24:41 -05:00
Marshall Greenblatt
9bc8da1e02 - Add CefPostData::HasExcludedElements which returns true if the underlying
POST data includes elements that are not represented (issue #1761).
- Add CefRequest::SetReferrer and CefRequest::GetReferrer[URL|Policy]. The
  Referer value will no longer be stored in the header map.
- Move request-related conversion logic to CefRequestImpl and standardize the
  implementation.
2015-12-02 17:23:16 -05:00
Marshall Greenblatt
6cccc3b8a7 - Factor platform-specific code out of CefBrowserHostImpl (issue #1749).
- Introduce native/ and osr/ folders for native (non-platform-agnostic) and
    osr (windowless) code respectively.
  - Introduce CefBrowserPlatformDelegate for abstracting platform-specific
    implementations of browser host functionality.
  - Move dialog and menu code to separate manager and platform-specific runner
    implementations exposed via CefBrowserPlatformDelegate.
  - Standardize focus-handling behavior between windowed and windowless
    implementations. CefFocusHandler::OnSetFocus() will now also be called for
    osr focus changes.
- Support multiple simultaneous popups (issue #1289).
2015-11-25 20:19:36 -05:00
Marshall Greenblatt
c6111d5947 Update to Chromium revision 304f01a1 (#358063)
- Improve ordering of CefLoadHandler callbacks. OnLoadingStateChange will
  be called before and after all calls to OnLoadStart and OnLoadEnd.
  OnLoadStart/OnLoadEnd calls will occur as matching pairs
  (see http://crbug.com/539952#c2).
- Remove the |requesting_url| argument to CefGeolocationHandler::
  OnCancelGeolocationPermission. Clients can use the |request_id| argument
  to track this information themselves.
- Fix a crash when loading the PDF extension in multiple browsers with a
  custom CefRequestContext (issue #1757).
2015-11-11 18:24:00 -05:00
Marshall Greenblatt
b731133713 Windows: cefclient: Size browser window correctly when RootWindow is initially shown as maximized (issue #1745) 2015-10-23 15:06:02 -04:00
Marshall Greenblatt
211c81cb14 CTRL + left click on a link in a PDF document should call OnOpenURLFromTab (issue #1737) 2015-10-21 17:06:53 -04:00
Marshall Greenblatt
936e595fe5 - Support runtime configuration of renderer-related preferences (issue #1501).
- Persist modified user preferences including per-host zoom settings when a
  cache_path value is specified and persist_user_preferences is set to true
  via CefSettings or CefRequestContextSettings.
- Avoid the need to duplicate files from chrome/ by having CefBrowserContext
  extend Chrome's Profile class.
2015-10-20 11:12:21 -04:00
Marshall Greenblatt
5033a27e58 Fix navigation from inside PDF files (issue #1737) 2015-10-14 15:27:05 -04:00
Marshall Greenblatt
efbc200b51 Linux: Fix focus/activation handling and keyboard input (issue #1679). 2015-10-14 09:46:42 -07:00
Marshall Greenblatt
fdf3088470 Linux: Fix BadWindow error when creating popup windows (issue #1717). 2015-10-14 09:46:02 -07:00
Marshall Greenblatt
16f8a66040 - Fix use-after-return in ReleaseAndWaitForDestructor if it times out
while running unit tests.
- Increase PluginTest PDF load timeout.
2015-10-14 09:42:44 -07:00
Marshall Greenblatt
3f4687a4cd Fix parsing of CefResourceManager::Request::url() when both query
and fragment components are present (issue #1733)
2015-10-13 16:51:52 -04:00
Marshall Greenblatt
1f21fe5412 Add CefPrintHandler::OnPrintStart callback (issue #1736) 2015-10-13 14:04:02 -04:00
Marshall Greenblatt
8aac23386e Update to Chromium revision cb947c01 (#352221)
- Implement CefRequestHandler::OnBeforeBrowse using NavigationThrottle
  instead of ResourceThrottle (see http://crbug.com/537634). The CefRequest
  object passed to OnBeforeBrowse will no longer have an associated request
  identifier.
- Mac: Remove additional helper apps which are no longer required (see
  http://crbug.com/520680)
- Remove the UR_FLAG_REPORT_RAW_HEADERS flag which is no longer supported (see
  http://crbug.com/517114)
- Remove the CefBrowserSettings.java parameter. Java is an NPAPI plugin and
  NPAPI plugins are no longer supported (see http://crbug.com/470301#c11)
- Add CefFormatUrlForSecurityDisplay function in cef_parser.h
- Fix crash when passing `--disable-extensions` command-line flag (issue #1721)
- Linux: Fix NSS handler loading (issue #1727)
2015-10-09 17:31:27 -04:00
Marshall Greenblatt
5780ea8baa Support configuration of preferences during runtime (issue #1709)
- Preferences are now associated with a CefRequestContext instead of
  being stored globally.
- Add methods to CefRequestContext for getting/setting preferences.
2015-10-06 18:14:11 -04:00
Marshall Greenblatt
2328b9be39 cefclient: Remove accidental change disabling plugin load (issue #1708) 2015-10-01 11:29:33 -04:00
Marshall Greenblatt
4149192d81 Call OnBeforePluginLoad when building the plugin list (issue #1708) 2015-09-30 18:09:28 -04:00
Marshall Greenblatt
dc3aae19e8 Add plugin placeholder and policy support (issue #1708)
- Default plugin loading policy can be specified using the new
  `--plugin-policy=[allow|block|detect]` command-line flag.
- Move CefRequestHandler::OnBeforePluginLoad to
  CefRequestContextHandler and add a new policy argument that
  supports different actions (allow, block, detect, disable) on a
  per-plugin-instance basis.
- Add CefContextMenuHandler::RunContextMenu for providing a custom
  context menu implementation.
- Add CefResourceBundleHandler::GetDataResourceForScale for
  returning scaled resources (issue #1272).
- Add CefResourceBundle for retrieving resources from the resource
  bundle (*.pak) files loaded by CEF during startup or via the
  CefResourceBundleHandler.
- Linux: Fix Debug build IO access warning with CefGetMimeType.
- cef_unittests: Move the refcounting implementation from TestHandler
  to subclasses in order to support interface inheritance from
  subclasses.
2015-09-22 12:28:46 +03:00
Marshall Greenblatt
c2086cf7c7 Mac: Fix 10.10 SDK compile and test errors (issue #1414) 2015-08-26 16:39:09 -04:00
Marshall Greenblatt
aa72f402ba Always save cookies for http, https, ws and wss schemes (issue #1684) 2015-08-21 16:38:19 -04:00
Marshall Greenblatt
e6e123d503 Windows: Fix warning C4267: 'argument' : conversion from 'size_t' to 'int' (issue #1695) 2015-08-21 13:55:13 -04:00
Marshall Greenblatt
fda35eae80 Windows: Fix VS2015 build errors in the binary distribution (issue #1692) 2015-08-20 10:22:12 -04:00
Marshall Greenblatt
aef9fd486a cefclient: Set recommended command-line switches for off-screen rendering 2015-08-17 18:14:59 -04:00
Marshall Greenblatt
a08686e6a6 cefclient: Support dynamic configuration of the device scale factor with off-screen rendering (issue #1674) 2015-08-11 14:19:16 -04:00
Marshall Greenblatt
41669141eb Windows: cefclient: Improve high-dpi display (issue #1674).
- Add high-dpi support to the OSR example.
- Apply DPI scaling to the buttons and URL bar.
2015-08-10 14:08:15 -04:00
Marshall Greenblatt
9e0d84d94a Windows: Add CefEnableHighDPISupport function and fix high-dpi scaling issues (issue #1674) 2015-08-07 16:04:03 -04:00
Marshall Greenblatt
8da8a4fbf1 Update to Chromium revision 12bfc336 (#338390).
- The ffmpeg library is now statically linked (see https://codereview.chromium.org/1141703002).
- Off-screen rendering of the PDF viewer does not work in combination with surfaces. Pass the
  `--disable-surfaces` command-line flag if GPU is enabled (see https://codereview.chromium.org/1169983006).
2015-07-24 16:11:13 -04:00
Marshall Greenblatt
50a9343cec Fix warning C4267: 'argument' : conversion from 'size_t' to 'int' (issue #1647) 2015-07-23 14:29:54 -04:00
Marshall Greenblatt
b7a56d9343 Add PDF extension support (issue #1565) 2015-07-23 14:02:03 -04:00
Marshall Greenblatt
378a64b39a Update to Chromium revision 14bd12d6 (#333041)
- Remove CefNavigationEntry::GetFrameName() (see http://crbug.com/477150#c5).
- Devirtualize base::BindState (see http://crbug.com/486594).
- Move Tuple to the base namespace.
2015-06-08 17:31:50 -04:00
Marshall Greenblatt
d820080479 Add fullscreen API support (issue #562) 2015-06-04 18:33:24 -04:00
Alexei Bykov
85f83680d7 Add PDF printing support (issue #1478). 2015-06-04 13:15:26 -04:00
Marshall Greenblatt
b6e5310bce Add CefResourceManager class for mapping requests to data providers (issue #1640). 2015-06-03 15:21:40 -04:00
Yu-Teh Shen
d02f03a71a Add JSON parsing support (issue #1188). 2015-06-03 15:03:41 -04:00