Skip to content

Commit 16e4dee

Browse files
committed
Merge pull request #22 from mzmiric5/osx-cef-update
Update OS X build to support newer CEF and new features added to windows version
2 parents 5123147 + 0906cfd commit 16e4dee

File tree

6 files changed

+37
-18
lines changed

6 files changed

+37
-18
lines changed

CMakeLists.txt

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,7 @@ set(obs-browser_SOURCES
4444
obs-browser/main.cpp
4545
obs-browser/main-source.cpp
4646
shared/browser-source.cpp
47-
shared/base64.cpp
48-
obs-browser/browser-load-handler.cpp
49-
shared/browser-scheme.cpp
50-
)
47+
shared/base64.cpp)
5148

5249
set(obs-browser_HEADERS
5350
shared/browser-manager.hpp
@@ -56,8 +53,6 @@ set(obs-browser_HEADERS
5653
shared/browser-settings.hpp
5754
shared/browser-types.h
5855
shared/base64.hpp
59-
obs-browser/browser-load-handler.hpp
60-
shared/browser-scheme.hpp
6156
shared/browser-types.h)
6257

6358
if (APPLE)
@@ -94,7 +89,9 @@ else (APPLE)
9489
obs-browser/browser-source-listener-base.cpp
9590
obs-browser/browser-manager-base.cpp
9691
obs-browser/browser-render-handler.cpp
97-
obs-browser/browser-source-base.cpp)
92+
obs-browser/browser-source-base.cpp
93+
obs-browser/browser-load-handler.cpp
94+
shared/browser-scheme.cpp)
9895

9996
list(APPEND obs-browser_HEADERS
10097
shared/browser-client.hpp
@@ -103,7 +100,9 @@ else (APPLE)
103100
obs-browser/browser-source-listener-base.hpp
104101
obs-browser/browser-manager-base.hpp
105102
obs-browser/browser-render-handler.hpp
106-
obs-browser/browser-source-base.hpp)
103+
obs-browser/browser-source-base.hpp
104+
obs-browser/browser-load-handler.hpp
105+
shared/browser-scheme.hpp)
107106

108107
endif(APPLE)
109108

@@ -164,7 +163,9 @@ if(APPLE)
164163
shared/browser-client.cpp
165164
shared/browser-task.cpp
166165
shared/browser-app.cpp
167-
shared/browser-scheme.cpp)
166+
shared/browser-scheme.cpp
167+
shared/base64.cpp
168+
obs-browser/browser-load-handler.cpp)
168169

169170
set(cef-isolation_HEADERS
170171
shared-apple/cef-logging.h
@@ -178,6 +179,8 @@ if(APPLE)
178179
shared/browser-client.hpp
179180
shared/browser-task.hpp
180181
shared/browser-app.hpp
182+
shared/base64.hpp
183+
obs-browser/browser-load-handler.hpp
181184
shared/browser-scheme.hpp
182185
shared/browser-types.h
183186
shared-apple/browser-bridges.h)
@@ -256,20 +259,26 @@ if (APPLE)
256259
MACOSX_BUNDLE_GUI_IDENTIFIER "org.catchexception.cef.cef-bootstrap")
257260

258261

262+
add_custom_command(TARGET obs-browser POST_BUILD
263+
COMMAND install_name_tool -change "@executable_path/Chromium Embedded Framework" "@rpath/CEF.app/Contents/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" "$<TARGET_FILE:obs-browser>"
264+
)
265+
259266
add_custom_command(TARGET cef-isolation
260267
# Disable taskbar visibility
261-
COMMAND defaults write "$<TARGET_FILE_DIR:cef-isolation>/../Info.plist" "LSUIElement" true)
268+
COMMAND defaults write "$<TARGET_FILE_DIR:cef-isolation>/../Info.plist" "LSUIElement" true
269+
)
262270

263271
add_custom_command(TARGET cef-bootstrap POST_BUILD
264272
# Remember if you change this but don't cause a recompile it will not rename it successfully
265273
COMMAND install_name_tool -change "@executable_path/Chromium Embedded Framework" "@rpath/Chromium Embedded Framework.framework/Chromium Embedded Framework" "$<TARGET_FILE:cef-bootstrap>"
266274

267275
# Disable taskbar visibility
268-
COMMAND defaults write "$<TARGET_FILE_DIR:cef-bootstrap>/../Info.plist" "LSUIElement" true)
276+
COMMAND defaults write "$<TARGET_FILE_DIR:cef-bootstrap>/../Info.plist" "LSUIElement" true
277+
)
269278

270279
add_custom_command(TARGET cef-isolation POST_BUILD
271280
# Remember if you change this but don't cause a recompile in the shared object it will not rename it successfully
272-
COMMAND install_name_tool -change "@executable_path/Chromium Embedded Framework" "@rpath/Chromium Embedded Framework.framework/Chromium Embedded Framework" "$<TARGET_FILE:cef-isolation>"
281+
COMMAND install_name_tool -change "@executable_path/Chromium Embedded Framework" "@rpath/Chromium Embedded Framework.framework/Chromium Embedded Framework" "$<TARGET_FILE:cef-isolation>"
273282

274283
# Make a Frameworks directory
275284
COMMAND mkdir -p "$<TARGET_FILE_DIR:cef-isolation>/../Frameworks"
@@ -280,8 +289,8 @@ if (APPLE)
280289
# Setup the helper apps
281290
COMMAND rm -rf "$<TARGET_FILE_DIR:cef-isolation>/../Frameworks/CEF Helper.app"
282291
COMMAND cp -Rf "$<TARGET_FILE_DIR:cef-bootstrap>/../../../CEF Helper.app" "$<TARGET_FILE_DIR:cef-isolation>/../Frameworks"
283-
COMMAND "BUILT_PRODUCTS_DIR=$<TARGET_FILE_DIR:cef-isolation>/../../.." "CONTENTS_FOLDER_PATH=CEF.app/Contents" "${CEF_ROOT_DIR}/tools/make_more_helpers.sh" "Frameworks" "CEF")
284-
292+
)
293+
285294
endif(APPLE)
286295

287296
if(APPLE)

cef-isolation/cef-isolated-client.mm

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
#include "browser-handle.h"
3333
#include "browser-render-handler.hpp"
34+
#include "obs-browser/browser-load-handler.hpp"
3435

3536
#import "cef-isolated-client.h"
3637

@@ -76,9 +77,12 @@ new BrowserHandle(browserSettings.width,
7677

7778
CefRefPtr<BrowserRenderHandler> browserRenderHandler =
7879
new BrowserRenderHandler(browserHandle);
80+
81+
CefRefPtr<BrowserLoadHandler> loadHandler =
82+
new BrowserLoadHandler(std::string([browserSettings.css UTF8String]));
7983

8084
CefRefPtr<BrowserClient> browserClient =
81-
new BrowserClient(browserRenderHandler.get());
85+
new BrowserClient(browserRenderHandler.get(),loadHandler);
8286

8387
CefWindowInfo windowInfo;
8488
windowInfo.view = nullptr;

obs-browser/browser-load-handler.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
2121

2222
#include <include/cef_load_handler.h>
2323

24-
#include <obs-module.h>
25-
2624
class BrowserListener;
2725

2826
class BrowserLoadHandler : public CefLoadHandler
@@ -35,7 +33,7 @@ class BrowserLoadHandler : public CefLoadHandler
3533

3634
public: /* CefLoadHandler overrides */
3735

38-
virtual void BrowserLoadHandler::OnLoadEnd(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, int httpStatusCode) OVERRIDE;
36+
virtual void OnLoadEnd(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, int httpStatusCode) OVERRIDE;
3937

4038
private:
4139
const std::string css;

shared-apple/browser-bridges.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ struct obs_key_event;
2929
@property (readonly)unsigned int width;
3030
@property (readonly)unsigned int height;
3131
@property (readonly)unsigned int fps;
32+
@property (readonly)NSString *css;
3233

3334
+ (id)fromBrowserSettings: (const BrowserSettings &)browserSettings;
3435

shared-apple/browser-bridges.mm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ - (id)initWithBrowserSettings:(const BrowserSettings &)browserSettings
2929
_width = browserSettings.width;
3030
_height = browserSettings.height;
3131
_fps = browserSettings.fps;
32+
_css = [NSString stringWithUTF8String:
33+
browserSettings.css.c_str()];
3234
}
3335
return self;
3436
}

shared/browser-scheme.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ void BrowserSchemeHandler::GetResponseHeaders(CefRefPtr<CefResponse> response,
6868

6969
std::string fileExtension = fileName.substr(
7070
fileName.find_last_of(".") + 1);
71+
72+
if (fileExtension == "woff2") {
73+
fileExtension = "woff";
74+
}
75+
7176
std::transform(fileExtension.begin(), fileExtension.end(),
7277
fileExtension.begin(), ::tolower);
7378

0 commit comments

Comments
 (0)