Commit graph

379 commits

Author SHA1 Message Date
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
Adam Roben
e531f46a4b Ignore files created by Visual Studio 2013-05-16 09:16:29 -04:00
Adam Roben
d07c45080d Don't use range-based for loops
VS2010 doesn't support them :-(
2013-05-16 09:15:57 -04:00
Adam Roben
5fa005d5da Fix Windows build error about passing std::string to base::FilePath::Append 2013-05-16 09:15:56 -04:00
Adam Roben
a6c5cb04f7 Use FILE_PATH_LITERAL to fix build errors 2013-05-16 09:15:56 -04:00
Adam Roben
35199ba31f MSVC doesn't allow override on destructors 2013-05-16 09:15:55 -04:00
Adam Roben
ae7331da82 Add some build defaults for Windows
These came from Chromium's build/common.gypi file.
2013-05-16 09:15:55 -04:00
Adam Roben
689496afb8 Make sure sk_stdint.h is in the include path 2013-05-16 09:15:54 -04:00
Adam Roben
a5b118ce34 Use MSBuild to build on Windows 2013-05-16 09:15:54 -04:00
Adam Roben
3d83416c04 Ignore .sln/.vcxproj files created by gyp 2013-05-16 09:15:47 -04:00
Adam Roben
fd6e43baf9 Make script/build actually run gyp on Windows
We don't yet build, but we're getting closer.
2013-05-16 09:15:05 -04:00
Adam Roben
0dfd5ec320 Ensure consistent line endings in all files 2013-05-16 09:15:05 -04:00
Adam Roben
39f0694cce Add prerequisites to the README 2013-05-16 09:15:04 -04:00
Adam Roben
90e1370d7f Update libchromiumcontent for Windows support
* vendor/libchromiumcontent e70a88f...4aae27b (2):
  > Merge pull request #11 from brightray/windows-build
  > Merge pull request #10 from brightray/windows-scripts
2013-05-16 08:54:01 -04:00
Adam Roben
33d4b7398a Add script/cibuild
This just ensures that we can bootstrap and build.
2013-05-14 12:20:50 -04:00
Adam Roben
a922d8a529 Update for libchromiumcontent repo transfer 2013-05-14 09:26:40 -04:00
Adam Roben
de9b0a008b Fix script/bootstrap
* vendor/libchromiumcontent 588f368...e70a88f (1):
  > Make script/download work when we're a submodule
2013-05-14 08:31:10 -04:00
Adam Roben
46c887b62d Rewrite script/build in Python
The script is still Mac-specific, but this will make it easier to add
Windows support later.
2013-05-13 18:59:03 -04:00
Adam Roben
c29074ff94 Rewrite script/boostrap in Python
This is the first step toward supporting Windows.
2013-05-13 18:59:03 -04:00
Adam Roben
0526aa45e7 Update libchromiumcontent to get its Python scripts
* vendor/libchromiumcontent 3f6f01c...588f368 (17):
  > Merge pull request #8 from aroben/menu-controller
  > Merge pull request #6 from aroben/shell_dialogs
  > Fix typo in script/create-dist
  > Merge pull request #5 from aroben/python
  > Add libtest_support_chromiumcontent.a
  > Build and distribute libgtest.a
  > Stop trying to compile SQLitePersistentCookieStore separately
  > Update to latest Chromium trunk revision
  > Merge pull request #4 from aroben/atom
  > Actually compile the base/prefs code
  > Export symbols from base/prefs
  > Compile and export SQLitePersistentCookieStore
  > Export webkit/plugins headers
  > Export skia/ext headers
  > Export ui/surface headers, too
  > Export Skia symbols from libchromiumcontent
  > Update to match chrome/trunk
2013-05-13 18:58:44 -04:00
Cheng Zhao
082f88ed3c frontend_host_ should be destructed after devtools_web_contents_. 2013-05-01 22:00:20 +08:00
Adam Roben
676e92e322 Fix crashes when dragging links
Turns out we needed to implement ContentClient::GetNativeImageNamed, which is
called to get the default drag image.
2013-04-26 22:49:58 -04:00
Adam Roben
73d467d657 Turn off C++ exceptions
We weren't using them anyway, and don't intend to. This matches Chromium.
2013-04-26 14:13:45 -04:00
Adam Roben
6908eecd0c Allow embedders to specify extra .pak files 2013-04-26 11:04:51 -04:00
Adam Roben
3b879a6178 Allow embedders to provide their own ContentClient subclass 2013-04-24 18:30:47 -04:00
Adam Roben
c27ac79969 Update to latest libchromiumcontent
* vendor/libchromiumcontent 4ae397b...d5cef3b (1):
  > Add libtest_support_chromiumcontent.a
2013-04-24 15:56:43 -04:00
Adam Roben
94d7b383c5 Fix DCHECK() assertion in BrowserClient 2013-04-24 10:54:53 -04:00
Adam Roben
48878af0db Let embedders add their own protocol handlers 2013-04-23 15:50:17 -04:00
Adam Roben
67081a64b0 Pull in latest libchromiumcontent to get gtest
* vendor/libchromiumcontent 0d607ee...4ae397b (1):
  > Build and distribute libgtest.a
2013-04-23 13:27:29 -04:00
Cheng Zhao
a5e1c46674 💄 2013-04-22 20:41:58 +08:00
Cheng Zhao
082aa61870 InspectableWebContents should be able to accept existing WebContents. 2013-04-20 13:24:45 +08:00
Adam Roben
80cb76355c Update to latest libchromiumcontent
* vendor/libchromiumcontent b6a0d85...0d607ee (3):
  > Stop trying to compile SQLitePersistentCookieStore separately
  > Update to latest Chromium trunk revision
  > Merge pull request #4 from aroben/atom
2013-04-17 23:27:53 -04:00
Adam Roben
0b5ab8e43d Size dev tools correctly when starting out docked to the right 2013-04-16 21:06:07 -04:00
Adam Roben
d9df9bcf47 Send focus/blur events when an InspectableWebContents's window gains/loses focus
We listen for key window chages and inform content::RenderWidgetHostView as
appropriate.
2013-04-09 15:11:16 -04:00
Adam Roben
3c513d6ae8 Remember where the dev tools were docked between launches 2013-04-08 13:53:53 -04:00
Adam Roben
a2a2cd1936 Add preferences support for embedding applications
Applications can use brightray::BrowserContext::prefs to get access to
preferences that are persisted between launches.
brightray::BrowserContext::RegisterPrefs must be used to register preferences
before they're accessed.

Updated libchromiumcontent to pull in preferences support.

* vendor/libchromiumcontent 3944c1c...b6a0d85 (2):
  > Actually compile the base/prefs code
  > Export symbols from base/prefs
2013-04-08 13:53:42 -04:00
Adam Roben
5db043f7d4 Strip whitespace from the application name in the user agent
Having whitespace in the application name makes the user agent hard to parse.
2013-04-08 12:42:50 -04:00
Adam Roben
d2c04779e4 Include the application's version number in the user agent string 2013-04-08 12:41:30 -04:00
Adam Roben
3cef0dd98c Allow embedders to provide their own BrowserContext implementation 2013-04-01 20:10:00 -04:00
Adam Roben
080d9f59e9 Implement Notification.close() 2013-03-29 09:36:07 -04:00
Adam Roben
dde3c3f78f Make NotificationID more useful 2013-03-29 09:23:10 -04:00
Adam Roben
e59c549e62 Fire a click event when a notification is clicked 2013-03-29 09:02:40 -04:00
Adam Roben
c1463f9799 Don't fire the show event until the notification is actually shown 2013-03-29 08:59:21 -04:00
Adam Roben
e592f3ffa1 Add CreateUserNotification helper function 2013-03-29 08:32:00 -04:00
Adam Roben
08f393437e Show notifications even when the app is focused
It's a little icky to be taking over global state (NSUserNotificationCenter's
delegate) like this, but until we have evidence that it gets in someone's way
it's the pragmatic thing to do.
2013-03-28 18:09:04 -04:00
Adam Roben
651ab18a21 Turn NotificationPresenter into an abstract base class
This will allow us to have Mac-specific member variables without a bunch of
ifdefs.
2013-03-28 18:03:58 -04:00
Adam Roben
3c41af84a1 Move notification-related code into a new NotificationPresenter class 2013-03-28 17:50:07 -04:00
Adam Roben
1328c85eef Fire a show event when a notification is shown 2013-03-28 17:50:07 -04:00
Adam Roben
0893253188 Add bare-bones HTML notifications support
Calling Notification.show() now works. But Notification.close() does nothing,
and none of the notification's events fire.
2013-03-28 17:50:07 -04:00
Adam Roben
1a1fecf423 Bump the base SDK and deployment target to 10.8
This required working around an incompatibility in base/mac/foundation_util.h.
2013-03-28 17:50:07 -04:00
Adam Roben
e4e4cb6ec4 Allow embedders to customize the deployment target and base SDK 2013-03-28 15:56:35 -04:00
Adam Roben
93d9b61215 Allow overriding MainDelegate::BasicStartupComplete 2013-03-28 12:34:49 -04:00
Adam Roben
fa9a1d7b35 Support undocking the devtools view into its own window 2013-03-27 12:35:01 -04:00
Adam Roben
c22d1cca79 Support docking the devtools on the right side of the window 2013-03-27 11:20:21 -04:00
Adam Roben
001d0197de Make the devtools close button work 2013-03-27 11:20:21 -04:00
Adam Roben
d20ecc0e2b Merge InspectableWebContentsImpl and DevToolsFrontend
While this prevents clients from easily implementing their own devtools
windows, it gives us much easier control over the devtools experience.
2013-03-27 11:20:15 -04:00
Adam Roben
881a203b57 Fix double-delete of BrowserMainParts
The caller of BrowserClient::CreateBrowserMainParts handles destroying the
BrowserMainParts instance we return.
2013-03-27 08:55:54 -04:00
Adam Roben
90691e394f Fix lifetime management of URLRequestContextGetter
I noticed this bug while adding persistent cookie storage.
2013-03-27 08:55:54 -04:00
Adam Roben
4fc0fed081 Persist cookies to disk
We use Chrome's SQLitePersistentCookieStore to save cookies to a file called
"Cookies" within the application support directory.

Fixes #5.
2013-03-27 08:55:38 -04:00
Adam Roben
115eef52a3 Update libchromiumcontent
* vendor/libchromiumcontent cf87e4d...3944c1c (1):
  > Compile and export SQLitePersistentCookieStore
2013-03-26 16:30:32 -04:00
Adam Roben
3d3b989806 Update libchromiumcontent to pull in more headers
* vendor/libchromiumcontent 9152595...cf87e4d (1):
  > Export webkit/plugins headers
2013-03-25 12:53:30 -04:00
Adam Roben
5120887571 Update libchromiumcontent to pull in more headers 2013-03-25 12:28:30 -04:00
Adam Roben
5c0323cf23 Allow overwriting vendor/download/libchromiumcontent when its version changes 2013-03-25 12:23:37 -04:00
Adam Roben
3cda49b894 Update to latest libchromiumcontent 2013-03-21 15:18:25 -04:00
Adam Roben
909b3cd18f Stop disabling the sandbox
Now that we have the resources bundle hooked up correctly, the sandbox
functions just fine.

Fixes #4.
2013-03-14 14:01:12 -04:00
Adam Roben
4ca59ba279 Make keyboard shortcuts work when the dev tools are focused
We just pass unhandled key events from dev tools along to the main
WebContentsDelegate.

Part of #2.
2013-03-14 13:50:21 -04:00
Adam Roben
be6d990a97 Make keyboard shortcuts work on Mac
When the renderer doesn't handle a key event, we pass it off to the main menu
to see if it can handle it.

Part of #2.
2013-03-14 13:50:15 -04:00
Adam Roben
561fc9a342 Fix a NSSplitView leak 2013-03-14 13:06:58 -04:00
Adam Roben
4bff7a592a Enforce better header hygiene
Apple recommends disabling ALWAYS_SEARCH_USER_PATHS, so we now do. And we also
disable USE_HEADER_MAP to match other platforms more closely.
2013-03-14 13:06:17 -04:00
Adam Roben
fe35a92de5 Get the linen background painting during elastic scrolling
We weren't setting the location of the resource bundle correctly in the
renderer process. It turns out base::mac::OuterBundle() returns the helper
app's bundle in the renderer process. So now we have MainApplicationBundle() to
give us the bundle of the main app.
2013-03-14 13:05:01 -04:00
Adam Roben
b2a79856ef Add InspectableWebContents
This class can be used to create a content::WebContents that can be inspected
by the Chrome Dev Tools. This requires embedding applications to copy
content_shell.pak into their resource bundle.

Right now the dev tools are always docked to the bottom of the view; we don't
yet support undocking or changing the docked side.

Fixes #1.
2013-03-14 09:05:42 -04:00
Adam Roben
e1b5e5e1bf Store the disk cache in an app-specific location
We deduce the name of the application from the CFBundleName of the .app bundle
and use a path based on that. Similar logic should be implementable for other
platforms.

Fixes #3.
2013-03-13 16:45:00 -04:00
Adam Roben
65dd011fa3 Use Google-style header guards everywhere 2013-03-13 15:42:16 -04:00
Adam Roben
e451d92121 Initial commit 2013-03-13 15:31:24 -04:00