Comments (39)
I currently only know Python but if there is anything I can do to help in this
effort please let me know.
Original comment by [email protected]
on 24 Oct 2012 at 12:47
from cefpython.
I do have a fair amount of experience working with PyObjC if that helps.
Original comment by [email protected]
on 24 Oct 2012 at 12:49
from cefpython.
It is required to know a bit of C++, Cython and Objective-C to create an OSX
port. It should be an easier task then the linux port as there are ready
binaries:
http://code.google.com/p/chromiumembedded/downloads/detail?name=cef_binary_1.118
0.832_macosx.zip
I am not yet sure about the objective-C stuff, how to do this in Cython, I am
now looking at macosx binary /cefclient/cefclient_mac.mm and have no idea of
how to port this objective-c code to c/c++ in Cython.
The other problem is that I don't own any Mac. Here in Poland a Mac is a rare
thing, I ever saw one a few years ago, only because my friend was a Ruby On
Rails fanatic and bought one. Though I'm flying to Canada to my uncle in a few
days, he's a computer hobbyist, maybe he owns a mac thing, I will be staying
there for a while.
Original comment by [email protected]
on 24 Oct 2012 at 6:29
from cefpython.
I've been googling for "cython cocoa" and found only this tip useful:
https://groups.google.com/d/msg/cython-users/Je1o6zQkPuY/s4on7ar7yoQJ
Original comment by [email protected]
on 24 Oct 2012 at 8:11
from cefpython.
My feeling is that PyObjC is the right tool for the job. It's supposed to be a
bidirectional bridge, so you can call Python from ObjC and vice versa, but I've
only ever written Python that called ObjC. I'm not 100% sure what a project
like this entails, though, so I can't say for sure if this will do everything
needed.
Have a great trip to Canada! Beautiful country.
I once went to an Apple store and asked how I could get an older operating
system (10.6, Snow Leoapard -- not that old, still in widespread use) and the
salesperson told me I should just torrent it and use a Virtual Machine; Apple
doesn't sell the Snow Leopard OS anymore. So you might have some luck that way?
Are there any resources you might recommend for me to wrap my head around how
projects like this work? I tried browsing the source but didn't really know
where to start.
Thanks!
Original comment by [email protected]
on 24 Oct 2012 at 1:37
from cefpython.
I've looked over pyobjc examples and every time I see a setup.py, I hope it is
possible to run pyobjc as pure python without compilation, then it might work.
>how projects like this work?
My way of doing this is a lot of googling, struggling with documentation,
finding good examples, learning by trial and error. I've started with baby
steps and it just growed. Try doing some simple thing, one thing at a time.
Original comment by [email protected]
on 24 Oct 2012 at 2:19
from cefpython.
Yes, I run PyObjc without compilation as "pure" python (links down to PyObjC,
of course, which runs ObjC)
Haha thanks, that does indeed seem to be the way to learn this kind of thing.
Original comment by [email protected]
on 24 Oct 2012 at 2:22
from cefpython.
Cython can be sometimes hard to debug after some big refactoring, compiler
errors are obfuscated, so better to avoid this, I try to compile it often.
Original comment by [email protected]
on 24 Oct 2012 at 2:25
from cefpython.
Some guys let me know they ported cefpython to CEF 3 (single process mode),
they also have a Mac version. I've looked over the sources, the problem with
OSX specific code can be solved by using wxPython or Tkinter to create windows,
then there isn't much code to write for OSX, there is one .mm file with only 3
functions:
void CefWindowInfo_SetAsChild(CefWindowInfo *_self, CefWindowHandle parent);
void MacInit();
void MacShutdown();
There are some other minor differences, the conversion between python string <>
cef string in functions PyStringToCefString and CefStringToPyString needs to be
done in a different way, by using PyUnicode_DecodeUTF32 / PyUnicode_DecodeUTF16
as char size on mac is 4 bytes.
Another issue is Auth Dialog for http authentication, how do we create that
dialog? Using wxPython (that would need a delegate) or do we call OSX-specific
functions?
I still don't have a mac so this issue will have to wait.
Original comment by [email protected]
on 14 Nov 2012 at 3:37
from cefpython.
Wow, that doesn't look bad at all, I hope.
As for the Auth Dialog, I'm not sure. I currently use PyQt for my desktop GUIs.
I know it isn't hard to make a dialog in PyObjC; if the auth dialog is minor,
it probably isn't more than 20 lines of code (I don't know anything about the
http auth though). I know small dialogues on wxPython are very trivial; I've
heard awful things about tkinter in general but never worked with it myself.
I don't know enough about how cef / cefpython work to answer well though (for
example, is cefpython basically just a better webview embedded in another
(wxpython/pyqt/tkinter) app?. If you're not familiar with desktop gui's, I can
send you some of my code for my main pyqt desktop gui, which also wraps a
webview.
Original comment by [email protected]
on 14 Nov 2012 at 4:20
from cefpython.
Cefpython is just a webview, you pass a window handle to CreateBrowser() and
that's all cef needs to know.
I think that we can create the http auth dialog using tkinter, as I remember
from the Issue 1 discussion it comes by default with any python so there are no
dependencies, after googling "tkinter dialog example" I have this:
http://www.pythonware.com/library/tkinter/introduction/dialog-windows.htm
> Figure 10-1. running the dialog2.py script
This is exactly what we need, 2 inputs and OK/Cancel, that should work.
Original comment by [email protected]
on 14 Nov 2012 at 10:49
from cefpython.
The http auth window needs to be modal, googling "tkinter modal dialog" shows
some solutions. Maybe we could even get rid of that c++ code for the windows
platform, I've created an issue for that: Issue 26.
Original comment by [email protected]
on 14 Nov 2012 at 11:05
from cefpython.
[deleted comment]
from cefpython.
What is the status of the Mac port?
Original comment by [email protected]
on 4 Mar 2013 at 3:09
from cefpython.
I haven't yet started working on it, I still don't own any Mac machine,
there were only general improvements in the code to prepare for Linux
and OSX ports.
Original comment by [email protected]
on 4 Mar 2013 at 3:25
from cefpython.
Is there any chance you could invite the developers who worked on one to come
and post their code? Even as a one off code drop, it would give others (such as
myself) a nice point to work from.
Original comment by [email protected]
on 4 Mar 2013 at 3:30
from cefpython.
Alex, The Mac code I was shared with cannot be made public, though I could
share with you portions of the code that are Mac-specific, first I would
need to find and extract it. I am here to help you with my advice on the
cefpython code, but I would need some declaration from your side that you
will share the code back with the community.
Original comment by [email protected]
on 4 Mar 2013 at 4:07
from cefpython.
CEF 1 does not support Retina displays, but CEF 3 does, see this topic:
http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=10620
I think that we should port only CEF 3 to Mac.
Original comment by [email protected]
on 2 May 2013 at 1:36
from cefpython.
Original comment by [email protected]
on 13 Jun 2013 at 7:29
- Added labels: CEF3
from cefpython.
Hi, if you could share the mac code you have I would be willing to take a look
and contribute back to cefpython.
I completely agree with only port CEF3 to mac.
Original comment by [email protected]
on 4 Sep 2013 at 1:10
from cefpython.
After a second thought, I don't think using the code I was referring to is
a good idea, it's not open sourced, so we better don't look at it.
I have a general idea of what to do, so if you're stuck or need help with
anything, just ask, here or on the CEF Python Forum.
Original comment by [email protected]
on 4 Sep 2013 at 7:54
from cefpython.
Just wanted to say that i LOVE this project and am excited to use the mac
build!
Original comment by [email protected]
on 8 Nov 2013 at 5:40
from cefpython.
That said, what is the status of the mac port now? I too would love to
contribute my time if you can give me some suggestions for where to start.
Original comment by [email protected]
on 8 Nov 2013 at 6:24
from cefpython.
Hi Czarek, currently fetching chromium src on OSX. You said above that you
have a general idea of what to do, may I hear your thoughts?
Original comment by [email protected]
on 6 Dec 2013 at 12:04
from cefpython.
[deleted comment]
from cefpython.
#24 mikemahony
If you have any specific questions, I'm glad to answer these.
Original comment by [email protected]
on 16 Jan 2014 at 10:04
from cefpython.
[deleted comment]
from cefpython.
[deleted comment]
from cefpython.
Hi, has any got this working?
Original comment by [email protected]
on 19 Jun 2014 at 3:40
from cefpython.
if anyone could port to mac, sincerely appreciate it!
Original comment by pianoboysai
on 30 Aug 2014 at 5:00
from cefpython.
Hello Czarek,
+1 I also looking for (and trying for a couple hour) Mac OSX port, could you
please let me know when will be public release?
Best regards.
Original comment by [email protected]
on 7 Sep 2014 at 4:40
from cefpython.
Original comment by [email protected]
on 7 Sep 2014 at 7:11
- Added labels: Restrict-AddIssueComment-Commit
from cefpython.
The cefpython module compiles fine on Mac. See revision 32846e1f20e1. Created
the BuildOnMac wiki page. Still to do: a wxpython.py example.
Original comment by [email protected]
on 9 Jan 2015 at 11:52
from cefpython.
Added the wxpython.py example in revision e07d0bd04ab4.
There are two problems to be fixed on Mac (Issue 156):
1. Mouse context menu is currently disabled, as it crashes app
2. <select> controls crash app too
Everything else works fine.
Original comment by [email protected]
on 10 Jan 2015 at 5:37
from cefpython.
Currently CEF builds on Mac are with tcmalloc memory allocator and this
requires for the cefpython library to be imported very first in a program
before any others like wx. Issue 155 is to provide CEF builds for Mac with
tcmalloc disabled.
Original comment by [email protected]
on 10 Jan 2015 at 5:46
from cefpython.
There are several differences in the wxpython.py example across different
platforms. Created Issue 159 that tries to list these differences. The goal is
to provide a single wxpython.py that runs on all platforms.
Original comment by [email protected]
on 11 Jan 2015 at 5:27
from cefpython.
Errors when accessing mouse context menu and <select> controls were fixed, see
Issue 156 for details.
There is still an another minor issue to be fixed: Copy/Paste keyboard
shortcuts don't work. See Issue 161 for details.
Next tasks on the list:
* Build with CEF 64-bit binaries
* Provide Python Wheel binary packages on PyPI for both 32bit and 64bit
Original comment by [email protected]
on 11 Jan 2015 at 7:04
from cefpython.
Porting to Mac is complete. Package can be installed using the pip package
manager:
pip install cefpython3
The python wheel package that installs contains fat binaries and can run on
both 32bit and 64bit.
See also the Download wiki page for Mac and the examples section:
https://code.google.com/p/cefpython/wiki/Download_CEF3_Mac
64bit builds fixed in revision b37e9b39a133.
Installer scripts added in revision 15dc5746e099.
Original comment by [email protected]
on 13 Jan 2015 at 7:57
- Changed state: Fixed
from cefpython.
Project will move to Github. Find this issue at the new address (soon):
https://github.com/cztomczak/cefpython/issues/21
Original comment by [email protected]
on 24 Aug 2015 at 6:25
from cefpython.
Related Issues (20)
- The default en-US locale pak file fails to load on Mac HOT 7
- Examples crash on Mac when app doesn't have permission to write to the debug.log file HOT 2
- Issues with size_t => int conversions when using cef_values.h API on Win x64 platform HOT 3
- Python Wheels - DESCRIPTION.rst UNKNOWN HOT 1
- Embed __version__ also in the cython generated module (cefpython_py27.pyd) HOT 2
- Create unified key mappings for all platforms HOT 9
- Add Browser.IsDevTools() HOT 2
- Expose CreateBrowser() with a callback argument that will be executed after browser was created HOT 2
- The popup window and parent window can't script each other in the wxpython.py example HOT 4
- Create "chrome31" branch before updating to a newer CEF branch HOT 2
- wxpython-response.py example: final url is wrong when doing redirects HOT 8
- Close the browser BEFORE the page is full loaded CEF Crashe HOT 1
- Warnings on OS X: Internals of CFAllocator not known HOT 2
- [meta] Migrate the repository somewhere HOT 2
- Gtk: gtk_disable_setlocale() must be called before gtk_init() HOT 3
- Restructure directories (binaries, installer, libraries) to allow for git branching HOT 2
- Automating navigation HOT 1
- Google Code is dying HOT 1
- Update to CEF branch 2171 (Chrome 39) HOT 2
- Ability to pass modifiers to SendMouseMoveEvent and similar HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cefpython.