From 2ef3e25c0df2e865c01e1d10a1761e120e09b9ce Mon Sep 17 00:00:00 2001 From: "[JaviLendi]" Date: Wed, 13 May 2026 17:47:59 +0200 Subject: [PATCH 1/8] Revamp toolbar UI and host messaging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Large UI refresh and host-integration changes: update home.html to remove the legacy post() helper and inline direct window.external.invoke() JSON command calls for actions (openFile, reopenLast, searchFiles, openRecent, homePageReady). Add DOCTYPE and perform a comprehensive rewrite of toolbar.html styles and structure — modernized CSS variables, theme switch, search/pagination controls, responsive behavior, native context menu, dropdowns, skeleton loader and an edit-mode for toolbar customization. Backend bridge and core files (SearchAndDDE.cpp/h, SumatraPDF.cpp, BridgeDispatcher.cpp) were updated accordingly to align with the new messaging/integration changes. These changes modernize the web UI, improve responsiveness and desktop integration with the host messaging protocol. --- prettysumatra/webui/home.html | 12 +- prettysumatra/webui/toolbar.html | 1517 ++++++++++++++---------- src/SearchAndDDE.cpp | 30 +- src/SearchAndDDE.h | 2 +- src/SumatraPDF.cpp | 13 + src/prettysumatra/BridgeDispatcher.cpp | 112 +- 6 files changed, 1023 insertions(+), 663 deletions(-) diff --git a/prettysumatra/webui/home.html b/prettysumatra/webui/home.html index 02664e894bbc..5cefe5815908 100644 --- a/prettysumatra/webui/home.html +++ b/prettysumatra/webui/home.html @@ -114,10 +114,10 @@
- -
@@ -134,11 +134,11 @@ \ No newline at end of file diff --git a/prettysumatra/webui/toolbar.html b/prettysumatra/webui/toolbar.html index 913d39c3ecb4..0fc7736cf723 100644 --- a/prettysumatra/webui/toolbar.html +++ b/prettysumatra/webui/toolbar.html @@ -1,4 +1,4 @@ - + @@ -8,707 +8,1026 @@ - + +
+ +
SumatraPDF
PrettySumatraPDF
Focused reading
-
- -
-
-
-
-
-
- -
- - - - + +
+
+ +
+ + + +
+ +
+ +
+
+ + +
+
+ +
+ +
+ +
+
+ + +
+
+ +
+ +
+ +
+ + + +
+ + + +
-
+
-
- - - - - + + +
- - +
+ +
+ Personalizando barra + +
+ + +
+ - \ No newline at end of file + diff --git a/src/SearchAndDDE.cpp b/src/SearchAndDDE.cpp index 58b1d54275ed..f717def65c31 100644 --- a/src/SearchAndDDE.cpp +++ b/src/SearchAndDDE.cpp @@ -34,6 +34,7 @@ #include "Toolbar.h" #include "SumatraDialogs.h" #include "Translations.h" +#include "prettysumatra/BridgeDispatcher.h" #include "utils/Log.h" @@ -90,6 +91,12 @@ void FindFirst(MainWindow* win) { } } + // If using hybrid toolbar (WebView2), focus the web-based search + if (prettysumatra::bridge::UseHybridToolbar()) { + prettysumatra::bridge::FocusHybridToolbarSearch(win->hwndFrame); + return; + } + // Don't show a dialog if we don't have to - use the Toolbar instead if (gGlobalPrefs->showToolbar && !win->isFullScreen && !win->presentation) { if (!HwndIsFocused(win->hwndFindEdit)) { @@ -225,14 +232,17 @@ struct FindThreadData { MainWindow* win = nullptr; TextSearch::Direction direction = TextSearch::Direction::Forward; bool wasModified = false; + int startPage = -1; AutoFreeWStr text; HANDLE thread = nullptr; - FindThreadData(MainWindow* win, TextSearch::Direction direction, const char* text, bool wasModified) { + FindThreadData(MainWindow* win, TextSearch::Direction direction, const char* text, bool wasModified, + int startPage) { this->win = win; this->direction = direction; this->text = ToWStr(text); this->wasModified = wasModified; + this->startPage = startPage; } ~FindThreadData() { CloseHandle(thread); } @@ -370,9 +380,13 @@ static void FindThread(FindThreadData* ftd) { TextSel* rect; textSearch->progressCb = MkFunc1(UpdateSearchProgress, ftd); textSearch->SetDirection(ftd->direction); + int searchStartPage = ftd->startPage; + if (searchStartPage <= 0 || !ctrl->ValidPageNo(searchStartPage)) { + searchStartPage = ctrl->CurrentPageNo(); + } if (ftd->wasModified || !ctrl->ValidPageNo(textSearch->GetCurrentPageNo()) || !dm->GetPageInfo(textSearch->GetCurrentPageNo())->visibleRatio) { - rect = textSearch->FindFirst(ctrl->CurrentPageNo(), ftd->text); + rect = textSearch->FindFirst(searchStartPage, ftd->text); } else { rect = textSearch->FindNext(); } @@ -438,12 +452,12 @@ bool AbortFinding(MainWindow* win, bool hideMessage) { // if false, searching for the next occurence of previous term // TODO: should detect wasModified by comparing with the last search result void FindTextOnThread(MainWindow* win, TextSearch::Direction direction, const char* text, bool wasModified, - bool showProgress) { + bool showProgress, int startPage) { AbortFinding(win, false); if (str::IsEmpty(text)) { return; } - FindThreadData* ftd = new FindThreadData(win, direction, text, wasModified); + FindThreadData* ftd = new FindThreadData(win, direction, text, wasModified, startPage); ftd->ShowUI(showProgress); win->findThread = nullptr; auto fn = MkFunc0(FindThread, ftd); @@ -482,7 +496,11 @@ void FindTextOnThread(MainWindow* win, TextSearch::Direction direction, bool sho } } Edit_SetModify(win->hwndFindEdit, FALSE); - FindTextOnThread(win, direction, s, wasModified, showProgress); + // When search text is modified (new search), start from beginning of document + int startPage = wasModified ? + ((direction == TextSearch::Direction::Backward) ? win->ctrl->PageCount() : 1) : + -1; // If not modified, use current position (default behavior) + FindTextOnThread(win, direction, s, wasModified, showProgress, startPage); } void PaintForwardSearchMark(MainWindow* win, HDC hdc) { @@ -783,7 +801,7 @@ static const char* HandleSearchCmd(const char* cmd, bool* ack) { } bool wasModified = true; bool showProgress = true; - FindTextOnThread(win, TextSearch::Direction::Forward, term, wasModified, showProgress); + FindTextOnThread(win, TextSearch::Direction::Forward, term, wasModified, showProgress, 1); win->Focus(); *ack = true; return next; diff --git a/src/SearchAndDDE.h b/src/SearchAndDDE.h index 1214899957d9..c0af745efb76 100644 --- a/src/SearchAndDDE.h +++ b/src/SearchAndDDE.h @@ -46,6 +46,6 @@ void FindSelection(MainWindow* win, TextSearch::Direction direction); bool AbortFinding(MainWindow* win, bool hideMessage); void FindTextOnThread(MainWindow* win, TextSearch::Direction direction, bool showProgress); void FindTextOnThread(MainWindow* win, TextSearch::Direction direction, const char* text, bool wasModified, - bool showProgress); + bool showProgress, int startPage = -1); extern bool gIsStartup; extern StrVec gDdeOpenOnStartup; diff --git a/src/SumatraPDF.cpp b/src/SumatraPDF.cpp index c2a5018eeb85..e970670b77de 100644 --- a/src/SumatraPDF.cpp +++ b/src/SumatraPDF.cpp @@ -5675,6 +5675,17 @@ void SetSidebarVisibility(MainWindow* win, bool tocVisible, bool showFavorites, InvalidateRect(win->favSplitter->hwnd, nullptr, TRUE); } } + + // Notify hybrid toolbar WebView (if present) about panel state changes + if (win->hybridToolbar) { + TempStr jsFav = str::FormatTemp("try{if(window.notifyPanelState)window.notifyPanelState('favorites',%s);}catch(e){};", + showFavorites ? "true" : "false"); + win->hybridToolbar->Eval(jsFav); + + TempStr jsToc = str::FormatTemp("try{if(window.notifyPanelState)window.notifyPanelState('bookmarks',%s);}catch(e){};", + tocVisible ? "true" : "false"); + win->hybridToolbar->Eval(jsToc); + } } // if url-encoded s is bigger than a reasonable URL path, @@ -7014,6 +7025,8 @@ static LRESULT FrameOnCommand(MainWindow* win, HWND hwnd, UINT msg, WPARAM wp, L case CmdFindFirst: if (win->IsCurrentTabAbout()) { HomePageFocusSearch(win); + } else if (prettysumatra::bridge::UseHybridToolbar() && win->hybridToolbar) { + prettysumatra::bridge::FocusHybridToolbarSearch(win->hwndFrame); } else { FindFirst(win); } diff --git a/src/prettysumatra/BridgeDispatcher.cpp b/src/prettysumatra/BridgeDispatcher.cpp index 5871a313ad99..55a1c3d6986b 100644 --- a/src/prettysumatra/BridgeDispatcher.cpp +++ b/src/prettysumatra/BridgeDispatcher.cpp @@ -58,8 +58,8 @@ static bool WindowsPrefersDarkModeForHybridToolbar() { DWORD val = 1; DWORD cbData = sizeof(val); constexpr const wchar_t* kThemeRegPath = L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; - LONG err = RegGetValueW(HKEY_CURRENT_USER, kThemeRegPath, L"AppsUseLightTheme", RRF_RT_REG_DWORD, nullptr, &val, - &cbData); + LONG err = + RegGetValueW(HKEY_CURRENT_USER, kThemeRegPath, L"AppsUseLightTheme", RRF_RT_REG_DWORD, nullptr, &val, &cbData); if (err != ERROR_SUCCESS) { return false; } @@ -136,7 +136,8 @@ static TempStr HybridToolbarThemeJs(HWND hwndFrame) { return str::FormatTemp( "window.__hybridToolbarThemePayload={canvas:'%s',panel:'%s',panel2:'%s',stroke:'%s'," - "text:'%s',muted:'%s',btn:'%s',accent:'%s',brand1:'%s',brand2:'%s',appDark:%s,docInverted:%s,windowsDark:%s,followWindows:%s};" + "text:'%s',muted:'%s',btn:'%s',accent:'%s',brand1:'%s',brand2:'%s',appDark:%s,docInverted:%s,windowsDark:%s," + "followWindows:%s};" "if(window.hybridToolbarApplyTheme){window.hybridToolbarApplyTheme(window.__hybridToolbarThemePayload);}", ColorToCssHex(canvas), ColorToCssHex(panel), ColorToCssHex(panel2), ColorToCssHex(stroke), ColorToCssHex(text), ColorToCssHex(muted), ColorToCssHex(btn), ColorToCssHex(accent), ColorToCssHex(brand1), ColorToCssHex(brand2), @@ -149,7 +150,7 @@ static const char* JsQuoted(const char* s) { static const char empty[] = {'\'', '\'', '\0'}; return empty; } - + // Calculate needed size size_t len = 0; for (const char* p = s; *p; ++p) { @@ -165,12 +166,12 @@ static const char* JsQuoted(const char* s) { break; } } - len += 2; // for surrounding quotes - len += 1; // for null terminator - + len += 2; // for surrounding quotes + len += 1; // for null terminator + char* out = (char*)malloc(len); if (!out) return nullptr; - + char* dst = out; *dst++ = '\''; for (const char* p = s; *p; ++p) { @@ -184,7 +185,7 @@ static const char* JsQuoted(const char* s) { *dst++ = '\''; break; case '\r': - break; // skip carriage returns + break; // skip carriage returns case '\n': *dst++ = '\\'; *dst++ = 'n'; @@ -200,7 +201,7 @@ static const char* JsQuoted(const char* s) { } *dst++ = '\''; *dst = '\0'; - + return out; } @@ -215,15 +216,15 @@ static TempStr HybridToolbarTextJs(HWND hwndFrame) { "pageTemplate:%s,zoomOutTitle:%s,zoomInTitle:%s,viewSinglePage:%s,viewFacing:%s,viewBookView:%s," "continuousTitle:%s,searchPlaceholder:%s,bookmarksTitle:%s,favoritesTitle:%s,fullscreenTitle:%s," "commandPaletteText:%s,rotateLeftTitle:%s,rotateRightTitle:%s,printTitle:%s,themeLabel:%s," - "followWindowsTitle:%s,followingWindowsTitle:%s,darkWord:%s,lightWord:%s,toggleThemeTitle:%s,documentLabel:%s,documentInvertTitle:%s};" + "followWindowsTitle:%s,followingWindowsTitle:%s,darkWord:%s,lightWord:%s,toggleThemeTitle:%s,documentLabel:%s," + "documentInvertTitle:%s};" "if(window.hybridToolbarApplyText){window.hybridToolbarApplyText(window.__hybridToolbarTextPayload);}", JsQuoted(trans::GetCurrentLangCode()), JsQuoted(_TRA("Focused reading")), JsQuoted(_TRA("Open")), JsQuoted(_TRA("Previous page")), JsQuoted(_TRA("Next page")), JsQuoted(_TRA("Page {current} / {total}")), - JsQuoted(_TRA("Zoom out")), JsQuoted(_TRA("Zoom in")), JsQuoted(_TRA("Single Page")), - JsQuoted(_TRA("Facing")), JsQuoted(_TRA("Book View")), JsQuoted(_TRA("Show pages continuously")), - JsQuoted(_TRA("Search text")), JsQuoted(_TRA("Sidebar")), JsQuoted(_TRA("Favorites")), - JsQuoted(_TRA("Fullscreen")), JsQuoted(_TRA("Cmd")), JsQuoted(_TRA("Rotate left")), - JsQuoted(_TRA("Rotate right")), JsQuoted(_TRA("Print")), JsQuoted(_TRA("Theme")), + JsQuoted(_TRA("Zoom out")), JsQuoted(_TRA("Zoom in")), JsQuoted(_TRA("Single Page")), JsQuoted(_TRA("Facing")), + JsQuoted(_TRA("Book View")), JsQuoted(_TRA("Show pages continuously")), JsQuoted(_TRA("Search text")), + JsQuoted(_TRA("Sidebar")), JsQuoted(_TRA("Favorites")), JsQuoted(_TRA("Fullscreen")), JsQuoted(_TRA("Cmd")), + JsQuoted(_TRA("Rotate left")), JsQuoted(_TRA("Rotate right")), JsQuoted(_TRA("Print")), JsQuoted(_TRA("Theme")), JsQuoted(_TRA("Follow Windows")), JsQuoted(_TRA("Following Windows ({mode})")), JsQuoted(_TRA("dark")), JsQuoted(_TRA("light")), JsQuoted(_TRA("Toggle light/dark")), JsQuoted(_TRA("Doc")), JsQuoted(_TRA("Invert document colors"))); @@ -267,7 +268,8 @@ void SyncHybridToolbarSearchText(HWND hwndFrame, const char* text) { escaped = str::ReplaceTemp(escaped, "'", "\\'"); escaped = str::ReplaceTemp(escaped, "\r", ""); escaped = str::ReplaceTemp(escaped, "\n", "\\n"); - TempStr js = str::FormatTemp("window.hybridToolbarSetSearchText && window.hybridToolbarSetSearchText('%s');", escaped); + TempStr js = + str::FormatTemp("window.hybridToolbarSetSearchText && window.hybridToolbarSetSearchText('%s');", escaped); win->hybridToolbar->Eval(js); } @@ -334,7 +336,8 @@ void SyncHybridToolbarZoomState(HWND hwndFrame, float zoomPercent) { if (zoomPercent > 6400.0f) { zoomPercent = 6400.0f; } - TempStr js = str::FormatTemp("window.hybridToolbarSetZoomState && window.hybridToolbarSetZoomState(%.4f);", zoomPercent); + TempStr js = + str::FormatTemp("window.hybridToolbarSetZoomState && window.hybridToolbarSetZoomState(%.4f);", zoomPercent); win->hybridToolbar->Eval(js); } @@ -343,6 +346,7 @@ struct BridgeMessage { const char* path = nullptr; const char* query = nullptr; const char* command = nullptr; + const char* action = nullptr; const char* direction = nullptr; const char* mode = nullptr; int page = 0; @@ -377,6 +381,10 @@ class BridgeMessageVisitor : public json::ValueVisitor { msg->command = str::DupTemp(value); return true; } + if (str::Eq(path, "/payload/action") && type == json::Type::String) { + msg->action = str::DupTemp(value); + return true; + } if (str::Eq(path, "/payload/direction") && type == json::Type::String) { msg->direction = str::DupTemp(value); return true; @@ -511,11 +519,18 @@ static bool DispatchSearch(const BridgeMessage& msg) { } bool wasModified = true; - TempStr currentFind = HwndGetTextTemp(win->hwndFindEdit); - if (str::Eq(msg.query, currentFind)) { + if (str::EqI(msg.action, "step") || str::EqI(msg.action, "next") || str::EqI(msg.action, "prev") || str::EqI(msg.action, "previous")) { wasModified = false; + } else if (str::IsEmpty(msg.action)) { + TempStr currentFind = HwndGetTextTemp(win->hwndFindEdit); + if (str::Eq(msg.query, currentFind)) { + wasModified = false; + } } - FindTextOnThread(win, dir, msg.query, wasModified, true); + HwndSetText(win->hwndFindEdit, msg.query); + Edit_SetModify(win->hwndFindEdit, FALSE); + int startPage = (dir == TextSearch::Direction::Backward) ? win->ctrl->PageCount() : 1; + FindTextOnThread(win, dir, msg.query, wasModified, true, startPage); return true; } @@ -560,8 +575,8 @@ static bool WindowsPrefersDarkModeForHybrid() { DWORD val = 1; DWORD cbData = sizeof(val); constexpr const wchar_t* kThemeRegPath = L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; - LONG err = RegGetValueW(HKEY_CURRENT_USER, kThemeRegPath, L"AppsUseLightTheme", RRF_RT_REG_DWORD, nullptr, &val, - &cbData); + LONG err = + RegGetValueW(HKEY_CURRENT_USER, kThemeRegPath, L"AppsUseLightTheme", RRF_RT_REG_DWORD, nullptr, &val, &cbData); if (err != ERROR_SUCCESS) { return false; } @@ -766,13 +781,13 @@ static ::TempStr SerializeRecentFilesToJson() { const size_t bufSize = 8192; char* buf = (char*)malloc(bufSize); if (!buf) return nullptr; - + char* dst = buf; - size_t remaining = bufSize - 1; // Leave room for null terminator - + size_t remaining = bufSize - 1; // Leave room for null terminator + *dst++ = '['; remaining--; - + bool first = true; for (int i = 0; i < kHomePageMaxRecentItems; i++) { FileState* fs = gFileHistory.Get(i); @@ -782,13 +797,13 @@ static ::TempStr SerializeRecentFilesToJson() { if (!fs->filePath) { continue; } - + if (!first && remaining > 0) { *dst++ = ','; remaining--; } first = false; - + // Extract filename from path const char* filePath = fs->filePath; const char* fileName = filePath; @@ -797,7 +812,7 @@ static ::TempStr SerializeRecentFilesToJson() { fileName = p + 1; } } - + // Build the JSON entry const char* entryStart = "{\"path\":"; if (remaining > str::Len(entryStart)) { @@ -805,35 +820,35 @@ static ::TempStr SerializeRecentFilesToJson() { dst += str::Len(entryStart); remaining -= str::Len(entryStart); } - + AppendJsonString(dst, remaining, filePath); - + const char* separator = ",\"name\":"; if (remaining > str::Len(separator)) { memcpy(dst, separator, str::Len(separator)); dst += str::Len(separator); remaining -= str::Len(separator); } - + AppendJsonString(dst, remaining, fileName); - + if (remaining > 0) { *dst++ = '}'; remaining--; } } - + if (remaining > 0) { *dst++ = ']'; remaining--; } - + if (remaining > 0) { *dst++ = '\0'; } else { buf[bufSize - 1] = '\0'; } - + return buf; } @@ -852,21 +867,17 @@ static bool DispatchHomePageReady() { sCachedRecentFilesJson = (char*)SerializeRecentFilesToJson(); sCachedRecentSignature = recentSignature; } - + // Send recent files list to HomePage const char* recentFilesJson = sCachedRecentFilesJson ? sCachedRecentFilesJson : "[]"; - char* js = str::FormatTemp( - "window.setRecentFiles && window.setRecentFiles(%s);", - recentFilesJson); + char* js = str::FormatTemp("window.setRecentFiles && window.setRecentFiles(%s);", recentFilesJson); win->homePageWebView->Eval(js); - + // Apply current theme bool isDarkMode = HomePageUsesDarkTheme(); - char* themeJs = str::FormatTemp( - "window.applyTheme && window.applyTheme(%s);", - isDarkMode ? "true" : "false"); + char* themeJs = str::FormatTemp("window.applyTheme && window.applyTheme(%s);", isDarkMode ? "true" : "false"); win->homePageWebView->Eval(themeJs); - + return true; } @@ -951,8 +962,9 @@ static bool DispatchKnownCommand(const BridgeMessage& msg) { return DispatchReopenLast(); } - if (str::Eq(msg.name, kAddAnnotation) || str::Eq(msg.name, kEditAnnotation) || str::Eq(msg.name, kDeleteAnnotation) || - str::Eq(msg.name, kExportAnnotations) || str::Eq(msg.name, kImportAnnotations)) { + if (str::Eq(msg.name, kAddAnnotation) || str::Eq(msg.name, kEditAnnotation) || + str::Eq(msg.name, kDeleteAnnotation) || str::Eq(msg.name, kExportAnnotations) || + str::Eq(msg.name, kImportAnnotations)) { if (LogBridgeMessages()) { logf("[PrettySumatraBridge] command '%s' not implemented yet\n", msg.name); } @@ -968,9 +980,7 @@ void SyncHomePageTheme(HWND hwndFrame) { } // Apply the actual app theme so the home page stays in sync with manual theme changes. bool isDarkMode = HomePageUsesDarkTheme(); - char* themeJs = str::FormatTemp( - "window.applyTheme && window.applyTheme(%s);", - isDarkMode ? "true" : "false"); + char* themeJs = str::FormatTemp("window.applyTheme && window.applyTheme(%s);", isDarkMode ? "true" : "false"); win->homePageWebView->Eval(themeJs); } From eb89ffa528aadc597e9b187cd8b3f1910490770e Mon Sep 17 00:00:00 2001 From: "[JaviLendi]" Date: Wed, 13 May 2026 22:52:11 +0200 Subject: [PATCH 2/8] Add inline highlighter palette and bridge color support Introduce an inline highlighter color picker to the toolbar (UI, CSS and JS) with selectable color chips, open/close behavior, and sending color-aware highlight commands to the native app. BridgeDispatcher was extended to accept color payloads, store a pending highlight color, and dispatch highlight commands from the web UI; a GetPendingHighlightColor() accessor was added to consume that color when creating highlight annotations. Native changes include using the pending bridge color when creating highlight annotations, adding a user-facing notification when highlighting requires a text selection, adjusting toolbar height breakpoints, and small fixes (annotation hit-testing in context menu command handling, escape-to-exit edit mode, removal of redundant dropdown calls, and minor CSS/HTML tweaks). Files changed: prettysumatra/webui/toolbar.html, src/prettysumatra/BridgeDispatcher.{cpp,h}, src/SumatraPDF.cpp, src/WindowTab.h. --- prettysumatra/webui/toolbar.html | 282 +++++++++++++++++++------ src/SumatraPDF.cpp | 47 +++-- src/WindowTab.h | 1 + src/prettysumatra/BridgeDispatcher.cpp | 58 +++++ src/prettysumatra/BridgeDispatcher.h | 3 + 5 files changed, 309 insertions(+), 82 deletions(-) diff --git a/prettysumatra/webui/toolbar.html b/prettysumatra/webui/toolbar.html index 0fc7736cf723..c8309090c55d 100644 --- a/prettysumatra/webui/toolbar.html +++ b/prettysumatra/webui/toolbar.html @@ -1,4 +1,3 @@ - @@ -8,13 +7,12 @@ - +
@@ -556,8 +597,28 @@
-
- +
+
+ + + +
+
+ +
+ +
+
-
- - -
@@ -633,7 +720,7 @@
- + @@ -679,6 +766,23 @@ window.hybridToolbarApplyText=applyToolbarText; if(window.__hybridToolbarTextPayload) applyToolbarText(window.__hybridToolbarTextPayload); // `post` helper removed — use direct host invoke where needed. // debug badge removed: no on-screen transient notifications +function updatePageMeta(t) { + if (!pageMeta) return; + pageMeta.textContent = '/' + String(t); +} + +function updatePageInputWidth(rawValue) { + if (!pageInput) return; + const value = String(rawValue ?? pageInput.value ?? '').trim(); + const digitCount = Math.max(1, (value.match(/\d/g) || []).length); + const viewport = window.innerWidth || 1200; + let maxDigits = 6; + if (viewport <= 650) maxDigits = 4; + else if (viewport <= 1000) maxDigits = 5; + const widthDigits = Math.max(1, Math.min(maxDigits, digitCount)); + pageInput.style.width = `calc(${widthDigits}ch + 0.9rem)`; +} + function setPage(p) { const t = Math.max(1, parseInt(totalPages||'1', 10)); let n = parseInt(p||'1', 10); @@ -688,7 +792,9 @@ if (pageInput) { pageInput.max = String(t); pageInput.value = String(n); + updatePageInputWidth(pageInput.value); } + updatePageMeta(t); // update prev/next disabled state for accessibility if (pagePrevButton) { const prevDisabled = n <= 1; pagePrevButton.disabled = prevDisabled; pagePrevButton.setAttribute('aria-disabled', String(prevDisabled)); } if (pageNextButton) { const nextDisabled = n >= t; pageNextButton.disabled = nextDisabled; pageNextButton.setAttribute('aria-disabled', String(nextDisabled)); } @@ -699,6 +805,7 @@ const cP = Math.max(1, parseInt(c||'1', 10)); const t = Math.max(1, parseInt(pCount||'1', 10)); totalPages = t; + updatePageMeta(t); // delegate to setPage so clamping and nav updates happen in one place setPage(cP); } @@ -766,6 +873,8 @@ function hybridToolbarSetAnnotationAvailability(opts={}) { // opts: { highlight: bool, annotate: bool, draw: bool } setButtonEnabled('highlightButton', !!opts.highlight); + setButtonEnabled('underlineButton', !!opts.highlight); + setButtonEnabled('strikeoutButton', !!opts.highlight); setButtonEnabled('annotateButton', !!opts.annotate); setButtonEnabled('drawButton', !!opts.draw); } @@ -818,6 +927,8 @@ const serverSourcedToggles = new Set(['toggleFavorites','toggleBookmarks','toggleDocumentInvert','showPagesContinuously']); document.addEventListener('click', (e) => { const b = e.target.closest('[data-exec]'); if (!b || isToolbarUnlocked) return; + // Ignore clicks on the small color menu toggle to avoid opening the palette + if (e.target.closest('.color-menu-btn')) return; if (b.classList.contains('toggle')) { // optimistic visual toggle for responsiveness const willActive = !b.classList.contains('active'); @@ -826,7 +937,29 @@ // if state is server-owned, mark busy until native confirms (with timeout fallback) try { if (serverSourcedToggles.has(String(b.dataset.exec||''))) markBusy(b); } catch(e) {} } - if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: b.dataset.exec||'' }, ts: Date.now() })); + try { + if (window.external && typeof window.external.invoke === 'function') { + const cmdName = String(b.dataset.exec||''); + const payload = { command: cmdName }; + // If this is a text-annotation command that uses a color, include currently selected color + const colorCommands = new Set(['highlightSelection','createAnnotUnderline','createAnnotStrikeOut']); + if (colorCommands.has(cmdName)) { + const toolKey = String(b.dataset.tool || activeAnnotTool || '').toLowerCase(); + const selectedHex = normalizeAnnotColorHex( + (annotColorState && annotColorState[toolKey]) || + (defaultAnnotColors && defaultAnnotColors[toolKey]) + ); + if (selectedHex) { + payload.value = selectedHex; + const chip = typeof getAnnotChipByHex === 'function' ? getAnnotChipByHex(selectedHex) : null; + if (chip) { + payload.color = chip.dataset.name || chip.getAttribute('data-name') || ''; + } + } + } + window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: payload, ts: Date.now() })); + } + } catch (e) { console.error('invoke execCommand error', e); } }); // Busy helper with timeout fallback @@ -855,7 +988,9 @@ } })); -if(pageInput) { pageInput.addEventListener('change', () => { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'goToPage', payload: { page: setPage(pageInput.value) }, ts: Date.now() })); }); pageInput.addEventListener('keydown', (e) => { if(e.key==='Enter') pageInput.dispatchEvent(new Event('change')); }); } +if(pageInput) { pageInput.addEventListener('input', () => { updatePageInputWidth(pageInput.value); }); pageInput.addEventListener('change', () => { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'goToPage', payload: { page: setPage(pageInput.value) }, ts: Date.now() })); }); pageInput.addEventListener('keydown', (e) => { if(e.key==='Enter') pageInput.dispatchEvent(new Event('change')); }); } +window.addEventListener('resize', () => { updatePageInputWidth(pageInput?.value); }); +updatePageInputWidth(pageInput?.value); // wire up custom dropdowns function selectZoomOption(dropdown, li) { const menu = dropdown.querySelector('.dropdown-menu'); @@ -984,9 +1119,19 @@ btn.addEventListener('click', () => { if(isToolbarUnlocked) return; const val = btn.dataset.val; - if (val === 'auto') { if (!lastFollowWindows) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleThemeFollowWindows' }, ts: Date.now() })); } if ((lastWindowsDark && !lastDocInverted) || (!lastWindowsDark && lastDocInverted)) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleDocumentInvert' }, ts: Date.now() })); } } - else if (val === 'light') { if (lastFollowWindows) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleThemeFollowWindows' }, ts: Date.now() })); } if (lastAppDark) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleTheme' }, ts: Date.now() })); } if (lastDocInverted) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleDocumentInvert' }, ts: Date.now() })); } } - else if (val === 'dark') { if (lastFollowWindows) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleThemeFollowWindows' }, ts: Date.now() })); } if (!lastAppDark) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleTheme' }, ts: Date.now() })); } if (!lastDocInverted) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleDocumentInvert' }, ts: Date.now() })); } } + if (val === 'auto') { + if (!lastFollowWindows) { + if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleThemeFollowWindows' }, ts: Date.now() })); + } + // Ensure document invert matches Windows theme deterministically + if (lastWindowsDark) { + if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'setDocumentInvertOn' }, ts: Date.now() })); + } else { + if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'setDocumentInvertOff' }, ts: Date.now() })); + } + } + else if (val === 'light') { if (lastFollowWindows) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleThemeFollowWindows' }, ts: Date.now() })); } if (lastAppDark) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleTheme' }, ts: Date.now() })); } if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'setDocumentInvertOff' }, ts: Date.now() })); } + else if (val === 'dark') { if (lastFollowWindows) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleThemeFollowWindows' }, ts: Date.now() })); } if (!lastAppDark) { if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'toggleTheme' }, ts: Date.now() })); } if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'execCommand', payload: { command: 'setDocumentInvertOn' }, ts: Date.now() })); } }); }); } @@ -1096,82 +1241,166 @@ setTimeout(revealToolbar, 800); if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) revealToolbar(); + // ========================================================= -// HIGHLIGHTER INLINE COLOR PICKER LOGIC +// COLOR PICKERS LOGIC (Highlight, Underline, Strikeout) // ========================================================= -const highlightCombo = document.getElementById('highlightCombo'); -const highlightMenuButton = document.getElementById('highlightMenuButton'); -const highlightCurrentColor = document.getElementById('highlightCurrentColor'); -const highlightColorChips = Array.from(document.querySelectorAll('.highlight-color-chip')); -const highlightButton = document.getElementById('highlightButton'); +const colorCombos = Array.from(document.querySelectorAll('.color-combo')); +const colorSelectorBtn = document.getElementById('colorSelectorBtn'); +const commonColorPalette = document.getElementById('commonColorPalette'); +const colorChips = Array.from(document.querySelectorAll('#commonColorPalette .color-chip')); +const annotColorStorageKey = 'sumatra-toolbar-annot-colors-v1'; +const defaultAnnotColors = { + highlight: '#facc15', + underline: '#22c55e', + strikeout: '#ef4444', +}; +const annotToolLabels = { + highlight: 'Resaltar', + underline: 'Subrayar', + strikeout: 'Tachar', +}; + +let activeAnnotTool = 'highlight'; +let annotColorState = loadAnnotColorState(); + +const annotButtons = [ + { id: 'highlightButton', tool: 'highlight' }, + { id: 'underlineButton', tool: 'underline' }, + { id: 'strikeoutButton', tool: 'strikeout' }, +]; + +function normalizeAnnotColorHex(colorHex) { + const value = String(colorHex || '').trim().toLowerCase(); + if (!value) return ''; + return value.startsWith('#') ? value : `#${value}`; +} + +function loadAnnotColorState() { + const nextState = { ...defaultAnnotColors }; + try { + const raw = localStorage.getItem(annotColorStorageKey); + if (!raw) return nextState; + const parsed = JSON.parse(raw); + if (!parsed || typeof parsed !== 'object') return nextState; + Object.keys(defaultAnnotColors).forEach(tool => { + const saved = normalizeAnnotColorHex(parsed[tool]); + if (saved) nextState[tool] = saved; + }); + } catch (e) {} + return nextState; +} -function setHighlightColorChip(chip) { - if (!chip) return; +function saveAnnotColorState() { + try { + localStorage.setItem(annotColorStorageKey, JSON.stringify(annotColorState)); + } catch (e) {} +} - highlightColorChips.forEach(c => c.classList.toggle('active', c === chip)); +function getAnnotChipByHex(colorHex) { + const target = normalizeAnnotColorHex(colorHex); + if (!target) return null; + return colorChips.find(chip => normalizeAnnotColorHex(chip.dataset.color) === target) || null; +} - const color = chip.dataset.color || '#facc15'; - const colorName = chip.dataset.highlightColor || 'yellow'; +function setPaletteActiveChip(colorHex) { + const targetChip = getAnnotChipByHex(colorHex); + colorChips.forEach(chip => chip.classList.toggle('active', chip === targetChip)); +} - if (highlightCurrentColor) { - highlightCurrentColor.style.setProperty('--highlight-current', color); - } +function syncAnnotToolSwatches() { + Object.keys(defaultAnnotColors).forEach(tool => { + const swatch = document.querySelector(`[data-tool-swatch="${tool}"]`); + if (!swatch) return; + const colorHex = normalizeAnnotColorHex(annotColorState[tool] || defaultAnnotColors[tool]); + swatch.style.setProperty('--tool-color', colorHex); + const chip = getAnnotChipByHex(colorHex); + const colorName = chip?.getAttribute('title') || chip?.getAttribute('data-name') || colorHex; + swatch.title = `Color guardado para ${annotToolLabels[tool] || tool}: ${colorName}`; + }); +} - highlightCombo?.classList.remove('open'); - highlightMenuButton?.setAttribute('aria-expanded', 'false'); +function syncActiveAnnotToolUI(tool) { + annotButtons.forEach(btnInfo => { + const btnEl = document.getElementById(btnInfo.id); + const wrapper = btnEl?.closest('.annot-tool'); + const isActive = btnInfo.tool === tool; + if (btnEl) { + btnEl.classList.toggle('active-tool', isActive); + btnEl.setAttribute('aria-pressed', String(isActive)); + } + if (wrapper) wrapper.classList.toggle('is-active', isActive); + }); +} - if (window.external && typeof window.external.invoke === 'function') { - window.external.invoke(JSON.stringify({ - type: 'command', - name: 'setHighlightColor', - payload: { color: colorName, value: color }, - ts: Date.now() - })); - } +function setActiveAnnotTool(tool) { + if (!tool || !defaultAnnotColors[tool]) tool = 'highlight'; + activeAnnotTool = tool; + syncActiveAnnotToolUI(tool); + setPaletteActiveChip(annotColorState[tool] || defaultAnnotColors[tool]); } -highlightMenuButton?.addEventListener('click', (e) => { - e.stopPropagation(); - const willOpen = !highlightCombo.classList.contains('open'); +function setAnnotToolColor(tool, colorHex) { + const normalized = normalizeAnnotColorHex(colorHex) || defaultAnnotColors[tool] || defaultAnnotColors.highlight; + annotColorState = { ...annotColorState, [tool]: normalized }; + saveAnnotColorState(); + syncAnnotToolSwatches(); + if (tool === activeAnnotTool) setPaletteActiveChip(normalized); +} - // Close other custom dropdowns if any - document.querySelectorAll('.custom-dropdown.open').forEach(d => { - d.classList.remove('open'); +annotButtons.forEach(btnInfo => { + const btnEl = document.getElementById(btnInfo.id); + if (!btnEl) return; + btnEl.addEventListener('click', () => { + setActiveAnnotTool(btnInfo.tool); }); +}); + +syncAnnotToolSwatches(); +setActiveAnnotTool(activeAnnotTool); - highlightCombo.classList.toggle('open', willOpen); - highlightMenuButton.setAttribute('aria-expanded', String(willOpen)); +colorSelectorBtn?.addEventListener('click', (e) => { + e.stopPropagation(); + setPaletteActiveChip(annotColorState[activeAnnotTool] || defaultAnnotColors[activeAnnotTool]); + commonColorPalette.classList.toggle('open'); }); -highlightColorChips.forEach(chip => { - chip.addEventListener('click', (e) => { - e.stopPropagation(); - setHighlightColorChip(chip); - }); +document.addEventListener('click', (e) => { + if (!commonColorPalette.contains(e.target) && !e.target.closest('#colorSelectorBtn')) { + commonColorPalette.classList.remove('open'); + } }); -// Ensure clicking the main highlight button enters highlight mode (with current color) -highlightButton?.addEventListener('pointerdown', (e) => { - try { - e.preventDefault(); - e.stopPropagation(); - const activeChip = document.querySelector('.highlight-color-chip.active'); - const color = (activeChip && activeChip.dataset && activeChip.dataset.color) ? activeChip.dataset.color : '#facc15'; +colorChips.forEach(chip => { + const colorHex = normalizeAnnotColorHex(chip.getAttribute('data-color')); + chip.style.backgroundColor = colorHex; + + chip.addEventListener('click', () => { + const colorName = chip.getAttribute('data-name'); + setAnnotToolColor(activeAnnotTool, colorHex); + setPaletteActiveChip(colorHex); + + const commandName = `set${activeAnnotTool.charAt(0).toUpperCase() + activeAnnotTool.slice(1)}Color`; if (window.external && typeof window.external.invoke === 'function') { window.external.invoke(JSON.stringify({ type: 'command', - name: 'execCommand', - payload: { command: 'highlightSelection', color: color }, + name: commandName, + payload: { color: colorName, value: colorHex }, ts: Date.now() })); } - } catch (ex) {} + + commonColorPalette.classList.remove('open'); + }); }); document.addEventListener('click', (e) => { - if (!highlightCombo || highlightCombo.contains(e.target)) return; - highlightCombo.classList.remove('open'); - highlightMenuButton?.setAttribute('aria-expanded', 'false'); + colorCombos.forEach(combo => { + if (!combo.contains(e.target)) { + combo.classList.remove('open'); + combo.querySelector('.color-menu-btn')?.setAttribute('aria-expanded', 'false'); + } + }); }); diff --git a/src/Annotation.cpp b/src/Annotation.cpp index eda9c035f80b..92249520b05e 100644 --- a/src/Annotation.cpp +++ b/src/Annotation.cpp @@ -21,6 +21,7 @@ extern "C" { #include "Commands.h" #include "utils/Log.h" +#include /* Vec GetQuadPointsAsRect(Annotation*); @@ -156,7 +157,12 @@ RectF GetBounds(Annotation* annot) { rc = pdf_bound_annot(ctx, a); } fz_catch(ctx) { - fz_report_error(ctx); + const char* mupdfErr = fz_caught_message(ctx); + if (mupdfErr && strstr(mupdfErr, "items left on stack in draw device") != nullptr) { + logf("Suppressed mupdf draw-device stack warning: '%s'\n", mupdfErr); + } else { + fz_report_error(ctx); + } logf("GetBounds(): pdf_bound_annot() failed\n"); } annot->bounds = ToRectF(rc); @@ -192,7 +198,12 @@ void SetRect(Annotation* annot, RectF r) { pdf_update_annot(ctx, a); } fz_catch(ctx) { - fz_report_error(ctx); + const char* mupdfErr = fz_caught_message(ctx); + if (mupdfErr && strstr(mupdfErr, "items left on stack in draw device") != nullptr) { + logf("Suppressed mupdf draw-device stack warning: '%s'\n", mupdfErr); + } else { + fz_report_error(ctx); + } // can happen for non-moveable annotations failed = true; logf("SetRect(): pdf_set_annot_rect() or pdf_update_annot() failed\n"); @@ -220,7 +231,12 @@ const char* Author(Annotation* annot) { s = pdf_annot_author(ctx, a); } fz_catch(ctx) { - fz_report_error(ctx); + const char* mupdfErr = fz_caught_message(ctx); + if (mupdfErr && strstr(mupdfErr, "items left on stack in draw device") != nullptr) { + logf("Suppressed mupdf draw-device stack warning: '%s'\n", mupdfErr); + } else { + fz_report_error(ctx); + } s = nullptr; } if (!s || str::IsEmptyOrWhiteSpace(s)) { @@ -239,7 +255,12 @@ int Quadding(Annotation* annot) { res = pdf_annot_quadding(ctx, a); } fz_catch(ctx) { - fz_report_error(ctx); + const char* mupdfErr = fz_caught_message(ctx); + if (mupdfErr && strstr(mupdfErr, "items left on stack in draw device") != nullptr) { + logf("Suppressed mupdf draw-device stack warning: '%s'\n", mupdfErr); + } else { + fz_report_error(ctx); + } logf("Quadding(): pdf_annot_quadding() failed\n"); } return res; diff --git a/src/EngineMupdf.cpp b/src/EngineMupdf.cpp index 8a13b3784bdc..77e274f0664a 100644 --- a/src/EngineMupdf.cpp +++ b/src/EngineMupdf.cpp @@ -3267,7 +3267,12 @@ RenderedBitmap* EngineMupdf::RenderPage(RenderPageArgs& args) { fz_drop_display_list(ctx, keptList); } fz_catch(ctx) { - fz_report_error(ctx); + const char* mupdfErr = fz_caught_message(ctx); + if (mupdfErr && strstr(mupdfErr, "items left on stack in draw device") != nullptr) { + logf("Suppressed mupdf draw-device stack warning: '%s'\n", mupdfErr); + } else { + fz_report_error(ctx); + } delete bitmap; return nullptr; } @@ -3310,7 +3315,12 @@ RenderedBitmap* EngineMupdf::RenderPage(RenderPageArgs& args) { fz_drop_pixmap(ctx, pix); } fz_catch(ctx) { - fz_report_error(ctx); + const char* mupdfErr = fz_caught_message(ctx); + if (mupdfErr && strstr(mupdfErr, "items left on stack in draw device") != nullptr) { + logf("Suppressed mupdf draw-device stack warning: '%s'\n", mupdfErr); + } else { + fz_report_error(ctx); + } delete bitmap; return nullptr; } @@ -3328,7 +3338,12 @@ RenderedBitmap* EngineMupdf::RenderPage(RenderPageArgs& args) { fz_drop_pixmap(ctx, pix); } fz_catch(ctx) { - fz_report_error(ctx); + const char* mupdfErr = fz_caught_message(ctx); + if (mupdfErr && strstr(mupdfErr, "items left on stack in draw device") != nullptr) { + logf("Suppressed mupdf draw-device stack warning: '%s'\n", mupdfErr); + } else { + fz_report_error(ctx); + } delete bitmap; return nullptr; } diff --git a/src/Notifications.cpp b/src/Notifications.cpp index b4bb680d3223..e4ce6532f168 100644 --- a/src/Notifications.cpp +++ b/src/Notifications.cpp @@ -24,6 +24,7 @@ #include "utils/Log.h" using Gdiplus::Graphics; +using Gdiplus::GraphicsPath; using Gdiplus::Pen; using Gdiplus::SolidBrush; @@ -45,6 +46,33 @@ Kind kNotifAdHoc = "notifAdHoc"; constexpr int kPadding = 6; constexpr int kTopLeftMargin = 8; +constexpr int kNotifRadius = 10; +constexpr int kNotifBorder = 1; +constexpr int kNotifAccentHeight = 4; +constexpr int kNotifCloseInset = 4; +constexpr int kNotifCloseSize = 18; +constexpr int kNotifProgressHeight = 4; +constexpr int kNotifTextPadX = 14; +constexpr int kNotifTextPadY = 11; +constexpr int kNotifGapY = 8; + +static void AddRoundedRect(GraphicsPath& path, const Rect& rc, int radius) { + int d = radius * 2; + if (radius <= 0 || rc.dx <= d || rc.dy <= d) { + path.AddRectangle(Gdiplus::Rect(rc.x, rc.y, rc.dx, rc.dy)); + return; + } + path.StartFigure(); + path.AddArc(rc.x, rc.y, d, d, 180, 90); + path.AddLine(rc.x + radius, rc.y, rc.x + rc.dx - radius, rc.y); + path.AddArc(rc.x + rc.dx - d, rc.y, d, d, 270, 90); + path.AddLine(rc.x + rc.dx, rc.y + radius, rc.x + rc.dx, rc.y + rc.dy - radius); + path.AddArc(rc.x + rc.dx - d, rc.y + rc.dy - d, d, d, 0, 90); + path.AddLine(rc.x + rc.dx - radius, rc.y + rc.dy, rc.x + radius, rc.y + rc.dy); + path.AddArc(rc.x, rc.y + rc.dy - d, d, d, 90, 90); + path.AddLine(rc.x, rc.y + rc.dy - radius, rc.x, rc.y + radius); + path.CloseFigure(); +} constexpr UINT_PTR kNotifTimerTimeoutId = 1; constexpr UINT_PTR kNotifTimerDelayId = 2; @@ -240,7 +268,6 @@ int CalcPerc(int current, int total) { } constexpr int kCloseLeftMargin = 16; -constexpr int kProgressDy = 5; void NotificationWnd::Layout(const char* message) { Size szText; @@ -251,25 +278,26 @@ void NotificationWnd::Layout(const char* message) { ReleaseDC(hwnd, hdc); } - int padX = DpiScale(hwnd, 12); - int padY = DpiScale(hwnd, 8); - int dx = padX + szText.dx + padX; + int padX = DpiScale(hwnd, kNotifTextPadX); + int padY = DpiScale(hwnd, kNotifTextPadY); + int accentWidth = DpiScale(hwnd, 5); + int closeDx = DpiScale(hwnd, kNotifCloseSize); + int closeInset = DpiScale(hwnd, kNotifCloseInset); + int dx = padX + accentWidth + padX + szText.dx + padX; int dy = padY + szText.dy + padY; - rTxt = {padX, padY, szText.dx, szText.dy}; + rTxt = {padX + accentWidth + padX, padY, szText.dx, szText.dy}; if (!noClose) { - int closeDx = DpiScale(hwnd, 16); - int leftMargin = DpiScale(hwnd, kCloseLeftMargin - padX); - rClose = {dx + leftMargin, padY, closeDx, closeDx + 2}; - // close button - dx += leftMargin + closeDx + padX; + int closeSpace = DpiScale(hwnd, kCloseLeftMargin); + rClose = {dx + closeSpace - closeDx, padY + closeInset, closeDx, closeDx}; + dx += closeSpace + closeDx + padX; } else { rClose = {}; dx += padX; } - int progressDy = DpiScale(hwnd, kProgressDy); - rProgress = {padX, dy, szText.dx, progressDy}; + int progressDy = DpiScale(hwnd, kNotifProgressHeight); + rProgress = {rTxt.x, dy, szText.dx, progressDy}; if (HasProgress()) { - dy += padY + progressDy + padY; + dy += DpiScale(hwnd, kNotifGapY) + progressDy + padY; } Rect rCurr = WindowRect(hwnd); @@ -295,8 +323,7 @@ void NotificationWnd::Layout(const char* message) { // y-center close if (!noClose) { - int closeDx = rClose.dx; - rClose.y = ((dy - closeDx) / 2) + 1; + rClose.y = ((dy - rClose.dy) / 2); } if (dx == rCurr.dx && dy == rCurr.dy) { @@ -328,26 +355,40 @@ void NotificationWnd::OnPaint(HDC hdcIn, PAINTSTRUCT* ps) { ScopedSelectObject fontPrev(hdc, font); COLORREF colBg = ThemeNotificationsBackgroundColor(); - COLORREF colBorder = MkGray(0xdd); + COLORREF colBorder = AccentColor(colBg, 4); + COLORREF colAccent = ThemeNotificationsProgressColor(); COLORREF colTxt = ThemeNotificationsTextColor(); - if (highlight) { - colBg = ThemeNotificationsHighlightColor(); - colBorder = colBg; - colTxt = ThemeNotificationsHighlightTextColor(); - } - // COLORREF colBg = MkRgb(0xff, 0xff, 0x5c); - // COLORREF colBg = MkGray(0xff); Graphics graphics(hdc); + graphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias); + graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHalf); + + { + SolidBrush clearBr(GdiRgbFromCOLORREF(colBg)); + graphics.FillRectangle(&clearBr, 0, 0, rc.dx, rc.dy); + } + + GraphicsPath cardPath; + int radius = DpiScale(hwnd, kNotifRadius); + AddRoundedRect(cardPath, rc, radius); + SolidBrush br(GdiRgbFromCOLORREF(colBg)); - auto grc = Gdiplus::Rect(0, 0, rc.dx, rc.dy); - graphics.FillRectangle(&br, grc); + Pen borderPen(GdiRgbFromCOLORREF(colBorder)); + borderPen.SetWidth(kNotifBorder); + borderPen.SetAlignment(Gdiplus::PenAlignmentInset); + graphics.FillPath(&br, &cardPath); + graphics.DrawPath(&borderPen, &cardPath); - if (false) { - Pen pen(GdiRgbFromCOLORREF(colBorder)); - pen.SetWidth(4); - grc = {rc.x, rc.y, rc.dx, rc.dy}; - graphics.DrawRectangle(&pen, grc); + int accentHeight = DpiScale(hwnd, kNotifAccentHeight); + int accentInset = radius; + int accentWidth = rc.dx - 2 * accentInset; + if (accentWidth < 0) { + accentWidth = 0; + } + if (accentHeight > 0 && accentWidth > 0) { + Rect accent = {accentInset, 0, accentWidth, accentHeight}; + SolidBrush accentBr(GdiRgbFromCOLORREF(colAccent)); + graphics.FillRectangle(&accentBr, accent.x, accent.y, accent.dx, accent.dy); } SetBkMode(hdc, TRANSPARENT); @@ -363,6 +404,9 @@ void NotificationWnd::OnPaint(HDC hdcIn, PAINTSTRUCT* ps) { args.hdc = hdc; args.r = rClose; args.isHover = rClose.Contains(curPos); + args.colX = kColCloseX; + args.colXHover = kColCloseXHover; + args.colHoverBg = kColCloseXHoverBg; DrawCloseButton(args); } #if 0 @@ -377,20 +421,28 @@ void NotificationWnd::OnPaint(HDC hdcIn, PAINTSTRUCT* ps) { if (HasProgress()) { rc = rProgress; int progressWidth = rc.dx; - COLORREF col = ThemeNotificationsProgressColor(); - Pen pen(GdiRgbFromCOLORREF(col)); - grc = {rc.x, rc.y, rc.dx, rc.dy}; - graphics.DrawRectangle(&pen, grc); - - rc.x += 2; - rc.dx = (progressWidth - 3) * progressPerc / 100; - rc.y += 2; - rc.dy -= 3; + Rect track = {rc.x, rc.y, rc.dx, rc.dy}; + SolidBrush trackBr(GdiRgbFromCOLORREF(AccentColor(colBg, 18))); + GraphicsPath trackPath; + AddRoundedRect(trackPath, track, track.dy / 2); + graphics.FillPath(&trackBr, &trackPath); + + rc.x += 1; + rc.y += 1; + rc.dx = (progressWidth - 2) * progressPerc / 100; + if (rc.dx < 0) { + rc.dx = 0; + } + rc.dy -= 2; + if (rc.dy < 1) { + rc.dy = 1; + } br.SetColor(GdiRgbFromCOLORREF(col)); - grc = {rc.x, rc.y, rc.dx, rc.dy}; - graphics.FillRectangle(&br, grc); + GraphicsPath fillPath; + AddRoundedRect(fillPath, rc, rc.dy / 2); + graphics.FillPath(&br, &fillPath); } buffer.Flush(hdcIn); @@ -478,7 +530,7 @@ LRESULT NotificationWnd::WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { return 0; } - if (WM_LBUTTONUP) { + if (WM_LBUTTONUP == msg) { Point pt = Point(GET_X_LPARAM(lp), GET_Y_LPARAM(lp)); if (!noClose && rClose.Contains(pt)) { // TODO a better way to delete myself diff --git a/src/Settings.h b/src/Settings.h index b9c8906d46b3..8af05881ce98 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -674,10 +674,10 @@ static const FieldInfo gChmUIFields[] = { static const StructInfo gChmUIInfo = {sizeof(ChmUI), 1, gChmUIFields, "UseFixedPageUI"}; static const FieldInfo gAnnotationsFields[] = { - {offsetof(Annotations, highlightColor), SettingType::Color, (intptr_t)"#ffff00"}, - {offsetof(Annotations, underlineColor), SettingType::Color, (intptr_t)"#00ff00"}, - {offsetof(Annotations, squigglyColor), SettingType::Color, (intptr_t)"#ff00ff"}, - {offsetof(Annotations, strikeOutColor), SettingType::Color, (intptr_t)"#ff0000"}, + {offsetof(Annotations, highlightColor), SettingType::Color, (intptr_t)"#facc15"}, + {offsetof(Annotations, underlineColor), SettingType::Color, (intptr_t)"#22c55e"}, + {offsetof(Annotations, squigglyColor), SettingType::Color, (intptr_t)"#ec4899"}, + {offsetof(Annotations, strikeOutColor), SettingType::Color, (intptr_t)"#ef4444"}, {offsetof(Annotations, freeTextColor), SettingType::Color, (intptr_t)""}, {offsetof(Annotations, freeTextBackgroundColor), SettingType::Color, (intptr_t)""}, {offsetof(Annotations, freeTextOpacity), SettingType::Int, 100}, diff --git a/src/SumatraPDF.cpp b/src/SumatraPDF.cpp index f7d1ee32d020..d86cfde56cdf 100644 --- a/src/SumatraPDF.cpp +++ b/src/SumatraPDF.cpp @@ -2987,6 +2987,14 @@ static void ShowHighlightSelectionRequiredNotification(HWND hwndParent) { ShowWarningNotification(hwndParent, _TRA("Select text first to highlight it"), kNotif5SecsTimeOut); } +static void ShowUnderlineSelectionRequiredNotification(HWND hwndParent) { + ShowWarningNotification(hwndParent, _TRA("Select text first to underline it"), kNotif5SecsTimeOut); +} + +static void ShowStrikeOutSelectionRequiredNotification(HWND hwndParent) { + ShowWarningNotification(hwndParent, _TRA("Select text first to strike out it"), kNotif5SecsTimeOut); +} + struct ShowErrorData { WindowTab* tab; const char* path; @@ -7520,23 +7528,52 @@ static LRESULT FrameOnCommand(MainWindow* win, HWND hwnd, UINT msg, WPARAM wp, L if (!win || !tab) { return 0; } - if (cmdId == CmdCreateAnnotHighlight && (!win->showSelection || !tab->selectionOnPage)) { + if (cmdId == CmdCreateAnnotHighlight && !tab->selectionOnPage) { ShowHighlightSelectionRequiredNotification(win->hwndCanvas); return 0; } + if (cmdId == CmdCreateAnnotUnderline && !tab->selectionOnPage) { + ShowUnderlineSelectionRequiredNotification(win->hwndCanvas); + return 0; + } + if (cmdId == CmdCreateAnnotStrikeOut && !tab->selectionOnPage) { + ShowStrikeOutSelectionRequiredNotification(win->hwndCanvas); + return 0; + } AnnotCreateArgs args{annotType}; - // Check if there's a pending color from the bridge (for highlight from webui toolbar) - const char* bridgeColor = prettysumatra::bridge::GetPendingHighlightColor(); - if (cmdId == CmdCreateAnnotHighlight && bridgeColor && str::StartsWith(bridgeColor, "#")) { - // Create a command string with the color and parse it + // Check if there's a pending color from the bridge (for highlight/underline/strikeout from webui toolbar) + const char* bridgeColor = nullptr; + if (cmdId == CmdCreateAnnotHighlight) { + bridgeColor = prettysumatra::bridge::GetPendingHighlightColor(); + } else if (cmdId == CmdCreateAnnotUnderline) { + bridgeColor = prettysumatra::bridge::GetPendingUnderlineColor(); + } else if (cmdId == CmdCreateAnnotStrikeOut) { + bridgeColor = prettysumatra::bridge::GetPendingStrikeoutColor(); + } + if (bridgeColor && str::StartsWith(bridgeColor, "#")) { char cmdStr[128]; - snprintf(cmdStr, sizeof(cmdStr), "CmdCreateAnnotHighlight %s", bridgeColor); - cmd = CreateCommandFromDefinition(cmdStr); + if (cmdId == CmdCreateAnnotHighlight) { + snprintf(cmdStr, sizeof(cmdStr), "CmdCreateAnnotHighlight %s", bridgeColor); + } else if (cmdId == CmdCreateAnnotUnderline) { + snprintf(cmdStr, sizeof(cmdStr), "CmdCreateAnnotUnderline %s", bridgeColor); + } else if (cmdId == CmdCreateAnnotStrikeOut) { + snprintf(cmdStr, sizeof(cmdStr), "CmdCreateAnnotStrikeOut %s", bridgeColor); + } else { + cmdStr[0] = '\0'; + } + if (cmdStr[0]) cmd = CreateCommandFromDefinition(cmdStr); } - + if (prettysumatra::bridge::LogBridgeMessages()) { + logf("[PrettySumatraBridge] Creating annotation cmdId=%d bridgeColor=%s cmdDef=%s selectionOnPage=%d\n", + cmdId, bridgeColor ? bridgeColor : "(null)", cmd ? cmd->definition : "(none)", tab->selectionOnPage ? 1 : 0); + } + SetAnnotCreateArgs(args, cmd); lastCreatedAnnot = MakeAnnotationsFromSelection(tab, &args); + if (prettysumatra::bridge::LogBridgeMessages()) { + logf("[PrettySumatraBridge] MakeAnnotationsFromSelection returned annot=%p\n", lastCreatedAnnot); + } if (cmd) { // for custom commands must explicitly provide "openedit" argument openAnnotationEdit = GetCommandBoolArg(cmd, kCmdArgOpenEdit, false); diff --git a/src/Theme.cpp b/src/Theme.cpp index 71d13233de5d..f036e129c5a4 100644 --- a/src/Theme.cpp +++ b/src/Theme.cpp @@ -45,7 +45,7 @@ static const char* themesTxt = R"(Themes [ TextColor = #000000 BackgroundColor = #f2f2f2 ControlBackgroundColor = #ffffff - LinkColor = #0020a0 + LinkColor = #eab308 ColorizeControls = false ] [ @@ -53,7 +53,7 @@ static const char* themesTxt = R"(Themes [ TextColor = #bac9d0 BackgroundColor = #263238 ControlBackgroundColor = #263238 - LinkColor = #8aa3b0 + LinkColor = #facc15 ColorizeControls = true ] [ @@ -449,22 +449,6 @@ COLORREF ThemeNotificationsTextColor() { return ThemeWindowTextColor(); } -COLORREF ThemeNotificationsHighlightColor() { - if (gCurrentTheme->colorizeControls) { - auto col = ThemeWindowBackgroundColor(); - return AccentColor(col, 20); - } - return RgbToCOLORREF(0xFFEE70); // yellowish -} - -COLORREF ThemeNotificationsHighlightTextColor() { - if (gCurrentTheme->colorizeControls) { - auto col = ThemeWindowTextColor(); - return AccentColor(col, 20); - } - return RgbToCOLORREF(0x8d0801); // reddish -} - COLORREF ThemeNotificationsProgressColor() { return ThemeWindowLinkColor(); } diff --git a/src/prettysumatra/BridgeDispatcher.cpp b/src/prettysumatra/BridgeDispatcher.cpp index f75bbfd403ba..5f7f06a7048c 100644 --- a/src/prettysumatra/BridgeDispatcher.cpp +++ b/src/prettysumatra/BridgeDispatcher.cpp @@ -11,6 +11,7 @@ #include "wingui/UIModels.h" #include "DocController.h" #include "EngineBase.h" +#include "EngineAll.h" #include "GlobalPrefs.h" #include "MainWindow.h" #include "ProgressUpdateUI.h" @@ -32,6 +33,8 @@ #include "utils/StrUtil.h" #include "utils/WinUtil.h" +#include "Notifications.h" + namespace prettysumatra { namespace bridge { @@ -323,6 +326,34 @@ void SyncHybridToolbarPageState(HWND hwndFrame, int currentPage, int totalPages) TempStr js = str::FormatTemp("window.hybridToolbarSetPageState && window.hybridToolbarSetPageState(%d,%d);", currentPage, totalPages); win->hybridToolbar->Eval(js); + // Also update annotation availability whenever page/document state is synced + SyncHybridToolbarAnnotationAvailability(hwndFrame); +} + +void SyncHybridToolbarAnnotationAvailability(HWND hwndFrame) { + MainWindow* win = FindWindowForFrame(hwndFrame); + if (!win || !win->hybridToolbar) return; + + bool canAnnotate = false; + WindowTab* tab = win->CurrentTab(); + if (tab && tab->IsDocLoaded()) { + EngineBase* eng = tab->GetEngine(); + if (eng) { + canAnnotate = EngineSupportsAnnotations(eng) && !(win->isFullScreen || win->presentation); + } + } + + const char* h = canAnnotate ? "true" : "false"; + const char* a = canAnnotate ? "true" : "false"; + const char* d = canAnnotate ? "true" : "false"; + TempStr js = str::FormatTemp( + "window.hybridToolbarSetAnnotationAvailability && " + "window.hybridToolbarSetAnnotationAvailability({highlight:%s,annotate:%s,draw:%s});", + h, a, d); + if (LogBridgeMessages()) { + logf("[PrettySumatraBridge] sending annotation availability: highlight=%s annotate=%s draw=%s\n", h, a, d); + } + win->hybridToolbar->Eval(js); } void SyncHybridToolbarZoomState(HWND hwndFrame, float zoomPercent) { @@ -447,27 +478,36 @@ static MainWindow* GetTargetWindow() { } // Global variable to store the highlight color from the latest message -static char gPendingHighlightColor[16] = "#ffff00"; +static char gPendingHighlightColor[16] = "#facc15"; +static char gPendingUnderlineColor[16] = "#22c55e"; +static char gPendingStrikeoutColor[16] = "#ef4444"; const char* GetPendingHighlightColor() { return gPendingHighlightColor; } +const char* GetPendingUnderlineColor() { + return gPendingUnderlineColor; +} + +const char* GetPendingStrikeoutColor() { + return gPendingStrikeoutColor; +} + static bool DispatchHighlightSelection(const BridgeMessage& msg) { MainWindow* win = GetTargetWindow(); if (!win) { return false; } - + // Validate and store the color if (msg.color && str::StartsWith(msg.color, "#") && str::Len(msg.color) == 7) { str::BufSet(gPendingHighlightColor, dimof(gPendingHighlightColor), msg.color); - } else { - str::BufSet(gPendingHighlightColor, dimof(gPendingHighlightColor), "#ffff00"); // default yellow } - - // Dispatch the highlight command - PostMessageW(win->hwndFrame, WM_COMMAND, CmdCreateAnnotHighlight, 0); + + // Dispatch synchronously so the native command sees the current text + // selection before toolbar focus changes clear it. + SendMessageW(win->hwndFrame, WM_COMMAND, CmdCreateAnnotHighlight, 0); return true; } @@ -554,7 +594,8 @@ static bool DispatchSearch(const BridgeMessage& msg) { } bool wasModified = true; - if (str::EqI(msg.action, "step") || str::EqI(msg.action, "next") || str::EqI(msg.action, "prev") || str::EqI(msg.action, "previous")) { + if (str::EqI(msg.action, "step") || str::EqI(msg.action, "next") || str::EqI(msg.action, "prev") || + str::EqI(msg.action, "previous")) { wasModified = false; } else if (str::IsEmpty(msg.action)) { TempStr currentFind = HwndGetTextTemp(win->hwndFindEdit); @@ -669,6 +710,38 @@ static bool DispatchToggleDocumentInvert() { return true; } +static bool DispatchSetDocumentInvertOn() { + MainWindow* win = GetTargetWindow(); + if (!win) { + return false; + } + + if (!gGlobalPrefs->fixedPageUI.invertColors) { + gGlobalPrefs->fixedPageUI.invertColors = true; + UpdateDocumentColors(); + UpdateControlsColors(win); + SaveSettings(); + SyncHybridToolbarTheme(win->hwndFrame); + } + return true; +} + +static bool DispatchSetDocumentInvertOff() { + MainWindow* win = GetTargetWindow(); + if (!win) { + return false; + } + + if (gGlobalPrefs->fixedPageUI.invertColors) { + gGlobalPrefs->fixedPageUI.invertColors = false; + UpdateDocumentColors(); + UpdateControlsColors(win); + SaveSettings(); + SyncHybridToolbarTheme(win->hwndFrame); + } + return true; +} + static int ResolveBridgeCommandId(const char* commandName) { if (str::IsEmptyOrWhiteSpace(commandName)) { return 0; @@ -708,10 +781,17 @@ static int ResolveBridgeCommandId(const char* commandName) { if (str::EqI(commandName, "highlightSelection")) return CmdCreateAnnotHighlight; if (str::EqI(commandName, "addAnnotation")) return CmdCreateAnnotText; if (str::EqI(commandName, "freeDraw")) return CmdCreateAnnotInk; + if (str::EqI(commandName, "createAnnotUnderline")) return CmdCreateAnnotUnderline; + if (str::EqI(commandName, "createAnnotStrikeOut")) return CmdCreateAnnotStrikeOut; return 0; } static bool DispatchExecCommand(const BridgeMessage& msg) { + if (LogBridgeMessages()) { + logf("[PrettySumatraBridge] execCommand received: command='%s' color='%s' hasCmdId=%d cmdId=%d\n", + msg.command ? msg.command : "", msg.color ? msg.color : "", msg.hasCmdId ? 1 : 0, + msg.hasCmdId ? msg.cmdId : 0); + } MainWindow* win = GetTargetWindow(); if (!win) { return false; @@ -729,6 +809,12 @@ static bool DispatchExecCommand(const BridgeMessage& msg) { if (str::EqI(msg.command, "toggleDocumentInvert")) { return DispatchToggleDocumentInvert(); } + if (str::EqI(msg.command, "setDocumentInvertOn")) { + return DispatchSetDocumentInvertOn(); + } + if (str::EqI(msg.command, "setDocumentInvertOff")) { + return DispatchSetDocumentInvertOff(); + } int cmdId = 0; if (msg.hasCmdId) { @@ -740,6 +826,21 @@ static bool DispatchExecCommand(const BridgeMessage& msg) { return false; } + // For annotation commands that require a text selection, show a notification + // if there's no selection (same UX as the built-in highlighter). + if (cmdId == CmdCreateAnnotUnderline || cmdId == CmdCreateAnnotStrikeOut) { + // If the bridge message included a color value, apply it to the pending color + if (msg.color && str::StartsWith(msg.color, "#") && str::Len(msg.color) == 7) { + if (cmdId == CmdCreateAnnotUnderline) { + str::BufSet(gPendingUnderlineColor, dimof(gPendingUnderlineColor), msg.color); + } else if (cmdId == CmdCreateAnnotStrikeOut) { + str::BufSet(gPendingStrikeoutColor, dimof(gPendingStrikeoutColor), msg.color); + } + } + SendMessageW(win->hwndFrame, WM_COMMAND, cmdId, 0); + return true; + } + PostMessageW(win->hwndFrame, WM_COMMAND, cmdId, 0); return true; } @@ -758,6 +859,26 @@ static bool DispatchSetHighlightColor(const BridgeMessage& msg) { return true; } +static bool DispatchSetUnderlineColor(const BridgeMessage& msg) { + MainWindow* win = GetTargetWindow(); + if (!win) return false; + if (msg.color && str::StartsWith(msg.color, "#") && str::Len(msg.color) == 7) { + str::BufSet(gPendingUnderlineColor, dimof(gPendingUnderlineColor), msg.color); + return true; + } + return true; +} + +static bool DispatchSetStrikeoutColor(const BridgeMessage& msg) { + MainWindow* win = GetTargetWindow(); + if (!win) return false; + if (msg.color && str::StartsWith(msg.color, "#") && str::Len(msg.color) == 7) { + str::BufSet(gPendingStrikeoutColor, dimof(gPendingStrikeoutColor), msg.color); + return true; + } + return true; +} + static bool DispatchToolbarReady() { MainWindow* win = GetTargetWindow(); if (!win) { @@ -771,6 +892,8 @@ static bool DispatchToolbarReady() { SyncHybridToolbarPageState(win->hwndFrame, 1, 1); SyncHybridToolbarZoomState(win->hwndFrame, 100.0f); } + // ensure annotation availability is sent when the toolbar becomes ready + SyncHybridToolbarAnnotationAvailability(win->hwndFrame); return true; } @@ -1004,6 +1127,12 @@ static bool DispatchKnownCommand(const BridgeMessage& msg) { if (str::Eq(msg.name, kToolbarReady)) { return DispatchToolbarReady(); } + if (str::Eq(msg.name, "setUnderlineColor")) { + return DispatchSetUnderlineColor(msg); + } + if (str::Eq(msg.name, "setStrikeoutColor") || str::Eq(msg.name, "setStrikeOutColor")) { + return DispatchSetStrikeoutColor(msg); + } if (str::EqI(msg.name, "print")) { return DispatchPrint(); } @@ -1046,6 +1175,9 @@ DispatchResult DispatchShellMessage(const char* msg) { if (!UseHybridShell()) { return DispatchResult::Disabled; } + if (LogBridgeMessages()) { + logf("[PrettySumatraBridge] raw shell message: %s\n", msg); + } if (str::IsEmptyOrWhiteSpace(msg)) { if (LogBridgeMessages()) { log("[PrettySumatraBridge] invalid bridge message: empty payload\n"); diff --git a/src/prettysumatra/BridgeDispatcher.h b/src/prettysumatra/BridgeDispatcher.h index d95d08e37dc2..6788eaf13bce 100644 --- a/src/prettysumatra/BridgeDispatcher.h +++ b/src/prettysumatra/BridgeDispatcher.h @@ -25,11 +25,15 @@ void SyncHybridToolbarSearchText(HWND hwndFrame, const char* text); void FocusHybridToolbarSearch(HWND hwndFrame); void SyncHybridToolbarPageState(HWND hwndFrame, int currentPage, int totalPages); void SyncHybridToolbarZoomState(HWND hwndFrame, float zoomPercent); +void SyncHybridToolbarAnnotationAvailability(HWND hwndFrame); DispatchResult DispatchShellMessage(const char* msg); // Get the pending highlight color from bridge (used for passing color from webui) const char* GetPendingHighlightColor(); +// Get pending colors for underline and strikeout (from webui color chips) +const char* GetPendingUnderlineColor(); +const char* GetPendingStrikeoutColor(); } // namespace bridge } // namespace prettysumatra From 60c86ac80a6594e14cc32e96c6efa5ea57526efb Mon Sep 17 00:00:00 2001 From: "[JaviLendi]" Date: Sun, 17 May 2026 22:47:30 +0200 Subject: [PATCH 4/8] UI Improvements Several improvements to the toolbar UI, search functionality, reload icon and a lot more. --- gfx/reload-icon.png | Bin 0 -> 2647 bytes gfx/reload-icon.svg | 1 + prettysumatra/webui/home.html | 30 +- prettysumatra/webui/toolbar.html | 2170 ++++++++++++----- ...eHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfMZg.ttf | Bin 0 -> 325604 bytes ...eHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeMZg.ttf | Bin 0 -> 325028 bytes prettysumatra/webui/vendor/inter/inter.css | 15 +- .../fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf | Bin 0 -> 356840 bytes ...V_Zs-QtQth3-jOcbTCVpeRL2w5rwZu2rIelXxI.ttf | Bin 0 -> 1198896 bytes .../vendor/material-icons/material-icons.css | 27 + scripts/download-webui-assets.ps1 | 37 +- src/Canvas.cpp | 61 +- src/MainWindow.h | 7 + src/Screenshot.cpp | 2 +- src/SearchAndDDE.cpp | 5 +- src/SumatraPDF.cpp | 113 +- src/SumatraPDF.h | 1 - src/SumatraPDF.rc | 4 - src/SumatraProperties.cpp | 3 +- src/SumatraStartup.cpp | 16 +- src/Toolbar.cpp | 23 +- src/resource.h | 1 - src/wingui/WebView.cpp | 34 +- src/wingui/WebView.h | 1 + 24 files changed, 1834 insertions(+), 717 deletions(-) create mode 100644 gfx/reload-icon.png create mode 100644 gfx/reload-icon.svg create mode 100644 prettysumatra/webui/vendor/inter/fonts/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfMZg.ttf create mode 100644 prettysumatra/webui/vendor/inter/fonts/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeMZg.ttf create mode 100644 prettysumatra/webui/vendor/material-icons/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf create mode 100644 prettysumatra/webui/vendor/material-icons/fonts/syl0-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjpZIvDmUSVOK7BDB_Qb9vUSzq3wzLK-P0J-V_Zs-QtQth3-jOcbTCVpeRL2w5rwZu2rIelXxI.ttf create mode 100644 prettysumatra/webui/vendor/material-icons/material-icons.css diff --git a/gfx/reload-icon.png b/gfx/reload-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0e971120464128c4d272ac389ae571e3a8651520 GIT binary patch literal 2647 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 CeF{$i literal 0 HcmV?d00001 diff --git a/gfx/reload-icon.svg b/gfx/reload-icon.svg new file mode 100644 index 000000000000..09e98e0cfd5a --- /dev/null +++ b/gfx/reload-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/prettysumatra/webui/home.html b/prettysumatra/webui/home.html index 5cefe5815908..cad132e4399d 100644 --- a/prettysumatra/webui/home.html +++ b/prettysumatra/webui/home.html @@ -1,10 +1,10 @@ - + PrettySumatraPDF - Home - + - -
-
+
+
- - -
-
SumatraPDF
PrettySumatraPDF
Focused reading
- -
-
- -
- - - /1 - -
- -
- -
-
- - -
-
- -
- -
- -
-
- - -
-
- -
- -
-
-
-
- - -
- -
- - -
- -
- - -
-
- -
- -
- - -
- - - - - - - -
-
-
-
- -
- - - -
- - - - -
- -
-
-
- - - -
- -
-
+ +
+
SumatraPDF
PrettySumatraPDF
Focused reading
+
+
+ +
+ +
diff --git a/prettysumatra/webui/vendor/inter/fonts/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfMZg.ttf b/prettysumatra/webui/vendor/inter/fonts/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfMZg.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a68c1919ab87166d04542fd463314c5df036c9e9 GIT binary patch literal 325604 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 z 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

~8$-E4#hy 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 TQOp0Ov|wpzh$(iRv-JM~LfTG& literal 0 HcmV?d00001 diff --git a/prettysumatra/webui/vendor/inter/inter.css b/prettysumatra/webui/vendor/inter/inter.css index ed2cbb8f4c54..887f2033ece4 100644 --- a/prettysumatra/webui/vendor/inter/inter.css +++ b/prettysumatra/webui/vendor/inter/inter.css @@ -1,3 +1,17 @@ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url(fonts/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyeMZg.ttf) format('truetype'); +} +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(fonts/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyfMZg.ttf) format('truetype'); +} @font-face { font-family: 'Inter'; font-style: normal; @@ -34,4 +48,3 @@ src: url(fonts/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYMZg.ttf) format('truetype'); } - diff --git a/prettysumatra/webui/vendor/material-icons/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf b/prettysumatra/webui/vendor/material-icons/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9d09b0feb85c35beeaddd31246be0b7c8e0e69a4 GIT binary patch literal 356840 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

t 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 literal 0 HcmV?d00001 diff --git a/prettysumatra/webui/vendor/material-icons/fonts/syl0-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjpZIvDmUSVOK7BDB_Qb9vUSzq3wzLK-P0J-V_Zs-QtQth3-jOcbTCVpeRL2w5rwZu2rIelXxI.ttf b/prettysumatra/webui/vendor/material-icons/fonts/syl0-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjpZIvDmUSVOK7BDB_Qb9vUSzq3wzLK-P0J-V_Zs-QtQth3-jOcbTCVpeRL2w5rwZu2rIelXxI.ttf new file mode 100644 index 0000000000000000000000000000000000000000..eacedd945613c4eff9cca0d56a2bd7e867ce7172 GIT binary patch literal 1198896 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%0Dh#~v_4yX&lhH_wlyGX2+vvrZpb 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%0Dy2 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

dJB$AH$q8(9uuoF(W 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%0A-{%nmbp_cE7*!hPB8PN$~TxKy|{7+7D~ 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

l>nAWM*j4mIx9e$eKoEDmxBF|bo!SW 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
!IFm<| z{4Z2t29K`m6y%6=S_zY~{tir=qMVKRz&*Ciju4$_$bO?e_MF{*6;;H*o6&V<8}cF! z@-x_`m3F}^Ih5hK&wFHthM*EsP_b`VmZ!dqNle!#&a(Kw#7(2Y;K%tT3T-&G^K>WFyE|_FTDY45ft6-= zBpxIJLg6+oz=uO5$fLxXc{5fT8(@?WD3+g(YO6IH!+-ybi}yh8QA`CM5lfvr)ilmQ=N>yTzn1Y z^Vy?TMX+!9s||KRu^zQo1;$Z5cYK(avgB{vU`eBU{)(5v#Rz@Lqi+eT4lONXV1Q6R&7I{9JE^MdIR{ zHPNwj)QXUCrp}!|f36h;WL)aP6)R5eZ<;>6DOOt>yKHY*1Ut3~;rp*?nlXd#+xp;x zTS9#eRv3X4H8rPl|H1Aqo;3Uy8bbG7zjqT!~q{1nhMj0>VQDp8=aiJ+5;mDU-_XIs@a$ zU3rs*vjA(%9A*e;$xUDod*rytC!acordlb4ACx7YGqZ?82ci%TPa=@Hi?}qlOyr@h zys%Zmo5?vAYm8fb{!J?&c_2)6!;RrkRlF?S1qgWLX>B#hnvNRS(9l~A)96fhSNda4 ziyMg@lCvzZ4?GnOY<`LerTwaX?W_u9Az?nhdDdKSN=MpvPs>N4)L^2dYH`CYFN6cd zZr_vJ{pH?hVavZQz7c`@+WP#7?`Au}!OYHq53W2VxR@GB@u<5mJm?>^LIv05j*)AsmTBo$U;TQl(uF2^Q|64ac+_uKyn4jb z3RmH`3dV#_!PQxfTK9-QEvGm-dZZkNQY;v7GG}DLLvdRR@eE%k<;kSjvk&kgdkCIMOG2Ft`!~EjNRQ=EgQz?$1;j08?UN7&HA3q|O?0ZhTJ|r})jYYQy2J=D6zW zYT6bJ4WAh`+hY#$3D(9(nN=2WzN~vMtE>BT+oFMw4}amz(190+AddB6oRz?e`hwm9 z>VAr`X2D1%s ztDqOjucS#719f}&Vpo7Z2-$#tJ=h9$xD~nqX8}ZM3TF?kkhjwGl}aa3lrEh_ix<8o zQvBPQ-^r;IS2Z$J-ci?aG00*v+drezUTdGDD$beC7~4JrP1I%~RHa5kMr%rcVU^v! z$`<vlAjY7T2b zF=mMfo3CBv_uqtI?Mf(B-?K+~P$sCv>~ir5-WDO(b`X>fW=UEY zBvVtM3YZ%}yJxYyzhF*oJA>CW=#1pvr5tA<9d2VI^Wh zMLXQZHn;3(EpJ>|;V$!QMb4@Y1s#-Zg|nyDsfw?sOi6|#qs@i!^1|Ey2Aak*uwpn7 zXIH{4Ls%6}*2aNEsyJ!k+*E*vq}l|4B2FPhF=Z8OW_RXJV1mu-^p^XF_t&6GjPp&89j(SH_>$0k^+KSwf)Vf2DY|Hje8h>Qll^=3ux<^aG#(yDyb`H)f2b#}8 z$q**l9jQph`JpSfJ%S3L<}VN%Qo)?!G2t2T+G=QYR0tEpq%r2mQ85(`S|hVVN1A%} zV752)WJUl{viTTv0zn+oZi;kHyvz@=k4TU!yr)jPV}+@<(z!c#&Mj?A6~^48R2ivY zRY{^jKYdznfCw0@@As21|2i+m8n#ZxMW4v>z!=oX?5s8N-Hiyf8-0pJN zs*5V@s%oz&s@@AG^)JY2cngxa3#xJi(bLtWzGE^nKHx|>rh)3$fwv%0DTXv9pAr+1 zvCvLg3z>F7X>4g^H};R&GJ?Z~dJJ))S6$Kf;*03J;4nVxk{YZKrprHmj_0l8y%4Ss!f&$R$ObHxQC}gvCr|3(^s8r*<(f96WO|_ ztZa`Jl9b=Nr{&~TSLe43#I&Ev)=QyYiPX%uz(=^5%ILf`LPjTg3giM&wjDpd?GeDF74|sl+ep@^5mJ!=_j3HvCpTB*a7WBx7pR)BF;7$`#)pEyd|$RM z3E7XqB%yGzUongE2V;U+Hl^n|J}+5C6*q>F5Oq6G2rqP8|MVa#02ga;R^wb4{tTgn@C zGzL0j(^sx!^MX!Y8!C=S57{f!;7k_s27_MXq5651A4uCOiZ(_zltqV;;w7lD`f*$c z1r}Mw;@PT0=`Jp9tE_BuIO>C;mA9_+qqc^(Jl5r@awUvcVWm~Q!H27=DwBPsS4B3I zZ^HBr7o0-b2TH`6LD`g4N1a|R(0hRR<|~Z|j$rl$uZPJ(D1!m>j8_6W1sNErXDm1* zK!WKf4h0k-nE}u;Sq+5dmM6kVMOL7W3;0Ne^>r=XvuAg=tkbdIs<5bEaj5gRF+mJ^ zP|?h((XpQ$wb_nRX~_kgFHw5vh51)95OBSC5ZWz}C#zw)qH(@|Hl| zQyv>dKH@0Ml}~DpoAWQkuL#P^Zw>$lMfTJ@A;V>bV*Pd_HSo=v}aN z>jK8#jptc!dgjcu@jTwYM*HcH_TX>)%vlSz4$n-VId#}PkMA{42EWWrh`;FjyB1X#wP>Thny_aR3eZll0RfJQRZIkj!}s$2GUA~ zl-14XSF6tdUb?xaHl3~whl5?g@c27qx*iZx$I!b0rlBVU)rZBw?Ra74+L?G&)<;8` zOek7!d?A;{n){qgXJx&>%4W!3RE#7BfgFWMFnqoUXDz1?!3Yas>lcYg2@lPfy=Gc7 zXz`;n_{vQ-UIk=}+OY44lHc(p)YT9_EouUm+=P0>UI^!#bo+D03RVG0$Qda73fe4y zS09&rS{R!HifDCK*jldM=F>$XvcgAEkU5m?nXfmxC2sdM_AMi9xB z+sLV(!K@ZWkv7D8gd|xF2vFQa2h`z$dUDdb6AVbSTxC6i;MgRW(z|fIsgSPaAA9+G z6MwI*^r60mukyIR+*2IWoVJY4EfDvjM|H^WyB9%d@Ka=LPAwL3mkS;FYU>r{PKFU(_b4do9fs6zznKf zcLegQ4(3gTwF%Qr!HE+A2~LC*w4dvBpc$-DI@mh=4(D@dzEr`tCM=CxFpfg?nB=#Y zpg7DiHRN~rq_{EX<2?NLHCMvG-u4u zKA<_Bnz7LrbK1xL{$pn7@5d8M+EX2o*p62GYLb!n9jjP%iREQHRfa!RAF2?oBHtH` zo}_HHg3fcs@*L{tOrvt0kl|Vs%^DsseWt1bUwM>-AK`PdbV2yk3+a^6z9wq5xm;0A z?}{cH>tj5dA2ki)g--B-XwYKU+hXk_exJ>w-oVGq9Uc`^b}VDQcYxMMkMyzL_9nEL zRc+2lf;`=LVDbWLR+kV&&!ys#j-s^R7O-a%anLGTU_HyXpAWlP1Q=SHs3oMeAOtxX zXrJThBwFz$%G9SQo5q9(>N3EQvx{6c+a@+@4!A_@PG?QBDqWcvNJTr5uP>mJg{f^A z2ccb2@-JF6cCJYpSAVl=I?82AlJSRFeSwOF$E@w`LR9Hf1^-d-(}Le(xDIe6njTI( zpc%lJ&ln93q7eiMU|pWzgv?$VTOc>Wpbm!#<}9~_62@}XI8E8#I*t%4mleW->^05H zr5Y5hac7-`^?_EuJjEP?psVB|hXh%)nG1A$P_U{)a%q`FEeuA%jk4EJ_}EG7gKV8$ zK(S!v?jc`jCrgR7kywqr%4wHkod+Yp3S5c8G z>96ZeCriAgK#%zNhdGP0DXLY*-&<#WW4)G4X?d;J?XI-O3Ij3YCl*N#IAJu9Y9ba- zc=HlTt{t4YN!MCusgYQPY_Xu5yhZjpP-IrqH_aTZm88`>{7#Q5yNj)gPl8)!@)AgZ zhgS%~|CxhqzrUt%>!XiuMOA-)3LTq0J(mW&-oT|jo>HeL_4U?PQ5I1^M@Kso)M^nd z0%N^(b-gZUDCBhY)>U?@F}T`iB!_x6003uuoQL4xjXV?z%Uepd5EJf zU|A)nT{6X^>{k)XE}=OgG#5HdI|lbt(h>u)KM-r7kQ3mO0xTx!ID-Ugg}shuhF;HU zPpz)kcu#x0vzm-3^;^2dRxB%|c*e+iMLubObJ8r8D!I@$7(-4xhty|kY-WjQ8nY)mcGehZ zYzgqMG$4nMA$d#@EAKeqH zx8vl9+n5@w7t}=I;fX!Mo>Qoa&?oGH$U<`aGA!23SlAZAi*Pr5j*pv8ZgVNFgIQ1p zlF(CtZIj5}EdZ|wX-I=M)lV=#EZzk8EZAvfsj$YFOyiQJUB3!PxYK#JOV;>%;eE#8@nvQ5&yt-I}IIhVW z=o%q9MRC76WzO9`Z&|Xtsi-JY81pd)ifwv~Uy|g}(V@8_m67SC39T%&Yx9Ze?d$jZ zT(TYVfMAiw<^>yUR_}r?hvsuu_lEsmcTmJAikpkW;RyRq$0e6^d}nz0co*FX^pPr< zE8dTJtc1mYG%rj8EmC;V%0>40Ow^zi zHwh=8nS`LW7Nk9R8lpYZVvGt(+=_&v?zxSP?AJ?=_tv(}KEA?Oz@8deuwVqA9~zlA zZ^XD+&`nOy?3B9-P!`U^}hXc@iyUE5&)$ zRr}M6X4ZBj9A&fC&$#mzN35%E=907@(4Ys~i3hWy4o>#5h*jhkxkPLuyZPRq|NLI# z8?18IGtcZYz9F3W=;QXspXlFx(0=F!44JNQ1Xs}b?*p;y|BYhNM31mx;;8VFaANRZ z2Y%6?J@T{;x~W!+lQ7M?7*n^&wbTZF?!3&#rqf6cpK*TR<)F9hi^T$ z+f)3|fbr{eGCQjIxhKH5JZV(6jd?aM5gL{)LjkH2#XwmfrdGUVnOY8oS-tGJnhLXm+xm$JG=Q*l7>2HxOeP zhM^AJHc>5XG-mV(1sL#3_F+T&G}};XtivcaVaOj8J`1BLz)pbQG$x!9K0EP&K^(js z2Up;t0e;Y@r!zi!eiTy{6DXIidoJJh^Pna0^KF+}Ecy>Gc{6Acg%cA$>+BRffXVNA zdkw{W$F&F-2$BwdEtXCZC>gG?afQ%iv5c;q_zISn6BB>iBZw0Vg`Qr6;jv}{NH<`% z9mJ4e=*YS{u-0*tTUO}Dtg|nTc>GttdVJq=&+R+#`R808`LyTLA9?(w=j7va zci-u`^TyprJV$nAA$1oY2!E^?%wgo1i+Mn}BxuAo3R2VBOIn)euWd3GvJ*3Ix_O$h zP&g527~VeI5HNnt7N#F-0^!em`>WysjLiqK2R2&j1dOg*AoE(zzIJAOQh7#Vcippj z=FH9a96w4QM~8R6@WSpJUwDE2!g!*IEpkd~7o^(@*uT0QsXTRpe# z+k4n^_@<5j-t|V7*?a(lx1r>JkRWL?o4nC8G2`1Pc$VLF$C%O2KGVH$bc)e0jQ#uA zPlXe!)?Im-@gp|YyKlo>+R%laCykyJ1WDOMm}e*XR~m?&)ex zm#1Ssi|Vf$>KR_SX;hY{X6o9)m8AhWx_I5Pr5FM3EYgf91qC^xVJD62#Z|^GVQg@4 z;yBK^45M6$bNnWti9+}&v!rtGtsAB-`P7zc|9a8X4ToH*dE+DOdSn01S6_1zeU6OJ zOW_&?Z~vD_G=gP70(k(P@y#{E|J7%{yK8TAQ@jfiry1FL* z6Ub-Bqn_lC>cZ^d_O!;t@JCyA_8A)+I$$if8OMcV#zV5P;#M{&Lt?*TUT7S z9k+T0!5BM)lUR50Fj7l-+9Q-2ce9U$gvE8U~A#(K1t13_8_ft zX_<`L5KUr%H9~V@(Uirjl9d}Tn=v|a-QmvGo39-jn`_Jv4$oxuzUeh(bw!#Z+EOV= zJ(o229hGx>r>v^_@l@Pp2+wvC?$Ul9PX;w45-prApws2uH@DUk!~Q|~_C1Ri^{u_S zyz1)JGZ*dHUUK=;2OdAVKYsbL-i58uw9lb>vdTQHLqw1 z%YEJLZ5bt4Rc5iY&Z=~eEo@kzi>}3chpSx}81ymm1m+ELNepZg>q-j)lupQoSNPQ* z_6U22h0BeDgPrWPiG?`556`g=r&pc#941FnQa)TlA(75>2C#pdab)}8XxH*6&IeIcqlOaLvv=`vAJ)-?xQZfZdSd;Qd%9>TxC=0=Fg5-)v<-czo@DS zXD*#GeMxH&w_bu<-vbaL>@3F-)9{9Ikn#1+wA28CiR`=)AHMi}X?K5hysNpWdUW5j z2S%%lT05c@ebZtue_`o(ceHHQ_J_C5N|g3)|M2?m(%r_tUtiL_*0pwdX>$#t5+iku zk*XQZh2iGuRguQJh*gc&G?y-4JLrwq7DsB!Jf5=JNO5i4%VxRbRpI7o)0)FoaW@{a z=k3?T+cADrcGQ8I7!r-pv|#bCX5=Zz((aM9m-Ln- Q`Zf={);)L)I^-1me*oTul>h($ literal 0 HcmV?d00001 diff --git a/prettysumatra/webui/vendor/material-icons/material-icons.css b/prettysumatra/webui/vendor/material-icons/material-icons.css new file mode 100644 index 000000000000..a545c0e77995 --- /dev/null +++ b/prettysumatra/webui/vendor/material-icons/material-icons.css @@ -0,0 +1,27 @@ +@font-face { + font-family: 'Material Symbols Rounded'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(fonts/syl0-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjpZIvDmUSVOK7BDB_Qb9vUSzq3wzLK-P0J-V_Zs-QtQth3-jOcbTCVpeRL2w5rwZu2rIelXxI.ttf) format('truetype'); +} + +.material-symbols-rounded { + font-family: 'Material Symbols Rounded'; + font-optical-sizing: auto; + font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 30; + font-weight: 400; + font-style: normal; + font-size: 20px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + margin-right: 6px; + vertical-align: middle; +} + + diff --git a/scripts/download-webui-assets.ps1 b/scripts/download-webui-assets.ps1 index efcd05f8019c..36c630de88e0 100644 --- a/scripts/download-webui-assets.ps1 +++ b/scripts/download-webui-assets.ps1 @@ -10,23 +10,32 @@ $interFonts = Join-Path $interDir 'fonts' New-Item -ItemType Directory -Force -Path $faFonts | Out-Null New-Item -ItemType Directory -Force -Path $interFonts | Out-Null -$faBase = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0' -$faCssPath = Join-Path $faDir 'all.min.css' -Invoke-WebRequest -Uri "$faBase/css/all.min.css" -OutFile $faCssPath -$faCss = Get-Content -Raw $faCssPath -$faNames = @('fa-solid-900.woff2','fa-regular-400.woff2','fa-brands-400.woff2') -foreach ($name in $faNames) { - $src = "$faBase/webfonts/$name" - $dst = Join-Path $faFonts $name - Invoke-WebRequest -Uri $src -OutFile $dst +$miDir = Join-Path $vendor 'material-icons' +$miFonts = Join-Path $miDir 'fonts' + +New-Item -ItemType Directory -Force -Path $miFonts | Out-Null + +$miCssPath = Join-Path $miDir 'material-icons.css' +$miGoogleUrl = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,400,0,0&display=block' +Invoke-WebRequest -Uri $miGoogleUrl -OutFile $miCssPath +$miCss = Get-Content -Raw $miCssPath +$matches = [regex]::Matches($miCss, 'https://fonts\.gstatic\.com/[^\)\s]+\.(woff2|woff|ttf)') +$seen = @{} +foreach ($m in $matches) { + $url = $m.Value + if ($seen.ContainsKey($url)) { continue } + $seen[$url] = $true + $name = Split-Path $url -Leaf + Invoke-WebRequest -Uri $url -OutFile (Join-Path $miFonts $name) + $miCss = $miCss.Replace($url, "fonts/$name") } -$faCss = $faCss.Replace('../webfonts/fa-solid-900.woff2', 'webfonts/fa-solid-900.woff2') -$faCss = $faCss.Replace('../webfonts/fa-regular-400.woff2', 'webfonts/fa-regular-400.woff2') -$faCss = $faCss.Replace('../webfonts/fa-brands-400.woff2', 'webfonts/fa-brands-400.woff2') -Set-Content -Path $faCssPath -Value $faCss -Encoding utf8 +Set-Content -Path $miCssPath -Value $miCss -Encoding utf8 +$miCss = Get-Content -Raw $miCssPath +$miCss = $miCss.Replace(" font-weight: normal;`n", " font-optical-sizing: auto;`n font-variation-settings: 'FILL' 0, 'wght' 100, 'GRAD' 20, 'opsz' 20;`n font-weight: normal;`n") +Set-Content -Path $miCssPath -Value $miCss -Encoding utf8 $interCssPath = Join-Path $interDir 'inter.css' -Invoke-WebRequest -Uri 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap' -OutFile $interCssPath +Invoke-WebRequest -Uri 'https://fonts.googleapis.com/css2?family=Inter:wght@100;200;400;500;600;700;800&display=swap' -OutFile $interCssPath $interCss = Get-Content -Raw $interCssPath $matches = [regex]::Matches($interCss, 'https://fonts\.gstatic\.com/[^\)\s]+\.ttf') $seen = @{} diff --git a/src/Canvas.cpp b/src/Canvas.cpp index 3344e44ec7b6..8f935c765ab2 100644 --- a/src/Canvas.cpp +++ b/src/Canvas.cpp @@ -21,6 +21,8 @@ #include "wingui/Layout.h" #include "wingui/WinGui.h" +#include "wingui/WebView.h" + #include "wingui/FrameRateWnd.h" #include "Settings.h" @@ -1842,11 +1844,7 @@ static bool DrawDocument(MainWindow* win, HDC hdc, RECT* rcArea) { continue; } - HDC bmpDC = CreateCompatibleDC(hdc); - if (!bmpDC) { - continue; - } - SelectObject(bmpDC, gBitmapReloadingCue); + // Draw reload icon from PNG file using GDI+ int size = DpiScale(win->hwndFrame, 16); int cx = std::min(bounds.dx, 2 * size); int cy = std::min(bounds.dy, 2 * size); @@ -1854,8 +1852,23 @@ static bool DrawDocument(MainWindow* win, HDC hdc, RECT* rcArea) { int y = bounds.y + std::max((cy - size) / 2, 0); int dxDest = std::min(cx, size); int dyDest = std::min(cy, size); - StretchBlt(hdc, x, y, dxDest, dyDest, bmpDC, 0, 0, 16, 16, SRCCOPY); - DeleteDC(bmpDC); + + WCHAR modulePath[MAX_PATH]; + GetModuleFileNameW(nullptr, modulePath, (DWORD)dimof(modulePath)); + WCHAR* lastSlash = wcsrchr(modulePath, L'\\'); + if (lastSlash) { + *lastSlash = L'\0'; + // Go up two levels: out/dbg64/ -> project root + wcsncat_s(modulePath, dimof(modulePath), L"\\..\\..\\gfx\\reload-icon.png", _TRUNCATE); + + Gdiplus::Image img(modulePath); + if (img.GetLastStatus() == Gdiplus::Ok) { + Gdiplus::Graphics gg(hdc); + gg.SetSmoothingMode(Gdiplus::SmoothingModeHighQuality); + Gdiplus::RectF destRect((float)x, (float)y, (float)dxDest, (float)dyDest); + gg.DrawImage(&img, destRect); + } + } } WindowTab* tab = win->CurrentTab(); @@ -2604,6 +2617,18 @@ static LRESULT WndProcCanvasFixedPageUI(MainWindow* win, HWND hwnd, UINT msg, WP return 0; case WM_LBUTTONDOWN: + // Notify hybrid toolbar if click happened outside the webview + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + POINT pt; + GetCursorPos(&pt); + RECT r = {}; + GetWindowRect(win->hybridToolbar->hwnd, &r); + if (!(pt.x >= r.left && pt.x < r.right && pt.y >= r.top && pt.y < r.bottom)) { + win->hybridToolbar->Eval( + "window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && " + "window.__closeAllDropdowns();"); + } + } OnMouseLeftButtonDown(win, x, y, wp); return 0; @@ -2618,6 +2643,17 @@ static LRESULT WndProcCanvasFixedPageUI(MainWindow* win, HWND hwnd, UINT msg, WP case WM_MBUTTONDOWN: SetTimer(hwnd, SMOOTHSCROLL_TIMER_ID, SMOOTHSCROLL_DELAY_IN_MS, nullptr); // TODO: Create window that shows location of initial click for reference + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + POINT pt; + GetCursorPos(&pt); + RECT r = {}; + GetWindowRect(win->hybridToolbar->hwnd, &r); + if (!(pt.x >= r.left && pt.x < r.right && pt.y >= r.top && pt.y < r.bottom)) { + win->hybridToolbar->Eval( + "window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && " + "window.__closeAllDropdowns();"); + } + } OnMouseMiddleButtonDown(win, x, y, wp); return 0; @@ -2626,6 +2662,17 @@ static LRESULT WndProcCanvasFixedPageUI(MainWindow* win, HWND hwnd, UINT msg, WP return 0; case WM_RBUTTONDOWN: + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + POINT pt; + GetCursorPos(&pt); + RECT r = {}; + GetWindowRect(win->hybridToolbar->hwnd, &r); + if (!(pt.x >= r.left && pt.x < r.right && pt.y >= r.top && pt.y < r.bottom)) { + win->hybridToolbar->Eval( + "window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && " + "window.__closeAllDropdowns();"); + } + } OnMouseRightButtonDown(win, x, y); return 0; diff --git a/src/MainWindow.h b/src/MainWindow.h index a0d865e802d3..8e5d168cffc2 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -234,6 +234,13 @@ struct MainWindow { int windowStateBeforePresentation = 0; bool suppressFrameRedraw = false; + // Coalesce WM_SIZE-driven relayouts while user is dragging window borders. + bool frameInSizeMove = false; + bool hasPendingFrameSize = false; + int pendingFrameDx = 0; + int pendingFrameDy = 0; + ULONGLONG lastFrameOnSizeTick = 0; + long nonFullScreenWindowStyle = 0; Rect nonFullScreenFrameRect; diff --git a/src/Screenshot.cpp b/src/Screenshot.cpp index ca77a705681f..c65b8920ae59 100644 --- a/src/Screenshot.cpp +++ b/src/Screenshot.cpp @@ -296,7 +296,7 @@ static void FixRoundedCorners(HBITMAP hbm, int w, int h, COLORREF bgColor, int r HDC hdc = GetDC(nullptr); if (w <= 0 || h <= 0) { - ReleaseDC(nullptr, hdc); + ReleaseDC(nullptr, hdc); return; } size_t sw = (size_t)w; diff --git a/src/SearchAndDDE.cpp b/src/SearchAndDDE.cpp index f717def65c31..05efc4d17e44 100644 --- a/src/SearchAndDDE.cpp +++ b/src/SearchAndDDE.cpp @@ -497,9 +497,8 @@ void FindTextOnThread(MainWindow* win, TextSearch::Direction direction, bool sho } Edit_SetModify(win->hwndFindEdit, FALSE); // When search text is modified (new search), start from beginning of document - int startPage = wasModified ? - ((direction == TextSearch::Direction::Backward) ? win->ctrl->PageCount() : 1) : - -1; // If not modified, use current position (default behavior) + int startPage = wasModified ? ((direction == TextSearch::Direction::Backward) ? win->ctrl->PageCount() : 1) + : -1; // If not modified, use current position (default behavior) FindTextOnThread(win, direction, s, wasModified, showProgress, startPage); } diff --git a/src/SumatraPDF.cpp b/src/SumatraPDF.cpp index d86cfde56cdf..74e2f0e21187 100644 --- a/src/SumatraPDF.cpp +++ b/src/SumatraPDF.cpp @@ -247,7 +247,6 @@ bool SettingsRememberOpenedFiles() { static Kind kNotifPersistentWarning = "persistentWarning"; static Kind kNotifZoom = "zoom"; -HBITMAP gBitmapReloadingCue; RenderCache* gRenderCache; HCURSOR gCursorDrag; @@ -5227,6 +5226,15 @@ static bool FrameOnKeydown(MainWindow* win, WPARAM key, LPARAM lp) { if (VK_ESCAPE == key) { CancelDrag(win); + // If the mouse is outside the hybrid toolbar, notify the webview to exit edit mode / close dropdowns + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + POINT pt; GetCursorPos(&pt); + RECT r = {}; + GetWindowRect(win->hybridToolbar->hwnd, &r); + if (!(pt.x >= r.left && pt.x < r.right && pt.y >= r.top && pt.y < r.bottom)) { + win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + } + } return true; } @@ -8359,6 +8367,34 @@ static LRESULT CustomCaptionFrameProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, *callDef = false; return 0; } + // If click is outside the hybrid toolbar WebView, tell it to exit edit mode / close dropdowns + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + POINT pt = { GET_X_LPARAM(lp), GET_Y_LPARAM(lp) }; + POINT ptScreen = pt; + ClientToScreen(hwnd, &ptScreen); + RECT r = {}; + GetWindowRect(win->hybridToolbar->hwnd, &r); + if (!(ptScreen.x >= r.left && ptScreen.x < r.right && ptScreen.y >= r.top && ptScreen.y < r.bottom)) { + // click outside webview + win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + } + } + } break; + + case WM_RBUTTONDOWN: + case WM_MBUTTONDOWN: + case WM_XBUTTONDOWN: { + // For other mouse buttons, also notify webview if click is outside it + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + POINT pt = { GET_X_LPARAM(lp), GET_Y_LPARAM(lp) }; + POINT ptScreen = pt; + ClientToScreen(hwnd, &ptScreen); + RECT r = {}; + GetWindowRect(win->hybridToolbar->hwnd, &r); + if (!(ptScreen.x >= r.left && ptScreen.x < r.right && ptScreen.y >= r.top && ptScreen.y < r.bottom)) { + win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + } + } } break; case WM_LBUTTONUP: { @@ -8504,8 +8540,62 @@ LRESULT CALLBACK WndProcSumatraFrame(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) RememberDefaultWindowPosition(win); int dx = LOWORD(lp); int dy = HIWORD(lp); - // dbglog::LogF("dx: %d, dy: %d", dx, dy); - FrameOnSize(win, dx, dy); + // During interactive resize, throttle relayout calls to reduce WebView flicker. + if (win->frameInSizeMove) { + win->pendingFrameDx = dx; + win->pendingFrameDy = dy; + win->hasPendingFrameSize = true; + + ULONGLONG now = GetTickCount64(); + constexpr ULONGLONG kFrameResizeThrottleMs = 33; + if ((now - win->lastFrameOnSizeTick) >= kFrameResizeThrottleMs) { + FrameOnSize(win, dx, dy); + win->lastFrameOnSizeTick = now; + win->hasPendingFrameSize = false; + } + } else { + // dbglog::LogF("dx: %d, dy: %d", dx, dy); + FrameOnSize(win, dx, dy); + win->lastFrameOnSizeTick = GetTickCount64(); + win->hasPendingFrameSize = false; + } + } + break; + + case WM_ENTERSIZEMOVE: + if (win) { + win->frameInSizeMove = true; + win->hasPendingFrameSize = false; + win->lastFrameOnSizeTick = 0; + // Temporarily stop redrawing the toolbar/rebar to avoid flicker while resizing + if (win->hwndReBar) SendMessageW(win->hwndReBar, WM_SETREDRAW, FALSE, 0); + if (win->hwndToolbar) SendMessageW(win->hwndToolbar, WM_SETREDRAW, FALSE, 0); + } + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + SendMessageW(win->hybridToolbar->hwnd, WM_ENTERSIZEMOVE, wp, lp); + } + break; + + case WM_EXITSIZEMOVE: + if (win) { + win->frameInSizeMove = false; + if (win->hasPendingFrameSize) { + FrameOnSize(win, win->pendingFrameDx, win->pendingFrameDy); + win->hasPendingFrameSize = false; + win->lastFrameOnSizeTick = GetTickCount64(); + } + // Re-enable toolbar/rebar drawing and force a redraw to make UI stable + if (win->hwndReBar) { + SendMessageW(win->hwndReBar, WM_SETREDRAW, TRUE, 0); + RedrawWindow(win->hwndReBar, nullptr, nullptr, RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN); + } + if (win->hwndToolbar) { + SendMessageW(win->hwndToolbar, WM_SETREDRAW, TRUE, 0); + RedrawWindow(win->hwndToolbar, nullptr, nullptr, RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN); + } + } + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + SendMessageW(win->hybridToolbar->hwnd, WM_EXITSIZEMOVE, wp, lp); } break; @@ -8574,9 +8664,26 @@ LRESULT CALLBACK WndProcSumatraFrame(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) case WM_ACTIVATE: if (wp != WA_INACTIVE) { gLastActiveFrameHwnd = hwnd; + } else { + // Window lost activation: tell hybrid toolbar to exit edit mode and close dropdowns + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + } } break; + case WM_KILLFOCUS: { + // If focus moved outside the hybrid toolbar, tell it to exit edit mode/close dropdowns + HWND newFocus = (HWND)wp; + if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { + HWND hw = win->hybridToolbar->hwnd; + bool focusIsInWebview = (newFocus == hw) || (newFocus && IsChild(hw, newFocus)); + if (!focusIsInWebview) { + win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + } + } + } break; + case WM_APPCOMMAND: // both keyboard and mouse drivers should produce WM_APPCOMMAND // messages for their special keys, so handle these here and return diff --git a/src/SumatraPDF.h b/src/SumatraPDF.h index 651290a35a64..d46537f0f030 100644 --- a/src/SumatraPDF.h +++ b/src/SumatraPDF.h @@ -98,7 +98,6 @@ extern WNDPROC DefWndProcCloseButton; extern RenderCache* gRenderCache; extern bool gSupressNextAltMenuTrigger; -extern HBITMAP gBitmapReloadingCue; extern HCURSOR gCursorDrag; extern bool gCrashOnOpen; extern HWND gLastActiveFrameHwnd; diff --git a/src/SumatraPDF.rc b/src/SumatraPDF.rc index fc95a1f92b39..f079a5171fb4 100644 --- a/src/SumatraPDF.rc +++ b/src/SumatraPDF.rc @@ -87,10 +87,6 @@ IDI_SUMATRAPDF ICON "..\\gfx\\SumatraPDF-smaller.ico" ///////////////////////////////////////////////////////////////////////////// -IDB_RELOADING_CUE BITMAP "reloading.bmp" - -///////////////////////////////////////////////////////////////////////////// - IDD_DIALOG_GOTO_PAGE DIALOGEX 0, 0, 158, 45 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Go to page" diff --git a/src/SumatraProperties.cpp b/src/SumatraProperties.cpp index 2001aa4161f8..35d39cc43ec3 100644 --- a/src/SumatraProperties.cpp +++ b/src/SumatraProperties.cpp @@ -843,7 +843,8 @@ void ShowProperties(HWND parent, DocController* ctrl) { DWORD editStyle = WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_READONLY | ES_AUTOVSCROLL | ES_AUTOHSCROLL; DWORD editExStyle = PrettyStyleEnabled() ? 0 : WS_EX_CLIENTEDGE; - HWND hwndEdit = CreateWindowExW(editExStyle, WC_EDITW, L"", editStyle, 0, 0, cRc.dx, editDy, hwnd, nullptr, h, nullptr); + HWND hwndEdit = + CreateWindowExW(editExStyle, WC_EDITW, L"", editStyle, 0, 0, cRc.dx, editDy, hwnd, nullptr, h, nullptr); layoutData->hwndEdit = hwndEdit; if (!DefWndProcPropertiesEdit) { diff --git a/src/SumatraStartup.cpp b/src/SumatraStartup.cpp index c648a29610ad..50f640045cd7 100644 --- a/src/SumatraStartup.cpp +++ b/src/SumatraStartup.cpp @@ -138,7 +138,18 @@ static bool RegisterWinClass() { static bool InstanceInit() { auto h = GetModuleHandleA(nullptr); gCursorDrag = LoadCursor(h, MAKEINTRESOURCE(IDC_CURSORDRAG)); - gBitmapReloadingCue = LoadBitmap(h, MAKEINTRESOURCE(IDB_RELOADING_CUE)); + // Register Material Icons font privately so we can draw the exact 'cached' ligature + char modulePath[MAX_PATH]; + if (GetModuleFileNameA(h, modulePath, (DWORD)dimof(modulePath))) { + std::string base = modulePath; + // strip filename + auto pos = base.find_last_of("\\/"); + if (pos != std::string::npos) base = base.substr(0, pos); + std::string fontPath = + base + "\\prettysumatra\\webui\\vendor\\material-icons\\fonts\\flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf"; + // Add font privately for this process; ignore failures silently + AddFontResourceExA(fontPath.c_str(), FR_PRIVATE, 0); + } return true; } @@ -234,7 +245,7 @@ static void OpenUsingDDE(HWND targetHwnd, const char* path, Flags& i, bool isFir i.startScroll.x != -1 && i.startScroll.y != -1) && isFirstWin) { const char* viewModeStr = DisplayModeToString(i.startView); - cmd.AppendFmt("[SetView(\"%s\", \"%s\", %.2f, %d, %d)]", fullPath, viewModeStr, i.startZoom, i.startScroll.x, + cmd.AppendFmt("[SetView(\"%s\", \"%s\", %.2f, %d, %d)]", fullPath, viewModeStr, i.startZoom, i.startScroll.x, i.startScroll.y); } if (i.forwardSearchOrigin && i.forwardSearchLine) { @@ -1833,7 +1844,6 @@ int APIENTRY WinMain(_In_ HINSTANCE /*hInstance*/, _In_opt_ HINSTANCE, _In_ LPST DeleteCachedCursors(); DeleteCreatedFonts(); - DeleteBitmap(gBitmapReloadingCue); CleanupEngineDjVu(); destroy_system_font_list(); diff --git a/src/Toolbar.cpp b/src/Toolbar.cpp index ce7e0a7eb479..c972ddbe37bd 100644 --- a/src/Toolbar.cpp +++ b/src/Toolbar.cpp @@ -722,15 +722,9 @@ void UpdateToolbarState(MainWindow* win) { } if (prettysumatra::bridge::HasHybridToolbar(win->hwndFrame) && win->ctrl) { - prettysumatra::bridge::SyncHybridToolbarPageState( - win->hwndFrame, - win->ctrl->CurrentPageNo(), - win->ctrl->PageCount() - ); - prettysumatra::bridge::SyncHybridToolbarZoomState( - win->hwndFrame, - win->ctrl->GetZoomVirtual(true) - ); + prettysumatra::bridge::SyncHybridToolbarPageState(win->hwndFrame, win->ctrl->CurrentPageNo(), + win->ctrl->PageCount()); + prettysumatra::bridge::SyncHybridToolbarZoomState(win->hwndFrame, win->ctrl->GetZoomVirtual(true)); } HWND hwnd = win->hwndToolbar; @@ -961,15 +955,8 @@ void UpdateToolbarPageText(MainWindow* win, int pageCount, bool updateOnly) { if (total <= 0) { total = win->ctrl->PageCount(); } - prettysumatra::bridge::SyncHybridToolbarPageState( - win->hwndFrame, - win->ctrl->CurrentPageNo(), - total - ); - prettysumatra::bridge::SyncHybridToolbarZoomState( - win->hwndFrame, - win->ctrl->GetZoomVirtual(true) - ); + prettysumatra::bridge::SyncHybridToolbarPageState(win->hwndFrame, win->ctrl->CurrentPageNo(), total); + prettysumatra::bridge::SyncHybridToolbarZoomState(win->hwndFrame, win->ctrl->GetZoomVirtual(true)); } } diff --git a/src/resource.h b/src/resource.h index 1413d1e72014..afc38a5daac0 100644 --- a/src/resource.h +++ b/src/resource.h @@ -76,7 +76,6 @@ #define IDC_BGCOL_CUSTOM_FIRST 1220 #define IDC_TOC_LABEL_WITH_CLOSE 1101 #define IDC_FAV_LABEL_WITH_CLOSE 1106 -#define IDB_RELOADING_CUE 2010 #define IDC_STATIC -1 diff --git a/src/wingui/WebView.cpp b/src/wingui/WebView.cpp index 041a7bada1fb..2026066422e6 100644 --- a/src/wingui/WebView.cpp +++ b/src/wingui/WebView.cpp @@ -276,6 +276,14 @@ void WebviewWnd::FailInit() { } void WebviewWnd::SetControllerVisible(bool visible) { + // Avoid redundant visibility calls during rapid resize; they can trigger extra compositor work. + if (visible == isVisible) { + // If state is already aligned and suspension state matches, nothing to do. + if ((visible && !isSuspended) || (!visible && isSuspended)) { + return; + } + } + isVisible = visible; if (controller) { controller->put_IsVisible(visible ? TRUE : FALSE); @@ -318,6 +326,16 @@ void WebviewWnd::OnControllerReady(ICoreWebView2Controller* ctrl) { SetWindowLong(hwnd, GWL_STYLE, style); controller->put_IsVisible(isVisible ? TRUE : FALSE); + + // Reduce white flashes during resize/repaint by using transparent default background. + ICoreWebView2Controller2* controller2 = nullptr; + HRESULT bgHr = controller->QueryInterface(IID_PPV_ARGS(&controller2)); + if (SUCCEEDED(bgHr) && controller2) { + COREWEBVIEW2_COLOR bg = {0, 0, 0, 0}; + controller2->put_DefaultBackgroundColor(bg); + controller2->Release(); + } + isSuspended = false; RECT bounds = ClientRECT(hwnd); controller->put_Bounds(bounds); @@ -595,9 +613,21 @@ HWND WebviewWnd::Create(const CreateWebViewArgs& args) { } LRESULT WebviewWnd::WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { - if (msg == WM_SIZE) { - SetControllerVisible(wparam != SIZE_MINIMIZED); + if (msg == WM_ENTERSIZEMOVE) { + // Track interactive resize state and ask UI to disable expensive transitions/effects. + isInSizeMove = true; + Eval("if (window.__setHostResizing) window.__setHostResizing(true);"); + } else if (msg == WM_EXITSIZEMOVE) { + // Interactive resize finished: restore normal UI effects and apply final bounds once. + isInSizeMove = false; + Eval("if (window.__setHostResizing) window.__setHostResizing(false);"); UpdateWebviewSize(); + } else if (msg == WM_SIZE) { + SetControllerVisible(wparam != SIZE_MINIMIZED); + // During interactive resize, defer bounds updates to WM_EXITSIZEMOVE. + if (!isInSizeMove) { + UpdateWebviewSize(); + } } else if (msg == WM_SHOWWINDOW) { SetControllerVisible(wparam != FALSE); UpdateWebviewSize(); diff --git a/src/wingui/WebView.h b/src/wingui/WebView.h index 045731c31283..36edbb54b08f 100644 --- a/src/wingui/WebView.h +++ b/src/wingui/WebView.h @@ -67,6 +67,7 @@ struct WebviewWnd : Wnd { bool initFailed = false; bool isVisible = true; bool isSuspended = false; + bool isInSizeMove = false; RECT lastBounds = {}; bool hasLastBounds = false; std::wstring userDataFolder; From 992d5e5a41bc77b5d3dd6be8053632d08bb40b84 Mon Sep 17 00:00:00 2001 From: Krzysztof Kowalczyk Date: Mon, 18 May 2026 11:08:50 +0200 Subject: [PATCH 5/8] Make HtmlWindow teardown safer for CHM reuse --- src/wingui/HtmlWindow.cpp | 4152 +++++++++++++++++++------------------ 1 file changed, 2084 insertions(+), 2068 deletions(-) diff --git a/src/wingui/HtmlWindow.cpp b/src/wingui/HtmlWindow.cpp index 210c1e7826aa..d3f00441d6e5 100644 --- a/src/wingui/HtmlWindow.cpp +++ b/src/wingui/HtmlWindow.cpp @@ -1,2076 +1,2092 @@ -/* Copyright 2024 the SumatraPDF project authors (see AUTHORS file). - License: Simplified BSD (see COPYING.BSD) */ - -#include "utils/BaseUtil.h" -#include "utils/Dpi.h" -#include "utils/ScopedWin.h" -#include "utils/WinUtil.h" -#include "utils/GuessFileType.h" - -#include -#include -#include -#include - -#include "HtmlWindow.h" - -// An important (to Sumatra) use case is displaying CHM documents. First we used -// IE's built-in support form CHM documents (using its: protocol -// http://msdn.microsoft.com/en-us/library/aa164814(v=office.10).aspx). -// However, that doesn't work for CHM documents from network drives -// (http://code.google.com/p/sumatrapdf/issues/detail?id=1706) -// To solve that we ended up the following solution: -// * an app can provide html as data in memory. We write the data using custom -// IMoniker implementation with IE's IPersistentMoniker::Load() function. -// This allows us to provide base url which will be used to resolve relative -// links within the html (e.g. to embedded images in tags etc.) -// * We register application-global protocol handler and provide custom IInternetProtocol -// implementation which is called to handle getting content for URLs in that namespace. -// I've decided to over-ride its: protocol for our needs. A protocol unique to our -// code would be better, but completely new protocol don't seem to work with -// IPersistentMoniker::Load() code (I can see our IMoniker::GetDisplayName() (which -// returns the base url) called twice from mshtml/ieframe code but if the returned -// base url doesn't start with protocol that IE already understands, IPersistentMoniker::Load() -// fails) so I was forced to over-ride existing protocol name. -// -// I also tried the approach of implementing IInternetSecurityManager thinking that I can just -// use built-in its: handling and tell IE to trust those links, but it seems that in case -// of its: links for CHM files from network drives, that code isn't even reached. - -// Implementing scrolling: -// Currently we implement scrolling by sending messages simulating user input -// to the browser control window that is responsible for processing those messages. -// It has a benefit of being simple to implement and matching ie's behavior closely. - -// Another option would be to provide scrolling functions to be called by callers -// (e.g. from FrameOnKeydow()) by querying scroll state from IHTMLElement2 and setting -// a new scroll state http://www.codeproject.com/KB/miscctrl/scrollbrowser.aspx -// or using scrollTo() or scrollBy() on IHTMLWindow2: -// http://msdn.microsoft.com/en-us/library/aa741497(v=VS.85).aspx - -// The more advanced ways of interacting with mshtml/ieframe are extremely poorly -// documented so I mostly puzzled it out based on existing open source code that -// does similar things. Some useful resources: - -// Book on ATL: http://369o.com/data/books/atl/index.html, which is -// helpful in understanding basics of COM, has chapter on basics of embedding IE. - -// http://www.codeproject.com/KB/COM/cwebpage.aspx - -// This code is structured in a similar way as wxWindows' -// browser wrapper -// https://github.com/Aegisub/traydict/blob/master/IEHtmlWin.h -// https://github.com/Aegisub/traydict/blob/master/IEHtmlWin.cpp - -// Info about IInternetProtocol: http://www.codeproject.com/KB/IP/DataProtocol.aspx - -// All the ways to load html into mshtml: -// http://qualapps.blogspot.com/2008/10/how-to-load-mshtml-with-data.html - -// how to handle custom protocol like myapp:// -// http://www.nuonsoft.com/blog/2010/04/05/how-to-handle-custom-url-protocols-with-the-microsoft-webbrowser-control/ -// http://www.nuonsoft.com/blog/2010/04/05/how-to-navigate-to-an-anchor-in-the-microsoft-webbrowser-control-when-rendering-html-from-memory/ -// http://www.nuonsoft.com/blog/2010/03/24/how-to-use-the-microsoft-webbrowser-control-to-render-html-from-memory/ - -// http://geekswithblogs.net/dotnetnomad/archive/2008/01/29/119065.aspx - -// Other code that does advanced things with embedding IE or providing it with non-trivial -// interfaces: -// http://osh.codeplex.com/ -// http://code.google.com/p/atc32/source/browse/trunk/WorldWindProject/lib-external/webview/windows/ -// http://code.google.com/p/fidolook/source/browse/trunk/Qm/ui/messageviewwindow.cpp -// http://code.google.com/p/csexwb2/ -// chrome frame: http://codesearch.google.com/#wZuuyuB8jKQ/chromium/src/chrome_frame/chrome_protocol.h -// gears: http://code.google.com/p/gears/ -// http://code.google.com/p/fictionbookeditor/ -// http://code.google.com/p/easymule/ -// http://code.google.com/p/svnprotocolhandler/ (IInternetProtocolInfo implementation) -// https://github.com/facebook/ie-toolbar (also IInternetProtocolInfo implementation) -// http://code.google.com/p/veryie/ -// http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla -// http://www.codeproject.com/Articles/642/Processing-HTML-Forms-From-a-CHtmlView -// https://github.com/salsita/ProtocolLibrary -// https://github.com/salsita/libbhohelper -// https://github.com/salsita/libprothandlers -// http://www.codeproject.com/Articles/1094/The-MFC-CDHtmlDialog-class#xx568889xx -// http://www.codeproject.com/Articles/642/Processing-HTML-Forms-From-a-CHtmlView -// http://www.codeproject.com/Articles/10401/Handling-HTML-Element-Events-in-CHtmlView-and-Reus -// http://www.codeproject.com/Articles/3919/Using-the-WebBrowser-control-simplified - -// https://groups.google.com/forum/#!topic/microsoft.public.inetsdk.programming.mshtml_hosting/jogeNC4NXzU -// https://blog.javascripting.com/2012/11/07/igor-tandetniks-passthrough-app-now-on-github/ - -// Series of articles: -// http://starkravingfinkle.org/blog/2005/04/mshtml-hosting-drawing-on-webbrowser/ -// http://starkravingfinkle.org/blog/2005/04/mshtml-hosting-more-tricks/ -// http://starkravingfinkle.org/blog/2005/02/mshtml-hosting-editing-tricks/ -// http://starkravingfinkle.org/blog/2005/01/mshtml-hosting-more-editing/ -// http://starkravingfinkle.org/blog/2004/12/mshtml-hosting-calling-javascript-from-host/ -// http://starkravingfinkle.org/blog/2004/10/mshtml-hosting-editing/ -// http://starkravingfinkle.org/blog/2004/10/mshtml-hosting-idochostuihandler/ -// http://starkravingfinkle.org/blog/2004/09/mshtml-hosting-odds-ends/ -// http://starkravingfinkle.org/blog/2004/09/mshtml-hosting-building-uis/ -// http://starkravingfinkle.org/blog/2004/08/mshtml-hosting-the-basics/ - -class HW_IOleInPlaceFrame; -class HW_IOleInPlaceSiteWindowless; -class HW_IOleClientSite; -class HW_IOleControlSite; -class HW_IOleCommandTarget; -class HW_IOleItemContainer; -class HW_DWebBrowserEvents2; -class HW_IAdviseSink2; -class HW_IDocHostUIHandler; -class HW_IDropTarget; -class HW_IServiceProvider; - -inline void VariantSetBool(VARIANT* res, bool val) { - res->vt = VT_BOOL; - res->boolVal = val ? VARIANT_TRUE : VARIANT_FALSE; -} - -inline void VariantSetLong(VARIANT* res, long val) { - res->vt = VT_I4; - res->lVal = val; -} - -bool IsBlankUrl(const WCHAR* url) { - return str::EqI(L"about:blank", url); -} - -bool IsBlankUrl(const char* url) { - return str::EqI("about:blank", url); -} - -// HW stands for HtmlWindow -// FrameSite ties together HtmlWindow and all the COM interfaces we need to implement -// to support it -class FrameSite : public IUnknown { - friend class HtmlWindow; - friend class HW_IOleInPlaceFrame; - friend class HW_IOleInPlaceSiteWindowless; - friend class HW_IOleClientSite; - friend class HW_IOleControlSite; - friend class HW_IOleCommandTarget; - friend class HW_IOleItemContainer; - friend class HW_DWebBrowserEvents2; - friend class HW_IAdviseSink2; - friend class HW_IDocHostUIHandler; - friend class HW_IDropTarget; - friend class HW_IServiceProvider; - - public: - explicit FrameSite(HtmlWindow* win); - ~FrameSite(); - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override; - - protected: - LONG refCount = 0; - - HW_IOleInPlaceFrame* oleInPlaceFrame = nullptr; - HW_IOleInPlaceSiteWindowless* oleInPlaceSiteWindowless = nullptr; - HW_IOleClientSite* oleClientSite = nullptr; - HW_IOleControlSite* oleControlSite = nullptr; - HW_IOleCommandTarget* oleCommandTarget = nullptr; - HW_IOleItemContainer* oleItemContainer = nullptr; - HW_DWebBrowserEvents2* hwDWebBrowserEvents2 = nullptr; - HW_IAdviseSink2* adviseSink2 = nullptr; - HW_IDocHostUIHandler* docHostUIHandler = nullptr; - HW_IDropTarget* dropTarget = nullptr; - HW_IServiceProvider* serviceProvider = nullptr; - - HtmlWindow* htmlWindow; - - // HDC m_hDCBuffer; - HWND hwndParent = nullptr; - - bool supportsWindowlessActivation; - bool inPlaceLocked; - bool inPlaceActive; - bool uiActive; - bool isWindowless; - - LCID ambientLocale; - COLORREF ambientForeColor; - COLORREF ambientBackColor; - bool ambientShowHatching; - bool ambientShowGrabHandles; - bool ambientUserMode; - bool ambientAppearance; -}; - -// For simplicity, we just add to the array. We don't bother -// reclaiming ids for deleted windows. I don't expect number -// of HtmlWindow objects created to be so high as to be problematic -// (1 thousand objects is just 4K of memory for the vector) -static Vec gHtmlWindows; - -HtmlWindow* FindHtmlWindowById(int windowId) { - return gHtmlWindows.at(windowId); -} - -static int GenNewWindowId(HtmlWindow* htmlWin) { - int newWindowId = (int)gHtmlWindows.size(); - gHtmlWindows.Append(htmlWin); - ReportIf(htmlWin != FindHtmlWindowById(newWindowId)); - return newWindowId; -} - -static void FreeWindowId(int windowId) { - ReportIf(nullptr == gHtmlWindows.at(windowId)); - gHtmlWindows.at(windowId) = nullptr; -} - -// Re-using its protocol, see comments at the top. -#define HW_PROTO_PREFIX L"its" - -#define HW_PROTO_PREFIXA "its" - -// {F1EC293F-DBBD-4A4B-94F4-FA52BA0BA6EE} -static const GUID CLSID_HW_IInternetProtocol = {0xf1ec293f, - 0xdbbd, - 0x4a4b, - {0x94, 0xf4, 0xfa, 0x52, 0xba, 0xb, 0xa6, 0xee}}; - -class HW_IInternetProtocolInfo : public IInternetProtocolInfo { - public: - HW_IInternetProtocolInfo() = default; - - protected: - virtual ~HW_IInternetProtocolInfo() = default; - - public: - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override; - - // IInternetProtocolInfo - STDMETHODIMP ParseUrl(__unused LPCWSTR pwzUrl, __unused PARSEACTION parseAction, __unused DWORD dwParseFlags, - __unused LPWSTR pwzResult, __unused DWORD cchResult, __unused DWORD* pcchResult, - __unused DWORD dwReserved) override { - return INET_E_DEFAULT_ACTION; - } - - STDMETHODIMP CombineUrl(__unused LPCWSTR pwzBaseUrl, __unused LPCWSTR pwzRelativeUrl, __unused DWORD dwCombineFlags, - __unused LPWSTR pwzResult, __unused DWORD cchResult, __unused DWORD* pcchResult, - __unused DWORD dwReserved) override { - return INET_E_DEFAULT_ACTION; - } - - STDMETHODIMP CompareUrl(__unused LPCWSTR pwzUrl1, __unused LPCWSTR pwzUrl2, - __unused DWORD dwCompareFlags) override { - return INET_E_DEFAULT_ACTION; - } - - STDMETHODIMP QueryInfo(__unused LPCWSTR pwzUrl, __unused QUERYOPTION queryOption, __unused DWORD dwQueryFlags, - __unused LPVOID pBuffer, __unused DWORD cbBuffer, __unused DWORD* pcbBuf, - __unused DWORD dwReserved) override { - return INET_E_DEFAULT_ACTION; - } - - protected: - LONG refCount = 1; -}; - -ULONG STDMETHODCALLTYPE HW_IInternetProtocolInfo::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -STDMETHODIMP HW_IInternetProtocolInfo::QueryInterface(REFIID riid, void** ppv) { - static const QITAB qit[] = {QITABENT(HW_IInternetProtocolInfo, IInternetProtocolInfo), {nullptr}}; - return QISearch(this, qit, riid, ppv); -} - -class HW_IInternetProtocol : public IInternetProtocol { - public: - HW_IInternetProtocol() = default; - - protected: - virtual ~HW_IInternetProtocol() = default; - - public: - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override; - - // IInternetProtocol - STDMETHODIMP Start(LPCWSTR szUrl, IInternetProtocolSink* pIProtSink, IInternetBindInfo* pIBindInfo, DWORD grfSTI, - HANDLE_PTR dwReserved) override; - STDMETHODIMP Continue(__unused PROTOCOLDATA* pStateInfo) override { return S_OK; } - STDMETHODIMP Abort(__unused HRESULT hrReason, __unused DWORD dwOptions) override { return S_OK; } - STDMETHODIMP Terminate(__unused DWORD dwOptions) override { return S_OK; } - STDMETHODIMP Suspend() override { return E_NOTIMPL; } - STDMETHODIMP Resume() override { return E_NOTIMPL; } - STDMETHODIMP Read(void* pv, ULONG cb, ULONG* pcbRead) override; - STDMETHODIMP Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) override; - STDMETHODIMP LockRequest(__unused DWORD dwOptions) override { return S_OK; } - STDMETHODIMP UnlockRequest() override { return S_OK; } - - protected: - LONG refCount = 1; - - // those are filled in Start() and represent data to be sent - // for a given url - ByteSlice data{}; - size_t dataCurrPos = 0; -}; - -ULONG STDMETHODCALLTYPE HW_IInternetProtocol::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -STDMETHODIMP HW_IInternetProtocol::QueryInterface(REFIID riid, void** ppv) { - static const QITAB qit[] = {QITABENT(HW_IInternetProtocol, IInternetProtocol), - QITABENT(HW_IInternetProtocol, IInternetProtocolRoot), - {nullptr}}; - return QISearch(this, qit, riid, ppv); -} - -// given url in the form "its://$htmlWindowId/$urlRest, parses -// out $htmlWindowId and $urlRest. Returns false if url doesn't conform -// to this pattern. -static bool ParseProtoUrl(const WCHAR* url, int* htmlWindowId, AutoFreeWStr* urlRest) { - const WCHAR* rest = str::Parse(url, HW_PROTO_PREFIX L"://%d/%S", htmlWindowId, urlRest); - return rest && !*rest; -} - -// given url in the form "its://$htmlWindowId/$urlRest, parses -// out $htmlWindowId and $urlRest. Returns false if url doesn't conform -// to this pattern. -static bool ParseProtoUrl(const char* url, int* htmlWindowId, AutoFreeStr* urlRest) { - const char* rest = str::Parse(url, HW_PROTO_PREFIXA "://%d/%S", htmlWindowId, urlRest); - return rest && !*rest; -} - -#define kDefaultMimeType "text/html" - -// caller must free() the result -static char* MimeFromUrl(const char* url, const char* imgExt = nullptr) { - const char* ext = str::FindCharLast(url, '.'); - if (!ext) { - return str::Dup(kDefaultMimeType); - } - - if (str::FindChar(ext, ';')) { - // some CHM documents use (image) URLs that are followed by - // a semi-colon and a number after the file's extension - char* newUrl = str::DupTemp(url, str::FindChar(ext, ';') - url); - return MimeFromUrl(newUrl, imgExt); - } - - static const struct { - const char* ext; - const char* mimetype; - } mimeTypes[] = { - {".html", "text/html"}, {".htm", "text/html"}, {".gif", "image/gif"}, - {".png", "image/png"}, {".jpg", "image/jpeg"}, {".jpeg", "image/jpeg"}, - {".bmp", "image/bmp"}, {".css", "text/css"}, {".txt", "text/plain"}, - }; - - for (int i = 0; i < dimof(mimeTypes); i++) { - if (str::EqI(ext, mimeTypes[i].ext)) { - // trust an image's data more than its extension - if (imgExt && !str::Eq(imgExt, mimeTypes[i].ext) && str::StartsWith(mimeTypes[i].mimetype, "image/")) { - for (int j = 0; j < dimof(mimeTypes); j++) { - if (str::Eq(imgExt, mimeTypes[j].ext)) { - return str::Dup(mimeTypes[j].mimetype); - } - } - } - return str::Dup(mimeTypes[i].mimetype); - } - } - - char* contentType = ReadRegStrTemp(HKEY_CLASSES_ROOT, ext, "Content Type"); - if (contentType) { - return str::Dup(contentType); - } - - return str::Dup(kDefaultMimeType); -} - -// TODO: return an error page html in case of errors? -STDMETHODIMP HW_IInternetProtocol::Start(LPCWSTR szUrl, IInternetProtocolSink* pIProtSink, - __unused IInternetBindInfo* pIBindInfo, __unused DWORD grfSTI, - __unused HANDLE_PTR dwReserved) { - // TODO: others seem to return S_OK even if there is no content - // for a URL (unless the PI_PARSE_URL bit is set on grfSTI), - // this does however lead to this HW_IInternetProtocol being - // leaked and to DISPID_DOCUMENTCOMPLETE never being fired - - int htmlWindowId; - AutoFreeWStr urlRest; - bool ok = ParseProtoUrl(szUrl, &htmlWindowId, &urlRest); - if (!ok) { - return INET_E_INVALID_URL; - } - - pIProtSink->ReportProgress(BINDSTATUS_FINDINGRESOURCE, urlRest); - pIProtSink->ReportProgress(BINDSTATUS_CONNECTING, urlRest); - pIProtSink->ReportProgress(BINDSTATUS_SENDINGREQUEST, urlRest); - - HtmlWindow* win = FindHtmlWindowById(htmlWindowId); - // TODO: this now happens due to events happening on HtmlWindow - // used to take a screenshot, so ignore it. Is there a way - // to cancel things and not get her? - // ReportIf(!win); - if (!win) { - return INET_E_OBJECT_NOT_FOUND; - } - if (!win->htmlWinCb) { - return INET_E_OBJECT_NOT_FOUND; - } - char* urlRestA = ToUtf8Temp(urlRest); - data = win->htmlWinCb->GetDataForUrl(urlRestA); - if (data.empty()) { - return INET_E_DATA_NOT_AVAILABLE; - } - - const char* imgExt = GfxFileExtFromData({(u8*)data.data(), data.size()}); - char* mime = MimeFromUrl(urlRestA, imgExt); - WCHAR* mimeW = ToWStrTemp(mime); - str::Free(mime); - pIProtSink->ReportProgress(BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE, mimeW); -#ifdef _WIN64 - // not going to report data in parts for unexpectedly huge webpages - ReportIf(data.size() > ULONG_MAX); -#endif - pIProtSink->ReportData(BSCF_FIRSTDATANOTIFICATION | BSCF_LASTDATANOTIFICATION | BSCF_DATAFULLYAVAILABLE, - (ULONG)data.size(), (ULONG)data.size()); - pIProtSink->ReportResult(S_OK, 200, nullptr); - return S_OK; -} - -STDMETHODIMP HW_IInternetProtocol::Read(void* pv, ULONG cb, ULONG* pcbRead) { - if (data.empty()) { - return S_FALSE; - } - size_t dataAvail = data.size() - dataCurrPos; - if (0 == dataAvail) { - return S_FALSE; - } - ULONG toRead = cb; - if (toRead > dataAvail) { - toRead = (ULONG)dataAvail; - } - u8* dataToRead = data.data() + dataCurrPos; - memcpy(pv, dataToRead, toRead); - dataCurrPos += toRead; - *pcbRead = toRead; - return S_OK; -} - -STDMETHODIMP HW_IInternetProtocol::Seek(LARGE_INTEGER /*dlibMove*/, DWORD /*dwOrigin*/, - ULARGE_INTEGER* /*plibNewPosition*/) { - // doesn't seem to be called - return E_NOTIMPL; -} - -class HW_IInternetProtocolFactory : public IClassFactory { - protected: - virtual ~HW_IInternetProtocolFactory() = default; - - public: - HW_IInternetProtocolFactory() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override; - - // IClassFactory - STDMETHODIMP CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) override; - STDMETHODIMP LockServer(__unused BOOL fLock) override { return S_OK; } - - protected: - LONG refCount = 1; -}; - -STDMETHODIMP_(ULONG) HW_IInternetProtocolFactory::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -STDMETHODIMP HW_IInternetProtocolFactory::QueryInterface(REFIID riid, void** ppv) { - static const QITAB qit[] = {QITABENT(HW_IInternetProtocolFactory, IClassFactory), {nullptr}}; - return QISearch(this, qit, riid, ppv); -} - -STDMETHODIMP HW_IInternetProtocolFactory::CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) { - if (pUnkOuter != nullptr) { - return CLASS_E_NOAGGREGATION; - } - if (riid == IID_IInternetProtocol) { - ScopedComPtr proto(new HW_IInternetProtocol()); - return proto->QueryInterface(riid, ppvObject); - } - if (riid == IID_IInternetProtocolInfo) { - ScopedComPtr proto(new HW_IInternetProtocolInfo()); - return proto->QueryInterface(riid, ppvObject); - } - return E_NOINTERFACE; -} - -static LONG gProtocolFactoryRefCount = 0; -HW_IInternetProtocolFactory* gInternetProtocolFactory = nullptr; - -// Register our protocol so that urlmon will call us for every -// url that starts with HW_PROTO_PREFIX -static void RegisterInternetProtocolFactory() { - LONG val = InterlockedIncrement(&gProtocolFactoryRefCount); - if (val > 1) { - return; - } - - ScopedComPtr internetSession; - HRESULT hr = CoInternetGetSession(0, &internetSession, 0); - ReportIf(FAILED(hr)); - ReportIf(nullptr != gInternetProtocolFactory); - gInternetProtocolFactory = new HW_IInternetProtocolFactory(); - hr = internetSession->RegisterNameSpace(gInternetProtocolFactory, CLSID_HW_IInternetProtocol, HW_PROTO_PREFIX, 0, - nullptr, 0); - ReportIf(FAILED(hr)); -} - -static void UnregisterInternetProtocolFactory() { - LONG val = InterlockedDecrement(&gProtocolFactoryRefCount); - if (val > 0) { - return; - } - ScopedComPtr internetSession; - HRESULT hr = CoInternetGetSession(0, &internetSession, 0); - ReportIf(FAILED(hr)); - internetSession->UnregisterNameSpace(gInternetProtocolFactory, HW_PROTO_PREFIX); - ULONG refCount = gInternetProtocolFactory->Release(); - ReportIf(refCount != 0); - gInternetProtocolFactory = nullptr; -} - -class HW_IOleInPlaceFrame : public IOleInPlaceFrame { - public: - explicit HW_IOleInPlaceFrame(FrameSite* fs) : fs(fs) {} - ~HW_IOleInPlaceFrame() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleWindow - STDMETHODIMP GetWindow(HWND*) override; - STDMETHODIMP ContextSensitiveHelp(BOOL) override { return S_OK; } - - // IOleInPlaceUIWindow - STDMETHODIMP GetBorder(LPRECT) override; - STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS) override; - STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS) override { return S_OK; } - STDMETHODIMP SetActiveObject(IOleInPlaceActiveObject*, LPCOLESTR) override { return S_OK; } - - // IOleInPlaceFrame - STDMETHODIMP InsertMenus(HMENU, LPOLEMENUGROUPWIDTHS) override { return S_OK; } - STDMETHODIMP SetMenu(HMENU, HOLEMENU, HWND) override { return S_OK; } - STDMETHODIMP RemoveMenus(HMENU) override { return S_OK; } - STDMETHODIMP SetStatusText(LPCOLESTR) override { return S_OK; } - STDMETHODIMP EnableModeless(BOOL) override { return S_OK; } - STDMETHODIMP TranslateAccelerator(LPMSG, WORD) { return E_NOTIMPL; } - - protected: - FrameSite* fs; -}; - -class HW_IOleInPlaceSiteWindowless : public IOleInPlaceSiteWindowless { - public: - explicit HW_IOleInPlaceSiteWindowless(FrameSite* fs) : fs(fs) {} - ~HW_IOleInPlaceSiteWindowless() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleWindow - STDMETHODIMP GetWindow(HWND* h) override { return fs->oleInPlaceFrame->GetWindow(h); } - STDMETHODIMP ContextSensitiveHelp(BOOL b) override { return fs->oleInPlaceFrame->ContextSensitiveHelp(b); } - - // IOleInPlaceSite - STDMETHODIMP CanInPlaceActivate() override { return S_OK; } - STDMETHODIMP OnInPlaceActivate() override; - STDMETHODIMP OnUIActivate() override; - STDMETHODIMP GetWindowContext(IOleInPlaceFrame**, IOleInPlaceUIWindow**, LPRECT, LPRECT, - LPOLEINPLACEFRAMEINFO) override; - STDMETHODIMP Scroll(SIZE) override { return S_OK; } - STDMETHODIMP OnUIDeactivate(BOOL) override; - STDMETHODIMP OnInPlaceDeactivate() override; - STDMETHODIMP DiscardUndoState() override { return S_OK; } - STDMETHODIMP DeactivateAndUndo() override { return S_OK; } - STDMETHODIMP OnPosRectChange(LPCRECT) override { return S_OK; } - - // IOleInPlaceSiteEx - STDMETHODIMP OnInPlaceActivateEx(BOOL*, DWORD) override; - STDMETHODIMP OnInPlaceDeactivateEx(BOOL) override { return S_OK; } - STDMETHODIMP RequestUIActivate() override { return S_FALSE; } - - // IOleInPlaceSiteWindowless - STDMETHODIMP CanWindowlessActivate() override; - STDMETHODIMP GetCapture() override { return S_FALSE; } - STDMETHODIMP SetCapture(BOOL) override { return S_FALSE; } - STDMETHODIMP GetFocus() override { return S_OK; } - STDMETHODIMP SetFocus(BOOL) override { return S_OK; } - STDMETHODIMP GetDC(LPCRECT, DWORD, HDC*) override; - STDMETHODIMP ReleaseDC(HDC) override { return E_NOTIMPL; } - STDMETHODIMP InvalidateRect(LPCRECT, BOOL) override; - STDMETHODIMP InvalidateRgn(HRGN, BOOL) override { return E_NOTIMPL; } - STDMETHODIMP ScrollRect(INT, INT, LPCRECT, LPCRECT) override { return E_NOTIMPL; } - STDMETHODIMP AdjustRect(LPRECT) override { return E_NOTIMPL; } - STDMETHODIMP OnDefWindowMessage(UINT, WPARAM, LPARAM, LRESULT*) override { return E_NOTIMPL; } - - protected: - FrameSite* fs; -}; - -class HW_IOleClientSite : public IOleClientSite { - public: - explicit HW_IOleClientSite(FrameSite* fs) : fs(fs) {} - ~HW_IOleClientSite() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleClientSite - STDMETHODIMP SaveObject() override { return S_OK; } - STDMETHODIMP GetMoniker(DWORD, DWORD, IMoniker**) override { return E_NOTIMPL; } - STDMETHODIMP GetContainer(LPOLECONTAINER FAR*) override; - STDMETHODIMP ShowObject() override { return S_OK; } - STDMETHODIMP OnShowWindow(BOOL) override { return S_OK; } - STDMETHODIMP RequestNewObjectLayout() override { return E_NOTIMPL; } - - protected: - FrameSite* fs; -}; - -class HW_IOleControlSite : public IOleControlSite { - public: - explicit HW_IOleControlSite(FrameSite* fs) : fs(fs) {} - ~HW_IOleControlSite() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleControlSite - STDMETHODIMP OnControlInfoChanged() override { return S_OK; } - STDMETHODIMP LockInPlaceActive(BOOL) override; - STDMETHODIMP GetExtendedControl(IDispatch**) override { return E_NOTIMPL; } - STDMETHODIMP TransformCoords(POINTL*, POINTF*, DWORD) override; - STDMETHODIMP TranslateAccelerator(LPMSG, DWORD) { return E_NOTIMPL; } - STDMETHODIMP OnFocus(BOOL) override { return S_OK; } - STDMETHODIMP ShowPropertyFrame() override { return E_NOTIMPL; } - - protected: - FrameSite* fs; -}; - -class HW_IOleCommandTarget : public IOleCommandTarget { - public: - explicit HW_IOleCommandTarget(FrameSite* fs) : fs(fs) {} - ~HW_IOleCommandTarget() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleCommandTarget - STDMETHODIMP QueryStatus(const GUID*, ULONG, OLECMD[], OLECMDTEXT*) override; - STDMETHODIMP Exec(const GUID*, DWORD, DWORD, VARIANTARG*, VARIANTARG*) override { return OLECMDERR_E_NOTSUPPORTED; } - - protected: - FrameSite* fs; -}; - -class HW_IOleItemContainer : public IOleItemContainer { - public: - explicit HW_IOleItemContainer(FrameSite* fs) : fs(fs) {} - ~HW_IOleItemContainer() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IParseDisplayName - STDMETHODIMP ParseDisplayName(IBindCtx*, LPOLESTR, ULONG*, IMoniker**) override { return E_NOTIMPL; } - - // IOleContainer - STDMETHODIMP EnumObjects(DWORD, IEnumUnknown**) override { return E_NOTIMPL; } - STDMETHODIMP LockContainer(BOOL) override { return S_OK; } - - // IOleItemContainer - STDMETHODIMP GetObject(LPOLESTR, DWORD, IBindCtx*, REFIID, void**); - STDMETHODIMP GetObjectStorage(LPOLESTR, IBindCtx*, REFIID, void**) override; - STDMETHODIMP IsRunning(LPOLESTR) override; - - protected: - FrameSite* fs; -}; - -class HW_DWebBrowserEvents2 : public DWebBrowserEvents2 { - FrameSite* fs; - - HRESULT DispatchPropGet(DISPID dispIdMember, VARIANT* res); - - public: - explicit HW_DWebBrowserEvents2(FrameSite* fs) : fs(fs) {} - ~HW_DWebBrowserEvents2() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IDispatch - STDMETHODIMP GetIDsOfNames(REFIID, OLECHAR**, unsigned int, LCID, DISPID*) override { return E_NOTIMPL; } - STDMETHODIMP GetTypeInfo(unsigned int, LCID, ITypeInfo**) override { return E_NOTIMPL; } - STDMETHODIMP GetTypeInfoCount(unsigned int*) override { return E_NOTIMPL; } - STDMETHODIMP Invoke(DISPID, REFIID, LCID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*) override; -}; - -class HW_IAdviseSink2 : public IAdviseSink2, public IAdviseSinkEx { - FrameSite* fs; - - public: - explicit HW_IAdviseSink2(FrameSite* fs) : fs(fs) {} - ~HW_IAdviseSink2() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IAdviseSink - void STDMETHODCALLTYPE OnDataChange(FORMATETC*, STGMEDIUM*) override {} - void STDMETHODCALLTYPE OnViewChange(DWORD, LONG) override { - // redraw the control - fs->oleInPlaceSiteWindowless->InvalidateRect(nullptr, FALSE); - } - void STDMETHODCALLTYPE OnRename(IMoniker*) override {} - void STDMETHODCALLTYPE OnSave() override {} - void STDMETHODCALLTYPE OnClose() override {} - - // IAdviseSink2 - void STDMETHODCALLTYPE OnLinkSrcChange(IMoniker*) override {} - - // IAdviseSinkEx - void STDMETHODCALLTYPE OnViewStatusChange(DWORD) override {} -}; - -// http://www.popkistopki.ru/ch09b.shtml -class HW_IDocHostUIHandler : public IDocHostUIHandler { - FrameSite* fs; - - public: - explicit HW_IDocHostUIHandler(FrameSite* fs) : fs(fs) {} - ~HW_IDocHostUIHandler() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IDocHostUIHandler - STDMETHODIMP ShowContextMenu(__unused DWORD dwID, __unused POINT* ppt, __unused IUnknown* pcmdtReserved, - __unused IDispatch* pdispReserved) override { - return S_FALSE; - } - STDMETHODIMP GetHostInfo(DOCHOSTUIINFO* pInfo) override; - STDMETHODIMP ShowUI(__unused DWORD dwID, __unused IOleInPlaceActiveObject* pActiveObject, - __unused IOleCommandTarget* pCommandTarget, __unused IOleInPlaceFrame* pFrame, - __unused IOleInPlaceUIWindow* pDoc) override { - return S_FALSE; - } - STDMETHODIMP HideUI() override { return E_NOTIMPL; } - STDMETHODIMP UpdateUI() override { return E_NOTIMPL; } - STDMETHODIMP EnableModeless(__unused BOOL fEnable) override { return E_NOTIMPL; } - STDMETHODIMP OnDocWindowActivate(__unused BOOL fActivate) override { return E_NOTIMPL; } - STDMETHODIMP OnFrameWindowActivate(__unused BOOL fActivate) override { return E_NOTIMPL; } - STDMETHODIMP ResizeBorder(__unused LPCRECT prcBorder, __unused IOleInPlaceUIWindow* pUIWindow, - __unused BOOL fRameWindow) override { - return E_NOTIMPL; - } - STDMETHODIMP TranslateAccelerator(__unused LPMSG lpMsg, __unused const GUID* pguidCmdGroup, __unused DWORD nCmdID) { - return S_FALSE; - } - STDMETHODIMP GetOptionKeyPath(__unused LPOLESTR* pchKey, __unused DWORD dw) override { return S_FALSE; } - STDMETHODIMP GetDropTarget(__unused IDropTarget* pDropTarget, IDropTarget** ppDropTarget) override { - return fs->QueryInterface(IID_PPV_ARGS(ppDropTarget)); - } - STDMETHODIMP GetExternal(IDispatch** ppDispatch) override { - if (ppDispatch) { - *ppDispatch = nullptr; - } - return S_FALSE; - } - STDMETHODIMP TranslateUrl(__unused DWORD dwTranslate, __unused OLECHAR* pchURLIn, - __unused OLECHAR** ppchURLOut) override { - return S_FALSE; - } - STDMETHODIMP FilterDataObject(__unused IDataObject* pDO, IDataObject** ppDORet) override { - if (ppDORet) { - *ppDORet = nullptr; - } - return S_FALSE; - } -}; - -STDMETHODIMP HW_IDocHostUIHandler::GetHostInfo(DOCHOSTUIINFO* pInfo) { - if (!pInfo) { - return S_FALSE; - } - pInfo->pchHostCss = nullptr; - pInfo->pchHostNS = nullptr; - - // Note: I was hoping that also setting DOCHOSTUIFLAG_SCROLL_NO - // would get rid of vertical scrollbar when not necessary, but alas it - // always removes it - pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER | DOCHOSTUIFLAG_NO3DOUTERBORDER; - pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT; - return S_OK; -} - -class HW_IDropTarget : public IDropTarget { - FrameSite* fs; - - public: - explicit HW_IDropTarget(FrameSite* fs) : fs(fs) {} - ~HW_IDropTarget() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - STDMETHODIMP DragEnter(IDataObject* pDataObj, __unused DWORD grfKeyState, __unused POINTL pt, - DWORD* pdwEffect) override { - HRESULT hr = fs->htmlWindow->OnDragEnter(pDataObj); - if (SUCCEEDED(hr)) { - *pdwEffect = DROPEFFECT_COPY; - } - return hr; - } - STDMETHODIMP DragOver(__unused DWORD grfKeyState, __unused POINTL pt, DWORD* pdwEffect) override { - *pdwEffect = DROPEFFECT_COPY; - return S_OK; - } - STDMETHODIMP DragLeave() override { return S_OK; } - STDMETHODIMP Drop(IDataObject* pDataObj, __unused DWORD grfKeyState, __unused POINTL pt, - DWORD* pdwEffect) override { - *pdwEffect = DROPEFFECT_COPY; - return fs->htmlWindow->OnDragDrop(pDataObj); - } -}; - -#ifndef __IDownloadManager_INTERFACE_DEFINED__ -#define __IDownloadManager_INTERFACE_DEFINED__ - -#define DEFINE_GUID_STATIC(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ - static const GUID name = {l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}} -DEFINE_GUID_STATIC(IID_IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9); -#define SID_SDownloadManager IID_IDownloadManager - -MIDL_INTERFACE("988934A4-064B-11D3-BB80-00104B35E7F9") -IDownloadManager : public IUnknown { - public: - virtual STDMETHODIMP Download(IMoniker __RPC_FAR * pmk, IBindCtx __RPC_FAR * pbc, DWORD dwBindVerb, LONG grfBINDF, - BINDINFO __RPC_FAR * pBindInfo, LPCOLESTR pszHeaders, LPCOLESTR pszRedir, - UINT uiCP) = 0; -}; - -#ifdef __GNUC__ -__CRT_UUID_DECL(IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9) -#endif - -#endif - -class HW_IDownloadManager : public IDownloadManager { - LONG refCount = 1; - - public: - HW_IDownloadManager() = default; - ~HW_IDownloadManager() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppv) override { - static const QITAB qit[] = {QITABENT(HW_IDownloadManager, IDownloadManager), {nullptr}}; - return QISearch(this, qit, riid, ppv); - } - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; - } - - // IDownloadManager - STDMETHODIMP Download(IMoniker __RPC_FAR* pmk, IBindCtx __RPC_FAR* pbc, __unused DWORD dwBindVerb, - __unused LONG grfBINDF, __unused BINDINFO __RPC_FAR* pBindInfo, __unused LPCOLESTR pszHeaders, - __unused LPCOLESTR pszRedir, __unused UINT uiCP) override { - LPOLESTR urlToFile; - HRESULT hr = pmk->GetDisplayName(pbc, nullptr, &urlToFile); - if (FAILED(hr)) { - return hr; - } - // parse the URL (only internal its:// URLs are supported) - int htmlWindowId; - AutoFreeWStr urlRest; - bool ok = ParseProtoUrl(urlToFile, &htmlWindowId, &urlRest); - // free urlToFile using IMalloc::Free - IMalloc* pMalloc = nullptr; - if (SUCCEEDED(CoGetMalloc(1, &pMalloc))) { - pMalloc->Free(urlToFile); - } else { - CoTaskMemFree(urlToFile); - } - - if (!ok) { - return INET_E_INVALID_URL; - } - - // fetch the data - HtmlWindow* win = FindHtmlWindowById(htmlWindowId); - if (!win || !win->htmlWinCb) { - return INET_E_OBJECT_NOT_FOUND; - } - char* urlRestA = ToUtf8Temp(urlRest); - auto data = win->htmlWinCb->GetDataForUrl(urlRestA); - if (data.empty()) { - return INET_E_DATA_NOT_AVAILABLE; - } - // ask the UI to let the user save the file - win->htmlWinCb->DownloadData(urlRestA, data); - return S_OK; - } -}; - -class HW_IServiceProvider : public IServiceProvider { - FrameSite* fs; - - public: - explicit HW_IServiceProvider(FrameSite* fs) : fs(fs) {} - ~HW_IServiceProvider() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IServiceProvider - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** ppv) override { - if (guidService == SID_SDownloadManager) { - ScopedComPtr dm(new HW_IDownloadManager()); - return dm->QueryInterface(riid, ppv); - } - return E_NOINTERFACE; - } -}; - -class HtmlMoniker : public IMoniker { - public: - HtmlMoniker(); - virtual ~HtmlMoniker(); - - HRESULT SetHtml(const ByteSlice&); - HRESULT SetBaseUrl(const WCHAR* baseUrl); - - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override; - ULONG STDMETHODCALLTYPE Release() override; - - // IMoniker - STDMETHODIMP BindToStorage(IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) override; - STDMETHODIMP GetDisplayName(IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR* ppszDisplayName) override; - STDMETHODIMP BindToObject(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, __unused REFIID riidResult, - __unused void** ppvResult) override { - return E_NOTIMPL; - } - STDMETHODIMP Reduce(__unused IBindCtx* pbc, __unused DWORD dwReduceHowFar, __unused IMoniker** ppmkToLeft, - __unused IMoniker** ppmkReduced) override { - return E_NOTIMPL; - } - STDMETHODIMP ComposeWith(__unused IMoniker* pmkRight, __unused BOOL fOnlyIfNotGeneric, - __unused IMoniker** ppmkComposite) override { - return E_NOTIMPL; - } - STDMETHODIMP Enum(__unused BOOL fForward, __unused IEnumMoniker** ppenumMoniker) override { return E_NOTIMPL; } - STDMETHODIMP IsEqual(__unused IMoniker* pmkOtherMoniker) override { return E_NOTIMPL; } - STDMETHODIMP Hash(__unused DWORD* pdwHash) override { return E_NOTIMPL; } - STDMETHODIMP IsRunning(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, - __unused IMoniker* pmkNewlyRunning) override { - return E_NOTIMPL; - } - STDMETHODIMP GetTimeOfLastChange(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, - __unused FILETIME* pFileTime) override { - return E_NOTIMPL; - } - STDMETHODIMP Inverse(__unused IMoniker** ppmk) override { return E_NOTIMPL; } - STDMETHODIMP CommonPrefixWith(__unused IMoniker* pmkOther, __unused IMoniker** ppmkPrefix) override { - return E_NOTIMPL; - } - STDMETHODIMP RelativePathTo(__unused IMoniker* pmkOther, __unused IMoniker** ppmkRelPath) override { - return E_NOTIMPL; - } - STDMETHODIMP ParseDisplayName(IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, - IMoniker** ppmkOut) override; - STDMETHODIMP IsSystemMoniker(DWORD* pdwMksys) override { - if (!pdwMksys) { - return E_POINTER; - } - *pdwMksys = MKSYS_NONE; - return S_OK; - } - - // IPersistStream methods - STDMETHODIMP Save(__unused IStream* pStm, __unused BOOL fClearDirty) override { return E_NOTIMPL; } - STDMETHODIMP IsDirty() override { return E_NOTIMPL; } - STDMETHODIMP Load(__unused IStream* pStm) override { return E_NOTIMPL; } - STDMETHODIMP GetSizeMax(__unused ULARGE_INTEGER* pcbSize) override { return E_NOTIMPL; } - - // IPersist - STDMETHODIMP GetClassID(__unused CLSID* pClassID) override { return E_NOTIMPL; } - - private: - LONG refCount = 1; - - char* htmlData = nullptr; - IStream* htmlStream = nullptr; - - WCHAR* baseUrl = nullptr; -}; - -HtmlMoniker::HtmlMoniker() = default; - -HtmlMoniker::~HtmlMoniker() { - if (htmlStream) { - htmlStream->Release(); - } - - free(htmlData); - free(baseUrl); -} - -HRESULT HtmlMoniker::SetHtml(const ByteSlice& d) { - free(htmlData); - htmlData = str::Dup(d); - if (htmlStream) { - htmlStream->Release(); - } - htmlStream = CreateStreamFromData({(u8*)htmlData, d.size()}); - return S_OK; -} - -HRESULT HtmlMoniker::SetBaseUrl(const WCHAR* newBaseUrl) { - free(baseUrl); - baseUrl = str::Dup(newBaseUrl); - return S_OK; -} - -STDMETHODIMP HtmlMoniker::BindToStorage(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, REFIID riid, - void** ppvObj) { - LARGE_INTEGER seek{}; - htmlStream->Seek(seek, STREAM_SEEK_SET, nullptr); - return htmlStream->QueryInterface(riid, ppvObj); -} - -static LPOLESTR OleStrDup(const WCHAR* s) { - size_t cb = sizeof(WCHAR) * (str::Len(s) + 1); - LPOLESTR ret = (LPOLESTR)CoTaskMemAlloc(cb); - if (ret) { - memcpy(ret, s, cb); - } - return ret; -} - -STDMETHODIMP HtmlMoniker::GetDisplayName(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, - LPOLESTR* ppszDisplayName) { - if (!ppszDisplayName) { - return E_POINTER; - } - *ppszDisplayName = OleStrDup(baseUrl ? baseUrl : L""); - return *ppszDisplayName ? S_OK : E_OUTOFMEMORY; -} - -STDMETHODIMP HtmlMoniker::ParseDisplayName(__unused IBindCtx* pbc, __unused __unused IMoniker* pmkToLeft, - __unused LPOLESTR pszDisplayName, __unused ULONG* pchEaten, - __unused IMoniker** ppmkOut) { - return E_NOTIMPL; -} - -STDMETHODIMP HtmlMoniker::QueryInterface(REFIID riid, void** ppv) { - static const QITAB qit[] = {QITABENT(HtmlMoniker, IMoniker), - QITABENT(HtmlMoniker, IPersistStream), - QITABENT(HtmlMoniker, IPersist), - {nullptr}}; - return QISearch(this, qit, riid, ppv); -} - -ULONG STDMETHODCALLTYPE HtmlMoniker::AddRef() { - return InterlockedIncrement(&refCount); -} - -ULONG STDMETHODCALLTYPE HtmlMoniker::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -static HWND GetBrowserControlHwnd(HWND hwndControlParent) { - // This is a fragile way to get the actual hwnd of the browser control - // that is responsible for processing keyboard messages (I believe the - // hierarchy might change depending on how the browser control is configured - // e.g. if it has status window etc.). - // But it works for us. - HWND w1 = GetWindow(hwndControlParent, GW_CHILD); - HWND w2 = GetWindow(w1, GW_CHILD); - HWND w3 = GetWindow(w2, GW_CHILD); - return w3; -} - -// WndProc of the window that is a parent hwnd of embedded browser control. -static LRESULT CALLBACK WndProcParent(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { - HtmlWindow* win = (HtmlWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA); - if (!win) { - return DefWindowProc(hwnd, msg, wp, lp); - } - - switch (msg) { - case WM_SIZE: - if (SIZE_MINIMIZED != wp) { - win->OnSize(Size(LOWORD(lp), HIWORD(lp))); - return 0; - } - break; - - // Note: not quite sure why I need this but if we don't swallow WM_MOUSEWHEEL - // messages, we might get infinite recursion. - case WM_MOUSEWHEEL: - case WM_MOUSEHWHEEL: - return 0; - - case WM_PARENTNOTIFY: - if (LOWORD(wp) == WM_LBUTTONDOWN) { - win->OnLButtonDown(); - } - break; - - case WM_DROPFILES: - return ::DefWindowProc(hwnd, msg, wp, lp); - - case WM_VSCROLL: - win->SendMsg(msg, wp, lp); - return 0; - } - return DefWindowProc(hwnd, msg, wp, lp); -} - -static LRESULT CALLBACK WndProcParent2(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, UINT_PTR subclassId, DWORD_PTR data) { - return WndProcParent(hwnd, msg, wp, lp); -} - -void HtmlWindow::SubclassHwnd() { - ReportIf(subclassId); // don't subclass multiple times - subclassId = NextSubclassId(); - BOOL ok = SetWindowSubclass(hwndParent, WndProcParent2, subclassId, (DWORD_PTR)this); - ReportIf(!ok); - SetWindowLongPtr(hwndParent, GWLP_USERDATA, (LONG_PTR)this); -} - -void HtmlWindow::UnsubclassHwnd() { - if (!subclassId) { - return; - } - RemoveWindowSubclass(hwndParent, WndProcParent2, subclassId); - subclassId = 0; -} - -HtmlWindow::HtmlWindow(HWND parent, HtmlWindowCallback* cb) { - ReportIf(!parent); - hwndParent = parent; - htmlWinCb = cb; - RegisterInternetProtocolFactory(); - windowId = GenNewWindowId(this); - zoomDPI = DpiGet(parent); - if (zoomDPI < 96) { - zoomDPI = 96; - } -} - -bool HtmlWindow::CreateBrowser() { - HRESULT hr; - ScopedComPtr p; - if (!p.Create(CLSID_WebBrowser)) { - return false; - } - hr = p->QueryInterface(&viewObject); - if (FAILED(hr)) { - return false; - } - hr = p->QueryInterface(&oleObject); - if (FAILED(hr)) { - return false; - } - - DWORD status; - hr = oleObject->GetMiscStatus(DVASPECT_CONTENT, &status); - if (FAILED(hr)) { - return false; - } - bool setClientSiteFirst = 0 != (status & OLEMISC_SETCLIENTSITEFIRST); - bool invisibleAtRuntime = 0 != (status & OLEMISC_INVISIBLEATRUNTIME); - - FrameSite* fs = new FrameSite(this); - ScopedComPtr fsScope(fs); - - if (setClientSiteFirst) { - oleObject->SetClientSite(fs->oleClientSite); - } - - ScopedComQIPtr psInit(p); - if (psInit) { - hr = psInit->InitNew(); - ReportIf(!SUCCEEDED(hr)); - } - - hr = p->QueryInterface(&oleInPlaceObject); - if (FAILED(hr)) { - return false; - } - hr = oleInPlaceObject->GetWindow(&oleObjectHwnd); - if (FAILED(hr)) { - return false; - } - - ::SetActiveWindow(oleObjectHwnd); - RECT rc = ToRECT(ClientRect(hwndParent)); - - oleInPlaceObject->SetObjectRects(&rc, &rc); - if (!invisibleAtRuntime) { - hr = oleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, nullptr, fs->oleClientSite, 0, hwndParent, &rc); - if (FAILED(hr)) { - return false; - } -#if 0 // is this necessary? - hr = oleObject->DoVerb(OLEIVERB_SHOW, 0, fs->oleClientSite, 0, - hwnd, &rc); -#endif - } - - if (!setClientSiteFirst) { - oleObject->SetClientSite(fs->oleClientSite); - } - - hr = p->QueryInterface(&webBrowser); - if (FAILED(hr)) { - return false; - } - - ScopedComQIPtr cpContainer(p); - if (!cpContainer) { - return false; - } - hr = cpContainer->FindConnectionPoint(DIID_DWebBrowserEvents2, &connectionPoint); - if (FAILED(hr)) { - return false; - } - connectionPoint->Advise(fs->hwDWebBrowserEvents2, &adviseCookie); - - // TODO: disallow accessing any random url? - // webBrowser->put_Offline(VARIANT_TRUE); - - webBrowser->put_MenuBar(VARIANT_FALSE); - webBrowser->put_AddressBar(VARIANT_FALSE); - webBrowser->put_StatusBar(VARIANT_FALSE); - webBrowser->put_ToolBar(VARIANT_FALSE); - webBrowser->put_Silent(VARIANT_TRUE); - - webBrowser->put_RegisterAsBrowser(VARIANT_FALSE); - webBrowser->put_RegisterAsDropTarget(VARIANT_TRUE); - - // TODO: do I need this anymore? - // NavigateToAboutBlank(); - SubclassHwnd(); - - return true; -} - -HtmlWindow* HtmlWindow::Create(HWND hwndParent, HtmlWindowCallback* cb) { - HtmlWindow* htmlWin = new HtmlWindow(hwndParent, cb); - if (!htmlWin->CreateBrowser()) { - delete htmlWin; - return nullptr; - } - return htmlWin; -} - +/* Copyright 2024 the SumatraPDF project authors (see AUTHORS file). + License: Simplified BSD (see COPYING.BSD) */ + +#include "utils/BaseUtil.h" +#include "utils/Dpi.h" +#include "utils/ScopedWin.h" +#include "utils/WinUtil.h" +#include "utils/GuessFileType.h" + +#include +#include +#include +#include + +#include "HtmlWindow.h" + +// An important (to Sumatra) use case is displaying CHM documents. First we used +// IE's built-in support form CHM documents (using its: protocol +// http://msdn.microsoft.com/en-us/library/aa164814(v=office.10).aspx). +// However, that doesn't work for CHM documents from network drives +// (http://code.google.com/p/sumatrapdf/issues/detail?id=1706) +// To solve that we ended up the following solution: +// * an app can provide html as data in memory. We write the data using custom +// IMoniker implementation with IE's IPersistentMoniker::Load() function. +// This allows us to provide base url which will be used to resolve relative +// links within the html (e.g. to embedded images in tags etc.) +// * We register application-global protocol handler and provide custom IInternetProtocol +// implementation which is called to handle getting content for URLs in that namespace. +// I've decided to over-ride its: protocol for our needs. A protocol unique to our +// code would be better, but completely new protocol don't seem to work with +// IPersistentMoniker::Load() code (I can see our IMoniker::GetDisplayName() (which +// returns the base url) called twice from mshtml/ieframe code but if the returned +// base url doesn't start with protocol that IE already understands, IPersistentMoniker::Load() +// fails) so I was forced to over-ride existing protocol name. +// +// I also tried the approach of implementing IInternetSecurityManager thinking that I can just +// use built-in its: handling and tell IE to trust those links, but it seems that in case +// of its: links for CHM files from network drives, that code isn't even reached. + +// Implementing scrolling: +// Currently we implement scrolling by sending messages simulating user input +// to the browser control window that is responsible for processing those messages. +// It has a benefit of being simple to implement and matching ie's behavior closely. + +// Another option would be to provide scrolling functions to be called by callers +// (e.g. from FrameOnKeydow()) by querying scroll state from IHTMLElement2 and setting +// a new scroll state http://www.codeproject.com/KB/miscctrl/scrollbrowser.aspx +// or using scrollTo() or scrollBy() on IHTMLWindow2: +// http://msdn.microsoft.com/en-us/library/aa741497(v=VS.85).aspx + +// The more advanced ways of interacting with mshtml/ieframe are extremely poorly +// documented so I mostly puzzled it out based on existing open source code that +// does similar things. Some useful resources: + +// Book on ATL: http://369o.com/data/books/atl/index.html, which is +// helpful in understanding basics of COM, has chapter on basics of embedding IE. + +// http://www.codeproject.com/KB/COM/cwebpage.aspx + +// This code is structured in a similar way as wxWindows' +// browser wrapper +// https://github.com/Aegisub/traydict/blob/master/IEHtmlWin.h +// https://github.com/Aegisub/traydict/blob/master/IEHtmlWin.cpp + +// Info about IInternetProtocol: http://www.codeproject.com/KB/IP/DataProtocol.aspx + +// All the ways to load html into mshtml: +// http://qualapps.blogspot.com/2008/10/how-to-load-mshtml-with-data.html + +// how to handle custom protocol like myapp:// +// http://www.nuonsoft.com/blog/2010/04/05/how-to-handle-custom-url-protocols-with-the-microsoft-webbrowser-control/ +// http://www.nuonsoft.com/blog/2010/04/05/how-to-navigate-to-an-anchor-in-the-microsoft-webbrowser-control-when-rendering-html-from-memory/ +// http://www.nuonsoft.com/blog/2010/03/24/how-to-use-the-microsoft-webbrowser-control-to-render-html-from-memory/ + +// http://geekswithblogs.net/dotnetnomad/archive/2008/01/29/119065.aspx + +// Other code that does advanced things with embedding IE or providing it with non-trivial +// interfaces: +// http://osh.codeplex.com/ +// http://code.google.com/p/atc32/source/browse/trunk/WorldWindProject/lib-external/webview/windows/ +// http://code.google.com/p/fidolook/source/browse/trunk/Qm/ui/messageviewwindow.cpp +// http://code.google.com/p/csexwb2/ +// chrome frame: http://codesearch.google.com/#wZuuyuB8jKQ/chromium/src/chrome_frame/chrome_protocol.h +// gears: http://code.google.com/p/gears/ +// http://code.google.com/p/fictionbookeditor/ +// http://code.google.com/p/easymule/ +// http://code.google.com/p/svnprotocolhandler/ (IInternetProtocolInfo implementation) +// https://github.com/facebook/ie-toolbar (also IInternetProtocolInfo implementation) +// http://code.google.com/p/veryie/ +// http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla +// http://www.codeproject.com/Articles/642/Processing-HTML-Forms-From-a-CHtmlView +// https://github.com/salsita/ProtocolLibrary +// https://github.com/salsita/libbhohelper +// https://github.com/salsita/libprothandlers +// http://www.codeproject.com/Articles/1094/The-MFC-CDHtmlDialog-class#xx568889xx +// http://www.codeproject.com/Articles/642/Processing-HTML-Forms-From-a-CHtmlView +// http://www.codeproject.com/Articles/10401/Handling-HTML-Element-Events-in-CHtmlView-and-Reus +// http://www.codeproject.com/Articles/3919/Using-the-WebBrowser-control-simplified + +// https://groups.google.com/forum/#!topic/microsoft.public.inetsdk.programming.mshtml_hosting/jogeNC4NXzU +// https://blog.javascripting.com/2012/11/07/igor-tandetniks-passthrough-app-now-on-github/ + +// Series of articles: +// http://starkravingfinkle.org/blog/2005/04/mshtml-hosting-drawing-on-webbrowser/ +// http://starkravingfinkle.org/blog/2005/04/mshtml-hosting-more-tricks/ +// http://starkravingfinkle.org/blog/2005/02/mshtml-hosting-editing-tricks/ +// http://starkravingfinkle.org/blog/2005/01/mshtml-hosting-more-editing/ +// http://starkravingfinkle.org/blog/2004/12/mshtml-hosting-calling-javascript-from-host/ +// http://starkravingfinkle.org/blog/2004/10/mshtml-hosting-editing/ +// http://starkravingfinkle.org/blog/2004/10/mshtml-hosting-idochostuihandler/ +// http://starkravingfinkle.org/blog/2004/09/mshtml-hosting-odds-ends/ +// http://starkravingfinkle.org/blog/2004/09/mshtml-hosting-building-uis/ +// http://starkravingfinkle.org/blog/2004/08/mshtml-hosting-the-basics/ + +class HW_IOleInPlaceFrame; +class HW_IOleInPlaceSiteWindowless; +class HW_IOleClientSite; +class HW_IOleControlSite; +class HW_IOleCommandTarget; +class HW_IOleItemContainer; +class HW_DWebBrowserEvents2; +class HW_IAdviseSink2; +class HW_IDocHostUIHandler; +class HW_IDropTarget; +class HW_IServiceProvider; + +inline void VariantSetBool(VARIANT* res, bool val) { + res->vt = VT_BOOL; + res->boolVal = val ? VARIANT_TRUE : VARIANT_FALSE; +} + +inline void VariantSetLong(VARIANT* res, long val) { + res->vt = VT_I4; + res->lVal = val; +} + +bool IsBlankUrl(const WCHAR* url) { + return str::EqI(L"about:blank", url); +} + +bool IsBlankUrl(const char* url) { + return str::EqI("about:blank", url); +} + +// HW stands for HtmlWindow +// FrameSite ties together HtmlWindow and all the COM interfaces we need to implement +// to support it +class FrameSite : public IUnknown { + friend class HtmlWindow; + friend class HW_IOleInPlaceFrame; + friend class HW_IOleInPlaceSiteWindowless; + friend class HW_IOleClientSite; + friend class HW_IOleControlSite; + friend class HW_IOleCommandTarget; + friend class HW_IOleItemContainer; + friend class HW_DWebBrowserEvents2; + friend class HW_IAdviseSink2; + friend class HW_IDocHostUIHandler; + friend class HW_IDropTarget; + friend class HW_IServiceProvider; + + public: + explicit FrameSite(HtmlWindow* win); + ~FrameSite(); + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override; + + protected: + LONG refCount = 0; + + HW_IOleInPlaceFrame* oleInPlaceFrame = nullptr; + HW_IOleInPlaceSiteWindowless* oleInPlaceSiteWindowless = nullptr; + HW_IOleClientSite* oleClientSite = nullptr; + HW_IOleControlSite* oleControlSite = nullptr; + HW_IOleCommandTarget* oleCommandTarget = nullptr; + HW_IOleItemContainer* oleItemContainer = nullptr; + HW_DWebBrowserEvents2* hwDWebBrowserEvents2 = nullptr; + HW_IAdviseSink2* adviseSink2 = nullptr; + HW_IDocHostUIHandler* docHostUIHandler = nullptr; + HW_IDropTarget* dropTarget = nullptr; + HW_IServiceProvider* serviceProvider = nullptr; + + HtmlWindow* htmlWindow; + + // HDC m_hDCBuffer; + HWND hwndParent = nullptr; + + bool supportsWindowlessActivation; + bool inPlaceLocked; + bool inPlaceActive; + bool uiActive; + bool isWindowless; + + LCID ambientLocale; + COLORREF ambientForeColor; + COLORREF ambientBackColor; + bool ambientShowHatching; + bool ambientShowGrabHandles; + bool ambientUserMode; + bool ambientAppearance; +}; + +// For simplicity, we just add to the array. We don't bother +// reclaiming ids for deleted windows. I don't expect number +// of HtmlWindow objects created to be so high as to be problematic +// (1 thousand objects is just 4K of memory for the vector) +static Vec gHtmlWindows; + +HtmlWindow* FindHtmlWindowById(int windowId) { + return gHtmlWindows.at(windowId); +} + +static int GenNewWindowId(HtmlWindow* htmlWin) { + int newWindowId = (int)gHtmlWindows.size(); + gHtmlWindows.Append(htmlWin); + ReportIf(htmlWin != FindHtmlWindowById(newWindowId)); + return newWindowId; +} + +static void FreeWindowId(int windowId) { + ReportIf(nullptr == gHtmlWindows.at(windowId)); + gHtmlWindows.at(windowId) = nullptr; +} + +// Re-using its protocol, see comments at the top. +#define HW_PROTO_PREFIX L"its" + +#define HW_PROTO_PREFIXA "its" + +// {F1EC293F-DBBD-4A4B-94F4-FA52BA0BA6EE} +static const GUID CLSID_HW_IInternetProtocol = {0xf1ec293f, + 0xdbbd, + 0x4a4b, + {0x94, 0xf4, 0xfa, 0x52, 0xba, 0xb, 0xa6, 0xee}}; + +class HW_IInternetProtocolInfo : public IInternetProtocolInfo { + public: + HW_IInternetProtocolInfo() = default; + + protected: + virtual ~HW_IInternetProtocolInfo() = default; + + public: + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override; + + // IInternetProtocolInfo + STDMETHODIMP ParseUrl(__unused LPCWSTR pwzUrl, __unused PARSEACTION parseAction, __unused DWORD dwParseFlags, + __unused LPWSTR pwzResult, __unused DWORD cchResult, __unused DWORD* pcchResult, + __unused DWORD dwReserved) override { + return INET_E_DEFAULT_ACTION; + } + + STDMETHODIMP CombineUrl(__unused LPCWSTR pwzBaseUrl, __unused LPCWSTR pwzRelativeUrl, __unused DWORD dwCombineFlags, + __unused LPWSTR pwzResult, __unused DWORD cchResult, __unused DWORD* pcchResult, + __unused DWORD dwReserved) override { + return INET_E_DEFAULT_ACTION; + } + + STDMETHODIMP CompareUrl(__unused LPCWSTR pwzUrl1, __unused LPCWSTR pwzUrl2, + __unused DWORD dwCompareFlags) override { + return INET_E_DEFAULT_ACTION; + } + + STDMETHODIMP QueryInfo(__unused LPCWSTR pwzUrl, __unused QUERYOPTION queryOption, __unused DWORD dwQueryFlags, + __unused LPVOID pBuffer, __unused DWORD cbBuffer, __unused DWORD* pcbBuf, + __unused DWORD dwReserved) override { + return INET_E_DEFAULT_ACTION; + } + + protected: + LONG refCount = 1; +}; + +ULONG STDMETHODCALLTYPE HW_IInternetProtocolInfo::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +STDMETHODIMP HW_IInternetProtocolInfo::QueryInterface(REFIID riid, void** ppv) { + static const QITAB qit[] = {QITABENT(HW_IInternetProtocolInfo, IInternetProtocolInfo), {nullptr}}; + return QISearch(this, qit, riid, ppv); +} + +class HW_IInternetProtocol : public IInternetProtocol { + public: + HW_IInternetProtocol() = default; + + protected: + virtual ~HW_IInternetProtocol() = default; + + public: + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override; + + // IInternetProtocol + STDMETHODIMP Start(LPCWSTR szUrl, IInternetProtocolSink* pIProtSink, IInternetBindInfo* pIBindInfo, DWORD grfSTI, + HANDLE_PTR dwReserved) override; + STDMETHODIMP Continue(__unused PROTOCOLDATA* pStateInfo) override { return S_OK; } + STDMETHODIMP Abort(__unused HRESULT hrReason, __unused DWORD dwOptions) override { return S_OK; } + STDMETHODIMP Terminate(__unused DWORD dwOptions) override { return S_OK; } + STDMETHODIMP Suspend() override { return E_NOTIMPL; } + STDMETHODIMP Resume() override { return E_NOTIMPL; } + STDMETHODIMP Read(void* pv, ULONG cb, ULONG* pcbRead) override; + STDMETHODIMP Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) override; + STDMETHODIMP LockRequest(__unused DWORD dwOptions) override { return S_OK; } + STDMETHODIMP UnlockRequest() override { return S_OK; } + + protected: + LONG refCount = 1; + + // those are filled in Start() and represent data to be sent + // for a given url + ByteSlice data{}; + size_t dataCurrPos = 0; +}; + +ULONG STDMETHODCALLTYPE HW_IInternetProtocol::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +STDMETHODIMP HW_IInternetProtocol::QueryInterface(REFIID riid, void** ppv) { + static const QITAB qit[] = {QITABENT(HW_IInternetProtocol, IInternetProtocol), + QITABENT(HW_IInternetProtocol, IInternetProtocolRoot), + {nullptr}}; + return QISearch(this, qit, riid, ppv); +} + +// given url in the form "its://$htmlWindowId/$urlRest, parses +// out $htmlWindowId and $urlRest. Returns false if url doesn't conform +// to this pattern. +static bool ParseProtoUrl(const WCHAR* url, int* htmlWindowId, AutoFreeWStr* urlRest) { + const WCHAR* rest = str::Parse(url, HW_PROTO_PREFIX L"://%d/%S", htmlWindowId, urlRest); + return rest && !*rest; +} + +// given url in the form "its://$htmlWindowId/$urlRest, parses +// out $htmlWindowId and $urlRest. Returns false if url doesn't conform +// to this pattern. +static bool ParseProtoUrl(const char* url, int* htmlWindowId, AutoFreeStr* urlRest) { + const char* rest = str::Parse(url, HW_PROTO_PREFIXA "://%d/%S", htmlWindowId, urlRest); + return rest && !*rest; +} + +#define kDefaultMimeType "text/html" + +// caller must free() the result +static char* MimeFromUrl(const char* url, const char* imgExt = nullptr) { + const char* ext = str::FindCharLast(url, '.'); + if (!ext) { + return str::Dup(kDefaultMimeType); + } + + if (str::FindChar(ext, ';')) { + // some CHM documents use (image) URLs that are followed by + // a semi-colon and a number after the file's extension + char* newUrl = str::DupTemp(url, str::FindChar(ext, ';') - url); + return MimeFromUrl(newUrl, imgExt); + } + + static const struct { + const char* ext; + const char* mimetype; + } mimeTypes[] = { + {".html", "text/html"}, {".htm", "text/html"}, {".gif", "image/gif"}, + {".png", "image/png"}, {".jpg", "image/jpeg"}, {".jpeg", "image/jpeg"}, + {".bmp", "image/bmp"}, {".css", "text/css"}, {".txt", "text/plain"}, + }; + + for (int i = 0; i < dimof(mimeTypes); i++) { + if (str::EqI(ext, mimeTypes[i].ext)) { + // trust an image's data more than its extension + if (imgExt && !str::Eq(imgExt, mimeTypes[i].ext) && str::StartsWith(mimeTypes[i].mimetype, "image/")) { + for (int j = 0; j < dimof(mimeTypes); j++) { + if (str::Eq(imgExt, mimeTypes[j].ext)) { + return str::Dup(mimeTypes[j].mimetype); + } + } + } + return str::Dup(mimeTypes[i].mimetype); + } + } + + char* contentType = ReadRegStrTemp(HKEY_CLASSES_ROOT, ext, "Content Type"); + if (contentType) { + return str::Dup(contentType); + } + + return str::Dup(kDefaultMimeType); +} + +// TODO: return an error page html in case of errors? +STDMETHODIMP HW_IInternetProtocol::Start(LPCWSTR szUrl, IInternetProtocolSink* pIProtSink, + __unused IInternetBindInfo* pIBindInfo, __unused DWORD grfSTI, + __unused HANDLE_PTR dwReserved) { + // TODO: others seem to return S_OK even if there is no content + // for a URL (unless the PI_PARSE_URL bit is set on grfSTI), + // this does however lead to this HW_IInternetProtocol being + // leaked and to DISPID_DOCUMENTCOMPLETE never being fired + + int htmlWindowId; + AutoFreeWStr urlRest; + bool ok = ParseProtoUrl(szUrl, &htmlWindowId, &urlRest); + if (!ok) { + return INET_E_INVALID_URL; + } + + pIProtSink->ReportProgress(BINDSTATUS_FINDINGRESOURCE, urlRest); + pIProtSink->ReportProgress(BINDSTATUS_CONNECTING, urlRest); + pIProtSink->ReportProgress(BINDSTATUS_SENDINGREQUEST, urlRest); + + HtmlWindow* win = FindHtmlWindowById(htmlWindowId); + // TODO: this now happens due to events happening on HtmlWindow + // used to take a screenshot, so ignore it. Is there a way + // to cancel things and not get her? + // ReportIf(!win); + if (!win) { + return INET_E_OBJECT_NOT_FOUND; + } + if (!win->htmlWinCb) { + return INET_E_OBJECT_NOT_FOUND; + } + char* urlRestA = ToUtf8Temp(urlRest); + data = win->htmlWinCb->GetDataForUrl(urlRestA); + if (data.empty()) { + return INET_E_DATA_NOT_AVAILABLE; + } + + const char* imgExt = GfxFileExtFromData({(u8*)data.data(), data.size()}); + char* mime = MimeFromUrl(urlRestA, imgExt); + WCHAR* mimeW = ToWStrTemp(mime); + str::Free(mime); + pIProtSink->ReportProgress(BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE, mimeW); +#ifdef _WIN64 + // not going to report data in parts for unexpectedly huge webpages + ReportIf(data.size() > ULONG_MAX); +#endif + pIProtSink->ReportData(BSCF_FIRSTDATANOTIFICATION | BSCF_LASTDATANOTIFICATION | BSCF_DATAFULLYAVAILABLE, + (ULONG)data.size(), (ULONG)data.size()); + pIProtSink->ReportResult(S_OK, 200, nullptr); + return S_OK; +} + +STDMETHODIMP HW_IInternetProtocol::Read(void* pv, ULONG cb, ULONG* pcbRead) { + if (data.empty()) { + return S_FALSE; + } + size_t dataAvail = data.size() - dataCurrPos; + if (0 == dataAvail) { + return S_FALSE; + } + ULONG toRead = cb; + if (toRead > dataAvail) { + toRead = (ULONG)dataAvail; + } + u8* dataToRead = data.data() + dataCurrPos; + memcpy(pv, dataToRead, toRead); + dataCurrPos += toRead; + *pcbRead = toRead; + return S_OK; +} + +STDMETHODIMP HW_IInternetProtocol::Seek(LARGE_INTEGER /*dlibMove*/, DWORD /*dwOrigin*/, + ULARGE_INTEGER* /*plibNewPosition*/) { + // doesn't seem to be called + return E_NOTIMPL; +} + +class HW_IInternetProtocolFactory : public IClassFactory { + protected: + virtual ~HW_IInternetProtocolFactory() = default; + + public: + HW_IInternetProtocolFactory() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override; + + // IClassFactory + STDMETHODIMP CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) override; + STDMETHODIMP LockServer(__unused BOOL fLock) override { return S_OK; } + + protected: + LONG refCount = 1; +}; + +STDMETHODIMP_(ULONG) HW_IInternetProtocolFactory::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +STDMETHODIMP HW_IInternetProtocolFactory::QueryInterface(REFIID riid, void** ppv) { + static const QITAB qit[] = {QITABENT(HW_IInternetProtocolFactory, IClassFactory), {nullptr}}; + return QISearch(this, qit, riid, ppv); +} + +STDMETHODIMP HW_IInternetProtocolFactory::CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) { + if (pUnkOuter != nullptr) { + return CLASS_E_NOAGGREGATION; + } + if (riid == IID_IInternetProtocol) { + ScopedComPtr proto(new HW_IInternetProtocol()); + return proto->QueryInterface(riid, ppvObject); + } + if (riid == IID_IInternetProtocolInfo) { + ScopedComPtr proto(new HW_IInternetProtocolInfo()); + return proto->QueryInterface(riid, ppvObject); + } + return E_NOINTERFACE; +} + +static LONG gProtocolFactoryRefCount = 0; +HW_IInternetProtocolFactory* gInternetProtocolFactory = nullptr; + +// Register our protocol so that urlmon will call us for every +// url that starts with HW_PROTO_PREFIX +static void RegisterInternetProtocolFactory() { + LONG val = InterlockedIncrement(&gProtocolFactoryRefCount); + if (val > 1) { + return; + } + + ScopedComPtr internetSession; + HRESULT hr = CoInternetGetSession(0, &internetSession, 0); + ReportIf(FAILED(hr)); + ReportIf(nullptr != gInternetProtocolFactory); + gInternetProtocolFactory = new HW_IInternetProtocolFactory(); + hr = internetSession->RegisterNameSpace(gInternetProtocolFactory, CLSID_HW_IInternetProtocol, HW_PROTO_PREFIX, 0, + nullptr, 0); + ReportIf(FAILED(hr)); +} + +static void UnregisterInternetProtocolFactory() { + LONG val = InterlockedDecrement(&gProtocolFactoryRefCount); + if (val > 0) { + return; + } + ScopedComPtr internetSession; + HRESULT hr = CoInternetGetSession(0, &internetSession, 0); + ReportIf(FAILED(hr)); + internetSession->UnregisterNameSpace(gInternetProtocolFactory, HW_PROTO_PREFIX); + ULONG refCount = gInternetProtocolFactory->Release(); + ReportIf(refCount != 0); + gInternetProtocolFactory = nullptr; +} + +class HW_IOleInPlaceFrame : public IOleInPlaceFrame { + public: + explicit HW_IOleInPlaceFrame(FrameSite* fs) : fs(fs) {} + ~HW_IOleInPlaceFrame() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleWindow + STDMETHODIMP GetWindow(HWND*) override; + STDMETHODIMP ContextSensitiveHelp(BOOL) override { return S_OK; } + + // IOleInPlaceUIWindow + STDMETHODIMP GetBorder(LPRECT) override; + STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS) override; + STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS) override { return S_OK; } + STDMETHODIMP SetActiveObject(IOleInPlaceActiveObject*, LPCOLESTR) override { return S_OK; } + + // IOleInPlaceFrame + STDMETHODIMP InsertMenus(HMENU, LPOLEMENUGROUPWIDTHS) override { return S_OK; } + STDMETHODIMP SetMenu(HMENU, HOLEMENU, HWND) override { return S_OK; } + STDMETHODIMP RemoveMenus(HMENU) override { return S_OK; } + STDMETHODIMP SetStatusText(LPCOLESTR) override { return S_OK; } + STDMETHODIMP EnableModeless(BOOL) override { return S_OK; } + STDMETHODIMP TranslateAccelerator(LPMSG, WORD) { return E_NOTIMPL; } + + protected: + FrameSite* fs; +}; + +class HW_IOleInPlaceSiteWindowless : public IOleInPlaceSiteWindowless { + public: + explicit HW_IOleInPlaceSiteWindowless(FrameSite* fs) : fs(fs) {} + ~HW_IOleInPlaceSiteWindowless() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleWindow + STDMETHODIMP GetWindow(HWND* h) override { return fs->oleInPlaceFrame->GetWindow(h); } + STDMETHODIMP ContextSensitiveHelp(BOOL b) override { return fs->oleInPlaceFrame->ContextSensitiveHelp(b); } + + // IOleInPlaceSite + STDMETHODIMP CanInPlaceActivate() override { return S_OK; } + STDMETHODIMP OnInPlaceActivate() override; + STDMETHODIMP OnUIActivate() override; + STDMETHODIMP GetWindowContext(IOleInPlaceFrame**, IOleInPlaceUIWindow**, LPRECT, LPRECT, + LPOLEINPLACEFRAMEINFO) override; + STDMETHODIMP Scroll(SIZE) override { return S_OK; } + STDMETHODIMP OnUIDeactivate(BOOL) override; + STDMETHODIMP OnInPlaceDeactivate() override; + STDMETHODIMP DiscardUndoState() override { return S_OK; } + STDMETHODIMP DeactivateAndUndo() override { return S_OK; } + STDMETHODIMP OnPosRectChange(LPCRECT) override { return S_OK; } + + // IOleInPlaceSiteEx + STDMETHODIMP OnInPlaceActivateEx(BOOL*, DWORD) override; + STDMETHODIMP OnInPlaceDeactivateEx(BOOL) override { return S_OK; } + STDMETHODIMP RequestUIActivate() override { return S_FALSE; } + + // IOleInPlaceSiteWindowless + STDMETHODIMP CanWindowlessActivate() override; + STDMETHODIMP GetCapture() override { return S_FALSE; } + STDMETHODIMP SetCapture(BOOL) override { return S_FALSE; } + STDMETHODIMP GetFocus() override { return S_OK; } + STDMETHODIMP SetFocus(BOOL) override { return S_OK; } + STDMETHODIMP GetDC(LPCRECT, DWORD, HDC*) override; + STDMETHODIMP ReleaseDC(HDC) override { return E_NOTIMPL; } + STDMETHODIMP InvalidateRect(LPCRECT, BOOL) override; + STDMETHODIMP InvalidateRgn(HRGN, BOOL) override { return E_NOTIMPL; } + STDMETHODIMP ScrollRect(INT, INT, LPCRECT, LPCRECT) override { return E_NOTIMPL; } + STDMETHODIMP AdjustRect(LPRECT) override { return E_NOTIMPL; } + STDMETHODIMP OnDefWindowMessage(UINT, WPARAM, LPARAM, LRESULT*) override { return E_NOTIMPL; } + + protected: + FrameSite* fs; +}; + +class HW_IOleClientSite : public IOleClientSite { + public: + explicit HW_IOleClientSite(FrameSite* fs) : fs(fs) {} + ~HW_IOleClientSite() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleClientSite + STDMETHODIMP SaveObject() override { return S_OK; } + STDMETHODIMP GetMoniker(DWORD, DWORD, IMoniker**) override { return E_NOTIMPL; } + STDMETHODIMP GetContainer(LPOLECONTAINER FAR*) override; + STDMETHODIMP ShowObject() override { return S_OK; } + STDMETHODIMP OnShowWindow(BOOL) override { return S_OK; } + STDMETHODIMP RequestNewObjectLayout() override { return E_NOTIMPL; } + + protected: + FrameSite* fs; +}; + +class HW_IOleControlSite : public IOleControlSite { + public: + explicit HW_IOleControlSite(FrameSite* fs) : fs(fs) {} + ~HW_IOleControlSite() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleControlSite + STDMETHODIMP OnControlInfoChanged() override { return S_OK; } + STDMETHODIMP LockInPlaceActive(BOOL) override; + STDMETHODIMP GetExtendedControl(IDispatch**) override { return E_NOTIMPL; } + STDMETHODIMP TransformCoords(POINTL*, POINTF*, DWORD) override; + STDMETHODIMP TranslateAccelerator(LPMSG, DWORD) { return E_NOTIMPL; } + STDMETHODIMP OnFocus(BOOL) override { return S_OK; } + STDMETHODIMP ShowPropertyFrame() override { return E_NOTIMPL; } + + protected: + FrameSite* fs; +}; + +class HW_IOleCommandTarget : public IOleCommandTarget { + public: + explicit HW_IOleCommandTarget(FrameSite* fs) : fs(fs) {} + ~HW_IOleCommandTarget() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleCommandTarget + STDMETHODIMP QueryStatus(const GUID*, ULONG, OLECMD[], OLECMDTEXT*) override; + STDMETHODIMP Exec(const GUID*, DWORD, DWORD, VARIANTARG*, VARIANTARG*) override { return OLECMDERR_E_NOTSUPPORTED; } + + protected: + FrameSite* fs; +}; + +class HW_IOleItemContainer : public IOleItemContainer { + public: + explicit HW_IOleItemContainer(FrameSite* fs) : fs(fs) {} + ~HW_IOleItemContainer() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IParseDisplayName + STDMETHODIMP ParseDisplayName(IBindCtx*, LPOLESTR, ULONG*, IMoniker**) override { return E_NOTIMPL; } + + // IOleContainer + STDMETHODIMP EnumObjects(DWORD, IEnumUnknown**) override { return E_NOTIMPL; } + STDMETHODIMP LockContainer(BOOL) override { return S_OK; } + + // IOleItemContainer + STDMETHODIMP GetObject(LPOLESTR, DWORD, IBindCtx*, REFIID, void**); + STDMETHODIMP GetObjectStorage(LPOLESTR, IBindCtx*, REFIID, void**) override; + STDMETHODIMP IsRunning(LPOLESTR) override; + + protected: + FrameSite* fs; +}; + +class HW_DWebBrowserEvents2 : public DWebBrowserEvents2 { + FrameSite* fs; + + HRESULT DispatchPropGet(DISPID dispIdMember, VARIANT* res); + + public: + explicit HW_DWebBrowserEvents2(FrameSite* fs) : fs(fs) {} + ~HW_DWebBrowserEvents2() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IDispatch + STDMETHODIMP GetIDsOfNames(REFIID, OLECHAR**, unsigned int, LCID, DISPID*) override { return E_NOTIMPL; } + STDMETHODIMP GetTypeInfo(unsigned int, LCID, ITypeInfo**) override { return E_NOTIMPL; } + STDMETHODIMP GetTypeInfoCount(unsigned int*) override { return E_NOTIMPL; } + STDMETHODIMP Invoke(DISPID, REFIID, LCID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*) override; +}; + +class HW_IAdviseSink2 : public IAdviseSink2, public IAdviseSinkEx { + FrameSite* fs; + + public: + explicit HW_IAdviseSink2(FrameSite* fs) : fs(fs) {} + ~HW_IAdviseSink2() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IAdviseSink + void STDMETHODCALLTYPE OnDataChange(FORMATETC*, STGMEDIUM*) override {} + void STDMETHODCALLTYPE OnViewChange(DWORD, LONG) override { + // redraw the control + fs->oleInPlaceSiteWindowless->InvalidateRect(nullptr, FALSE); + } + void STDMETHODCALLTYPE OnRename(IMoniker*) override {} + void STDMETHODCALLTYPE OnSave() override {} + void STDMETHODCALLTYPE OnClose() override {} + + // IAdviseSink2 + void STDMETHODCALLTYPE OnLinkSrcChange(IMoniker*) override {} + + // IAdviseSinkEx + void STDMETHODCALLTYPE OnViewStatusChange(DWORD) override {} +}; + +// http://www.popkistopki.ru/ch09b.shtml +class HW_IDocHostUIHandler : public IDocHostUIHandler { + FrameSite* fs; + + public: + explicit HW_IDocHostUIHandler(FrameSite* fs) : fs(fs) {} + ~HW_IDocHostUIHandler() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IDocHostUIHandler + STDMETHODIMP ShowContextMenu(__unused DWORD dwID, __unused POINT* ppt, __unused IUnknown* pcmdtReserved, + __unused IDispatch* pdispReserved) override { + return S_FALSE; + } + STDMETHODIMP GetHostInfo(DOCHOSTUIINFO* pInfo) override; + STDMETHODIMP ShowUI(__unused DWORD dwID, __unused IOleInPlaceActiveObject* pActiveObject, + __unused IOleCommandTarget* pCommandTarget, __unused IOleInPlaceFrame* pFrame, + __unused IOleInPlaceUIWindow* pDoc) override { + return S_FALSE; + } + STDMETHODIMP HideUI() override { return E_NOTIMPL; } + STDMETHODIMP UpdateUI() override { return E_NOTIMPL; } + STDMETHODIMP EnableModeless(__unused BOOL fEnable) override { return E_NOTIMPL; } + STDMETHODIMP OnDocWindowActivate(__unused BOOL fActivate) override { return E_NOTIMPL; } + STDMETHODIMP OnFrameWindowActivate(__unused BOOL fActivate) override { return E_NOTIMPL; } + STDMETHODIMP ResizeBorder(__unused LPCRECT prcBorder, __unused IOleInPlaceUIWindow* pUIWindow, + __unused BOOL fRameWindow) override { + return E_NOTIMPL; + } + STDMETHODIMP TranslateAccelerator(__unused LPMSG lpMsg, __unused const GUID* pguidCmdGroup, __unused DWORD nCmdID) { + return S_FALSE; + } + STDMETHODIMP GetOptionKeyPath(__unused LPOLESTR* pchKey, __unused DWORD dw) override { return S_FALSE; } + STDMETHODIMP GetDropTarget(__unused IDropTarget* pDropTarget, IDropTarget** ppDropTarget) override { + return fs->QueryInterface(IID_PPV_ARGS(ppDropTarget)); + } + STDMETHODIMP GetExternal(IDispatch** ppDispatch) override { + if (ppDispatch) { + *ppDispatch = nullptr; + } + return S_FALSE; + } + STDMETHODIMP TranslateUrl(__unused DWORD dwTranslate, __unused OLECHAR* pchURLIn, + __unused OLECHAR** ppchURLOut) override { + return S_FALSE; + } + STDMETHODIMP FilterDataObject(__unused IDataObject* pDO, IDataObject** ppDORet) override { + if (ppDORet) { + *ppDORet = nullptr; + } + return S_FALSE; + } +}; + +STDMETHODIMP HW_IDocHostUIHandler::GetHostInfo(DOCHOSTUIINFO* pInfo) { + if (!pInfo) { + return S_FALSE; + } + pInfo->pchHostCss = nullptr; + pInfo->pchHostNS = nullptr; + + // Note: I was hoping that also setting DOCHOSTUIFLAG_SCROLL_NO + // would get rid of vertical scrollbar when not necessary, but alas it + // always removes it + pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER | DOCHOSTUIFLAG_NO3DOUTERBORDER; + pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT; + return S_OK; +} + +class HW_IDropTarget : public IDropTarget { + FrameSite* fs; + + public: + explicit HW_IDropTarget(FrameSite* fs) : fs(fs) {} + ~HW_IDropTarget() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + STDMETHODIMP DragEnter(IDataObject* pDataObj, __unused DWORD grfKeyState, __unused POINTL pt, + DWORD* pdwEffect) override { + HRESULT hr = fs->htmlWindow->OnDragEnter(pDataObj); + if (SUCCEEDED(hr)) { + *pdwEffect = DROPEFFECT_COPY; + } + return hr; + } + STDMETHODIMP DragOver(__unused DWORD grfKeyState, __unused POINTL pt, DWORD* pdwEffect) override { + *pdwEffect = DROPEFFECT_COPY; + return S_OK; + } + STDMETHODIMP DragLeave() override { return S_OK; } + STDMETHODIMP Drop(IDataObject* pDataObj, __unused DWORD grfKeyState, __unused POINTL pt, + DWORD* pdwEffect) override { + *pdwEffect = DROPEFFECT_COPY; + return fs->htmlWindow->OnDragDrop(pDataObj); + } +}; + +#ifndef __IDownloadManager_INTERFACE_DEFINED__ +#define __IDownloadManager_INTERFACE_DEFINED__ + +#define DEFINE_GUID_STATIC(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + static const GUID name = {l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}} +DEFINE_GUID_STATIC(IID_IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9); +#define SID_SDownloadManager IID_IDownloadManager + +MIDL_INTERFACE("988934A4-064B-11D3-BB80-00104B35E7F9") +IDownloadManager : public IUnknown { + public: + virtual STDMETHODIMP Download(IMoniker __RPC_FAR * pmk, IBindCtx __RPC_FAR * pbc, DWORD dwBindVerb, LONG grfBINDF, + BINDINFO __RPC_FAR * pBindInfo, LPCOLESTR pszHeaders, LPCOLESTR pszRedir, + UINT uiCP) = 0; +}; + +#ifdef __GNUC__ +__CRT_UUID_DECL(IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9) +#endif + +#endif + +class HW_IDownloadManager : public IDownloadManager { + LONG refCount = 1; + + public: + HW_IDownloadManager() = default; + ~HW_IDownloadManager() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppv) override { + static const QITAB qit[] = {QITABENT(HW_IDownloadManager, IDownloadManager), {nullptr}}; + return QISearch(this, qit, riid, ppv); + } + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; + } + + // IDownloadManager + STDMETHODIMP Download(IMoniker __RPC_FAR* pmk, IBindCtx __RPC_FAR* pbc, __unused DWORD dwBindVerb, + __unused LONG grfBINDF, __unused BINDINFO __RPC_FAR* pBindInfo, __unused LPCOLESTR pszHeaders, + __unused LPCOLESTR pszRedir, __unused UINT uiCP) override { + LPOLESTR urlToFile; + HRESULT hr = pmk->GetDisplayName(pbc, nullptr, &urlToFile); + if (FAILED(hr)) { + return hr; + } + // parse the URL (only internal its:// URLs are supported) + int htmlWindowId; + AutoFreeWStr urlRest; + bool ok = ParseProtoUrl(urlToFile, &htmlWindowId, &urlRest); + // free urlToFile using IMalloc::Free + IMalloc* pMalloc = nullptr; + if (SUCCEEDED(CoGetMalloc(1, &pMalloc))) { + pMalloc->Free(urlToFile); + } else { + CoTaskMemFree(urlToFile); + } + + if (!ok) { + return INET_E_INVALID_URL; + } + + // fetch the data + HtmlWindow* win = FindHtmlWindowById(htmlWindowId); + if (!win || !win->htmlWinCb) { + return INET_E_OBJECT_NOT_FOUND; + } + char* urlRestA = ToUtf8Temp(urlRest); + auto data = win->htmlWinCb->GetDataForUrl(urlRestA); + if (data.empty()) { + return INET_E_DATA_NOT_AVAILABLE; + } + // ask the UI to let the user save the file + win->htmlWinCb->DownloadData(urlRestA, data); + return S_OK; + } +}; + +class HW_IServiceProvider : public IServiceProvider { + FrameSite* fs; + + public: + explicit HW_IServiceProvider(FrameSite* fs) : fs(fs) {} + ~HW_IServiceProvider() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IServiceProvider + STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** ppv) override { + if (guidService == SID_SDownloadManager) { + ScopedComPtr dm(new HW_IDownloadManager()); + return dm->QueryInterface(riid, ppv); + } + return E_NOINTERFACE; + } +}; + +class HtmlMoniker : public IMoniker { + public: + HtmlMoniker(); + virtual ~HtmlMoniker(); + + HRESULT SetHtml(const ByteSlice&); + HRESULT SetBaseUrl(const WCHAR* baseUrl); + + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override; + ULONG STDMETHODCALLTYPE Release() override; + + // IMoniker + STDMETHODIMP BindToStorage(IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) override; + STDMETHODIMP GetDisplayName(IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR* ppszDisplayName) override; + STDMETHODIMP BindToObject(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, __unused REFIID riidResult, + __unused void** ppvResult) override { + return E_NOTIMPL; + } + STDMETHODIMP Reduce(__unused IBindCtx* pbc, __unused DWORD dwReduceHowFar, __unused IMoniker** ppmkToLeft, + __unused IMoniker** ppmkReduced) override { + return E_NOTIMPL; + } + STDMETHODIMP ComposeWith(__unused IMoniker* pmkRight, __unused BOOL fOnlyIfNotGeneric, + __unused IMoniker** ppmkComposite) override { + return E_NOTIMPL; + } + STDMETHODIMP Enum(__unused BOOL fForward, __unused IEnumMoniker** ppenumMoniker) override { return E_NOTIMPL; } + STDMETHODIMP IsEqual(__unused IMoniker* pmkOtherMoniker) override { return E_NOTIMPL; } + STDMETHODIMP Hash(__unused DWORD* pdwHash) override { return E_NOTIMPL; } + STDMETHODIMP IsRunning(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, + __unused IMoniker* pmkNewlyRunning) override { + return E_NOTIMPL; + } + STDMETHODIMP GetTimeOfLastChange(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, + __unused FILETIME* pFileTime) override { + return E_NOTIMPL; + } + STDMETHODIMP Inverse(__unused IMoniker** ppmk) override { return E_NOTIMPL; } + STDMETHODIMP CommonPrefixWith(__unused IMoniker* pmkOther, __unused IMoniker** ppmkPrefix) override { + return E_NOTIMPL; + } + STDMETHODIMP RelativePathTo(__unused IMoniker* pmkOther, __unused IMoniker** ppmkRelPath) override { + return E_NOTIMPL; + } + STDMETHODIMP ParseDisplayName(IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, + IMoniker** ppmkOut) override; + STDMETHODIMP IsSystemMoniker(DWORD* pdwMksys) override { + if (!pdwMksys) { + return E_POINTER; + } + *pdwMksys = MKSYS_NONE; + return S_OK; + } + + // IPersistStream methods + STDMETHODIMP Save(__unused IStream* pStm, __unused BOOL fClearDirty) override { return E_NOTIMPL; } + STDMETHODIMP IsDirty() override { return E_NOTIMPL; } + STDMETHODIMP Load(__unused IStream* pStm) override { return E_NOTIMPL; } + STDMETHODIMP GetSizeMax(__unused ULARGE_INTEGER* pcbSize) override { return E_NOTIMPL; } + + // IPersist + STDMETHODIMP GetClassID(__unused CLSID* pClassID) override { return E_NOTIMPL; } + + private: + LONG refCount = 1; + + char* htmlData = nullptr; + IStream* htmlStream = nullptr; + + WCHAR* baseUrl = nullptr; +}; + +HtmlMoniker::HtmlMoniker() = default; + +HtmlMoniker::~HtmlMoniker() { + if (htmlStream) { + htmlStream->Release(); + } + + free(htmlData); + free(baseUrl); +} + +HRESULT HtmlMoniker::SetHtml(const ByteSlice& d) { + free(htmlData); + htmlData = str::Dup(d); + if (htmlStream) { + htmlStream->Release(); + } + htmlStream = CreateStreamFromData({(u8*)htmlData, d.size()}); + return S_OK; +} + +HRESULT HtmlMoniker::SetBaseUrl(const WCHAR* newBaseUrl) { + free(baseUrl); + baseUrl = str::Dup(newBaseUrl); + return S_OK; +} + +STDMETHODIMP HtmlMoniker::BindToStorage(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, REFIID riid, + void** ppvObj) { + LARGE_INTEGER seek{}; + htmlStream->Seek(seek, STREAM_SEEK_SET, nullptr); + return htmlStream->QueryInterface(riid, ppvObj); +} + +static LPOLESTR OleStrDup(const WCHAR* s) { + size_t cb = sizeof(WCHAR) * (str::Len(s) + 1); + LPOLESTR ret = (LPOLESTR)CoTaskMemAlloc(cb); + if (ret) { + memcpy(ret, s, cb); + } + return ret; +} + +STDMETHODIMP HtmlMoniker::GetDisplayName(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, + LPOLESTR* ppszDisplayName) { + if (!ppszDisplayName) { + return E_POINTER; + } + *ppszDisplayName = OleStrDup(baseUrl ? baseUrl : L""); + return *ppszDisplayName ? S_OK : E_OUTOFMEMORY; +} + +STDMETHODIMP HtmlMoniker::ParseDisplayName(__unused IBindCtx* pbc, __unused __unused IMoniker* pmkToLeft, + __unused LPOLESTR pszDisplayName, __unused ULONG* pchEaten, + __unused IMoniker** ppmkOut) { + return E_NOTIMPL; +} + +STDMETHODIMP HtmlMoniker::QueryInterface(REFIID riid, void** ppv) { + static const QITAB qit[] = {QITABENT(HtmlMoniker, IMoniker), + QITABENT(HtmlMoniker, IPersistStream), + QITABENT(HtmlMoniker, IPersist), + {nullptr}}; + return QISearch(this, qit, riid, ppv); +} + +ULONG STDMETHODCALLTYPE HtmlMoniker::AddRef() { + return InterlockedIncrement(&refCount); +} + +ULONG STDMETHODCALLTYPE HtmlMoniker::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +static HWND GetBrowserControlHwnd(HWND hwndControlParent) { + // This is a fragile way to get the actual hwnd of the browser control + // that is responsible for processing keyboard messages (I believe the + // hierarchy might change depending on how the browser control is configured + // e.g. if it has status window etc.). + // But it works for us. + HWND w1 = GetWindow(hwndControlParent, GW_CHILD); + HWND w2 = GetWindow(w1, GW_CHILD); + HWND w3 = GetWindow(w2, GW_CHILD); + return w3; +} + +// WndProc of the window that is a parent hwnd of embedded browser control. +static LRESULT CALLBACK WndProcParent(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { + HtmlWindow* win = (HtmlWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA); + if (!win) { + return DefWindowProc(hwnd, msg, wp, lp); + } + + switch (msg) { + case WM_SIZE: + if (SIZE_MINIMIZED != wp) { + win->OnSize(Size(LOWORD(lp), HIWORD(lp))); + return 0; + } + break; + + // Note: not quite sure why I need this but if we don't swallow WM_MOUSEWHEEL + // messages, we might get infinite recursion. + case WM_MOUSEWHEEL: + case WM_MOUSEHWHEEL: + return 0; + + case WM_PARENTNOTIFY: + if (LOWORD(wp) == WM_LBUTTONDOWN) { + win->OnLButtonDown(); + } + break; + + case WM_DROPFILES: + return ::DefWindowProc(hwnd, msg, wp, lp); + + case WM_VSCROLL: + win->SendMsg(msg, wp, lp); + return 0; + } + return DefWindowProc(hwnd, msg, wp, lp); +} + +static LRESULT CALLBACK WndProcParent2(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, UINT_PTR subclassId, DWORD_PTR data) { + return WndProcParent(hwnd, msg, wp, lp); +} + +void HtmlWindow::SubclassHwnd() { + ReportIf(subclassId); // don't subclass multiple times + subclassId = NextSubclassId(); + BOOL ok = SetWindowSubclass(hwndParent, WndProcParent2, subclassId, (DWORD_PTR)this); + ReportIf(!ok); + SetWindowLongPtr(hwndParent, GWLP_USERDATA, (LONG_PTR)this); +} + +void HtmlWindow::UnsubclassHwnd() { + if (!subclassId) { + return; + } + RemoveWindowSubclass(hwndParent, WndProcParent2, subclassId); + subclassId = 0; +} + +HtmlWindow::HtmlWindow(HWND parent, HtmlWindowCallback* cb) { + ReportIf(!parent); + hwndParent = parent; + htmlWinCb = cb; + RegisterInternetProtocolFactory(); + windowId = GenNewWindowId(this); + zoomDPI = DpiGet(parent); + if (zoomDPI < 96) { + zoomDPI = 96; + } +} + +bool HtmlWindow::CreateBrowser() { + HRESULT hr; + ScopedComPtr p; + if (!p.Create(CLSID_WebBrowser)) { + return false; + } + hr = p->QueryInterface(&viewObject); + if (FAILED(hr)) { + return false; + } + hr = p->QueryInterface(&oleObject); + if (FAILED(hr)) { + return false; + } + + DWORD status; + hr = oleObject->GetMiscStatus(DVASPECT_CONTENT, &status); + if (FAILED(hr)) { + return false; + } + bool setClientSiteFirst = 0 != (status & OLEMISC_SETCLIENTSITEFIRST); + bool invisibleAtRuntime = 0 != (status & OLEMISC_INVISIBLEATRUNTIME); + + FrameSite* fs = new FrameSite(this); + ScopedComPtr fsScope(fs); + + if (setClientSiteFirst) { + oleObject->SetClientSite(fs->oleClientSite); + } + + ScopedComQIPtr psInit(p); + if (psInit) { + hr = psInit->InitNew(); + ReportIf(!SUCCEEDED(hr)); + } + + hr = p->QueryInterface(&oleInPlaceObject); + if (FAILED(hr)) { + return false; + } + hr = oleInPlaceObject->GetWindow(&oleObjectHwnd); + if (FAILED(hr)) { + return false; + } + + ::SetActiveWindow(oleObjectHwnd); + RECT rc = ToRECT(ClientRect(hwndParent)); + + oleInPlaceObject->SetObjectRects(&rc, &rc); + if (!invisibleAtRuntime) { + hr = oleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, nullptr, fs->oleClientSite, 0, hwndParent, &rc); + if (FAILED(hr)) { + return false; + } +#if 0 // is this necessary? + hr = oleObject->DoVerb(OLEIVERB_SHOW, 0, fs->oleClientSite, 0, + hwnd, &rc); +#endif + } + + if (!setClientSiteFirst) { + oleObject->SetClientSite(fs->oleClientSite); + } + + hr = p->QueryInterface(&webBrowser); + if (FAILED(hr)) { + return false; + } + + ScopedComQIPtr cpContainer(p); + if (!cpContainer) { + return false; + } + hr = cpContainer->FindConnectionPoint(DIID_DWebBrowserEvents2, &connectionPoint); + if (FAILED(hr)) { + return false; + } + connectionPoint->Advise(fs->hwDWebBrowserEvents2, &adviseCookie); + + // TODO: disallow accessing any random url? + // webBrowser->put_Offline(VARIANT_TRUE); + + webBrowser->put_MenuBar(VARIANT_FALSE); + webBrowser->put_AddressBar(VARIANT_FALSE); + webBrowser->put_StatusBar(VARIANT_FALSE); + webBrowser->put_ToolBar(VARIANT_FALSE); + webBrowser->put_Silent(VARIANT_TRUE); + + webBrowser->put_RegisterAsBrowser(VARIANT_FALSE); + webBrowser->put_RegisterAsDropTarget(VARIANT_TRUE); + + // TODO: do I need this anymore? + // NavigateToAboutBlank(); + SubclassHwnd(); + + return true; +} + +HtmlWindow* HtmlWindow::Create(HWND hwndParent, HtmlWindowCallback* cb) { + HtmlWindow* htmlWin = new HtmlWindow(hwndParent, cb); + if (!htmlWin->CreateBrowser()) { + delete htmlWin; + return nullptr; + } + return htmlWin; +} + HtmlWindow::~HtmlWindow() { UnsubclassHwnd(); - if (oleInPlaceObject) { - oleInPlaceObject->InPlaceDeactivate(); - oleInPlaceObject->UIDeactivate(); - oleInPlaceObject->Release(); - } - if (connectionPoint) { - connectionPoint->Unadvise(adviseCookie); - connectionPoint->Release(); - } - if (oleObject) { - oleObject->Close(OLECLOSE_NOSAVE); - oleObject->SetClientSite(nullptr); - oleObject->Release(); - } - - if (viewObject) { - viewObject->Release(); - } - if (htmlContent) { - htmlContent->Release(); - } - if (webBrowser) { - webBrowser->Release(); + auto inPlaceObj = oleInPlaceObject; + auto cp = connectionPoint; + auto obj = oleObject; + auto view = viewObject; + auto content = htmlContent; + auto browser = webBrowser; + oleInPlaceObject = nullptr; + connectionPoint = nullptr; + oleObject = nullptr; + viewObject = nullptr; + htmlContent = nullptr; + webBrowser = nullptr; + + if (inPlaceObj) { + inPlaceObj->InPlaceDeactivate(); + inPlaceObj->UIDeactivate(); + inPlaceObj->Release(); + } + if (cp) { + cp->Unadvise(adviseCookie); + cp->Release(); + } + if (obj) { + // Detach the client site before closing. Some IE/Trident teardown paths + // appear to invalidate the object during Close(), which makes a later + // SetClientSite(nullptr) unsafe. + obj->SetClientSite(nullptr); + obj->Close(OLECLOSE_NOSAVE); + obj->Release(); + } + + if (view) { + view->Release(); + } + if (content) { + content->Release(); + } + if (browser) { + browser->Release(); } FreeWindowId(windowId); UnregisterInternetProtocolFactory(); FreeHtmlSetInProgressData(); } - -void HtmlWindow::OnSize(Size size) { - if (webBrowser) { - webBrowser->put_Width(size.dx); - webBrowser->put_Height(size.dy); - } - - if (oleInPlaceObject) { - RECT r = ToRECT(Rect({}, size)); - oleInPlaceObject->SetObjectRects(&r, &r); - } -} - -void HtmlWindow::OnLButtonDown() const { - if (htmlWinCb) { - htmlWinCb->OnLButtonDown(); - } -} - -void HtmlWindow::SetVisible(bool visible) { - HwndSetVisibility(hwndParent, visible); - if (webBrowser) { - webBrowser->put_Visible(visible ? VARIANT_TRUE : VARIANT_FALSE); - } -} - -// Use for urls for which data will be provided by HtmlWindowCallback::GetHtmlForUrl() -// (will be called from OnBeforeNavigate()) -void HtmlWindow::NavigateToDataUrl(const char* url) { - TempStr fullUrl = str::FormatTemp("its://%d/%s", windowId, url); - NavigateToUrl(fullUrl); -} - -void HtmlWindow::NavigateToUrl(const char* urlA) { - WCHAR* url = ToWStrTemp(urlA); - VARIANT urlVar; - VariantInitBstr(urlVar, url); - currentURL.Reset(); - webBrowser->Navigate2(&urlVar, nullptr, nullptr, nullptr, nullptr); - VariantClear(&urlVar); -} - -void HtmlWindow::GoBack() { - if (webBrowser) { - webBrowser->GoBack(); - } -} - -void HtmlWindow::GoForward() { - if (webBrowser) { - webBrowser->GoForward(); - } -} - -int HtmlWindow::GetZoomPercent() { - VARIANT vtOut{}; - HRESULT hr = webBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, nullptr, &vtOut); - if (FAILED(hr)) { - return 100; - } - int zoom = vtOut.lVal; - ReportIf(zoomDPI < 96); - zoom = (zoom * 96) / zoomDPI; // undo what we do in SetZoomPercent() - return zoom; -} - -void HtmlWindow::SetZoomPercent(int zoom) { - VARIANT vtIn{}; - VARIANT vtOut{}; - ReportIf(zoomDPI < 96); - zoom = (zoom * zoomDPI) / 96; - VariantSetLong(&vtIn, zoom); - webBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vtIn, &vtOut); -} - -void HtmlWindow::PrintCurrentPage(bool showUI) { - OLECMDEXECOPT cmdexecopt = showUI ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DONTPROMPTUSER; - webBrowser->ExecWB(OLECMDID_PRINT, cmdexecopt, nullptr, nullptr); -} - -void HtmlWindow::FindInCurrentPage() { - webBrowser->ExecWB(OLECMDID_FIND, OLECMDEXECOPT_PROMPTUSER, nullptr, nullptr); -} - -void HtmlWindow::SelectAll() { - webBrowser->ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT, nullptr, nullptr); -} - -void HtmlWindow::CopySelection() { - webBrowser->ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT, nullptr, nullptr); -} - -void HtmlWindow::NavigateToAboutBlank() { - NavigateToUrl("about:blank"); -} - -void HtmlWindow::SetHtml(const ByteSlice& d, const char* url) { - FreeHtmlSetInProgressData(); - str::ReplaceWithCopy(&htmlSetInProgress, d); - str::ReplaceWithCopy(&htmlSetInProgress, url); - NavigateToAboutBlank(); - // the real work will happen in OnDocumentComplete() -} - -// TODO: we don't call OnDocumentComplete() on this because the url -// reports "about:blank" and we suppress that. Figure out a way -// to fix that (change the url somehow?) -// TODO: IHtmlDocument2->write() seems like a simpler method -// http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla#BUFFER -// https://github.com/ReneNyffenegger/development_misc/blob/master/windows/mshtml/HTMLWindow.cpp#L143 -void HtmlWindow::SetHtmlReal(const ByteSlice& d) { - if (htmlContent) { - htmlContent->Release(); - } - htmlContent = new HtmlMoniker(); - htmlContent->SetHtml(d); - TempStr baseUrl = str::FormatTemp(HW_PROTO_PREFIXA "://%d/", windowId); - htmlContent->SetBaseUrl(ToWStrTemp(baseUrl)); - - ScopedComPtr docDispatch; - HRESULT hr = webBrowser->get_Document(&docDispatch); - if (FAILED(hr) || !docDispatch) { - return; - } - - ScopedComQIPtr doc(docDispatch); - if (!doc) { - return; - } - - ScopedComQIPtr perstMon(doc); - if (!perstMon) { - return; - } - ScopedComQIPtr htmlMon(htmlContent); - hr = perstMon->Load(TRUE, htmlMon, nullptr, STGM_READ); - ReportIf(FAILED(hr)); -} - -// http://stackoverflow.com/questions/9778206/how-i-can-get-information-about-the-scrollbars-of-an-webbrowser-control-instance -// http://stackoverflow.com/questions/8630173/hide-scrollbars-in-webbrowser-control-mfc -// This is equivalent of but for any html -// This seems to be the only way to hide vertical scrollbar if it's not necessary -void HtmlWindow::SetScrollbarToAuto() { - ScopedComPtr docDispatch; - HRESULT hr = webBrowser->get_Document(&docDispatch); - if (FAILED(hr) || !docDispatch) { - return; - } - - ScopedComQIPtr doc2(docDispatch); - if (!doc2) { - return; - } - - ScopedComPtr bodyElement; - hr = doc2->get_body(&bodyElement); - if (FAILED(hr) || !bodyElement) { - return; - } - - ScopedComQIPtr body(bodyElement); - if (!body) { - return; - } - - BSTR s = SysAllocString(L"auto"); - hr = body->put_scroll(s); - ReportIf(FAILED(hr)); - SysFreeString(s); -} - -// Take a screenshot of a given inside an html window and resize -// it to . It's up to the caller to make sure fits -// within window (we don't check that's the case) -HBITMAP HtmlWindow::TakeScreenshot(Rect area, Size finalSize) { - ScopedComPtr docDispatch; - HRESULT hr = webBrowser->get_Document(&docDispatch); - if (FAILED(hr) || !docDispatch) { - return nullptr; - } - ScopedComQIPtr view(docDispatch); - if (!view) { - return nullptr; - } - - // capture the whole window (including scrollbars) - // to image and create imageRes containing the area - // user asked for - Rect winRc = WindowRect(hwndParent); - Gdiplus::Bitmap image(winRc.dx, winRc.dy, PixelFormat24bppRGB); - Gdiplus::Graphics g(&image); - - HDC dc = g.GetHDC(); - RECTL rc = {0, 0, winRc.dx, winRc.dy}; - hr = view->Draw(DVASPECT_CONTENT, -1, nullptr, nullptr, dc, dc, &rc, nullptr, nullptr, 0); - g.ReleaseHDC(dc); - if (FAILED(hr)) { - return nullptr; - } - - Gdiplus::Bitmap imageRes(finalSize.dx, finalSize.dy, PixelFormat24bppRGB); - Gdiplus::Graphics g2(&imageRes); - g2.SetInterpolationMode(Gdiplus::InterpolationModeHighQualityBicubic); - g2.DrawImage(&image, Gdiplus::Rect(0, 0, finalSize.dx, finalSize.dy), area.x, area.y, area.dx, area.dy, - Gdiplus::UnitPixel); - - HBITMAP hbmp; - Gdiplus::Status ok = imageRes.GetHBITMAP((Gdiplus::ARGB)Gdiplus::Color::White, &hbmp); - if (ok != Gdiplus::Ok) { - return nullptr; - } - return hbmp; -} - -// called before an url is shown. If returns false, will cancel -// the navigation. -bool HtmlWindow::OnBeforeNavigate(const WCHAR* urlW, bool newWindow) { - currentURL.Reset(); - if (!htmlWinCb) { - return true; - } - char* url = ToUtf8Temp(urlW); - if (IsBlankUrl(url)) { - return true; - } - - // if it's url for our internal protocol, strip the protocol - // part as we don't want to expose it to clients. - int protoWindowId; - AutoFreeStr urlReal = str::Dup(url); - bool ok = ParseProtoUrl(url, &protoWindowId, &urlReal); - ReportIf(ok && (protoWindowId != windowId)); - bool shouldNavigate = htmlWinCb->OnBeforeNavigate(urlReal, newWindow); - return shouldNavigate; -} - -void HtmlWindow::FreeHtmlSetInProgressData() { - str::FreePtr(&this->htmlSetInProgress); - str::FreePtr(&this->htmlSetInProgressUrl); -} - -void HtmlWindow::OnDocumentComplete(const WCHAR* urlW) { - char* url = ToUtf8Temp(urlW); - if (IsBlankUrl(url)) { - if (htmlSetInProgress != nullptr) { - // TODO: I think this triggers another OnDocumentComplete() for "about:blank", - // which we should ignore? - SetHtmlReal(ToByteSlice(htmlSetInProgress)); - if (htmlWinCb) { - if (htmlSetInProgressUrl) { - htmlWinCb->OnDocumentComplete(htmlSetInProgressUrl); - } else { - htmlWinCb->OnDocumentComplete(htmlSetInProgressUrl); - } - } - - FreeHtmlSetInProgressData(); - SetScrollbarToAuto(); - return; - } - } - - // if it's url for our internal protocol, strip the protocol - // part as we don't want to expose it to clients. - int protoWindowId; - AutoFreeStr urlReal = str::Dup(url); - bool ok = ParseProtoUrl(url, &protoWindowId, &urlReal); - ReportIf(ok && (protoWindowId != windowId)); - - currentURL.Set(urlReal.StealData()); - if (htmlWinCb) { - htmlWinCb->OnDocumentComplete(currentURL); - } - SetScrollbarToAuto(); -} - -HRESULT HtmlWindow::OnDragEnter(IDataObject* dataObj) { - ScopedComQIPtr data(dataObj); - if (!data) { - return E_INVALIDARG; - } - FORMATETC fe = {CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; - STGMEDIUM stg{}; - if (FAILED(data->GetData(&fe, &stg))) { - return E_FAIL; - } - ReleaseStgMedium(&stg); - return S_OK; -} - -HRESULT HtmlWindow::OnDragDrop(IDataObject* dataObj) { - ScopedComQIPtr data(dataObj); - if (!data) { - return E_INVALIDARG; - } - FORMATETC fe = {CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; - STGMEDIUM stg{}; - if (FAILED(data->GetData(&fe, &stg))) { - return E_FAIL; - } - - HDROP hDrop = (HDROP)GlobalLock(stg.hGlobal); - if (hDrop) { - SendMessageW(hwndParent, WM_DROPFILES, (WPARAM)hDrop, 1); - GlobalUnlock(stg.hGlobal); - } - ReleaseStgMedium(&stg); - return hDrop != nullptr ? S_OK : E_FAIL; -} - -LRESULT HtmlWindow::SendMsg(UINT msg, WPARAM wp, LPARAM lp) { - HWND hwndBrowser = GetBrowserControlHwnd(hwndParent); - return SendMessageW(hwndBrowser, msg, wp, lp); -} - -FrameSite::FrameSite(HtmlWindow* win) { - refCount = 1; - - htmlWindow = win; - supportsWindowlessActivation = true; - inPlaceLocked = false; - uiActive = false; - inPlaceActive = false; - isWindowless = false; - - ambientLocale = 0; - ambientForeColor = ::GetSysColor(COLOR_WINDOWTEXT); - ambientBackColor = ::GetSysColor(COLOR_WINDOW); - ambientUserMode = true; - ambientShowHatching = true; - ambientShowGrabHandles = true; - ambientAppearance = true; - - // m_hDCBuffer = nullptr; - hwndParent = htmlWindow->hwndParent; - - oleInPlaceFrame = new HW_IOleInPlaceFrame(this); - oleInPlaceSiteWindowless = new HW_IOleInPlaceSiteWindowless(this); - oleClientSite = new HW_IOleClientSite(this); - oleControlSite = new HW_IOleControlSite(this); - oleCommandTarget = new HW_IOleCommandTarget(this); - oleItemContainer = new HW_IOleItemContainer(this); - hwDWebBrowserEvents2 = new HW_DWebBrowserEvents2(this); - adviseSink2 = new HW_IAdviseSink2(this); - docHostUIHandler = new HW_IDocHostUIHandler(this); - dropTarget = new HW_IDropTarget(this); - serviceProvider = new HW_IServiceProvider(this); -} - -FrameSite::~FrameSite() { - delete serviceProvider; - delete dropTarget; - delete docHostUIHandler; - delete adviseSink2; - delete hwDWebBrowserEvents2; - delete oleItemContainer; - delete oleCommandTarget; - delete oleControlSite; - delete oleClientSite; - delete oleInPlaceSiteWindowless; - delete oleInPlaceFrame; -} - -// IUnknown -STDMETHODIMP FrameSite::QueryInterface(REFIID riid, void** ppv) { - if (ppv == nullptr) { - return E_INVALIDARG; - } - - *ppv = nullptr; - if (riid == IID_IUnknown) { - *ppv = this; - } else if (riid == IID_IOleWindow || riid == IID_IOleInPlaceUIWindow || riid == IID_IOleInPlaceFrame) { - *ppv = oleInPlaceFrame; - } else if (riid == IID_IOleInPlaceSite || riid == IID_IOleInPlaceSiteEx || riid == IID_IOleInPlaceSiteWindowless) { - *ppv = oleInPlaceSiteWindowless; - } else if (riid == IID_IOleClientSite) { - *ppv = oleClientSite; - } else if (riid == IID_IOleControlSite) { - *ppv = oleControlSite; - } else if (riid == IID_IOleCommandTarget) { - *ppv = oleCommandTarget; - } else if (riid == IID_IOleItemContainer || riid == IID_IOleContainer || riid == IID_IParseDisplayName) { - *ppv = oleItemContainer; - } else if (riid == IID_IDispatch || riid == DIID_DWebBrowserEvents2) { - *ppv = hwDWebBrowserEvents2; - } else if (riid == IID_IAdviseSink || riid == IID_IAdviseSink2 || riid == IID_IAdviseSinkEx) { - *ppv = adviseSink2; - } else if (riid == IID_IDocHostUIHandler) { - *ppv = docHostUIHandler; - } else if (riid == IID_IDropTarget) { - *ppv = dropTarget; - } else if (riid == IID_IServiceProvider) { - *ppv = serviceProvider; - } else { - return E_NOINTERFACE; - } - if (!*ppv) { - return E_OUTOFMEMORY; - } - AddRef(); - return S_OK; -} - -ULONG STDMETHODCALLTYPE FrameSite::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -// IDispatch -HRESULT HW_DWebBrowserEvents2::DispatchPropGet(DISPID dispIdMember, VARIANT* res) { - if (res == nullptr) { - return E_INVALIDARG; - } - - switch (dispIdMember) { - case DISPID_AMBIENT_APPEARANCE: - VariantSetBool(res, fs->ambientAppearance); - break; - - case DISPID_AMBIENT_FORECOLOR: - VariantSetLong(res, (long)fs->ambientForeColor); - break; - - case DISPID_AMBIENT_BACKCOLOR: - VariantSetLong(res, (long)fs->ambientBackColor); - break; - - case DISPID_AMBIENT_LOCALEID: - VariantSetLong(res, (long)fs->ambientLocale); - break; - - case DISPID_AMBIENT_USERMODE: - VariantSetBool(res, fs->ambientUserMode); - break; - - case DISPID_AMBIENT_SHOWGRABHANDLES: - VariantSetBool(res, fs->ambientShowGrabHandles); - break; - - case DISPID_AMBIENT_SHOWHATCHING: - VariantSetBool(res, fs->ambientShowHatching); - break; - - default: - return DISP_E_MEMBERNOTFOUND; - } - return S_OK; -} - -static BSTR BstrFromVariant(VARIANT* vurl) { - if (vurl->vt & VT_BYREF) { - return *vurl->pbstrVal; - } else { - return vurl->bstrVal; - } -} - -HRESULT HW_DWebBrowserEvents2::Invoke(DISPID dispIdMember, __unused REFIID riid, __unused LCID lcid, WORD flags, - DISPPARAMS* pDispParams, VARIANT* pVarResult, __unused EXCEPINFO* pExcepInfo, - __unused unsigned int* puArgErr) { - if (flags & DISPATCH_PROPERTYGET) { - return DispatchPropGet(dispIdMember, pVarResult); - } - - switch (dispIdMember) { - case DISPID_BEFORENAVIGATE2: { - BSTR url = BstrFromVariant(pDispParams->rgvarg[5].pvarVal); - bool shouldCancel = !fs->htmlWindow->OnBeforeNavigate(url, false); - *pDispParams->rgvarg[0].pboolVal = shouldCancel ? VARIANT_TRUE : VARIANT_FALSE; - break; - } - -#if 0 - case DISPID_PROGRESSCHANGE: - { - long current = pDispParams->rgvarg[1].lVal; - long maximum = pDispParams->rgvarg[0].lVal; - fs->htmlWindow->OnProgressURL(current, maximum); - break; - } -#endif - - case DISPID_DOCUMENTCOMPLETE: { - // TODO: there are complexities related to multi-frame documents. This - // gets called on every frame and we should probably only notify - // on completion of top-level frame. On the other hand, I haven't - // encountered problems related to that yet - BSTR url = BstrFromVariant(pDispParams->rgvarg[0].pvarVal); - fs->htmlWindow->OnDocumentComplete(url); - break; - } - - case DISPID_NAVIGATEERROR: { - // TODO: probably should notify about that too - break; - } - - case DISPID_COMMANDSTATECHANGE: - switch (pDispParams->rgvarg[1].lVal) { - case CSC_NAVIGATEBACK: - fs->htmlWindow->canGoBack = pDispParams->rgvarg[0].boolVal; - break; - case CSC_NAVIGATEFORWARD: - fs->htmlWindow->canGoForward = pDispParams->rgvarg[0].boolVal; - break; - } - break; - - case DISPID_NEWWINDOW3: { - BSTR url = pDispParams->rgvarg[0].bstrVal; - bool shouldCancel = !fs->htmlWindow->OnBeforeNavigate(url, true); - *pDispParams->rgvarg[3].pboolVal = shouldCancel ? VARIANT_TRUE : VARIANT_FALSE; - break; - } - - case DISPID_NEWWINDOW2: - // prior to Windows XP SP2, there's no way of getting the URL - // to be opened, so we have to fail silently - *pDispParams->rgvarg[0].pboolVal = VARIANT_FALSE; - break; - } - - return S_OK; -} - -// IOleWindow -HRESULT HW_IOleInPlaceFrame::GetWindow(HWND* phwnd) { - if (phwnd == nullptr) { - return E_INVALIDARG; - } - *phwnd = fs->hwndParent; - return S_OK; -} - -// IOleInPlaceUIWindow -HRESULT HW_IOleInPlaceFrame::GetBorder(LPRECT lprectBorder) { - if (lprectBorder == nullptr) { - return E_INVALIDARG; - } - return INPLACE_E_NOTOOLSPACE; -} - -HRESULT HW_IOleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pborderwidths) { - if (pborderwidths == nullptr) { - return E_INVALIDARG; - } - return INPLACE_E_NOTOOLSPACE; -} - -// IOleInPlaceSite -HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceActivate() { - fs->inPlaceActive = true; - return S_OK; -} - -HRESULT HW_IOleInPlaceSiteWindowless::OnUIActivate() { - fs->uiActive = true; - return S_OK; -} - -HRESULT HW_IOleInPlaceSiteWindowless::GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, - LPRECT lprcPosRect, LPRECT lprcClipRect, - LPOLEINPLACEFRAMEINFO lpFrameInfo) { - if (ppFrame == nullptr || ppDoc == nullptr || lprcPosRect == nullptr || lprcClipRect == nullptr || - lpFrameInfo == nullptr) { - if (ppFrame != nullptr) { - *ppFrame = nullptr; - } - if (ppDoc != nullptr) { - *ppDoc = nullptr; - } - return E_INVALIDARG; - } - - *ppDoc = *ppFrame = fs->oleInPlaceFrame; - (*ppDoc)->AddRef(); - (*ppFrame)->AddRef(); - - lpFrameInfo->fMDIApp = FALSE; - lpFrameInfo->hwndFrame = fs->hwndParent; - lpFrameInfo->haccel = nullptr; - lpFrameInfo->cAccelEntries = 0; - - return S_OK; -} - -HRESULT HW_IOleInPlaceSiteWindowless::OnUIDeactivate(__unused BOOL fUndoable) { - fs->uiActive = false; - return S_OK; -} - -HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceDeactivate() { - fs->inPlaceActive = false; - return S_OK; -} - -// IOleInPlaceSiteEx -HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceActivateEx(BOOL* pfNoRedraw, __unused DWORD dwFlags) { - if (pfNoRedraw) { - *pfNoRedraw = FALSE; - } - return S_OK; -} - -// IOleInPlaceSiteWindowless -HRESULT HW_IOleInPlaceSiteWindowless::CanWindowlessActivate() { - return fs->supportsWindowlessActivation ? S_OK : S_FALSE; -} - -HRESULT HW_IOleInPlaceSiteWindowless::GetDC(__unused LPCRECT pRect, __unused DWORD grfFlags, HDC* phDC) { - if (phDC == nullptr) { - return E_INVALIDARG; - } - -#if 0 - if (grfFlags & OLEDC_NODRAW) - { - *phDC = mfs->hDCBuffer; - return S_OK; - } - - if (fs->hDCBuffer != nullptr) - return E_UNEXPECTED; -#endif - return E_NOTIMPL; -} - -HRESULT HW_IOleInPlaceSiteWindowless::InvalidateRect(__unused LPCRECT pRect, BOOL fErase) { - ::InvalidateRect(fs->hwndParent, nullptr, fErase); - return S_OK; -} - -// IOleClientSite -HRESULT HW_IOleClientSite::GetContainer(LPOLECONTAINER* ppContainer) { - if (ppContainer == nullptr) { - return E_INVALIDARG; - } - return QueryInterface(IID_IOleContainer, (void**)ppContainer); -} - -// IOleItemContainer -HRESULT HW_IOleItemContainer::GetObject(LPOLESTR pszItem, __unused DWORD dwSpeedNeeded, __unused IBindCtx* pbc, - __unused REFIID riid, void** ppvObject) { - if (pszItem == nullptr) { - return E_INVALIDARG; - } - if (ppvObject == nullptr) { - return E_INVALIDARG; - } - *ppvObject = nullptr; - return MK_E_NOOBJECT; -} - -HRESULT HW_IOleItemContainer::GetObjectStorage(LPOLESTR pszItem, __unused IBindCtx* pbc, __unused REFIID riid, - void** ppvStorage) { - if (pszItem == nullptr) { - return E_INVALIDARG; - } - if (ppvStorage == nullptr) { - return E_INVALIDARG; - } - *ppvStorage = nullptr; - return MK_E_NOOBJECT; -} - -HRESULT HW_IOleItemContainer::IsRunning(LPOLESTR pszItem) { - if (pszItem == nullptr) { - return E_INVALIDARG; - } - return MK_E_NOOBJECT; -} - -// IOleControlSite -HRESULT HW_IOleControlSite::LockInPlaceActive(BOOL fLock) { - fs->inPlaceLocked = (fLock == TRUE); - return S_OK; -} - -HRESULT HW_IOleControlSite::TransformCoords(POINTL* pPtlHimetric, POINTF* pPtfContainer, __unused DWORD dwFlags) { - HRESULT hr = S_OK; - if (pPtlHimetric == nullptr) { - return E_INVALIDARG; - } - if (pPtfContainer == nullptr) { - return E_INVALIDARG; - } - return hr; -} - -// IOleCommandTarget -HRESULT HW_IOleCommandTarget::QueryStatus(__unused const GUID* pguidCmdGroup, __unused ULONG cCmds, OLECMD* prgCmds, - __unused OLECMDTEXT* pCmdTet) { - if (prgCmds == nullptr) { - return E_INVALIDARG; - } - return OLECMDERR_E_UNKNOWNGROUP; -} + +void HtmlWindow::OnSize(Size size) { + if (webBrowser) { + webBrowser->put_Width(size.dx); + webBrowser->put_Height(size.dy); + } + + if (oleInPlaceObject) { + RECT r = ToRECT(Rect({}, size)); + oleInPlaceObject->SetObjectRects(&r, &r); + } +} + +void HtmlWindow::OnLButtonDown() const { + if (htmlWinCb) { + htmlWinCb->OnLButtonDown(); + } +} + +void HtmlWindow::SetVisible(bool visible) { + HwndSetVisibility(hwndParent, visible); + if (webBrowser) { + webBrowser->put_Visible(visible ? VARIANT_TRUE : VARIANT_FALSE); + } +} + +// Use for urls for which data will be provided by HtmlWindowCallback::GetHtmlForUrl() +// (will be called from OnBeforeNavigate()) +void HtmlWindow::NavigateToDataUrl(const char* url) { + TempStr fullUrl = str::FormatTemp("its://%d/%s", windowId, url); + NavigateToUrl(fullUrl); +} + +void HtmlWindow::NavigateToUrl(const char* urlA) { + WCHAR* url = ToWStrTemp(urlA); + VARIANT urlVar; + VariantInitBstr(urlVar, url); + currentURL.Reset(); + webBrowser->Navigate2(&urlVar, nullptr, nullptr, nullptr, nullptr); + VariantClear(&urlVar); +} + +void HtmlWindow::GoBack() { + if (webBrowser) { + webBrowser->GoBack(); + } +} + +void HtmlWindow::GoForward() { + if (webBrowser) { + webBrowser->GoForward(); + } +} + +int HtmlWindow::GetZoomPercent() { + VARIANT vtOut{}; + HRESULT hr = webBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, nullptr, &vtOut); + if (FAILED(hr)) { + return 100; + } + int zoom = vtOut.lVal; + ReportIf(zoomDPI < 96); + zoom = (zoom * 96) / zoomDPI; // undo what we do in SetZoomPercent() + return zoom; +} + +void HtmlWindow::SetZoomPercent(int zoom) { + VARIANT vtIn{}; + VARIANT vtOut{}; + ReportIf(zoomDPI < 96); + zoom = (zoom * zoomDPI) / 96; + VariantSetLong(&vtIn, zoom); + webBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vtIn, &vtOut); +} + +void HtmlWindow::PrintCurrentPage(bool showUI) { + OLECMDEXECOPT cmdexecopt = showUI ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DONTPROMPTUSER; + webBrowser->ExecWB(OLECMDID_PRINT, cmdexecopt, nullptr, nullptr); +} + +void HtmlWindow::FindInCurrentPage() { + webBrowser->ExecWB(OLECMDID_FIND, OLECMDEXECOPT_PROMPTUSER, nullptr, nullptr); +} + +void HtmlWindow::SelectAll() { + webBrowser->ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT, nullptr, nullptr); +} + +void HtmlWindow::CopySelection() { + webBrowser->ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT, nullptr, nullptr); +} + +void HtmlWindow::NavigateToAboutBlank() { + NavigateToUrl("about:blank"); +} + +void HtmlWindow::SetHtml(const ByteSlice& d, const char* url) { + FreeHtmlSetInProgressData(); + str::ReplaceWithCopy(&htmlSetInProgress, d); + str::ReplaceWithCopy(&htmlSetInProgress, url); + NavigateToAboutBlank(); + // the real work will happen in OnDocumentComplete() +} + +// TODO: we don't call OnDocumentComplete() on this because the url +// reports "about:blank" and we suppress that. Figure out a way +// to fix that (change the url somehow?) +// TODO: IHtmlDocument2->write() seems like a simpler method +// http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla#BUFFER +// https://github.com/ReneNyffenegger/development_misc/blob/master/windows/mshtml/HTMLWindow.cpp#L143 +void HtmlWindow::SetHtmlReal(const ByteSlice& d) { + if (htmlContent) { + htmlContent->Release(); + } + htmlContent = new HtmlMoniker(); + htmlContent->SetHtml(d); + TempStr baseUrl = str::FormatTemp(HW_PROTO_PREFIXA "://%d/", windowId); + htmlContent->SetBaseUrl(ToWStrTemp(baseUrl)); + + ScopedComPtr docDispatch; + HRESULT hr = webBrowser->get_Document(&docDispatch); + if (FAILED(hr) || !docDispatch) { + return; + } + + ScopedComQIPtr doc(docDispatch); + if (!doc) { + return; + } + + ScopedComQIPtr perstMon(doc); + if (!perstMon) { + return; + } + ScopedComQIPtr htmlMon(htmlContent); + hr = perstMon->Load(TRUE, htmlMon, nullptr, STGM_READ); + ReportIf(FAILED(hr)); +} + +// http://stackoverflow.com/questions/9778206/how-i-can-get-information-about-the-scrollbars-of-an-webbrowser-control-instance +// http://stackoverflow.com/questions/8630173/hide-scrollbars-in-webbrowser-control-mfc +// This is equivalent of but for any html +// This seems to be the only way to hide vertical scrollbar if it's not necessary +void HtmlWindow::SetScrollbarToAuto() { + ScopedComPtr docDispatch; + HRESULT hr = webBrowser->get_Document(&docDispatch); + if (FAILED(hr) || !docDispatch) { + return; + } + + ScopedComQIPtr doc2(docDispatch); + if (!doc2) { + return; + } + + ScopedComPtr bodyElement; + hr = doc2->get_body(&bodyElement); + if (FAILED(hr) || !bodyElement) { + return; + } + + ScopedComQIPtr body(bodyElement); + if (!body) { + return; + } + + BSTR s = SysAllocString(L"auto"); + hr = body->put_scroll(s); + ReportIf(FAILED(hr)); + SysFreeString(s); +} + +// Take a screenshot of a given inside an html window and resize +// it to . It's up to the caller to make sure fits +// within window (we don't check that's the case) +HBITMAP HtmlWindow::TakeScreenshot(Rect area, Size finalSize) { + ScopedComPtr docDispatch; + HRESULT hr = webBrowser->get_Document(&docDispatch); + if (FAILED(hr) || !docDispatch) { + return nullptr; + } + ScopedComQIPtr view(docDispatch); + if (!view) { + return nullptr; + } + + // capture the whole window (including scrollbars) + // to image and create imageRes containing the area + // user asked for + Rect winRc = WindowRect(hwndParent); + Gdiplus::Bitmap image(winRc.dx, winRc.dy, PixelFormat24bppRGB); + Gdiplus::Graphics g(&image); + + HDC dc = g.GetHDC(); + RECTL rc = {0, 0, winRc.dx, winRc.dy}; + hr = view->Draw(DVASPECT_CONTENT, -1, nullptr, nullptr, dc, dc, &rc, nullptr, nullptr, 0); + g.ReleaseHDC(dc); + if (FAILED(hr)) { + return nullptr; + } + + Gdiplus::Bitmap imageRes(finalSize.dx, finalSize.dy, PixelFormat24bppRGB); + Gdiplus::Graphics g2(&imageRes); + g2.SetInterpolationMode(Gdiplus::InterpolationModeHighQualityBicubic); + g2.DrawImage(&image, Gdiplus::Rect(0, 0, finalSize.dx, finalSize.dy), area.x, area.y, area.dx, area.dy, + Gdiplus::UnitPixel); + + HBITMAP hbmp; + Gdiplus::Status ok = imageRes.GetHBITMAP((Gdiplus::ARGB)Gdiplus::Color::White, &hbmp); + if (ok != Gdiplus::Ok) { + return nullptr; + } + return hbmp; +} + +// called before an url is shown. If returns false, will cancel +// the navigation. +bool HtmlWindow::OnBeforeNavigate(const WCHAR* urlW, bool newWindow) { + currentURL.Reset(); + if (!htmlWinCb) { + return true; + } + char* url = ToUtf8Temp(urlW); + if (IsBlankUrl(url)) { + return true; + } + + // if it's url for our internal protocol, strip the protocol + // part as we don't want to expose it to clients. + int protoWindowId; + AutoFreeStr urlReal = str::Dup(url); + bool ok = ParseProtoUrl(url, &protoWindowId, &urlReal); + ReportIf(ok && (protoWindowId != windowId)); + bool shouldNavigate = htmlWinCb->OnBeforeNavigate(urlReal, newWindow); + return shouldNavigate; +} + +void HtmlWindow::FreeHtmlSetInProgressData() { + str::FreePtr(&this->htmlSetInProgress); + str::FreePtr(&this->htmlSetInProgressUrl); +} + +void HtmlWindow::OnDocumentComplete(const WCHAR* urlW) { + char* url = ToUtf8Temp(urlW); + if (IsBlankUrl(url)) { + if (htmlSetInProgress != nullptr) { + // TODO: I think this triggers another OnDocumentComplete() for "about:blank", + // which we should ignore? + SetHtmlReal(ToByteSlice(htmlSetInProgress)); + if (htmlWinCb) { + if (htmlSetInProgressUrl) { + htmlWinCb->OnDocumentComplete(htmlSetInProgressUrl); + } else { + htmlWinCb->OnDocumentComplete(htmlSetInProgressUrl); + } + } + + FreeHtmlSetInProgressData(); + SetScrollbarToAuto(); + return; + } + } + + // if it's url for our internal protocol, strip the protocol + // part as we don't want to expose it to clients. + int protoWindowId; + AutoFreeStr urlReal = str::Dup(url); + bool ok = ParseProtoUrl(url, &protoWindowId, &urlReal); + ReportIf(ok && (protoWindowId != windowId)); + + currentURL.Set(urlReal.StealData()); + if (htmlWinCb) { + htmlWinCb->OnDocumentComplete(currentURL); + } + SetScrollbarToAuto(); +} + +HRESULT HtmlWindow::OnDragEnter(IDataObject* dataObj) { + ScopedComQIPtr data(dataObj); + if (!data) { + return E_INVALIDARG; + } + FORMATETC fe = {CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; + STGMEDIUM stg{}; + if (FAILED(data->GetData(&fe, &stg))) { + return E_FAIL; + } + ReleaseStgMedium(&stg); + return S_OK; +} + +HRESULT HtmlWindow::OnDragDrop(IDataObject* dataObj) { + ScopedComQIPtr data(dataObj); + if (!data) { + return E_INVALIDARG; + } + FORMATETC fe = {CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; + STGMEDIUM stg{}; + if (FAILED(data->GetData(&fe, &stg))) { + return E_FAIL; + } + + HDROP hDrop = (HDROP)GlobalLock(stg.hGlobal); + if (hDrop) { + SendMessageW(hwndParent, WM_DROPFILES, (WPARAM)hDrop, 1); + GlobalUnlock(stg.hGlobal); + } + ReleaseStgMedium(&stg); + return hDrop != nullptr ? S_OK : E_FAIL; +} + +LRESULT HtmlWindow::SendMsg(UINT msg, WPARAM wp, LPARAM lp) { + HWND hwndBrowser = GetBrowserControlHwnd(hwndParent); + return SendMessageW(hwndBrowser, msg, wp, lp); +} + +FrameSite::FrameSite(HtmlWindow* win) { + refCount = 1; + + htmlWindow = win; + supportsWindowlessActivation = true; + inPlaceLocked = false; + uiActive = false; + inPlaceActive = false; + isWindowless = false; + + ambientLocale = 0; + ambientForeColor = ::GetSysColor(COLOR_WINDOWTEXT); + ambientBackColor = ::GetSysColor(COLOR_WINDOW); + ambientUserMode = true; + ambientShowHatching = true; + ambientShowGrabHandles = true; + ambientAppearance = true; + + // m_hDCBuffer = nullptr; + hwndParent = htmlWindow->hwndParent; + + oleInPlaceFrame = new HW_IOleInPlaceFrame(this); + oleInPlaceSiteWindowless = new HW_IOleInPlaceSiteWindowless(this); + oleClientSite = new HW_IOleClientSite(this); + oleControlSite = new HW_IOleControlSite(this); + oleCommandTarget = new HW_IOleCommandTarget(this); + oleItemContainer = new HW_IOleItemContainer(this); + hwDWebBrowserEvents2 = new HW_DWebBrowserEvents2(this); + adviseSink2 = new HW_IAdviseSink2(this); + docHostUIHandler = new HW_IDocHostUIHandler(this); + dropTarget = new HW_IDropTarget(this); + serviceProvider = new HW_IServiceProvider(this); +} + +FrameSite::~FrameSite() { + delete serviceProvider; + delete dropTarget; + delete docHostUIHandler; + delete adviseSink2; + delete hwDWebBrowserEvents2; + delete oleItemContainer; + delete oleCommandTarget; + delete oleControlSite; + delete oleClientSite; + delete oleInPlaceSiteWindowless; + delete oleInPlaceFrame; +} + +// IUnknown +STDMETHODIMP FrameSite::QueryInterface(REFIID riid, void** ppv) { + if (ppv == nullptr) { + return E_INVALIDARG; + } + + *ppv = nullptr; + if (riid == IID_IUnknown) { + *ppv = this; + } else if (riid == IID_IOleWindow || riid == IID_IOleInPlaceUIWindow || riid == IID_IOleInPlaceFrame) { + *ppv = oleInPlaceFrame; + } else if (riid == IID_IOleInPlaceSite || riid == IID_IOleInPlaceSiteEx || riid == IID_IOleInPlaceSiteWindowless) { + *ppv = oleInPlaceSiteWindowless; + } else if (riid == IID_IOleClientSite) { + *ppv = oleClientSite; + } else if (riid == IID_IOleControlSite) { + *ppv = oleControlSite; + } else if (riid == IID_IOleCommandTarget) { + *ppv = oleCommandTarget; + } else if (riid == IID_IOleItemContainer || riid == IID_IOleContainer || riid == IID_IParseDisplayName) { + *ppv = oleItemContainer; + } else if (riid == IID_IDispatch || riid == DIID_DWebBrowserEvents2) { + *ppv = hwDWebBrowserEvents2; + } else if (riid == IID_IAdviseSink || riid == IID_IAdviseSink2 || riid == IID_IAdviseSinkEx) { + *ppv = adviseSink2; + } else if (riid == IID_IDocHostUIHandler) { + *ppv = docHostUIHandler; + } else if (riid == IID_IDropTarget) { + *ppv = dropTarget; + } else if (riid == IID_IServiceProvider) { + *ppv = serviceProvider; + } else { + return E_NOINTERFACE; + } + if (!*ppv) { + return E_OUTOFMEMORY; + } + AddRef(); + return S_OK; +} + +ULONG STDMETHODCALLTYPE FrameSite::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +// IDispatch +HRESULT HW_DWebBrowserEvents2::DispatchPropGet(DISPID dispIdMember, VARIANT* res) { + if (res == nullptr) { + return E_INVALIDARG; + } + + switch (dispIdMember) { + case DISPID_AMBIENT_APPEARANCE: + VariantSetBool(res, fs->ambientAppearance); + break; + + case DISPID_AMBIENT_FORECOLOR: + VariantSetLong(res, (long)fs->ambientForeColor); + break; + + case DISPID_AMBIENT_BACKCOLOR: + VariantSetLong(res, (long)fs->ambientBackColor); + break; + + case DISPID_AMBIENT_LOCALEID: + VariantSetLong(res, (long)fs->ambientLocale); + break; + + case DISPID_AMBIENT_USERMODE: + VariantSetBool(res, fs->ambientUserMode); + break; + + case DISPID_AMBIENT_SHOWGRABHANDLES: + VariantSetBool(res, fs->ambientShowGrabHandles); + break; + + case DISPID_AMBIENT_SHOWHATCHING: + VariantSetBool(res, fs->ambientShowHatching); + break; + + default: + return DISP_E_MEMBERNOTFOUND; + } + return S_OK; +} + +static BSTR BstrFromVariant(VARIANT* vurl) { + if (vurl->vt & VT_BYREF) { + return *vurl->pbstrVal; + } else { + return vurl->bstrVal; + } +} + +HRESULT HW_DWebBrowserEvents2::Invoke(DISPID dispIdMember, __unused REFIID riid, __unused LCID lcid, WORD flags, + DISPPARAMS* pDispParams, VARIANT* pVarResult, __unused EXCEPINFO* pExcepInfo, + __unused unsigned int* puArgErr) { + if (flags & DISPATCH_PROPERTYGET) { + return DispatchPropGet(dispIdMember, pVarResult); + } + + switch (dispIdMember) { + case DISPID_BEFORENAVIGATE2: { + BSTR url = BstrFromVariant(pDispParams->rgvarg[5].pvarVal); + bool shouldCancel = !fs->htmlWindow->OnBeforeNavigate(url, false); + *pDispParams->rgvarg[0].pboolVal = shouldCancel ? VARIANT_TRUE : VARIANT_FALSE; + break; + } + +#if 0 + case DISPID_PROGRESSCHANGE: + { + long current = pDispParams->rgvarg[1].lVal; + long maximum = pDispParams->rgvarg[0].lVal; + fs->htmlWindow->OnProgressURL(current, maximum); + break; + } +#endif + + case DISPID_DOCUMENTCOMPLETE: { + // TODO: there are complexities related to multi-frame documents. This + // gets called on every frame and we should probably only notify + // on completion of top-level frame. On the other hand, I haven't + // encountered problems related to that yet + BSTR url = BstrFromVariant(pDispParams->rgvarg[0].pvarVal); + fs->htmlWindow->OnDocumentComplete(url); + break; + } + + case DISPID_NAVIGATEERROR: { + // TODO: probably should notify about that too + break; + } + + case DISPID_COMMANDSTATECHANGE: + switch (pDispParams->rgvarg[1].lVal) { + case CSC_NAVIGATEBACK: + fs->htmlWindow->canGoBack = pDispParams->rgvarg[0].boolVal; + break; + case CSC_NAVIGATEFORWARD: + fs->htmlWindow->canGoForward = pDispParams->rgvarg[0].boolVal; + break; + } + break; + + case DISPID_NEWWINDOW3: { + BSTR url = pDispParams->rgvarg[0].bstrVal; + bool shouldCancel = !fs->htmlWindow->OnBeforeNavigate(url, true); + *pDispParams->rgvarg[3].pboolVal = shouldCancel ? VARIANT_TRUE : VARIANT_FALSE; + break; + } + + case DISPID_NEWWINDOW2: + // prior to Windows XP SP2, there's no way of getting the URL + // to be opened, so we have to fail silently + *pDispParams->rgvarg[0].pboolVal = VARIANT_FALSE; + break; + } + + return S_OK; +} + +// IOleWindow +HRESULT HW_IOleInPlaceFrame::GetWindow(HWND* phwnd) { + if (phwnd == nullptr) { + return E_INVALIDARG; + } + *phwnd = fs->hwndParent; + return S_OK; +} + +// IOleInPlaceUIWindow +HRESULT HW_IOleInPlaceFrame::GetBorder(LPRECT lprectBorder) { + if (lprectBorder == nullptr) { + return E_INVALIDARG; + } + return INPLACE_E_NOTOOLSPACE; +} + +HRESULT HW_IOleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pborderwidths) { + if (pborderwidths == nullptr) { + return E_INVALIDARG; + } + return INPLACE_E_NOTOOLSPACE; +} + +// IOleInPlaceSite +HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceActivate() { + fs->inPlaceActive = true; + return S_OK; +} + +HRESULT HW_IOleInPlaceSiteWindowless::OnUIActivate() { + fs->uiActive = true; + return S_OK; +} + +HRESULT HW_IOleInPlaceSiteWindowless::GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, + LPRECT lprcPosRect, LPRECT lprcClipRect, + LPOLEINPLACEFRAMEINFO lpFrameInfo) { + if (ppFrame == nullptr || ppDoc == nullptr || lprcPosRect == nullptr || lprcClipRect == nullptr || + lpFrameInfo == nullptr) { + if (ppFrame != nullptr) { + *ppFrame = nullptr; + } + if (ppDoc != nullptr) { + *ppDoc = nullptr; + } + return E_INVALIDARG; + } + + *ppDoc = *ppFrame = fs->oleInPlaceFrame; + (*ppDoc)->AddRef(); + (*ppFrame)->AddRef(); + + lpFrameInfo->fMDIApp = FALSE; + lpFrameInfo->hwndFrame = fs->hwndParent; + lpFrameInfo->haccel = nullptr; + lpFrameInfo->cAccelEntries = 0; + + return S_OK; +} + +HRESULT HW_IOleInPlaceSiteWindowless::OnUIDeactivate(__unused BOOL fUndoable) { + fs->uiActive = false; + return S_OK; +} + +HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceDeactivate() { + fs->inPlaceActive = false; + return S_OK; +} + +// IOleInPlaceSiteEx +HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceActivateEx(BOOL* pfNoRedraw, __unused DWORD dwFlags) { + if (pfNoRedraw) { + *pfNoRedraw = FALSE; + } + return S_OK; +} + +// IOleInPlaceSiteWindowless +HRESULT HW_IOleInPlaceSiteWindowless::CanWindowlessActivate() { + return fs->supportsWindowlessActivation ? S_OK : S_FALSE; +} + +HRESULT HW_IOleInPlaceSiteWindowless::GetDC(__unused LPCRECT pRect, __unused DWORD grfFlags, HDC* phDC) { + if (phDC == nullptr) { + return E_INVALIDARG; + } + +#if 0 + if (grfFlags & OLEDC_NODRAW) + { + *phDC = mfs->hDCBuffer; + return S_OK; + } + + if (fs->hDCBuffer != nullptr) + return E_UNEXPECTED; +#endif + return E_NOTIMPL; +} + +HRESULT HW_IOleInPlaceSiteWindowless::InvalidateRect(__unused LPCRECT pRect, BOOL fErase) { + ::InvalidateRect(fs->hwndParent, nullptr, fErase); + return S_OK; +} + +// IOleClientSite +HRESULT HW_IOleClientSite::GetContainer(LPOLECONTAINER* ppContainer) { + if (ppContainer == nullptr) { + return E_INVALIDARG; + } + return QueryInterface(IID_IOleContainer, (void**)ppContainer); +} + +// IOleItemContainer +HRESULT HW_IOleItemContainer::GetObject(LPOLESTR pszItem, __unused DWORD dwSpeedNeeded, __unused IBindCtx* pbc, + __unused REFIID riid, void** ppvObject) { + if (pszItem == nullptr) { + return E_INVALIDARG; + } + if (ppvObject == nullptr) { + return E_INVALIDARG; + } + *ppvObject = nullptr; + return MK_E_NOOBJECT; +} + +HRESULT HW_IOleItemContainer::GetObjectStorage(LPOLESTR pszItem, __unused IBindCtx* pbc, __unused REFIID riid, + void** ppvStorage) { + if (pszItem == nullptr) { + return E_INVALIDARG; + } + if (ppvStorage == nullptr) { + return E_INVALIDARG; + } + *ppvStorage = nullptr; + return MK_E_NOOBJECT; +} + +HRESULT HW_IOleItemContainer::IsRunning(LPOLESTR pszItem) { + if (pszItem == nullptr) { + return E_INVALIDARG; + } + return MK_E_NOOBJECT; +} + +// IOleControlSite +HRESULT HW_IOleControlSite::LockInPlaceActive(BOOL fLock) { + fs->inPlaceLocked = (fLock == TRUE); + return S_OK; +} + +HRESULT HW_IOleControlSite::TransformCoords(POINTL* pPtlHimetric, POINTF* pPtfContainer, __unused DWORD dwFlags) { + HRESULT hr = S_OK; + if (pPtlHimetric == nullptr) { + return E_INVALIDARG; + } + if (pPtfContainer == nullptr) { + return E_INVALIDARG; + } + return hr; +} + +// IOleCommandTarget +HRESULT HW_IOleCommandTarget::QueryStatus(__unused const GUID* pguidCmdGroup, __unused ULONG cCmds, OLECMD* prgCmds, + __unused OLECMDTEXT* pCmdTet) { + if (prgCmds == nullptr) { + return E_INVALIDARG; + } + return OLECMDERR_E_UNKNOWNGROUP; +} From 6465a37f7556343e22b10e1996bbb4aeac29ef6f Mon Sep 17 00:00:00 2001 From: Krzysztof Kowalczyk Date: Mon, 18 May 2026 11:18:55 +0200 Subject: [PATCH 6/8] crlf => lf --- src/wingui/HtmlWindow.cpp | 4090 ++++++++++++++++++------------------- 1 file changed, 2045 insertions(+), 2045 deletions(-) diff --git a/src/wingui/HtmlWindow.cpp b/src/wingui/HtmlWindow.cpp index d3f00441d6e5..519afe1132bc 100644 --- a/src/wingui/HtmlWindow.cpp +++ b/src/wingui/HtmlWindow.cpp @@ -1,1345 +1,1345 @@ -/* Copyright 2024 the SumatraPDF project authors (see AUTHORS file). - License: Simplified BSD (see COPYING.BSD) */ - -#include "utils/BaseUtil.h" -#include "utils/Dpi.h" -#include "utils/ScopedWin.h" -#include "utils/WinUtil.h" -#include "utils/GuessFileType.h" - -#include -#include -#include -#include - -#include "HtmlWindow.h" - -// An important (to Sumatra) use case is displaying CHM documents. First we used -// IE's built-in support form CHM documents (using its: protocol -// http://msdn.microsoft.com/en-us/library/aa164814(v=office.10).aspx). -// However, that doesn't work for CHM documents from network drives -// (http://code.google.com/p/sumatrapdf/issues/detail?id=1706) -// To solve that we ended up the following solution: -// * an app can provide html as data in memory. We write the data using custom -// IMoniker implementation with IE's IPersistentMoniker::Load() function. -// This allows us to provide base url which will be used to resolve relative -// links within the html (e.g. to embedded images in tags etc.) -// * We register application-global protocol handler and provide custom IInternetProtocol -// implementation which is called to handle getting content for URLs in that namespace. -// I've decided to over-ride its: protocol for our needs. A protocol unique to our -// code would be better, but completely new protocol don't seem to work with -// IPersistentMoniker::Load() code (I can see our IMoniker::GetDisplayName() (which -// returns the base url) called twice from mshtml/ieframe code but if the returned -// base url doesn't start with protocol that IE already understands, IPersistentMoniker::Load() -// fails) so I was forced to over-ride existing protocol name. -// -// I also tried the approach of implementing IInternetSecurityManager thinking that I can just -// use built-in its: handling and tell IE to trust those links, but it seems that in case -// of its: links for CHM files from network drives, that code isn't even reached. - -// Implementing scrolling: -// Currently we implement scrolling by sending messages simulating user input -// to the browser control window that is responsible for processing those messages. -// It has a benefit of being simple to implement and matching ie's behavior closely. - -// Another option would be to provide scrolling functions to be called by callers -// (e.g. from FrameOnKeydow()) by querying scroll state from IHTMLElement2 and setting -// a new scroll state http://www.codeproject.com/KB/miscctrl/scrollbrowser.aspx -// or using scrollTo() or scrollBy() on IHTMLWindow2: -// http://msdn.microsoft.com/en-us/library/aa741497(v=VS.85).aspx - -// The more advanced ways of interacting with mshtml/ieframe are extremely poorly -// documented so I mostly puzzled it out based on existing open source code that -// does similar things. Some useful resources: - -// Book on ATL: http://369o.com/data/books/atl/index.html, which is -// helpful in understanding basics of COM, has chapter on basics of embedding IE. - -// http://www.codeproject.com/KB/COM/cwebpage.aspx - -// This code is structured in a similar way as wxWindows' -// browser wrapper -// https://github.com/Aegisub/traydict/blob/master/IEHtmlWin.h -// https://github.com/Aegisub/traydict/blob/master/IEHtmlWin.cpp - -// Info about IInternetProtocol: http://www.codeproject.com/KB/IP/DataProtocol.aspx - -// All the ways to load html into mshtml: -// http://qualapps.blogspot.com/2008/10/how-to-load-mshtml-with-data.html - -// how to handle custom protocol like myapp:// -// http://www.nuonsoft.com/blog/2010/04/05/how-to-handle-custom-url-protocols-with-the-microsoft-webbrowser-control/ -// http://www.nuonsoft.com/blog/2010/04/05/how-to-navigate-to-an-anchor-in-the-microsoft-webbrowser-control-when-rendering-html-from-memory/ -// http://www.nuonsoft.com/blog/2010/03/24/how-to-use-the-microsoft-webbrowser-control-to-render-html-from-memory/ - -// http://geekswithblogs.net/dotnetnomad/archive/2008/01/29/119065.aspx - -// Other code that does advanced things with embedding IE or providing it with non-trivial -// interfaces: -// http://osh.codeplex.com/ -// http://code.google.com/p/atc32/source/browse/trunk/WorldWindProject/lib-external/webview/windows/ -// http://code.google.com/p/fidolook/source/browse/trunk/Qm/ui/messageviewwindow.cpp -// http://code.google.com/p/csexwb2/ -// chrome frame: http://codesearch.google.com/#wZuuyuB8jKQ/chromium/src/chrome_frame/chrome_protocol.h -// gears: http://code.google.com/p/gears/ -// http://code.google.com/p/fictionbookeditor/ -// http://code.google.com/p/easymule/ -// http://code.google.com/p/svnprotocolhandler/ (IInternetProtocolInfo implementation) -// https://github.com/facebook/ie-toolbar (also IInternetProtocolInfo implementation) -// http://code.google.com/p/veryie/ -// http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla -// http://www.codeproject.com/Articles/642/Processing-HTML-Forms-From-a-CHtmlView -// https://github.com/salsita/ProtocolLibrary -// https://github.com/salsita/libbhohelper -// https://github.com/salsita/libprothandlers -// http://www.codeproject.com/Articles/1094/The-MFC-CDHtmlDialog-class#xx568889xx -// http://www.codeproject.com/Articles/642/Processing-HTML-Forms-From-a-CHtmlView -// http://www.codeproject.com/Articles/10401/Handling-HTML-Element-Events-in-CHtmlView-and-Reus -// http://www.codeproject.com/Articles/3919/Using-the-WebBrowser-control-simplified - -// https://groups.google.com/forum/#!topic/microsoft.public.inetsdk.programming.mshtml_hosting/jogeNC4NXzU -// https://blog.javascripting.com/2012/11/07/igor-tandetniks-passthrough-app-now-on-github/ - -// Series of articles: -// http://starkravingfinkle.org/blog/2005/04/mshtml-hosting-drawing-on-webbrowser/ -// http://starkravingfinkle.org/blog/2005/04/mshtml-hosting-more-tricks/ -// http://starkravingfinkle.org/blog/2005/02/mshtml-hosting-editing-tricks/ -// http://starkravingfinkle.org/blog/2005/01/mshtml-hosting-more-editing/ -// http://starkravingfinkle.org/blog/2004/12/mshtml-hosting-calling-javascript-from-host/ -// http://starkravingfinkle.org/blog/2004/10/mshtml-hosting-editing/ -// http://starkravingfinkle.org/blog/2004/10/mshtml-hosting-idochostuihandler/ -// http://starkravingfinkle.org/blog/2004/09/mshtml-hosting-odds-ends/ -// http://starkravingfinkle.org/blog/2004/09/mshtml-hosting-building-uis/ -// http://starkravingfinkle.org/blog/2004/08/mshtml-hosting-the-basics/ - -class HW_IOleInPlaceFrame; -class HW_IOleInPlaceSiteWindowless; -class HW_IOleClientSite; -class HW_IOleControlSite; -class HW_IOleCommandTarget; -class HW_IOleItemContainer; -class HW_DWebBrowserEvents2; -class HW_IAdviseSink2; -class HW_IDocHostUIHandler; -class HW_IDropTarget; -class HW_IServiceProvider; - -inline void VariantSetBool(VARIANT* res, bool val) { - res->vt = VT_BOOL; - res->boolVal = val ? VARIANT_TRUE : VARIANT_FALSE; -} - -inline void VariantSetLong(VARIANT* res, long val) { - res->vt = VT_I4; - res->lVal = val; -} - -bool IsBlankUrl(const WCHAR* url) { - return str::EqI(L"about:blank", url); -} - -bool IsBlankUrl(const char* url) { - return str::EqI("about:blank", url); -} - -// HW stands for HtmlWindow -// FrameSite ties together HtmlWindow and all the COM interfaces we need to implement -// to support it -class FrameSite : public IUnknown { - friend class HtmlWindow; - friend class HW_IOleInPlaceFrame; - friend class HW_IOleInPlaceSiteWindowless; - friend class HW_IOleClientSite; - friend class HW_IOleControlSite; - friend class HW_IOleCommandTarget; - friend class HW_IOleItemContainer; - friend class HW_DWebBrowserEvents2; - friend class HW_IAdviseSink2; - friend class HW_IDocHostUIHandler; - friend class HW_IDropTarget; - friend class HW_IServiceProvider; - - public: - explicit FrameSite(HtmlWindow* win); - ~FrameSite(); - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override; - - protected: - LONG refCount = 0; - - HW_IOleInPlaceFrame* oleInPlaceFrame = nullptr; - HW_IOleInPlaceSiteWindowless* oleInPlaceSiteWindowless = nullptr; - HW_IOleClientSite* oleClientSite = nullptr; - HW_IOleControlSite* oleControlSite = nullptr; - HW_IOleCommandTarget* oleCommandTarget = nullptr; - HW_IOleItemContainer* oleItemContainer = nullptr; - HW_DWebBrowserEvents2* hwDWebBrowserEvents2 = nullptr; - HW_IAdviseSink2* adviseSink2 = nullptr; - HW_IDocHostUIHandler* docHostUIHandler = nullptr; - HW_IDropTarget* dropTarget = nullptr; - HW_IServiceProvider* serviceProvider = nullptr; - - HtmlWindow* htmlWindow; - - // HDC m_hDCBuffer; - HWND hwndParent = nullptr; - - bool supportsWindowlessActivation; - bool inPlaceLocked; - bool inPlaceActive; - bool uiActive; - bool isWindowless; - - LCID ambientLocale; - COLORREF ambientForeColor; - COLORREF ambientBackColor; - bool ambientShowHatching; - bool ambientShowGrabHandles; - bool ambientUserMode; - bool ambientAppearance; -}; - -// For simplicity, we just add to the array. We don't bother -// reclaiming ids for deleted windows. I don't expect number -// of HtmlWindow objects created to be so high as to be problematic -// (1 thousand objects is just 4K of memory for the vector) -static Vec gHtmlWindows; - -HtmlWindow* FindHtmlWindowById(int windowId) { - return gHtmlWindows.at(windowId); -} - -static int GenNewWindowId(HtmlWindow* htmlWin) { - int newWindowId = (int)gHtmlWindows.size(); - gHtmlWindows.Append(htmlWin); - ReportIf(htmlWin != FindHtmlWindowById(newWindowId)); - return newWindowId; -} - -static void FreeWindowId(int windowId) { - ReportIf(nullptr == gHtmlWindows.at(windowId)); - gHtmlWindows.at(windowId) = nullptr; -} - -// Re-using its protocol, see comments at the top. -#define HW_PROTO_PREFIX L"its" - -#define HW_PROTO_PREFIXA "its" - -// {F1EC293F-DBBD-4A4B-94F4-FA52BA0BA6EE} -static const GUID CLSID_HW_IInternetProtocol = {0xf1ec293f, - 0xdbbd, - 0x4a4b, - {0x94, 0xf4, 0xfa, 0x52, 0xba, 0xb, 0xa6, 0xee}}; - -class HW_IInternetProtocolInfo : public IInternetProtocolInfo { - public: - HW_IInternetProtocolInfo() = default; - - protected: - virtual ~HW_IInternetProtocolInfo() = default; - - public: - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override; - - // IInternetProtocolInfo - STDMETHODIMP ParseUrl(__unused LPCWSTR pwzUrl, __unused PARSEACTION parseAction, __unused DWORD dwParseFlags, - __unused LPWSTR pwzResult, __unused DWORD cchResult, __unused DWORD* pcchResult, - __unused DWORD dwReserved) override { - return INET_E_DEFAULT_ACTION; - } - - STDMETHODIMP CombineUrl(__unused LPCWSTR pwzBaseUrl, __unused LPCWSTR pwzRelativeUrl, __unused DWORD dwCombineFlags, - __unused LPWSTR pwzResult, __unused DWORD cchResult, __unused DWORD* pcchResult, - __unused DWORD dwReserved) override { - return INET_E_DEFAULT_ACTION; - } - - STDMETHODIMP CompareUrl(__unused LPCWSTR pwzUrl1, __unused LPCWSTR pwzUrl2, - __unused DWORD dwCompareFlags) override { - return INET_E_DEFAULT_ACTION; - } - - STDMETHODIMP QueryInfo(__unused LPCWSTR pwzUrl, __unused QUERYOPTION queryOption, __unused DWORD dwQueryFlags, - __unused LPVOID pBuffer, __unused DWORD cbBuffer, __unused DWORD* pcbBuf, - __unused DWORD dwReserved) override { - return INET_E_DEFAULT_ACTION; - } - - protected: - LONG refCount = 1; -}; - -ULONG STDMETHODCALLTYPE HW_IInternetProtocolInfo::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -STDMETHODIMP HW_IInternetProtocolInfo::QueryInterface(REFIID riid, void** ppv) { - static const QITAB qit[] = {QITABENT(HW_IInternetProtocolInfo, IInternetProtocolInfo), {nullptr}}; - return QISearch(this, qit, riid, ppv); -} - -class HW_IInternetProtocol : public IInternetProtocol { - public: - HW_IInternetProtocol() = default; - - protected: - virtual ~HW_IInternetProtocol() = default; - - public: - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override; - - // IInternetProtocol - STDMETHODIMP Start(LPCWSTR szUrl, IInternetProtocolSink* pIProtSink, IInternetBindInfo* pIBindInfo, DWORD grfSTI, - HANDLE_PTR dwReserved) override; - STDMETHODIMP Continue(__unused PROTOCOLDATA* pStateInfo) override { return S_OK; } - STDMETHODIMP Abort(__unused HRESULT hrReason, __unused DWORD dwOptions) override { return S_OK; } - STDMETHODIMP Terminate(__unused DWORD dwOptions) override { return S_OK; } - STDMETHODIMP Suspend() override { return E_NOTIMPL; } - STDMETHODIMP Resume() override { return E_NOTIMPL; } - STDMETHODIMP Read(void* pv, ULONG cb, ULONG* pcbRead) override; - STDMETHODIMP Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) override; - STDMETHODIMP LockRequest(__unused DWORD dwOptions) override { return S_OK; } - STDMETHODIMP UnlockRequest() override { return S_OK; } - - protected: - LONG refCount = 1; - - // those are filled in Start() and represent data to be sent - // for a given url - ByteSlice data{}; - size_t dataCurrPos = 0; -}; - -ULONG STDMETHODCALLTYPE HW_IInternetProtocol::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -STDMETHODIMP HW_IInternetProtocol::QueryInterface(REFIID riid, void** ppv) { - static const QITAB qit[] = {QITABENT(HW_IInternetProtocol, IInternetProtocol), - QITABENT(HW_IInternetProtocol, IInternetProtocolRoot), - {nullptr}}; - return QISearch(this, qit, riid, ppv); -} - -// given url in the form "its://$htmlWindowId/$urlRest, parses -// out $htmlWindowId and $urlRest. Returns false if url doesn't conform -// to this pattern. -static bool ParseProtoUrl(const WCHAR* url, int* htmlWindowId, AutoFreeWStr* urlRest) { - const WCHAR* rest = str::Parse(url, HW_PROTO_PREFIX L"://%d/%S", htmlWindowId, urlRest); - return rest && !*rest; -} - -// given url in the form "its://$htmlWindowId/$urlRest, parses -// out $htmlWindowId and $urlRest. Returns false if url doesn't conform -// to this pattern. -static bool ParseProtoUrl(const char* url, int* htmlWindowId, AutoFreeStr* urlRest) { - const char* rest = str::Parse(url, HW_PROTO_PREFIXA "://%d/%S", htmlWindowId, urlRest); - return rest && !*rest; -} - -#define kDefaultMimeType "text/html" - -// caller must free() the result -static char* MimeFromUrl(const char* url, const char* imgExt = nullptr) { - const char* ext = str::FindCharLast(url, '.'); - if (!ext) { - return str::Dup(kDefaultMimeType); - } - - if (str::FindChar(ext, ';')) { - // some CHM documents use (image) URLs that are followed by - // a semi-colon and a number after the file's extension - char* newUrl = str::DupTemp(url, str::FindChar(ext, ';') - url); - return MimeFromUrl(newUrl, imgExt); - } - - static const struct { - const char* ext; - const char* mimetype; - } mimeTypes[] = { - {".html", "text/html"}, {".htm", "text/html"}, {".gif", "image/gif"}, - {".png", "image/png"}, {".jpg", "image/jpeg"}, {".jpeg", "image/jpeg"}, - {".bmp", "image/bmp"}, {".css", "text/css"}, {".txt", "text/plain"}, - }; - - for (int i = 0; i < dimof(mimeTypes); i++) { - if (str::EqI(ext, mimeTypes[i].ext)) { - // trust an image's data more than its extension - if (imgExt && !str::Eq(imgExt, mimeTypes[i].ext) && str::StartsWith(mimeTypes[i].mimetype, "image/")) { - for (int j = 0; j < dimof(mimeTypes); j++) { - if (str::Eq(imgExt, mimeTypes[j].ext)) { - return str::Dup(mimeTypes[j].mimetype); - } - } - } - return str::Dup(mimeTypes[i].mimetype); - } - } - - char* contentType = ReadRegStrTemp(HKEY_CLASSES_ROOT, ext, "Content Type"); - if (contentType) { - return str::Dup(contentType); - } - - return str::Dup(kDefaultMimeType); -} - -// TODO: return an error page html in case of errors? -STDMETHODIMP HW_IInternetProtocol::Start(LPCWSTR szUrl, IInternetProtocolSink* pIProtSink, - __unused IInternetBindInfo* pIBindInfo, __unused DWORD grfSTI, - __unused HANDLE_PTR dwReserved) { - // TODO: others seem to return S_OK even if there is no content - // for a URL (unless the PI_PARSE_URL bit is set on grfSTI), - // this does however lead to this HW_IInternetProtocol being - // leaked and to DISPID_DOCUMENTCOMPLETE never being fired - - int htmlWindowId; - AutoFreeWStr urlRest; - bool ok = ParseProtoUrl(szUrl, &htmlWindowId, &urlRest); - if (!ok) { - return INET_E_INVALID_URL; - } - - pIProtSink->ReportProgress(BINDSTATUS_FINDINGRESOURCE, urlRest); - pIProtSink->ReportProgress(BINDSTATUS_CONNECTING, urlRest); - pIProtSink->ReportProgress(BINDSTATUS_SENDINGREQUEST, urlRest); - - HtmlWindow* win = FindHtmlWindowById(htmlWindowId); - // TODO: this now happens due to events happening on HtmlWindow - // used to take a screenshot, so ignore it. Is there a way - // to cancel things and not get her? - // ReportIf(!win); - if (!win) { - return INET_E_OBJECT_NOT_FOUND; - } - if (!win->htmlWinCb) { - return INET_E_OBJECT_NOT_FOUND; - } - char* urlRestA = ToUtf8Temp(urlRest); - data = win->htmlWinCb->GetDataForUrl(urlRestA); - if (data.empty()) { - return INET_E_DATA_NOT_AVAILABLE; - } - - const char* imgExt = GfxFileExtFromData({(u8*)data.data(), data.size()}); - char* mime = MimeFromUrl(urlRestA, imgExt); - WCHAR* mimeW = ToWStrTemp(mime); - str::Free(mime); - pIProtSink->ReportProgress(BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE, mimeW); -#ifdef _WIN64 - // not going to report data in parts for unexpectedly huge webpages - ReportIf(data.size() > ULONG_MAX); -#endif - pIProtSink->ReportData(BSCF_FIRSTDATANOTIFICATION | BSCF_LASTDATANOTIFICATION | BSCF_DATAFULLYAVAILABLE, - (ULONG)data.size(), (ULONG)data.size()); - pIProtSink->ReportResult(S_OK, 200, nullptr); - return S_OK; -} - -STDMETHODIMP HW_IInternetProtocol::Read(void* pv, ULONG cb, ULONG* pcbRead) { - if (data.empty()) { - return S_FALSE; - } - size_t dataAvail = data.size() - dataCurrPos; - if (0 == dataAvail) { - return S_FALSE; - } - ULONG toRead = cb; - if (toRead > dataAvail) { - toRead = (ULONG)dataAvail; - } - u8* dataToRead = data.data() + dataCurrPos; - memcpy(pv, dataToRead, toRead); - dataCurrPos += toRead; - *pcbRead = toRead; - return S_OK; -} - -STDMETHODIMP HW_IInternetProtocol::Seek(LARGE_INTEGER /*dlibMove*/, DWORD /*dwOrigin*/, - ULARGE_INTEGER* /*plibNewPosition*/) { - // doesn't seem to be called - return E_NOTIMPL; -} - -class HW_IInternetProtocolFactory : public IClassFactory { - protected: - virtual ~HW_IInternetProtocolFactory() = default; - - public: - HW_IInternetProtocolFactory() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override; - - // IClassFactory - STDMETHODIMP CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) override; - STDMETHODIMP LockServer(__unused BOOL fLock) override { return S_OK; } - - protected: - LONG refCount = 1; -}; - -STDMETHODIMP_(ULONG) HW_IInternetProtocolFactory::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -STDMETHODIMP HW_IInternetProtocolFactory::QueryInterface(REFIID riid, void** ppv) { - static const QITAB qit[] = {QITABENT(HW_IInternetProtocolFactory, IClassFactory), {nullptr}}; - return QISearch(this, qit, riid, ppv); -} - -STDMETHODIMP HW_IInternetProtocolFactory::CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) { - if (pUnkOuter != nullptr) { - return CLASS_E_NOAGGREGATION; - } - if (riid == IID_IInternetProtocol) { - ScopedComPtr proto(new HW_IInternetProtocol()); - return proto->QueryInterface(riid, ppvObject); - } - if (riid == IID_IInternetProtocolInfo) { - ScopedComPtr proto(new HW_IInternetProtocolInfo()); - return proto->QueryInterface(riid, ppvObject); - } - return E_NOINTERFACE; -} - -static LONG gProtocolFactoryRefCount = 0; -HW_IInternetProtocolFactory* gInternetProtocolFactory = nullptr; - -// Register our protocol so that urlmon will call us for every -// url that starts with HW_PROTO_PREFIX -static void RegisterInternetProtocolFactory() { - LONG val = InterlockedIncrement(&gProtocolFactoryRefCount); - if (val > 1) { - return; - } - - ScopedComPtr internetSession; - HRESULT hr = CoInternetGetSession(0, &internetSession, 0); - ReportIf(FAILED(hr)); - ReportIf(nullptr != gInternetProtocolFactory); - gInternetProtocolFactory = new HW_IInternetProtocolFactory(); - hr = internetSession->RegisterNameSpace(gInternetProtocolFactory, CLSID_HW_IInternetProtocol, HW_PROTO_PREFIX, 0, - nullptr, 0); - ReportIf(FAILED(hr)); -} - -static void UnregisterInternetProtocolFactory() { - LONG val = InterlockedDecrement(&gProtocolFactoryRefCount); - if (val > 0) { - return; - } - ScopedComPtr internetSession; - HRESULT hr = CoInternetGetSession(0, &internetSession, 0); - ReportIf(FAILED(hr)); - internetSession->UnregisterNameSpace(gInternetProtocolFactory, HW_PROTO_PREFIX); - ULONG refCount = gInternetProtocolFactory->Release(); - ReportIf(refCount != 0); - gInternetProtocolFactory = nullptr; -} - -class HW_IOleInPlaceFrame : public IOleInPlaceFrame { - public: - explicit HW_IOleInPlaceFrame(FrameSite* fs) : fs(fs) {} - ~HW_IOleInPlaceFrame() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleWindow - STDMETHODIMP GetWindow(HWND*) override; - STDMETHODIMP ContextSensitiveHelp(BOOL) override { return S_OK; } - - // IOleInPlaceUIWindow - STDMETHODIMP GetBorder(LPRECT) override; - STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS) override; - STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS) override { return S_OK; } - STDMETHODIMP SetActiveObject(IOleInPlaceActiveObject*, LPCOLESTR) override { return S_OK; } - - // IOleInPlaceFrame - STDMETHODIMP InsertMenus(HMENU, LPOLEMENUGROUPWIDTHS) override { return S_OK; } - STDMETHODIMP SetMenu(HMENU, HOLEMENU, HWND) override { return S_OK; } - STDMETHODIMP RemoveMenus(HMENU) override { return S_OK; } - STDMETHODIMP SetStatusText(LPCOLESTR) override { return S_OK; } - STDMETHODIMP EnableModeless(BOOL) override { return S_OK; } - STDMETHODIMP TranslateAccelerator(LPMSG, WORD) { return E_NOTIMPL; } - - protected: - FrameSite* fs; -}; - -class HW_IOleInPlaceSiteWindowless : public IOleInPlaceSiteWindowless { - public: - explicit HW_IOleInPlaceSiteWindowless(FrameSite* fs) : fs(fs) {} - ~HW_IOleInPlaceSiteWindowless() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleWindow - STDMETHODIMP GetWindow(HWND* h) override { return fs->oleInPlaceFrame->GetWindow(h); } - STDMETHODIMP ContextSensitiveHelp(BOOL b) override { return fs->oleInPlaceFrame->ContextSensitiveHelp(b); } - - // IOleInPlaceSite - STDMETHODIMP CanInPlaceActivate() override { return S_OK; } - STDMETHODIMP OnInPlaceActivate() override; - STDMETHODIMP OnUIActivate() override; - STDMETHODIMP GetWindowContext(IOleInPlaceFrame**, IOleInPlaceUIWindow**, LPRECT, LPRECT, - LPOLEINPLACEFRAMEINFO) override; - STDMETHODIMP Scroll(SIZE) override { return S_OK; } - STDMETHODIMP OnUIDeactivate(BOOL) override; - STDMETHODIMP OnInPlaceDeactivate() override; - STDMETHODIMP DiscardUndoState() override { return S_OK; } - STDMETHODIMP DeactivateAndUndo() override { return S_OK; } - STDMETHODIMP OnPosRectChange(LPCRECT) override { return S_OK; } - - // IOleInPlaceSiteEx - STDMETHODIMP OnInPlaceActivateEx(BOOL*, DWORD) override; - STDMETHODIMP OnInPlaceDeactivateEx(BOOL) override { return S_OK; } - STDMETHODIMP RequestUIActivate() override { return S_FALSE; } - - // IOleInPlaceSiteWindowless - STDMETHODIMP CanWindowlessActivate() override; - STDMETHODIMP GetCapture() override { return S_FALSE; } - STDMETHODIMP SetCapture(BOOL) override { return S_FALSE; } - STDMETHODIMP GetFocus() override { return S_OK; } - STDMETHODIMP SetFocus(BOOL) override { return S_OK; } - STDMETHODIMP GetDC(LPCRECT, DWORD, HDC*) override; - STDMETHODIMP ReleaseDC(HDC) override { return E_NOTIMPL; } - STDMETHODIMP InvalidateRect(LPCRECT, BOOL) override; - STDMETHODIMP InvalidateRgn(HRGN, BOOL) override { return E_NOTIMPL; } - STDMETHODIMP ScrollRect(INT, INT, LPCRECT, LPCRECT) override { return E_NOTIMPL; } - STDMETHODIMP AdjustRect(LPRECT) override { return E_NOTIMPL; } - STDMETHODIMP OnDefWindowMessage(UINT, WPARAM, LPARAM, LRESULT*) override { return E_NOTIMPL; } - - protected: - FrameSite* fs; -}; - -class HW_IOleClientSite : public IOleClientSite { - public: - explicit HW_IOleClientSite(FrameSite* fs) : fs(fs) {} - ~HW_IOleClientSite() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleClientSite - STDMETHODIMP SaveObject() override { return S_OK; } - STDMETHODIMP GetMoniker(DWORD, DWORD, IMoniker**) override { return E_NOTIMPL; } - STDMETHODIMP GetContainer(LPOLECONTAINER FAR*) override; - STDMETHODIMP ShowObject() override { return S_OK; } - STDMETHODIMP OnShowWindow(BOOL) override { return S_OK; } - STDMETHODIMP RequestNewObjectLayout() override { return E_NOTIMPL; } - - protected: - FrameSite* fs; -}; - -class HW_IOleControlSite : public IOleControlSite { - public: - explicit HW_IOleControlSite(FrameSite* fs) : fs(fs) {} - ~HW_IOleControlSite() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleControlSite - STDMETHODIMP OnControlInfoChanged() override { return S_OK; } - STDMETHODIMP LockInPlaceActive(BOOL) override; - STDMETHODIMP GetExtendedControl(IDispatch**) override { return E_NOTIMPL; } - STDMETHODIMP TransformCoords(POINTL*, POINTF*, DWORD) override; - STDMETHODIMP TranslateAccelerator(LPMSG, DWORD) { return E_NOTIMPL; } - STDMETHODIMP OnFocus(BOOL) override { return S_OK; } - STDMETHODIMP ShowPropertyFrame() override { return E_NOTIMPL; } - - protected: - FrameSite* fs; -}; - -class HW_IOleCommandTarget : public IOleCommandTarget { - public: - explicit HW_IOleCommandTarget(FrameSite* fs) : fs(fs) {} - ~HW_IOleCommandTarget() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IOleCommandTarget - STDMETHODIMP QueryStatus(const GUID*, ULONG, OLECMD[], OLECMDTEXT*) override; - STDMETHODIMP Exec(const GUID*, DWORD, DWORD, VARIANTARG*, VARIANTARG*) override { return OLECMDERR_E_NOTSUPPORTED; } - - protected: - FrameSite* fs; -}; - -class HW_IOleItemContainer : public IOleItemContainer { - public: - explicit HW_IOleItemContainer(FrameSite* fs) : fs(fs) {} - ~HW_IOleItemContainer() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IParseDisplayName - STDMETHODIMP ParseDisplayName(IBindCtx*, LPOLESTR, ULONG*, IMoniker**) override { return E_NOTIMPL; } - - // IOleContainer - STDMETHODIMP EnumObjects(DWORD, IEnumUnknown**) override { return E_NOTIMPL; } - STDMETHODIMP LockContainer(BOOL) override { return S_OK; } - - // IOleItemContainer - STDMETHODIMP GetObject(LPOLESTR, DWORD, IBindCtx*, REFIID, void**); - STDMETHODIMP GetObjectStorage(LPOLESTR, IBindCtx*, REFIID, void**) override; - STDMETHODIMP IsRunning(LPOLESTR) override; - - protected: - FrameSite* fs; -}; - -class HW_DWebBrowserEvents2 : public DWebBrowserEvents2 { - FrameSite* fs; - - HRESULT DispatchPropGet(DISPID dispIdMember, VARIANT* res); - - public: - explicit HW_DWebBrowserEvents2(FrameSite* fs) : fs(fs) {} - ~HW_DWebBrowserEvents2() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IDispatch - STDMETHODIMP GetIDsOfNames(REFIID, OLECHAR**, unsigned int, LCID, DISPID*) override { return E_NOTIMPL; } - STDMETHODIMP GetTypeInfo(unsigned int, LCID, ITypeInfo**) override { return E_NOTIMPL; } - STDMETHODIMP GetTypeInfoCount(unsigned int*) override { return E_NOTIMPL; } - STDMETHODIMP Invoke(DISPID, REFIID, LCID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*) override; -}; - -class HW_IAdviseSink2 : public IAdviseSink2, public IAdviseSinkEx { - FrameSite* fs; - - public: - explicit HW_IAdviseSink2(FrameSite* fs) : fs(fs) {} - ~HW_IAdviseSink2() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IAdviseSink - void STDMETHODCALLTYPE OnDataChange(FORMATETC*, STGMEDIUM*) override {} - void STDMETHODCALLTYPE OnViewChange(DWORD, LONG) override { - // redraw the control - fs->oleInPlaceSiteWindowless->InvalidateRect(nullptr, FALSE); - } - void STDMETHODCALLTYPE OnRename(IMoniker*) override {} - void STDMETHODCALLTYPE OnSave() override {} - void STDMETHODCALLTYPE OnClose() override {} - - // IAdviseSink2 - void STDMETHODCALLTYPE OnLinkSrcChange(IMoniker*) override {} - - // IAdviseSinkEx - void STDMETHODCALLTYPE OnViewStatusChange(DWORD) override {} -}; - -// http://www.popkistopki.ru/ch09b.shtml -class HW_IDocHostUIHandler : public IDocHostUIHandler { - FrameSite* fs; - - public: - explicit HW_IDocHostUIHandler(FrameSite* fs) : fs(fs) {} - ~HW_IDocHostUIHandler() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IDocHostUIHandler - STDMETHODIMP ShowContextMenu(__unused DWORD dwID, __unused POINT* ppt, __unused IUnknown* pcmdtReserved, - __unused IDispatch* pdispReserved) override { - return S_FALSE; - } - STDMETHODIMP GetHostInfo(DOCHOSTUIINFO* pInfo) override; - STDMETHODIMP ShowUI(__unused DWORD dwID, __unused IOleInPlaceActiveObject* pActiveObject, - __unused IOleCommandTarget* pCommandTarget, __unused IOleInPlaceFrame* pFrame, - __unused IOleInPlaceUIWindow* pDoc) override { - return S_FALSE; - } - STDMETHODIMP HideUI() override { return E_NOTIMPL; } - STDMETHODIMP UpdateUI() override { return E_NOTIMPL; } - STDMETHODIMP EnableModeless(__unused BOOL fEnable) override { return E_NOTIMPL; } - STDMETHODIMP OnDocWindowActivate(__unused BOOL fActivate) override { return E_NOTIMPL; } - STDMETHODIMP OnFrameWindowActivate(__unused BOOL fActivate) override { return E_NOTIMPL; } - STDMETHODIMP ResizeBorder(__unused LPCRECT prcBorder, __unused IOleInPlaceUIWindow* pUIWindow, - __unused BOOL fRameWindow) override { - return E_NOTIMPL; - } - STDMETHODIMP TranslateAccelerator(__unused LPMSG lpMsg, __unused const GUID* pguidCmdGroup, __unused DWORD nCmdID) { - return S_FALSE; - } - STDMETHODIMP GetOptionKeyPath(__unused LPOLESTR* pchKey, __unused DWORD dw) override { return S_FALSE; } - STDMETHODIMP GetDropTarget(__unused IDropTarget* pDropTarget, IDropTarget** ppDropTarget) override { - return fs->QueryInterface(IID_PPV_ARGS(ppDropTarget)); - } - STDMETHODIMP GetExternal(IDispatch** ppDispatch) override { - if (ppDispatch) { - *ppDispatch = nullptr; - } - return S_FALSE; - } - STDMETHODIMP TranslateUrl(__unused DWORD dwTranslate, __unused OLECHAR* pchURLIn, - __unused OLECHAR** ppchURLOut) override { - return S_FALSE; - } - STDMETHODIMP FilterDataObject(__unused IDataObject* pDO, IDataObject** ppDORet) override { - if (ppDORet) { - *ppDORet = nullptr; - } - return S_FALSE; - } -}; - -STDMETHODIMP HW_IDocHostUIHandler::GetHostInfo(DOCHOSTUIINFO* pInfo) { - if (!pInfo) { - return S_FALSE; - } - pInfo->pchHostCss = nullptr; - pInfo->pchHostNS = nullptr; - - // Note: I was hoping that also setting DOCHOSTUIFLAG_SCROLL_NO - // would get rid of vertical scrollbar when not necessary, but alas it - // always removes it - pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER | DOCHOSTUIFLAG_NO3DOUTERBORDER; - pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT; - return S_OK; -} - -class HW_IDropTarget : public IDropTarget { - FrameSite* fs; - - public: - explicit HW_IDropTarget(FrameSite* fs) : fs(fs) {} - ~HW_IDropTarget() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - STDMETHODIMP DragEnter(IDataObject* pDataObj, __unused DWORD grfKeyState, __unused POINTL pt, - DWORD* pdwEffect) override { - HRESULT hr = fs->htmlWindow->OnDragEnter(pDataObj); - if (SUCCEEDED(hr)) { - *pdwEffect = DROPEFFECT_COPY; - } - return hr; - } - STDMETHODIMP DragOver(__unused DWORD grfKeyState, __unused POINTL pt, DWORD* pdwEffect) override { - *pdwEffect = DROPEFFECT_COPY; - return S_OK; - } - STDMETHODIMP DragLeave() override { return S_OK; } - STDMETHODIMP Drop(IDataObject* pDataObj, __unused DWORD grfKeyState, __unused POINTL pt, - DWORD* pdwEffect) override { - *pdwEffect = DROPEFFECT_COPY; - return fs->htmlWindow->OnDragDrop(pDataObj); - } -}; - -#ifndef __IDownloadManager_INTERFACE_DEFINED__ -#define __IDownloadManager_INTERFACE_DEFINED__ - -#define DEFINE_GUID_STATIC(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ - static const GUID name = {l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}} -DEFINE_GUID_STATIC(IID_IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9); -#define SID_SDownloadManager IID_IDownloadManager - -MIDL_INTERFACE("988934A4-064B-11D3-BB80-00104B35E7F9") -IDownloadManager : public IUnknown { - public: - virtual STDMETHODIMP Download(IMoniker __RPC_FAR * pmk, IBindCtx __RPC_FAR * pbc, DWORD dwBindVerb, LONG grfBINDF, - BINDINFO __RPC_FAR * pBindInfo, LPCOLESTR pszHeaders, LPCOLESTR pszRedir, - UINT uiCP) = 0; -}; - -#ifdef __GNUC__ -__CRT_UUID_DECL(IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9) -#endif - -#endif - -class HW_IDownloadManager : public IDownloadManager { - LONG refCount = 1; - - public: - HW_IDownloadManager() = default; - ~HW_IDownloadManager() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppv) override { - static const QITAB qit[] = {QITABENT(HW_IDownloadManager, IDownloadManager), {nullptr}}; - return QISearch(this, qit, riid, ppv); - } - ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } - ULONG STDMETHODCALLTYPE Release() override { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; - } - - // IDownloadManager - STDMETHODIMP Download(IMoniker __RPC_FAR* pmk, IBindCtx __RPC_FAR* pbc, __unused DWORD dwBindVerb, - __unused LONG grfBINDF, __unused BINDINFO __RPC_FAR* pBindInfo, __unused LPCOLESTR pszHeaders, - __unused LPCOLESTR pszRedir, __unused UINT uiCP) override { - LPOLESTR urlToFile; - HRESULT hr = pmk->GetDisplayName(pbc, nullptr, &urlToFile); - if (FAILED(hr)) { - return hr; - } - // parse the URL (only internal its:// URLs are supported) - int htmlWindowId; - AutoFreeWStr urlRest; - bool ok = ParseProtoUrl(urlToFile, &htmlWindowId, &urlRest); - // free urlToFile using IMalloc::Free - IMalloc* pMalloc = nullptr; - if (SUCCEEDED(CoGetMalloc(1, &pMalloc))) { - pMalloc->Free(urlToFile); - } else { - CoTaskMemFree(urlToFile); - } - - if (!ok) { - return INET_E_INVALID_URL; - } - - // fetch the data - HtmlWindow* win = FindHtmlWindowById(htmlWindowId); - if (!win || !win->htmlWinCb) { - return INET_E_OBJECT_NOT_FOUND; - } - char* urlRestA = ToUtf8Temp(urlRest); - auto data = win->htmlWinCb->GetDataForUrl(urlRestA); - if (data.empty()) { - return INET_E_DATA_NOT_AVAILABLE; - } - // ask the UI to let the user save the file - win->htmlWinCb->DownloadData(urlRestA, data); - return S_OK; - } -}; - -class HW_IServiceProvider : public IServiceProvider { - FrameSite* fs; - - public: - explicit HW_IServiceProvider(FrameSite* fs) : fs(fs) {} - ~HW_IServiceProvider() = default; - - // IUnknown - STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } - ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } - ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } - - // IServiceProvider - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** ppv) override { - if (guidService == SID_SDownloadManager) { - ScopedComPtr dm(new HW_IDownloadManager()); - return dm->QueryInterface(riid, ppv); - } - return E_NOINTERFACE; - } -}; - -class HtmlMoniker : public IMoniker { - public: - HtmlMoniker(); - virtual ~HtmlMoniker(); - - HRESULT SetHtml(const ByteSlice&); - HRESULT SetBaseUrl(const WCHAR* baseUrl); - - // IUnknown - STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef() override; - ULONG STDMETHODCALLTYPE Release() override; - - // IMoniker - STDMETHODIMP BindToStorage(IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) override; - STDMETHODIMP GetDisplayName(IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR* ppszDisplayName) override; - STDMETHODIMP BindToObject(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, __unused REFIID riidResult, - __unused void** ppvResult) override { - return E_NOTIMPL; - } - STDMETHODIMP Reduce(__unused IBindCtx* pbc, __unused DWORD dwReduceHowFar, __unused IMoniker** ppmkToLeft, - __unused IMoniker** ppmkReduced) override { - return E_NOTIMPL; - } - STDMETHODIMP ComposeWith(__unused IMoniker* pmkRight, __unused BOOL fOnlyIfNotGeneric, - __unused IMoniker** ppmkComposite) override { - return E_NOTIMPL; - } - STDMETHODIMP Enum(__unused BOOL fForward, __unused IEnumMoniker** ppenumMoniker) override { return E_NOTIMPL; } - STDMETHODIMP IsEqual(__unused IMoniker* pmkOtherMoniker) override { return E_NOTIMPL; } - STDMETHODIMP Hash(__unused DWORD* pdwHash) override { return E_NOTIMPL; } - STDMETHODIMP IsRunning(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, - __unused IMoniker* pmkNewlyRunning) override { - return E_NOTIMPL; - } - STDMETHODIMP GetTimeOfLastChange(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, - __unused FILETIME* pFileTime) override { - return E_NOTIMPL; - } - STDMETHODIMP Inverse(__unused IMoniker** ppmk) override { return E_NOTIMPL; } - STDMETHODIMP CommonPrefixWith(__unused IMoniker* pmkOther, __unused IMoniker** ppmkPrefix) override { - return E_NOTIMPL; - } - STDMETHODIMP RelativePathTo(__unused IMoniker* pmkOther, __unused IMoniker** ppmkRelPath) override { - return E_NOTIMPL; - } - STDMETHODIMP ParseDisplayName(IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, - IMoniker** ppmkOut) override; - STDMETHODIMP IsSystemMoniker(DWORD* pdwMksys) override { - if (!pdwMksys) { - return E_POINTER; - } - *pdwMksys = MKSYS_NONE; - return S_OK; - } - - // IPersistStream methods - STDMETHODIMP Save(__unused IStream* pStm, __unused BOOL fClearDirty) override { return E_NOTIMPL; } - STDMETHODIMP IsDirty() override { return E_NOTIMPL; } - STDMETHODIMP Load(__unused IStream* pStm) override { return E_NOTIMPL; } - STDMETHODIMP GetSizeMax(__unused ULARGE_INTEGER* pcbSize) override { return E_NOTIMPL; } - - // IPersist - STDMETHODIMP GetClassID(__unused CLSID* pClassID) override { return E_NOTIMPL; } - - private: - LONG refCount = 1; - - char* htmlData = nullptr; - IStream* htmlStream = nullptr; - - WCHAR* baseUrl = nullptr; -}; - -HtmlMoniker::HtmlMoniker() = default; - -HtmlMoniker::~HtmlMoniker() { - if (htmlStream) { - htmlStream->Release(); - } - - free(htmlData); - free(baseUrl); -} - -HRESULT HtmlMoniker::SetHtml(const ByteSlice& d) { - free(htmlData); - htmlData = str::Dup(d); - if (htmlStream) { - htmlStream->Release(); - } - htmlStream = CreateStreamFromData({(u8*)htmlData, d.size()}); - return S_OK; -} - -HRESULT HtmlMoniker::SetBaseUrl(const WCHAR* newBaseUrl) { - free(baseUrl); - baseUrl = str::Dup(newBaseUrl); - return S_OK; -} - -STDMETHODIMP HtmlMoniker::BindToStorage(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, REFIID riid, - void** ppvObj) { - LARGE_INTEGER seek{}; - htmlStream->Seek(seek, STREAM_SEEK_SET, nullptr); - return htmlStream->QueryInterface(riid, ppvObj); -} - -static LPOLESTR OleStrDup(const WCHAR* s) { - size_t cb = sizeof(WCHAR) * (str::Len(s) + 1); - LPOLESTR ret = (LPOLESTR)CoTaskMemAlloc(cb); - if (ret) { - memcpy(ret, s, cb); - } - return ret; -} - -STDMETHODIMP HtmlMoniker::GetDisplayName(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, - LPOLESTR* ppszDisplayName) { - if (!ppszDisplayName) { - return E_POINTER; - } - *ppszDisplayName = OleStrDup(baseUrl ? baseUrl : L""); - return *ppszDisplayName ? S_OK : E_OUTOFMEMORY; -} - -STDMETHODIMP HtmlMoniker::ParseDisplayName(__unused IBindCtx* pbc, __unused __unused IMoniker* pmkToLeft, - __unused LPOLESTR pszDisplayName, __unused ULONG* pchEaten, - __unused IMoniker** ppmkOut) { - return E_NOTIMPL; -} - -STDMETHODIMP HtmlMoniker::QueryInterface(REFIID riid, void** ppv) { - static const QITAB qit[] = {QITABENT(HtmlMoniker, IMoniker), - QITABENT(HtmlMoniker, IPersistStream), - QITABENT(HtmlMoniker, IPersist), - {nullptr}}; - return QISearch(this, qit, riid, ppv); -} - -ULONG STDMETHODCALLTYPE HtmlMoniker::AddRef() { - return InterlockedIncrement(&refCount); -} - -ULONG STDMETHODCALLTYPE HtmlMoniker::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -static HWND GetBrowserControlHwnd(HWND hwndControlParent) { - // This is a fragile way to get the actual hwnd of the browser control - // that is responsible for processing keyboard messages (I believe the - // hierarchy might change depending on how the browser control is configured - // e.g. if it has status window etc.). - // But it works for us. - HWND w1 = GetWindow(hwndControlParent, GW_CHILD); - HWND w2 = GetWindow(w1, GW_CHILD); - HWND w3 = GetWindow(w2, GW_CHILD); - return w3; -} - -// WndProc of the window that is a parent hwnd of embedded browser control. -static LRESULT CALLBACK WndProcParent(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { - HtmlWindow* win = (HtmlWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA); - if (!win) { - return DefWindowProc(hwnd, msg, wp, lp); - } - - switch (msg) { - case WM_SIZE: - if (SIZE_MINIMIZED != wp) { - win->OnSize(Size(LOWORD(lp), HIWORD(lp))); - return 0; - } - break; - - // Note: not quite sure why I need this but if we don't swallow WM_MOUSEWHEEL - // messages, we might get infinite recursion. - case WM_MOUSEWHEEL: - case WM_MOUSEHWHEEL: - return 0; - - case WM_PARENTNOTIFY: - if (LOWORD(wp) == WM_LBUTTONDOWN) { - win->OnLButtonDown(); - } - break; - - case WM_DROPFILES: - return ::DefWindowProc(hwnd, msg, wp, lp); - - case WM_VSCROLL: - win->SendMsg(msg, wp, lp); - return 0; - } - return DefWindowProc(hwnd, msg, wp, lp); -} - -static LRESULT CALLBACK WndProcParent2(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, UINT_PTR subclassId, DWORD_PTR data) { - return WndProcParent(hwnd, msg, wp, lp); -} - -void HtmlWindow::SubclassHwnd() { - ReportIf(subclassId); // don't subclass multiple times - subclassId = NextSubclassId(); - BOOL ok = SetWindowSubclass(hwndParent, WndProcParent2, subclassId, (DWORD_PTR)this); - ReportIf(!ok); - SetWindowLongPtr(hwndParent, GWLP_USERDATA, (LONG_PTR)this); -} - -void HtmlWindow::UnsubclassHwnd() { - if (!subclassId) { - return; - } - RemoveWindowSubclass(hwndParent, WndProcParent2, subclassId); - subclassId = 0; -} - -HtmlWindow::HtmlWindow(HWND parent, HtmlWindowCallback* cb) { - ReportIf(!parent); - hwndParent = parent; - htmlWinCb = cb; - RegisterInternetProtocolFactory(); - windowId = GenNewWindowId(this); - zoomDPI = DpiGet(parent); - if (zoomDPI < 96) { - zoomDPI = 96; - } -} - -bool HtmlWindow::CreateBrowser() { - HRESULT hr; - ScopedComPtr p; - if (!p.Create(CLSID_WebBrowser)) { - return false; - } - hr = p->QueryInterface(&viewObject); - if (FAILED(hr)) { - return false; - } - hr = p->QueryInterface(&oleObject); - if (FAILED(hr)) { - return false; - } - - DWORD status; - hr = oleObject->GetMiscStatus(DVASPECT_CONTENT, &status); - if (FAILED(hr)) { - return false; - } - bool setClientSiteFirst = 0 != (status & OLEMISC_SETCLIENTSITEFIRST); - bool invisibleAtRuntime = 0 != (status & OLEMISC_INVISIBLEATRUNTIME); - - FrameSite* fs = new FrameSite(this); - ScopedComPtr fsScope(fs); - - if (setClientSiteFirst) { - oleObject->SetClientSite(fs->oleClientSite); - } - - ScopedComQIPtr psInit(p); - if (psInit) { - hr = psInit->InitNew(); - ReportIf(!SUCCEEDED(hr)); - } - - hr = p->QueryInterface(&oleInPlaceObject); - if (FAILED(hr)) { - return false; - } - hr = oleInPlaceObject->GetWindow(&oleObjectHwnd); - if (FAILED(hr)) { - return false; - } - - ::SetActiveWindow(oleObjectHwnd); - RECT rc = ToRECT(ClientRect(hwndParent)); - - oleInPlaceObject->SetObjectRects(&rc, &rc); - if (!invisibleAtRuntime) { - hr = oleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, nullptr, fs->oleClientSite, 0, hwndParent, &rc); - if (FAILED(hr)) { - return false; - } -#if 0 // is this necessary? - hr = oleObject->DoVerb(OLEIVERB_SHOW, 0, fs->oleClientSite, 0, - hwnd, &rc); -#endif - } - - if (!setClientSiteFirst) { - oleObject->SetClientSite(fs->oleClientSite); - } - - hr = p->QueryInterface(&webBrowser); - if (FAILED(hr)) { - return false; - } - - ScopedComQIPtr cpContainer(p); - if (!cpContainer) { - return false; - } - hr = cpContainer->FindConnectionPoint(DIID_DWebBrowserEvents2, &connectionPoint); - if (FAILED(hr)) { - return false; - } - connectionPoint->Advise(fs->hwDWebBrowserEvents2, &adviseCookie); - - // TODO: disallow accessing any random url? - // webBrowser->put_Offline(VARIANT_TRUE); - - webBrowser->put_MenuBar(VARIANT_FALSE); - webBrowser->put_AddressBar(VARIANT_FALSE); - webBrowser->put_StatusBar(VARIANT_FALSE); - webBrowser->put_ToolBar(VARIANT_FALSE); - webBrowser->put_Silent(VARIANT_TRUE); - - webBrowser->put_RegisterAsBrowser(VARIANT_FALSE); - webBrowser->put_RegisterAsDropTarget(VARIANT_TRUE); - - // TODO: do I need this anymore? - // NavigateToAboutBlank(); - SubclassHwnd(); - - return true; -} - -HtmlWindow* HtmlWindow::Create(HWND hwndParent, HtmlWindowCallback* cb) { - HtmlWindow* htmlWin = new HtmlWindow(hwndParent, cb); - if (!htmlWin->CreateBrowser()) { - delete htmlWin; - return nullptr; - } - return htmlWin; -} - +/* Copyright 2024 the SumatraPDF project authors (see AUTHORS file). + License: Simplified BSD (see COPYING.BSD) */ + +#include "utils/BaseUtil.h" +#include "utils/Dpi.h" +#include "utils/ScopedWin.h" +#include "utils/WinUtil.h" +#include "utils/GuessFileType.h" + +#include +#include +#include +#include + +#include "HtmlWindow.h" + +// An important (to Sumatra) use case is displaying CHM documents. First we used +// IE's built-in support form CHM documents (using its: protocol +// http://msdn.microsoft.com/en-us/library/aa164814(v=office.10).aspx). +// However, that doesn't work for CHM documents from network drives +// (http://code.google.com/p/sumatrapdf/issues/detail?id=1706) +// To solve that we ended up the following solution: +// * an app can provide html as data in memory. We write the data using custom +// IMoniker implementation with IE's IPersistentMoniker::Load() function. +// This allows us to provide base url which will be used to resolve relative +// links within the html (e.g. to embedded images in tags etc.) +// * We register application-global protocol handler and provide custom IInternetProtocol +// implementation which is called to handle getting content for URLs in that namespace. +// I've decided to over-ride its: protocol for our needs. A protocol unique to our +// code would be better, but completely new protocol don't seem to work with +// IPersistentMoniker::Load() code (I can see our IMoniker::GetDisplayName() (which +// returns the base url) called twice from mshtml/ieframe code but if the returned +// base url doesn't start with protocol that IE already understands, IPersistentMoniker::Load() +// fails) so I was forced to over-ride existing protocol name. +// +// I also tried the approach of implementing IInternetSecurityManager thinking that I can just +// use built-in its: handling and tell IE to trust those links, but it seems that in case +// of its: links for CHM files from network drives, that code isn't even reached. + +// Implementing scrolling: +// Currently we implement scrolling by sending messages simulating user input +// to the browser control window that is responsible for processing those messages. +// It has a benefit of being simple to implement and matching ie's behavior closely. + +// Another option would be to provide scrolling functions to be called by callers +// (e.g. from FrameOnKeydow()) by querying scroll state from IHTMLElement2 and setting +// a new scroll state http://www.codeproject.com/KB/miscctrl/scrollbrowser.aspx +// or using scrollTo() or scrollBy() on IHTMLWindow2: +// http://msdn.microsoft.com/en-us/library/aa741497(v=VS.85).aspx + +// The more advanced ways of interacting with mshtml/ieframe are extremely poorly +// documented so I mostly puzzled it out based on existing open source code that +// does similar things. Some useful resources: + +// Book on ATL: http://369o.com/data/books/atl/index.html, which is +// helpful in understanding basics of COM, has chapter on basics of embedding IE. + +// http://www.codeproject.com/KB/COM/cwebpage.aspx + +// This code is structured in a similar way as wxWindows' +// browser wrapper +// https://github.com/Aegisub/traydict/blob/master/IEHtmlWin.h +// https://github.com/Aegisub/traydict/blob/master/IEHtmlWin.cpp + +// Info about IInternetProtocol: http://www.codeproject.com/KB/IP/DataProtocol.aspx + +// All the ways to load html into mshtml: +// http://qualapps.blogspot.com/2008/10/how-to-load-mshtml-with-data.html + +// how to handle custom protocol like myapp:// +// http://www.nuonsoft.com/blog/2010/04/05/how-to-handle-custom-url-protocols-with-the-microsoft-webbrowser-control/ +// http://www.nuonsoft.com/blog/2010/04/05/how-to-navigate-to-an-anchor-in-the-microsoft-webbrowser-control-when-rendering-html-from-memory/ +// http://www.nuonsoft.com/blog/2010/03/24/how-to-use-the-microsoft-webbrowser-control-to-render-html-from-memory/ + +// http://geekswithblogs.net/dotnetnomad/archive/2008/01/29/119065.aspx + +// Other code that does advanced things with embedding IE or providing it with non-trivial +// interfaces: +// http://osh.codeplex.com/ +// http://code.google.com/p/atc32/source/browse/trunk/WorldWindProject/lib-external/webview/windows/ +// http://code.google.com/p/fidolook/source/browse/trunk/Qm/ui/messageviewwindow.cpp +// http://code.google.com/p/csexwb2/ +// chrome frame: http://codesearch.google.com/#wZuuyuB8jKQ/chromium/src/chrome_frame/chrome_protocol.h +// gears: http://code.google.com/p/gears/ +// http://code.google.com/p/fictionbookeditor/ +// http://code.google.com/p/easymule/ +// http://code.google.com/p/svnprotocolhandler/ (IInternetProtocolInfo implementation) +// https://github.com/facebook/ie-toolbar (also IInternetProtocolInfo implementation) +// http://code.google.com/p/veryie/ +// http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla +// http://www.codeproject.com/Articles/642/Processing-HTML-Forms-From-a-CHtmlView +// https://github.com/salsita/ProtocolLibrary +// https://github.com/salsita/libbhohelper +// https://github.com/salsita/libprothandlers +// http://www.codeproject.com/Articles/1094/The-MFC-CDHtmlDialog-class#xx568889xx +// http://www.codeproject.com/Articles/642/Processing-HTML-Forms-From-a-CHtmlView +// http://www.codeproject.com/Articles/10401/Handling-HTML-Element-Events-in-CHtmlView-and-Reus +// http://www.codeproject.com/Articles/3919/Using-the-WebBrowser-control-simplified + +// https://groups.google.com/forum/#!topic/microsoft.public.inetsdk.programming.mshtml_hosting/jogeNC4NXzU +// https://blog.javascripting.com/2012/11/07/igor-tandetniks-passthrough-app-now-on-github/ + +// Series of articles: +// http://starkravingfinkle.org/blog/2005/04/mshtml-hosting-drawing-on-webbrowser/ +// http://starkravingfinkle.org/blog/2005/04/mshtml-hosting-more-tricks/ +// http://starkravingfinkle.org/blog/2005/02/mshtml-hosting-editing-tricks/ +// http://starkravingfinkle.org/blog/2005/01/mshtml-hosting-more-editing/ +// http://starkravingfinkle.org/blog/2004/12/mshtml-hosting-calling-javascript-from-host/ +// http://starkravingfinkle.org/blog/2004/10/mshtml-hosting-editing/ +// http://starkravingfinkle.org/blog/2004/10/mshtml-hosting-idochostuihandler/ +// http://starkravingfinkle.org/blog/2004/09/mshtml-hosting-odds-ends/ +// http://starkravingfinkle.org/blog/2004/09/mshtml-hosting-building-uis/ +// http://starkravingfinkle.org/blog/2004/08/mshtml-hosting-the-basics/ + +class HW_IOleInPlaceFrame; +class HW_IOleInPlaceSiteWindowless; +class HW_IOleClientSite; +class HW_IOleControlSite; +class HW_IOleCommandTarget; +class HW_IOleItemContainer; +class HW_DWebBrowserEvents2; +class HW_IAdviseSink2; +class HW_IDocHostUIHandler; +class HW_IDropTarget; +class HW_IServiceProvider; + +inline void VariantSetBool(VARIANT* res, bool val) { + res->vt = VT_BOOL; + res->boolVal = val ? VARIANT_TRUE : VARIANT_FALSE; +} + +inline void VariantSetLong(VARIANT* res, long val) { + res->vt = VT_I4; + res->lVal = val; +} + +bool IsBlankUrl(const WCHAR* url) { + return str::EqI(L"about:blank", url); +} + +bool IsBlankUrl(const char* url) { + return str::EqI("about:blank", url); +} + +// HW stands for HtmlWindow +// FrameSite ties together HtmlWindow and all the COM interfaces we need to implement +// to support it +class FrameSite : public IUnknown { + friend class HtmlWindow; + friend class HW_IOleInPlaceFrame; + friend class HW_IOleInPlaceSiteWindowless; + friend class HW_IOleClientSite; + friend class HW_IOleControlSite; + friend class HW_IOleCommandTarget; + friend class HW_IOleItemContainer; + friend class HW_DWebBrowserEvents2; + friend class HW_IAdviseSink2; + friend class HW_IDocHostUIHandler; + friend class HW_IDropTarget; + friend class HW_IServiceProvider; + + public: + explicit FrameSite(HtmlWindow* win); + ~FrameSite(); + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override; + + protected: + LONG refCount = 0; + + HW_IOleInPlaceFrame* oleInPlaceFrame = nullptr; + HW_IOleInPlaceSiteWindowless* oleInPlaceSiteWindowless = nullptr; + HW_IOleClientSite* oleClientSite = nullptr; + HW_IOleControlSite* oleControlSite = nullptr; + HW_IOleCommandTarget* oleCommandTarget = nullptr; + HW_IOleItemContainer* oleItemContainer = nullptr; + HW_DWebBrowserEvents2* hwDWebBrowserEvents2 = nullptr; + HW_IAdviseSink2* adviseSink2 = nullptr; + HW_IDocHostUIHandler* docHostUIHandler = nullptr; + HW_IDropTarget* dropTarget = nullptr; + HW_IServiceProvider* serviceProvider = nullptr; + + HtmlWindow* htmlWindow; + + // HDC m_hDCBuffer; + HWND hwndParent = nullptr; + + bool supportsWindowlessActivation; + bool inPlaceLocked; + bool inPlaceActive; + bool uiActive; + bool isWindowless; + + LCID ambientLocale; + COLORREF ambientForeColor; + COLORREF ambientBackColor; + bool ambientShowHatching; + bool ambientShowGrabHandles; + bool ambientUserMode; + bool ambientAppearance; +}; + +// For simplicity, we just add to the array. We don't bother +// reclaiming ids for deleted windows. I don't expect number +// of HtmlWindow objects created to be so high as to be problematic +// (1 thousand objects is just 4K of memory for the vector) +static Vec gHtmlWindows; + +HtmlWindow* FindHtmlWindowById(int windowId) { + return gHtmlWindows.at(windowId); +} + +static int GenNewWindowId(HtmlWindow* htmlWin) { + int newWindowId = (int)gHtmlWindows.size(); + gHtmlWindows.Append(htmlWin); + ReportIf(htmlWin != FindHtmlWindowById(newWindowId)); + return newWindowId; +} + +static void FreeWindowId(int windowId) { + ReportIf(nullptr == gHtmlWindows.at(windowId)); + gHtmlWindows.at(windowId) = nullptr; +} + +// Re-using its protocol, see comments at the top. +#define HW_PROTO_PREFIX L"its" + +#define HW_PROTO_PREFIXA "its" + +// {F1EC293F-DBBD-4A4B-94F4-FA52BA0BA6EE} +static const GUID CLSID_HW_IInternetProtocol = {0xf1ec293f, + 0xdbbd, + 0x4a4b, + {0x94, 0xf4, 0xfa, 0x52, 0xba, 0xb, 0xa6, 0xee}}; + +class HW_IInternetProtocolInfo : public IInternetProtocolInfo { + public: + HW_IInternetProtocolInfo() = default; + + protected: + virtual ~HW_IInternetProtocolInfo() = default; + + public: + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override; + + // IInternetProtocolInfo + STDMETHODIMP ParseUrl(__unused LPCWSTR pwzUrl, __unused PARSEACTION parseAction, __unused DWORD dwParseFlags, + __unused LPWSTR pwzResult, __unused DWORD cchResult, __unused DWORD* pcchResult, + __unused DWORD dwReserved) override { + return INET_E_DEFAULT_ACTION; + } + + STDMETHODIMP CombineUrl(__unused LPCWSTR pwzBaseUrl, __unused LPCWSTR pwzRelativeUrl, __unused DWORD dwCombineFlags, + __unused LPWSTR pwzResult, __unused DWORD cchResult, __unused DWORD* pcchResult, + __unused DWORD dwReserved) override { + return INET_E_DEFAULT_ACTION; + } + + STDMETHODIMP CompareUrl(__unused LPCWSTR pwzUrl1, __unused LPCWSTR pwzUrl2, + __unused DWORD dwCompareFlags) override { + return INET_E_DEFAULT_ACTION; + } + + STDMETHODIMP QueryInfo(__unused LPCWSTR pwzUrl, __unused QUERYOPTION queryOption, __unused DWORD dwQueryFlags, + __unused LPVOID pBuffer, __unused DWORD cbBuffer, __unused DWORD* pcbBuf, + __unused DWORD dwReserved) override { + return INET_E_DEFAULT_ACTION; + } + + protected: + LONG refCount = 1; +}; + +ULONG STDMETHODCALLTYPE HW_IInternetProtocolInfo::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +STDMETHODIMP HW_IInternetProtocolInfo::QueryInterface(REFIID riid, void** ppv) { + static const QITAB qit[] = {QITABENT(HW_IInternetProtocolInfo, IInternetProtocolInfo), {nullptr}}; + return QISearch(this, qit, riid, ppv); +} + +class HW_IInternetProtocol : public IInternetProtocol { + public: + HW_IInternetProtocol() = default; + + protected: + virtual ~HW_IInternetProtocol() = default; + + public: + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override; + + // IInternetProtocol + STDMETHODIMP Start(LPCWSTR szUrl, IInternetProtocolSink* pIProtSink, IInternetBindInfo* pIBindInfo, DWORD grfSTI, + HANDLE_PTR dwReserved) override; + STDMETHODIMP Continue(__unused PROTOCOLDATA* pStateInfo) override { return S_OK; } + STDMETHODIMP Abort(__unused HRESULT hrReason, __unused DWORD dwOptions) override { return S_OK; } + STDMETHODIMP Terminate(__unused DWORD dwOptions) override { return S_OK; } + STDMETHODIMP Suspend() override { return E_NOTIMPL; } + STDMETHODIMP Resume() override { return E_NOTIMPL; } + STDMETHODIMP Read(void* pv, ULONG cb, ULONG* pcbRead) override; + STDMETHODIMP Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) override; + STDMETHODIMP LockRequest(__unused DWORD dwOptions) override { return S_OK; } + STDMETHODIMP UnlockRequest() override { return S_OK; } + + protected: + LONG refCount = 1; + + // those are filled in Start() and represent data to be sent + // for a given url + ByteSlice data{}; + size_t dataCurrPos = 0; +}; + +ULONG STDMETHODCALLTYPE HW_IInternetProtocol::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +STDMETHODIMP HW_IInternetProtocol::QueryInterface(REFIID riid, void** ppv) { + static const QITAB qit[] = {QITABENT(HW_IInternetProtocol, IInternetProtocol), + QITABENT(HW_IInternetProtocol, IInternetProtocolRoot), + {nullptr}}; + return QISearch(this, qit, riid, ppv); +} + +// given url in the form "its://$htmlWindowId/$urlRest, parses +// out $htmlWindowId and $urlRest. Returns false if url doesn't conform +// to this pattern. +static bool ParseProtoUrl(const WCHAR* url, int* htmlWindowId, AutoFreeWStr* urlRest) { + const WCHAR* rest = str::Parse(url, HW_PROTO_PREFIX L"://%d/%S", htmlWindowId, urlRest); + return rest && !*rest; +} + +// given url in the form "its://$htmlWindowId/$urlRest, parses +// out $htmlWindowId and $urlRest. Returns false if url doesn't conform +// to this pattern. +static bool ParseProtoUrl(const char* url, int* htmlWindowId, AutoFreeStr* urlRest) { + const char* rest = str::Parse(url, HW_PROTO_PREFIXA "://%d/%S", htmlWindowId, urlRest); + return rest && !*rest; +} + +#define kDefaultMimeType "text/html" + +// caller must free() the result +static char* MimeFromUrl(const char* url, const char* imgExt = nullptr) { + const char* ext = str::FindCharLast(url, '.'); + if (!ext) { + return str::Dup(kDefaultMimeType); + } + + if (str::FindChar(ext, ';')) { + // some CHM documents use (image) URLs that are followed by + // a semi-colon and a number after the file's extension + char* newUrl = str::DupTemp(url, str::FindChar(ext, ';') - url); + return MimeFromUrl(newUrl, imgExt); + } + + static const struct { + const char* ext; + const char* mimetype; + } mimeTypes[] = { + {".html", "text/html"}, {".htm", "text/html"}, {".gif", "image/gif"}, + {".png", "image/png"}, {".jpg", "image/jpeg"}, {".jpeg", "image/jpeg"}, + {".bmp", "image/bmp"}, {".css", "text/css"}, {".txt", "text/plain"}, + }; + + for (int i = 0; i < dimof(mimeTypes); i++) { + if (str::EqI(ext, mimeTypes[i].ext)) { + // trust an image's data more than its extension + if (imgExt && !str::Eq(imgExt, mimeTypes[i].ext) && str::StartsWith(mimeTypes[i].mimetype, "image/")) { + for (int j = 0; j < dimof(mimeTypes); j++) { + if (str::Eq(imgExt, mimeTypes[j].ext)) { + return str::Dup(mimeTypes[j].mimetype); + } + } + } + return str::Dup(mimeTypes[i].mimetype); + } + } + + char* contentType = ReadRegStrTemp(HKEY_CLASSES_ROOT, ext, "Content Type"); + if (contentType) { + return str::Dup(contentType); + } + + return str::Dup(kDefaultMimeType); +} + +// TODO: return an error page html in case of errors? +STDMETHODIMP HW_IInternetProtocol::Start(LPCWSTR szUrl, IInternetProtocolSink* pIProtSink, + __unused IInternetBindInfo* pIBindInfo, __unused DWORD grfSTI, + __unused HANDLE_PTR dwReserved) { + // TODO: others seem to return S_OK even if there is no content + // for a URL (unless the PI_PARSE_URL bit is set on grfSTI), + // this does however lead to this HW_IInternetProtocol being + // leaked and to DISPID_DOCUMENTCOMPLETE never being fired + + int htmlWindowId; + AutoFreeWStr urlRest; + bool ok = ParseProtoUrl(szUrl, &htmlWindowId, &urlRest); + if (!ok) { + return INET_E_INVALID_URL; + } + + pIProtSink->ReportProgress(BINDSTATUS_FINDINGRESOURCE, urlRest); + pIProtSink->ReportProgress(BINDSTATUS_CONNECTING, urlRest); + pIProtSink->ReportProgress(BINDSTATUS_SENDINGREQUEST, urlRest); + + HtmlWindow* win = FindHtmlWindowById(htmlWindowId); + // TODO: this now happens due to events happening on HtmlWindow + // used to take a screenshot, so ignore it. Is there a way + // to cancel things and not get her? + // ReportIf(!win); + if (!win) { + return INET_E_OBJECT_NOT_FOUND; + } + if (!win->htmlWinCb) { + return INET_E_OBJECT_NOT_FOUND; + } + char* urlRestA = ToUtf8Temp(urlRest); + data = win->htmlWinCb->GetDataForUrl(urlRestA); + if (data.empty()) { + return INET_E_DATA_NOT_AVAILABLE; + } + + const char* imgExt = GfxFileExtFromData({(u8*)data.data(), data.size()}); + char* mime = MimeFromUrl(urlRestA, imgExt); + WCHAR* mimeW = ToWStrTemp(mime); + str::Free(mime); + pIProtSink->ReportProgress(BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE, mimeW); +#ifdef _WIN64 + // not going to report data in parts for unexpectedly huge webpages + ReportIf(data.size() > ULONG_MAX); +#endif + pIProtSink->ReportData(BSCF_FIRSTDATANOTIFICATION | BSCF_LASTDATANOTIFICATION | BSCF_DATAFULLYAVAILABLE, + (ULONG)data.size(), (ULONG)data.size()); + pIProtSink->ReportResult(S_OK, 200, nullptr); + return S_OK; +} + +STDMETHODIMP HW_IInternetProtocol::Read(void* pv, ULONG cb, ULONG* pcbRead) { + if (data.empty()) { + return S_FALSE; + } + size_t dataAvail = data.size() - dataCurrPos; + if (0 == dataAvail) { + return S_FALSE; + } + ULONG toRead = cb; + if (toRead > dataAvail) { + toRead = (ULONG)dataAvail; + } + u8* dataToRead = data.data() + dataCurrPos; + memcpy(pv, dataToRead, toRead); + dataCurrPos += toRead; + *pcbRead = toRead; + return S_OK; +} + +STDMETHODIMP HW_IInternetProtocol::Seek(LARGE_INTEGER /*dlibMove*/, DWORD /*dwOrigin*/, + ULARGE_INTEGER* /*plibNewPosition*/) { + // doesn't seem to be called + return E_NOTIMPL; +} + +class HW_IInternetProtocolFactory : public IClassFactory { + protected: + virtual ~HW_IInternetProtocolFactory() = default; + + public: + HW_IInternetProtocolFactory() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override; + + // IClassFactory + STDMETHODIMP CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) override; + STDMETHODIMP LockServer(__unused BOOL fLock) override { return S_OK; } + + protected: + LONG refCount = 1; +}; + +STDMETHODIMP_(ULONG) HW_IInternetProtocolFactory::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +STDMETHODIMP HW_IInternetProtocolFactory::QueryInterface(REFIID riid, void** ppv) { + static const QITAB qit[] = {QITABENT(HW_IInternetProtocolFactory, IClassFactory), {nullptr}}; + return QISearch(this, qit, riid, ppv); +} + +STDMETHODIMP HW_IInternetProtocolFactory::CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) { + if (pUnkOuter != nullptr) { + return CLASS_E_NOAGGREGATION; + } + if (riid == IID_IInternetProtocol) { + ScopedComPtr proto(new HW_IInternetProtocol()); + return proto->QueryInterface(riid, ppvObject); + } + if (riid == IID_IInternetProtocolInfo) { + ScopedComPtr proto(new HW_IInternetProtocolInfo()); + return proto->QueryInterface(riid, ppvObject); + } + return E_NOINTERFACE; +} + +static LONG gProtocolFactoryRefCount = 0; +HW_IInternetProtocolFactory* gInternetProtocolFactory = nullptr; + +// Register our protocol so that urlmon will call us for every +// url that starts with HW_PROTO_PREFIX +static void RegisterInternetProtocolFactory() { + LONG val = InterlockedIncrement(&gProtocolFactoryRefCount); + if (val > 1) { + return; + } + + ScopedComPtr internetSession; + HRESULT hr = CoInternetGetSession(0, &internetSession, 0); + ReportIf(FAILED(hr)); + ReportIf(nullptr != gInternetProtocolFactory); + gInternetProtocolFactory = new HW_IInternetProtocolFactory(); + hr = internetSession->RegisterNameSpace(gInternetProtocolFactory, CLSID_HW_IInternetProtocol, HW_PROTO_PREFIX, 0, + nullptr, 0); + ReportIf(FAILED(hr)); +} + +static void UnregisterInternetProtocolFactory() { + LONG val = InterlockedDecrement(&gProtocolFactoryRefCount); + if (val > 0) { + return; + } + ScopedComPtr internetSession; + HRESULT hr = CoInternetGetSession(0, &internetSession, 0); + ReportIf(FAILED(hr)); + internetSession->UnregisterNameSpace(gInternetProtocolFactory, HW_PROTO_PREFIX); + ULONG refCount = gInternetProtocolFactory->Release(); + ReportIf(refCount != 0); + gInternetProtocolFactory = nullptr; +} + +class HW_IOleInPlaceFrame : public IOleInPlaceFrame { + public: + explicit HW_IOleInPlaceFrame(FrameSite* fs) : fs(fs) {} + ~HW_IOleInPlaceFrame() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleWindow + STDMETHODIMP GetWindow(HWND*) override; + STDMETHODIMP ContextSensitiveHelp(BOOL) override { return S_OK; } + + // IOleInPlaceUIWindow + STDMETHODIMP GetBorder(LPRECT) override; + STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS) override; + STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS) override { return S_OK; } + STDMETHODIMP SetActiveObject(IOleInPlaceActiveObject*, LPCOLESTR) override { return S_OK; } + + // IOleInPlaceFrame + STDMETHODIMP InsertMenus(HMENU, LPOLEMENUGROUPWIDTHS) override { return S_OK; } + STDMETHODIMP SetMenu(HMENU, HOLEMENU, HWND) override { return S_OK; } + STDMETHODIMP RemoveMenus(HMENU) override { return S_OK; } + STDMETHODIMP SetStatusText(LPCOLESTR) override { return S_OK; } + STDMETHODIMP EnableModeless(BOOL) override { return S_OK; } + STDMETHODIMP TranslateAccelerator(LPMSG, WORD) { return E_NOTIMPL; } + + protected: + FrameSite* fs; +}; + +class HW_IOleInPlaceSiteWindowless : public IOleInPlaceSiteWindowless { + public: + explicit HW_IOleInPlaceSiteWindowless(FrameSite* fs) : fs(fs) {} + ~HW_IOleInPlaceSiteWindowless() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleWindow + STDMETHODIMP GetWindow(HWND* h) override { return fs->oleInPlaceFrame->GetWindow(h); } + STDMETHODIMP ContextSensitiveHelp(BOOL b) override { return fs->oleInPlaceFrame->ContextSensitiveHelp(b); } + + // IOleInPlaceSite + STDMETHODIMP CanInPlaceActivate() override { return S_OK; } + STDMETHODIMP OnInPlaceActivate() override; + STDMETHODIMP OnUIActivate() override; + STDMETHODIMP GetWindowContext(IOleInPlaceFrame**, IOleInPlaceUIWindow**, LPRECT, LPRECT, + LPOLEINPLACEFRAMEINFO) override; + STDMETHODIMP Scroll(SIZE) override { return S_OK; } + STDMETHODIMP OnUIDeactivate(BOOL) override; + STDMETHODIMP OnInPlaceDeactivate() override; + STDMETHODIMP DiscardUndoState() override { return S_OK; } + STDMETHODIMP DeactivateAndUndo() override { return S_OK; } + STDMETHODIMP OnPosRectChange(LPCRECT) override { return S_OK; } + + // IOleInPlaceSiteEx + STDMETHODIMP OnInPlaceActivateEx(BOOL*, DWORD) override; + STDMETHODIMP OnInPlaceDeactivateEx(BOOL) override { return S_OK; } + STDMETHODIMP RequestUIActivate() override { return S_FALSE; } + + // IOleInPlaceSiteWindowless + STDMETHODIMP CanWindowlessActivate() override; + STDMETHODIMP GetCapture() override { return S_FALSE; } + STDMETHODIMP SetCapture(BOOL) override { return S_FALSE; } + STDMETHODIMP GetFocus() override { return S_OK; } + STDMETHODIMP SetFocus(BOOL) override { return S_OK; } + STDMETHODIMP GetDC(LPCRECT, DWORD, HDC*) override; + STDMETHODIMP ReleaseDC(HDC) override { return E_NOTIMPL; } + STDMETHODIMP InvalidateRect(LPCRECT, BOOL) override; + STDMETHODIMP InvalidateRgn(HRGN, BOOL) override { return E_NOTIMPL; } + STDMETHODIMP ScrollRect(INT, INT, LPCRECT, LPCRECT) override { return E_NOTIMPL; } + STDMETHODIMP AdjustRect(LPRECT) override { return E_NOTIMPL; } + STDMETHODIMP OnDefWindowMessage(UINT, WPARAM, LPARAM, LRESULT*) override { return E_NOTIMPL; } + + protected: + FrameSite* fs; +}; + +class HW_IOleClientSite : public IOleClientSite { + public: + explicit HW_IOleClientSite(FrameSite* fs) : fs(fs) {} + ~HW_IOleClientSite() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleClientSite + STDMETHODIMP SaveObject() override { return S_OK; } + STDMETHODIMP GetMoniker(DWORD, DWORD, IMoniker**) override { return E_NOTIMPL; } + STDMETHODIMP GetContainer(LPOLECONTAINER FAR*) override; + STDMETHODIMP ShowObject() override { return S_OK; } + STDMETHODIMP OnShowWindow(BOOL) override { return S_OK; } + STDMETHODIMP RequestNewObjectLayout() override { return E_NOTIMPL; } + + protected: + FrameSite* fs; +}; + +class HW_IOleControlSite : public IOleControlSite { + public: + explicit HW_IOleControlSite(FrameSite* fs) : fs(fs) {} + ~HW_IOleControlSite() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleControlSite + STDMETHODIMP OnControlInfoChanged() override { return S_OK; } + STDMETHODIMP LockInPlaceActive(BOOL) override; + STDMETHODIMP GetExtendedControl(IDispatch**) override { return E_NOTIMPL; } + STDMETHODIMP TransformCoords(POINTL*, POINTF*, DWORD) override; + STDMETHODIMP TranslateAccelerator(LPMSG, DWORD) { return E_NOTIMPL; } + STDMETHODIMP OnFocus(BOOL) override { return S_OK; } + STDMETHODIMP ShowPropertyFrame() override { return E_NOTIMPL; } + + protected: + FrameSite* fs; +}; + +class HW_IOleCommandTarget : public IOleCommandTarget { + public: + explicit HW_IOleCommandTarget(FrameSite* fs) : fs(fs) {} + ~HW_IOleCommandTarget() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IOleCommandTarget + STDMETHODIMP QueryStatus(const GUID*, ULONG, OLECMD[], OLECMDTEXT*) override; + STDMETHODIMP Exec(const GUID*, DWORD, DWORD, VARIANTARG*, VARIANTARG*) override { return OLECMDERR_E_NOTSUPPORTED; } + + protected: + FrameSite* fs; +}; + +class HW_IOleItemContainer : public IOleItemContainer { + public: + explicit HW_IOleItemContainer(FrameSite* fs) : fs(fs) {} + ~HW_IOleItemContainer() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IParseDisplayName + STDMETHODIMP ParseDisplayName(IBindCtx*, LPOLESTR, ULONG*, IMoniker**) override { return E_NOTIMPL; } + + // IOleContainer + STDMETHODIMP EnumObjects(DWORD, IEnumUnknown**) override { return E_NOTIMPL; } + STDMETHODIMP LockContainer(BOOL) override { return S_OK; } + + // IOleItemContainer + STDMETHODIMP GetObject(LPOLESTR, DWORD, IBindCtx*, REFIID, void**); + STDMETHODIMP GetObjectStorage(LPOLESTR, IBindCtx*, REFIID, void**) override; + STDMETHODIMP IsRunning(LPOLESTR) override; + + protected: + FrameSite* fs; +}; + +class HW_DWebBrowserEvents2 : public DWebBrowserEvents2 { + FrameSite* fs; + + HRESULT DispatchPropGet(DISPID dispIdMember, VARIANT* res); + + public: + explicit HW_DWebBrowserEvents2(FrameSite* fs) : fs(fs) {} + ~HW_DWebBrowserEvents2() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IDispatch + STDMETHODIMP GetIDsOfNames(REFIID, OLECHAR**, unsigned int, LCID, DISPID*) override { return E_NOTIMPL; } + STDMETHODIMP GetTypeInfo(unsigned int, LCID, ITypeInfo**) override { return E_NOTIMPL; } + STDMETHODIMP GetTypeInfoCount(unsigned int*) override { return E_NOTIMPL; } + STDMETHODIMP Invoke(DISPID, REFIID, LCID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*) override; +}; + +class HW_IAdviseSink2 : public IAdviseSink2, public IAdviseSinkEx { + FrameSite* fs; + + public: + explicit HW_IAdviseSink2(FrameSite* fs) : fs(fs) {} + ~HW_IAdviseSink2() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IAdviseSink + void STDMETHODCALLTYPE OnDataChange(FORMATETC*, STGMEDIUM*) override {} + void STDMETHODCALLTYPE OnViewChange(DWORD, LONG) override { + // redraw the control + fs->oleInPlaceSiteWindowless->InvalidateRect(nullptr, FALSE); + } + void STDMETHODCALLTYPE OnRename(IMoniker*) override {} + void STDMETHODCALLTYPE OnSave() override {} + void STDMETHODCALLTYPE OnClose() override {} + + // IAdviseSink2 + void STDMETHODCALLTYPE OnLinkSrcChange(IMoniker*) override {} + + // IAdviseSinkEx + void STDMETHODCALLTYPE OnViewStatusChange(DWORD) override {} +}; + +// http://www.popkistopki.ru/ch09b.shtml +class HW_IDocHostUIHandler : public IDocHostUIHandler { + FrameSite* fs; + + public: + explicit HW_IDocHostUIHandler(FrameSite* fs) : fs(fs) {} + ~HW_IDocHostUIHandler() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IDocHostUIHandler + STDMETHODIMP ShowContextMenu(__unused DWORD dwID, __unused POINT* ppt, __unused IUnknown* pcmdtReserved, + __unused IDispatch* pdispReserved) override { + return S_FALSE; + } + STDMETHODIMP GetHostInfo(DOCHOSTUIINFO* pInfo) override; + STDMETHODIMP ShowUI(__unused DWORD dwID, __unused IOleInPlaceActiveObject* pActiveObject, + __unused IOleCommandTarget* pCommandTarget, __unused IOleInPlaceFrame* pFrame, + __unused IOleInPlaceUIWindow* pDoc) override { + return S_FALSE; + } + STDMETHODIMP HideUI() override { return E_NOTIMPL; } + STDMETHODIMP UpdateUI() override { return E_NOTIMPL; } + STDMETHODIMP EnableModeless(__unused BOOL fEnable) override { return E_NOTIMPL; } + STDMETHODIMP OnDocWindowActivate(__unused BOOL fActivate) override { return E_NOTIMPL; } + STDMETHODIMP OnFrameWindowActivate(__unused BOOL fActivate) override { return E_NOTIMPL; } + STDMETHODIMP ResizeBorder(__unused LPCRECT prcBorder, __unused IOleInPlaceUIWindow* pUIWindow, + __unused BOOL fRameWindow) override { + return E_NOTIMPL; + } + STDMETHODIMP TranslateAccelerator(__unused LPMSG lpMsg, __unused const GUID* pguidCmdGroup, __unused DWORD nCmdID) { + return S_FALSE; + } + STDMETHODIMP GetOptionKeyPath(__unused LPOLESTR* pchKey, __unused DWORD dw) override { return S_FALSE; } + STDMETHODIMP GetDropTarget(__unused IDropTarget* pDropTarget, IDropTarget** ppDropTarget) override { + return fs->QueryInterface(IID_PPV_ARGS(ppDropTarget)); + } + STDMETHODIMP GetExternal(IDispatch** ppDispatch) override { + if (ppDispatch) { + *ppDispatch = nullptr; + } + return S_FALSE; + } + STDMETHODIMP TranslateUrl(__unused DWORD dwTranslate, __unused OLECHAR* pchURLIn, + __unused OLECHAR** ppchURLOut) override { + return S_FALSE; + } + STDMETHODIMP FilterDataObject(__unused IDataObject* pDO, IDataObject** ppDORet) override { + if (ppDORet) { + *ppDORet = nullptr; + } + return S_FALSE; + } +}; + +STDMETHODIMP HW_IDocHostUIHandler::GetHostInfo(DOCHOSTUIINFO* pInfo) { + if (!pInfo) { + return S_FALSE; + } + pInfo->pchHostCss = nullptr; + pInfo->pchHostNS = nullptr; + + // Note: I was hoping that also setting DOCHOSTUIFLAG_SCROLL_NO + // would get rid of vertical scrollbar when not necessary, but alas it + // always removes it + pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER | DOCHOSTUIFLAG_NO3DOUTERBORDER; + pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT; + return S_OK; +} + +class HW_IDropTarget : public IDropTarget { + FrameSite* fs; + + public: + explicit HW_IDropTarget(FrameSite* fs) : fs(fs) {} + ~HW_IDropTarget() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + STDMETHODIMP DragEnter(IDataObject* pDataObj, __unused DWORD grfKeyState, __unused POINTL pt, + DWORD* pdwEffect) override { + HRESULT hr = fs->htmlWindow->OnDragEnter(pDataObj); + if (SUCCEEDED(hr)) { + *pdwEffect = DROPEFFECT_COPY; + } + return hr; + } + STDMETHODIMP DragOver(__unused DWORD grfKeyState, __unused POINTL pt, DWORD* pdwEffect) override { + *pdwEffect = DROPEFFECT_COPY; + return S_OK; + } + STDMETHODIMP DragLeave() override { return S_OK; } + STDMETHODIMP Drop(IDataObject* pDataObj, __unused DWORD grfKeyState, __unused POINTL pt, + DWORD* pdwEffect) override { + *pdwEffect = DROPEFFECT_COPY; + return fs->htmlWindow->OnDragDrop(pDataObj); + } +}; + +#ifndef __IDownloadManager_INTERFACE_DEFINED__ +#define __IDownloadManager_INTERFACE_DEFINED__ + +#define DEFINE_GUID_STATIC(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + static const GUID name = {l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}} +DEFINE_GUID_STATIC(IID_IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9); +#define SID_SDownloadManager IID_IDownloadManager + +MIDL_INTERFACE("988934A4-064B-11D3-BB80-00104B35E7F9") +IDownloadManager : public IUnknown { + public: + virtual STDMETHODIMP Download(IMoniker __RPC_FAR * pmk, IBindCtx __RPC_FAR * pbc, DWORD dwBindVerb, LONG grfBINDF, + BINDINFO __RPC_FAR * pBindInfo, LPCOLESTR pszHeaders, LPCOLESTR pszRedir, + UINT uiCP) = 0; +}; + +#ifdef __GNUC__ +__CRT_UUID_DECL(IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9) +#endif + +#endif + +class HW_IDownloadManager : public IDownloadManager { + LONG refCount = 1; + + public: + HW_IDownloadManager() = default; + ~HW_IDownloadManager() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppv) override { + static const QITAB qit[] = {QITABENT(HW_IDownloadManager, IDownloadManager), {nullptr}}; + return QISearch(this, qit, riid, ppv); + } + ULONG STDMETHODCALLTYPE AddRef() override { return InterlockedIncrement(&refCount); } + ULONG STDMETHODCALLTYPE Release() override { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; + } + + // IDownloadManager + STDMETHODIMP Download(IMoniker __RPC_FAR* pmk, IBindCtx __RPC_FAR* pbc, __unused DWORD dwBindVerb, + __unused LONG grfBINDF, __unused BINDINFO __RPC_FAR* pBindInfo, __unused LPCOLESTR pszHeaders, + __unused LPCOLESTR pszRedir, __unused UINT uiCP) override { + LPOLESTR urlToFile; + HRESULT hr = pmk->GetDisplayName(pbc, nullptr, &urlToFile); + if (FAILED(hr)) { + return hr; + } + // parse the URL (only internal its:// URLs are supported) + int htmlWindowId; + AutoFreeWStr urlRest; + bool ok = ParseProtoUrl(urlToFile, &htmlWindowId, &urlRest); + // free urlToFile using IMalloc::Free + IMalloc* pMalloc = nullptr; + if (SUCCEEDED(CoGetMalloc(1, &pMalloc))) { + pMalloc->Free(urlToFile); + } else { + CoTaskMemFree(urlToFile); + } + + if (!ok) { + return INET_E_INVALID_URL; + } + + // fetch the data + HtmlWindow* win = FindHtmlWindowById(htmlWindowId); + if (!win || !win->htmlWinCb) { + return INET_E_OBJECT_NOT_FOUND; + } + char* urlRestA = ToUtf8Temp(urlRest); + auto data = win->htmlWinCb->GetDataForUrl(urlRestA); + if (data.empty()) { + return INET_E_DATA_NOT_AVAILABLE; + } + // ask the UI to let the user save the file + win->htmlWinCb->DownloadData(urlRestA, data); + return S_OK; + } +}; + +class HW_IServiceProvider : public IServiceProvider { + FrameSite* fs; + + public: + explicit HW_IServiceProvider(FrameSite* fs) : fs(fs) {} + ~HW_IServiceProvider() = default; + + // IUnknown + STDMETHODIMP QueryInterface(REFIID iid, void** ppvObject) override { return fs->QueryInterface(iid, ppvObject); } + ULONG STDMETHODCALLTYPE AddRef() override { return fs->AddRef(); } + ULONG STDMETHODCALLTYPE Release() override { return fs->Release(); } + + // IServiceProvider + STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** ppv) override { + if (guidService == SID_SDownloadManager) { + ScopedComPtr dm(new HW_IDownloadManager()); + return dm->QueryInterface(riid, ppv); + } + return E_NOINTERFACE; + } +}; + +class HtmlMoniker : public IMoniker { + public: + HtmlMoniker(); + virtual ~HtmlMoniker(); + + HRESULT SetHtml(const ByteSlice&); + HRESULT SetBaseUrl(const WCHAR* baseUrl); + + // IUnknown + STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override; + ULONG STDMETHODCALLTYPE Release() override; + + // IMoniker + STDMETHODIMP BindToStorage(IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) override; + STDMETHODIMP GetDisplayName(IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR* ppszDisplayName) override; + STDMETHODIMP BindToObject(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, __unused REFIID riidResult, + __unused void** ppvResult) override { + return E_NOTIMPL; + } + STDMETHODIMP Reduce(__unused IBindCtx* pbc, __unused DWORD dwReduceHowFar, __unused IMoniker** ppmkToLeft, + __unused IMoniker** ppmkReduced) override { + return E_NOTIMPL; + } + STDMETHODIMP ComposeWith(__unused IMoniker* pmkRight, __unused BOOL fOnlyIfNotGeneric, + __unused IMoniker** ppmkComposite) override { + return E_NOTIMPL; + } + STDMETHODIMP Enum(__unused BOOL fForward, __unused IEnumMoniker** ppenumMoniker) override { return E_NOTIMPL; } + STDMETHODIMP IsEqual(__unused IMoniker* pmkOtherMoniker) override { return E_NOTIMPL; } + STDMETHODIMP Hash(__unused DWORD* pdwHash) override { return E_NOTIMPL; } + STDMETHODIMP IsRunning(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, + __unused IMoniker* pmkNewlyRunning) override { + return E_NOTIMPL; + } + STDMETHODIMP GetTimeOfLastChange(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, + __unused FILETIME* pFileTime) override { + return E_NOTIMPL; + } + STDMETHODIMP Inverse(__unused IMoniker** ppmk) override { return E_NOTIMPL; } + STDMETHODIMP CommonPrefixWith(__unused IMoniker* pmkOther, __unused IMoniker** ppmkPrefix) override { + return E_NOTIMPL; + } + STDMETHODIMP RelativePathTo(__unused IMoniker* pmkOther, __unused IMoniker** ppmkRelPath) override { + return E_NOTIMPL; + } + STDMETHODIMP ParseDisplayName(IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, + IMoniker** ppmkOut) override; + STDMETHODIMP IsSystemMoniker(DWORD* pdwMksys) override { + if (!pdwMksys) { + return E_POINTER; + } + *pdwMksys = MKSYS_NONE; + return S_OK; + } + + // IPersistStream methods + STDMETHODIMP Save(__unused IStream* pStm, __unused BOOL fClearDirty) override { return E_NOTIMPL; } + STDMETHODIMP IsDirty() override { return E_NOTIMPL; } + STDMETHODIMP Load(__unused IStream* pStm) override { return E_NOTIMPL; } + STDMETHODIMP GetSizeMax(__unused ULARGE_INTEGER* pcbSize) override { return E_NOTIMPL; } + + // IPersist + STDMETHODIMP GetClassID(__unused CLSID* pClassID) override { return E_NOTIMPL; } + + private: + LONG refCount = 1; + + char* htmlData = nullptr; + IStream* htmlStream = nullptr; + + WCHAR* baseUrl = nullptr; +}; + +HtmlMoniker::HtmlMoniker() = default; + +HtmlMoniker::~HtmlMoniker() { + if (htmlStream) { + htmlStream->Release(); + } + + free(htmlData); + free(baseUrl); +} + +HRESULT HtmlMoniker::SetHtml(const ByteSlice& d) { + free(htmlData); + htmlData = str::Dup(d); + if (htmlStream) { + htmlStream->Release(); + } + htmlStream = CreateStreamFromData({(u8*)htmlData, d.size()}); + return S_OK; +} + +HRESULT HtmlMoniker::SetBaseUrl(const WCHAR* newBaseUrl) { + free(baseUrl); + baseUrl = str::Dup(newBaseUrl); + return S_OK; +} + +STDMETHODIMP HtmlMoniker::BindToStorage(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, REFIID riid, + void** ppvObj) { + LARGE_INTEGER seek{}; + htmlStream->Seek(seek, STREAM_SEEK_SET, nullptr); + return htmlStream->QueryInterface(riid, ppvObj); +} + +static LPOLESTR OleStrDup(const WCHAR* s) { + size_t cb = sizeof(WCHAR) * (str::Len(s) + 1); + LPOLESTR ret = (LPOLESTR)CoTaskMemAlloc(cb); + if (ret) { + memcpy(ret, s, cb); + } + return ret; +} + +STDMETHODIMP HtmlMoniker::GetDisplayName(__unused IBindCtx* pbc, __unused IMoniker* pmkToLeft, + LPOLESTR* ppszDisplayName) { + if (!ppszDisplayName) { + return E_POINTER; + } + *ppszDisplayName = OleStrDup(baseUrl ? baseUrl : L""); + return *ppszDisplayName ? S_OK : E_OUTOFMEMORY; +} + +STDMETHODIMP HtmlMoniker::ParseDisplayName(__unused IBindCtx* pbc, __unused __unused IMoniker* pmkToLeft, + __unused LPOLESTR pszDisplayName, __unused ULONG* pchEaten, + __unused IMoniker** ppmkOut) { + return E_NOTIMPL; +} + +STDMETHODIMP HtmlMoniker::QueryInterface(REFIID riid, void** ppv) { + static const QITAB qit[] = {QITABENT(HtmlMoniker, IMoniker), + QITABENT(HtmlMoniker, IPersistStream), + QITABENT(HtmlMoniker, IPersist), + {nullptr}}; + return QISearch(this, qit, riid, ppv); +} + +ULONG STDMETHODCALLTYPE HtmlMoniker::AddRef() { + return InterlockedIncrement(&refCount); +} + +ULONG STDMETHODCALLTYPE HtmlMoniker::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +static HWND GetBrowserControlHwnd(HWND hwndControlParent) { + // This is a fragile way to get the actual hwnd of the browser control + // that is responsible for processing keyboard messages (I believe the + // hierarchy might change depending on how the browser control is configured + // e.g. if it has status window etc.). + // But it works for us. + HWND w1 = GetWindow(hwndControlParent, GW_CHILD); + HWND w2 = GetWindow(w1, GW_CHILD); + HWND w3 = GetWindow(w2, GW_CHILD); + return w3; +} + +// WndProc of the window that is a parent hwnd of embedded browser control. +static LRESULT CALLBACK WndProcParent(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { + HtmlWindow* win = (HtmlWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA); + if (!win) { + return DefWindowProc(hwnd, msg, wp, lp); + } + + switch (msg) { + case WM_SIZE: + if (SIZE_MINIMIZED != wp) { + win->OnSize(Size(LOWORD(lp), HIWORD(lp))); + return 0; + } + break; + + // Note: not quite sure why I need this but if we don't swallow WM_MOUSEWHEEL + // messages, we might get infinite recursion. + case WM_MOUSEWHEEL: + case WM_MOUSEHWHEEL: + return 0; + + case WM_PARENTNOTIFY: + if (LOWORD(wp) == WM_LBUTTONDOWN) { + win->OnLButtonDown(); + } + break; + + case WM_DROPFILES: + return ::DefWindowProc(hwnd, msg, wp, lp); + + case WM_VSCROLL: + win->SendMsg(msg, wp, lp); + return 0; + } + return DefWindowProc(hwnd, msg, wp, lp); +} + +static LRESULT CALLBACK WndProcParent2(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, UINT_PTR subclassId, DWORD_PTR data) { + return WndProcParent(hwnd, msg, wp, lp); +} + +void HtmlWindow::SubclassHwnd() { + ReportIf(subclassId); // don't subclass multiple times + subclassId = NextSubclassId(); + BOOL ok = SetWindowSubclass(hwndParent, WndProcParent2, subclassId, (DWORD_PTR)this); + ReportIf(!ok); + SetWindowLongPtr(hwndParent, GWLP_USERDATA, (LONG_PTR)this); +} + +void HtmlWindow::UnsubclassHwnd() { + if (!subclassId) { + return; + } + RemoveWindowSubclass(hwndParent, WndProcParent2, subclassId); + subclassId = 0; +} + +HtmlWindow::HtmlWindow(HWND parent, HtmlWindowCallback* cb) { + ReportIf(!parent); + hwndParent = parent; + htmlWinCb = cb; + RegisterInternetProtocolFactory(); + windowId = GenNewWindowId(this); + zoomDPI = DpiGet(parent); + if (zoomDPI < 96) { + zoomDPI = 96; + } +} + +bool HtmlWindow::CreateBrowser() { + HRESULT hr; + ScopedComPtr p; + if (!p.Create(CLSID_WebBrowser)) { + return false; + } + hr = p->QueryInterface(&viewObject); + if (FAILED(hr)) { + return false; + } + hr = p->QueryInterface(&oleObject); + if (FAILED(hr)) { + return false; + } + + DWORD status; + hr = oleObject->GetMiscStatus(DVASPECT_CONTENT, &status); + if (FAILED(hr)) { + return false; + } + bool setClientSiteFirst = 0 != (status & OLEMISC_SETCLIENTSITEFIRST); + bool invisibleAtRuntime = 0 != (status & OLEMISC_INVISIBLEATRUNTIME); + + FrameSite* fs = new FrameSite(this); + ScopedComPtr fsScope(fs); + + if (setClientSiteFirst) { + oleObject->SetClientSite(fs->oleClientSite); + } + + ScopedComQIPtr psInit(p); + if (psInit) { + hr = psInit->InitNew(); + ReportIf(!SUCCEEDED(hr)); + } + + hr = p->QueryInterface(&oleInPlaceObject); + if (FAILED(hr)) { + return false; + } + hr = oleInPlaceObject->GetWindow(&oleObjectHwnd); + if (FAILED(hr)) { + return false; + } + + ::SetActiveWindow(oleObjectHwnd); + RECT rc = ToRECT(ClientRect(hwndParent)); + + oleInPlaceObject->SetObjectRects(&rc, &rc); + if (!invisibleAtRuntime) { + hr = oleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, nullptr, fs->oleClientSite, 0, hwndParent, &rc); + if (FAILED(hr)) { + return false; + } +#if 0 // is this necessary? + hr = oleObject->DoVerb(OLEIVERB_SHOW, 0, fs->oleClientSite, 0, + hwnd, &rc); +#endif + } + + if (!setClientSiteFirst) { + oleObject->SetClientSite(fs->oleClientSite); + } + + hr = p->QueryInterface(&webBrowser); + if (FAILED(hr)) { + return false; + } + + ScopedComQIPtr cpContainer(p); + if (!cpContainer) { + return false; + } + hr = cpContainer->FindConnectionPoint(DIID_DWebBrowserEvents2, &connectionPoint); + if (FAILED(hr)) { + return false; + } + connectionPoint->Advise(fs->hwDWebBrowserEvents2, &adviseCookie); + + // TODO: disallow accessing any random url? + // webBrowser->put_Offline(VARIANT_TRUE); + + webBrowser->put_MenuBar(VARIANT_FALSE); + webBrowser->put_AddressBar(VARIANT_FALSE); + webBrowser->put_StatusBar(VARIANT_FALSE); + webBrowser->put_ToolBar(VARIANT_FALSE); + webBrowser->put_Silent(VARIANT_TRUE); + + webBrowser->put_RegisterAsBrowser(VARIANT_FALSE); + webBrowser->put_RegisterAsDropTarget(VARIANT_TRUE); + + // TODO: do I need this anymore? + // NavigateToAboutBlank(); + SubclassHwnd(); + + return true; +} + +HtmlWindow* HtmlWindow::Create(HWND hwndParent, HtmlWindowCallback* cb) { + HtmlWindow* htmlWin = new HtmlWindow(hwndParent, cb); + if (!htmlWin->CreateBrowser()) { + delete htmlWin; + return nullptr; + } + return htmlWin; +} + HtmlWindow::~HtmlWindow() { UnsubclassHwnd(); auto inPlaceObj = oleInPlaceObject; @@ -1387,706 +1387,706 @@ HtmlWindow::~HtmlWindow() { UnregisterInternetProtocolFactory(); FreeHtmlSetInProgressData(); } - -void HtmlWindow::OnSize(Size size) { - if (webBrowser) { - webBrowser->put_Width(size.dx); - webBrowser->put_Height(size.dy); - } - - if (oleInPlaceObject) { - RECT r = ToRECT(Rect({}, size)); - oleInPlaceObject->SetObjectRects(&r, &r); - } -} - -void HtmlWindow::OnLButtonDown() const { - if (htmlWinCb) { - htmlWinCb->OnLButtonDown(); - } -} - -void HtmlWindow::SetVisible(bool visible) { - HwndSetVisibility(hwndParent, visible); - if (webBrowser) { - webBrowser->put_Visible(visible ? VARIANT_TRUE : VARIANT_FALSE); - } -} - -// Use for urls for which data will be provided by HtmlWindowCallback::GetHtmlForUrl() -// (will be called from OnBeforeNavigate()) -void HtmlWindow::NavigateToDataUrl(const char* url) { - TempStr fullUrl = str::FormatTemp("its://%d/%s", windowId, url); - NavigateToUrl(fullUrl); -} - -void HtmlWindow::NavigateToUrl(const char* urlA) { - WCHAR* url = ToWStrTemp(urlA); - VARIANT urlVar; - VariantInitBstr(urlVar, url); - currentURL.Reset(); - webBrowser->Navigate2(&urlVar, nullptr, nullptr, nullptr, nullptr); - VariantClear(&urlVar); -} - -void HtmlWindow::GoBack() { - if (webBrowser) { - webBrowser->GoBack(); - } -} - -void HtmlWindow::GoForward() { - if (webBrowser) { - webBrowser->GoForward(); - } -} - -int HtmlWindow::GetZoomPercent() { - VARIANT vtOut{}; - HRESULT hr = webBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, nullptr, &vtOut); - if (FAILED(hr)) { - return 100; - } - int zoom = vtOut.lVal; - ReportIf(zoomDPI < 96); - zoom = (zoom * 96) / zoomDPI; // undo what we do in SetZoomPercent() - return zoom; -} - -void HtmlWindow::SetZoomPercent(int zoom) { - VARIANT vtIn{}; - VARIANT vtOut{}; - ReportIf(zoomDPI < 96); - zoom = (zoom * zoomDPI) / 96; - VariantSetLong(&vtIn, zoom); - webBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vtIn, &vtOut); -} - -void HtmlWindow::PrintCurrentPage(bool showUI) { - OLECMDEXECOPT cmdexecopt = showUI ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DONTPROMPTUSER; - webBrowser->ExecWB(OLECMDID_PRINT, cmdexecopt, nullptr, nullptr); -} - -void HtmlWindow::FindInCurrentPage() { - webBrowser->ExecWB(OLECMDID_FIND, OLECMDEXECOPT_PROMPTUSER, nullptr, nullptr); -} - -void HtmlWindow::SelectAll() { - webBrowser->ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT, nullptr, nullptr); -} - -void HtmlWindow::CopySelection() { - webBrowser->ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT, nullptr, nullptr); -} - -void HtmlWindow::NavigateToAboutBlank() { - NavigateToUrl("about:blank"); -} - -void HtmlWindow::SetHtml(const ByteSlice& d, const char* url) { - FreeHtmlSetInProgressData(); - str::ReplaceWithCopy(&htmlSetInProgress, d); - str::ReplaceWithCopy(&htmlSetInProgress, url); - NavigateToAboutBlank(); - // the real work will happen in OnDocumentComplete() -} - -// TODO: we don't call OnDocumentComplete() on this because the url -// reports "about:blank" and we suppress that. Figure out a way -// to fix that (change the url somehow?) -// TODO: IHtmlDocument2->write() seems like a simpler method -// http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla#BUFFER -// https://github.com/ReneNyffenegger/development_misc/blob/master/windows/mshtml/HTMLWindow.cpp#L143 -void HtmlWindow::SetHtmlReal(const ByteSlice& d) { - if (htmlContent) { - htmlContent->Release(); - } - htmlContent = new HtmlMoniker(); - htmlContent->SetHtml(d); - TempStr baseUrl = str::FormatTemp(HW_PROTO_PREFIXA "://%d/", windowId); - htmlContent->SetBaseUrl(ToWStrTemp(baseUrl)); - - ScopedComPtr docDispatch; - HRESULT hr = webBrowser->get_Document(&docDispatch); - if (FAILED(hr) || !docDispatch) { - return; - } - - ScopedComQIPtr doc(docDispatch); - if (!doc) { - return; - } - - ScopedComQIPtr perstMon(doc); - if (!perstMon) { - return; - } - ScopedComQIPtr htmlMon(htmlContent); - hr = perstMon->Load(TRUE, htmlMon, nullptr, STGM_READ); - ReportIf(FAILED(hr)); -} - -// http://stackoverflow.com/questions/9778206/how-i-can-get-information-about-the-scrollbars-of-an-webbrowser-control-instance -// http://stackoverflow.com/questions/8630173/hide-scrollbars-in-webbrowser-control-mfc -// This is equivalent of but for any html -// This seems to be the only way to hide vertical scrollbar if it's not necessary -void HtmlWindow::SetScrollbarToAuto() { - ScopedComPtr docDispatch; - HRESULT hr = webBrowser->get_Document(&docDispatch); - if (FAILED(hr) || !docDispatch) { - return; - } - - ScopedComQIPtr doc2(docDispatch); - if (!doc2) { - return; - } - - ScopedComPtr bodyElement; - hr = doc2->get_body(&bodyElement); - if (FAILED(hr) || !bodyElement) { - return; - } - - ScopedComQIPtr body(bodyElement); - if (!body) { - return; - } - - BSTR s = SysAllocString(L"auto"); - hr = body->put_scroll(s); - ReportIf(FAILED(hr)); - SysFreeString(s); -} - -// Take a screenshot of a given inside an html window and resize -// it to . It's up to the caller to make sure fits -// within window (we don't check that's the case) -HBITMAP HtmlWindow::TakeScreenshot(Rect area, Size finalSize) { - ScopedComPtr docDispatch; - HRESULT hr = webBrowser->get_Document(&docDispatch); - if (FAILED(hr) || !docDispatch) { - return nullptr; - } - ScopedComQIPtr view(docDispatch); - if (!view) { - return nullptr; - } - - // capture the whole window (including scrollbars) - // to image and create imageRes containing the area - // user asked for - Rect winRc = WindowRect(hwndParent); - Gdiplus::Bitmap image(winRc.dx, winRc.dy, PixelFormat24bppRGB); - Gdiplus::Graphics g(&image); - - HDC dc = g.GetHDC(); - RECTL rc = {0, 0, winRc.dx, winRc.dy}; - hr = view->Draw(DVASPECT_CONTENT, -1, nullptr, nullptr, dc, dc, &rc, nullptr, nullptr, 0); - g.ReleaseHDC(dc); - if (FAILED(hr)) { - return nullptr; - } - - Gdiplus::Bitmap imageRes(finalSize.dx, finalSize.dy, PixelFormat24bppRGB); - Gdiplus::Graphics g2(&imageRes); - g2.SetInterpolationMode(Gdiplus::InterpolationModeHighQualityBicubic); - g2.DrawImage(&image, Gdiplus::Rect(0, 0, finalSize.dx, finalSize.dy), area.x, area.y, area.dx, area.dy, - Gdiplus::UnitPixel); - - HBITMAP hbmp; - Gdiplus::Status ok = imageRes.GetHBITMAP((Gdiplus::ARGB)Gdiplus::Color::White, &hbmp); - if (ok != Gdiplus::Ok) { - return nullptr; - } - return hbmp; -} - -// called before an url is shown. If returns false, will cancel -// the navigation. -bool HtmlWindow::OnBeforeNavigate(const WCHAR* urlW, bool newWindow) { - currentURL.Reset(); - if (!htmlWinCb) { - return true; - } - char* url = ToUtf8Temp(urlW); - if (IsBlankUrl(url)) { - return true; - } - - // if it's url for our internal protocol, strip the protocol - // part as we don't want to expose it to clients. - int protoWindowId; - AutoFreeStr urlReal = str::Dup(url); - bool ok = ParseProtoUrl(url, &protoWindowId, &urlReal); - ReportIf(ok && (protoWindowId != windowId)); - bool shouldNavigate = htmlWinCb->OnBeforeNavigate(urlReal, newWindow); - return shouldNavigate; -} - -void HtmlWindow::FreeHtmlSetInProgressData() { - str::FreePtr(&this->htmlSetInProgress); - str::FreePtr(&this->htmlSetInProgressUrl); -} - -void HtmlWindow::OnDocumentComplete(const WCHAR* urlW) { - char* url = ToUtf8Temp(urlW); - if (IsBlankUrl(url)) { - if (htmlSetInProgress != nullptr) { - // TODO: I think this triggers another OnDocumentComplete() for "about:blank", - // which we should ignore? - SetHtmlReal(ToByteSlice(htmlSetInProgress)); - if (htmlWinCb) { - if (htmlSetInProgressUrl) { - htmlWinCb->OnDocumentComplete(htmlSetInProgressUrl); - } else { - htmlWinCb->OnDocumentComplete(htmlSetInProgressUrl); - } - } - - FreeHtmlSetInProgressData(); - SetScrollbarToAuto(); - return; - } - } - - // if it's url for our internal protocol, strip the protocol - // part as we don't want to expose it to clients. - int protoWindowId; - AutoFreeStr urlReal = str::Dup(url); - bool ok = ParseProtoUrl(url, &protoWindowId, &urlReal); - ReportIf(ok && (protoWindowId != windowId)); - - currentURL.Set(urlReal.StealData()); - if (htmlWinCb) { - htmlWinCb->OnDocumentComplete(currentURL); - } - SetScrollbarToAuto(); -} - -HRESULT HtmlWindow::OnDragEnter(IDataObject* dataObj) { - ScopedComQIPtr data(dataObj); - if (!data) { - return E_INVALIDARG; - } - FORMATETC fe = {CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; - STGMEDIUM stg{}; - if (FAILED(data->GetData(&fe, &stg))) { - return E_FAIL; - } - ReleaseStgMedium(&stg); - return S_OK; -} - -HRESULT HtmlWindow::OnDragDrop(IDataObject* dataObj) { - ScopedComQIPtr data(dataObj); - if (!data) { - return E_INVALIDARG; - } - FORMATETC fe = {CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; - STGMEDIUM stg{}; - if (FAILED(data->GetData(&fe, &stg))) { - return E_FAIL; - } - - HDROP hDrop = (HDROP)GlobalLock(stg.hGlobal); - if (hDrop) { - SendMessageW(hwndParent, WM_DROPFILES, (WPARAM)hDrop, 1); - GlobalUnlock(stg.hGlobal); - } - ReleaseStgMedium(&stg); - return hDrop != nullptr ? S_OK : E_FAIL; -} - -LRESULT HtmlWindow::SendMsg(UINT msg, WPARAM wp, LPARAM lp) { - HWND hwndBrowser = GetBrowserControlHwnd(hwndParent); - return SendMessageW(hwndBrowser, msg, wp, lp); -} - -FrameSite::FrameSite(HtmlWindow* win) { - refCount = 1; - - htmlWindow = win; - supportsWindowlessActivation = true; - inPlaceLocked = false; - uiActive = false; - inPlaceActive = false; - isWindowless = false; - - ambientLocale = 0; - ambientForeColor = ::GetSysColor(COLOR_WINDOWTEXT); - ambientBackColor = ::GetSysColor(COLOR_WINDOW); - ambientUserMode = true; - ambientShowHatching = true; - ambientShowGrabHandles = true; - ambientAppearance = true; - - // m_hDCBuffer = nullptr; - hwndParent = htmlWindow->hwndParent; - - oleInPlaceFrame = new HW_IOleInPlaceFrame(this); - oleInPlaceSiteWindowless = new HW_IOleInPlaceSiteWindowless(this); - oleClientSite = new HW_IOleClientSite(this); - oleControlSite = new HW_IOleControlSite(this); - oleCommandTarget = new HW_IOleCommandTarget(this); - oleItemContainer = new HW_IOleItemContainer(this); - hwDWebBrowserEvents2 = new HW_DWebBrowserEvents2(this); - adviseSink2 = new HW_IAdviseSink2(this); - docHostUIHandler = new HW_IDocHostUIHandler(this); - dropTarget = new HW_IDropTarget(this); - serviceProvider = new HW_IServiceProvider(this); -} - -FrameSite::~FrameSite() { - delete serviceProvider; - delete dropTarget; - delete docHostUIHandler; - delete adviseSink2; - delete hwDWebBrowserEvents2; - delete oleItemContainer; - delete oleCommandTarget; - delete oleControlSite; - delete oleClientSite; - delete oleInPlaceSiteWindowless; - delete oleInPlaceFrame; -} - -// IUnknown -STDMETHODIMP FrameSite::QueryInterface(REFIID riid, void** ppv) { - if (ppv == nullptr) { - return E_INVALIDARG; - } - - *ppv = nullptr; - if (riid == IID_IUnknown) { - *ppv = this; - } else if (riid == IID_IOleWindow || riid == IID_IOleInPlaceUIWindow || riid == IID_IOleInPlaceFrame) { - *ppv = oleInPlaceFrame; - } else if (riid == IID_IOleInPlaceSite || riid == IID_IOleInPlaceSiteEx || riid == IID_IOleInPlaceSiteWindowless) { - *ppv = oleInPlaceSiteWindowless; - } else if (riid == IID_IOleClientSite) { - *ppv = oleClientSite; - } else if (riid == IID_IOleControlSite) { - *ppv = oleControlSite; - } else if (riid == IID_IOleCommandTarget) { - *ppv = oleCommandTarget; - } else if (riid == IID_IOleItemContainer || riid == IID_IOleContainer || riid == IID_IParseDisplayName) { - *ppv = oleItemContainer; - } else if (riid == IID_IDispatch || riid == DIID_DWebBrowserEvents2) { - *ppv = hwDWebBrowserEvents2; - } else if (riid == IID_IAdviseSink || riid == IID_IAdviseSink2 || riid == IID_IAdviseSinkEx) { - *ppv = adviseSink2; - } else if (riid == IID_IDocHostUIHandler) { - *ppv = docHostUIHandler; - } else if (riid == IID_IDropTarget) { - *ppv = dropTarget; - } else if (riid == IID_IServiceProvider) { - *ppv = serviceProvider; - } else { - return E_NOINTERFACE; - } - if (!*ppv) { - return E_OUTOFMEMORY; - } - AddRef(); - return S_OK; -} - -ULONG STDMETHODCALLTYPE FrameSite::Release() { - LONG res = InterlockedDecrement(&refCount); - ReportIf(res < 0); - if (0 == res) { - delete this; - } - return res; -} - -// IDispatch -HRESULT HW_DWebBrowserEvents2::DispatchPropGet(DISPID dispIdMember, VARIANT* res) { - if (res == nullptr) { - return E_INVALIDARG; - } - - switch (dispIdMember) { - case DISPID_AMBIENT_APPEARANCE: - VariantSetBool(res, fs->ambientAppearance); - break; - - case DISPID_AMBIENT_FORECOLOR: - VariantSetLong(res, (long)fs->ambientForeColor); - break; - - case DISPID_AMBIENT_BACKCOLOR: - VariantSetLong(res, (long)fs->ambientBackColor); - break; - - case DISPID_AMBIENT_LOCALEID: - VariantSetLong(res, (long)fs->ambientLocale); - break; - - case DISPID_AMBIENT_USERMODE: - VariantSetBool(res, fs->ambientUserMode); - break; - - case DISPID_AMBIENT_SHOWGRABHANDLES: - VariantSetBool(res, fs->ambientShowGrabHandles); - break; - - case DISPID_AMBIENT_SHOWHATCHING: - VariantSetBool(res, fs->ambientShowHatching); - break; - - default: - return DISP_E_MEMBERNOTFOUND; - } - return S_OK; -} - -static BSTR BstrFromVariant(VARIANT* vurl) { - if (vurl->vt & VT_BYREF) { - return *vurl->pbstrVal; - } else { - return vurl->bstrVal; - } -} - -HRESULT HW_DWebBrowserEvents2::Invoke(DISPID dispIdMember, __unused REFIID riid, __unused LCID lcid, WORD flags, - DISPPARAMS* pDispParams, VARIANT* pVarResult, __unused EXCEPINFO* pExcepInfo, - __unused unsigned int* puArgErr) { - if (flags & DISPATCH_PROPERTYGET) { - return DispatchPropGet(dispIdMember, pVarResult); - } - - switch (dispIdMember) { - case DISPID_BEFORENAVIGATE2: { - BSTR url = BstrFromVariant(pDispParams->rgvarg[5].pvarVal); - bool shouldCancel = !fs->htmlWindow->OnBeforeNavigate(url, false); - *pDispParams->rgvarg[0].pboolVal = shouldCancel ? VARIANT_TRUE : VARIANT_FALSE; - break; - } - -#if 0 - case DISPID_PROGRESSCHANGE: - { - long current = pDispParams->rgvarg[1].lVal; - long maximum = pDispParams->rgvarg[0].lVal; - fs->htmlWindow->OnProgressURL(current, maximum); - break; - } -#endif - - case DISPID_DOCUMENTCOMPLETE: { - // TODO: there are complexities related to multi-frame documents. This - // gets called on every frame and we should probably only notify - // on completion of top-level frame. On the other hand, I haven't - // encountered problems related to that yet - BSTR url = BstrFromVariant(pDispParams->rgvarg[0].pvarVal); - fs->htmlWindow->OnDocumentComplete(url); - break; - } - - case DISPID_NAVIGATEERROR: { - // TODO: probably should notify about that too - break; - } - - case DISPID_COMMANDSTATECHANGE: - switch (pDispParams->rgvarg[1].lVal) { - case CSC_NAVIGATEBACK: - fs->htmlWindow->canGoBack = pDispParams->rgvarg[0].boolVal; - break; - case CSC_NAVIGATEFORWARD: - fs->htmlWindow->canGoForward = pDispParams->rgvarg[0].boolVal; - break; - } - break; - - case DISPID_NEWWINDOW3: { - BSTR url = pDispParams->rgvarg[0].bstrVal; - bool shouldCancel = !fs->htmlWindow->OnBeforeNavigate(url, true); - *pDispParams->rgvarg[3].pboolVal = shouldCancel ? VARIANT_TRUE : VARIANT_FALSE; - break; - } - - case DISPID_NEWWINDOW2: - // prior to Windows XP SP2, there's no way of getting the URL - // to be opened, so we have to fail silently - *pDispParams->rgvarg[0].pboolVal = VARIANT_FALSE; - break; - } - - return S_OK; -} - -// IOleWindow -HRESULT HW_IOleInPlaceFrame::GetWindow(HWND* phwnd) { - if (phwnd == nullptr) { - return E_INVALIDARG; - } - *phwnd = fs->hwndParent; - return S_OK; -} - -// IOleInPlaceUIWindow -HRESULT HW_IOleInPlaceFrame::GetBorder(LPRECT lprectBorder) { - if (lprectBorder == nullptr) { - return E_INVALIDARG; - } - return INPLACE_E_NOTOOLSPACE; -} - -HRESULT HW_IOleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pborderwidths) { - if (pborderwidths == nullptr) { - return E_INVALIDARG; - } - return INPLACE_E_NOTOOLSPACE; -} - -// IOleInPlaceSite -HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceActivate() { - fs->inPlaceActive = true; - return S_OK; -} - -HRESULT HW_IOleInPlaceSiteWindowless::OnUIActivate() { - fs->uiActive = true; - return S_OK; -} - -HRESULT HW_IOleInPlaceSiteWindowless::GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, - LPRECT lprcPosRect, LPRECT lprcClipRect, - LPOLEINPLACEFRAMEINFO lpFrameInfo) { - if (ppFrame == nullptr || ppDoc == nullptr || lprcPosRect == nullptr || lprcClipRect == nullptr || - lpFrameInfo == nullptr) { - if (ppFrame != nullptr) { - *ppFrame = nullptr; - } - if (ppDoc != nullptr) { - *ppDoc = nullptr; - } - return E_INVALIDARG; - } - - *ppDoc = *ppFrame = fs->oleInPlaceFrame; - (*ppDoc)->AddRef(); - (*ppFrame)->AddRef(); - - lpFrameInfo->fMDIApp = FALSE; - lpFrameInfo->hwndFrame = fs->hwndParent; - lpFrameInfo->haccel = nullptr; - lpFrameInfo->cAccelEntries = 0; - - return S_OK; -} - -HRESULT HW_IOleInPlaceSiteWindowless::OnUIDeactivate(__unused BOOL fUndoable) { - fs->uiActive = false; - return S_OK; -} - -HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceDeactivate() { - fs->inPlaceActive = false; - return S_OK; -} - -// IOleInPlaceSiteEx -HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceActivateEx(BOOL* pfNoRedraw, __unused DWORD dwFlags) { - if (pfNoRedraw) { - *pfNoRedraw = FALSE; - } - return S_OK; -} - -// IOleInPlaceSiteWindowless -HRESULT HW_IOleInPlaceSiteWindowless::CanWindowlessActivate() { - return fs->supportsWindowlessActivation ? S_OK : S_FALSE; -} - -HRESULT HW_IOleInPlaceSiteWindowless::GetDC(__unused LPCRECT pRect, __unused DWORD grfFlags, HDC* phDC) { - if (phDC == nullptr) { - return E_INVALIDARG; - } - -#if 0 - if (grfFlags & OLEDC_NODRAW) - { - *phDC = mfs->hDCBuffer; - return S_OK; - } - - if (fs->hDCBuffer != nullptr) - return E_UNEXPECTED; -#endif - return E_NOTIMPL; -} - -HRESULT HW_IOleInPlaceSiteWindowless::InvalidateRect(__unused LPCRECT pRect, BOOL fErase) { - ::InvalidateRect(fs->hwndParent, nullptr, fErase); - return S_OK; -} - -// IOleClientSite -HRESULT HW_IOleClientSite::GetContainer(LPOLECONTAINER* ppContainer) { - if (ppContainer == nullptr) { - return E_INVALIDARG; - } - return QueryInterface(IID_IOleContainer, (void**)ppContainer); -} - -// IOleItemContainer -HRESULT HW_IOleItemContainer::GetObject(LPOLESTR pszItem, __unused DWORD dwSpeedNeeded, __unused IBindCtx* pbc, - __unused REFIID riid, void** ppvObject) { - if (pszItem == nullptr) { - return E_INVALIDARG; - } - if (ppvObject == nullptr) { - return E_INVALIDARG; - } - *ppvObject = nullptr; - return MK_E_NOOBJECT; -} - -HRESULT HW_IOleItemContainer::GetObjectStorage(LPOLESTR pszItem, __unused IBindCtx* pbc, __unused REFIID riid, - void** ppvStorage) { - if (pszItem == nullptr) { - return E_INVALIDARG; - } - if (ppvStorage == nullptr) { - return E_INVALIDARG; - } - *ppvStorage = nullptr; - return MK_E_NOOBJECT; -} - -HRESULT HW_IOleItemContainer::IsRunning(LPOLESTR pszItem) { - if (pszItem == nullptr) { - return E_INVALIDARG; - } - return MK_E_NOOBJECT; -} - -// IOleControlSite -HRESULT HW_IOleControlSite::LockInPlaceActive(BOOL fLock) { - fs->inPlaceLocked = (fLock == TRUE); - return S_OK; -} - -HRESULT HW_IOleControlSite::TransformCoords(POINTL* pPtlHimetric, POINTF* pPtfContainer, __unused DWORD dwFlags) { - HRESULT hr = S_OK; - if (pPtlHimetric == nullptr) { - return E_INVALIDARG; - } - if (pPtfContainer == nullptr) { - return E_INVALIDARG; - } - return hr; -} - -// IOleCommandTarget -HRESULT HW_IOleCommandTarget::QueryStatus(__unused const GUID* pguidCmdGroup, __unused ULONG cCmds, OLECMD* prgCmds, - __unused OLECMDTEXT* pCmdTet) { - if (prgCmds == nullptr) { - return E_INVALIDARG; - } - return OLECMDERR_E_UNKNOWNGROUP; -} + +void HtmlWindow::OnSize(Size size) { + if (webBrowser) { + webBrowser->put_Width(size.dx); + webBrowser->put_Height(size.dy); + } + + if (oleInPlaceObject) { + RECT r = ToRECT(Rect({}, size)); + oleInPlaceObject->SetObjectRects(&r, &r); + } +} + +void HtmlWindow::OnLButtonDown() const { + if (htmlWinCb) { + htmlWinCb->OnLButtonDown(); + } +} + +void HtmlWindow::SetVisible(bool visible) { + HwndSetVisibility(hwndParent, visible); + if (webBrowser) { + webBrowser->put_Visible(visible ? VARIANT_TRUE : VARIANT_FALSE); + } +} + +// Use for urls for which data will be provided by HtmlWindowCallback::GetHtmlForUrl() +// (will be called from OnBeforeNavigate()) +void HtmlWindow::NavigateToDataUrl(const char* url) { + TempStr fullUrl = str::FormatTemp("its://%d/%s", windowId, url); + NavigateToUrl(fullUrl); +} + +void HtmlWindow::NavigateToUrl(const char* urlA) { + WCHAR* url = ToWStrTemp(urlA); + VARIANT urlVar; + VariantInitBstr(urlVar, url); + currentURL.Reset(); + webBrowser->Navigate2(&urlVar, nullptr, nullptr, nullptr, nullptr); + VariantClear(&urlVar); +} + +void HtmlWindow::GoBack() { + if (webBrowser) { + webBrowser->GoBack(); + } +} + +void HtmlWindow::GoForward() { + if (webBrowser) { + webBrowser->GoForward(); + } +} + +int HtmlWindow::GetZoomPercent() { + VARIANT vtOut{}; + HRESULT hr = webBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, nullptr, &vtOut); + if (FAILED(hr)) { + return 100; + } + int zoom = vtOut.lVal; + ReportIf(zoomDPI < 96); + zoom = (zoom * 96) / zoomDPI; // undo what we do in SetZoomPercent() + return zoom; +} + +void HtmlWindow::SetZoomPercent(int zoom) { + VARIANT vtIn{}; + VARIANT vtOut{}; + ReportIf(zoomDPI < 96); + zoom = (zoom * zoomDPI) / 96; + VariantSetLong(&vtIn, zoom); + webBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vtIn, &vtOut); +} + +void HtmlWindow::PrintCurrentPage(bool showUI) { + OLECMDEXECOPT cmdexecopt = showUI ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DONTPROMPTUSER; + webBrowser->ExecWB(OLECMDID_PRINT, cmdexecopt, nullptr, nullptr); +} + +void HtmlWindow::FindInCurrentPage() { + webBrowser->ExecWB(OLECMDID_FIND, OLECMDEXECOPT_PROMPTUSER, nullptr, nullptr); +} + +void HtmlWindow::SelectAll() { + webBrowser->ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT, nullptr, nullptr); +} + +void HtmlWindow::CopySelection() { + webBrowser->ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT, nullptr, nullptr); +} + +void HtmlWindow::NavigateToAboutBlank() { + NavigateToUrl("about:blank"); +} + +void HtmlWindow::SetHtml(const ByteSlice& d, const char* url) { + FreeHtmlSetInProgressData(); + str::ReplaceWithCopy(&htmlSetInProgress, d); + str::ReplaceWithCopy(&htmlSetInProgress, url); + NavigateToAboutBlank(); + // the real work will happen in OnDocumentComplete() +} + +// TODO: we don't call OnDocumentComplete() on this because the url +// reports "about:blank" and we suppress that. Figure out a way +// to fix that (change the url somehow?) +// TODO: IHtmlDocument2->write() seems like a simpler method +// http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla#BUFFER +// https://github.com/ReneNyffenegger/development_misc/blob/master/windows/mshtml/HTMLWindow.cpp#L143 +void HtmlWindow::SetHtmlReal(const ByteSlice& d) { + if (htmlContent) { + htmlContent->Release(); + } + htmlContent = new HtmlMoniker(); + htmlContent->SetHtml(d); + TempStr baseUrl = str::FormatTemp(HW_PROTO_PREFIXA "://%d/", windowId); + htmlContent->SetBaseUrl(ToWStrTemp(baseUrl)); + + ScopedComPtr docDispatch; + HRESULT hr = webBrowser->get_Document(&docDispatch); + if (FAILED(hr) || !docDispatch) { + return; + } + + ScopedComQIPtr doc(docDispatch); + if (!doc) { + return; + } + + ScopedComQIPtr perstMon(doc); + if (!perstMon) { + return; + } + ScopedComQIPtr htmlMon(htmlContent); + hr = perstMon->Load(TRUE, htmlMon, nullptr, STGM_READ); + ReportIf(FAILED(hr)); +} + +// http://stackoverflow.com/questions/9778206/how-i-can-get-information-about-the-scrollbars-of-an-webbrowser-control-instance +// http://stackoverflow.com/questions/8630173/hide-scrollbars-in-webbrowser-control-mfc +// This is equivalent of but for any html +// This seems to be the only way to hide vertical scrollbar if it's not necessary +void HtmlWindow::SetScrollbarToAuto() { + ScopedComPtr docDispatch; + HRESULT hr = webBrowser->get_Document(&docDispatch); + if (FAILED(hr) || !docDispatch) { + return; + } + + ScopedComQIPtr doc2(docDispatch); + if (!doc2) { + return; + } + + ScopedComPtr bodyElement; + hr = doc2->get_body(&bodyElement); + if (FAILED(hr) || !bodyElement) { + return; + } + + ScopedComQIPtr body(bodyElement); + if (!body) { + return; + } + + BSTR s = SysAllocString(L"auto"); + hr = body->put_scroll(s); + ReportIf(FAILED(hr)); + SysFreeString(s); +} + +// Take a screenshot of a given inside an html window and resize +// it to . It's up to the caller to make sure fits +// within window (we don't check that's the case) +HBITMAP HtmlWindow::TakeScreenshot(Rect area, Size finalSize) { + ScopedComPtr docDispatch; + HRESULT hr = webBrowser->get_Document(&docDispatch); + if (FAILED(hr) || !docDispatch) { + return nullptr; + } + ScopedComQIPtr view(docDispatch); + if (!view) { + return nullptr; + } + + // capture the whole window (including scrollbars) + // to image and create imageRes containing the area + // user asked for + Rect winRc = WindowRect(hwndParent); + Gdiplus::Bitmap image(winRc.dx, winRc.dy, PixelFormat24bppRGB); + Gdiplus::Graphics g(&image); + + HDC dc = g.GetHDC(); + RECTL rc = {0, 0, winRc.dx, winRc.dy}; + hr = view->Draw(DVASPECT_CONTENT, -1, nullptr, nullptr, dc, dc, &rc, nullptr, nullptr, 0); + g.ReleaseHDC(dc); + if (FAILED(hr)) { + return nullptr; + } + + Gdiplus::Bitmap imageRes(finalSize.dx, finalSize.dy, PixelFormat24bppRGB); + Gdiplus::Graphics g2(&imageRes); + g2.SetInterpolationMode(Gdiplus::InterpolationModeHighQualityBicubic); + g2.DrawImage(&image, Gdiplus::Rect(0, 0, finalSize.dx, finalSize.dy), area.x, area.y, area.dx, area.dy, + Gdiplus::UnitPixel); + + HBITMAP hbmp; + Gdiplus::Status ok = imageRes.GetHBITMAP((Gdiplus::ARGB)Gdiplus::Color::White, &hbmp); + if (ok != Gdiplus::Ok) { + return nullptr; + } + return hbmp; +} + +// called before an url is shown. If returns false, will cancel +// the navigation. +bool HtmlWindow::OnBeforeNavigate(const WCHAR* urlW, bool newWindow) { + currentURL.Reset(); + if (!htmlWinCb) { + return true; + } + char* url = ToUtf8Temp(urlW); + if (IsBlankUrl(url)) { + return true; + } + + // if it's url for our internal protocol, strip the protocol + // part as we don't want to expose it to clients. + int protoWindowId; + AutoFreeStr urlReal = str::Dup(url); + bool ok = ParseProtoUrl(url, &protoWindowId, &urlReal); + ReportIf(ok && (protoWindowId != windowId)); + bool shouldNavigate = htmlWinCb->OnBeforeNavigate(urlReal, newWindow); + return shouldNavigate; +} + +void HtmlWindow::FreeHtmlSetInProgressData() { + str::FreePtr(&this->htmlSetInProgress); + str::FreePtr(&this->htmlSetInProgressUrl); +} + +void HtmlWindow::OnDocumentComplete(const WCHAR* urlW) { + char* url = ToUtf8Temp(urlW); + if (IsBlankUrl(url)) { + if (htmlSetInProgress != nullptr) { + // TODO: I think this triggers another OnDocumentComplete() for "about:blank", + // which we should ignore? + SetHtmlReal(ToByteSlice(htmlSetInProgress)); + if (htmlWinCb) { + if (htmlSetInProgressUrl) { + htmlWinCb->OnDocumentComplete(htmlSetInProgressUrl); + } else { + htmlWinCb->OnDocumentComplete(htmlSetInProgressUrl); + } + } + + FreeHtmlSetInProgressData(); + SetScrollbarToAuto(); + return; + } + } + + // if it's url for our internal protocol, strip the protocol + // part as we don't want to expose it to clients. + int protoWindowId; + AutoFreeStr urlReal = str::Dup(url); + bool ok = ParseProtoUrl(url, &protoWindowId, &urlReal); + ReportIf(ok && (protoWindowId != windowId)); + + currentURL.Set(urlReal.StealData()); + if (htmlWinCb) { + htmlWinCb->OnDocumentComplete(currentURL); + } + SetScrollbarToAuto(); +} + +HRESULT HtmlWindow::OnDragEnter(IDataObject* dataObj) { + ScopedComQIPtr data(dataObj); + if (!data) { + return E_INVALIDARG; + } + FORMATETC fe = {CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; + STGMEDIUM stg{}; + if (FAILED(data->GetData(&fe, &stg))) { + return E_FAIL; + } + ReleaseStgMedium(&stg); + return S_OK; +} + +HRESULT HtmlWindow::OnDragDrop(IDataObject* dataObj) { + ScopedComQIPtr data(dataObj); + if (!data) { + return E_INVALIDARG; + } + FORMATETC fe = {CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; + STGMEDIUM stg{}; + if (FAILED(data->GetData(&fe, &stg))) { + return E_FAIL; + } + + HDROP hDrop = (HDROP)GlobalLock(stg.hGlobal); + if (hDrop) { + SendMessageW(hwndParent, WM_DROPFILES, (WPARAM)hDrop, 1); + GlobalUnlock(stg.hGlobal); + } + ReleaseStgMedium(&stg); + return hDrop != nullptr ? S_OK : E_FAIL; +} + +LRESULT HtmlWindow::SendMsg(UINT msg, WPARAM wp, LPARAM lp) { + HWND hwndBrowser = GetBrowserControlHwnd(hwndParent); + return SendMessageW(hwndBrowser, msg, wp, lp); +} + +FrameSite::FrameSite(HtmlWindow* win) { + refCount = 1; + + htmlWindow = win; + supportsWindowlessActivation = true; + inPlaceLocked = false; + uiActive = false; + inPlaceActive = false; + isWindowless = false; + + ambientLocale = 0; + ambientForeColor = ::GetSysColor(COLOR_WINDOWTEXT); + ambientBackColor = ::GetSysColor(COLOR_WINDOW); + ambientUserMode = true; + ambientShowHatching = true; + ambientShowGrabHandles = true; + ambientAppearance = true; + + // m_hDCBuffer = nullptr; + hwndParent = htmlWindow->hwndParent; + + oleInPlaceFrame = new HW_IOleInPlaceFrame(this); + oleInPlaceSiteWindowless = new HW_IOleInPlaceSiteWindowless(this); + oleClientSite = new HW_IOleClientSite(this); + oleControlSite = new HW_IOleControlSite(this); + oleCommandTarget = new HW_IOleCommandTarget(this); + oleItemContainer = new HW_IOleItemContainer(this); + hwDWebBrowserEvents2 = new HW_DWebBrowserEvents2(this); + adviseSink2 = new HW_IAdviseSink2(this); + docHostUIHandler = new HW_IDocHostUIHandler(this); + dropTarget = new HW_IDropTarget(this); + serviceProvider = new HW_IServiceProvider(this); +} + +FrameSite::~FrameSite() { + delete serviceProvider; + delete dropTarget; + delete docHostUIHandler; + delete adviseSink2; + delete hwDWebBrowserEvents2; + delete oleItemContainer; + delete oleCommandTarget; + delete oleControlSite; + delete oleClientSite; + delete oleInPlaceSiteWindowless; + delete oleInPlaceFrame; +} + +// IUnknown +STDMETHODIMP FrameSite::QueryInterface(REFIID riid, void** ppv) { + if (ppv == nullptr) { + return E_INVALIDARG; + } + + *ppv = nullptr; + if (riid == IID_IUnknown) { + *ppv = this; + } else if (riid == IID_IOleWindow || riid == IID_IOleInPlaceUIWindow || riid == IID_IOleInPlaceFrame) { + *ppv = oleInPlaceFrame; + } else if (riid == IID_IOleInPlaceSite || riid == IID_IOleInPlaceSiteEx || riid == IID_IOleInPlaceSiteWindowless) { + *ppv = oleInPlaceSiteWindowless; + } else if (riid == IID_IOleClientSite) { + *ppv = oleClientSite; + } else if (riid == IID_IOleControlSite) { + *ppv = oleControlSite; + } else if (riid == IID_IOleCommandTarget) { + *ppv = oleCommandTarget; + } else if (riid == IID_IOleItemContainer || riid == IID_IOleContainer || riid == IID_IParseDisplayName) { + *ppv = oleItemContainer; + } else if (riid == IID_IDispatch || riid == DIID_DWebBrowserEvents2) { + *ppv = hwDWebBrowserEvents2; + } else if (riid == IID_IAdviseSink || riid == IID_IAdviseSink2 || riid == IID_IAdviseSinkEx) { + *ppv = adviseSink2; + } else if (riid == IID_IDocHostUIHandler) { + *ppv = docHostUIHandler; + } else if (riid == IID_IDropTarget) { + *ppv = dropTarget; + } else if (riid == IID_IServiceProvider) { + *ppv = serviceProvider; + } else { + return E_NOINTERFACE; + } + if (!*ppv) { + return E_OUTOFMEMORY; + } + AddRef(); + return S_OK; +} + +ULONG STDMETHODCALLTYPE FrameSite::Release() { + LONG res = InterlockedDecrement(&refCount); + ReportIf(res < 0); + if (0 == res) { + delete this; + } + return res; +} + +// IDispatch +HRESULT HW_DWebBrowserEvents2::DispatchPropGet(DISPID dispIdMember, VARIANT* res) { + if (res == nullptr) { + return E_INVALIDARG; + } + + switch (dispIdMember) { + case DISPID_AMBIENT_APPEARANCE: + VariantSetBool(res, fs->ambientAppearance); + break; + + case DISPID_AMBIENT_FORECOLOR: + VariantSetLong(res, (long)fs->ambientForeColor); + break; + + case DISPID_AMBIENT_BACKCOLOR: + VariantSetLong(res, (long)fs->ambientBackColor); + break; + + case DISPID_AMBIENT_LOCALEID: + VariantSetLong(res, (long)fs->ambientLocale); + break; + + case DISPID_AMBIENT_USERMODE: + VariantSetBool(res, fs->ambientUserMode); + break; + + case DISPID_AMBIENT_SHOWGRABHANDLES: + VariantSetBool(res, fs->ambientShowGrabHandles); + break; + + case DISPID_AMBIENT_SHOWHATCHING: + VariantSetBool(res, fs->ambientShowHatching); + break; + + default: + return DISP_E_MEMBERNOTFOUND; + } + return S_OK; +} + +static BSTR BstrFromVariant(VARIANT* vurl) { + if (vurl->vt & VT_BYREF) { + return *vurl->pbstrVal; + } else { + return vurl->bstrVal; + } +} + +HRESULT HW_DWebBrowserEvents2::Invoke(DISPID dispIdMember, __unused REFIID riid, __unused LCID lcid, WORD flags, + DISPPARAMS* pDispParams, VARIANT* pVarResult, __unused EXCEPINFO* pExcepInfo, + __unused unsigned int* puArgErr) { + if (flags & DISPATCH_PROPERTYGET) { + return DispatchPropGet(dispIdMember, pVarResult); + } + + switch (dispIdMember) { + case DISPID_BEFORENAVIGATE2: { + BSTR url = BstrFromVariant(pDispParams->rgvarg[5].pvarVal); + bool shouldCancel = !fs->htmlWindow->OnBeforeNavigate(url, false); + *pDispParams->rgvarg[0].pboolVal = shouldCancel ? VARIANT_TRUE : VARIANT_FALSE; + break; + } + +#if 0 + case DISPID_PROGRESSCHANGE: + { + long current = pDispParams->rgvarg[1].lVal; + long maximum = pDispParams->rgvarg[0].lVal; + fs->htmlWindow->OnProgressURL(current, maximum); + break; + } +#endif + + case DISPID_DOCUMENTCOMPLETE: { + // TODO: there are complexities related to multi-frame documents. This + // gets called on every frame and we should probably only notify + // on completion of top-level frame. On the other hand, I haven't + // encountered problems related to that yet + BSTR url = BstrFromVariant(pDispParams->rgvarg[0].pvarVal); + fs->htmlWindow->OnDocumentComplete(url); + break; + } + + case DISPID_NAVIGATEERROR: { + // TODO: probably should notify about that too + break; + } + + case DISPID_COMMANDSTATECHANGE: + switch (pDispParams->rgvarg[1].lVal) { + case CSC_NAVIGATEBACK: + fs->htmlWindow->canGoBack = pDispParams->rgvarg[0].boolVal; + break; + case CSC_NAVIGATEFORWARD: + fs->htmlWindow->canGoForward = pDispParams->rgvarg[0].boolVal; + break; + } + break; + + case DISPID_NEWWINDOW3: { + BSTR url = pDispParams->rgvarg[0].bstrVal; + bool shouldCancel = !fs->htmlWindow->OnBeforeNavigate(url, true); + *pDispParams->rgvarg[3].pboolVal = shouldCancel ? VARIANT_TRUE : VARIANT_FALSE; + break; + } + + case DISPID_NEWWINDOW2: + // prior to Windows XP SP2, there's no way of getting the URL + // to be opened, so we have to fail silently + *pDispParams->rgvarg[0].pboolVal = VARIANT_FALSE; + break; + } + + return S_OK; +} + +// IOleWindow +HRESULT HW_IOleInPlaceFrame::GetWindow(HWND* phwnd) { + if (phwnd == nullptr) { + return E_INVALIDARG; + } + *phwnd = fs->hwndParent; + return S_OK; +} + +// IOleInPlaceUIWindow +HRESULT HW_IOleInPlaceFrame::GetBorder(LPRECT lprectBorder) { + if (lprectBorder == nullptr) { + return E_INVALIDARG; + } + return INPLACE_E_NOTOOLSPACE; +} + +HRESULT HW_IOleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pborderwidths) { + if (pborderwidths == nullptr) { + return E_INVALIDARG; + } + return INPLACE_E_NOTOOLSPACE; +} + +// IOleInPlaceSite +HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceActivate() { + fs->inPlaceActive = true; + return S_OK; +} + +HRESULT HW_IOleInPlaceSiteWindowless::OnUIActivate() { + fs->uiActive = true; + return S_OK; +} + +HRESULT HW_IOleInPlaceSiteWindowless::GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, + LPRECT lprcPosRect, LPRECT lprcClipRect, + LPOLEINPLACEFRAMEINFO lpFrameInfo) { + if (ppFrame == nullptr || ppDoc == nullptr || lprcPosRect == nullptr || lprcClipRect == nullptr || + lpFrameInfo == nullptr) { + if (ppFrame != nullptr) { + *ppFrame = nullptr; + } + if (ppDoc != nullptr) { + *ppDoc = nullptr; + } + return E_INVALIDARG; + } + + *ppDoc = *ppFrame = fs->oleInPlaceFrame; + (*ppDoc)->AddRef(); + (*ppFrame)->AddRef(); + + lpFrameInfo->fMDIApp = FALSE; + lpFrameInfo->hwndFrame = fs->hwndParent; + lpFrameInfo->haccel = nullptr; + lpFrameInfo->cAccelEntries = 0; + + return S_OK; +} + +HRESULT HW_IOleInPlaceSiteWindowless::OnUIDeactivate(__unused BOOL fUndoable) { + fs->uiActive = false; + return S_OK; +} + +HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceDeactivate() { + fs->inPlaceActive = false; + return S_OK; +} + +// IOleInPlaceSiteEx +HRESULT HW_IOleInPlaceSiteWindowless::OnInPlaceActivateEx(BOOL* pfNoRedraw, __unused DWORD dwFlags) { + if (pfNoRedraw) { + *pfNoRedraw = FALSE; + } + return S_OK; +} + +// IOleInPlaceSiteWindowless +HRESULT HW_IOleInPlaceSiteWindowless::CanWindowlessActivate() { + return fs->supportsWindowlessActivation ? S_OK : S_FALSE; +} + +HRESULT HW_IOleInPlaceSiteWindowless::GetDC(__unused LPCRECT pRect, __unused DWORD grfFlags, HDC* phDC) { + if (phDC == nullptr) { + return E_INVALIDARG; + } + +#if 0 + if (grfFlags & OLEDC_NODRAW) + { + *phDC = mfs->hDCBuffer; + return S_OK; + } + + if (fs->hDCBuffer != nullptr) + return E_UNEXPECTED; +#endif + return E_NOTIMPL; +} + +HRESULT HW_IOleInPlaceSiteWindowless::InvalidateRect(__unused LPCRECT pRect, BOOL fErase) { + ::InvalidateRect(fs->hwndParent, nullptr, fErase); + return S_OK; +} + +// IOleClientSite +HRESULT HW_IOleClientSite::GetContainer(LPOLECONTAINER* ppContainer) { + if (ppContainer == nullptr) { + return E_INVALIDARG; + } + return QueryInterface(IID_IOleContainer, (void**)ppContainer); +} + +// IOleItemContainer +HRESULT HW_IOleItemContainer::GetObject(LPOLESTR pszItem, __unused DWORD dwSpeedNeeded, __unused IBindCtx* pbc, + __unused REFIID riid, void** ppvObject) { + if (pszItem == nullptr) { + return E_INVALIDARG; + } + if (ppvObject == nullptr) { + return E_INVALIDARG; + } + *ppvObject = nullptr; + return MK_E_NOOBJECT; +} + +HRESULT HW_IOleItemContainer::GetObjectStorage(LPOLESTR pszItem, __unused IBindCtx* pbc, __unused REFIID riid, + void** ppvStorage) { + if (pszItem == nullptr) { + return E_INVALIDARG; + } + if (ppvStorage == nullptr) { + return E_INVALIDARG; + } + *ppvStorage = nullptr; + return MK_E_NOOBJECT; +} + +HRESULT HW_IOleItemContainer::IsRunning(LPOLESTR pszItem) { + if (pszItem == nullptr) { + return E_INVALIDARG; + } + return MK_E_NOOBJECT; +} + +// IOleControlSite +HRESULT HW_IOleControlSite::LockInPlaceActive(BOOL fLock) { + fs->inPlaceLocked = (fLock == TRUE); + return S_OK; +} + +HRESULT HW_IOleControlSite::TransformCoords(POINTL* pPtlHimetric, POINTF* pPtfContainer, __unused DWORD dwFlags) { + HRESULT hr = S_OK; + if (pPtlHimetric == nullptr) { + return E_INVALIDARG; + } + if (pPtfContainer == nullptr) { + return E_INVALIDARG; + } + return hr; +} + +// IOleCommandTarget +HRESULT HW_IOleCommandTarget::QueryStatus(__unused const GUID* pguidCmdGroup, __unused ULONG cCmds, OLECMD* prgCmds, + __unused OLECMDTEXT* pCmdTet) { + if (prgCmds == nullptr) { + return E_INVALIDARG; + } + return OLECMDERR_E_UNKNOWNGROUP; +} From e698769055817d91b2519aa10b36c29adb291848 Mon Sep 17 00:00:00 2001 From: Krzysztof Kowalczyk Date: Mon, 18 May 2026 12:39:35 +0200 Subject: [PATCH 7/8] Harden CHM host canvas lifetime Co-Authored-By: Claude Opus 4.7 (1M context) --- src/ChmModel.cpp | 3 +++ src/wingui/HtmlWindow.cpp | 10 +++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ChmModel.cpp b/src/ChmModel.cpp index 512b6590c147..98d00d4b6fbc 100644 --- a/src/ChmModel.cpp +++ b/src/ChmModel.cpp @@ -133,6 +133,9 @@ bool ChmModel::SetParentHwnd(HWND hwnd) { } void ChmModel::RemoveParentHwnd() { + if (!htmlWindow && !htmlWindowCb) { + return; + } delete htmlWindow; htmlWindow = nullptr; delete htmlWindowCb; diff --git a/src/wingui/HtmlWindow.cpp b/src/wingui/HtmlWindow.cpp index 519afe1132bc..550bf2e2fed9 100644 --- a/src/wingui/HtmlWindow.cpp +++ b/src/wingui/HtmlWindow.cpp @@ -1165,8 +1165,7 @@ static HWND GetBrowserControlHwnd(HWND hwndControlParent) { } // WndProc of the window that is a parent hwnd of embedded browser control. -static LRESULT CALLBACK WndProcParent(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { - HtmlWindow* win = (HtmlWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA); +static LRESULT CALLBACK WndProcParent(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, HtmlWindow* win) { if (!win) { return DefWindowProc(hwnd, msg, wp, lp); } @@ -1202,7 +1201,8 @@ static LRESULT CALLBACK WndProcParent(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) } static LRESULT CALLBACK WndProcParent2(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, UINT_PTR subclassId, DWORD_PTR data) { - return WndProcParent(hwnd, msg, wp, lp); + auto win = reinterpret_cast(data); + return WndProcParent(hwnd, msg, wp, lp, win); } void HtmlWindow::SubclassHwnd() { @@ -1218,6 +1218,10 @@ void HtmlWindow::UnsubclassHwnd() { return; } RemoveWindowSubclass(hwndParent, WndProcParent2, subclassId); + auto curr = (HtmlWindow*)GetWindowLongPtr(hwndParent, GWLP_USERDATA); + if (curr == this) { + SetWindowLongPtr(hwndParent, GWLP_USERDATA, 0); + } subclassId = 0; } From c4b081931908eb6d86b88a257f8f0c8364fa062d Mon Sep 17 00:00:00 2001 From: "[JaviLendi]" Date: Thu, 21 May 2026 10:55:46 +0200 Subject: [PATCH 8/8] Block webview keyboard handlers & harden load Add protections to prevent WebView/web UI scripts from stealing app-level shortcuts and harden document loading to avoid races and use-after-free. HTML/JS: add an example toolbar and inject early monkeypatches/shortcut-guards into home.html and toolbar.html to wrap addEventListener for keyboard events and route Ctrl+F/F3 to the host search UI. C++: make ReplaceDocumentInCurrentTab return a bool and add validity/isBeingClosed checks to bail out safely; snapshot gWindows in SaveSettings to avoid concurrent mutation; post an asynchronous SaveSettings after document load completion. WebView: add webview2_accel_handler to intercept accelerator keys at the control level, mark them handled and repost them to the top-level window so host accelerators run. Misc: minor formatting and Eval string adjustments. These changes reduce conflicts between web UI handlers and native accelerators and prevent lifecycle-related crashes during loads. --- prettysumatra/example.html | 151 +++++++++++++++++++++++++++++++ prettysumatra/webui/home.html | 101 +++++++++++++++++++++ prettysumatra/webui/toolbar.html | 120 ++++++++++++++++++++++++ src/AppSettings.cpp | 5 +- src/SumatraPDF.cpp | 91 ++++++++++++++----- src/wingui/WebView.cpp | 80 ++++++++++++++++ 6 files changed, 525 insertions(+), 23 deletions(-) create mode 100644 prettysumatra/example.html diff --git a/prettysumatra/example.html b/prettysumatra/example.html new file mode 100644 index 000000000000..ffa4316d809a --- /dev/null +++ b/prettysumatra/example.html @@ -0,0 +1,151 @@ + + + + + + Editor con Estilo Heroicons + + + + + +
+ + + + + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/prettysumatra/webui/home.html b/prettysumatra/webui/home.html index cad132e4399d..dfdf927d0778 100644 --- a/prettysumatra/webui/home.html +++ b/prettysumatra/webui/home.html @@ -2,6 +2,70 @@ + PrettySumatraPDF - Home @@ -180,5 +244,42 @@ if (window.external && typeof window.external.invoke === 'function') window.external.invoke(JSON.stringify({ type: 'command', name: 'homePageReady', payload: {}, ts: Date.now() })); + \ No newline at end of file diff --git a/prettysumatra/webui/toolbar.html b/prettysumatra/webui/toolbar.html index 20964f2d333c..55131249350e 100644 --- a/prettysumatra/webui/toolbar.html +++ b/prettysumatra/webui/toolbar.html @@ -2,6 +2,81 @@ + PrettySumatraPDF @@ -2287,6 +2362,51 @@ setTimeout(updateToolbarScale, 100); })(); + + \ No newline at end of file diff --git a/src/AppSettings.cpp b/src/AppSettings.cpp index a29441f64b44..a70ea8c7acef 100644 --- a/src/AppSettings.cpp +++ b/src/AppSettings.cpp @@ -414,7 +414,10 @@ bool SaveSettings() { } logf("SaveSettings\n"); // update display states for all tabs - for (MainWindow* win : gWindows) { + // Snapshot windows first because SaveSettings() can now be posted from + // document-load completion while tabs/windows are changing. + Vec windows = gWindows; + for (MainWindow* win : windows) { for (WindowTab* tab : win->Tabs()) { UpdateTabFileDisplayStateForTab(tab); } diff --git a/src/SumatraPDF.cpp b/src/SumatraPDF.cpp index 74e2f0e21187..66c3eb77ac13 100644 --- a/src/SumatraPDF.cpp +++ b/src/SumatraPDF.cpp @@ -1486,14 +1486,17 @@ static bool showTocByDefault(const char* path) { // placeWindow : if true then the Window will be moved/sized according // to the 'state' information even if the window was already placed // before (isNewWindow=false) -static void ReplaceDocumentInCurrentTab(LoadArgs* args, DocController* ctrl, FileState* fs) { +static bool ReplaceDocumentInCurrentTab(LoadArgs* args, DocController* ctrl, FileState* fs) { MainWindow* win = args->win; if (win && win->homePageWebView) { HomePageHide(win); } ReportIf(!win); if (!win) { - return; + return false; + } + if (!IsMainWindowValid(win) || win->isBeingClosed) { + return false; } WindowTab* tab = win->CurrentTab(); ReportIf(!tab); @@ -1698,6 +1701,9 @@ static void ReplaceDocumentInCurrentTab(LoadArgs* args, DocController* ctrl, Fil // cf. https://code.google.com/p/sumatrapdf/issues/detail?id=2541 // ReportIf(win->IsDocLoaded() && args->showWin && win->canvasRc.IsEmpty() && !win->AsChm()); + if (!IsMainWindowValid(win) || win->isBeingClosed) { + return true; + } SetSidebarVisibility(win, showToc, gGlobalPrefs->showFavorites); // restore scroll state after the canvas size has been restored if ((args->showWin || ss.page != 1) && win->AsFixed()) { @@ -1708,7 +1714,7 @@ static void ReplaceDocumentInCurrentTab(LoadArgs* args, DocController* ctrl, Fil if (!win->IsDocLoaded()) { win->RedrawAll(true); - return; + return true; } TempStr unsupported = win->ctrl->GetPropertyTemp(kPropUnsupportedFeatures); @@ -1733,6 +1739,8 @@ static void ReplaceDocumentInCurrentTab(LoadArgs* args, DocController* ctrl, Fil if (!args->isNewWindow && win->presentation && win->ctrl) { win->ctrl->SetInPresentation(true); } + + return true; } void ReloadDocument(MainWindow* win, bool autoRefresh) { @@ -1821,7 +1829,10 @@ void ReloadDocument(MainWindow* win, bool autoRefresh) { LoadArgs args(tab->filePath, win); args.showWin = true; args.placeWindow = false; - ReplaceDocumentInCurrentTab(&args, ctrl, fs); + if (!ReplaceDocumentInCurrentTab(&args, ctrl, fs)) { + DeleteFileState(fs); + return; + } if (!ctrl) { DeleteFileState(fs); @@ -2301,6 +2312,12 @@ void ShowErrorLoadingNotification(MainWindow* win, const char* path, bool noSave extern void SetTabState(WindowTab* tab, TabState* state); +// Call SaveSettings asynchronously to avoid running it in the middle of +// document/tab transitions during document load completion. +static void SaveSettingsVoid() { + SaveSettings(); +} + MainWindow* LoadDocumentFinish(LoadArgs* args) { MainWindow* win = args->win; const char* fullPath = args->FilePath(); @@ -2324,6 +2341,13 @@ MainWindow* LoadDocumentFinish(LoadArgs* args) { } CloseDocumentInCurrentTab(win, true, args->forceReuse); } + + if (!IsMainWindowValid(win) || win->isBeingClosed) { + delete args->ctrl; + args->ctrl = nullptr; + return nullptr; + } + if (!args->forceReuse) { // insert a new tab for the loaded document WindowTab* tab = new WindowTab(win); @@ -2343,11 +2367,21 @@ MainWindow* LoadDocumentFinish(LoadArgs* args) { args->placeWindow = !SettingsUseTabs(); bool lazyLoad = args->lazyLoad; if (!lazyLoad) { + if (!IsMainWindowValid(win) || win->isBeingClosed) { + delete args->ctrl; + args->ctrl = nullptr; + return nullptr; + } if (win->homePageWebView) { HomePageHide(win); } - ReplaceDocumentInCurrentTab(args, args->ctrl, nullptr); + if (!ReplaceDocumentInCurrentTab(args, args->ctrl, nullptr)) { + delete args->ctrl; + args->ctrl = nullptr; + return nullptr; + } + args->ctrl = nullptr; if (win->hwndCanvas) { InvalidateRect(win->hwndCanvas, nullptr, TRUE); @@ -2404,7 +2438,8 @@ MainWindow* LoadDocumentFinish(LoadArgs* args) { // TODO: this seems to save the state of file that we just opened // add a way to skip saving currTab? if (!args->noSavePrefs) { - SaveSettings(); + auto fn = MkFunc0Void(SaveSettingsVoid); + uitask::Post(fn, "SaveSettingsAfterDocLoad"); } } @@ -5215,8 +5250,6 @@ static bool ChmForwardKey(WPARAM key) { return false; } - - static bool FrameOnKeydown(MainWindow* win, WPARAM key, LPARAM lp) { // TODO: how does this interact with new accelerators? if (PM_BLACK_SCREEN == win->presentation || PM_WHITE_SCREEN == win->presentation) { @@ -5228,11 +5261,14 @@ static bool FrameOnKeydown(MainWindow* win, WPARAM key, LPARAM lp) { CancelDrag(win); // If the mouse is outside the hybrid toolbar, notify the webview to exit edit mode / close dropdowns if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { - POINT pt; GetCursorPos(&pt); + POINT pt; + GetCursorPos(&pt); RECT r = {}; GetWindowRect(win->hybridToolbar->hwnd, &r); if (!(pt.x >= r.left && pt.x < r.right && pt.y >= r.top && pt.y < r.bottom)) { - win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + win->hybridToolbar->Eval( + "window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && " + "window.__closeAllDropdowns();"); } } return true; @@ -5687,12 +5723,14 @@ void SetSidebarVisibility(MainWindow* win, bool tocVisible, bool showFavorites, // Notify hybrid toolbar WebView (if present) about panel state changes if (win->hybridToolbar) { - TempStr jsFav = str::FormatTemp("try{if(window.notifyPanelState)window.notifyPanelState('favorites',%s);}catch(e){};", - showFavorites ? "true" : "false"); + TempStr jsFav = + str::FormatTemp("try{if(window.notifyPanelState)window.notifyPanelState('favorites',%s);}catch(e){};", + showFavorites ? "true" : "false"); win->hybridToolbar->Eval(jsFav); - TempStr jsToc = str::FormatTemp("try{if(window.notifyPanelState)window.notifyPanelState('bookmarks',%s);}catch(e){};", - tocVisible ? "true" : "false"); + TempStr jsToc = + str::FormatTemp("try{if(window.notifyPanelState)window.notifyPanelState('bookmarks',%s);}catch(e){};", + tocVisible ? "true" : "false"); win->hybridToolbar->Eval(jsToc); } } @@ -7549,7 +7587,7 @@ static LRESULT FrameOnCommand(MainWindow* win, HWND hwnd, UINT msg, WPARAM wp, L return 0; } AnnotCreateArgs args{annotType}; - + // Check if there's a pending color from the bridge (for highlight/underline/strikeout from webui toolbar) const char* bridgeColor = nullptr; if (cmdId == CmdCreateAnnotHighlight) { @@ -7574,7 +7612,8 @@ static LRESULT FrameOnCommand(MainWindow* win, HWND hwnd, UINT msg, WPARAM wp, L } if (prettysumatra::bridge::LogBridgeMessages()) { logf("[PrettySumatraBridge] Creating annotation cmdId=%d bridgeColor=%s cmdDef=%s selectionOnPage=%d\n", - cmdId, bridgeColor ? bridgeColor : "(null)", cmd ? cmd->definition : "(none)", tab->selectionOnPage ? 1 : 0); + cmdId, bridgeColor ? bridgeColor : "(null)", cmd ? cmd->definition : "(none)", + tab->selectionOnPage ? 1 : 0); } SetAnnotCreateArgs(args, cmd); @@ -8369,14 +8408,16 @@ static LRESULT CustomCaptionFrameProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, } // If click is outside the hybrid toolbar WebView, tell it to exit edit mode / close dropdowns if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { - POINT pt = { GET_X_LPARAM(lp), GET_Y_LPARAM(lp) }; + POINT pt = {GET_X_LPARAM(lp), GET_Y_LPARAM(lp)}; POINT ptScreen = pt; ClientToScreen(hwnd, &ptScreen); RECT r = {}; GetWindowRect(win->hybridToolbar->hwnd, &r); if (!(ptScreen.x >= r.left && ptScreen.x < r.right && ptScreen.y >= r.top && ptScreen.y < r.bottom)) { // click outside webview - win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + win->hybridToolbar->Eval( + "window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && " + "window.__closeAllDropdowns();"); } } } break; @@ -8386,13 +8427,15 @@ static LRESULT CustomCaptionFrameProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, case WM_XBUTTONDOWN: { // For other mouse buttons, also notify webview if click is outside it if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { - POINT pt = { GET_X_LPARAM(lp), GET_Y_LPARAM(lp) }; + POINT pt = {GET_X_LPARAM(lp), GET_Y_LPARAM(lp)}; POINT ptScreen = pt; ClientToScreen(hwnd, &ptScreen); RECT r = {}; GetWindowRect(win->hybridToolbar->hwnd, &r); if (!(ptScreen.x >= r.left && ptScreen.x < r.right && ptScreen.y >= r.top && ptScreen.y < r.bottom)) { - win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + win->hybridToolbar->Eval( + "window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && " + "window.__closeAllDropdowns();"); } } } break; @@ -8667,7 +8710,9 @@ LRESULT CALLBACK WndProcSumatraFrame(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) } else { // Window lost activation: tell hybrid toolbar to exit edit mode and close dropdowns if (win && win->hybridToolbar && win->hybridToolbar->hwnd) { - win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + win->hybridToolbar->Eval( + "window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && " + "window.__closeAllDropdowns();"); } } break; @@ -8679,7 +8724,9 @@ LRESULT CALLBACK WndProcSumatraFrame(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) HWND hw = win->hybridToolbar->hwnd; bool focusIsInWebview = (newFocus == hw) || (newFocus && IsChild(hw, newFocus)); if (!focusIsInWebview) { - win->hybridToolbar->Eval("window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && window.__closeAllDropdowns();"); + win->hybridToolbar->Eval( + "window.__exitEditMode && window.__exitEditMode(); window.__closeAllDropdowns && " + "window.__closeAllDropdowns();"); } } } break; diff --git a/src/wingui/WebView.cpp b/src/wingui/WebView.cpp index 2026066422e6..b8729997b1bb 100644 --- a/src/wingui/WebView.cpp +++ b/src/wingui/WebView.cpp @@ -151,6 +151,71 @@ class webview2_com_handler : public ICoreWebView2CreateCoreWebView2ControllerCom ULONG m_refCount = 1; }; +// Handler to intercept accelerator key events coming from the WebView2 control. +class webview2_accel_handler : public ICoreWebView2AcceleratorKeyPressedEventHandler { + public: + explicit webview2_accel_handler(HWND hwnd) : m_hwnd(hwnd) {} + ULONG STDMETHODCALLTYPE AddRef() { return ++m_refCount; } + ULONG STDMETHODCALLTYPE Release() { + ULONG n = --m_refCount; + if (n == 0) delete this; + return n; + } + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID* ppv) { + if (!ppv) return E_POINTER; + *ppv = nullptr; + if (riid == IID_IUnknown || riid == __uuidof(ICoreWebView2AcceleratorKeyPressedEventHandler)) { + *ppv = static_cast(this); + AddRef(); + return S_OK; + } + return E_NOINTERFACE; + } + + HRESULT STDMETHODCALLTYPE Invoke(ICoreWebView2Controller* /*sender*/, + ICoreWebView2AcceleratorKeyPressedEventArgs* args) { + if (!args) return S_OK; + COREWEBVIEW2_KEY_EVENT_KIND kind; + if (FAILED(args->get_KeyEventKind(&kind))) return S_OK; + // Only act on key down events + if (kind != COREWEBVIEW2_KEY_EVENT_KIND_KEY_DOWN) return S_OK; + + UINT vk = 0; + if (FAILED(args->get_VirtualKey(&vk))) return S_OK; + + // detect modifier state via GetKeyState (current physical state) + bool ctrl = (GetKeyState(VK_CONTROL) & 0x8000) != 0; + bool shift = (GetKeyState(VK_SHIFT) & 0x8000) != 0; + + // keys we want to neutralize inside the webview (but let host handle) + bool isAppAccel = false; + // Common app accelerators that should execute in host + if (ctrl && (vk == 'O' || vk == 'P' || vk == 'S' || vk == 'F' || vk == 'G' || vk == 'C' || vk == 'V' || + vk == 'W' || vk == 'N' || vk == 'K')) + isAppAccel = true; + if (vk == VK_F3) isAppAccel = true; + + if (isAppAccel) { + // Prevent WebView from handling it + args->put_Handled(TRUE); + // Re-post the key to the top-level window so the normal accelerator processing runs + HWND root = GetAncestor(m_hwnd, GA_ROOT); + if (root && ::IsWindow(root)) { + PostMessageW(root, WM_KEYDOWN, (WPARAM)vk, 0); + PostMessageW(root, WM_KEYUP, (WPARAM)vk, 0); + } + return S_OK; + } + + // For other keys we don't interfere + return S_OK; + } + + private: + ULONG m_refCount = 1; + HWND m_hwnd = nullptr; +}; + class webview2_env_handler : public ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler { public: using env_ready_cb_t = void (*)(HRESULT, ICoreWebView2Environment*); @@ -358,6 +423,21 @@ void WebviewWnd::OnControllerReady(ICoreWebView2Controller* ctrl) { settings->Release(); } + // Register an accelerator handler so the host can intercept shortcuts + // and prevent the WebView from handling them (while forwarding to host). + { + webview2_accel_handler* accelHandler = new webview2_accel_handler(hwnd); + ::EventRegistrationToken token = {}; + // controller should implement add_AcceleratorKeyPressed on supported versions + // If not supported, this call will fail gracefully. + if (SUCCEEDED(controller->add_AcceleratorKeyPressed(accelHandler, &token))) { + // keep handler alive by relying on controller ref; release local ref + accelHandler->Release(); + } else { + accelHandler->Release(); + } + } + Init("window.external={invoke:s=>window.chrome.webview.postMessage(s)}"); initStarted = true; FlushPendingOps();

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