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
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