Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: components/framelet/browser/framelet_guest.h

Issue 1560553002: Framelet Prototype 2016 Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased + Applied Brett's Windows + Fixed security issue Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/framelet/browser/DEPS ('k') | components/framelet/browser/framelet_guest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/framelet/browser/framelet_guest.h
diff --git a/components/framelet/browser/framelet_guest.h b/components/framelet/browser/framelet_guest.h
new file mode 100644
index 0000000000000000000000000000000000000000..001e73e0e99ec153468ab13ef17bd2173e012a34
--- /dev/null
+++ b/components/framelet/browser/framelet_guest.h
@@ -0,0 +1,84 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FRAMELET_BROWSER_FRAMELET_GUEST_H_
+#define COMPONENTS_FRAMELET_BROWSER_FRAMELET_GUEST_H_
+
+#include "components/framelet/browser/framelet_memory_tracker_client.h"
+#include "components/framelet/browser/resource_usage_reporter.h"
+#include "components/framelet/browser/resource_usage_reporter_client.h"
+#include "components/guest_view/browser/guest_view.h"
+
+namespace blink {
+class WebInputEvent;
+}
+
+namespace framelet {
+
+class FrameletGuest : public guest_view::GuestView<FrameletGuest>,
+ public FrameletMemoryTrackerClient,
+ public ResourceUsageReporterClient<int> {
+ public:
+ static const char Type[];
+
+ static guest_view::GuestViewBase* Create(
+ content::WebContents* owner_web_contents);
+
+ void AttachToEmbedderFrame(int element_instance_id,
+ int embedder_local_render_frame_id,
+ const base::DictionaryValue& params);
+
+ private:
+ explicit FrameletGuest(content::WebContents* owner_web_contents);
+ ~FrameletGuest() override;
+
+ // FrameletMemoryTrackerClient implementation.
+ void ReportHeapSize(int heap_size) override;
+
+ // ResourceUsageReporterClient implementation.
+ void OnResourceUsageLevelChanged(
+ const ResourceUsageLevel& usage_level) override;
+ scoped_ptr<ResourceUsageRange<int>> GetRangeForUsageLevel(
+ const ResourceUsageLevel& usage_level) const override;
+
+ // BrowserPluginGuestDelegate implementation.
+ bool SetChildFrameSurface(const cc::SurfaceId& surface_id,
+ const gfx::Size& frame_size,
+ float scale_factor,
+ const cc::SurfaceSequence& sequence) override;
+
+ // content::WebContentsDelegate implementation.
+ bool HandleContextMenu(const content::ContextMenuParams& params) override;
+
+ // GuestViewBase implementation.
+ bool CanRunInDetachedState() const final;
+ const char* GetAPINamespace() const final;
+ int GetTaskPrefix() const final;
+ void CreateWebContents(
+ const base::DictionaryValue& create_params,
+ const guest_view::GuestViewBase::WebContentsCreatedCallback& callback)
+ final;
+ void DidAttachToEmbedder() final;
+ void DidInitialize(const base::DictionaryValue& create_params) final;
+ bool OnMessageReceivedFromEmbedder(const IPC::Message& message) final;
+ void WillDestroy() final;
+
+ // Message handlers.
+ void OnDestroyFramelet(int element_instance_id);
+ void OnForwardInputEvent(int element_instance_id,
+ const blink::WebInputEvent* event);
+ void OnResizeFramelet(int element_instance_id, const gfx::Size& new_size);
+ void OnSetContainerVisible(int element_instance_id, bool visible);
+ void OnSetFocus(int element_instance_id,
+ bool focused,
+ blink::WebFocusType focus_type);
+
+ bool monitor_resources_;
+ scoped_ptr<ResourceUsageReporter<int>> resource_usage_reporter_;
+ DISALLOW_COPY_AND_ASSIGN(FrameletGuest);
+};
+
+} // namespace framelet
+
+#endif // COMPONENTS_FRAMELET_BROWSER_FRAMELET_GUEST_H_
« no previous file with comments | « components/framelet/browser/DEPS ('k') | components/framelet/browser/framelet_guest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698