Commit graph

223 commits

Author SHA1 Message Date
Patrick Reynolds
3b3d6b2938 current libchromiumcontent 2013-11-13 23:48:06 -06:00
Patrick Reynolds
cbb00f77c2 current libchromiumcontent 2013-11-13 23:22:50 -06:00
Patrick Reynolds
616cb8212d current libchromiumcontent 2013-11-13 22:17:02 -06:00
Patrick Reynolds
236e993ac5 use linux branch of libchromiumcontent 2013-11-13 01:45:08 -06:00
Patrick Reynolds
e6cdeead3e link libencryptor 2013-11-13 00:42:14 -06:00
Patrick Reynolds
5e7359bc5a don't build Linux sources on other platforms 2013-11-12 11:51:25 -06:00
Patrick Reynolds
80cdf77a77 use merged master of libchromiumcontent 2013-11-12 11:43:29 -06:00
Patrick Reynolds
f6784a1801 move gtk dependency to brightray 2013-11-12 10:19:42 -06:00
Patrick Reynolds
72b41ed31b pick up chrome_sandbox changes 2013-11-11 18:15:22 -06:00
Patrick Reynolds
7ebb19b9b1 use linux branch of libchromiumcontent 2013-11-11 16:34:27 -06:00
Patrick Reynolds
90db457258 move -fno-rtti into brightray.gypi target_defaults 2013-11-09 01:03:46 -06:00
Patrick Reynolds
6053911bd2 Merge branch 'master' into linux 2013-11-08 20:53:43 -06:00
Patrick Reynolds
c6ce51863a implement GetNativeView 2013-11-07 23:42:15 -06:00
Patrick Reynolds
90e619a6d9 fix typo 2013-11-07 17:25:51 -06:00
Patrick Reynolds
04b9bd21f8 WIP: builds (but displys nothing) on Linux 2013-11-07 14:02:35 -06:00
Adam Roben
ae1e26bddd Fix a hang on quit when application cache is used
If you navigated to a page that used the HTML Application Cache, you'd see a
hang on quit with a backtrace like so:

+     2825 content::ContentMain(int, char const**, content::ContentMainDelegate*)  (in libchromiumcontent.dylib) + 64  [0xb33190]
+       2825 ???  (in libchromiumcontent.dylib)  load address 0x1c9000 + 0x96b261  [0xb34261]
+         2825 ???  (in libchromiumcontent.dylib)  load address 0x1c9000 + 0x96a409  [0xb33409]
+           2825 content::BrowserMain(content::MainFunctionParams const&)  (in libchromiumcontent.dylib) + 200  [0x14290b8]
+             2825 ???  (in libchromiumcontent.dylib)  load address 0x1c9000 + 0x1265426  [0x142e426]
+               2825 content::BrowserMainLoop::~BrowserMainLoop()  (in libchromiumcontent.dylib) + 17  [0x14294a1]
+                 2825 content::BrowserMainLoop::~BrowserMainLoop()  (in libchromiumcontent.dylib) + 357  [0x1429625]
+                     2825 brightray::BrowserMainParts::~BrowserMainParts()  (in ) + 70  [0x68df6]
+                       2825 scoped_ptr<brightray::BrowserContext, base::DefaultDeleter<brightray::BrowserContext> >::~scoped_ptr()  (in ) + 23  [0x68ff7]
+                         2825 scoped_ptr<brightray::BrowserContext, base::DefaultDeleter<brightray::BrowserContext> >::~scoped_ptr()  (in ) + 23  [0x69297]
+                           2825 base::internal::scoped_ptr_impl<brightray::BrowserContext, base::DefaultDeleter<brightray::BrowserContext> >::~scoped_ptr_impl()  (in ) + 23  [0x692b7]
+                             2825 base::internal::scoped_ptr_impl<brightray::BrowserContext, base::DefaultDeleter<brightray::BrowserContext> >::~scoped_ptr_impl()  (in ) + 50  [0x692f2]
+                               2825 base::DefaultDeleter<brightray::BrowserContext>::operator()(brightray::BrowserContext*) const  (in ) + 46  [0x6916e]
+                                   2825 brightray::BrowserContext::~BrowserContext()  (in ) + 127  [0x672bf]
+                                     2825 base::SupportsUserData::~SupportsUserData()  (in libchromiumcontent.dylib) + 57  [0xccc019]
+                                       2825 ???  (in libchromiumcontent.dylib)  load address 0x1c9000 + 0xb03230  [0xccc230]
+                                         2825 ???  (in libchromiumcontent.dylib)  load address 0x1c9000 + 0xb0324e  [0xccc24e]
+                                           2825 ???  (in libchromiumcontent.dylib)  load address 0x1c9000 + 0x14c4239  [0x168d239]
+                                             2825 content::StoragePartitionImpl::~StoragePartitionImpl()  (in libchromiumcontent.dylib) + 17  [0x16899a1]
+                                               2825 content::StoragePartitionImpl::~StoragePartitionImpl()  (in libchromiumcontent.dylib) + 491  [0x1689bab]
+                                                 2825 content::ChromeAppCacheService::DeleteOnCorrectThread() const  (in libchromiumcontent.dylib) + 66  [0x1424f32]
+                                                   2825 content::ChromeAppCacheService::~ChromeAppCacheService()  (in libchromiumcontent.dylib) + 50  [0x1424e32]
+                                                     2825 appcache::AppCacheService::~AppCacheService()  (in libchromiumcontent.dylib) + 301  [0x2b8ad2d]
+                                                       2825 ???  (in libchromiumcontent.dylib)  load address 0x1c9000 + 0x29c9b81  [0x2b92b81]
+                                                         2825 ???  (in libchromiumcontent.dylib)  load address 0x1c9000 + 0x29c9da4  [0x2b92da4]
+                                                           2825 appcache::AppCacheDiskCache::~AppCacheDiskCache()  (in libchromiumcontent.dylib) + 17  [0x2b78c71]
+                                                             2825 appcache::AppCacheDiskCache::~AppCacheDiskCache()  (in libchromiumcontent.dylib) + 135  [0x2b78d17]
+                                                               2825 disk_cache::BackendImpl::~BackendImpl()  (in libchromiumcontent.dylib) + 17  [0x25979a1]
+                                                                 2825 disk_cache::BackendImpl::~BackendImpl()  (in libchromiumcontent.dylib) + 305  [0x2597af1]
+                                                                   2825 base::WaitableEvent::Wait()  (in libchromiumcontent.dylib) + 50  [0xccd942]
+                                                                     2825 base::WaitableEvent::TimedWait(base::TimeDelta const&)  (in libchromiumcontent.dylib) + 347  [0xccdb3b]
+                                                                       2825 base::ConditionVariable::Wait()  (in libchromiumcontent.dylib) + 35  [0xcccbb3]
+                                                                         2825 pthread_cond_wait$UNIX2003  (in libsystem_c.dylib) + 71  [0x964d3089]
+                                                                           2825 _pthread_cond_wait  (in libsystem_c.dylib) + 833  [0x9644d280]
+                                                                             2825 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x94b8e8e2]

BackendImpl was waiting on BrowserThread::CACHE, but that thread had already
been stopped. The solution is to destroy the BrowserContext before threads have
been stopped. We now do this in BrowserMainParts::PostMainMessageLoopRun, which
matches content_shell.
2013-10-23 12:16:25 -04:00
Cheng Zhao
f623ddf7fc Cleanup unused headers, data members and functions. 2013-10-11 07:17:53 -04:00
Cheng Zhao
2cd6dd791e Setup devtools in the correct phase.
* RegisterDevToolsClientHostFor should be called right after the agent_host and
  the frontend host are created.
* SetupDevToolsFrontendClient should be called before the devtools window is
  going to start navigation.
2013-10-11 07:17:03 -04:00
Cheng Zhao
9d29c8eb7c Use the "chrome-devtools://" scheme to open devtools. 2013-10-10 16:56:52 -04:00
Adam Roben
6b9e61c65d Fix flashing in WebContents we create
If the embedding app creates them it's up to them to fix this.
2013-10-10 16:24:22 -04:00
Adam Roben
8ae459e9fa Work around http://crbug.com/279472 for devtools views 2013-10-10 14:17:30 -04:00
Adam Roben
c0e744db78 Update libchromiumcontent to use Xcode's clang
* vendor/libchromiumcontent 759a8d0...21d99bd (1):
  > Merge pull request #28 from brightray/xcode-clang
2013-10-09 12:58:36 -04:00
Adam Roben
d06ac20947 Update to latest libchromiumcontent
* vendor/libchromiumcontent bfb2d7b...759a8d0 (1):
  > Remove googleurl/ from the distribution
2013-10-08 13:20:43 -04:00
Adam Roben
1f1f93465b Make MediaStreamDevicesController::Accept/Deny public again
Clients rely on this.
2013-10-07 17:04:40 -04:00
Adam Roben
b3b4ab2c70 Update ICU header include path
I should have done this as part of #30.
2013-10-07 17:02:35 -04:00
Adam Roben
9165424348 Update ResourceContext for Chrome 30
See http://src.chromium.org/viewvc/chrome?view=revision&revision=215991.
2013-10-07 16:31:58 -04:00
Adam Roben
4d6ee2c416 URLRequestContextStorage::set_http_server_properties takes a scoped_ptr in Chrome 30
See http://src.chromium.org/viewvc/chrome?view=revision&revision=212466.
2013-10-07 16:31:58 -04:00
Adam Roben
d1623535e8 Update browser/media/* for Chrome 30
I took the latest versions of these files from chrome/browser/media,
then pared them down to remove all Chrome-isms and uses of UI to prompt
the user about allowing access to devices.
2013-10-07 16:31:58 -04:00
Adam Roben
aa4f991659 Add DevToolsFrontendHostDelegate indexing methods from Chrome 30
See http://src.chromium.org/viewvc/chrome?view=revision&revision=215622.
2013-10-07 16:31:57 -04:00
Adam Roben
4d59060657 BrowserContext::RequestMIDISysExPermission was added in Chrome 30
See http://src.chromium.org/viewvc/chrome?view=revision&revision=211437.
2013-10-07 16:31:57 -04:00
Adam Roben
c1c4344879 BrowserContext::GetSpeechRecognitionPreferences is gone in Chrome 30
See http://src.chromium.org/viewvc/chrome?view=revision&revision=210616.
2013-10-07 16:31:57 -04:00
Adam Roben
eb446fc707 content::BrowserContext::GetPath is a const member function in Chrome 30
See http://src.chromium.org/viewvc/chrome?view=revision&revision=211931.
2013-10-07 16:31:57 -04:00
Adam Roben
64a5ce6e15 Update for move of scoped_nsobject header and namespace
See http://src.chromium.org/viewvc/chrome?view=revision&revision=207616.
2013-10-07 16:31:57 -04:00
Adam Roben
1e99ec9aed Update #includes for moves of string-related headers
See http://src.chromium.org/viewvc/chrome?view=revision&revision=205050.
2013-10-07 16:31:57 -04:00
Adam Roben
0575987343 Update to Chrome 30
* vendor/libchromiumcontent a56056d...bfb2d7b (1):
  > Merge pull request #27 from brightray/chrome-30
2013-10-07 16:31:42 -04:00
Adam Roben
8c7de2259b Update to latest libchromiumcontent
* vendor/libchromiumcontent ccec3a4...a56056d (1):
  > Stop exporting GURL symbols from test_support_chromiumcontent
2013-08-23 17:30:53 -04:00
Adam Roben
b24d7d7c76 Update utf_string_conversions.h path in another place 2013-08-23 17:01:18 -04:00
Adam Roben
2c030a419d Update for webkit header moves 2013-08-23 16:56:53 -04:00
Adam Roben
7d3f371b51 Update for move of MessageLoop into base namespace 2013-08-23 16:56:41 -04:00
Adam Roben
4946ec9081 Update for utf_string_conversions.h move in Chrome 29 2013-08-23 16:56:30 -04:00
Adam Roben
7dd1b8195f Update libchromiumcontent to Chrome 29
* vendor/libchromiumcontent 5ffcb39...ccec3a4 (2):
  > Merge pull request #25 from brightray/29.0.1547.57
  > Switch back to using s3put on Linux
2013-08-23 16:56:05 -04:00
Adam Roben
f17f9d932c Include gyp as a submodule
This makes it so you don't have to install gyp on your system before you
can build.
2013-08-23 07:48:37 -04:00
Adam Roben
710d0fc6c5 Make overriding BrowserContext::RegisterPrefs actually work
We were calling it before derived classes' vtables were set up. Now we wait to
call it until the BrowserContext is fully constructed.
2013-08-15 16:07:14 -04:00
Adam Roben
1161da6527 Mention that Clang 3.0 is needed on Linux 2013-08-14 08:17:52 -04:00
Adam Roben
9638e3956f Don't use base::DIR_APP_DATA on Linux
It doesn't exist. Instead, match content_shell by putting
application-specific data in $XDG_CONFIG_HOME or ~/.config.
2013-08-14 08:14:54 -04:00
Adam Roben
22ea2073df Compile as C++11 on Linux 2013-08-14 08:14:54 -04:00
Adam Roben
7f3afbaf3d Force building with Clang on Linux to get C++11 support 2013-08-14 08:14:54 -04:00
Adam Roben
d27a984378 Define USE_X11 on Linux 2013-08-06 17:29:08 -04:00
Adam Roben
3076781c8a Build using make on Linux 2013-08-06 17:25:07 -04:00
Adam Roben
b596adc237 Start teaching script/build about Linux 2013-08-06 16:49:59 -04:00
Adam Roben
efad174995 Update libchromiumcontent to get better Linux support
* vendor/libchromiumcontent be71317...5ffcb39 (2):
  > Delete commented-out code in script/download
  > Teach script/download about Linux
2013-08-06 16:43:21 -04:00
Adam Roben
af20c55519 Spew less when script/cibuild fails 2013-08-06 16:42:21 -04:00
Adam Roben
6841801538 Spew less when script/bootstrap fails 2013-08-06 16:39:11 -04:00
Adam Roben
a61fa01c5d Update libchromiumcontent to get basic Linux support
* vendor/libchromiumcontent 33472d4...be71317 (4):
  > Merge pull request #24 from brightray/linux
  > Fix gyp syntax
  > Fix Release linker error on Linux
  > Make sure we always apply patches in alphabetical order
2013-07-31 16:27:00 -07:00
Adam Roben
c2623d2bdc Fix typos 2013-07-31 11:52:21 -07:00
Adam Roben
2595335045 Enable navigator.webkitGetUserMedia()
The code came from chrome/browser/media, but was simplified to remove
dependencies on other parts of chrome/ and to always allow the media stream
request.
2013-07-31 11:08:45 -07:00
Adam Roben
bd648ce58f Put ICU headers on the include path for embedders 2013-07-25 12:31:41 -04:00
Adam Roben
d32a2fbc97 Update libchromiumcontent to get ICU headers
* vendor/libchromiumcontent ee4cea0...33472d4 (5):
  > Export ICU headers
  > When `gclient sync` fails, revert all local changes and try again
  > Merge pull request #23 from brightray/chromiumviews_pdb
  > Merge pull request #22 from brightray/cygwin2
  > Update to Chrome 28.0.1500.71
2013-07-25 12:22:58 -04:00
Adam Roben
56b904947b Avoid a crash when starting a download by disallowing downloads
Chromium crashes when starting a download if a content::DownloadManagerDelegate
is not provided. We now provide a default implementation of
content::DownloadManagerDelegate which disallows all downloads.
2013-07-24 07:56:55 -04:00
Adam Roben
bacf11d53f Rename the Helper process to Renderer/Plug-In Host/Utility as appropriate
This matches Chrome.
2013-07-17 11:04:45 -04:00
Adam Roben
33b574b434 Allow clients to supply their own NetworkDelegate implementation 2013-07-17 10:21:33 -04:00
Adam Roben
09efd19d2f Update to latest libchromiumcontent
* vendor/libchromiumcontent 929f9c9...ee4cea0 (2):
  > Merge pull request #21 from brightray/ui_views
  > Include all headers from testing/
2013-07-09 07:48:17 -04:00
Adam Roben
29237e21ce Always build 32-bit in Xcode
libchromiumcontent is 32-bit-only, so we need to match.
2013-07-08 12:17:48 -04:00
Cheng Zhao
8e0f5624dd Some headers are including SkMtrix.h, fix compilation errors for them. 2013-07-05 12:18:34 +08:00
Adam Roben
b17e63d13c Update libchromiumcontent to be based on Chrome 28
* vendor/libchromiumcontent f4f8a7e...929f9c9 (3):
  > Merge pull request #19 from brightray/chrome-28
  > Merge pull request #18 from brightray/encryptor
  > Merge pull request #17 from brightray/cygwin
2013-07-02 10:11:28 -04:00
Cheng Zhao
5e807cffc8 Use abusolute path when linking to external libraries. Fixes #22.
The ninja generator of gyp behaves strangely on the 'libraries' field of link
settings, for example, specifying path to an external library works well on
both xcodebuild and msvc generators, but the ninja generator would link to
the wrong path (it can neither translate relative path correctly, nor convert
the command line parameter to the '-lxxx' form).

The only way to make all generators work on all platforms is to use abusolute
paths for external libraries.
2013-07-02 15:24:24 +08:00
Adam Roben
3d00cded27 Update to latest libchromiumcontent
* vendor/libchromiumcontent fc02d93...f4f8a7e (4):
  > Include encryptor.lib and its symbols and headers in the distribution
  > Build encryptor.lib on Windows
  > Revert all changes before building if any unexpected files are modified
  > Export headers from cc/
2013-06-06 18:50:55 -04:00
Adam Roben
496b246405 Give BrowserContext subclasses access to GetPath() 2013-06-06 18:50:37 -04:00
Adam Roben
9ad77c4a38 Implement undocked dev tools on Windows
DevToolsWindow represents a vanilla top-level window that shows the dev tools.
It uses ui::WindowImpl to implement window functionality, which requires a
newer libchromiumcontent which contains the necessary headers for using that
class, and requires some modifications to brightray.gypi to make WTL's  headers
available.

* vendor/libchromiumcontent 2f53a96...fc02d93 (4):
  > Export third_party/wtl/include headers
  > Export test_support_base.pdb and test_support_content.pdb
  > Fix linker errors with test_support_base on Windows
  > Fix linker errors with base_prefs_test_support on Windows
2013-06-04 14:33:29 -04:00
Adam Roben
4c9870e753 Fix debug assertion about performing IO on the UI thread
We were querying the application's FILEVERSIONINFO every time we needed to
figure out the path for storing BrowserContext data. Now we cache the path the
first time we need it, which is during application initialization and before IO
prohibitions begin.
2013-06-04 14:17:16 -04:00
Cheng Zhao
27d55031f4 Set file and data protocol handler. 2013-06-02 00:25:04 +08:00
Adam Roben
3d12cb2c64 Don't crash when HTML notifications are used on Windows
Eventually we'll implement real support for this, but for now not crashing is
more important.
2013-05-31 08:05:14 -04:00
Adam Roben
2582e8561c Update to Chromium r202921
* vendor/libchromiumcontent 0d02a8d...2f53a96 (1):
  > Merge pull request #14 from brightray/latest-chromium
2013-05-30 15:07:32 -04:00
Adam Roben
f88634fea5 Pull in libchromiumcontent's Windows test support
* vendor/libchromiumcontent 3cbc11e...0d02a8d (1):
  > Merge pull request #13 from brightray/windows-test-support
2013-05-29 13:15:29 -04:00
Adam Roben
a24c390318 Use the user-visible version number in our user agent string
I.e., use CFBundleShortVersionString instead of CFBundleVersion on OS X and
ProductVersion instead of FileVersion on Windows.

This is generally more useful (although slightly lower granularity) than the
machine-readable version number.
2013-05-28 15:42:52 -04:00
Adam Roben
54419bbbb1 Set the user agent string correctly on Windows
We use the main executable's ProductName and FileVersion resources to build the
user agent string.
2013-05-28 15:24:55 -04:00
Adam Roben
70af1f351f Automatically exclude platform-specific files for all targets
This way embedding applications don't have to do this themselves, as long as
they follow our naming conventions.
2013-05-28 14:27:57 -04:00
Adam Roben
427ba96062 Set up linker defaults for Windows
These match Chromium's defaults.
2013-05-28 11:56:50 -04:00
Adam Roben
3f40456161 Make our Windows build settings actually take effect
We need to put them inside the target_defaults dictionary. Now that these
settings are turned on, we need to ignore some warnings that Chromium ignores.
2013-05-28 11:56:17 -04:00
Adam Roben
37d847c416 Fix linker errors about __imp___CrtDbgReportW
We were linking against the release CRT but defining _DEBUG, which should only
be defined when using the debug CRT.
2013-05-28 11:55:25 -04:00
Adam Roben
51cb56e604 Get libchromiumcontent back on master 2013-05-22 16:58:59 -04:00
Adam Roben
cf14f09228 Stub out InspectableWebContentsViewWin
This class doesn't implement any devtools behavior yet. Right now it's just a
glorified wrapper around a content::WebContents. But it's enough to show web
content on screen on Windows!
2013-05-22 16:57:32 -04:00
Adam Roben
b970e9d5c3 Only compile HandleKeyboardEvent on Mac 2013-05-22 16:08:40 -04:00
Adam Roben
d54f4e2bdd Update libchromiumcontent to get icudt.dll
* vendor/libchromiumcontent 31efc77...e436974 (2):
  > Export icudt.dll for Windows clients
  > Export libGLESv2.dll on Windows
2013-05-22 14:04:28 -04:00
Adam Roben
f2909b0d90 Set up the resource bundle on Windows 2013-05-22 14:00:43 -04:00
Adam Roben
3713ea6403 Exclude platform-specific files from other platforms 2013-05-22 14:00:43 -04:00
Adam Roben
1ec7280663 Link against the DLL version of the CRT
* vendor/libchromiumcontent 04ccdd8...31efc77 (3):
  > Use the DLL version of the CRT
  > Generate libchromiumcontent-symbols.zip on Windows
  > Fix exporting of WebKit symbols
2013-05-22 14:00:31 -04:00
Adam Roben
18b64f375c Link client apps against base_static.lib
This is required to get base::win::PEImage, which is required by sandboxing
code.

* vendor/libchromiumcontent c973a7c...04ccdd8 (1):
  > Export base_static.lib for Windows clients
2013-05-22 13:55:56 -04:00
Adam Roben
6a8ee865f4 Fix linker errors about missing Win32 APIs 2013-05-22 13:55:56 -04:00
Adam Roben
7e03f93dcd Add a stub application_info_win.cc 2013-05-22 13:55:56 -04:00
Adam Roben
12d01e4fd5 ifdef out a bunch of Mac-specific code
This is a hacky solution but helps us deal with other compiler/linker errors.
2013-05-22 13:55:56 -04:00
Adam Roben
12773cff6e Fix linker errors about missing registry APIs 2013-05-22 13:55:54 -04:00
Adam Roben
2813bef741 Link against sandbox_static.lib
* vendor/libchromiumcontent 15ada44...c973a7c (3):
  > Create and export sandbox_static.lib for Windows clients
  > Export content/app/startup_helper_win.cc to clients
  > Rename dist/include to dist/src
2013-05-22 13:55:12 -04:00
Adam Roben
7f463b8962 Give clients access to libchromiumcontent's src directory
* vendor/libchromiumcontent 15ada44...65b85bf (2):
  > Export content/app/startup_helper_win.cc to clients
  > Rename dist/include to dist/src
2013-05-22 13:55:12 -04:00
Adam Roben
4c0765b413 Use __declspec(dllimport) for functions from chromiumcontent.dll 2013-05-22 13:55:11 -04:00
Adam Roben
7b65fe4948 Link against chromiumcontent.dll
* vendor/libchromiumcontent 4aae27b...15ada44 (3):
  > Include chromiumcontent.dll's import library
  > Export sandbox/ headers
  > Mention that Python is required to build
2013-05-22 13:55:11 -04:00
Adam Roben
35f4dfe4b0 Add some more default build settings for Windows 2013-05-22 13:55:02 -04:00
Adam Roben
3cf6e5eda2 Make sure dependents can #include "brightray/foo.h" 2013-05-22 13:54:07 -04:00
Adam Roben
f387535eae Beef up .gitignore 2013-05-22 13:54:07 -04:00
Adam Roben
d6b4e430f8 Update links after move to brightray org 2013-05-21 14:57:52 -04:00