propagate zoom changes to pdf plugin
This commit is contained in:
parent
eda413861a
commit
4381e0895f
3 changed files with 21 additions and 6 deletions
|
@ -82,6 +82,9 @@ void PdfViewerHandler::RegisterMessages() {
|
||||||
web_ui()->RegisterMessageCallback(
|
web_ui()->RegisterMessageCallback(
|
||||||
"getInitialZoom",
|
"getInitialZoom",
|
||||||
base::Bind(&PdfViewerHandler::GetInitialZoom, base::Unretained(this)));
|
base::Bind(&PdfViewerHandler::GetInitialZoom, base::Unretained(this)));
|
||||||
|
web_ui()->RegisterMessageCallback(
|
||||||
|
"setZoom",
|
||||||
|
base::Bind(&PdfViewerHandler::SetZoom, base::Unretained(this)));
|
||||||
web_ui()->RegisterMessageCallback(
|
web_ui()->RegisterMessageCallback(
|
||||||
"getStrings",
|
"getStrings",
|
||||||
base::Bind(&PdfViewerHandler::GetStrings, base::Unretained(this)));
|
base::Bind(&PdfViewerHandler::GetStrings, base::Unretained(this)));
|
||||||
|
@ -148,6 +151,20 @@ void PdfViewerHandler::GetInitialZoom(const base::ListValue* args) {
|
||||||
base::FundamentalValue(content::ZoomLevelToZoomFactor(zoom_level)));
|
base::FundamentalValue(content::ZoomLevelToZoomFactor(zoom_level)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PdfViewerHandler::SetZoom(const base::ListValue* args) {
|
||||||
|
if (!IsJavascriptAllowed())
|
||||||
|
return;
|
||||||
|
CHECK_EQ(2U, args->GetSize());
|
||||||
|
const base::Value* callback_id;
|
||||||
|
CHECK(args->Get(0, &callback_id));
|
||||||
|
double zoom_level = 0.0;
|
||||||
|
CHECK(args->GetDouble(1, &zoom_level));
|
||||||
|
|
||||||
|
content::HostZoomMap::SetZoomLevel(web_ui()->GetWebContents(),
|
||||||
|
zoom_level);
|
||||||
|
ResolveJavascriptCallback(*callback_id, base::FundamentalValue(zoom_level));
|
||||||
|
}
|
||||||
|
|
||||||
void PdfViewerHandler::GetStrings(const base::ListValue* args) {
|
void PdfViewerHandler::GetStrings(const base::ListValue* args) {
|
||||||
if (!IsJavascriptAllowed())
|
if (!IsJavascriptAllowed())
|
||||||
return;
|
return;
|
||||||
|
@ -187,10 +204,7 @@ void PdfViewerHandler::Reload(const base::ListValue* args) {
|
||||||
|
|
||||||
void PdfViewerHandler::OnZoomLevelChanged(
|
void PdfViewerHandler::OnZoomLevelChanged(
|
||||||
const content::HostZoomMap::ZoomLevelChange& change) {
|
const content::HostZoomMap::ZoomLevelChange& change) {
|
||||||
// TODO(deepak1556): This will work only if zoom level is changed through host
|
if (change.host == kPdfViewerUIHost) {
|
||||||
// zoom map.
|
|
||||||
if (change.scheme == content::kChromeUIScheme &&
|
|
||||||
change.host == kPdfViewerUIHost) {
|
|
||||||
CallJavascriptFunction(
|
CallJavascriptFunction(
|
||||||
"cr.webUIListenerCallback", base::StringValue("onZoomLevelChanged"),
|
"cr.webUIListenerCallback", base::StringValue("onZoomLevelChanged"),
|
||||||
base::FundamentalValue(
|
base::FundamentalValue(
|
||||||
|
|
|
@ -38,6 +38,7 @@ class PdfViewerHandler : public content::WebUIMessageHandler {
|
||||||
void Initialize(const base::ListValue* args);
|
void Initialize(const base::ListValue* args);
|
||||||
void GetDefaultZoom(const base::ListValue* args);
|
void GetDefaultZoom(const base::ListValue* args);
|
||||||
void GetInitialZoom(const base::ListValue* args);
|
void GetInitialZoom(const base::ListValue* args);
|
||||||
|
void SetZoom(const base::ListValue* args);
|
||||||
void GetStrings(const base::ListValue* args);
|
void GetStrings(const base::ListValue* args);
|
||||||
void Reload(const base::ListValue* args);
|
void Reload(const base::ListValue* args);
|
||||||
void OnZoomLevelChanged(const content::HostZoomMap::ZoomLevelChange& change);
|
void OnZoomLevelChanged(const content::HostZoomMap::ZoomLevelChange& change);
|
||||||
|
|
|
@ -185,7 +185,6 @@ class PdfViewerUI::ResourceRequester
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class base::RefCountedThreadSafe<ResourceRequester>;
|
|
||||||
friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>;
|
friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>;
|
||||||
friend class base::DeleteHelper<ResourceRequester>;
|
friend class base::DeleteHelper<ResourceRequester>;
|
||||||
~ResourceRequester() override {}
|
~ResourceRequester() override {}
|
||||||
|
@ -223,7 +222,8 @@ bool PdfViewerUI::OnMessageReceived(
|
||||||
void PdfViewerUI::OnPdfStreamCreated(
|
void PdfViewerUI::OnPdfStreamCreated(
|
||||||
std::unique_ptr<content::StreamInfo> stream) {
|
std::unique_ptr<content::StreamInfo> stream) {
|
||||||
stream_ = std::move(stream);
|
stream_ = std::move(stream);
|
||||||
pdf_handler_->SetPdfResourceStream(stream_.get());
|
if (pdf_handler_)
|
||||||
|
pdf_handler_->SetPdfResourceStream(stream_.get());
|
||||||
resource_requester_ = nullptr;
|
resource_requester_ = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue